/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Sep 21 2026 | 09:35:31 */
@charset "UTF-8";
.acf-extra-section, .acf-product-section {
  padding: 60px;
  border: 1px solid #efebe9;
  margin-bottom: 80px;
}
.acf-section-title {
  font-size: 50px;
  font-weight: 400;
  text-align: center;
  margin: 0 0 40px;
  color: #073823;
  font-family: Merriweather, serif;
}
.acf-faq .section-eyebrow {
  font-family: Merriweather, serif;
  font-size: 40px;
  margin-bottom: 20px;
  line-height: 1.2em;
  font-weight: 400;
  text-transform: none;
}
.acf-faq__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.acf-faq__item {
  overflow: hidden;
  background: #f7f3f0;
}
.acf-faq__question {
  font-family: Merriweather, serif;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 36px 40px;
  font-size: 22px;
  font-weight: 400;
  color: #073823;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
/* Ikona strzałki — obrót po otwarciu */
.acf-faq__icon {
  flex-shrink: 0;
  transition: transform 0.25s;
  color: #999;
}
.acf-faq__item[open] .acf-faq__icon {
  transform: rotate(180deg);
  color: #2c7a2c;
}
.acf-faq__answer {
  padding: 0 40px 40px;
}
/* Ukryj domyślny marker przeglądarki */
.acf-faq__question::-webkit-details-marker {
  display: none;
}
.acf-faq__question::marker {
  display: none;
}
.acf-extra-section.acf-experts {
  border: 0;
  background: #f7f3f0;
  padding: 0;
}
.acf-experts__list {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.acf-expert__card {
  display: flex;
  gap: 10%;
  align-items: center;
  background: #f7f3f0;
}
.acf-expert__photo {
  flex-shrink: 0;
  width: 40%;
  max-width: 300px;
}
.acf-expert__photo img {
  object-fit: contain;
  display: block;
  aspect-ratio: 1;
  width: 100%;
}
.acf-expert__content {
  flex: 1;
}
.acf-expert__quote {
  margin: 0;
  padding: 0;
  border: none;
}
.acf-expert__quote p {
  font-style: normal;
  font-size: 15px;
  font-weight: 300;
  line-height: 2;
}
.acf-expert__quote .acf-expert__quotemark {
  display: block;
  margin-bottom: 30px;
}
.acf-expert__quote .acf-expert__name {
  display: block;
  font-size: 40px;
  line-height: 50px;
  font-weight: 400;
  font-style: normal;
  color: #073823;
  font-family: Merriweather, serif;
  margin-bottom: 30px;
}
.acf-knowledge {
  padding: 0;
  border: 0;
}
.acf-knowledge__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 23px;
}
.acf-knowledge__thumb {
  margin-bottom: 20px;
  overflow: hidden;
  display: block;
}
.acf-knowledge__thumb img {
  width: 100%;
  aspect-ratio: 1.2;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}
.acf-knowledge__card:hover .acf-knowledge__thumb img {
  transform: scale(1.03);
}
.acf-knowledge__date {
  display: block;
  font-size: 17px;
  color: #073823;
  margin-bottom: 20px;
  line-height: 1;
}
.acf-knowledge__title {
  font-family: Merriweather, serif;
  font-size: 22px;
  font-weight: 400;
  margin: 0 0 20px;
  line-height: 1.4;
}
.acf-knowledge__title a {
  color: #073823;
  text-decoration: none;
}
.acf-knowledge__title a:hover {
  color: #9CB477;
}
.acf-knowledge__excerpt {
  font-weight: 300;
}
.acf-knowledge__link {
  padding: 16px 36px;
  font-size: 18px;
  color: #fff !important;
  background: #9CB477;
  border-radius: 50px;
  text-decoration: none;
  line-height: 1;
  display: inline-block;
}
.acf-knowledge__link:hover {
  background: #DEA319;
}
@media (max-width: 600px) {
  .acf-expert__card {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .acf-expert__quotemark {
    float: none;
  }
}
@media (max-width: 768px) {
  .acf-knowledge__grid {
    grid-template-columns: 1fr;
  }
  .acf-section-title {
    font-size: 18px;
  }
}
.acf-two-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 768px) {
  .acf-two-columns {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .acf-anchor-link {
    padding: 12px 14px;
    font-size: 13px;
  }
}
.acf-product-section {
  scroll-margin-top: 60px;
}
.acf-product-section .acf-block__heading {
  max-width: 80%;
  margin-bottom: 50px;
  display: inline-block;
  margin-left: -60px;
}
.acf-product-section .acf-block__heading .section-eyebrow {
  background: #9CB477;
  padding: 18px 40px;
  margin: 0;
  border-radius: 0 50px 50px 0;
  text-transform: uppercase;
  color: #fff;
  font-size: 22px;
  line-height: 1;
}
.acf-product-section .acf-col--right .acf-block__heading {
  display: block;
  margin: 0 auto 50px;
}
.acf-product-section .acf-col--right .acf-block__heading .section-eyebrow {
  text-align: center;
  border-radius: 50px;
}
.acf-wysiwyg p, .acf-wysiwyg li {
  line-height: 1.75;
  color: #333;
}
.acf-wysiwyg p:last-child {
  margin-bottom: 0;
}
.acf-block--table {
  background: #F7F3F0;
}
.acf-block--table .acf-block__body {
  padding: 0 10%;
}
.acf-nutrition-table {
  border: 0;
}
.acf-nutrition-table th {
  border-left: 0;
  border-right: 0;
  border-bottom: 3px solid #073823;
}
.acf-nutrition-table td {
  padding: 5px 0;
  border-bottom: 1px solid #073823;
  border-left: 0;
  border-right: 0;
  color: #333;
  font-size: 14px;
}
.acf-nutrition-table td:last-child {
  text-align: right;
}
.acf-nutrition-table tr:last-child td {
  border-bottom: 3px solid #073823;
}
/* ── Galeria produktu: taśma miniatur (przewijana, scroll-snap) ── */
.woocommerce div.product div.images ol.flex-control-thumbs {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 10px;
  margin: 12px 0 0;
  padding: 4px 2px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.woocommerce div.product div.images ol.flex-control-thumbs::-webkit-scrollbar {
  display: none;
}
.woocommerce div.product div.images ol.flex-control-thumbs li {
  float: none;
  flex: 0 0 auto;
  width: 84px;
  margin: 0;
  scroll-snap-align: start;
}
.woocommerce div.product div.images ol.flex-control-thumbs li img {
  display: block;
  width: 100%;
  border-radius: 8px;
  border: 2px solid transparent;
  opacity: 0.7;
  transition: opacity 0.2s, border-color 0.2s;
  cursor: pointer;
}
.woocommerce div.product div.images ol.flex-control-thumbs li img:hover, .woocommerce div.product div.images ol.flex-control-thumbs li img.flex-active {
  opacity: 1;
}
.woocommerce div.product div.images ol.flex-control-thumbs li img.flex-active {
  border-color: #9CB477;
}
@media (max-width: 768px) {
  .woocommerce div.product div.images ol.flex-control-thumbs li {
    width: 72px;
  }
}
/* ── koniec taśmy miniatur ── */
/* === Karta produktu — podsumowanie (2026-07-12) === */
/* Cena — duza, pogrubiona */
.woocommerce div.product .summary p.price {
  font-size: 28px;
  font-weight: 700;
  color: #1d1d1d;
  margin: 4px 0 20px;
}
.woocommerce div.product .summary p.price del {
  color: #999;
  font-weight: 400;
  font-size: 20px;
}
.woocommerce div.product .summary p.price ins {
  text-decoration: none;
}
/* Duplikat ceny wariantu nad iloscia — ukryty (cena jest wyzej).
   Dostepnosc zostaje widoczna: dla wariantu bez stanu to jedyny komunikat
   "Brak w magazynie", a dla wariantu na stanie i tak jest pusta. */
.woocommerce div.product .woocommerce-variation-price {
  display: none;
}
/* Etykieta wariantu: bez echa wybranej wartosci, pogrubiona */
.woocommerce div.product .variations .woo-selected-variation-item-name {
  display: none;
}
.woocommerce div.product .variations th.label label {
  font-weight: 600;
  color: #222;
  font-size: 15px;
}
/* Swatche: zaokraglone; zaznaczenie bez zmiany wymiarow (ramka 1px + inset shadow) */
.woocommerce div.product .variations .variable-items-wrapper .variable-item.button-variable-item {
  border-radius: 8px;
  box-shadow: none;
  border: 1px solid #ddd;
  background: #fff;
  padding: 10px 24px;
  height: auto;
  font-size: 15px;
  color: #222;
}
.woocommerce div.product .variations .variable-items-wrapper .variable-item.button-variable-item:hover {
  border-color: #5f7d3f;
  box-shadow: none;
}
.woocommerce div.product .variations .variable-items-wrapper .variable-item.button-variable-item.selected, .woocommerce div.product .variations .variable-items-wrapper .variable-item.button-variable-item.selected:hover {
  border-color: #5f7d3f;
  box-shadow: inset 0 0 0 1px #5f7d3f;
  background: #faf6ec;
}
/* Ilosc: okragle -/+ i pigulka z liczba */
.woocommerce div.product form.cart .quantity.buttons-added {
  display: flex;
  align-items: center;
  gap: 10px;
}
.woocommerce div.product form.cart .quantity.buttons-added a.minus, .woocommerce div.product form.cart .quantity.buttons-added a.plus {
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border-radius: 50%;
  border: 1px solid #ccc;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  color: #222;
  text-decoration: none;
}
.woocommerce div.product form.cart .quantity.buttons-added input.qty {
  width: 84px;
  height: 54px;
  border-radius: 27px;
  border: 1px solid #ccc;
  background: #fff;
  text-align: center;
  font-size: 18px;
  -moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button, .woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Rzad: ilosc + Do koszyka */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart, .woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) {
  display: flex;
  align-items: center;
  gap: 14px;
}
/* Przycisk Do koszyka — oliwkowy pill na cala pozostala szerokosc */
.woocommerce div.product form.cart button.single_add_to_cart_button {
  flex: 1 1 auto;
  height: 54px;
  border-radius: 999px;
  border: none;
  background: #a8bc8b;
  color: #fff;
  font-size: 19px;
  font-weight: 500;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
  background: #97ac79;
}
/* Krotki opis pod koszykiem */
.woocommerce div.product .summary .woocommerce-product-details__short-description {
  margin-top: 26px;
  color: #333;
}
/* Mobile: warianty jeden pod drugim, ilosc i przycisk na 100% */
@media (max-width: 768px) {
  .woocommerce div.product .variations .variable-items-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }
  .woocommerce div.product .variations .variable-items-wrapper .variable-item.button-variable-item {
    width: 100%;
    margin: 0;
    padding: 13px 24px;
    text-align: center;
  }
  .woocommerce div.product form.cart .woocommerce-variation-add-to-cart, .woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) {
    flex-wrap: wrap;
  }
  .woocommerce div.product form.cart .quantity.buttons-added {
    width: 100%;
    justify-content: space-between;
    /* GP Premium mobile daje flex-end */
  }
  .woocommerce div.product form.cart .quantity.buttons-added input.qty {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    /* GP Premium ogranicza .qty do 80px */
    min-width: 0;
  }
  .woocommerce div.product form.cart button.single_add_to_cart_button {
    flex-basis: 100%;
    width: 100%;
  }
}
/* === Karty produktów w pętlach (2026-07-12) === */
/* Sekcje pod podsumowaniem musza schodzic PONIZEJ galerii (float);
   wczesniej czyscila to sekcja related renderowana tuz po summary */
.woocommerce div.product .acf-icons-section, .woocommerce div.product .acf-sections-wrapper, .woocommerce div.product .acf-extra-sections, .woocommerce div.product .related.products, .woocommerce div.product .up-sells {
  clear: both;
}
/* Siatka: rowna wysokosc kart w rzedzie (GP na desktopie uzywa floatow,
   przez co przyciski laduja na roznych wysokosciach) */
@media (min-width: 769px) {
  /* clearfix z ukladu floatow stalby sie elementem siatki w 1. komorce */
  .woocommerce ul.products.columns-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
  }
  .woocommerce ul.products.columns-4 li.product {
    width: 100%;
    margin: 0;
    float: none;
  }
  .woocommerce ul.products.columns-4::before, .woocommerce ul.products.columns-4::after {
    display: none;
  }
}
/* Karta: flex column, przycisk dociagniety do dolu, tekst do lewej */
.woocommerce ul.products li.product {
  display: flex;
  flex-direction: column;
  text-align: left;
}
/* Zdjecie w boksie z ramka — jedna ramka, na .inside-wc-product-image
   (ta sama wartosc co na stronach kategorii; obejmuje tez strone glowna) */
.woocommerce ul.products li.product .wc-product-image {
  background: #fff;
  margin-bottom: 14px;
}
.woocommerce ul.products li.product .inside-wc-product-image {
  border: 1px solid #dfd8d3;
  background: #fff;
}
/* Tytul: bold, ciemny, do lewej */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-weight: 600;
  color: #222;
  font-size: 16px;
  line-height: 1.35;
  text-align: left;
}
/* Chipsy wariantow na listingu */
.woocommerce ul.products li.product .variable-items-wrapper {
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 4px;
  margin: 10px 0 0;
}
.woocommerce ul.products li.product .variable-items-wrapper .variable-item.button-variable-item {
  border-radius: 6px;
  box-shadow: none;
  border: 1px solid #ddd;
  background: #fff;
  padding: 4px 9px;
  height: auto;
  font-size: 12px;
  color: #222;
  margin: 0;
  white-space: nowrap;
}
.woocommerce ul.products li.product .variable-items-wrapper .variable-item.button-variable-item:hover {
  border-color: #5f7d3f;
  box-shadow: none;
}
.woocommerce ul.products li.product .variable-items-wrapper .variable-item.button-variable-item.selected, .woocommerce ul.products li.product .variable-items-wrapper .variable-item.button-variable-item.selected:hover {
  border-color: #5f7d3f;
  box-shadow: inset 0 0 0 1px #5f7d3f;
  background: #faf6ec;
}
/* Cena: wysrodkowana, pogrubiona; Omnibus drobny, tez wysrodkowany */
.woocommerce ul.products li.product .price {
  display: block;
  text-align: center;
  color: #1d1d1d;
  font-weight: 600;
  font-size: 16px;
  margin: 12px 0 0;
}
.woocommerce ul.products li.product .price del {
  color: #999;
  font-weight: 400;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
}
.woocommerce ul.products li.product .pas-omnibus {
  text-align: center;
}
/* Przycisk: pill na cala szerokosc, dociagniety do dolu karty */
.woocommerce ul.products li.product .button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: auto;
  padding: 0 20px;
  height: 48px;
  border-radius: 999px;
  border: none;
  background: #a8bc8b;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
}
.woocommerce ul.products li.product .button:hover {
  background: #97ac79;
  color: #fff;
}
/* Mobile: mniejszy tekst przycisku w siatce, "Wybierz wariant" w jednej linii */
@media (max-width: 480px) {
  .woocommerce ul.products li.product .button {
    padding: 0 10px;
    font-size: 14px;
    white-space: nowrap;
  }
}
/* odstep miedzy cena a przyciskiem, gdy karta jest krotka */
.woocommerce ul.products li.product .price + .button, .woocommerce ul.products li.product .pas-omnibus + .button {
  margin-top: 14px;
}
/* Naglowki sekcji produktowych na stronie glownej: serif, do lewej */
.szn-products-heading {
  font-family: Merriweather, serif;
  font-size: 40px;
  font-weight: 400;
  color: #073823;
  text-align: left;
  margin: 20px 0 10px;
}
/* Naglowek sekcji related/cross-sells: jak .acf-section-title */
.woocommerce .related.products > h2, .woocommerce .up-sells.products > h2, .woocommerce .cross-sells > h2 {
  font-family: Merriweather, serif;
  font-size: 40px;
  font-weight: 400;
  text-align: center;
  color: #073823;
  margin: 60px 0 40px;
}
/* === Mega menu i sekcje kategorii (2026-07-12) === */
/* Sekcje podkategorii na stronie kategorii */
.pas-cat-section {
  margin: 0 0 44px;
}
.pas-cat-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.pas-cat-section-head .szn-products-heading {
  margin: 0 0 6px;
}
.pas-cat-section-head .szn-products-heading a {
  color: inherit;
  text-decoration: none;
}
.pas-cat-section-head .szn-products-heading a:hover {
  text-decoration: underline;
}
.pas-cat-all {
  font-size: 14px;
  color: #5f7d3f;
  text-decoration: underline;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .szn-products-heading {
    font-size: 28px;
  }
}
/* Mega menu — desktop */
@media (min-width: 769px) {
  /* li nie moze byc containing blockiem — panel rozciaga sie na caly pasek */
  /* Reset stylow dropdownow motywu (.main-navigation ul ul) wewnatrz panelu */
  /* chevron GP zbedny na desktopie — kazda kategoria i tak otwiera flyout */
  .main-navigation {
    position: relative;
  }
  .main-navigation .menu > li.pas-has-megamenu {
    position: static;
  }
  .main-navigation .menu > li.pas-has-megamenu > ul.sub-menu {
    display: none;
  }
  .pas-megamenu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 999;
    background: #fff;
    border: 1px solid #eee;
    border-top: 2px solid #a8bc8b;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px);
    /* zamkniecie: szybkie, z minimalnym opoznieniem (przejscie po skosie do panelu) */
    transition: opacity 0.12s ease 0.08s, transform 0.12s ease 0.08s, visibility 0s linear 0.2s;
  }
  li.pas-has-megamenu:hover > .pas-megamenu, li.pas-has-megamenu:focus-within > .pas-megamenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    z-index: 1000;
    /* otwarcie: hover-intent — szybkie przeciecie pozycji nie otwiera panelu */
    transition: opacity 0.15s ease 0.18s, transform 0.15s ease 0.18s, visibility 0s linear 0.18s;
  }
  .pas-megamenu-inner {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    padding: 34px 40px;
    max-width: 1440px;
    margin: 0 auto;
  }
  .pas-megamenu-cols {
    display: flex;
    gap: 48px;
    flex: 1 1 auto;
    text-align: left;
  }
  .main-navigation .pas-megamenu .pas-megamenu-col ul {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    position: static;
    display: block;
    visibility: visible;
    opacity: 1;
    box-shadow: none;
    background: transparent;
    border: 0;
    width: auto;
    min-width: 0;
    height: auto;
    left: auto;
    top: auto;
    transition: none;
    transform: none;
    float: none;
    pointer-events: inherit;
  }
  .main-navigation .pas-megamenu .pas-megamenu-col li {
    margin: 0 0 8px;
    float: none;
    width: auto;
    display: block;
    position: static;
  }
  .main-navigation .pas-megamenu .pas-megamenu-col li a {
    display: inline-block;
    padding: 0;
    line-height: 1.5;
    height: auto;
    font-size: 14px;
    color: #444;
    text-decoration: none;
    font-weight: 400;
  }
  .main-navigation .pas-megamenu .pas-megamenu-col li a:hover {
    color: #073823;
    text-decoration: underline;
  }
  .main-navigation .menu > li.pas-has-megamenu > a .dropdown-menu-toggle {
    display: none;
  }
  .main-navigation .pas-megamenu .pas-megamenu-title {
    display: inline-block;
    padding: 0;
    height: auto;
    line-height: 1.4;
    font-weight: 600;
    color: #073823;
    font-size: 16px;
    text-decoration: none;
  }
  .main-navigation .pas-megamenu .pas-megamenu-title:hover {
    text-decoration: underline;
    color: #073823;
  }
  .main-navigation .pas-megamenu .pas-megamenu-all {
    display: inline-block;
    padding: 0;
    height: auto;
    line-height: 1.4;
    margin-top: 10px;
    font-size: 13px;
    color: #5f7d3f;
    text-decoration: underline;
  }
  .main-navigation .pas-megamenu .pas-megamenu-all:hover {
    color: #073823;
  }
  .pas-megamenu--flat .pas-megamenu-col ul {
    column-count: 2;
    column-gap: 48px;
  }
  .pas-megamenu-banner {
    flex: 0 0 300px;
  }
  .pas-megamenu-banner img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
  }
}
/* Mega menu — mobile: panele ukryte, akordeon GP przejmuje sub-menu */
@media (max-width: 768px) {
  .pas-megamenu {
    display: none;
  }
  .main-navigation .pas-mobile-sub {
    display: none;
  }
  .main-navigation .pas-mobile-sub.toggled-on {
    display: block;
  }
}
/* === Nagłówek kategorii i nav (2026-07-12) === */
/* Boks nagłówka kategorii */
.pas-cat-header {
  display: flex;
  align-items: stretch;
  background: #f7f3f0;
  margin: 6px 0 40px;
  overflow: hidden;
}
.pas-cat-header-text {
  flex: 1 1 auto;
  padding: 48px 56px;
  min-width: 0;
}
h1.pas-cat-title {
  font-family: Merriweather, serif;
  font-size: 44px;
  font-weight: 400;
  color: #073823;
  margin: 0 0 24px;
}
.pas-cat-desc {
  font-size: 16px;
  color: #4a4a4a;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pas-cat-desc.is-expanded {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
.pas-cat-desc p {
  margin: 0 0 12px;
}
.pas-cat-more {
  display: none;
  margin-top: 18px;
  font-size: 16px;
  color: #5f7d3f;
  text-decoration: none;
}
.pas-cat-more:hover {
  text-decoration: underline;
  color: #073823;
}
.pas-cat-header-img {
  flex: 0 0 45%;
  position: relative;
  min-height: 320px;
}
.pas-cat-header-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .pas-cat-header {
    flex-direction: column;
  }
  .pas-cat-header-text {
    padding: 24px;
  }
  h1.pas-cat-title {
    font-size: 28px;
    margin-bottom: 14px;
  }
  .pas-cat-header-img {
    flex: none;
    min-height: 0;
    position: static;
  }
  .pas-cat-header-img img {
    position: static;
    height: 220px;
  }
}
/* Nawigacja: dolny border + ciasniejsze odstepy */
.main-navigation {
  border-bottom: 1px solid #e8e8e8;
}
@media (min-width: 769px) {
  .main-navigation .menu > li > a {
    padding-left: 17px;
    padding-right: 17px;
  }
  .main-navigation .menu > li:first-child > a {
    padding-left: 0;
  }
}
/* QA-FIX mobile: sekcje ACF karty produktu */
@media (max-width: 768px) {
  .acf-extra-section, .acf-product-section {
    padding: 28px 18px;
    margin-bottom: 40px;
  }
  .acf-product-section .acf-block__heading {
    max-width: none;
    margin-left: -18px;
    margin-bottom: 24px;
  }
  .acf-product-section .acf-block__heading .section-eyebrow {
    font-size: 15px;
    padding: 12px 22px;
    line-height: 1.25;
  }
  .acf-product-section .acf-col--right .acf-block__heading {
    margin-left: auto;
    margin-right: auto;
  }
}
/* ============================================================
   Hc4sZ7Ar: panel sticky add-to-cart (GP Premium)
   Przycisk panelu w stylu CTA karty produktu + brak kolizji
   naszego back-to-top z panelem na mobile.
   ============================================================ */
#wc-sticky-cart-panel .button {
  flex-shrink: 0;
  min-height: 44px;
  padding: 10px 22px;
  border: none;
  border-radius: 999px;
  background: #a8bc8b;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}
#wc-sticky-cart-panel .button:hover, #wc-sticky-cart-panel .button:focus {
  background: #97ac79;
  color: #fff;
}
/* Nazwa produktu ma sie skracac wielokropkiem, a nie rozpychac paska */
#wc-sticky-cart-panel .product-title {
  min-width: 0;
}
@media (max-width: 768px) {
  /* Ponizej 768px GP przykleja panel do dolu — kolko back-to-top ladowalo
     wtedy dokladnie na przycisku i zaslanialo etykiete. Podnosimy je nad
     panel tylko na czas, gdy panel jest widoczny. */
  body:has(#wc-sticky-cart-panel.show-sticky-add-to-cart) .szn-scroll-top, body:has(#wc-sticky-cart-panel.item-added) .szn-scroll-top {
    bottom: 104px;
  }
}
/* iaN4o4qJ: zawijanie chipow wariantu */
/* W siatce z sidebarem kafel ma 238px, a rzad czterech chipow 299px. Wrapper
   jest elementem flex kolumnowego kafla, wiec jego automatyczny rozmiar
   minimalny przy `nowrap` rowna sie sumie chipow i blokuje zwezenie do
   szerokosci kafla — czwarty chip wychodzil 57px poza krawedz. Przy `wrap`
   min-content to szerokosc najszerszego pojedynczego chipa, wiec wrapper
   miesci sie w kaflu, a nadmiar schodzi do drugiego rzedu. Szersze kafle
   (siatka kategorii, 314px) mieszcza caly rzad i zostaja jednorzedowe. */
.woocommerce ul.products li.product .variable-items-wrapper {
  flex-wrap: wrap;
}
/* === karta 93x7aius: popup Boost Sales na dotyku === */
/* 1. Przycisk dodania na kaflu propozycji: wtyczka odslania nakladke
      wylacznie przez :hover, ktorego na dotyku nie ma. */
@media (hover: none) {
  .woocommerce-boost-sales .wbs-upsells.wbs-upsells-atc-style-hover .product-controls {
    visibility: visible;
    top: 24px;
    overflow: auto;
    max-height: calc(100% - 24px);
  }
}
@media (max-width: 480px) {
  /* 1b. To samo co wyzej, ale progiem szerokosci: `hover: none` nie jest
         emulowane w narzedziach pomiarowych, a wtyczka wlasne zachowanie
         mobilne skaluje wlasnie tym progiem. Dwie drogi do tego samego. */
  /* 2. Strzalki suwaka: bez nich 6 z 7 propozycji jest nieosiagalnych,
        bo swipe nie dziala, a kropek wtyczka nie renderuje. */
  /* 3. Wiersz mowiacy CO zostalo dodane — miniatura, nazwa, ilosc, kwota. */
  .woocommerce-boost-sales .wbs-upsells.wbs-upsells-atc-style-hover .product-controls {
    visibility: visible;
    top: 24px;
    overflow: auto;
    max-height: calc(100% - 24px);
  }
  #wbs-content-upsells .woocommerce-boost-sales-direction-nav {
    display: block;
  }
  #wbs-content-upsells .woocommerce-boost-sales-direction-nav a {
    width: 44px;
  }
  #wbs-content-upsells .woocommerce-boost-sales-direction-nav .woocommerce-boost-sales-prev {
    opacity: 0.7;
    left: 0;
  }
  #wbs-content-upsells .woocommerce-boost-sales-direction-nav .woocommerce-boost-sales-next {
    opacity: 0.7;
    right: 0;
  }
  .woocommerce-boost-sales .wbs-wrapper:not(.wbs-upsell-items-count-0) .wbs-breadcrum .wbs-product {
    display: block;
  }
}
/* === koniec 93x7aius === */
/* === karta aX6TRMFg: panel "brak wynikow" a pasek menu === */
/* Panel konczyl sie w polowie liter w pasku menu. Podnosimy minimalna
   wysokosc samego komunikatu — to ona decyduje o wysokosci calego panelu —
   zeby dolna krawedz minela rzad menu, tak jak robi to panel z wynikami. */
.dgwt-wcas-suggestion-nores {
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
/* === koniec aX6TRMFg === */
/* === karta bfr2RrdB: szerokosc kolumny tekstu na stronach === */
/* 1360 px przy foncie 15 px to okolo 180 znakow w linii — oko gubi
   poczatek nastepnego wiersza. 710 px to szerokosc kolumny artykulu
   blogowego (.ozi-art-content), wiec powtarzamy decyzje juz przyjeta.

   DZIECKO BEZPOSREDNIE (>) JEST TU ISTOTA, nie stylem zapisu: strona
   glowna ma takie samo .entry-content, ale jej tresc siedzi w blokach
   szn-* i nie ma ANI JEDNEGO elementu tekstowego bezposrednio pod
   .entry-content. Dzieki `>` regula jej nie dotyka. */
@media (min-width: 769px) {
  body.page:not(.home) .entry-content > p, body.page:not(.home) .entry-content > ul, body.page:not(.home) .entry-content > ol, body.page:not(.home) .entry-content > h2, body.page:not(.home) .entry-content > h3, body.page:not(.home) .entry-content > h4, body.page:not(.home) .entry-content > blockquote {
    max-width: 710px;
  }
}
/* === koniec bfr2RrdB === */
/* === karta aLZtgVzb: miniatury w podpowiedziach === */
/* FiboSearch zweza miniatury z 50 px do 30 px, gdy wlaczony jest panel
   szczegolow — po obramowaniu zostaje 28,14 px i wysokie butelki na
   bialym tle wygladaja jak pionowe kreski. Wracamy do 50 px, czyli do
   WLASNEJ wartosci wtyczki dla panelu bez szczegolow.

   Powtarzamy pelna specyficznosc reguly zrodlowej (dwie klasy), zeby
   wygrac kolejnoscia, a nie `!important`. */
.dgwt-wcas-is-details .dgwt-wcas-si {
  width: 50px;
}
/* === koniec aLZtgVzb === */
/* === karta Comf56VQ: cena i podkreslenia w podpowiedziach === */
/* (a) „od” stalo nad kwota nie przez zawijanie tekstu, tylko przez
       `display:block` na dzieciach ceny + kolumnowy flex we wlasnym
       arkuszu wtyczki. `white-space: nowrap` tu NIE dziala.

       `:only-child` jest warunkiem, a nie ozdoba: przy cenie
       promocyjnej sa DWA elementy (przed i po obnizce) i ich
       ukladanie w kolumnie jest zamierzone — ta regula ich nie tyka. */
.dgwt-wcas-suggestion .dgwt-wcas-sp:has(> .woocommerce-Price-amount:only-child) {
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
}
.dgwt-wcas-suggestion .dgwt-wcas-sp > .woocommerce-Price-amount:only-child {
  display: inline;
}
/* (b) Podkreslenie siedzi na CALYM wierszu, a nazwa produktu ma wlasne
       `none` — dlatego tylko ona nie byla podkreslona. Wyrownujemy
       do nazwy, zdejmujac podkreslenie z wiersza. */
.dgwt-wcas-suggestion {
  text-decoration: none;
}
/* === koniec Comf56VQ === */
/* === karta qWQfKcOV: galeria produktu na dotyku === */
/* Nakladka powiekszenia najazdem (jQuery zoom; wlacza ja motyw przez
   add_theme_support( 'wc-product-gallery-zoom' ) w generatepress/inc/plugin-compat.php)
   lezy jako IMG.zoomImg na wierzchu glownego zdjecia, jako rodzenstwo
   kotwicy <a> otwierajacej lightbox. Na desktopie to cala funkcja.
   Na dotyku nie ma najazdu, wiec nakladka nie ma czego pokazac, a mimo
   to przechwytuje tapniecie: zmierzone na stage'u 2026-09-07,
   elementFromPoint w srodku galerii zwracal IMG.zoomImg, przez co
   klikniecie nie dochodzilo do <a> i PhotoSwipe sie nie otwieral.

   Rozroznienie po ZDOLNOSCI WSKAZNIKA, nie po szerokosci okna: prog
   pikseli zabralby powiekszenie takze zwezonemu oknu na desktopie i
   tabletowi z mysza. Zmierzone: 390px z dotykiem -> (hover:none)=true,
   (pointer:coarse)=true; 1440px -> oba false.

   `visibility`, a nie `display`, bo `display` jQuery zoom ustawia inline
   przez .fadeTo() i regula z arkusza by przegrala. Element ukryty przez
   `visibility` wypada z testu trafien, wiec tapniecie dochodzi do <a>. */
@media (hover: none) and (pointer: coarse) {
  .woocommerce div.product div.images .woocommerce-product-gallery__image img.zoomImg {
    visibility: hidden;
    pointer-events: none;
  }
}
/* === koniec qWQfKcOV === */
/* === karta acllEgxq: pusta plakietka TrustMate nie rezerwuje miejsca === */
/* Widget opinii TrustMate (multihornet) wstrzykuje pod cena kazdego kafelka
   listingu plakietke oceny .tm-multihornet. Przy zerowej liczbie opinii sam
   ja chowa, ale TYLKO przez `visibility`, wiec zostaje po niej martwy pasek.
   Zmierzone na stage'u 2026-09-07 sonda CDP (curl tego nie widzi — plakietke
   wstrzykuje skrypt w przegladarce): 20,69 px na desktopie i 12,63 px przy
   390 px, miedzy SPAN.price a przyciskiem "Do koszyka", na 40 kafelkach
   /sklep/, 28 na /kategoria/bakalie-i-przekaski/ i 16 na /kategoria/oleje-i-oliwa/.

   SAMOWYGASZANIE. Zaczepiamy sie o inline'owy styl, ktory skrypt widgetu
   zapisuje WYLACZNIE przy braku opinii:
       if ( ! widget.config.showWithoutReviews && reviewCount === 0 ) {
         tmHornet.style.opacity = '0';
         tmHornet.style.visibility = 'hidden';
       }
   Gdy opinie sie pojawia, ten styl w ogole nie powstaje, atrybut `style`
   znika i regula przestaje pasowac SAMA, bez naszej zmiany. Nie chowamy tez
   niczego na wyrost: ukrywamy tylko to, co widget juz sam uczynil
   niewidocznym — jedyna zmiana jest taka, ze przestaje rezerwowac miejsce.

   NIE opieraj tego na img[src="data:,"], mimo ze tych obrazkow jest tam 200
   na /sklep/. W zrodle widgetu to sygnal KONFIGURACJI, nie braku opinii:
       const src = ratingImage === 'tm-new-star' ? 'data:,' : url + '...svg';
   przy stylu gwiazdki tm-new-star `data:,` zostaje takze przy prawdziwych
   ocenach, wiec regula oparta na nim schowalaby dzialajaca plakietke na stale.

   `!important` JEST TU KONIECZNE i nie jest nasza eskalacja. Skrypt widgetu
   wstrzykuje wlasny <style> (46 463 znakow), a w nim:
       .tm-multihornet { display: block !important; }
   Zmierzone na stage'u 2026-09-07: bez `!important` regula z tego arkusza
   przegrywa mimo wyzszej szczegolowosci (display zostaje `block`, pasek
   20,69 px); z `!important` element wypada z ukladu (display `none`, 0 px).
   Zrodla nie da sie poprawic — to cudzy skrypt z domeny trustmate.pro.

   Dwa warianty zapisu na wypadek innej serializacji atrybutu `style`.
   To zwykle selektory atrybutu z CSS 3 — przegladarka, ktora ich nie zna,
   pominelaby regule i zachowala dzisiejszy wyglad, czyli nie gorzej niz teraz. */
.tm-multihornet[style*="visibility: hidden"], .tm-multihornet[style*="visibility:hidden"] {
  display: none !important;
}
/* === koniec acllEgxq === */
/* === karta IG72CKOG: naglowek korekty literowki zawija sie === */
/* Naglowek korekty literowki („Pokazujemy wyniki dla: …”) dostawal od
   wtyczki `white-space: nowrap`, a panel podpowiedzi ma na telefonie
   230 px przy 390 px ekranu — zdanie bylo obcinane w pol slowa przez
   `overflow-y: auto` panelu. Zmierzone: „olej lniany” potrzebowal 254 px
   (26 px za malo), „maslo orzechowe” 294 px (66 px za malo).

   Wielokropek by tego NIE naprawil — to zdanie zawiera fraze, ktorej
   klient szuka, wiec musi byc widoczne w calosci. Pozwalamy mu sie
   zawinac, tak jak zawijaja sie wiersze produktow obok.

   Na desktopie 1440 naglowek miesci sie w jednej linii (505 px pola),
   wiec ta regula nic tam nie zmienia. Szerokosc panelu zostaje
   nietknieta — samo zawijanie wystarcza. */
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion.dgwt-wcas-suggestion-headline, .dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion.dgwt-wcas-suggestion-headline .dgwt-wcas-st, .dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion.dgwt-wcas-suggestion-headline .dgwt-wcas-st > span {
  white-space: normal;
  overflow-wrap: break-word;
}
/* === koniec IG72CKOG === */
/* === InPost Pay: przycisk pod rzedem ilosc + Do koszyka (2026-09-21) === */
/* Wtyczka InPost Pay wypisuje swoj placeholder na hooku
   woocommerce_after_add_to_cart_button, czyli wewnatrz naszego flex-rzedu
   „ilosc + Do koszyka”. Bez wlasnej szerokosci dostawal 0 px, a widget
   InPost rysuje sie na 100 % rodzica. Caly wiersz pod przyciskiem. */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart, .woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) {
  flex-wrap: wrap;
}
.woocommerce div.product form.cart .izi-widget-placeholder {
  flex: 1 1 100%;
  width: 100%;
  margin-top: 12px;
}
/* === koniec InPost Pay przycisk === */
