/* Ręczne uzupełnienia do wyglądu przeniesionego z Elementora (to, co robiły jego skrypty). */

/* Przyklejony nagłówek */
.ww-przyklejony--aktywny { position: fixed !important; top: 0; z-index: 99; margin-top: 0 !important; }

/* Animacja wejścia fadeInUp jak w Elementorze (1,25 s), tylko gdy działa JS i użytkownik nie wyłączył ruchu */
@media (prefers-reduced-motion: no-preference) {
  .ww-js .ww-anim:not(.ww-widoczny) { opacity: 0; }
  .ww-js .ww-anim.ww-widoczny { animation: ww-fade-in-up 1.25s both; }
}
@keyframes ww-fade-in-up { from { opacity: 0; transform: translate3d(0, 100%, 0); } to { opacity: 1; transform: none; } }

/* Popupy Elementora są ukryte do czasu otwarcia */
.elementor-location-popup { display: none; }

/* Opinie: rozwijanie treści płynnie */
.ti-widget .ti-review-content { overflow: hidden; }

/* Podmenu (dawniej SmartMenus) */
.elementor-nav-menu--main .elementor-nav-menu ul.sub-menu { display: none; }
.elementor-nav-menu--main .elementor-nav-menu li:hover > ul.sub-menu,
.elementor-nav-menu--main .elementor-nav-menu li:focus-within > ul.sub-menu { display: block; }
.elementor-nav-menu--dropdown ul.sub-menu:not(.ww-otwarte) { display: none; }

/* Baner zgód jak na Stylmetalu (decyzja Adriana 01.10): jeden wyraźny przycisk akceptacji, ustawienia jako mały link */
#ww-zgody { position: fixed; z-index: 9999; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); font: 400 14px/1.45 "DM Sans", system-ui, sans-serif; color: #374151; }
.ww-konfigurator #ww-zgody { bottom: calc(86px + env(safe-area-inset-bottom)); } /* nad paskiem z ceną konfiguratora */
@media (min-width: 768px) { #ww-zgody, .ww-konfigurator #ww-zgody { left: 24px; right: auto; bottom: 24px; max-width: 420px; } }
.wwz-okno { display: grid; gap: 10px; background: #fff; border-radius: 16px; padding: 18px 18px 8px; box-shadow: 0 16px 48px rgb(17 24 39 / .24), 0 2px 6px rgb(17 24 39 / .08); }
.wwz-tytul { margin: 0; font-weight: 700; font-size: 17px; line-height: 1.25; letter-spacing: -0.01em; color: #111827; }
.wwz-tekst { margin: 0; font-size: 14px; color: #4B5563; }
.wwz-tekst a { color: #B91C1C; text-underline-offset: 3px; white-space: nowrap; }
.wwz-akceptuje, .wwz-zapisz { width: 100%; min-height: 52px; border: 0; border-radius: 999px; background: #DC2626; color: #fff; font: 700 16px/1 "DM Sans", system-ui, sans-serif; cursor: pointer; }
.wwz-akceptuje:hover, .wwz-akceptuje:focus, .wwz-zapisz:hover, .wwz-zapisz:focus { background: #B91C1C; color: #fff; }
.wwz-zapisz { min-height: 46px; font-size: 15px; background: #fff; color: #111827; border: 1.5px solid #111827; }
.wwz-zapisz:hover, .wwz-zapisz:focus { background: #F3F4F6; color: #111827; }
.wwz-wiecej { justify-self: center; min-height: 40px; padding: 0 10px; background: none; border: 0; color: #4B5563; font: 400 13px/1 "DM Sans", system-ui, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.wwz-okno button:focus-visible, .wwz-link:focus-visible { outline: 3px solid #374151; outline-offset: 2px; }
.wwz-okno [hidden] { display: none !important; }
.wwz-ustawienia { display: grid; gap: 10px; padding: 2px 0 6px; }
.wwz-kat { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: #4B5563; cursor: pointer; }
.wwz-kat b { display: block; color: #111827; }
.wwz-kat input { width: 20px; height: 20px; margin-top: 1px; accent-color: #DC2626; flex: none; }
.wwz-link { display: block; margin: 0 auto; padding: 12px; background: none; border: 0; color: inherit; opacity: .75; font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.wwz-wiecej:hover, .wwz-wiecej:focus, .wwz-link:hover, .wwz-link:focus { background: none; color: inherit; }

/* Galeria Elementora (dawniej układana skryptem e-gallery): siatka albo mozaika z ustawień widżetu */
/* --kol/--odstep (komputer, tablet, telefon) są w stylu elementu z ustawień Elementora; aktywne --k/--o wybierają media queries */
.ww-galeria { --k: var(--kol); --o: var(--odstep); display: grid; grid-template-columns: repeat(var(--k), 1fr); gap: var(--o); }
.ww-galeria--mozaika { display: block; columns: var(--k); column-gap: var(--o); }
.ww-galeria--mozaika .e-gallery-item { display: block; break-inside: avoid; margin-bottom: var(--o); }
.ww-galeria .e-gallery-item { position: relative; display: block; overflow: hidden; }
.ww-galeria .e-gallery-image { padding-bottom: var(--proporcja-siatki, var(--proporcja, 66.67%)); background-size: cover; background-position: center; transition: transform .4s ease; }
.ww-galeria .e-gallery-item:hover .e-gallery-image { transform: scale(1.03); }
@media (max-width: 1024px) { .ww-galeria { --k: var(--kol-t); --o: var(--odstep-t); } }
@media (max-width: 767px) { .ww-galeria { --k: var(--kol-m); --o: var(--odstep-m); } }

/* Galeria produktu WooCommerce (dawniej flexslider): duże zdjęcie + miniatury */
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child):not(.ww-aktywne) { display: none; }
.woocommerce-product-gallery__wrapper > .ww-aktywne ~ .woocommerce-product-gallery__image:first-child { display: none; }
.ww-miniatury { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.ww-miniatury button { padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: none; cursor: pointer; opacity: .6; }
.ww-miniatury button.flex-active, .ww-miniatury button:hover { opacity: 1; border-color: #DC2626; background: none; }
.ww-miniatury img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }

/* Podgląd zdjęcia po kliknięciu (dawniej lightbox Elementora) */
.ww-podglad { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 92vh; }
.ww-podglad::backdrop { background: rgb(0 0 0 / .88); }
.ww-podglad img { display: block; max-width: 96vw; max-height: 88vh; object-fit: contain; margin: auto; }
.ww-podglad button { position: fixed; top: 12px; right: 12px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fff; color: #111; font-size: 28px; line-height: 1; cursor: pointer; }
.ww-podglad .ww-poprz, .ww-podglad .ww-nast { top: 50%; transform: translateY(-50%); }
.ww-podglad .ww-poprz { left: 12px; right: auto; }
.ww-podglad .ww-nast { right: 12px; }

/* Filtry katalogu: ukryte karty */
.e-loop-item[hidden], .ti-review-item[hidden] { display: none !important; }

/* Poprawka błędu obecnej strony: na telefonie pasek z mailem i telefonem wystawał o 8 px i strona przesuwała się w bok.
   clip (a nie hidden), żeby nie psuć przyklejonego nagłówka. */
html, body { overflow-x: clip; }

/* Menu na telefonie i tablecie: wysuwany panel (zastępuje rozwijaną listę Elementora). */
.elementor-nav-menu--dropdown.elementor-nav-menu__container { display: none !important; }
.ww-menu-otwarte, .ww-menu-otwarte body { overflow: hidden; }
.ww-menu { position: fixed; inset: 0; z-index: 10000; font-family: "DM Sans", system-ui, sans-serif; }
.ww-menu[hidden] { display: none; }
.ww-menu__tlo { position: absolute; inset: 0; background: rgb(17 24 39 / .55); opacity: 0; transition: opacity .28s ease; }
.ww-menu__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); display: flex; flex-direction: column;
  background: #fff; box-shadow: -12px 0 40px rgb(17 24 39 / .18); overflow-y: auto; overscroll-behavior: contain;
  transform: translateX(100%); transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}
.ww-menu--otwarte .ww-menu__tlo { opacity: 1; }
.ww-menu--otwarte .ww-menu__panel { transform: none; }
.ww-menu__gora { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 24px; border-bottom: 1px solid #F0F0F0; }
.ww-menu__logo img { display: block; height: 36px; width: auto; }
.ww-menu__zamknij { display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: #F3F4F6; color: #374151; cursor: pointer; padding: 0; }
.ww-menu__zamknij:hover, .ww-menu__zamknij:focus { background: #E5E7EB; color: #374151; }
.ww-menu__lista, .ww-menu__pod { list-style: none; margin: 0; padding: 0; }
.ww-menu__lista > li { border-bottom: 1px solid #F0F0F0; }
.ww-menu__link {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 60px; padding: 0 24px;
  font: 600 18px/1.3 "DM Sans", system-ui, sans-serif; letter-spacing: -0.01em; color: #374151; text-decoration: none;
  background: none; border: 0; border-radius: 0; text-align: left; cursor: pointer;
}
.ww-menu__link:hover, .ww-menu__link:focus { background: #F9FAFB; color: #111827; }
.ww-menu__link[aria-current="page"] { color: #DC2626; }
.ww-menu__rozwin svg { flex: none; color: #9CA3AF; transition: transform .2s ease; }
.ww-menu__rozwin[aria-expanded="true"] { color: #DC2626; }
.ww-menu__rozwin[aria-expanded="true"] svg { transform: rotate(180deg); color: #DC2626; }
.ww-menu__pod { background: #F9FAFB; padding: 4px 0 8px; }
.ww-menu__pod .ww-menu__link { min-height: 52px; padding-left: 40px; font-size: 16px; font-weight: 500; color: #4B5563; }
.ww-menu__pod .ww-menu__link:hover, .ww-menu__pod .ww-menu__link:focus { background: #F3F4F6; }
.ww-menu__pod .ww-menu__link[aria-current="page"] { color: #DC2626; }
.ww-menu__dol { margin-top: auto; display: grid; gap: 10px; padding: 24px; }
.ww-menu__cta, .ww-menu__tel {
  display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; border-radius: 999px;
  font: 600 17px/1 "DM Sans", system-ui, sans-serif; text-decoration: none;
}
.ww-menu__cta { background: #DC2626; color: #fff; }
.ww-menu__cta:hover, .ww-menu__cta:focus { background: #B91C1C; color: #fff; }
.ww-menu__tel { border: 2px solid #E5E7EB; color: #374151; }
.ww-menu__tel:hover, .ww-menu__tel:focus { border-color: #374151; color: #111827; }
.ww-menu__mail { justify-self: center; padding: 8px; font-size: 15px; color: #6B7280; text-decoration: underline; text-underline-offset: 3px; }
.ww-menu a:focus-visible, .ww-menu button:focus-visible { outline: 3px solid #DC2626; outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) { .ww-menu__panel, .ww-menu__tlo, .ww-menu__rozwin svg { transition: none; } }

/* Sklep w kodzie (app/sklep.php): koszyk, kasa, potwierdzenie, pobieranie. Kolory i przyciski jak „Dodaj do koszyka” na karcie produktu. */
.ww-sklep { font: 400 16px/1.55 "DM Sans", system-ui, sans-serif; color: #374151; }
.ww-sklep a { color: #B91C1C; text-underline-offset: 3px; }
.ww-sklep a[href^="tel:"] { white-space: nowrap; }
.ww-sklep-tytul { margin: 0 0 24px; font: 700 clamp(28px, 4vw, 40px)/1.15 "DM Sans", system-ui, sans-serif; color: #111827; letter-spacing: -0.01em; }
.ww-sklep h2 { margin: 0 0 16px; font: 700 22px/1.25 "DM Sans", system-ui, sans-serif; color: #111827; }
.ww-sklep-uwaga { margin: 16px 0 0; font-size: 14px; color: #6B7280; }
.ww-tabela { width: 100%; border-collapse: collapse; margin: 0 0 24px; }
.ww-sklep .ww-tabela tr > th, .ww-sklep .ww-tabela tr > td { padding: 14px 10px; border: 0; border-bottom: 1px solid #E5E7EB; text-align: left; vertical-align: middle; background: none; } /* bez pasków motywu */
.ww-tabela thead th { font-size: 13px; font-weight: 700; color: #6B7280; text-transform: uppercase; letter-spacing: .04em; }
.ww-sklep .ww-tabela tr > td:last-child, .ww-sklep .ww-tabela tr > th:last-child, .ww-sklep .ww-tabela .product-price { text-align: right; white-space: nowrap; }
.ww-sklep .ww-tabela .order-total > th, .ww-sklep .ww-tabela .order-total > td { font-size: 18px; color: #111827; border-bottom: 0; }
.ww-tabela .product-thumbnail { width: 88px; }
.ww-sklep .ww-tabela .product-thumbnail img { display: block; width: 72px; height: 72px; object-fit: cover; border-radius: 8px; } /* WooCommerce dawał 32 px */
.ww-tabela .product-name a { color: #111827; font-weight: 700; text-decoration: none; }
.ww-pozycja-info { display: block; font-size: 13px; color: #6B7280; }
.ww-tabela .remove { width: 44px; height: 44px; border: 1px solid #E5E7EB; border-radius: 50%; background: #fff; color: #6B7280; font-size: 22px; line-height: 1; cursor: pointer; }
.ww-tabela .remove:hover, .ww-tabela .remove:focus-visible { border-color: #DC2626; color: #DC2626; background: #fff; }
.ww-sklep .cart_totals { max-width: 440px; margin-left: auto; }
.woocommerce.ww-sklep .button.alt, .woocommerce.ww-sklep .button.wc-backward, .ww-sklep .ww-zamawiam {
  display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 32px; border: 0; border-radius: 99px;
  background: #DC2626; color: #fff; font: 700 16px/1.2 "DM Sans", system-ui, sans-serif; text-decoration: none; cursor: pointer; }
.woocommerce.ww-sklep .button.alt:hover, .woocommerce.ww-sklep .button.alt:focus-visible, .woocommerce.ww-sklep .button.wc-backward:hover { background: #B91C1C; color: #fff; }
.ww-sklep .checkout-button, .ww-sklep .ww-zamawiam { width: 100%; }
.ww-sklep .button:focus-visible, .ww-sklep input:focus-visible, .ww-sklep textarea:focus-visible { outline: 3px solid #111827; outline-offset: 2px; }

.ww-kasa { display: grid; gap: 40px; }
@media (min-width: 1024px) { .ww-kasa:not(.ww-nowy-link) { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: start; } }
.ww-nowy-link { max-width: 480px; gap: 0; }
.ww-kasa-para { display: grid; gap: 0 16px; }
@media (min-width: 600px) { .ww-kasa-para { grid-template-columns: 1fr 1fr; } }
.ww-kasa .form-row { margin: 0 0 18px; }
.ww-kasa .form-row:not(.ww-zgoda) > label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: #111827; }
.ww-kasa .required { color: #DC2626; text-decoration: none; border: 0; }
.ww-kasa .optional { font-weight: 400; color: #6B7280; }
.ww-kasa .input-text { box-sizing: border-box; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #D1D5DB; border-radius: 10px; background: #fff;
  font: 400 16px/1.4 "DM Sans", system-ui, sans-serif; color: #111827; }
.ww-kasa textarea.input-text { min-height: 96px; resize: vertical; }
.ww-kasa .woocommerce-invalid .input-text { border-color: #DC2626; }
.ww-blad { display: block; margin-top: 6px; font-size: 14px; color: #B91C1C; }
.ww-kasa-podsumowanie { padding: 28px; border-radius: 16px; background: #F9FAFB; }
@media (max-width: 767px) { .ww-kasa-podsumowanie { padding: 20px 16px; margin: 0 -4px; } }
.ww-platnosc { margin: 0 0 20px; padding: 14px 16px; border: 1px solid #E5E7EB; border-radius: 12px; background: #fff; font-size: 15px; }
.ww-platnosc p { margin: 0; }
.ww-zgoda label { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: #374151; cursor: pointer; }
.ww-zgoda input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: #DC2626; }
.ww-zgoda.woocommerce-invalid span { color: #B91C1C; }
.ww-sklep .woocommerce-error { margin: 0 0 24px; padding: 14px 18px 14px 40px; border-radius: 12px; background: #FEF2F2; color: #991B1B; list-style: disc; }
.ww-pulapka { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ww-czekam::before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 10px; border: 2px solid #DC2626; border-right-color: transparent;
  border-radius: 50%; vertical-align: -2px; animation: ww-krec 1s linear infinite; }
@keyframes ww-krec { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ww-czekam::before { animation: none; } }
.ww-autopay { max-width: 440px; }
.ww-czekam-koniec { visibility: hidden; animation: ww-pokaz 0s linear 60s forwards; } /* dalsze kroki po minucie oczekiwania na ITN, bez skryptu */
@keyframes ww-pokaz { to { visibility: visible; } }

/* Karta produktu i katalog sklepu */
.ww-pdf-info { margin: 6px 0 0; font: 400 15px/1.5 "DM Sans", system-ui, sans-serif; color: #374151; }
.ww-filtr-cena { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 4px 0 0; font-size: 14px; }
.ww-filtr-cena input { width: 76px; min-height: 40px; padding: 4px 8px; border: 1px solid #D1D5DB; border-radius: 8px; font: inherit; }
.ww-filtr .woof_price_search_container .ww-filtr-cena .button { display: inline-block; padding: 10px 16px; border-radius: 99px; background: #DC2626; color: #fff; }
.ww-filtr-wyczysc { margin: 12px 0 0; font-size: 14px; }
/* Filtr przyklejony w swojej kolumnie (dawny „sticky” Elementora był wyższy niż ekran i wchodził na stopkę); długi przewija się w środku */
@media (min-width: 1025px) { .elementor-1671 .elementor-element-617573a { position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; overscroll-behavior: contain; } }
.ww-filtr-wyczysc a { color: #B91C1C; }

/* /strona-glowna/: tło hero z prawdziwego zdjęcia WW 8-10 w pełnej rozdzielczości (było 960 px, rozmyte), osobny pionowy kadr
   na telefon; układ sekcji bez zmian (Adrian 02.10). Pliki: grafika/hero/hero-tlo.py → /media/hero/. */
.elementor-3271 .elementor-element.elementor-element-57480d8:not(.elementor-motion-effects-element-type-background){background-image:url("/media/hero/ww-hero-2560.webp");background-position:center 30%;}
@media (min-width:1600px),(min-width:1024px) and (min-resolution:1.5dppx){.elementor-3271 .elementor-element.elementor-element-57480d8:not(.elementor-motion-effects-element-type-background){background-image:url("/media/hero/ww-hero-3840.webp");}}
@media (min-width:1600px){.elementor-3271 .elementor-element.elementor-element-57480d8{--min-height:min(78vh,1100px);}.elementor-3271 .elementor-element.elementor-element-57480d8:not(.elementor-motion-effects-element-type-background){background-position:center 6%;}}
@media (max-width:767px){.elementor-3271 .elementor-element.elementor-element-57480d8:not(.elementor-motion-effects-element-type-background){background-image:url("/media/hero/ww-hero-m-800.webp");background-position:center top;}}
@media (max-width:767px) and (min-resolution:2dppx){.elementor-3271 .elementor-element.elementor-element-57480d8:not(.elementor-motion-effects-element-type-background){background-image:url("/media/hero/ww-hero-m-1200.webp");}}

/* /projekty-wiat/: trzy tła przyklejone przy przewijaniu (Adrian 03.10: „wyglądają mega słabo”). Te same prawdziwe zdjęcia realizacji WW
   powiększone Real-ESRGAN (tylko ostrość) z lekką korektą zamiast plików 960 px; układ i kadr bez zmian. Pliki: grafika/projekty/tla.py
   → /media/projekty/. Efekt przyklejenia tylko na komputerze: iOS (także iPad od 1025 px) nie obsługuje background-attachment: fixed
   i pokazuje wtedy powiększone, rozmyte zdjęcie, więc na ekranach dotykowych zwykłe tło w kadrze sekcji. */
.elementor-1593 .elementor-element.elementor-element-80bbcca:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-1-2560.webp");}.elementor-1593 .elementor-element.elementor-element-ef6e903:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-2-2560.webp");}.elementor-1593 .elementor-element.elementor-element-c451af3:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-3-2560.webp");}
@media (max-width:767px){.elementor-1593 .elementor-element.elementor-element-80bbcca:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-1-1200.webp");}.elementor-1593 .elementor-element.elementor-element-ef6e903:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-2-1200.webp");}.elementor-1593 .elementor-element.elementor-element-c451af3:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-3-1200.webp");}}
@media (min-width:2561px),(min-width:1025px) and (min-resolution:1.5dppx){.elementor-1593 .elementor-element.elementor-element-80bbcca:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-1-3840.webp");}.elementor-1593 .elementor-element.elementor-element-ef6e903:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-2-3840.webp");}.elementor-1593 .elementor-element.elementor-element-c451af3:not(.elementor-motion-effects-element-type-background){background-image:url("/media/projekty/ww-projekty-tlo-3-3840.webp");}}
@media (hover:none){.elementor-1593 .elementor-element.elementor-element-80bbcca:not(.elementor-motion-effects-element-type-background),.elementor-1593 .elementor-element.elementor-element-ef6e903:not(.elementor-motion-effects-element-type-background),.elementor-1593 .elementor-element.elementor-element-c451af3:not(.elementor-motion-effects-element-type-background){background-attachment:scroll;}}
@supports (-webkit-touch-callout:none){.elementor-1593 .elementor-element.elementor-element-80bbcca:not(.elementor-motion-effects-element-type-background),.elementor-1593 .elementor-element.elementor-element-ef6e903:not(.elementor-motion-effects-element-type-background),.elementor-1593 .elementor-element.elementor-element-c451af3:not(.elementor-motion-effects-element-type-background){background-attachment:scroll;}}

/* Sklep: karty projektów w języku kart katalogu wiat A (Adrian 03.10, public/css/katalog.css .kt-siatka--a): biały kafel, obrys 1px,
   promień 16, miękki cień, ciepły pas pod siatką, zdjęcie do krawędzi, nazwa 20px tusz, kwota 26px tusz cyframi tabularnymi (zamiast
   szarej i oliwkowej ceny). Treść kart i liczba kolumn bez zmian. Zdjęcia 3:2, bo tyle ma 33 z 43 zdjęć sklepu (bez obcinania renderów).
   Dotyczy /sklep-projekty/ (szablon 1677), /sklep-konstrukcje/ (1438) i archiwów /kategoria-produktu/ (WooCommerce). */
.elementor-1671 .elementor-element.elementor-element-b2aaf2a, .elementor-1336 .elementor-element.elementor-element-495a702 { background: #F7F7F5; }
.elementor-1671 .elementor-element.elementor-element-b2aaf2a { padding-block: 24px 36px; }
.elementor-1671 .elementor-element.elementor-element-3b34308, .elementor-1336 .elementor-element.elementor-element-d68cfaf { --grid-row-gap: 28px; --grid-column-gap: 24px; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) {
  position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #E5E7EB; border-radius: 16px; background: #fff;
  box-shadow: 0 2px 4px rgb(17 24 39 / .04), 0 8px 20px rgb(17 24 39 / .06); transition: border-color .2s, box-shadow .2s;
}
body .e-loop-item:is(.elementor-1677, .elementor-1438) > .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 20px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; flex: 1 0 auto; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) > .e-con > .e-con-inner { flex: 1 0 auto; display: flex; flex-direction: column; gap: 0; padding: 0 0 20px; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .e-con-inner > .elementor-element { margin: 0 18px; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .e-con-inner > .elementor-widget-image { margin: 0; overflow: hidden; background: #EFEFEC; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-image a { display: block; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-heading .elementor-heading-title { display: block; margin: 18px 0 0; color: #111827; font: 700 20px/1.25 "DM Sans", system-ui, sans-serif; letter-spacing: -0.02em; text-wrap: balance; }
body.woocommerce .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-woocommerce-product-price .price,
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-woocommerce-product-price .price { margin: 10px 0 0; color: #111827; font: 700 26px/1.2 "DM Sans", system-ui, sans-serif; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .price .woocommerce-Price-currencySymbol { color: #4B5563; font-size: 15px; font-weight: 600; letter-spacing: 0; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .e-con-inner > .elementor-widget-button { position: static; margin-top: auto; padding-top: 18px; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-button .elementor-button { min-height: 48px; padding: 14px 26px; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-button .elementor-button::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 16px; } /* cała karta klikalna, jak w katalogu */
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-button .elementor-button:focus-visible { outline: 0; }
body .e-loop-item:is(.elementor-1677, .elementor-1438) .elementor-widget-button .elementor-button:focus-visible::after { outline: 3px solid #DC2626; outline-offset: -3px; }
@media (hover: hover) {
  body .e-loop-item:is(.elementor-1677, .elementor-1438):hover { border-color: #D1D5DB; box-shadow: 0 1px 2px rgb(17 24 39 / .05), 0 10px 28px rgb(17 24 39 / .11); }
  body .e-loop-item:is(.elementor-1677, .elementor-1438):hover .elementor-widget-image img { transform: scale(1.035); }
}
/* archiwum kategorii: ta sama karta w siatce 2 kolumn (jak dotąd), ciepły pas na całą szerokość ekranu */
.tax-product_cat.woocommerce ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; margin: 0 0 1em; padding: 20px 0 32px; background: #F7F7F5; box-shadow: 0 0 0 100vmax #F7F7F5; clip-path: inset(0 -100vmax); }
.tax-product_cat.woocommerce ul.products::before, .tax-product_cat.woocommerce ul.products::after { display: none; }
.tax-product_cat.woocommerce ul.products[class*=columns-] li.product, .tax-product_cat.woocommerce ul.products li.product {
  float: none; clear: none; width: auto; margin: 0; display: flex; flex-direction: column; padding-bottom: 16px; overflow: hidden; border: 1px solid #E5E7EB;
  border-radius: 16px; background: #fff; box-shadow: 0 2px 4px rgb(17 24 39 / .04), 0 8px 20px rgb(17 24 39 / .06); transition: border-color .2s, box-shadow .2s;
}
.tax-product_cat.woocommerce ul.products li.product a.woocommerce-loop-product__link { flex: 1 0 auto; color: #111827; }
.tax-product_cat.woocommerce ul.products li.product a img { aspect-ratio: 3 / 2; object-fit: cover; margin: 0; border-radius: 0; background: #EFEFEC; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 14px 12px 0; padding: 0; color: #111827; font: 700 16px/1.3 "DM Sans", system-ui, sans-serif; letter-spacing: -0.01em; text-wrap: balance; }
.tax-product_cat.woocommerce ul.products li.product .price { margin: 8px 12px 0; color: #111827; font: 700 20px/1.2 "DM Sans", system-ui, sans-serif; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.tax-product_cat.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol { color: #4B5563; font-size: 15px; font-weight: 600; letter-spacing: 0; }
.tax-product_cat.woocommerce ul.products li.product .button {
  align-self: flex-start; display: inline-flex; align-items: center; min-height: 44px; margin: 14px 12px 0; padding: 0 18px; border-radius: 999px;
  background: #DC2626; color: #fff; font: 700 15px/1.2 "DM Sans", system-ui, sans-serif; transition: background-color .2s;
}
@media (max-width: 767px) { .tax-product_cat.woocommerce ul.products li.product .button { align-self: stretch; justify-content: center; padding: 10px 8px; text-align: center; } }
.tax-product_cat.woocommerce ul.products li.product .button:hover { background: #B91C1C; color: #fff; }
.tax-product_cat.woocommerce ul.products li.product .button:focus-visible { outline: 3px solid #DC2626; outline-offset: 2px; }
.tax-product_cat.woocommerce ul.products li.product a.woocommerce-loop-product__link:focus-visible { outline: 0; }
.tax-product_cat.woocommerce ul.products li.product:has(a.woocommerce-loop-product__link:focus-visible) { outline: 3px solid #DC2626; outline-offset: 2px; }
@media (hover: hover) {
  .tax-product_cat.woocommerce ul.products li.product:hover { border-color: #D1D5DB; box-shadow: 0 1px 2px rgb(17 24 39 / .05), 0 10px 28px rgb(17 24 39 / .11); }
  .tax-product_cat.woocommerce ul.products li.product:hover a img { transform: scale(1.035); }
}
@media (min-width: 768px) {
  .elementor-1671 .elementor-element.elementor-element-3b34308, .elementor-1336 .elementor-element.elementor-element-d68cfaf { --grid-row-gap: 32px; --grid-column-gap: 24px; }
  .tax-product_cat.woocommerce ul.products { gap: 32px 24px; padding: 24px 0 36px; }
  .tax-product_cat.woocommerce ul.products li.product { padding-bottom: 20px; }
  .tax-product_cat.woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 18px 18px 0; font-size: 20px; letter-spacing: -0.02em; }
  .tax-product_cat.woocommerce ul.products li.product .price { margin: 10px 18px 0; font-size: 26px; letter-spacing: -0.03em; }
  .tax-product_cat.woocommerce ul.products li.product .button { margin: 18px 18px 0; min-height: 48px; padding: 0 26px; font-size: 16px; }
}
@media (min-width: 1025px) {
  .elementor-1671 .elementor-element.elementor-element-b2aaf2a { padding-block: 40px 56px; }
  .elementor-1671 .elementor-element.elementor-element-3b34308, .elementor-1336 .elementor-element.elementor-element-d68cfaf { --grid-row-gap: 40px; --grid-column-gap: 32px; }
  .tax-product_cat.woocommerce ul.products { gap: 40px 32px; padding: 40px 0 56px; }
}

/* Koszyk jest dostępny także w mobilnym nagłówku, obok menu. */
.ww-mobile-koszyk { display:none; }
@media (max-width:1024px) {
  #masthead .elementor-element-167d912>.e-con-inner { flex-wrap:nowrap; gap:8px; padding-inline:12px; align-items:center; }
  #masthead .elementor-element-c07ae9a { flex:1; width:auto; min-width:80px; }
  #masthead .elementor-element-1d1e5f9 { flex:0 0 auto; width:auto; }
  #masthead .elementor-element-4e0b17d .elementor-button { padding:12px 10px; font-size:12px; }
  #masthead .elementor-element-e32ce3c { flex:0 0 44px; width:44px; }
  #masthead .ww-mobile-koszyk { display:inline-flex; align-items:center; justify-content:center; position:relative; flex:0 0 44px; height:44px; color:#111827; border:1px solid #D1D5DB; border-radius:50%; }
  #masthead .ww-mobile-koszyk .hfe-cart-count { position:absolute; right:-3px; top:-3px; display:flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 3px; font:600 11px/1 "DM Sans",sans-serif; background:#DC2626; color:white; border-radius:50%; }
  #masthead .ww-mobile-koszyk:focus-visible { outline:3px solid #DC2626; outline-offset:3px; }
}

/* Stały kontakt i wycena na mobilnych stronach oferty; karty mają własne paski. */
.ww-mobilne-akcje { display:none; }
@media(max-width:800px) {
  .ww-ma-pasek { padding-bottom:82px; }
  .ww-mobilne-akcje { position:fixed; z-index:45; left:0; right:0; bottom:0; display:flex; gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:white; border-top:1px solid #E5E7EB; box-shadow:0 -2px 12px rgb(17 24 39 / .05); }
  .ww-mobilne-akcje a { display:flex; align-items:center; justify-content:center; min-height:48px; flex:1; padding:12px 14px; border:1px solid #D1D5DB; border-radius:999px; font:600 15px/1.3 "DM Sans",sans-serif; color:#111827; text-decoration:none; }
  .ww-mobilne-akcje a:last-child { flex:1.6; border-color:#DC2626; background:#DC2626; color:white; }
  .ww-mobilne-akcje a:focus-visible { outline:3px solid #DC2626; outline-offset:3px; }
}
