/* ============================================================
   ZNAJDZ SALON - trzy ekrany jednego widoku
     1. /salon-sprzedazy/                        (szablon 235) - dwa kafelki
     2. /salon-sprzedazy/znajdz-salon-sprzedazy/ (szablon  81) - mapa Polski
     3. /znajdz-salon-sprzedazy/salony-sprzedazy-* (szablon 239) - lista salonow
   Ladowane po adresie - patrz bm-newlayout.php.

   DLACZEGO MAPA I LISTA ZOSTAJA CIEMNE:
   Mapa to wtyczka CSSMap uruchamiana z 'mapStyle: "dark"' (inline w bloku
   kodu na stronie) - jej motyw rysuje biale dymki i jasne obrysy, wiec na
   jasnym tle znika. Lista salonow z kolei stoi na bialym tekscie w czterech
   miejscach naraz: '#headline-16-239', '#_rich_text-53/56-239' oraz
   '.salone-block' i '.salone-block a' z universal.css - rozjasnienie tla
   wymagaloby przemalowania tego wszystkiego, w tym regul globalnych.
   Zamiast tego zamieniamy czern na GRANAT z makiety: tekst zostaje bialy
   i czytelny, a paleta sie zgadza.

   Selektory zrodlowe to same ID (1,0,0), wiec dokladamy 'body' -> (1,1,1).
   Autor: claude, 2026-08-20.
   ============================================================ */

body.page {
    --navy-salon: #0B2240;
}

/* ---------- 1. /salon-sprzedazy/ - dwa kafelki -------------
   '#new_columns-118-235 { background-color:#000000 }' to tylko RAMA wokol
   dwoch bialych blokow ('#div_block-120/125-235'), a nie tlo tresci -
   dlatego tutaj mozemy bezpiecznie zejsc na jasne tlo makiety. */
body.page #new_columns-118-235 {
    background-color: #FCFAF6;
}

/* Przyciski "WYBIERZ Z MAPY". W zrodle szare #eeeeee z czarnym hoverem.

   2026-09-16: hover byl tu zwykla zamiana tla na granat - bez efektu
   zamalowania, ktory maja przyciski w makiecie, w sklepie i na karcie
   produktu. Klientka: "brakuje tych pedzli". Mechanizm dokłada teraz
   wspolny 'pedzel.css'; tutaj zostaja tylko dwa kolory:
     '--bmx-farba' - czym pedzel maluje,
     '--bmx-tlo'   - co jest pod farba w spoczynku (musi byc TEN SAM
                     kolor co tlo przycisku, inaczej czerwien gasnie
                     w chwili najechania, zanim granat zdazy wjechac).
   Reguly ':hover' juz tu nie ma - steruje nim 'pedzel.css'. */
body.page #link_button-122-235,
body.page #link_button-127-235 {
    --bmx-farba: var(--navy-salon);
    --bmx-tlo: #DB0632;
    background-color: #DB0632;
    border: 1px solid #DB0632;
    border-radius: 999px;
    color: #fff;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

/* ---------- 2. Mapa Polski --------------------------------- */
body.page #section-7-81 {
    background-color: var(--navy-salon);
}

body.page #headline-8-81 {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-weight: 500;
    color: #fff;
}

/* ---------- 3. Lista salonow w wojewodztwie ----------------
   ODWROCENIE KOLOROW (decyzja klienta 2026-08-20): tlo biale,
   tekst w kolorze dotychczasowego tla, czyli granatowy.

   PRZEPISANE 2026-09-16 po zgloszeniu klientki: "widok pojedynczego
   salonu sprzedazy - wyglada, jakby CSS-a polowy brakowalo".
   I faktycznie brakowalo - tyle ze nie polowy arkusza, a wiekszosci
   salonow na kazdej podstronie.

   CO BYLO NIE TAK:
   Poprzednia wersja wymieniala salony po identyfikatorach wziętych
   z arkusza SZABLONU 239 - '#headline-51-239', '#_rich_text-53-239'
   i kilka siostrzanych. Tymczasem kazda z 16 podstron wojewodztw ma
   WLASNY arkusz z wlasnymi identyfikatorami: na mazowieckiem sa to
   '#headline-60-864', '#_rich_text-61-864', '#headline-76-864'
   i tak dalej - po dwa na kazdy salon. Kazdy z nich ma w zrodle
   'color:#ffffff', bo caly ekran byl kiedys czarny.

   Skutek na zywej stronie (sprawdzony w przegladarce): z osmiu salonow
   na mazowieckiem czytelne byly DWA - te z identyfikatorami szablonu.
   Pozostale mialy bialy tekst na bialym tle: widac bylo wylacznie
   odnosniki e-mail i www, bo te maja wlasny kolor. Stad wrazenie
   "rozjechanego" ukladu - uklad byl caly czas poprawny, po prostu
   znikala z niego tresc. Ten sam blad byl na wszystkich 16 podstronach.

   JAK JEST TERAZ: nie wymieniamy juz elementow po identyfikatorach.
   Bierzemy wszystko, co lezy w sekcji z lista ('#section-15-239' -
   ten identyfikator pochodzi z szablonu, wiec jest na kazdej podstronie
   taki sam), i to niezaleznie od tego, ile salonow redakcja doda.

   WAGA - i dlaczego akurat taka:
   zrodlo to '#_rich_text-61-864 { color:#ffffff }', czyli (1,0,0).
   Nasz selektor 'body.page #section-15-239 .oxy-rich-text' to (1,1,1),
   wiec wygrywa. Celowo NIE uzywamy tu ':is()' ani dodatkowych klas:
   wyjatki nizej (salon firmowy na czerwono) maja dokladnie te sama
   wage (1,1,1) i wygrywaja KOLEJNOSCIA, bo stoja dalej w pliku.
   Podniesienie wagi reguly ogolnej zablokowaloby te wyjatki. */

body.page #section-15-239 {
    background-color: #fff;
}

/* Naglowek listy - "Salony sprzedazy - wojewodztwo ...". */
body.page #headline-16-239 {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-weight: 500;
    color: var(--navy-salon);
}

/* ---- Nazwy salonow ----
   Kreska pod nazwa jest w zrodle bialo-przezroczysta ('rgba(255,255,255,.6)') -
   na bialym tle znikala razem z tekstem. */
body.page #section-15-239 h1,
body.page #section-15-239 h2,
body.page #section-15-239 h3,
body.page #section-15-239 h4 {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-weight: 500;
    color: var(--navy-salon);
    border-bottom-color: rgba(11, 34, 64, .18);
}

/* ---- Dane teleadresowe ---- */
body.page #section-15-239 .oxy-rich-text,
body.page .salone-block {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-weight: 300;
    line-height: 1.7;
    color: #171A1E;
}

/* ---- Ikony i podpisy sekcji ----
   'Salony z mieszalnikiem - kolory mieszane na miejscu' plus ikonki
   przy nim. W zrodle biale ('#fancy_icon-119-864 { color:#ffffff }'),
   wiec na bialym tle byl tam pusty pas na 115 px wysokosci. */
body.page #section-15-239 .ct-fancy-icon,
body.page #section-15-239 .ct-fancy-icon svg {
    color: var(--navy-salon);
    fill: currentColor;
}

/* Kreski ozdobne wokol podpisu ('.oxel_horizontal_divider'). */
body.page #section-15-239 .oxel_horizontal_divider__line {
    border-color: rgba(11, 34, 64, .18);
    background-color: rgba(11, 34, 64, .18);
}

/* ---- Odnosniki (telefon, e-mail, www) ----
   Podkreslenie z 'universal.css' zostaje, zmieniamy tylko kolor. */
body.page #section-15-239 .oxy-rich-text a,
body.page .salone-block a {
    color: #DB0632;
}

body.page #section-15-239 .oxy-rich-text a:hover,
body.page .salone-block a:hover {
    color: var(--navy-salon);
}

/* ---- WYJATEK: salon firmowy ----
   Cztery podstrony wyrozniaja jeden salon czerwienia ('#ba0c2c'
   w arkuszu strony). Wyroznienie zostaje - na bialym tle czyta sie
   dobrze - i przechodzi na czerwien marki.

   Lista jest krotka i pochodzi z PRZEMIECENIA arkuszy wszystkich
   16 wojewodztw, a nie z domyslu. Zawezenie do identyfikatora strony
   jest konieczne: '#headline-79-864' jest czerwony na pomorskiem,
   ale na mazowieckiem to zwykly salon (te same identyfikatory
   elementow wystepuja na roznych stronach).

   Jesli redakcja doda albo przeniesie wyroznienie w builderze, ten
   salon po prostu zostanie granatowy jak reszta - czyli poprawnie,
   tylko bez akcentu. Zaden tekst nie zniknie.

   WAGA: regula ogolna wyzej ('body.page #section-15-239 h3') to (1,1,2) -
   identyfikator sekcji plus dwa selektory typu. Samo 'body.page-id-864
   #headline-28-239' daje (1,1,1), czyli MNIEJ, i wyjatek nie dzialal
   (sprawdzone w przegladarce: nazwa salonu firmowego zostawala granatowa).
   Dokladamy wiec ten sam identyfikator sekcji -> (2,1,1). */
body.page-id-239 #section-15-239 #headline-51-239,
body.page-id-857 #section-15-239 #headline-51-239,
body.page-id-864 #section-15-239 #headline-28-239,
body.page-id-868 #section-15-239 #headline-79-864 {
    color: #DB0632;
    border-bottom-color: #DB0632;
}

/* ============================================================
   MAPA POLSKI - ZEBY NIE WYGLADALA NA NIEAKTYWNA
   ============================================================
   Wtyczka CSSMap jest uruchamiana z 'mapStyle: "dark"' (inline w bloku
   kodu na stronie), wiec domyslnie siega po komplet grafik 'dark' -
   ciemnoszara Polska z wbudowanym ciemnym tlem. Na jasnym tle makiety
   wygladala jak wygaszony obrazek. Klientka: "ona taka wyglada, jakby
   byla nieaktywna".

   PROBA Z 2026-08-20 I DLACZEGO NIE ZADZIALALA:
   Byla tu juz podmiana grafiki na komplet 'default', ale selektor
   zaczynal sie od '.cssmap-650' - czyli lapal mape TYLKO wtedy, gdy
   wtyczka wyrenderuje ja w wariancie 650 px.

   Tymczasem CSSMap dobiera rozmiar do szerokosci kontenera i dokleja
   odpowiednia klase. Sprawdzone w przegladarce przy oknie 1440 px:
   mapa dostaje 'cssmap-540' i grafike 'dark/pl-540.png'. Regula nigdy
   sie wiec nie zapinala i mapa przez caly czas byla ciemna - dokladnie
   to, co klientka zobaczyla na spotkaniu.

   Wtyczka ma dziewiec rozmiarow (210, 250, 320, 430, 540, 650, 750,
   850, 960) i kazdy ma wlasny plik, wiec nie da sie tego zalatwic jedna
   regula - nazwa pliku jest czescia adresu. Wypisujemy komplet.

   KTORY MOTYW: 'blue'. Komplety maja identyczne wymiary (1706x1498),
   wiec wspolrzedne w sprite'cie sa te same i podmiana niczego nie
   rozjezdza. 'default' jest prawie bialy - czytelny, ale na kremowym
   tle rozplywa sie i dalej nie wyglada na klikalny. 'blue' ma pelne
   wypelnienie, czyli to, czego brakowalo.

   Sam blekit wtyczki (#3B87C9) jest obcy palecie, dlatego sciagamy go
   filtrem do granatu marki: 'brightness(.55)' sprowadza go w okolice
   #204A6E, a 'saturate(1.35)' oddaje mu nasycenie stracone przy
   przyciemnianiu. Wynik siedzi w rodzinie '--navy' (#0B2240), a stan
   najechania - ciemniejszy pas z tego samego sprite'a - odcina sie
   od reszty kraju mocniej niz przedtem.
   ============================================================ */

body.page .cssmap-210 .poland.cssmap-dark,
body.page .cssmap-210 .poland.cssmap-dark .bg,
body.page .cssmap-210 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-210.png');
}

body.page .cssmap-250 .poland.cssmap-dark,
body.page .cssmap-250 .poland.cssmap-dark .bg,
body.page .cssmap-250 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-250.png');
}

body.page .cssmap-320 .poland.cssmap-dark,
body.page .cssmap-320 .poland.cssmap-dark .bg,
body.page .cssmap-320 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-320.png');
}

body.page .cssmap-430 .poland.cssmap-dark,
body.page .cssmap-430 .poland.cssmap-dark .bg,
body.page .cssmap-430 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-430.png');
}

body.page .cssmap-540 .poland.cssmap-dark,
body.page .cssmap-540 .poland.cssmap-dark .bg,
body.page .cssmap-540 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-540.png');
}

body.page .cssmap-650 .poland.cssmap-dark,
body.page .cssmap-650 .poland.cssmap-dark .bg,
body.page .cssmap-650 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-650.png');
}

body.page .cssmap-750 .poland.cssmap-dark,
body.page .cssmap-750 .poland.cssmap-dark .bg,
body.page .cssmap-750 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-750.png');
}

body.page .cssmap-850 .poland.cssmap-dark,
body.page .cssmap-850 .poland.cssmap-dark .bg,
body.page .cssmap-850 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-850.png');
}

body.page .cssmap-960 .poland.cssmap-dark,
body.page .cssmap-960 .poland.cssmap-dark .bg,
body.page .cssmap-960 .poland-cities.cssmap-dark {
    background-image: url('/wp-content/plugins/my-custom-functionality-master/assets/blue/pl-960.png');
}

/* Sciagniecie blekitu wtyczki do granatu marki.
   UWAGA: 'filter' dziala na cale poddrzewo, wiec obejmuje takze dymki
   z nazwami wojewodztw, ktore leza w tej samej liscie. Dlatego nizej
   dostaja one filtr odwrotny - inaczej biale dymki zrobilyby sie szare. */
body.page ul.poland.cssmap-dark {
    filter: brightness(.55) saturate(1.35);
}

/* Dymki z nazwa wojewodztwa: w motywie 'dark' sa biale z ciemnym tekstem -
   na jasnym tle wygladaja plasko, wiec dokladamy im ramke i cien.

   Filtr odwrotny do tego z mapy: 1/0.55 = 1.82, 1/1.35 = 0.74.
   Skladanie filtrow jest przemienne w tym zakresie, wiec dymek wraca
   do swojego koloru, a mapa pod nim zostaje granatowa. */
body.page .cssmap-dark li a,
body.page .cssmap-dark li a:hover {
    filter: brightness(1.82) saturate(.74);
    border: 1px solid rgba(11, 34, 64, .14);
    box-shadow: var(--shadow-mh);
    color: #0B2240;
    text-shadow: none;
}

/* Sekcja mapy na jasnym tle makiety. */
body.page #section-7-81 {
    background-color: #FCFAF6;
}

body.page #headline-8-81 {
    color: #0B2240;
}


/* ============================================================
   OPRAWA EKRANU Z MAPA (markup dokladany przez salony.js)
   ============================================================ */

body.page .bmx-sal-sekcja {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

/* Poswiata w tle - ten sam chwyt co w hero sklepu i wyszukiwarki kolorow. */
body.page .bmx-sal-sekcja::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(46% 56% at 14% 12%, rgba(219, 6, 50, .07), transparent 70%),
        radial-gradient(52% 62% at 88% 20%, rgba(11, 34, 64, .10), transparent 72%);
}

/* Stary naglowek zawieral polskie i angielskie zdanie sklejone ukosnikiem
   ("Wybierz rejon z mapy / Select an area from the map") - serwis ma
   osobna wersje EN, wiec tutaj jest zbedny. Skrypt 'salony.js' dokłada
   mu te klase i wstawia nad nim wlasciwy naglowek.

   POPRAWKA 2026-09-16 - WAGA. Bylo 'body.page .bmx-sal-stary-naglowek',
   czyli (0,2,1). Zrodlo ustawia '#headline-8-81 { display:flex }' -
   waga (1,0,0), wiec identyfikator wygrywal i stare zdanie zostawalo
   na stronie POD nowym naglowkiem. Widac to bylo na zrzucie ze spotkania:
   dwa naglowki jeden nad drugim, a pod nimi flaga.

   Dokladamy identyfikator sekcji, w ktorej ten naglowek lezy -> (2,1,1). */
body.page #section-7-81 .bmx-sal-stary-naglowek { display: none; }

.bmx-sal-hero {
    max-width: 720px;
    margin: 0 auto 34px;
    text-align: center;
}

.bmx-sal-hero__e {
    display: inline-block;
    margin-bottom: 12px;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #DB0632;
}

.bmx-sal-hero__h {
    margin: 0;
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-weight: 400;
    font-size: clamp(1.8rem, 3.8vw, 2.9rem);
    line-height: 1.08;
    letter-spacing: -.02em;
    color: #0B2240;
}

.bmx-sal-hero__h em { font-style: italic; color: #DB0632; }

.bmx-sal-hero__l {
    margin: 16px auto 0;
    max-width: 54ch;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .97rem;
    font-weight: 300;
    line-height: 1.65;
    color: #6C7079;
}

/* Trzy fakty - te same, ktore powtarzamy w sklepie i na karcie produktu. */
.bmx-sal-fakty {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 34px;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
}

.bmx-sal-fakty li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-left: 14px;
    border-left: 2px solid #DB0632;
    text-align: left;
}

.bmx-sal-fakty b {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: #0B2240;
}

.bmx-sal-fakty span {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .78rem;
    font-weight: 300;
    color: #6C7079;
}

/* ---------- Lista wojewodztw pod mapa ----------------------
   Mapa to obrazek ze strefami klikalnymi - na telefonie trafienie
   w mniejsze wojewodztwo jest loteria, a z klawiatury nie da sie jej
   obsluzyc w ogole. Te same odnosniki w formie pigulek rozwiazuja oba
   problemy i nie wymagaja drugiego zrodla danych. */
.bmx-sal-lista {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    max-width: 900px;
    margin: 30px auto 0;
}

.bmx-sal-woj {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    border: 1px solid rgba(11, 34, 64, .13);
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .76rem;
    font-weight: 500;
    color: #0B2240;
    text-decoration: none;
    transition: background .3s cubic-bezier(.22,1,.36,1), color .3s cubic-bezier(.22,1,.36,1),
                border-color .3s cubic-bezier(.22,1,.36,1), transform .3s cubic-bezier(.22,1,.36,1);
}

/* HOVER PROWADZI 'pedzel.css' - tu podajemy mu tylko dwa kolory:
   czym maluje i co jest pod farba w spoczynku.

   Polecenie klientki 2026-09-17: "chce zeby mialy normalna animacje
   na hover jak inne buttony na stronie". Wczesniej byla tu zwykla
   zamiana tla, zgodna z regula chipow - ta mowi, ze chip jest FILTREM
   i pedzla nie dostaje. Tutaj to jednak nie filtr, tylko nawigacja
   do szesnastu podstron, wiec zachowuje sie jak przycisk.
   Zapisane w design.md przy regule chipow. */
.bmx-sal-woj {
    --bmx-farba: #0B2240;
    --bmx-tlo: rgba(255, 255, 255, .78);
}

.bmx-sal-woj:hover,
.bmx-sal-woj:focus-visible {
    transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
    .bmx-sal-woj { transition: none; }
}

/* ============================================================
   PODSTRONA KOORDYNATORA REGIONU (2026-09-01)
   /nasi-koordynatorzy-regionow/przedstawiciele-handlowi-*

   Szablon 239 - ten sam, ktory obsluguje podstrony wojewodztw przy
   salonach, wiec reguly wyzej (naglowek, kolor odnosnikow w '.salone-block')
   juz tu dzialaja. Brakowalo oprawy samej wizytowki: w zrodle nazwisko,
   e-mail i telefon leza jako trzy osobne bloki bez zadnego powiazania
   wizualnego, rozciagniete na cala szerokosc kolumny.

   Sklejamy je w KARTE. Zadnej zmiany tresci - tylko uklad.
   Sprawdzone na czterech wojewodztwach (dolnoslaskie, lubelskie,
   mazowieckie, pomorskie): struktura jest wszedzie identyczna.

   ZAWEZENIE DO 'body.parent-pageid-430' JEST KONIECZNE.
   Podstrony SALONOW uzywaja tego samego szablonu 239 i maja te same
   '#section-15-239', '#headline-16-239' i '#new_columns-20-239' -
   tyle ze tam ten kontener miesci LISTE salonow (po kilka '.salone-block'
   na strone), a nie pojedyncza wizytowke. Karta z bialym tlem i cieniem
   zepsulaby im uklad.

   '430' to identyfikator strony /nasi-koordynatorzy-regionow/, czyli
   rodzica calej galezi - salony maja 'parent-pageid-81'. Sprawdzone
   w klasach '<body>' obu ekranow.
   ============================================================ */

/* Sekcja z wizytowka - oddech i kremowe tlo, zeby karta miala sie
   na czym odcinac. */
body.parent-pageid-430 #section-15-239 {
    padding-block: clamp(30px, 3.6vw, 58px);
    background-color: var(--paper-salon, #FCFAF6);
}

/* Naglowek "Koordynator regionu - wojewodztwo ..." */
body.parent-pageid-430 #headline-16-239 {
    /* Zrodlo daje temu naglowkowi '#headline-16-239 { display:flex;
       justify-content:center }' - waga (1,0,0). W kontenerze flex
       'text-align' nie ustawia polozenia tekstu, wiec nasze
       'text-align:left' bylo bezczynne: napis stal na srodku,
       a kreska pod nim przy lewej krawedzi.
       Nasz selektor to (1,1,1), czyli o wlos wiecej niz zrodlo.
       Ogolna regula z 'layout.css' (0,3,3) tego nie przebija -
       identyfikator wygrywa z dowolna liczba klas. */
    display: block;
    max-width: 62rem;
    margin-inline: auto;
    text-align: left;
}

/* AKCENT: celowo BEZ wlasnej reguly.
   Bylo tu 'body.parent-pageid-430 #headline-16-239:after { left:0 }'
   o wadze (1,1,2). Przebijalo to pomiar z 'akcent.js' (klasa o wadze
   (0,2,2)) i przypinalo kreske do lewej krawedzi NIEZALEZNIE od tego,
   jak naglowek naprawde wyglada.

   Zmierzone na '/nasi-koordynatorzy-regionow/przedstawiciele-handlowi-mazowieckie/':
   naglowek "Kierownik ds. Sprzedazy (Polska)" ma luz 158 px z lewej
   i 158 px z prawej - czyli jest wysrodkowany - a kreska stala pod
   lewa krawedzia, 180 px od pierwszej litery.

   Decyzja klientki z 2026-09-16: "nie moze miec sztywnej zasady srodek
   czy lewa, bo to jest zalezne od ukladu". Zostawiamy wiec rozstrzygniecie
   pomiarowi - patrz 'akcent.js'. */

/* Odstep miedzy kreska pod naglowkiem a karta - poprawka klienta
   2026-09-25: "Zrob odstep pomiedzy podkresleniem a polem tekstowym przy
   kierowniku ds. Sprzedazy".
   Wspolna klasa naglowkow '.heading-divider' daje 'margin-bottom: 25px'
   (universal.css) i tyle maja naglowki "Koordynator regionu ...".
   Naglowki "Kierownik ds. Sprzedazy (Polska)" sa kopia elementu, ktory
   w CSS strony ma nadpisane 'margin-bottom: 0' na IDENTYFIKATORZE - i na
   kazdej stronie ten identyfikator jest inny (np. '#headline-16-239' na
   mazowieckim, '#headline-51-909' na lubuskim, '#headline-61-434' na
   kujawsko-pomorskim). Karta przyklejala sie do kreski: zmierzone 0 px
   na 16 stronach wojewodztw z ta sekcja.
   Dlatego regula strukturalna na klase, z tym samym chwytem co w blogu:
   '#b' w ':is()' nie istnieje w dokumencie, podnosi tylko wage do (1,1,1),
   czyli ponad identyfikator z CSS strony (1,0,0). Naglowki koordynatorow
   maja juz 25 px, wiec tam nic sie nie zmienia; kazda kolejna sekcja
   dopisana w builderze dostanie odstep sama. */
body.parent-pageid-430 :is(.heading-divider, #b) {
    margin-bottom: 25px;
}

/* ---- Karta ----
   PRZEPISANE 2026-09-16 z '#new_columns-20-239' na warunek STRUKTURALNY.

   Powod: mazowieckie ma DWIE osoby i druga siedzi w osobnym bloku
   '#new_columns-76-897', ktorego regula na identyfikatorze nie obejmowala.
   Skutek: Rafal miał biala karte z cieniem, a Anna wisiala luzem na tle -
   bez tla, bez ramki, bez zaokraglenia.

   Karta to teraz "blok kolumn, w ktorym jest wizytowka" - czyli taki,
   ktory zawiera '.salone-block'. Sprawdzone na trzech wojewodztwach:
   warunek trafia doklandie w bloki osob i w nic wiecej. Kazda kolejna
   osoba dopisana w builderze dostanie karte sama z siebie.

   Waga wystarczy (0,3,1): zrodlo NIE deklaruje na tych kontenerach
   ani tla, ani ramki, ani cienia - sprawdzone w '897.css' i '911.css'. */
body.parent-pageid-430 .ct-new-columns:has(.salone-block) {
    box-sizing: border-box;
    max-width: 62rem;
    margin-inline: auto;
    padding: clamp(20px, 2.4vw, 32px);
    border: 1px solid rgba(11, 34, 64, .1);
    border-radius: var(--r);
    background: #fff;
    box-shadow: var(--shadow-m);
}

/* Nazwisko koordynatora - najwazniejsza informacja na tej stronie,
   wiec dostaje krój szeryfowy i wyrazny stopien. */
/* Malopolskie ma INNY wariant szablonu: nazwisko siedzi w '#headline-53-911',
   a kontakty w '#_rich_text-54-911' (bloki '911' zamiast '239'). Rola jest
   ta sama, wiec obejmujemy oba zestawy jednym selektorem zamiast pisac
   drugi komplet regul. Sprawdzone: to jedyne wojewodztwo z tym wariantem
   i jedyne z DWIEMA osobami. */
/* POPRAWKA 2026-09-25 (poprawki.md): reguly na identyfikatorach nie obejmowaly
   DRUGIEJ osoby w karcie - na kujawsko-pomorskim Arkadiusz Zaluski siedzi
   obok Tomasza Gracza w '#headline-52-434' / '#_rich_text-53-434' i mial
   mniejsze nazwisko (24 px zamiast 28), brak czerwonego podpisu i inne
   odnosniki. Dokladamy warunek STRUKTURALNY: kazde nazwisko i kazda
   wizytowka w karcie koordynatora '#new_columns-20-239' (ten identyfikator
   ma karta koordynatora na WSZYSTKICH 18 stronach wojewodztw; sekcje
   "Kierownik ds. Sprzedazy (Polska)" maja inne, wiec karta Anny
   Grzegorczyk zostaje bez zmian). Kolejna osoba dopisana w builderze do
   karty koordynatora dostanie ten sam wyglad sama. */
body.parent-pageid-430 #headline-28-239,
body.parent-pageid-430 #headline-53-911,
body.parent-pageid-430 #new_columns-20-239 .ct-headline {
    margin: 0 0 4px;
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 500;
    line-height: 1.2;
    color: var(--navy-salon, #0B2240);
}

/* Podpis roli - w zrodle go nie ma, wiec dokladamy go CSS-em zamiast
   ruszac tresc w Oxygenie. Dzieki temu redakcja nic nie musi wpisywac,
   a strona zyskuje kontekst. */
/* POPRAWKA 2026-09-25 (poprawki.md): podpis dostaje KAZDA osoba w karcie
   koordynatora. Wczesniej wariant '911' (malopolskie) byl celowo pominiety,
   bo w tresci stoi "Kierownik Regionu" - ale ta sama Katarzyna Skotniczny
   na czterech innych wojewodztwach ('#headline-28-239', ta sama tresc
   z "Kierownik Regionu") podpis miala, wiec malopolskie wygladalo jak blad.
   Tak samo Arkadiusz Zaluski na kujawsko-pomorskim (druga osoba w karcie). */
body.parent-pageid-430 #headline-28-239::after,
body.parent-pageid-430 #new_columns-20-239 .ct-headline::after {
    content: "Przedstawiciel handlowy Benjamin Moore";
    display: block;
    margin-top: 6px;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: #DB0632;
}

/* ---- Dane kontaktowe ---- */
body.parent-pageid-430 #_rich_text-49-239,
body.parent-pageid-430 #_rich_text-54-911,
body.parent-pageid-430 #new_columns-20-239 .salone-block {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(11, 34, 64, .08);
}

/* POPRAWKA 2026-09-01: bylo tu 'display:flex' z 'gap:10px 28px'.
   Zrodlo to JEDEN akapit, w ktorym e-mail i telefon rozdziela '<br>':

       <p>e-mail: <a>...</a><br />tel. kom.: <a>...</a></p>

   Przy 'display:flex' kazdy fragment tekstu i kazdy odnosnik staje sie
   osobnym elementem ukladu, wiec 'gap' rozpychal je WSZYSTKIE - takze
   etykiete od jej wlasnej wartosci ("e-mail:" od adresu). Do tego
   wiersze ladowaly obok siebie zamiast jeden pod drugim.

   Wracamy do zwyklego bloku: '<br>' znow dziala, kazdy kontakt jest
   w swojej linii, a odstep miedzy etykieta a wartoscia to zwykla spacja
   ze zrodla. Odleglosc miedzy wierszami reguluje samo 'line-height'. */
/* Wizytowka drugiej osoby na kujawsko-pomorskim ma wiersze w '<div>',
   a nie w '<p>' - stad ':is(p, div)'. */
body.parent-pageid-430 #_rich_text-49-239 p,
body.parent-pageid-430 #_rich_text-54-911 p,
body.parent-pageid-430 #new_columns-20-239 .salone-block :is(p, div) {
    display: block;
    margin: 0;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .95rem;
    line-height: 1.5;
    color: #3F4750;
}

body.parent-pageid-430 #_rich_text-49-239 a,
body.parent-pageid-430 #_rich_text-54-911 a,
body.parent-pageid-430 #new_columns-20-239 .salone-block a {
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(219, 6, 50, .35);
    transition: color .25s ease, border-color .25s ease;
}

body.parent-pageid-430 #_rich_text-49-239 a:hover,
body.parent-pageid-430 #_rich_text-54-911 a:hover,
body.parent-pageid-430 #new_columns-20-239 .salone-block a:hover {
    border-bottom-color: currentColor;
}

/* Zapytanie medialne dla waskiego ekranu bylo potrzebne tylko przy
   ukladzie 'flex' - blok i tak lamie sie naturalnie. Usuniete. */


/* ---- Uklad karty: pusta kolumna i polowiczna szerokosc ----
   POPRAWKA 2026-09-16. Klientka: "nasi koordynatorzy regionu, tez nam
   sie tu rozjezdza... jak sobie klikniemy, to nam tu tez jakos tak cos
   ucina".

   Sprawdzone w przegladarce na dwoch wariantach szablonu:

   1. WIEKSZOSC WOJEWODZTW (np. opolskie): karta ma jedna kolumne
      szeroka na 926 px, ale blok z trescia w srodku ma w zrodle
      'width:50%', czyli 443 px. Nazwisko i kontakty siedzialy wiec
      w lewej polowie, a prawa polowa karty byla pusta.

   2. MALOPOLSKIE: karta ma DWIE kolumny po 463 px. W drugiej jest
      pusty blok o wysokosci 0 - zostal po drugiej osobie, ktorej juz
      nie ma w tresci. Pusta kolumna dalej rezerwowala polowe karty,
      wiec wizytowka byla wciśnieta w lewa strone.

   Obie sytuacje zalatwia jedna zasada: kolumna bez nazwiska nie jest
   kolumna, a kolumna z nazwiskiem bierze cala dostepna szerokosc.
   Gdy redakcja dopisze druga osobe, kolumny wroca same - warunek
   jest na TRESCI, a nie na liczbie kolumn. */

/* Kolumna bez nazwiska ('h3') nie ma czego pokazac - znika z ukladu. */
body.parent-pageid-430 #section-15-239 .ct-new-columns:has(.salone-block) > .ct-div-block:not(:has(h3)) {
    display: none;
}

/* Kolumny z trescia dziela karte po rowno; przy jednej bierze calosc. */
body.parent-pageid-430 #section-15-239 .ct-new-columns:has(.salone-block) > .ct-div-block {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
}

/* POPRAWKA 2026-09-25: na telefonie dwie osoby w jednej karcie
   (kujawsko-pomorskie) staly obok siebie w kolumnach po 154 px, a adresy
   e-mail wychodzily poza karte (zmierzone przy 390 px: tresc 190 i 248 px).
   Ponizej 768 px kazda osoba bierze caly wiersz - kolumny zawijaja sie
   same, bo kontener ma 'flex-wrap: wrap'. */
@media (max-width: 767px) {
    body.parent-pageid-430 #section-15-239 .ct-new-columns:has(.salone-block) {
        row-gap: 30px;
    }

    body.parent-pageid-430 #section-15-239 .ct-new-columns:has(.salone-block) > .ct-div-block {
        flex-basis: 100%;
    }
}

/* Blok w srodku kolumny mial w zrodle 'width:50%' - stad pusta prawa
   polowa karty na kazdym wojewodztwie poza malopolskiem. */
/* Kotwica '#section-15-239' jest tu konieczna: zrodlo daje wewnetrznemu
   blokowi 'width:50%' NA IDENTYFIKATORZE (1,0,0), wiec sam warunek
   strukturalny (0,4,1) by przegral. Z identyfikatorem sekcji mamy (1,4,1). */
body.parent-pageid-430 #section-15-239 .ct-new-columns:has(.salone-block) .ct-div-block .ct-div-block {
    width: 100%;
    max-width: none;
}

/* ============================================================
   WERSJA ANGIELSKA ROZDROZA - '/en/find-the-store/' (strona 6937)
   Dolozone 2026-09-16.

   ROZJAZD, KTORY TO ZAMYKA: polskie '/salon-sprzedazy/' zostalo
   rozjasnione juz w sierpniu regula na '#new_columns-118-235'.
   Bliznniak angielski to OSOBNA strona w Oxygenie, z wlasnym kompletem
   identyfikatorow ('-6937') - nasza regula go nie dotykala i sekcja
   zostawala CZARNA ('#section-129-6937 { background-color:#000000 }'),
   z fabryczna, stara czerwienia '#ba0c2c' na spodzie kafelkow.
   Czyli ten sam ekran wygladal inaczej w obu jezykach.

   Zasada na przyszlosc jest zapisana w 'design.md', rozdzial
   "PL i EN": kazda zmiana wizualna ma dwa adresy, a tabela par
   PL-EN jest tam wypisana. Reguly ID-owe NIE przenosza sie miedzy
   wersjami jezykowymi - trzeba je dopisac swiadomie.

   Uklad jest inny niz po polsku (kafelek obracany '.oxel_flipbox'
   zamiast bloku z przyciskiem), wiec nie odtwarzamy go jeden do
   jednego - wyrownujemy PALETE i KSZTALT, czyli to, co w makiecie
   jest wspolne dla calego serwisu.
   ============================================================ */

body.page #section-129-6937 {
    background-color: #FCFAF6;
}

/* Kafelki - zaokraglenie ze skali i przyciecie zawartosci do naroznikow. */
body.page #div_block-144-6937,
body.page #div_block-133-6937 {
    border-radius: var(--r);
    overflow: hidden;
}

/* Spod kafelka: stara czerwien marki na nowa. */
body.page #div_block-150-6937,
body.page #div_block-139-6937 {
    background-color: #DB0632;
}

/* Odnosnik na spodzie kafelka. Efekt zamalowania dokłada 'pedzel.css'
   (regula na komponencie '.oxel_flipbox__back .ct-link'); tutaj tylko
   ksztalt i kolory. Farba JASNA na czerwonym tle, wiec napis pod nia
   musi byc ciemny, a zwloki odwrocone - patrz 'pedzel.css', blok
   "FARBA JASNA". */
body.page #link-153-6937,
body.page #link-142-6937 {
    --bmx-farba: #fff;
    --bmx-tlo: #DB0632;
    --bmx-tekst: #0B2240;
    --bmx-zwloka-wej: 0s;
    --bmx-zwloka-wyj: .35s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .85);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   LEGENDA KROPLI NA LISTACH WOJEWODZTW
   Zgloszenie klientki ze spotkania (A3): "nie czaje tej gigantycznej
   kropli z duzym odstepem i malutkim dopiskiem 'Salony z mieszalnikiem
   - kolor i produkty dostepne od reki'".

   ZMIERZONE PRZED POPRAWKA (mazowieckie, 1440 px):
       ikona ................ 55 x 55 px
       odstep do podpisu .... 116 px
       podpis ............... Playfair Display 14 px
       rzad ................. wysrodkowany, przy liscie salonow
                              dosunietej do LEWEJ krawedzi
   Trzy rzeczy naraz: ikona kilka razy wieksza od tekstu, ktory opisuje,
   pustka miedzy nimi szersza od samego podpisu, i os inna niz reszta
   strony. Stad wrazenie, ze to dwa niezwiazane elementy.

   CO JEST TERAZ: jeden wiersz - kropla i podpis tuz obok siebie,
   WYSRODKOWANE jako calosc. Ikona schodzi do rozmiaru napisu, a podpis
   przechodzi na pismo tekstowe, bo to etykieta funkcjonalna, a nie naglowek.

   Wsrodkowania nie robimy dodatkowym kontenerem - wiersz jest 'flex',
   wiec 'justify-content:center' zbiera ikone i podpis w jedna grupe
   i stawia ja na srodku. Odstep miedzy nimi trzyma 'gap', wiec nie
   rozjedzie sie przy dluzszym napisie ani przy zawijaniu.

   SELEKTOR STRUKTURALNY, NIE IDENTYFIKATOROWY: legendy sa dzis tylko
   na dwoch listach (mazowieckie ma dwie - "z mieszalnikiem" i "bez
   mieszalnika", pomorskie jedna), ale to tresc, ktora klientka moze
   dopisac na kazdej z sesnastu. Reguly zapinaja sie o UKLAD: wiersz
   kolumn, ktory zawiera ikone i nic poza nia oraz podpis.

   Waga: zrodlo trzyma wyrownanie i rozmiary na identyfikatorach
   (1,0,0), wiec potrzebne jest '!important'. Ten sam przypadek co przy
   amerykanskich flagach i czarnych sekcjach - patrz design.md. */

body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px;

    /* LEGENDA JEST PODZIALEM UKLADU - zastepuje poziomy separator.
       Polecenie 2026-09-17: "zamiast dividera niech po prostu forma tego
       napisu rozdziela uklad z mieszalnikiem od ukladu bez mieszalnika".

       Podzial robia trzy rzeczy naraz: duzy odstep od poprzedniej grupy,
       wloskowata kreska nad napisem i wlasny oddech pod nia. Napis 18 px
       ma wiec czym rozdzielac, a strona nie potrzebuje osobnego ozdobnika. */
    position: relative;
    margin-top: clamp(44px, 5vw, 72px);
    margin-bottom: clamp(20px, 2.4vw, 28px);
    padding-top: clamp(30px, 3.4vw, 40px);
}

/* OZDOBNY AKCENT ZAMIAST WLOSKOWATEJ KRESKI.
   Polecenie 2026-09-17: "na tym zamiast cienkiej kreski daj ozdobny
   divider". Pelna szerokosc kreski dzielila strone na pol jak linijka;
   akcent zbiera podzial do jednego znaku nad napisem.

   Ten sam gradient co w poziomym separatorze ('layout.css') i pod
   naglowkami - granat -> czerwien -> granat. SYMETRYCZNY, bo separator
   nie ma kierunku czytania; klin z podkreslnika naglowka wygladalby
   tu jak strzalka.

   'position:absolute' zamiast dodatkowego elementu w siatce: wiersz jest
   'flex' i wysrodkowany, wiec pseudoelement w przeplywie staby sie
   TRZECIM elementem obok ikony i napisu i rozpychal wiersz. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    /* TE SAME tokeny co podkreslnik naglowkow i srodek separatora
       (patrz ':root' w 'bm-newhome.css'). Wczesniej bylo tu wlasne
       72 x 3 px z symetrycznym gradientem - i to wlasnie ta roznica
       byla widoczna na jednej stronie obok akcentu spod naglowka. */
    width: var(--akcent-szer);
    height: var(--akcent-wys);
    background-image: var(--akcent-tlo);
    clip-path: var(--akcent-klin);
}

/* PIERWSZA legenda stoi tuz pod naglowkiem strony - tam nie ma czego
   rozdzielac, wiec kreska i duzy odstep sa zbedne. */
body.page :is(h1, h2, h3) + .ct-new-columns:has(.ct-fancy-icon):has(h3) {
    margin-top: clamp(10px, 1.6vw, 18px);
    padding-top: 0;
}

/* Pierwsza legenda nie dostaje akcentu - stoi tuz pod naglowkiem strony,
   ktory ma juz swoj wlasny podkreslnik. Dwa akcenty jeden pod drugim
   powielalyby ten sam znak. */
body.page :is(h1, h2, h3) + .ct-new-columns:has(.ct-fancy-icon):has(h3)::before {
    content: none;
}

/* Poziomy separator jest tu juz zbedny - podzial robi sama legenda,
   a dwa podzialy jeden pod drugim to halas.

   ZAKRES: 'salony.css' laduje sie WYLACZNIE na stronach salonow (patrz
   warunek w 'bm-newlayout.php'), wiec regula nie wychodzi poza nie.
   Separator uzyty gdziekolwiek indziej zachowuje wyglad opisany
   w 'layout.css'.

   DLACZEGO NIE WARUNKOWO: pierwsza wersja brzmiala
   '.oxel_horizontal_divider:has(+ .ct-new-columns:has(...))' i nie
   dzialala - CSS NIE POZWALA ZAGNIEZDZAC ':has()' w ':has()'. Selektor
   jest wtedy niepoprawny i przegladarka odrzuca cala regule po cichu;
   zmierzone: separator dalej mial 'display' inny niz 'none'. */
body.page .oxel_horizontal_divider {
    /* '!important' KONIECZNE: zrodlo trzyma 'display:flex' na identyfikatorze
       bloku ('#div_block-136-864' = 1,0,0), a ta regula ma (0,2,1).
       Zmierzone bez niego: separator dalej mial 'display: flex'. */
    display: none !important;
}

/* Kolumny w tym wierszu ZNIKAJA Z UKLADU. 'display:contents' sprawia,
   ze same pudelka nie powstaja, a ikona i podpis staja sie bezposrednimi
   elementami wiersza - wiec ich szerokosci przestaja cokolwiek znaczyc.

   DLACZEGO NIE 'width:auto': probowalismy i przegralo. W zrodle kolumna
   z ikona ma 217 px na desktopie, a na waskim ekranie 100% - i oba zapisy
   siedza na IDENTYFIKATORZE (1,0,0). Przy remisie na '!important'
   rozstrzyga specyficznosc, wiec regula klasowa (0,4,2) przegrywa nawet
   z '!important'. Zmierzone na 390 px: obie kolumny nadal mialy po 350 px,
   ikona lezala 176 px od podpisu, a grupa wychodzila poza wiersz.

   Licytowanie sie na wage wymagaloby wpisania identyfikatorow, ktore sa
   rozne na kazdej stronie. 'display' zrodlo ustawia BEZ '!important',
   wiec tu wygrywamy bez zadnej listy. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) > .ct-div-block {
    display: contents !important;
}

/* Kropla do rozmiaru napisu. Wysokosc podajemy obu warstwom: samemu
   pudelku i rysunkowi w srodku - inaczej SVG zostaje przy 55 px
   i rozpycha wiersz od srodka. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) .ct-fancy-icon {
    /* 26 px, czyli mniej wiecej wysokosc wiersza napisu - ikona ma stac
       przy tekscie jak znak, a nie gorowac nad nim. Podniesione z 22 px
       razem ze stopniem podpisu. */
    width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    line-height: 0;
}

body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) .ct-fancy-icon svg {
    width: 26px !important;
    height: 26px !important;
    display: block;
}

/* Podpis: pismo tekstowe zamiast szeryfowego, bo to etykieta, a nie
   naglowek sekcji. Stopien podniesiony z 14 na 15 px - przy 22-pikselowej
   ikonie 14 px czytalo sie jak przypis. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
                 Roboto, Helvetica, Arial, sans-serif !important;
    /* PODNIESIONE 2026-09-17: "to wazna informacja, powinna byc widoczna".
       Bylo '.9375rem/400' (15 px) - stopien przypisu. Teraz 1.125rem/500,
       czyli tyle, co lead sekcji ('.bmx-lead'), bo to zdanie rozstrzyga,
       czy klient pojedzie do tego salonu po kolor od reki, czy zamowi. */
    font-size: 1.125rem !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    /* Wyrownanie do LEWEJ, mimo ze cala grupa jest wysrodkowana.
       Na desktopie nie robi to roznicy - pudelko podpisu jest dopasowane
       do tekstu. Na waskim ekranie podpis zajmuje cala pozostala szerokosc
       i przy wysrodkowaniu ODKLEJAL SIE od kropli: miedzy znakiem a
       pierwsza litera robila sie przerwa. Do lewej tekst zaczyna sie tuz
       za ikona, czyli tak, jak ma wygladac. */
    text-align: left !important;
    /* Granat tresci zamiast szarosci - przy wiekszym stopniu szary
       czytal sie jak dopisek techniczny. */
    color: #171A1E !important;
}

/* Puste kolumny rusztowania. Przy 'display:contents' i tak nie rysuja
   nic, ale zapis zostaje na wypadek przegladarki bez jego obslugi. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) > .ct-div-block:empty {
    display: none !important;
}

/* Waski ekran: podpis ma sie lamac OBOK kropli, a nie pod nia.
   'flex:0 1 auto' plus 'min-width:0' pozwalaja mu sie zwezic i zawinac
   wewnatrz wlasnego pudelka; przy zawijaniu calej grupy ('flex-wrap:wrap')
   kropla zostawala sama w pierwszym wierszu, co zmierzylismy na 390 px:
   wysokosc rosla do 98 px, a ikona wisiala nad tekstem. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) h3 {
    flex: 0 1 auto;
    min-width: 0;
}

/* Kropla nigdy sie nie kurczy - to znak, nie tekst. */
body.page .ct-new-columns:has(.ct-fancy-icon):has(h3) .ct-fancy-icon {
    flex: 0 0 auto;
}

/* ============================================================
   KARTY "ZNAJDZ SALON" I "KOORDYNATORZY" - KSZTALT Z WYTYCZNYCH
   Zgloszenie klientki 2026-09-17: "brakuje border radiusow i lekkich
   obrysow ktore wystepuja przy kartach".

   Miala racje - obie kolumny mialy biale tlo, ale zerowy promien,
   zerowy obrys i zdjecie dochodzace do ostrej krawedzi. Reszta serwisu
   ma w tym miejscu karte: promien '--r', obrys 1 px i uniesienie
   na hover.

   Kolumna JEST karta: zawiera blok z naglowkiem i przyciskiem, pod nim
   zdjecie, a na wierzchu rozciagniety odnosnik z 'karty.js'.
   'overflow:hidden' jest konieczne, zeby to zdjecie przycielo sie
   do promienia karty.

   Wartosci te same co przy kafelkach kategorii i na rozdrozu - jeden
   ksztalt karty w calym serwisie.
   ============================================================ */

body.page #new_columns-118-235 {
    gap: var(--gap-karty);

    /* SZEROKOSC TRZYMA ODSTEP WEWNETRZNY, NIE 'max-width'.

       Karty szly na cala szerokosc okna (1600 px), podczas gdy reszta
       tresci tej strony trzyma sie 1360 px - klientka: "po co te karty
       sa na max do bokow?".

       Pierwsza poprawka dala wierszowi 'max-width:1360px; margin:auto'
       i wyszedl DRUGI blad, ten sam co wczesniej na
       '/en/decorative-effects/': ten wiersz NIESIE TLO (kremowe,
       z rozjasnienia czerni wyzej w tym pliku), a 'body' strony jest
       BIALE. Zwezony wiersz zrobil wiec kremowy pas z bialymi klockami
       po bokach.

       ZASADA: nie zwezamy elementu, ktory niesie tlo. Tlo idzie na cala
       szerokosc, a tresc centruje odstep wewnetrzny. */
    padding-inline: max(20px, calc((100% - 1360px) / 2));
    box-sizing: border-box;
}

body.page #new_columns-118-235 > .ct-div-block {
    /* KOLUMNY MUSZA SIE KURCZYC, inaczej odstep je zawija. Zrodlo daje
       kazdej sztywne 'width:800px' (polowa z 1600), wiec 800 + 32 + 800
       nie miescilo sie w wierszu i druga karta spadala pod pierwsza.
       'flex:1 1 0' dzieli szerokosc PO odjeciu odstepu. */
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;

    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(11, 34, 64, .13);
    border-radius: var(--r);
    background-color: #fff;
    transition: transform .55s cubic-bezier(.22, 1, .36, 1),
                box-shadow .55s cubic-bezier(.22, 1, .36, 1),
                border-color .45s cubic-bezier(.22, 1, .36, 1);
}

body.page #new_columns-118-235 > .ct-div-block:hover,
body.page #new_columns-118-235 > .ct-div-block:focus-within {
    transform: translateY(-7px);
    box-shadow: var(--shadow-mh);
    border-color: transparent;
}

/* Zdjecie przycina karta - wlasny promien zostawilby biale rogi. */
body.page #new_columns-118-235 > .ct-div-block img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}

/* Waski ekran: karty jedna pod druga. Bez tego dziela szerokosc telefonu
   na pol i wychodzi 186 px na karte - zmierzone przy 390 px. */
@media (max-width: 760px) {
    body.page #new_columns-118-235 {
        flex-direction: column;
    }
    body.page #new_columns-118-235 > .ct-div-block {
        flex: 1 1 auto;
    }
}
