/*
Theme Name: Księgi Barneja
Description: Wygląd przeniesiony ze sklepu ksiegibarneja.pl.
Version: 1.0
Requires PHP: 8.1
Text Domain: ksiegibarneja
*/

:root {
  --kb-green: #536f4c;
  --kb-cream: #f9f1d6;
  --kb-gold: #b8a05a;
  --kb-ink: #000;
  --kb-grey: #606060;
  --kb-line: #e4e4e4;
  --kb-soft: #f5f5f5;
  --kb-wrap: 1385px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--kb-ink); font: 400 15px/1.55 Inter, system-ui, sans-serif; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--kb-green); }
h1, h2, h3, h4 { font-weight: 400; line-height: 1.2; margin: 0 0 .6em; }
h1 { font-size: 46px; }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
input, select, textarea { font: inherit; color: inherit; }
.kb-wrap { max-width: var(--kb-wrap); margin: 0 auto; padding: 0 16px; }
.kb-at::before { content: "@"; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }

.kb-topbar { background: var(--kb-green); color: #fff; font-size: 12px; }
.kb-topbar .kb-wrap { display: flex; justify-content: space-around; gap: 16px; padding-top: 7px; padding-bottom: 7px; text-align: center; }

.kb-header { background: #fff; position: relative; z-index: 30; }
.kb-header__row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding-top: 16px; padding-bottom: 12px; }
.kb-social { display: flex; gap: 12px; margin-bottom: 8px; }
.kb-mail { display: inline-block; font-size: 12px; color: var(--kb-grey); }
.kb-mail svg { display: inline-block; vertical-align: middle; margin-right: 8px; }
.kb-logo img { width: 145px; height: auto; }
.kb-header__right { display: flex; justify-content: flex-end; align-items: center; gap: 16px; }
.kb-search { display: flex; align-items: center; border-bottom: 2px solid var(--kb-ink); margin-right: 8px; }
.kb-search input[type=search] { border: 0; outline: 0; padding: 6px 8px; width: 180px; background: transparent; font-size: 14px; }
.kb-search button { padding: 4px; display: flex; }
.kb-ico { display: inline-flex; position: relative; }
.kb-cart-count { position: absolute; right: -8px; top: -7px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--kb-gold); color: #fff; font-size: 11px; line-height: 18px; text-align: center; padding: 0 4px; }
.kb-burger { display: none; width: 36px; height: 36px; padding: 7px 5px; flex-direction: column; justify-content: space-between; }
.kb-burger span { display: block; height: 2px; background: currentColor; }

/* Menu jak w Shoperze (6.11): na komputerze panel kategorii na cala szerokosc, 8 kolumn, wersaliki, przyciemnione tlo;
   na telefonie szuflada z prawej, poziom "Kategorie" z "Cofnij". */
.kb-nav { position: relative; }
.kb-nav ul { list-style: none; margin: 0; padding: 0; }
.kb-nav .kb-wrap > ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 24px; padding-bottom: 14px; font-size: 15px; }
.kb-nav .kb-wrap > ul > li > a { display: inline-block; padding: 2px 0; border-bottom: 1px solid transparent; }
.kb-nav .kb-wrap > ul > li > a:hover, .kb-nav__cats.is-open > a { border-bottom-color: currentColor; }
.kb-nav__head, .kb-nav__back, .kb-nav__subtitle { display: none; }
.kb-nav__drop { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 40; background: #fff; box-shadow: 0 14px 24px rgba(0,0,0,.10); }
.kb-nav__drop::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 100vh; background: rgba(0,0,0,.32); pointer-events: none; }
.kb-nav__drop::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 16px; }  /* most dla myszki: odstep pod napisem nie zamyka panelu */
.kb-nav__drop ul { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 24px 20px; max-width: var(--kb-wrap); margin: 0 auto !important; padding: 30px 16px 36px !important; }
.kb-nav__drop a { display: block; font-size: 13px; font-weight: 600; line-height: 1.35; text-transform: uppercase; letter-spacing: .02em; }
.kb-nav__drop a:hover { text-decoration: underline; }
.kb-nav__cats.is-open .kb-nav__drop { display: block; }
@media (hover: hover) and (min-width: 761px) { .kb-nav__cats:hover .kb-nav__drop { display: block; } .kb-nav__cats:hover > a { border-bottom-color: currentColor; } }
@media (max-width: 1080px) { .kb-nav__drop ul { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.kb-crumbs { background: var(--kb-soft); font-size: 12px; color: var(--kb-grey); }
.kb-crumbs .kb-wrap { padding-top: 7px; padding-bottom: 7px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kb-main { min-height: 40vh; }

.kb-btn { display: inline-block; padding: 11px 22px; text-align: center; border-radius: 0; font-size: 15px; background: var(--kb-ink); color: #fff; border: 0; cursor: pointer; }
.kb-btn:hover { color: #fff; opacity: .88; }
.kb-btn--green { background: var(--kb-green); color: var(--kb-cream); }
.kb-btn--green:hover { color: var(--kb-cream); }
.kb-btn--off { background: #ccc; color: #555; cursor: default; }

/* Listy */
.kb-shop { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 32px; padding-top: 28px; padding-bottom: 48px; }
.kb-side ul { list-style: none; margin: 0; padding: 0; }
.kb-side li { margin-bottom: 8px; }
.kb-side a { font-weight: 500; font-size: 16px; }
.kb-side .is-current a { color: var(--kb-green); text-decoration: underline; }
.kb-shop__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 18px; margin-bottom: 18px; }
.kb-shop__head h1 { margin: 0; }
.kb-count { font-size: 13px; color: var(--kb-grey); }
.kb-cat-top h1, .kb-cat-top h2 { font-size: 21px; font-weight: 600; color: var(--kb-grey); }
.kb-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 22px; margin: 18px 0 28px; font-size: 12px; }
.kb-filters label { display: flex; flex-direction: column; gap: 4px; }
.kb-filters label > span:first-child { font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.kb-filters select { border: 0; border-bottom: 1px solid #999; padding: 6px 2px; background: #fff; max-width: 180px; }
.kb-filters__range { display: flex; gap: 6px; }
.kb-filters__range input { width: 70px; border: 0; border-bottom: 1px solid #999; padding: 6px 2px; }
.kb-filters__check { flex-direction: row !important; align-items: center; font-weight: 600; text-transform: uppercase; }
.kb-filters__sort { margin-left: auto; }
.kb-filters-btn { display: none; }
.kb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 26px; }
.kb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kb-card { position: relative; display: flex; flex-direction: column; }
.kb-card__img { position: relative; display: block; aspect-ratio: 1; margin-bottom: 14px; }
.kb-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.kb-card__name { color: var(--kb-grey); font-size: 15px; line-height: 1.35; margin-bottom: 8px; }
.kb-card__price { margin-top: auto; margin-bottom: 10px; display: flex; flex-direction: column; gap: 1px; }
.kb-card .kb-btn { width: 100%; }
.kb-card .added_to_cart { display: block; text-align: center; font-size: 13px; padding-top: 6px; color: var(--kb-green); text-decoration: underline; }
.kb-price { font-size: 20px; font-weight: 500; }
.kb-price .amount, .kb-price bdi { white-space: nowrap; }
.kb-price--sale { color: #a12a2a; }
.kb-price-meta { font-size: 11.5px; color: var(--kb-grey); }
.kb-price-meta .amount { color: var(--kb-grey); }
.kb-flags { position: absolute; left: 0; top: 0; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.kb-flag { background: var(--kb-ink); color: #fff; font-size: 10px; font-weight: 600; text-transform: uppercase; padding: 3px 7px; letter-spacing: .04em; }
.kb-price-wiersz { display: flex; align-items: center; gap: 6px; }
.kb-rabat--maly { font-size: 11px; padding: 1px 5px; }
.kb-price-meta del { color: inherit; }
.kb-home .kb-card .kb-btn, .kb-home .kb-card .added_to_cart { display: none; }  /* Shoper na glownej bez przycisku (6.11) */
.kb-flag--promo { background: var(--kb-gold); }
.kb-flag--nowosc { background: #fff; color: #000; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.kb-fav { position: absolute; right: 0; top: 0; z-index: 2; padding: 4px; color: var(--kb-ink); }
.kb-fav.is-on svg path { fill: var(--kb-green); stroke: var(--kb-green); }
.kb-fav--big { position: static; display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 13px; }
.woocommerce-pagination, .kb-pages { margin: 36px 0 12px; }
.woocommerce-pagination ul, .kb-pages { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; justify-content: center; }
.woocommerce-pagination ul li { list-style: none; }
.page-numbers { display: inline-block; min-width: 36px; padding: 7px 10px; text-align: center; border: 1px solid var(--kb-line); }
.page-numbers.current { background: var(--kb-green); border-color: var(--kb-green); color: #fff; }
.kb-cat-bottom { margin-top: 44px; border-top: 1px solid var(--kb-line); padding-top: 28px; }
.kb-empty { padding: 30px 0; color: var(--kb-grey); }

/* Karta produktu */
.kb-product { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 38px; padding: 24px 0 38px; }
.kb-product__gallery { display: flex; gap: 16px; align-items: flex-start; }
/* Miejsce na pasek zawsze zarezerwowane: bez tego pasek zwezal miniatury, przez co znikal, one rosly i pasek wracal, w kazdej klatce. */
.kb-thumbs { display: flex; flex-direction: column; gap: 10px; width: 92px; flex: none; max-height: 640px; overflow: auto; scrollbar-gutter: stable; scrollbar-width: thin; }
.kb-thumb { padding: 3px; border: 1px solid var(--kb-line); }
.kb-thumb.is-on { border-color: var(--kb-ink); }
.kb-mainimg { flex: 1; min-width: 0; border: 1px solid #ddd; padding: 8px; display: flex; justify-content: center; }
.kb-mainimg img { width: 100%; height: auto; max-height: 660px; object-fit: contain; }  /* miejsce zarezerwowane przed wczytaniem: bez skoku ukladu (CLS 0,35-0,49 w audycie 6.11) */
.kb-product__info { position: relative; }
.kb-producer { display: block; text-align: right; font-size: 13px; color: var(--kb-grey); margin-bottom: 8px; }
.kb-product__info h1 { font-size: 30px; margin-bottom: 12px; }
.kb-code { font-size: 12.5px; margin: 0 0 10px; }
.kb-stars { position: relative; width: 112px; height: 20px; margin-bottom: 16px; background: linear-gradient(90deg, #ddd 100%, transparent 0); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 7h7l-5.500 4.500 2 7.500-6.500-4.500-6.500 4.500 2-7.500L2 9h7z'/%3E%3C/svg%3E") left/22.400px 20px repeat-x; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 7h7l-5.500 4.500 2 7.500-6.500-4.500-6.500 4.500 2-7.500L2 9h7z'/%3E%3C/svg%3E") left/22.400px 20px repeat-x; }
.kb-stars span { position: absolute; inset: 0 auto 0 0; background: #f2c130; }
.kb-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.kb-rating .kb-stars { margin-bottom: 0; }
.kb-rating__txt { font-size: 14px; color: var(--kb-grey, #606060); }
.kb-product__price { display: flex; flex-direction: column; gap: 2px; margin: 8px 0 12px; }
.kb-product__price .kb-price { font-size: 30px; }
.kb-ship { font-size: 13px; margin: 0 0 14px; }
/* Karta niedostepnego produktu jak w Shoperze: szare zdjecie i nazwa (visibility_config gallery_and_name_gray). */
.kb-product--niedostepny .kb-mainimg img, .kb-product--niedostepny .kb-thumb img { filter: grayscale(1); opacity: .6; }
.kb-product--niedostepny .kb-product__info h1 { color: #666; }
.kb-avail { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start; gap: 6px 34px; margin: 22px 0 0; font-size: 13px; line-height: 1.5; }
.kb-avail dt { color: #444; }
.kb-avail dd { margin: 0; color: var(--kb-grey); }
.kb-avail a { color: var(--kb-grey); text-decoration: underline; }
/* Karta produktu jak w Shoperze (6.11): cena, przekreslona regularna, rabat, Omnibus, przelacznik opakowania */
.kb-cena { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; }
.kb-product__price .kb-price--duza { font-size: 44px; font-weight: 500; color: var(--kb-ink, #000); line-height: 1.1; }
.kb-price-old { font-size: 20px; color: var(--kb-grey, #606060); }
.kb-price-old .amount, .kb-price-old bdi { color: inherit; }
.kb-rabat { background: #d4ac3f; color: #fff; font-size: 15px; font-weight: 600; padding: 3px 8px; border-radius: 2px; }
.kb-lowest { margin: 12px 0 0; font-size: 15px; }
.kb-lowest .amount { color: inherit; }
.kb-lowest__info { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-left: 4px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; line-height: 1; cursor: help; vertical-align: middle; }
.kb-product form.cart .quantity { display: none; }
.kb-gift { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin: 6px 0 14px; font-size: 15px; }
.kb-gift__link { font-size: 14px; color: var(--kb-grey, #606060); }
.kb-przel { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 5px; border-radius: 14px; background: #ececec; font-size: 11px; font-weight: 600; cursor: pointer; user-select: none; }
.kb-przel input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kb-przel__tor { width: 12px; height: 12px; border-radius: 50%; background: #000; }
.kb-przel__tak { display: none; }
.kb-przel:has(input:checked) { background: var(--kb-green, #4f6b3a); color: #fff; }
.kb-przel:has(input:checked) .kb-przel__tor { background: #fff; }
.kb-przel input:checked ~ .kb-przel__tak { display: inline; }
.kb-przel input:checked ~ .kb-przel__nie { display: none; }
.kb-przel:has(input:focus-visible) { outline: 2px solid var(--kb-ink, #000); outline-offset: 2px; }
.kb-product .kb-nl--karta { margin-top: 14px; }
/* Opinie: karta produktu (TrustMate i nowe) i strona Opinie o sklepie (6.11) */
.kb-opinie { list-style: none; margin: 0; padding: 0; }
.kb-opinia { padding: 14px 0; border-bottom: 1px solid #eee; }
.kb-opinia__gora { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; }
.kb-opinia time { color: var(--kb-grey, #606060); }
.kb-opinia__zakup { font-size: 12px; color: var(--kb-green, #4f6b3a); }
.kb-opinia p { margin: 6px 0 0; }
.kb-opinia__odp { margin: 8px 0 0 16px; padding: 8px 12px; background: var(--kb-soft, #f5f5f5); font-size: 14px; }
.kb-stars--male { width: 84px; height: 15px; margin: 0; -webkit-mask-size: 16.8px 15px; mask-size: 16.8px 15px; }
.kb-opinie-sklepu__suma { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 48px; margin: 8px 0 18px; }
.kb-opinie-sklepu__wynik strong { font-size: 48px; font-weight: 500; line-height: 1; }
.kb-opinie-sklepu__wynik > span:not(.kb-stars) { font-size: 20px; color: var(--kb-grey, #606060); }
.kb-opinie-sklepu__wynik .kb-stars { display: block; margin: 8px 0 4px; }
.kb-opinie-sklepu__wynik p { margin: 0; color: var(--kb-grey, #606060); }
.kb-opinie-sklepu__rozklad { list-style: none; margin: 0; padding: 0; min-width: 240px; flex: 1; max-width: 420px; }
.kb-opinie-sklepu__rozklad li { display: grid; grid-template-columns: 36px 1fr 40px; align-items: center; gap: 8px; font-size: 14px; }
.kb-opinie-sklepu__pasek { height: 8px; background: #eee; border-radius: 4px; overflow: hidden; }
.kb-opinie-sklepu__pasek span { display: block; height: 100%; background: #f2c130; }
.kb-opinie-sklepu__zrodlo { font-size: 14px; color: var(--kb-grey, #606060); }
form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
form.cart .kb-gift { flex-basis: 100%; }
form.cart .quantity input { width: 70px; height: 46px; border: 1px solid #bbb; text-align: center; }
form.cart .quantity:has(input[type=hidden]) { display: none; }
.single_add_to_cart_button { flex: 1; min-height: 46px; background: var(--kb-ink); color: #fff; font-size: 16px; text-transform: uppercase; border: 0; }
.single_add_to_cart_button:hover { opacity: .88; }
.stock { font-size: 13px; color: var(--kb-grey); }
.kb-tabs { border-top: 1px solid var(--kb-line); }
.kb-tab { padding: 28px 0; border-bottom: 1px solid var(--kb-line); }
.kb-tab__head { font-size: 24px; }
.kb-attrs { border-collapse: collapse; width: 100%; max-width: 760px; }
.kb-attrs th, .kb-attrs td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--kb-line); font-weight: 400; }
.kb-attrs th { color: var(--kb-grey); width: 40%; }
.kb-unavail { background: var(--kb-soft); border-left: 3px solid var(--kb-gold); padding: 14px 16px; margin: 6px 0 14px; font-size: 14px; }
.kb-unavail a { color: var(--kb-green); text-decoration: underline; margin-left: 4px; }
.kb-related { padding: 36px 0 48px; }
.kb-related h2 { font-size: 28px; }

/* Tresci z Shopera */
.kb-content { overflow-wrap: anywhere; }
/* W linii jak w Shoperze: tresci centruja zdjecia przez text-align, a blok z img {display:block} zostawal po lewej. */
.kb-content img { height: auto !important; display: inline; }
.kb-content table { max-width: 100%; border-collapse: collapse; }
.kb-content table td, .kb-content table th { padding: 6px 8px; }
.kb-content h2 { font-size: 24px; margin-top: 1.1em; }
.kb-content h3 { font-size: 19px; margin-top: 1.1em; }
.kb-content blockquote { border-left: 3px solid var(--kb-green); margin: 1em 0; padding: .3em 1em; color: #333; }
.kb-content a { color: var(--kb-green); text-decoration: underline; }
.kb-content iframe { max-width: 100%; }

.kb-page, .kb-article, .kb-blog { padding-top: 28px; padding-bottom: 56px; }
.kb-page h1, .kb-article h1, .kb-blog h1 { font-size: 36px; }
.kb-article { max-width: 920px; min-width: 0; }
.kb-article > article { display: flow-root; }
.kb-blog--wpis .kb-article { padding-top: 0; padding-bottom: 0; }
.kb-article__img { float: left; width: 44%; max-width: 400px; margin: 6px 30px 18px 0; }
.kb-article .kb-content table, .kb-article .kb-content .wp-block-table, .kb-article .kb-content details, .kb-article .kb-content hr { clear: both; }
.kb-blog__side a[aria-current] { font-weight: 700; text-decoration: none; }
.kb-post-meta { font-size: 12.5px; color: var(--kb-grey); margin: 0 0 14px; }
.kb-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 26px; }
.kb-posts--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kb-post-card__img { display: block; margin-bottom: 14px; aspect-ratio: 16 / 11; overflow: hidden; background: var(--kb-soft); }
.kb-post-card__img img { width: 100%; height: 100%; object-fit: cover; }
.kb-post-card h2, .kb-post-card h3 { font-size: 18px; font-weight: 500; margin-bottom: 6px; }
.kb-post-card__ex { font-size: 14px; color: #333; margin-bottom: 8px; }
/* Blog jak w Shoperze (6.11): lista ostatnich wpisow po lewej, 3 karty w rzedzie z wysokim zdjeciem i tytulem w ramce. */
.kb-blog__lay { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 56px; }
.kb-blog__side ul { list-style: none; margin: 0; padding: 4px 0 0; }
.kb-blog__side li { padding: 8px 0; border-bottom: 1px solid var(--kb-line); }
.kb-blog__side a { font-size: 12.5px; font-weight: 500; line-height: 1.4; text-decoration: underline; text-underline-offset: 2px; }
.kb-posts--blog { gap: 56px 30px; align-items: start; }
.kb-posts--blog .kb-blogcard__img { margin-right: 0; aspect-ratio: 2 / 3; }
.kb-posts--blog .kb-blogcard__tyt { margin: -64px 12% 0 7%; padding: 14px 16px 10px; font-size: 16px; font-weight: 500; }
.kb-posts--blog .kb-post-meta { margin: 6px 0 10px; }
/* Srednie ekrany (761-1080 px): wezsza boczna lista i 2 kolumny. Musi stac za regulami glownymi, inaczej nie dziala (6.11). */
@media (max-width: 1080px) {
  .kb-blog__lay { grid-template-columns: 170px minmax(0, 1fr); gap: 30px; }
  .kb-posts--blog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kb-blogcard__ex { margin: 0 0 4px; font-size: 13.5px; line-height: 1.6; color: #333; }
.kb-more { font-size: 13px; color: var(--kb-green); text-decoration: underline; }
.kb-comments { margin-top: 44px; border-top: 1px solid var(--kb-line); padding-top: 24px; }
.kb-comments input[type=text], .kb-comments input[type=email], .kb-comments input[type=url], .kb-comments textarea { width: 100%; border: 1px solid #bbb; padding: 9px; }
.kb-comments .submit { background: var(--kb-green); color: var(--kb-cream); border: 0; padding: 11px 22px; cursor: pointer; }
.kb-comment-list { padding-left: 18px; }
.kb-404__cats { columns: 3; padding-left: 18px; }

/* Strona glowna */
.kb-hero { position: relative; margin: 8px 0 28px; }
.kb-hero__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.kb-hero__track::-webkit-scrollbar, .kb-track::-webkit-scrollbar { display: none; }
.kb-hero__track > a { flex: 0 0 100%; scroll-snap-align: start; }
.kb-hero__track img { width: 100%; height: auto; }
.kb-arrows { display: flex; gap: 8px; }
.kb-arrows button { width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 1px solid var(--kb-line); font-size: 22px; line-height: 1; }
.kb-arrows--hero { position: absolute; inset: 50% 12px auto 12px; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.kb-arrows--hero button { pointer-events: auto; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.kb-tiles { margin-bottom: 36px; }
.kb-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 78px) / 4); gap: 26px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.kb-track > * { scroll-snap-align: start; }
.kb-home-sec { margin-bottom: 44px; }
.kb-home-sec__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.kb-home-sec__head h2, .kb-home-sec__head h1 { font-size: 32px; margin: 0; }
/* Bloki "Najlepsze ksiazki" jak w Shoperze: duze zdjecie na ozdobnym tle, schodkowo (6.11) */
.kb-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-bottom: 54px; align-items: start; }
.kb-duo__item { display: flex; flex-direction: column; gap: 22px; color: inherit; }
.kb-duo__item:hover { text-decoration: none; }
.kb-duo__item h2 { font-size: 30px; font-weight: 400; margin: 0 0 6px; }
.kb-duo__item p { margin: 0 0 18px; }
.kb-duo__item .kb-btn { min-width: 200px; text-transform: uppercase; }
.kb-duo__img { position: relative; padding: 0 0 22px 22px; }
.kb-duo__img::before { content: ""; position: absolute; left: 0; bottom: 0; width: 88%; height: 88%; background: var(--kb-green); }
.kb-duo__img--bezowe::before { background: #f6efd8; }
.kb-duo__img img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 720 / 584; object-fit: cover; }
.kb-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; padding: 34px 0; margin-bottom: 44px; border-top: 1px solid var(--kb-line); border-bottom: 1px solid var(--kb-line); text-align: center; }
.kb-benefits img { margin: 0 auto 12px; height: 58px; width: auto; }
.kb-benefits h4 { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.kb-benefits p { margin: 0; font-size: 13px; color: var(--kb-grey); }

/* Koszyk, kasa, konto. Wyglad jak w starym koszyku: biale karty na szarym tle. Style WooCommerce sa wylaczone (functions.php). */
body.woocommerce-cart, body.woocommerce-checkout { background: var(--kb-soft); }
.woocommerce-cart .kb-page, .woocommerce-checkout .kb-page { max-width: 1180px; padding-top: 20px; }
.kb-flowhead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin-bottom: 14px; }
.kb-page .kb-flowhead h1 { font-size: 30px; margin: 0; }
.kb-steps { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; font-size: 14px; color: #999; counter-reset: krok; }
.kb-steps li { counter-increment: krok; padding-bottom: 2px; }
.kb-steps li::before { content: counter(krok) " "; }
.kb-steps .is-done { color: #000; }
.kb-steps .is-on { color: #000; font-weight: 600; border-bottom: 2px solid #000; }
.kb-flowinfo { background: #fff; border: 1px solid var(--kb-line); padding: 9px 16px; margin: 0 0 14px; text-align: center; font-size: 14px; }
.woocommerce-notices-wrapper:empty { display: none; }
/* "anywhere" z .kb-content lamie slowa w waskich komorkach tabel ("tradycyjn/y"), "break-word" tylko gdy tekst nie miesci sie w ogole. */
.kb-content.kb-shopflow { overflow-wrap: break-word; }

.kb-shopflow table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 22px; }
.kb-shopflow table.shop_table th, .kb-shopflow table.shop_table td { padding: 12px 10px; border-bottom: 1px solid var(--kb-line); text-align: left; vertical-align: middle; }
.kb-shopflow input.input-text, .kb-shopflow select, .kb-shopflow textarea { width: 100%; padding: 10px; border: 1px solid #bbb; background: #fff; }
.kb-shopflow .form-row { margin: 0 0 14px; }
.kb-shopflow .form-row-first { float: left; clear: left; width: calc(50% - 7px); }
.kb-shopflow .form-row-last { float: right; width: calc(50% - 7px); }
.kb-shopflow .form-row-wide, .kb-shopflow .clear { clear: both; }
.kb-shopflow label { display: block; font-size: 13px; margin-bottom: 4px; }
.kb-shopflow label.checkbox, .kb-shopflow label.woocommerce-form__label-for-checkbox { display: inline-flex; gap: 8px; align-items: flex-start; }
.kb-shopflow .woocommerce-input-wrapper { display: block; }
.kb-shopflow .woocommerce-input-wrapper .select2-container { width: 100% !important; }
.kb-shopflow .select2-container .select2-selection--single { height: 44px; border: 1px solid #bbb; border-radius: 0; }
.kb-shopflow .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 10px; }
.kb-shopflow .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.kb-shopflow button.button, .kb-shopflow a.button, .kb-shopflow input.button, .kb-shopflow #place_order { display: inline-block; background: var(--kb-green); color: var(--kb-cream); border: 0; padding: 12px 24px; font-size: 15px; cursor: pointer; text-align: center; text-decoration: none; }
.kb-shopflow #place_order, .kb-shopflow a.checkout-button { display: block; width: 100%; font-size: 16px; padding: 14px; text-transform: uppercase; }
.kb-shopflow .col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }

/* Koszyk */
.woocommerce-cart .kb-shopflow > .woocommerce:has(.cart-collaterals) { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 16px 20px; align-items: start; }
.woocommerce-cart .kb-shopflow > .woocommerce > :not(.woocommerce-cart-form, .cart-collaterals) { grid-column: 1 / -1; }
.woocommerce-cart-form, .kb-shopflow .cart_totals { background: #fff; padding: 24px 28px; }
.kb-shopflow .kb-flowcard__title, .kb-shopflow .cart_totals h2 { font-size: 20px; font-weight: 500; margin: 0 0 8px; }
.kb-shopflow table.cart, .kb-shopflow table.cart tbody, .kb-shopflow table.cart tr { display: block; width: 100%; margin: 0; }
.kb-shopflow table.cart thead, .kb-shopflow table.cart td.product-price { display: none; }
.kb-shopflow table.cart tr.cart_item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto 22px; grid-template-areas: "foto nazwa nazwa usun" "foto ilosc kwota kwota"; gap: 10px 16px; padding: 16px 0; border-bottom: 1px solid var(--kb-line); }
.kb-shopflow table.cart tr.cart_item > td { padding: 0; border: 0; }
.kb-shopflow table.cart tr.cart_item > td.product-thumbnail { grid-area: foto; display: block; }
.kb-shopflow table.cart tr.cart_item > td.product-name { grid-area: nazwa; display: block; }
.kb-shopflow table.cart tr.cart_item > td.product-remove { grid-area: usun; display: block; }
.kb-shopflow table.cart tr.cart_item > td.product-quantity { grid-area: ilosc; display: flex; align-items: center; gap: 8px; align-self: end; font-size: 14px; color: var(--kb-grey); }
.kb-shopflow table.cart tr.cart_item > td.product-quantity::before { content: "Ilość:"; }
.kb-shopflow table.cart tr.cart_item > td.product-quantity::after { content: "szt."; }
.kb-shopflow table.cart tr.cart_item > td.product-subtotal { grid-area: kwota; display: block; align-self: end; text-align: right; white-space: nowrap; font-size: 16px; font-weight: 600; }
.kb-shopflow .product-thumbnail img { width: 72px; }
.kb-shopflow table.cart .product-name a { color: #555; font-weight: 500; text-decoration: none; }
.kb-shopflow table.cart .product-name a:hover { color: var(--kb-green); }
.kb-shopflow a.remove { display: block; width: 20px; height: 20px; font-size: 0; background: center / 18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13M10 11v5M14 11v5'/%3E%3C/svg%3E"); }
.kb-shopflow .quantity { display: inline-flex; align-items: center; gap: 4px; color: #000; }
.kb-shopflow .quantity input.qty { width: 42px; padding: 2px; border: 0; background: none; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.kb-shopflow .quantity input.qty::-webkit-inner-spin-button, .kb-shopflow .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.kb-qty-btn { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border-radius: 50%; background: #000; color: #fff; font-size: 15px; line-height: 1; }
.kb-qty-btn:hover { background: var(--kb-green); }
.quantity:has(input[type=hidden]) .kb-qty-btn { display: none; }
.kb-shopflow table.cart td.actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 16px 0 0; border: 0; }
.kb-shopflow .coupon { display: flex; gap: 8px; flex: 1 1 280px; max-width: 420px; }
.kb-shopflow .coupon input.input-text { flex: 1; min-width: 0; }
.kb-shopflow .coupon .button, .kb-shopflow td.actions > .button { padding: 10px 16px; font-size: 14px; white-space: nowrap; }
.kb-js .kb-shopflow [name=update_cart] { display: none; }
.kb-freeship { margin: 16px 0 0; font-size: 14px; font-weight: 600; }
.kb-freeship.is-ok { color: #0a7d0a; }

/* Podsumowanie w koszyku i w kasie */
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) { display: block; margin: 0 0 14px; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) :is(tbody, tfoot) { display: block; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) tr { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--kb-line); }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) :is(th, td) { display: block; padding: 0; border: 0; font-weight: 400; text-align: right; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) th { text-align: left; }
.kb-shopflow table.woocommerce-checkout-review-order-table thead { display: none; }
.kb-shopflow table.woocommerce-checkout-review-order-table td.product-name { text-align: left; }
.kb-shopflow table.woocommerce-checkout-review-order-table td.product-total { white-space: nowrap; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) tr:is(.woocommerce-shipping-totals, .kb-pickup) { display: block; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) tr:is(.woocommerce-shipping-totals, .kb-pickup) th { font-weight: 500; margin-bottom: 8px; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) tr:is(.woocommerce-shipping-totals, .kb-pickup) td { text-align: left; }
.kb-shopflow :is(.cart_totals table.shop_table, table.woocommerce-checkout-review-order-table) tr.order-total { border-bottom: 0; padding-top: 14px; }
.kb-shopflow tr.order-total td strong .woocommerce-Price-amount, .kb-shopflow tr.order-total td > .woocommerce-Price-amount { color: #e60c54; font-size: 25px; font-weight: 700; }
.kb-shopflow .includes_tax { display: block; color: var(--kb-grey); font-size: 12px; }
.kb-shopflow .woocommerce-shipping-destination, .kb-shopflow .woocommerce-shipping-calculator { display: none; }
.kb-shopflow #shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.kb-shopflow #shipping_method li { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 8px; align-items: start; padding: 9px 12px; border: 1px solid var(--kb-line); }
.kb-shopflow #shipping_method li:has(input:checked) { border-color: #000; }
.kb-shopflow #shipping_method input { margin: 4px 0 0; }
.kb-shopflow #shipping_method label { display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: 14px; font-weight: 500; cursor: pointer; }
.kb-shopflow #shipping_method label::after { content: ""; position: absolute; inset: 0; }
.kb-ship-price { flex: none; font-weight: 400; }
.kb-ship-desc { grid-column: 2; color: var(--kb-grey); font-size: 12px; }
/* Wybor paczkomatu z wtyczki inpost-paczkomaty: nad warstwa klikalnego kafelka. */
.kb-shopflow #shipping_method li > div { grid-column: 2; position: relative; z-index: 1; }
.kb-shopflow #shipping_method .select-paczkomat-button { margin-top: 8px; padding: 8px 14px; font-size: 14px; }
.kb-shopflow #selected-paczkomat { margin-top: 6px; font-size: 13px; }
.kb-shopflow #selected-paczkomat:empty { display: none; }
.kb-pickup input.input-text { margin-bottom: 4px; }

/* Kasa */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; grid-template-areas: "dane tytul" "dane podsumowanie"; grid-template-rows: auto 1fr; column-gap: 20px; align-items: start; }
.woocommerce-checkout #customer_details { grid-area: dane; display: block; background: #fff; padding: 24px 28px; }
.woocommerce-checkout #customer_details h3 { margin-top: 0; font-size: 20px; font-weight: 500; }
.woocommerce-checkout #customer_details .col-2 { clear: both; margin-top: 18px; }
.woocommerce-checkout #order_review_heading { grid-area: tytul; background: #fff; margin: 0; padding: 24px 28px 6px; font-size: 20px; font-weight: 500; }
.woocommerce-checkout #order_review { grid-area: podsumowanie; background: #fff; padding: 0 28px 24px; }
.kb-shopflow ul.wc_payment_methods { list-style: none; padding: 0; margin: 0 0 16px; }
.kb-shopflow ul.wc_payment_methods li { padding: 12px; border: 1px solid var(--kb-line); margin-bottom: 8px; }
.kb-shopflow ul.wc_payment_methods label { display: inline; font-weight: 500; }
.kb-shopflow .payment_box { font-size: 13px; color: var(--kb-grey); margin-top: 8px; }
.kb-shopflow .payment_box p { margin: 0; }
.kb-shopflow .woocommerce-privacy-policy-text { font-size: 13px; color: var(--kb-grey); }

/* Potwierdzenie i konto */
.woocommerce-checkout .woocommerce-order { background: #fff; padding: 24px 28px; }
.kb-shopflow ul.order_details { list-style: none; display: flex; flex-wrap: wrap; gap: 12px 32px; padding: 0; margin: 0 0 20px; }
.kb-shopflow ul.order_details strong { display: block; }
.woocommerce-account .kb-shopflow > .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: start; }
.kb-shopflow .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.kb-shopflow .woocommerce-MyAccount-navigation li { margin-bottom: 8px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; background: var(--kb-soft); border-left: 3px solid var(--kb-green); padding: 12px 16px; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.woocommerce-cart .woocommerce-message, .woocommerce-cart .woocommerce-info, .woocommerce-cart .woocommerce-error, .woocommerce-checkout .woocommerce-message, .woocommerce-checkout .woocommerce-info, .woocommerce-checkout .woocommerce-error { background: #fff; }
.woocommerce-error { border-left-color: #a12a2a; display: block; }
.woocommerce-message .button { background: var(--kb-green); color: var(--kb-cream); padding: 8px 16px; }
.woocommerce-cart .woocommerce-message .button { display: none; }
.required { color: #a12a2a; }
.blockUI.blockOverlay { background: rgba(255,255,255,.65) !important; }

/* Zgody na cookies */
.kb-consent { position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,.45); }
.kb-consent[hidden] { display: none; }
.kb-consent__box { background: #fff; max-width: 620px; width: 100%; max-height: calc(100vh - 32px); overflow: auto; padding: 26px; border-radius: 8px; }
.kb-consent__box h2 { font-size: 26px; text-align: center; }
.kb-consent__box p { font-size: 13px; color: var(--kb-grey); }
.kb-consent__box p a { text-decoration: underline; }
.kb-consent__opt { display: grid; gap: 8px; margin: 12px 0; font-size: 14px; }
.kb-consent__opt[hidden] { display: none; }
.kb-consent__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.kb-consent__btns .kb-btn { flex: 1 1 160px; font-size: 13px; text-transform: uppercase; }
.kb-btn--line { background: #fff; color: #000; border: 1px solid #000; }
.kb-btn--line:hover { color: #000; background: var(--kb-soft); }

/* Stopka */
.kb-footer { background: #f4f4f4; color: #333; font-size: 14px; }  /* jasna stopka jak w Shoperze (6.11) */
.kb-footer__cols { display: grid; grid-template-columns: repeat(5, 1fr); gap: 26px; padding-top: 44px; padding-bottom: 44px; }
.kb-footer h4 { color: #000; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 14px; }
.kb-footer a { display: block; padding: 3px 0; color: #555; }
.kb-footer a:hover { color: #000; text-decoration: underline; }
.kb-footer__firm { border-left: 1px solid #333; padding-left: 24px; }
.kb-footer__logo { margin-bottom: 12px; }
.kb-footer__social { display: flex; gap: 10px; }
.kb-footer__social a { padding: 0; }
.kb-track--blog { grid-auto-columns: calc((100% - 26px) / 2); }
.kb-blogcard { position: relative; }
.kb-blogcard__img { display: block; aspect-ratio: 3 / 5; overflow: hidden; background: var(--kb-soft); margin-right: 46%; }  /* wysokie zdjecie jak w Shoperze */
.kb-blogcard__img img { width: 100%; height: 100%; object-fit: cover; }
.kb-blogcard__tyt { position: relative; margin: -46px 6% 0 5%; background: #fff; padding: 14px 18px 4px; font-size: 16px; font-weight: 600; line-height: 1.35; }
.kb-blogcard__tyt a { color: var(--kb-ink, #000); }
.kb-blogcard__wiecej { display: inline-block; margin-top: 10px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--kb-ink, #000); border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.kb-footer p { margin: 0 0 10px; }

@media (max-width: 1080px) {
  h1 { font-size: 34px; }
  .kb-shop { grid-template-columns: 1fr; }
  .kb-side { display: none; }
  .kb-grid--4, .kb-posts--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kb-track { grid-auto-columns: calc((100% - 52px) / 3); }
  .kb-footer__cols { grid-template-columns: repeat(3, 1fr); }
  .kb-search input[type=search] { width: 120px; }
}

@media (max-width: 900px) {
  .woocommerce-cart .kb-shopflow > .woocommerce:has(.cart-collaterals) { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "dane" "tytul" "podsumowanie"; grid-template-rows: auto; }
  .woocommerce-checkout #customer_details { margin-bottom: 14px; }
  .woocommerce-account .kb-shopflow > .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

@media (max-width: 760px) {
  .kb-page .kb-flowhead h1 { font-size: 24px; }
  .kb-shopflow table.cart tr.cart_item > td.product-quantity::before, .kb-shopflow table.cart tr.cart_item > td.product-quantity::after { content: none; }
  .kb-shopflow .quantity input.qty { width: 34px; }
  .kb-steps { gap: 12px; font-size: 12px; }
  .woocommerce-cart-form, .kb-shopflow .cart_totals, .woocommerce-checkout #customer_details, .woocommerce-checkout .woocommerce-order { padding: 18px 16px; }
  .woocommerce-checkout #order_review_heading { padding: 18px 16px 6px; }
  .woocommerce-checkout #order_review { padding: 0 16px 18px; }
  .kb-shopflow .col2-set { grid-template-columns: minmax(0, 1fr); }
  body { font-size: 15px; }
  h1, .kb-page h1, .kb-article h1, .kb-blog h1 { font-size: 26px; }
  .kb-topbar .kb-wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; font-size: 11px; line-height: 1.25; align-items: center; padding-top: 6px; padding-bottom: 6px; }  /* trzy hasla jak w Shoperze */
  /* Naglowek jak w Shoperze: menu po lewej, logo na srodku, lupa otwiera pole szukania (6.11) */
  .kb-header__row { position: relative; grid-template-columns: 1fr auto 1fr; padding-top: 10px; padding-bottom: 10px; padding-left: 56px; }
  .kb-header__left { visibility: hidden; height: 0; overflow: hidden; }
  .kb-logo img { width: 112px; }
  .kb-header__right { gap: 12px; }
  .kb-search { border: 0; margin: 0; }
  .kb-search input[type=search] { display: none; }
  .kb-search.is-open input[type=search] { display: block; position: absolute; left: 16px; right: 16px; top: 100%; width: auto; background: #fff; border-bottom: 2px solid var(--kb-ink); padding: 10px 8px; z-index: 3; }
  .kb-burger { display: flex; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); }
  .kb-nav { position: fixed; top: 0; bottom: 0; right: 0; z-index: 100; width: min(87vw, 340px); background: #fff; overflow-x: hidden; overflow-y: auto; transform: translateX(102%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
  .kb-nav.is-open { transform: none; visibility: visible; transition: transform .25s ease; box-shadow: -4px 0 24px rgba(0,0,0,.18); }
  .kb-nav-cover { position: fixed; inset: 0; z-index: 99; background: rgba(0,0,0,.45); }
  html.kb-menu-open { overflow: hidden; }
  .kb-nav__head { display: flex; align-items: center; justify-content: space-between; padding: 20px 20px 10px 34px; }
  .kb-nav__title { display: inline-flex; align-items: center; gap: 10px; font-size: 24px; font-weight: 700; }
  .kb-nav__close { display: flex; padding: 6px; }
  .kb-nav .kb-wrap { padding: 0 34px 30px; }
  .kb-nav .kb-wrap > ul { display: block; padding: 0; font-size: 17px; }
  .kb-nav .kb-wrap > ul > li { border-bottom: 1px solid var(--kb-line); }
  .kb-nav .kb-wrap > ul > li:last-child { border-bottom: 0; }
  .kb-nav .kb-wrap > ul > li > a { display: block; padding: 16px 0; border: 0; text-transform: uppercase; letter-spacing: .01em; }
  .kb-nav__cats > a { position: relative; padding-right: 40px !important; }
  .kb-nav__cats > a::after { content: ""; position: absolute; right: 0; top: 50%; width: 26px; height: 26px; margin-top: -13px; border: 1px solid #ccc; border-radius: 50%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 6 6 6-6 6' fill='none' stroke='%23555' stroke-width='2'/%3E%3C/svg%3E") center / 14px no-repeat; }
  .kb-nav__drop { display: block; position: fixed; top: 0; bottom: 0; left: auto; right: 0; width: min(87vw, 340px); z-index: 101; overflow-y: auto; box-shadow: none; padding: 20px 34px 30px; transform: translateX(102%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
  .kb-nav__drop::after, .kb-nav__drop::before { content: none; }
  .kb-nav__cats.is-open .kb-nav__drop { transform: none; visibility: visible; transition: transform .25s ease; }
  .kb-nav__back { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 15px; }
  .kb-nav__subtitle { display: block; margin: 10px -12px 18px; padding: 12px; background: var(--kb-soft); font-size: 20px; font-weight: 700; }
  .kb-nav__drop ul { display: block; padding: 0 !important; }
  .kb-nav__drop a { padding: 13px 0; font-size: 17px; font-weight: 400; text-transform: none; letter-spacing: 0; }
  .kb-grid, .kb-grid--4, .kb-posts, .kb-posts--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
  .kb-posts { grid-template-columns: 1fr; }
  .kb-blog__lay { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kb-blog__side { display: none; }
  .kb-article__img { float: none; width: auto; max-width: none; margin: 0 0 22px; }
  .kb-article .kb-content { font-size: 16.5px; }
  .kb-posts--blog { gap: 48px; }
  .kb-posts--blog .kb-blogcard__img { aspect-ratio: 3 / 4; }
  .kb-posts--4 { grid-template-columns: 1fr 1fr; }
  .kb-track { grid-auto-columns: 62%; gap: 14px; }
  .kb-track--tiles { grid-auto-columns: calc((100% - 14px) / 2); }
  .kb-home .kb-home-sec .kb-track { grid-auto-columns: 100%; }  /* Nowosci, Bestsellery, blog: jeden naraz jak w Shoperze */
  .kb-home .kb-home-sec .kb-card__img { aspect-ratio: 1 / 1.05; }
  .kb-duo { grid-template-columns: 1fr; gap: 40px; }
  .kb-duo__item--a .kb-duo__img { order: -1; }
  .kb-duo__item h2 { font-size: 28px; }
  .kb-blogcard__img { margin-right: 0; aspect-ratio: 3 / 5; }
  .kb-benefits { grid-template-columns: 1fr 1fr; }
  .kb-product { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .kb-product__gallery { flex-direction: column-reverse; }
  .kb-thumbs { flex-direction: row; width: 100%; overflow-x: auto; scrollbar-gutter: auto; }
  .kb-thumb { width: 76px; flex: none; }
  .kb-mainimg { width: 100%; }
  .kb-product__info h1 { font-size: 24px; }
  .kb-filters__sort { margin-left: 0; }
  .kb-filters-btn { display: inline-block; margin: 16px 0 6px; padding: 10px 20px; border: 2px solid var(--kb-ink); background: #fff; font-size: 15px; font-weight: 700; }
  .kb-filters { display: none; }
  .kb-filters.is-open { display: flex; }
  /* stopka na telefonie jak w Shoperze: dane firmy na gorze, sekcje rozwijane */
  .kb-footer__cols { grid-template-columns: 1fr; gap: 0; }
  .kb-footer__firm { order: -1; border-left: 0; padding: 0 0 20px; }
  .kb-footer__cols > div:not(.kb-footer__firm) { border-bottom: 1px solid #333; }
  .kb-footer__cols > div:not(.kb-footer__firm) > h4 { display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 16px 0; cursor: pointer; }
  .kb-footer__cols > div:not(.kb-footer__firm) > h4::after { content: ""; width: 8px; height: 8px; border-right: 2px solid #000; border-bottom: 2px solid #000; transform: rotate(45deg); margin-right: 6px; }
  .kb-footer__cols > div.is-open > h4::after { transform: rotate(-135deg); }
  .kb-footer__cols > div:not(.kb-footer__firm) > a { display: none; }
  .kb-footer__cols > div.is-open > a { display: block; }
  .kb-footer__cols > div.is-open { padding-bottom: 12px; }
}

/* ---- Delikatny lifting 6.11 (przeglad UX przed przelaczeniem). Uklad i kolory marki bez zmian. ---- */
/* Pola wyboru w kolorze marki i wieksze w koszyku i kasie (bylo domyslne 13 px, niebieskie). */
input[type=checkbox], input[type=radio] { accent-color: var(--kb-green); }
.kb-shopflow input[type=checkbox], .kb-shopflow input[type=radio] { width: 18px; height: 18px; }
.kb-shopflow #shipping_method input { margin: 2px 0 0; }
/* Pole "-10% za newsletter" w koszyku i kasie: ".kb-shopflow label" (block, 13 px) rozjezdzal kwadrat i tekst. */
.kb-shopflow .kb-nl__zgoda { display: flex; font-size: 14px; margin-bottom: 0; }
/* Zgoda na regulamin: kwadrat przy tekscie, gwiazdka za tekstem, kolejne linie rowno pod tekstem. */
.kb-shopflow .woocommerce-terms-and-conditions-wrapper label.checkbox { display: block; position: relative; padding-left: 28px; font-size: 14px; }
.kb-shopflow .woocommerce-terms-and-conditions-wrapper label.checkbox input { position: absolute; left: 0; top: 1px; margin: 0; }
/* Cena na karcie bez promocji tak duza jak z promocja (Shoper: 44 px w obu przypadkach). */
.kb-product__price > .kb-price { font-size: 44px; font-weight: 500; line-height: 1.1; }
.kb-price-meta { font-size: 12.5px; }
.kb-rabat--maly { font-size: 12px; padding: 2px 6px; }
/* Znaczki na zlotym tle: bialy tekst mial kontrast 2,2-2,5:1, czarny ma ok. 9:1. */
.kb-rabat, .kb-flag--promo, .kb-cart-count { color: var(--kb-ink); }
/* "Do koszyka" na listach: widac, ze trwa dodawanie, i ze sie udalo (style WooCommerce sa wylaczone). */
.kb-btn.loading { opacity: .55; cursor: progress; pointer-events: none; }
.kb-btn.added::after { content: " \2713"; }
/* Fokus z klawiatury widoczny, przy myszce bez zmian. */
:is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--kb-green); outline-offset: 2px; }
.kb-search:focus-within { border-bottom-color: var(--kb-green); }
/* Wieksze pola dotyku bez zmiany wygladu. */
.kb-ico::after, .kb-fav:not(.kb-fav--big)::after { content: ""; position: absolute; inset: -8px; }  /* duzy przycisk jest static: bez wyjatku nakladka objelaby pol karty */
.kb-qty-btn { position: relative; }
.kb-qty-btn::after { content: ""; position: absolute; inset: -7px; }
.kb-shopflow a.remove { position: relative; }
.kb-shopflow a.remove::after { content: ""; position: absolute; inset: -12px; }
.kb-przel { padding: 7px 14px 7px 7px; font-size: 12px; min-height: 32px; }
.kb-przel__tor { width: 14px; height: 14px; }
.kb-gift__link { text-decoration: underline; text-underline-offset: 3px; }
.kb-crumbs { font-size: 13px; }
/* Dlugie opisy w czytelnej szerokosci (bylo ok. 180 znakow w linii przy 1400 px; Shoper mial waska kolumne). */
#opis > .kb-content, .kb-cat-bottom > .kb-content, .kb-cat-bottom { max-width: 920px; }
/* "Zamawiam" w koszyku zawsze w zasiegu (przycisk byl pod 9 kaflami dostaw, ok. 1550 px w dol). */
.woocommerce-cart .wc-proceed-to-checkout { position: sticky; bottom: 0; z-index: 5; background: #fff; padding: 12px 0; box-shadow: 0 -10px 12px -10px rgba(0,0,0,.18); }
@media (max-width: 760px) {
  /* Safari na iPhonie przybliza strone przy polu ponizej 16 px. */
  .kb-shopflow :is(input.input-text, select, textarea), .kb-search input[type=search], .kb-filters select, .kb-filters input, .kb-comments :is(input, textarea), .kb-nl input[type=email] { font-size: 16px; }
  .kb-qty-btn { width: 28px; height: 28px; font-size: 17px; }
  .kb-product__price > .kb-price, .kb-product__price .kb-price--duza { font-size: 38px; }
  .kb-shop__head h1 { font-size: 30px; }
  .kb-cat-top h1, .kb-cat-top h2 { font-size: 17px; }
  .kb-arrows button { width: 40px; height: 40px; }
  /* Justowanie z tresci Shopera robi na waskim ekranie dziury miedzy slowami. */
  .kb-content [style*="justify"] { text-align: left !important; }
}
/* Karta niedostepna: linki do sasiednich kart z tej samej kategorii (przeglad SEO 6.11). */
.kb-sasiednie { margin: 44px 0 0; border-top: 1px solid var(--kb-line); padding-top: 22px; }
.kb-sasiednie h2 { font-size: 20px; font-weight: 500; margin: 0 0 12px; }
.kb-sasiednie ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 36px; }
.kb-sasiednie li { break-inside: avoid; padding: 5px 0; font-size: 14px; line-height: 1.4; }
.kb-sasiednie li a { color: var(--kb-grey); }
.kb-sasiednie li a:hover { color: var(--kb-ink); text-decoration: underline; }
@media (max-width: 760px) { .kb-sasiednie ul { columns: 1; } }
/* Tabela dostaw z ustawien ([kb_dostawy] na /Czas-i-koszty-dostawy, 7.11). */
.kb-dostawy-wrap { overflow-x: auto; margin: 0 0 14px; }
.kb-content table.kb-dostawy { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
.kb-content table.kb-dostawy th { text-align: left; font-weight: 600; background: var(--kb-soft); padding: 9px 10px; }
.kb-content table.kb-dostawy td { padding: 9px 10px; border-bottom: 1px solid var(--kb-line); vertical-align: top; }
.kb-content table.kb-dostawy td:nth-child(n+2) { white-space: nowrap; }
.kb-content table.kb-dostawy small { color: var(--kb-grey); }
