/* Zielony Olej Hurt: cennik w kartach, blok zamówienia na stronie produktu, tabelka progów.
 * Barwy z motywu sklepu: zieleń marki #5d8834 tylko na dużym, pogrubionym piśmie (ceny 20 px+, wymóg 3:1, jest 4,17:1),
 * napisy drobniejsze w ciemnej zieleni #2f4d19, przyciski #4c7a2a. Żaden napis poniżej 14 px (pomiar 21.10.2026). */

/* tabelka progów (formularz WooCommerce; na stronie produktu hurtu zastąpiona blokiem zamówienia) */
.zoh-progi-wrap{margin:16px 0 20px}
.zoh-progi{width:100%;border-collapse:collapse;font-size:15px;line-height:1.4;background:#fff;border:1px solid #a3a89c;border-radius:2px;overflow:hidden}
.zoh-progi caption{caption-side:top;text-align:left;font-weight:700;color:#1f2a1a;padding:0 0 8px}
.zoh-progi th,.zoh-progi td{padding:10px 12px;text-align:left;border-bottom:1px solid #edf1e8}
.zoh-progi thead th{background:#f3f6ef;color:#3d4a35;font-weight:700;font-size:14px}
.zoh-progi tbody tr:last-child td{border-bottom:0}
.zoh-progi td:nth-child(3){color:#3d6422;font-weight:700}
.zoh-progi tr.zoh-aktywny td{background:#eef5e6}
.zoh-progi tr.zoh-aktywny td:first-child{box-shadow:inset 3px 0 0 #5d8834}

/* ---------- Cennik [zo_cennik]: grupa = siatka kart, karta = produkt ---------- */
/* odstęp grup 48 px (13.11.2026: 44 px poza skalą 8 px, odstepy.py; druga grupa „Białka roślinne” od 10.11) */
.zoh-cennik{display:grid;gap:48px;font-family:Nunito,sans-serif;color:#1f2a1a}
/* nagłówek grupy jako etykieta: wyraźnie niżej w hierarchii niż „Cennik hurtowy” nad nim */
.zoh-cennik__glowa{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px}
.zoh-cennik__glowa h3{margin:0;padding:0;font:800 17px/1.3 Nunito,sans-serif!important;letter-spacing:.06em;text-transform:uppercase;color:#2f4d19!important}
.zoh-cennik__glowa h3 span{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 9px;border-radius:2px;background:#eef3e8;color:#2f4d19;font:800 14px/1.3 Nunito,sans-serif;letter-spacing:0}
.zoh-cennik__glowa a{display:inline-flex;align-items:center;min-height:44px;color:#3d6422;font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap}
.zoh-cennik__glowa a::after{content:"→";margin-left:6px}
.zoh-cennik__glowa a:hover{text-decoration:underline}
.zoh-cennik__pusto{margin:0;padding:20px 24px;background:#f3f6ef;border-left:3px solid #5d8834;border-radius:2px;font-size:16px;line-height:1.6;color:#2b2b2b}
.zoh-cennik__pusto a{display:inline-flex;align-items:center;min-height:44px;color:#3d6422;font-weight:700}

/* dwie kolumny na komputerze (karta ok. 690 px), jedna na tablecie, w kategorii obok paska i na telefonie */
.zoh-cennik__siatka{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,560px),1fr));gap:16px}
.zoh-karta{container-type:inline-size;min-width:0;background:#fff;border:1px solid #a3a89c;border-radius:2px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
@media (hover:hover){.zoh-karta:hover{border-color:#7d916c;box-shadow:0 8px 22px rgba(36,68,53,.07)}}
/* wąska karta (telefon): zdjęcie butelki obok nazwy, pojemności pod spodem */
.zoh-karta__w{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-areas:"foto glowa" "lista lista";column-gap:14px;row-gap:8px;padding:14px 14px 4px}
.zoh-karta__foto{grid-area:foto;display:block;line-height:0;background:#fff}
.zoh-karta__img{display:block;width:72px;height:96px;object-fit:contain}
.zoh-karta__glowa{grid-area:glowa;align-self:center;display:flex;flex-direction:column;align-items:flex-start;gap:4px 0;min-width:0}
.zoh-karta__tytul{margin:0!important;padding:0!important;font:700 19px/1.25 'Playfair Display',serif!important;color:#1f2a1a}
/* nazwa i „Opis i skład” mają po 44 px pola dotyku (były 26 i 40 px); na telefonie i tak mieszczą się przy zdjęciu 96 px */
.zoh-karta__tytul a{display:inline-flex;align-items:center;min-height:44px;color:#1f2a1a;text-decoration:none}
.zoh-karta__tytul a:hover{color:#3d6422;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.zoh-karta__opis{display:inline-flex;align-items:center;min-height:44px;font:700 15px/1.3 Nunito,sans-serif;color:#3d6422;text-decoration:underline;text-decoration-color:rgba(61,100,34,.4);text-underline-offset:3px}
.zoh-karta__opis:hover{text-decoration-color:currentColor}
.zoh-karta__foto img{transition:opacity .2s}
.zoh-karta__foto:hover img{opacity:.85}
.zoh-karta a:focus-visible{outline:2px solid #2f4d19;outline-offset:2px}
.zoh-karta__lista{grid-area:lista;list-style:none!important;margin:0!important;padding:0!important;border-top:1px solid #e3eadb}
/* szeroka karta (komputer): zdjęcie butelki z lewej przez całą wysokość, nazwa i pojemności z prawej */
@container (min-width:520px){
  .zoh-karta__w{grid-template-columns:116px minmax(0,1fr);grid-template-areas:"foto glowa" "foto lista";column-gap:22px;row-gap:2px;padding:16px 22px 6px 16px}
  .zoh-karta__foto{align-self:center}
  .zoh-karta__img{width:116px;height:156px}
  .zoh-karta__glowa{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:16px}
  .zoh-karta__tytul{font-size:22px!important}
}

/* ---------- Wiersz pojemności (karta i strona produktu) ---------- */
.zoh-poz{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"poj kwota zamow" "info info info";align-items:center;column-gap:6px;row-gap:4px;margin:0!important;padding:11px 0!important;list-style:none!important;line-height:1.35;border-bottom:1px solid #e3eadb}
.zoh-poz:last-child{border-bottom:0}
.zoh-cennik__poj{grid-area:poj;min-width:34px;padding:3px 5px;border-radius:2px;background:#eef3e8;font:800 15px/1.2 Nunito,sans-serif;color:#2f4d19;text-align:center;white-space:nowrap}
.zoh-cennik__kwota{grid-area:kwota;font:800 16px/1.2 Nunito,sans-serif;color:#1f2a1a;white-space:nowrap}
/* próg i stan koszyka w jednej linii: wiersz 20 L nie przesuwa się, gdy przy 5 L pojawi się „W koszyku” */
.zoh-cennik__info{grid-area:info;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;min-width:0}
.zoh-cennik__info:not(:has(*:not(:empty))){display:none}
.zoh-cennik__prog{font-size:15px;font-weight:800;color:#2f4d19}
.zoh-cennik__uwaga{flex-basis:100%;font-size:15px;line-height:1.45;color:#3a4733}
.zoh-cennik__stan{font-size:15px;font-weight:700;color:#3a4733}
.zoh-cennik__stan:empty{display:none}
.zoh-cennik__stan--koszyk::before{content:"✓ ";color:#3d6422}
.zoh-blad .zoh-cennik__stan{flex-basis:100%;color:#b3261e}
.zoh-blad .zoh-ilosc{border-color:#b3261e}
.zoh-cennik__brak .zoh-cennik__kwota{color:#4f574b;font-weight:700}
.zoh-cennik__brak .zoh-cennik__prog{color:#4f574b;font-weight:600}
.zoh-cennik__zamow{grid-area:zamow;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.zoh-ilosc{width:46px;height:44px;margin:0;padding:0 4px;border:1px solid #7d916c;border-radius:2px;background:#fff;color:#1f2a1a;font:700 16px/1 Nunito,sans-serif;text-align:center;-moz-appearance:textfield;appearance:textfield}
.zoh-ilosc::-webkit-outer-spin-button,.zoh-ilosc::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.zoh-ilosc:focus{outline:2px solid #3d6422;outline-offset:1px;border-color:#3d6422}
/* przycisk obrysem; pełny w wierszu, w którym kupujący wpisuje ilość, i po najechaniu */
.zoh-dodaj,.zoh-cennik__zapytaj{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:0;margin:0;padding:0 10px;border:2px solid #4c7a2a;border-radius:2px;background:#fff;color:#2f4d19;font:700 14px/1.2 Nunito,sans-serif;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s}
.zoh-dodaj:focus-visible,.zoh-poz--aktywna .zoh-dodaj{background:#4c7a2a;border-color:#4c7a2a;color:#fff}
/* najechanie tylko przy myszce: na telefonie stan po stuknięciu zostaje i wiersz wyglądałby na wybrany */
@media (hover:hover){
  .zoh-dodaj:hover{background:#4c7a2a;border-color:#4c7a2a;color:#fff}
  .zoh-poz--aktywna .zoh-dodaj:hover{background:#3d6422;border-color:#3d6422}
  .zoh-cennik__zapytaj:hover{background:#eef3e8}
}
.zoh-dodaj:focus-visible,.zoh-cennik__zapytaj:focus-visible{outline:2px solid #1f2a1a;outline-offset:2px}
.zoh-dodaj--czeka{opacity:.7;cursor:progress}
.zoh-dodaj--ok,.zoh-dodaj--ok:hover{background:#2f4d19;border-color:#2f4d19;color:#fff}
.zoh-cennik__zapytaj{background:#fff;color:#2f4d19}
/* szeroka karta: cena dużym pismem w zieleni marki (jak w sklepie detalicznym) */
@container (min-width:520px){
  .zoh-cennik__poj{min-width:50px;padding:5px 8px;font-size:15px}
  .zoh-cennik__kwota{font-size:21px;color:#5d8834}
  .zoh-ilosc{width:58px}
  .zoh-dodaj,.zoh-cennik__zapytaj{min-width:132px;padding:0 16px;font-size:15px;letter-spacing:1px}
}
/* wąsko (telefon 375 i 320 px, blok zamówienia na telefonie): ilość i przycisk w osobnej linii na całą szerokość */
@container (max-width:340px){
  .zoh-poz{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"poj kwota" "info info" "zamow zamow"}
  .zoh-cennik__zamow{justify-content:stretch;margin-top:6px}
  .zoh-dodaj,.zoh-cennik__zapytaj{flex:1}
}

/* „Pokaż pozostałe” przy zwiniętej liście */
.zoh-cennik__wiecej{margin-top:16px}
.zoh-cennik__wiecej .zoh-cennik__siatka{margin-top:16px}
.zoh-cennik__rozwin{display:block;list-style:none;cursor:pointer;padding:14px 18px;border:1px solid #a3a89c;border-radius:2px;background:#f7faf3;color:#2f4d19;font-weight:700;font-size:15px;text-align:center}
.zoh-cennik__rozwin::-webkit-details-marker{display:none}
.zoh-cennik__rozwin:hover,.zoh-cennik__rozwin:focus-visible{background:#eef3e8}
.zoh-cennik__rozwin span::after{content:"";display:inline-block;width:8px;height:8px;margin:0 0 3px 10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.zoh-cennik__wiecej[open] .zoh-cennik__rozwin span::after{transform:rotate(-135deg);margin-bottom:-1px}
.zoh-cennik__wiecej:not([open]) .zoh-cennik__rozwin-zwin,.zoh-cennik__wiecej[open] .zoh-cennik__rozwin-pokaz{display:none}

/* ---------- Blok zamówienia na stronie produktu (w miejscu rozpiętości cen pod tytułem) ---------- */
.zoh-zamow-modul{margin-bottom:26px!important}
.zoh-zamow{container-type:inline-size;display:block;padding:16px 20px 6px;border:1px solid #a3a89c;border-radius:2px;background:#fff}
.zoh-zamow__tytul{margin:0!important;padding:0 0 4px!important;font:800 16px/1.4 Nunito,sans-serif;color:#1f2a1a}
.zoh-zamow__lista{list-style:none!important;margin:0!important;padding:0!important}
.zoh-zamow .zoh-poz{padding:14px 0!important}
.zoh-zamow .zoh-opakowania{margin:6px 0 14px}
/* szeroki blok: ilość i przycisk zaraz za ceną, nie przy prawej krawędzi (było 370 px pustki między nimi) */
@container (min-width:520px){
  .zoh-zamow .zoh-poz{grid-template-columns:auto minmax(132px,auto) auto 1fr;grid-template-areas:"poj kwota zamow ." "info info info info";column-gap:16px}
  .zoh-zamow .zoh-cennik__zamow{justify-content:flex-start}
  .zoh-zamow .zoh-cennik__poj{min-width:56px;font-size:16px;padding:6px 10px}
  .zoh-zamow .zoh-cennik__kwota{font-size:25px}
}

/* cena z pojemnościami (podobne produkty, wyszukiwanie): „5 L 105,00 zł” i „20 L 400,00 zł” */
.zoh-cena-poj{display:inline-block;margin:0 10px 0 0;white-space:nowrap}
.zoh-cena-poj__l{font-weight:700;color:#2f4d19}

@media (max-width:767px){
  .zoh-cennik{gap:32px}
  .zoh-cennik__siatka{gap:12px}
}
