/* SKI TRANS — czytelność i dostępność (zlecenie 201). Poprawki kontrastu, widoczności i pól dotyku w obecnym szablonie, w kolorach marki
   (żółty #FFC600 / #FFD700, grafit #1A1A1A / #1A1A2E). Każda reguła odpowiada problemowi wykrytemu przez narzedzia/przeglad_wizualny.py. */

/* 1. Przycisk „Zadzwoń” w żółtym nagłówku stron usług: ciemny tekst na ciemnym przycisku (kolor odnośników szablonu wygrywał z kolorem przycisku). */
a.hero-cta, .hero a.hero-cta { background: #1A1A1A !important; color: #FFD700 !important; border: 2px solid #1A1A1A !important; }
a.hero-cta:hover, a.hero-cta:focus-visible { background: #FFFFFF !important; color: #1A1A1A !important; border-color: #1A1A1A !important; }

/* 2. Przyciski telefonu w treści (domyślny szary przycisk Elementora z czarnym tekstem): kolory marki, wyraźny stan po najechaniu, wysokość pola dotyku. */
a.elementor-button[href^="tel:"]:not(header a):not(.essa-pasek a) { background-color: #FFC600 !important; color: #1A1A1A !important; fill: #1A1A1A !important; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #1A1A1A; font-weight: 700; }
a.elementor-button[href^="tel:"]:not(header a):not(.essa-pasek a) .elementor-button-text { color: inherit !important; }
a.elementor-button[href^="tel:"]:not(header a):not(.essa-pasek a):hover, a.elementor-button[href^="tel:"]:not(header a):not(.essa-pasek a):focus-visible { background-color: #1A1A1A !important; color: #FFD700 !important; fill: #FFD700 !important; }

/* 3. Liczniki w blokach usług: żółte cyfry na białym tle (kontrast 1,4) → grafitowe cyfry z żółtą kreską. */
.stats .stat-number, .stat-box .stat-number { color: #1A1A1A !important; -webkit-text-fill-color: #1A1A1A; background: none !important; }
.stats .stat-box { border-bottom: 5px solid #FFC600; }

/* 4. Pytania na liście usług (ElementsKit): żółty tytuł na jasnym tle w stanie zwiniętym. */
.elementskit-accordion .ekit-accordion--toggler.collapsed .ekit-accordion-title, .elementskit-accordion .ekit-accordion--toggler.collapsed { color: #1A1A1A !important; }
.elementskit-accordion .ekit-accordion--toggler:not(.collapsed) { background-color: #1A1A2E !important; }
.elementskit-accordion .ekit-accordion--toggler:not(.collapsed) .ekit-accordion-title, .elementskit-accordion .ekit-accordion--toggler:not(.collapsed) .ekit_accordion_icon_group i, .elementskit-accordion .ekit-accordion--toggler:not(.collapsed) svg { color: #FFE227 !important; fill: #FFE227 !important; }

/* 5. Stopka na ciemnym tle: szary tekst (#333, #444) i różowe odnośniki szablonu. Tylko wskazane widżety ciemnej części stopki
   (żółty pasek stopki ma ciemny tekst i zostaje bez zmian). */
footer#colophon .elementor-element-444beff6 .elementor-icon-list-text, footer#colophon .elementor-element-444beff6 .elementor-icon-list-item p,
footer#colophon .elementor-element-7e5c7888, footer#colophon .elementor-element-7e5c7888 p { color: #E9E9EE !important; }
footer#colophon .elementor-element-444beff6 a .elementor-icon-list-text, footer#colophon .elementor-element-841dc35 a, footer#colophon .elementor-element-7e5c7888 a { color: #FFD84D !important; }
footer#colophon .elementor-element-841dc35 a, footer#colophon .elementor-element-7e5c7888 a { text-decoration: underline; text-underline-offset: 3px; }

/* 6. Numer telefonu pod nagłówkiem: następna sekcja nachodziła na niego ujemnym marginesem i zasłaniała kliknięcie. */
.elementor-widget-heading a[href^="tel:"], .elementor-widget-icon-box a[href^="tel:"], .elementor-widget-button a[href^="tel:"] { position: relative; z-index: 5; }

/* 7. Widoczny fokus klawiatury na każdym tle (grafitowa obwódka z żółtą poświatą). */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, .faq-question:focus-visible {
  outline: 3px solid #1A1A2E !important; outline-offset: 2px !important; box-shadow: 0 0 0 6px #FFC600 !important; border-radius: 4px; }

/* 8. Telefon i tablet: pola dotyku co najmniej 44 px, nic nie wystaje w bok, pasek dolny nie zasłania końca strony. */
@media (max-width: 1024px) {
  html, body { overflow-x: clip; }
  footer#colophon .elementor-icon-list-item > a, footer#colophon .elementor-icon-list-item { min-height: 44px; align-items: center; }
  footer#colophon .elementor-icon-list-item > a { display: flex; }
  footer#colophon .elementor-icon-list-items .elementor-icon-list-item a { max-width: 100%; overflow-wrap: anywhere; }
  .essaml-fab-toggle { min-height: 44px; min-width: 44px; }
  a.elementor-button, button.elementor-button, .elementor-button { min-height: 44px; }
  .elementor-widget-icon-box a.elementor-icon[href^="tel:"] { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .elementor-image-box-title a, .elementor-post__title a, .elementor-post__read-more { display: inline-block; padding-block: 10px; }
  .faq-question, summary { min-height: 44px; }
}

/* 9. Drobne teksty poniżej progu kontrastu: daty wpisów, opisy pomocnicze, półprzezroczyste etykiety na ciemnym tle. */
.elementor-post-date, .elementor-post__meta-data, .elementor-post__meta-data span { color: #5A5F66 !important; }
.elementor-widget-html .modl { color: #5A5F66 !important; }
.elementor-widget-html .badge, .elementor-widget-html .eyebrow, .elementor-widget-html .group-label, .elementor-widget-html .stat-lbl { color: rgba(255, 255, 255, .88) !important; }
/* 10. Przycisk w ciemnej ramce kontaktowej stron usług: ten sam błąd co w nagłówku (kolor odnośników szablonu). */
a.phone-button { background: #FFD700 !important; color: #1A1A1A !important; border: 2px solid #FFD700; }
a.phone-button:hover, a.phone-button:focus-visible { background: #FFFFFF !important; color: #1A1A1A !important; }
/* 11. Formularze: przycisk wysyłki po najechaniu (było 1,6:1) i wysokość pól na telefonie. */
.elementor-form .elementor-button[type="submit"]:hover, .elementor-form .elementor-button[type="submit"]:focus-visible { background-color: #1A1A1A !important; color: #FFD700 !important; }
.elementor-form .elementor-button[type="submit"]:hover .elementor-button-text, .elementor-form .elementor-button[type="submit"]:focus-visible .elementor-button-text { color: #FFD700 !important; }
.elementor-form .elementor-field-textual { min-height: 46px; }
/* 12. Strona główna: żółty napis na szarym przycisku „Sprawdź resztę usług” (3,9:1) → grafitowe tło; po najechaniu odwrotnie. */
.elementor-element-20a89224 .elementor-button { background-color: #1A1A1A !important; color: #FFE227 !important; }
.elementor-element-20a89224 .elementor-button:hover, .elementor-element-20a89224 .elementor-button:focus-visible { background-color: #FFC600 !important; color: #1A1A1A !important; }
.elementor-element-20a89224 .elementor-button:hover .elementor-button-text { color: #1A1A1A !important; }
/* 14. Strony miejscowości (zlecenie 208): żółte etykiety, gwiazdki i strzałki na jasnym tle (kontrast 1,4) → grafit na żółtej plakietce;
   przygaszone opisy w ciemnej sekcji usług → jaśniejsze. */
#sw-intro .tag, #sw-opinie .tag, #sw-obszar .tag { color: #1A1A1A !important; background: #F5D800; display: inline-block !important; padding: 4px 10px; border-radius: 4px; }
#sw-dlaczego .tag { color: #1A1A1A !important; }
#sw-opinie .stars { display: inline-block !important; background: #1A1A1A; padding: 2px 14px; border-radius: 100px; }
#sw-obszar .ob-arr { color: #1A1A1A !important; }
#sw-uslugi .sub, #sw-uslugi .group-label { color: rgba(255, 255, 255, .82) !important; }
#sw-uslugi .card p { color: rgba(255, 255, 255, .78) !important; }
#sw-uslugi a.card h3 { color: #FFFFFF !important; }
/* 15. Blok linków powiązanych (usługa ↔ poradniki, miejscowość → spis i cennik) oraz wstęp listy poradników. */
.essa-powiazane { background: #F8F8F8; border-top: 4px solid #FFC600; padding: 36px 20px 40px; clear: both; }
.essa-powiazane__w { max-width: 1200px; margin: 0 auto; }
.essa-powiazane h2 { font-size: 1.35rem !important; font-weight: 800 !important; color: #1A1A1A !important; margin: 0 0 16px !important; }
.essa-powiazane ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.essa-powiazane li { margin: 0; }
.essa-powiazane a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 18px; background: #FFFFFF; color: #1A1A1A !important; border: 2px solid #1A1A1A; border-radius: 100px; font-weight: 600; font-size: .95rem; line-height: 1.3; text-decoration: none !important; }
.essa-powiazane a:hover, .essa-powiazane a:focus-visible { background: #1A1A1A; color: #FFD700 !important; }
.essa-wstep-poradnika { max-width: 760px; margin: 14px auto 0; font-size: 1.05rem; line-height: 1.6; }

/* 13. Autor i data na zdjęciu wpisu: żółty tekst na jasnym zdjęciu → ciemna podkładka. */
.elementor-widget-post-info .elementor-post-info__item { background: rgba(26, 26, 46, .82); padding: 3px 9px; border-radius: 5px; }

/* 16. Strona główna: trzy kafle „najczęstsze usługi” jednakowej wysokości i szerokości (zlecenie 209). */
.elementor-element-660088a9 > .elementor-container { align-items: stretch; }
.elementor-element-660088a9 .elementor-column > .elementor-widget-wrap { height: 100%; align-content: stretch; align-items: stretch; }
.elementor-element-660088a9 .elementor-widget-image-box { width: 100%; height: 100%; box-sizing: border-box; }
.elementor-element-660088a9 .elementor-image-box-wrapper { height: 100%; }
.elementor-element-660088a9 .elementor-image-box-img img { aspect-ratio: 1 / 1; object-fit: contain; }
@media (max-width: 767px) {
  .elementor-element-660088a9 > .elementor-container { display: grid; grid-template-columns: 1fr; grid-auto-rows: 1fr; row-gap: 20px; }
  .elementor-element-660088a9 .elementor-column { width: 100% !important; margin: 0 !important; }
  .elementor-element-660088a9 .elementor-column > .elementor-widget-wrap { margin: 0 !important; }
}

/* 18. Strona główna, sekcja cen (audyt 8.10, nr 14): żółte kwoty na białym miały 1,3:1 → grafit; wszystkie trzy przyciski „Sprawdź resztę usług” jak pierwszy. */
.home .elementor-element-29c09623 .elementor-heading-title, .home .elementor-element-a0ec672 .elementor-heading-title, .home .elementor-element-1671bea .elementor-heading-title { color: #1A1A1A !important; }
.home .elementor-element-7a566049 .elementor-button, .home .elementor-element-63c1b7c8 .elementor-button { background-color: #1A1A1A !important; color: #FFE227 !important; }
.home .elementor-element-7a566049 .elementor-button:hover, .home .elementor-element-7a566049 .elementor-button:focus-visible, .home .elementor-element-63c1b7c8 .elementor-button:hover, .home .elementor-element-63c1b7c8 .elementor-button:focus-visible { background-color: #FFC600 !important; color: #1A1A1A !important; }
.home .elementor-element-7a566049 .elementor-button:hover .elementor-button-text, .home .elementor-element-63c1b7c8 .elementor-button:hover .elementor-button-text { color: #1A1A1A !important; }
/* 19. Numer telefonu w nagłówku strony przykryty pierwszą sekcją treści na tablecie i telefonie (audyt 8.10, nr 15): nagłówek jako osobna warstwa nad treścią. */
@media (max-width: 1024px) { header#masthead, .ehf-header #masthead { position: relative; z-index: 50; } }

/* 20. Nagłówek wpisu z pionową lub kwadratową grafiką (kontrola mediów 8.10, nr 7): cała grafika w swoim rozmiarze na granatowym tle zamiast powiększonego środkowego paska. */
.essa-grafika-pionowa .elementor-element-5356605f:not(.elementor-motion-effects-element-type-background), .essa-grafika-pionowa .elementor-element-5356605f > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-size: contain !important; background-repeat: no-repeat !important; background-position: center center !important; background-color: #1A1A2E !important; }

/* 20. Okruszki nad stopką na wszystkich stronach poza główną (audyt 8.10, nr 13; zlecenie 255): jasny pasek, grafitowy tekst (kontrast ponad 8:1), pola dotyku 44 px na telefonie i tablecie. */
.essa-okruszki { background: #F8F8F8; border-bottom: 1px solid #E1E1E1; position: relative; z-index: 2; font-size: .875rem; line-height: 1.4; clear: both; }
.essa-okruszki ol { list-style: none; margin: 0 auto; padding: 6px 20px; max-width: 1200px; display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
.essa-okruszki li { display: inline-flex; align-items: center; margin: 0; color: #1A1A1A; min-height: 30px; }
.essa-okruszki li + li::before { content: "\203A"; margin-right: 8px; color: #44484E; }
.essa-okruszki a { color: #1A1A1A !important; text-decoration: underline; text-decoration-color: #B88A00; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 30px; }
.essa-okruszki a:hover, .essa-okruszki a:focus-visible { text-decoration-color: #1A1A1A; text-decoration-thickness: 2px; }
.essa-okruszki [aria-current] span { color: #44484E; }
@media (max-width: 1024px) { .essa-okruszki ol { padding: 0 16px; } .essa-okruszki li, .essa-okruszki a { min-height: 44px; } }
/* 21. Numer 608 275 667 w nagłówku strony (audyt 8.10, nr 15): następna sekcja ma na tablecie i telefonie ujemny margines i pusty górny odstęp,
   który leżał na numerze i przechwytywał dotknięcie. Sam pusty odstęp sekcji przestaje reagować na dotyk, jej treść reaguje jak dotąd. Wygląd bez zmian. */
@media (max-width: 1024px) {
  .elementor-top-section:has(.elementor-widget-heading a[href^="tel:"]) + .elementor-top-section { pointer-events: none; }
  .elementor-top-section:has(.elementor-widget-heading a[href^="tel:"]) + .elementor-top-section > * { pointer-events: auto; }
}
/* 22. Stopka na tablecie (audyt 8.10, nr 18): odnośnik z numerem telefonu był o 5 px szerszy niż ekran. */
@media (max-width: 1024px) { footer#colophon .elementor-icon-list-item > a, footer .elementor-icon-list-item > a { box-sizing: border-box; max-width: 100%; width: auto; } footer#colophon .elementor-icon-list-items, footer .elementor-icon-list-items { max-width: 100%; overflow: hidden; } }
/* 23. Przycisk wysyłki formularza (audyt 8.10, nr 19): 40 px wysokości → co najmniej 44 px na każdym ekranie. */
.elementor-form .elementor-button[type="submit"] { min-height: 44px; }
/* 24. Lista poradników: wstęp pod nagłówkiem miał ciemny tekst na ciemnym zdjęciu (1,5:1) → biały z cieniem; okruszki szablonu listy z polem dotyku 44 px na telefonie. */
.essa-wstep-poradnika { color: #FFFFFF !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); }
@media (max-width: 1024px) { .elementor-location-archive .elementor-icon-list-item > a { min-height: 44px; display: inline-flex; align-items: center; } }

/* === zlecenie 269: początek === */
/* 25. Strony główne EN i LT: te same poprawki cen i przycisków co na polskiej (reguły 12 i 18 były przypisane do klasy .home, której wersje językowe nie mają). */
.elementor-element-29c09623 .elementor-heading-title, .elementor-element-a0ec672 .elementor-heading-title, .elementor-element-1671bea .elementor-heading-title { color: #1A1A1A !important; }
.elementor-element-20a89224 .elementor-button, .elementor-element-7a566049 .elementor-button, .elementor-element-63c1b7c8 .elementor-button { background-color: #1A1A1A !important; color: #FFE227 !important; }
.elementor-element-20a89224 .elementor-button:hover, .elementor-element-20a89224 .elementor-button:focus-visible, .elementor-element-7a566049 .elementor-button:hover, .elementor-element-7a566049 .elementor-button:focus-visible, .elementor-element-63c1b7c8 .elementor-button:hover, .elementor-element-63c1b7c8 .elementor-button:focus-visible { background-color: #FFC600 !important; color: #1A1A1A !important; }
.elementor-element-20a89224 .elementor-button:hover .elementor-button-text, .elementor-element-20a89224 .elementor-button:focus-visible .elementor-button-text, .elementor-element-7a566049 .elementor-button:hover .elementor-button-text, .elementor-element-7a566049 .elementor-button:focus-visible .elementor-button-text, .elementor-element-63c1b7c8 .elementor-button:hover .elementor-button-text, .elementor-element-63c1b7c8 .elementor-button:focus-visible .elementor-button-text { color: #1A1A1A !important; }
/* 26. Strony miejscowości: półprzezroczyste białe podpisy na ciemnym tle (liczniki .sl 45%, pasek faktów .bgi 35%, etykiety grup .gl 30%, nadtytuł .ey 35%) miały 2,7–4,4:1. */
.elementor-widget-html .bgi, .elementor-widget-html .gl, .elementor-widget-html .ey { color: rgba(255, 255, 255, .82) !important; }
.elementor-widget-html .sl { color: #FFFFFF !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .6); }   /* podpis licznika leży na telefonie na jaśniejszym fragmencie zdjęcia: przy 82% bieli było 4,4:1 */
/* 27. Strony miejscowości: żółte gwiazdki na białym (1,4:1) → na grafitowej pastylce, jak w sekcji opinii. */
.elementor-widget-html span.st { display: inline-block !important; background: #1A1A1A; padding: 2px 14px; border-radius: 100px; }
/* 28. Strony główne, sekcja „gotowi do wyjazdu”: biały tekst na zdjęciu bez przyciemnienia (3,0:1 w wersji EN) → granatowa warstwa pod tekstem. */
.elementor-element-6214e065 > .elementor-background-overlay { background-color: #1A1A2E !important; opacity: .5 !important; }
/* === zlecenie 269: koniec === */

/* === zlecenie 285: początek === */
/* 29. Strony miejscowości, pierwszy ekran: biała fala na dole sekcji ma wysokość 5,56% szerokości okna (plik 1440×80), a odstęp pod liczbami był stały (90 px).
   Od ok. 1600 px szerokości fala wchodziła pod białe podpisy liczb (białe na białym: 16 px przy 1920, 51 px przy 2560). Odstęp rośnie teraz razem z falą. */
@media (min-width: 1025px) { #sw-hero .inner { padding-bottom: max(90px, calc(5.56vw + 34px)) !important; } }
/* 30. Strona zbiorcza miejscowości (ID 1148): żółte etykiety na jasnym tle (1,3–1,4:1) → grafit na żółtej plakietce; szary dopisek 2,7:1 → ciemniejszy; podpis licznika 50% bieli → pełna biel. */
.page-id-1148 .elementor-widget-html .section-tag, .page-id-1148 .elementor-widget-html span.tag { color: #1A1A1A !important; background: #F5D800; display: inline-block !important; padding: 4px 10px; border-radius: 4px; }
.page-id-1148 .elementor-widget-html p.note { color: #555555 !important; }
.page-id-1148 .elementor-widget-html .stat-label { color: #FFFFFF !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .6); }
/* === zlecenie 285: koniec === */

/* === zlecenie 286: początek === */
/* 31. Nagłówek: logo jako element w wierszu zostawiało pod sobą 6 px odstępu, dopóki nie doszedł arkusz widżetu obrazu Elementora (na podstronach ładuje się późno).
   Nagłówek miał wtedy 126 zamiast 120 px i po chwili podskakiwał razem z całą stroną (przesunięcie układu 0,04–0,06), a logo przez chwilę stało przy lewej krawędzi kolumny
   i dopiero potem wskakiwało na środek. Logo ma stały rozmiar 90 × 90 w szablonie nagłówka. */
header#masthead .elementor-widget-image { text-align: center; }
header#masthead .elementor-widget-image img { display: inline-block; vertical-align: middle; }
/* 32. Nagłówek na tablecie i komputerze leży na pierwszej sekcji strony (ujemny margines 120 px) i ma półprzezroczyste tło. Zanim doszło zdjęcie pierwszej sekcji,
   prześwitywało jasne tło strony i nagłówek wyglądał jak szary pasek. Pod nagłówkiem jest teraz stały ciemny pas 120 px; zdjęcie sekcji go zakrywa, gdy się załaduje. */
@media (min-width: 768px) { body.ehf-header { background-image: linear-gradient(#2B2B2B, #2B2B2B); background-repeat: no-repeat; background-size: 100% 120px; background-position: 0 0; } }
/* 33. Menu rozwijane w nagłówku: pozycja bieżąca i wskazana miały biały napis na żółtym tle (1,3:1) → grafitowy napis (13:1). Szerokość, odstępy i czcionka bez zmian. */
header#masthead .elementor-nav-menu--dropdown a.elementor-item-active, header#masthead .elementor-nav-menu--dropdown a.highlighted,
header#masthead .elementor-nav-menu--dropdown a:hover, header#masthead .elementor-nav-menu--dropdown a:focus { background-color: #FFE227 !important; color: #1A1A1A !important; }
header#masthead .elementor-nav-menu--dropdown a.elementor-item-active .sub-arrow, header#masthead .elementor-nav-menu--dropdown a.highlighted .sub-arrow,
header#masthead .elementor-nav-menu--dropdown a:hover .sub-arrow { color: #1A1A1A !important; fill: #1A1A1A !important; }
/* === zlecenie 286: koniec === */

/* === zlecenie 350: początek === */
/* 34. Przycisk „POMOC DROGOWA” w nagłówku każdej strony migał tłem co 0,8 s, a ikona słuchawki pulsowała co 0,6 s, bez końca
   (animacje flash-button i flash-icon z szablonu nagłówka). Tempo zwolnione do 2,8 s, takie samo jak pierścień wokół przycisków
   telefonu, żeby przycisk nadal zwracał uwagę, ale nie migotał. Kolory i kształt bez zmian. */
header#masthead .call-cta, .call-cta { animation-duration: 2.8s !important; }
header#masthead .call-cta i, .call-cta i { animation-duration: 2.8s !important; }
/* 35. Ograniczony ruch (ustawienie systemu użytkownika): żadnych animacji w pętli ani wjeżdżających sekcji. Czas 0,01 ms zamiast
   wyłączenia, żeby elementy, które animacja odsłania, od razu przyjęły stan końcowy. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
}
/* === zlecenie 350: koniec === */
