/* ============================================================
   Booktown — style motywu wg brandbooku rodziny marek (rebranding 2026):
   kolor marki szmaragd #047857 (dark #3ECFAC), ciepłe neutrale, jeden krój
   Onest (400–800), karty radius 20px. Tokeny z theme.json (--wp--preset--color--*).
   ============================================================ */

:root {
	--btk-r: 12px;
	--btk-r-lg: 20px;
	/* przyciski wg 29-ultimate-ui: NIE pill — radius 14 (sm 11); pill tylko chipsy/badge */
	--btk-r-btn: 14px;
	--btk-r-btn-sm: 11px;
	--btk-sh: 0 1px 4px rgba(32,36,45,.06);
	--btk-sh-hover: 0 8px 22px rgba(32,36,45,.12);
	--btk-sh-cover: 0 2px 8px rgba(32,36,45,.2);
	/* poświata przycisku primary (ultimate-ui: 0 4px 14px glow .25) */
	--btk-glow: 0 4px 14px rgba(4,120,87,.25);
	--btk-line-2: #DDD6C9; /* hairline mocniejszy (border2 z ultimate-ui) */
	--btk-serif: var(--wp--preset--font-family--ui);
}

/* ikony marki (SVG liniowe) w tekście — skalują się z fontem */
.btk-i { width: 1.1em; height: 1.1em; vertical-align: -0.18em; display: inline-block; flex: none; }
/* elementy z ikoną: równe wyrównanie ikona+tekst */
.btk-catchips a, .btk-pp-chip--main,
.btk-mm__aside .btk-mm__link, .btk-modal__head, .btk-pp-instant, .btk-pp-sample--under {
	display: inline-flex; align-items: center; gap: 6px;
}
.btk-modal__head { display: flex; }
.btk-pp-sample--under { justify-content: center; }

/* Brandbook: JEDEN krój (Onest) — liczby/ceny też w Onest, bez fontu mono.
   Wyrównanie kolumn cyfr zapewnia tabular-nums tam, gdzie potrzebne. */

/* padding elementów nie może poszerzać ich ponad szerokość sekcji */
*, *::before, *::after { box-sizing: border-box; }

/* Standardowa klasa dostępności WP — motyw MUSI ją definiować. Woo 9.x dodaje
   span.screen-reader-text między przyciskami kafla; bez tych stylów span
   renderował się jako element flexa i rozpychał parę CTA (bug 2026-07-11). */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap;
}

/* ---------- pasek USP + nagłówek ---------- */
.btk-usp {
	background: var(--wp--preset--color--accent-soft);
	color: var(--wp--preset--color--accent-ink);
	font-size: 12.5px;
	text-align: center;
	padding: 7px 12px;
	letter-spacing: .2px;
}
.btk-header { background: var(--wp--preset--color--card); border-bottom: 1px solid var(--wp--preset--color--line); }
.btk-header__inner, .btk-footer__inner { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.btk-header__top { display: flex; align-items: center; gap: 26px; padding: 16px 0; }
/* logo: sama typografia (decyzja właściciela 2026-07-11) — lockup duo book|town,
   Onest 800, „town" w kolorze marki; dark mode łapie kolory z tokenów */
.btk-logo { font-size: 27px; font-weight: 800; letter-spacing: -.02em; color: var(--wp--preset--color--ink); text-decoration: none; line-height: 1.1; }
.btk-logo em { font-style: normal; color: var(--wp--preset--color--accent); }
.btk-search { flex: 1; position: relative; max-width: 560px; display: flex; }
.btk-search input[type="search"] {
	width: 100%; padding: 11px 48px 11px 16px;
	border: 1.5px solid var(--wp--preset--color--line); border-radius: 99px;
	background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); font-size: 14px;
}
.btk-search input[type="search"]:focus { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; border-color: transparent; }
.btk-search button {
	position: absolute; right: 5px; top: 5px; bottom: 5px; width: 36px;
	border-radius: 99px; background: transparent; color: var(--wp--preset--color--muted); border: 0; cursor: pointer;
	display: grid; place-items: center;
}
.btk-search button:hover { color: var(--wp--preset--color--accent); }
.btk-search button svg { width: 17px; height: 17px; }
/* podpowiedzi wyszukiwarki (btk-search) */
.btk-suggest {
	position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 40;
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r); box-shadow: var(--btk-sh); padding: 6px; font-size: 13.5px;
}
.btk-suggest__item { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 7px; text-decoration: none; color: var(--wp--preset--color--ink); }
.btk-suggest__item:hover, .btk-suggest a.is-active { background: var(--wp--preset--color--accent-soft); }
.btk-suggest__t { min-width: 0; flex: 1; font-weight: 600; line-height: 1.25; }
.btk-suggest__t small { display: block; color: var(--wp--preset--color--muted); font-weight: 400; font-size: 11.5px; }
.btk-suggest__chip { border: 1px solid var(--wp--preset--color--line); border-radius: 5px; padding: 2px 7px; font-size: 10px; font-weight: 700; letter-spacing: .4px; color: var(--wp--preset--color--muted); white-space: nowrap; }
.btk-suggest__p { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.btk-suggest__more { display: block; text-align: center; padding: 9px; margin-top: 4px; border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--accent); font-weight: 700; font-size: 13px; text-decoration: none; }
.btk-suggest__empty { padding: 12px; color: var(--wp--preset--color--muted); }

.btk-header__icons { display: flex; gap: 6px; margin-left: auto; }
.btk-header__icons a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; color: var(--wp--preset--color--ink); text-decoration: none; }
.btk-header__icons a:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--accent); }
.btk-header__icons svg, .btk-theme-toggle svg, .btk-burger svg { width: 20px; height: 20px; display: block; }
.btk-usp__item { white-space: nowrap; }
.btk-header { border-bottom: 0; }
/* mobile: wiersz 1 = hamburger+logo+ikony, wiersz 2 = wyszukiwarka na całą szerokość */
@media (max-width: 899px) {
	.btk-header__top { flex-wrap: wrap; gap: 8px 10px; padding: 12px 0; }
	.btk-logo { font-size: 22px; }
	.btk-search { order: 5; flex: 1 1 100%; max-width: none; }
}

/* ---------- mega menu ---------- */
.btk-mm-wrap { background: var(--wp--preset--color--card); border-bottom: 1px solid var(--wp--preset--color--line); position: relative; z-index: 30; margin: 0 !important; }
.btk-mm { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.btk-mm__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; overflow-x: auto; }
.btk-mm__item > a {
	display: block; padding: 11px 14px; font-size: 14px; font-weight: 600; white-space: nowrap;
	border-bottom: 2.5px solid transparent; color: var(--wp--preset--color--ink); text-decoration: none;
}
.btk-mm__item > a:hover, .btk-mm__item:focus-within > a { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.btk-mm__item > a.is-promo { color: var(--wp--preset--color--promo); }
.btk-mm__caret { font-size: 10px; opacity: .55; }
.btk-mm__panel {
	display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 35;
	background: var(--wp--preset--color--card); border-bottom: 1px solid var(--wp--preset--color--line);
	box-shadow: 0 18px 30px -18px rgba(22,24,29,.25);
}
.btk-mm__panel { padding: 22px max(20px, calc((100% - 1180px) / 2 + 20px)) 26px; grid-template-columns: 1fr 220px; gap: 26px; }
@media (min-width: 900px) {
	.btk-mm__item:hover > .btk-mm__panel, .btk-mm__item:focus-within > .btk-mm__panel { display: grid; }
}
.btk-mm__item.is-open > .btk-mm__panel { display: grid; } /* mobile: otwierane tapnięciem (menu.js) */
.btk-mm__item.is-open > a { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.btk-mm__item.is-open .btk-mm__caret { display: inline-block; transform: rotate(180deg); }
.btk-mm__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px 18px; align-content: start; }
.btk-mm__link { padding: 6px 8px; border-radius: 6px; font-size: 13px; color: var(--wp--preset--color--ink); text-decoration: none; }
.btk-mm__link:hover { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent); }
.btk-mm__link--promo { color: var(--wp--preset--color--promo); font-weight: 600; }
.btk-mm__aside { border-left: 1px solid var(--wp--preset--color--line); padding-left: 22px; display: flex; flex-direction: column; gap: 2px; align-content: start; }
.btk-mm__cta { display: block; font-weight: 700; color: var(--wp--preset--color--accent); text-decoration: none; padding: 6px 8px 10px; font-size: 13.5px; }
/* hamburger: widoczny tylko na mobile, otwiera pełne menu jako panel */
.btk-burger { display: none; border: 0; background: transparent; font-size: 22px; cursor: pointer; width: 40px; height: 40px; border-radius: 10px; color: var(--wp--preset--color--ink); place-items: center; }
@media (max-width: 899px) {
	.btk-burger { display: grid; }
	.btk-mm-wrap { display: none; }
	.btk-mm-wrap.is-open { display: block; border-bottom: 2px solid var(--wp--preset--color--accent); }
	.btk-mm { padding: 0 12px; }
	.btk-mm__list { flex-direction: column; overflow: visible; padding: 4px 0 10px; width: 100%; }
	.btk-mm__item, .btk-mm__item > a { width: 100%; }
	.btk-mm__item > a { display: flex; justify-content: space-between; align-items: center; white-space: normal; border-bottom: 1px solid var(--wp--preset--color--line); border-left: 2.5px solid transparent; padding: 13px 10px; }
	/* wyraźny wskaźnik rozwijania: pastylka ze strzałką */
	.btk-mm__caret {
		font-size: 13px; opacity: 1; color: var(--wp--preset--color--accent);
		background: var(--wp--preset--color--accent-soft); border-radius: 7px;
		padding: 3px 12px; line-height: 1.2; flex: none;
	}
	.btk-mm__item.is-open > a { border-left-color: var(--wp--preset--color--accent); border-bottom-color: var(--wp--preset--color--line); }
	.btk-mm__panel { position: static; box-shadow: none; border: 0; padding: 8px 10px 16px; max-height: none; grid-template-columns: 1fr; gap: 14px; background: transparent; }
	.btk-mm__cols { grid-template-columns: 1fr 1fr; }
	.btk-mm__aside { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); padding: 10px 0 0; }
}

/* stary fallback nav (gdyby shortcode nie działał) */
.btk-cats { display: flex; gap: 4px; overflow-x: auto; }
.btk-cats > a { padding: 11px 14px; font-size: 14px; font-weight: 600; white-space: nowrap; border-bottom: 2.5px solid transparent; color: var(--wp--preset--color--ink); text-decoration: none; }

/* ---------- hero ---------- */
.btk-hero { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; padding-top: 22px; }
@media (max-width: 900px) { .btk-hero { grid-template-columns: 1fr; } }
.btk-ban {
	border-radius: var(--btk-r-lg); position: relative; overflow: hidden; color: #fff;
	display: flex; flex-direction: column; justify-content: center; padding: 36px; min-height: 270px;
	background: linear-gradient(115deg, #065F46 0%, #047857 60%, #0E9F73 100%);
}
.btk-ban::after { content: ""; position: absolute; right: -40px; top: -40px; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.14), transparent 65%); }
.btk-ban__eyebrow { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; opacity: .8; }
.btk-ban h1 { font-family: var(--btk-serif); font-size: clamp(26px, 4vw, 40px); margin: 8px 0 10px; line-height: 1.08; color: #fff; max-width: 430px; text-wrap: balance; }
.btk-ban p { margin: 0 0 20px; opacity: .9; max-width: 380px; font-size: 14.5px; }
.btk-ban__cta { align-self: flex-start; background: #fff; color: #04543E; border-radius: var(--btk-r-btn); padding: 11px 26px; font-weight: 800; font-size: 14px; text-decoration: none; position: relative; }
.btk-hero__side { display: grid; gap: 18px; }
.btk-ban-s { border-radius: var(--btk-r-lg); padding: 22px; color: #fff; display: flex; flex-direction: column; justify-content: center; min-height: 126px; text-decoration: none; }
.btk-ban-s .btk-ban-s__t { font-family: var(--btk-serif); display: block; margin: 0 0 4px; font-size: 19px; font-weight: 700; color: #fff; }
.btk-ban-s p { margin: 0; font-size: 12.5px; opacity: .85; }
.btk-ban-s--1 { background: linear-gradient(120deg, #7C1B45, #9D2257); } /* śliwka: promocje */
.btk-ban-s--2 { background: linear-gradient(120deg, #312E81, #4338CA); } /* indygo: premium */

/* ---------- sekcje / chipsy / newsletter ---------- */
.btk-sec-h { display: flex; align-items: baseline; gap: 14px; margin: 34px 0 16px; flex-wrap: wrap; }
.btk-sec-h .btk-tabs { margin: 0; align-self: center; }
/* wpautop owija link „Pełny ranking" w <p> — rozpuszczamy, żeby margin-left:auto
   linku działał i dociągał go do prawej krawędzi jak w pozostałych sekcjach */
.btk-sec-h > p { display: contents; }
.btk-sec-h h2 { font-family: var(--btk-serif); font-size: 24px; margin: 0; }
.btk-sec-h a { margin-left: auto; font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--accent); text-decoration: none; white-space: nowrap; }
.btk-sec-h a:hover { text-decoration: underline; }

/* wąski baner-separator między sekcjami */
.btk-ban-slim {
	display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
	border-radius: 12px; padding: 16px 26px; color: #fff; margin: 32px 0 4px;
	background: linear-gradient(100deg, #065F46, #047857 70%, #0E9F73);
}
.btk-ban-slim h3 { font-family: var(--btk-serif); font-size: 18px; margin: 0; color: #fff; }
.btk-ban-slim p { margin: 0; font-size: 12.5px; opacity: .85; }
.btk-ban-slim a {
	margin-left: auto; background: #fff; color: #04543E; border-radius: var(--btk-r-btn-sm);
	padding: 8px 20px; font-weight: 800; font-size: 12.5px; text-decoration: none; white-space: nowrap;
}
.btk-ban-slim--warm { background: linear-gradient(100deg, #7C1B45, #9D2257); }
.btk-ban-slim--warm a { color: #7C1B45; }
@media (max-width: 640px) { .btk-ban-slim a { margin-left: 0; } }
.btk-catchips { display: flex; gap: 10px; flex-wrap: wrap; }
.btk-catchips a {
	border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card);
	border-radius: 99px; padding: 9px 18px; font-size: 13.5px; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--ink);
}
.btk-catchips a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.btk-news {
	background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper);
	border-radius: var(--btk-r-lg); padding: 34px; display: flex; gap: 26px; align-items: center; flex-wrap: wrap; margin-top: 38px;
}
.btk-news h2 { font-family: var(--btk-serif); margin: 0 0 6px; font-size: 23px; color: inherit; }
.btk-news p { margin: 0; font-size: 13.5px; opacity: .75; }
.btk-news form { display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.btk-news input { border: 1px solid rgba(128,128,128,.45); background: transparent; color: inherit; border-radius: 99px; padding: 11px 18px; font-size: 14px; min-width: 240px; }
.btk-news button { background: var(--wp--preset--color--accent); color: #fff; border: 0; border-radius: var(--btk-r-btn); padding: 11px 24px; font-weight: 700; cursor: pointer; }

/* ---------- stopka ---------- */
.btk-footer { border-top: 1px solid var(--wp--preset--color--line); margin-top: 44px; padding: 34px 0; background: var(--wp--preset--color--card); }
.btk-footer__inner { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 26px; font-size: 13px; }
@media (max-width: 760px) { .btk-footer__inner { grid-template-columns: 1fr 1fr; } }
.btk-footer .btk-footer__h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 10px; color: var(--wp--preset--color--muted); font-family: inherit; }
.btk-footer a { display: block; padding: 3px 0; color: var(--wp--preset--color--muted); text-decoration: none; }
.btk-footer a:hover { color: var(--wp--preset--color--accent); }
.btk-footer .btk-logo { display: inline-block; margin-bottom: 8px; font-size: 23px; }
.btk-footer__about { font-size: 12.5px; color: var(--wp--preset--color--muted); max-width: 32ch; margin: 0 0 12px; }
.btk-pay { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.btk-pay span { border: 1px solid var(--wp--preset--color--line); border-radius: 6px; padding: 4px 10px; font-size: 11px; font-weight: 700; color: var(--wp--preset--color--muted); }
/* realne loga operatorów (poprawka właściciela N4, 2026-08-02): wyszarzone,
   kolor wraca po najechaniu; assety serwuje wtyczka tpay-woocommerce */
.btk-pay img { height: 20px; width: auto; filter: grayscale(1); opacity: .55; transition: filter .15s ease, opacity .15s ease; }
.btk-pay img:hover { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .btk-pay img { transition: none; } }

/* ============================================================
   WooCommerce: listing produktów (ul.products) → kafle z makiet
   ============================================================ */
.woocommerce ul.products {
	display: grid !important; gap: 18px; margin: 0 0 10px; padding: 0; list-style: none;
	/* 205px: „Cena okładkowa: 29,90 zł −37% ⓘ" mieści się w jednej linii
	   (uwaga właściciela 2026-07-10) — na 1180px daje 5 szerszych kolumn */
	grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
	width: 100%;
}
@media (max-width: 600px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	float: none !important; width: auto !important; margin: 0 !important;
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r); padding: 12px; display: flex; flex-direction: column; gap: 7px;
	transition: transform .15s ease, box-shadow .15s ease; position: relative;
}
.woocommerce ul.products li.product:hover { transform: translateY(-2px); box-shadow: var(--btk-sh-hover); }
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .btk-cover-fallback {
	aspect-ratio: 2 / 3; width: 100%; height: auto; object-fit: cover; border-radius: 8px; margin: 0; box-shadow: var(--btk-sh-cover);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--btk-serif); font-size: 14.5px; font-weight: 700; line-height: 1.25;
	/* delikatny oddech pod okładką (uwaga właściciela 2026-07-13) */
	padding: 8px 0 0; color: var(--wp--preset--color--ink);
	/* tytuł zawsze max 2 linie + rezerwa 2 linii — cena na tym samym poziomie
	   na każdym kaflu (uwaga właściciela 2026-07-10) */
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden; min-height: 2.5em;
}
.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--ink); font-size: 16px; font-weight: 800; margin: 0;
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; font-variant-numeric: tabular-nums;
}
/* Cena PRZYKLEJONA do dołu strefy linku (poprawka właściciela N1, 2026-08-02):
   kafle zapowiedzi miewają linię autora i dłuższe plakietki — bez pinu cena
   i przyciski falowały między kaflami. Tylko widok kafli; lista ma własny grid. */
body:not(.btk-view-list) .woocommerce ul.products li.product a.woocommerce-LoopProduct-link .price { margin-top: auto; }
.woocommerce ul.products li.product .price del { color: var(--wp--preset--color--muted); font-weight: 400; font-size: 12.5px; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--wp--preset--color--promo); }
ul.products li.product .button,
ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product .button {
	display: block; width: 100%; margin: auto 0 0; box-sizing: border-box;
	background: transparent; color: var(--wp--preset--color--accent);
	border: 1.5px solid var(--wp--preset--color--accent); border-radius: var(--btk-r-btn-sm);
	padding: 7px 10px; font-size: 13px; font-weight: 700; text-align: center; text-decoration: none;
	transition: background .12s ease, color .12s ease; line-height: 1.4;
}
/* wiersz z linkiem produktu rozciąga się, przycisk zawsze równo na dole kafla */
ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 7px; flex: 1; text-decoration: none; }
ul.products li.product .button:hover,
ul.products li.product a.add_to_cart_button:hover,
.woocommerce ul.products li.product .button:hover { background: var(--wp--preset--color--accent); color: #fff; }
/* po dodaniu do koszyka NIE pokazujemy dodatkowego "Zobacz koszyk" (decyzja właściciela) */
ul.products li.product a.added_to_cart, .woocommerce a.added_to_cart { display: none !important; }
ul.products li.product .button.loading { opacity: .6; }
ul.products li.product .button.added::after { content: " ✓"; }
.woocommerce span.onsale {
	position: absolute; top: 20px; left: 20px; z-index: 2; min-height: 0; min-width: 0; line-height: 1.4;
	background: var(--wp--preset--color--promo-soft); color: var(--wp--preset--color--promo); border-radius: 6px; padding: 3px 8px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; margin: 0;
}

/* linie cen pod ceną główną (inc/pricing.php, S.S.1) */
.btk-cover-line, .btk-lowest-line { display: block; font-size: 11px; font-weight: 500; color: var(--wp--preset--color--muted); margin-top: 2px; line-height: 1.5; }
.btk-cover-line s { font-weight: 400; }
.btk-cover-line .woocommerce-Price-amount, .btk-lowest-line .woocommerce-Price-amount { font-size: inherit; }
.btk-disc { color: var(--wp--preset--color--promo); font-weight: 800; }
.btk-nw { white-space: nowrap; }
/* cena zakupu zawsze w jednej linii bezpośrednio pod tytułem (uwaga właściciela) */
.woocommerce ul.products li.product .price > del,
.woocommerce ul.products li.product .price > ins { white-space: nowrap; display: inline; }
/* ikonka ⓘ + tooltip (CSS-only, klawiatura przez :focus-visible) */
.btk-tip { position: relative; display: inline-block; margin-left: 4px; cursor: help; color: var(--wp--preset--color--muted); font-style: normal; }
.btk-tip::after {
	content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
	background: #20242D; color: #fff; font-size: 11.5px; font-weight: 500; line-height: 1.4;
	padding: 6px 10px; border-radius: 6px; white-space: nowrap; z-index: 30;
	opacity: 0; pointer-events: none; transition: opacity .12s ease;
}
.btk-tip:hover::after, .btk-tip:focus-visible::after { opacity: 1; }
/* gwiazdki ocen na kaflu — wypełnienie (%) w obrębie własnego pudełka gwiazdek */
.btk-stars { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; line-height: 1; }
.btk-stars__box { position: relative; display: inline-block; line-height: 1; }
.btk-stars__bg, .btk-stars__fill { letter-spacing: 1px; }
.btk-stars__bg { color: var(--btk-line-2); }
.btk-stars__fill { color: var(--wp--preset--color--amber); position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; }
.btk-stars small { color: var(--wp--preset--color--muted); font-size: 11px; }
/* wpautop owija cenę+przyciski kafla w <p> z marginesami i <br> (shortcode
   [products] w szablonie blokowym) — rozpuszczamy akapit do elementów flexa;
   luźne <br> wpautop wstawia też POZA <p> (między przyciskami CTA) */
ul.products li.product > p { display: contents; }
ul.products li.product br { display: none; }
/* „Kup teraz" pod „Dodaj do koszyka" na kaflu — ciasna para przycisków:
   margin-top:0 znosi auto-margines .button (rozpychał przyciski po kaflu) */
ul.products li.product .button.btk-buy-now {
	margin-top: 0; border-radius: var(--btk-r-btn-sm); background: var(--wp--preset--color--accent); color: #fff; border-color: var(--wp--preset--color--accent);
}
ul.products li.product .button.btk-buy-now:hover { background: var(--wp--preset--color--accent-ink); border-color: var(--wp--preset--color--accent-ink); }

/* ---------- buy-box i breadcrumbs ---------- */
.btk-buybox {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r-lg); box-shadow: var(--btk-sh); padding: 20px; margin: 18px 0 0; max-width: 440px;
}
.btk-buybox .price { display: block; margin: 0 0 12px; }
/* pełne zdanie ustawowe Omnibus pod ceną (fix 2026-07-26 — wcześniej wisiało
   luzem w kolumnie podsumowania pod „Kup w zestawie" i rozjeżdżało kartę) */
.btk-buybox .btk-omnibus { margin: -6px 0 12px; font-size: 12.5px; color: var(--wp--preset--color--muted, #6b7280); }
.btk-buybox .btk-omnibus .woocommerce-Price-amount { font-weight: 600; }
/* margin-bottom:0 z !important — arkusz Woo (.woocommerce div.product form.cart)
   wygrywał specyficznością i wstawiał 2em przerwy przed „Kup na prezent" */
.btk-buybox form.cart { margin: 0 !important; display: grid; gap: 8px; }
.btk-buybox .single_add_to_cart_button { width: 100%; }
/* szybki zakup: secondary wg ULTIMATE UI (obrys szmaragd; śliwka TYLKO dla
   komunikatów promocyjnych — korekta zgodności z brandbookiem 2026-07-12) */
.btk-buybox .btk-buy-now {
	width: 100%; cursor: pointer; background: transparent; color: var(--wp--preset--color--accent);
	border: 1.5px solid var(--wp--preset--color--accent);
	border-radius: var(--btk-r-btn); font-weight: 800; padding: 12.5px 28px; font-size: 15px; font-family: inherit;
}
.btk-buybox .btk-buy-now:hover { background: var(--wp--preset--color--accent-soft); }
.btk-buybox .btk-pp-instant { margin: 12px 0 0; }
.woocommerce-breadcrumb { font-size: 12.5px; color: var(--wp--preset--color--muted) !important; margin: 16px 0 4px !important; }
.woocommerce-breadcrumb a { color: var(--wp--preset--color--muted); }
.woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent); }

/* ---------- karta produktu: sekcje btk ---------- */
.btk-pp-byline { font-size: 14.5px; color: var(--wp--preset--color--muted); margin: -4px 0 10px; }
.btk-pp-byline a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.btk-pp-byline a:hover { text-decoration: underline; }
.btk-pp-formats { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0 0; }
.btk-pp-chip { border: 1px solid var(--wp--preset--color--line); border-radius: 6px; padding: 4px 10px; font-size: 11.5px; font-weight: 700; letter-spacing: .4px; color: var(--wp--preset--color--muted); background: var(--wp--preset--color--card); }
.btk-pp-chip--main { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.btk-pp-sample { display: inline-block; margin: 14px 14px 0 0; border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card); border-radius: var(--btk-r-btn-sm); padding: 10px 16px; font-size: 13px; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--ink); }
.btk-pp-sample:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
/* jedna cicha linia zaufania w buy-boxie (dostawa + watermark, przegląd 2026-07-12) */
.btk-pp-instant { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; font-size: 12px; color: var(--wp--preset--color--muted); font-weight: 500; margin: 14px 0 0; }
.btk-pp-instant__line { display: inline-flex; align-items: center; gap: 6px; }
.btk-pp-instant .btk-i { color: var(--wp--preset--color--ok); }
.btk-pp-instant__sep { color: var(--wp--preset--color--line); margin: 0 2px; }
.btk-pp-instant a { color: var(--wp--preset--color--muted); text-decoration: underline; }
.btk-pp-instant a:hover { color: var(--wp--preset--color--accent-ink); }
/* Zapowiedź (etap 3c): termin premiery nad przyciskiem zakupu. Indygo jak chipy
   dat na stronach specjalnych — to informacja o TERMINIE, nie o cenie. */
.btk-pp-premiere {
	display: flex; flex-direction: column; gap: 3px; margin: 12px 0 0;
	background: var(--wp--preset--color--premium-soft); border-radius: 8px; padding: 10px 12px;
}
.btk-pp-premiere__date { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--premium); }
.btk-pp-premiere__sub { font-size: 12px; color: var(--wp--preset--color--muted); }
.btk-pp-premiere .btk-i { color: var(--wp--preset--color--premium); }
/* Dark: premium-soft to #232047, więc granatowy tekst premium znikałby indygo
   na indygo (ta sama pułapka co notice info niżej). */
html[data-theme="dark"] .btk-pp-premiere__date,
html[data-theme="dark"] .btk-pp-premiere .btk-i { color: #C7CCF5; }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .btk-pp-premiere__date,
	html:not([data-theme="light"]) .btk-pp-premiere .btk-i { color: #C7CCF5; }
}
/* Szczegóły/atrybuty (S.S.3 pkt 5): czyste wiersze etykieta—wartość zamiast
   siatki pudełek — mniej ramek, spokojniej */
/* responsywne: wiersze spec układają się w tyle kolumn, ile zmieści szerokość
   (auto-fit) — od 1 na wąskim ekranie po 2–3 na szerokim (uwaga właściciela 2026-07-13) */
.btk-pp-spec { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 40px; margin: 0; max-width: none; }
.btk-pp-spec > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 9px 2px; border-bottom: 1px solid var(--wp--preset--color--line); }
.btk-pp-spec dt { color: var(--wp--preset--color--muted); font-size: 12.5px; flex: none; }
.btk-pp-spec dd { margin: 0; font-weight: 600; font-size: 13px; text-align: right; overflow-wrap: anywhere; }

/* ---------- sekcje karty produktu (zamiast zakładek) ---------- */
/* clear: sekcje muszą schodzić POD floatowaną galerię/summary legacy szablonu Woo */
.btk-pp-section, .btk-bundle { clear: both; }
.btk-pp-section { margin: 34px 0 0; }
/* Opis produktu: wyjustowany, czytelny akapit; pogrubione słowa kluczowe z feedu. */
#section-description p { text-align: justify; hyphens: auto; }
#section-description strong { font-weight: 700; }
.btk-pp-section__title { font-size: 21px; margin: 0 0 12px; }
.btk-pp-section .woocommerce-Reviews-title { font-size: 21px; }

/* ---------- zestawy (btk-bundles) — minimalistycznie (S.S.3 pkt 4):
   hairline zamiast akcentowej ramki, mniej „dziania się" ---------- */
.btk-bundle { background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r-lg); padding: 16px 18px; margin: 26px 0 0; max-width: 540px; }
.btk-bundle h2 { font-size: 15px; margin: 0 0 2px; letter-spacing: -.01em; }
.btk-bundle__sub { font-size: 11.5px; color: var(--wp--preset--color--muted); margin: 0 0 10px; }
.btk-bundle__form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
.btk-bundle__item { display: flex; gap: 10px; align-items: center; min-width: 0; border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r-btn-sm); padding: 7px 10px; cursor: pointer; font-size: 13px; }
/* twarde uporządkowanie wiersza pozycji: checkbox 16px w kolorze marki,
   nazwa łamie się w kontrolowany sposób, cena zawsze w jednej linii */
.btk-bundle__item input[type="checkbox"] { appearance: auto; width: 16px; height: 16px; margin: 0; padding: 0; flex: none; accent-color: var(--wp--preset--color--accent); }
.btk-bundle__name { flex: 1; }
.btk-bundle__price { flex: none; }
.btk-bundle__item:has(input:checked) { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.btk-bundle__img { width: 26px; aspect-ratio: 2/3; object-fit: cover; border-radius: 3px; flex: none; }
.btk-bundle__name { min-width: 0; line-height: 1.25; }
.btk-bundle__name b { display: block; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.btk-bundle__link { color: inherit; text-decoration: none; }
.btk-bundle__link:hover b, .btk-bundle__link:focus-visible b { text-decoration: underline; color: var(--wp--preset--color--accent); }
.btk-bundle__imglink { flex: none; display: flex; }
.btk-bundle__name small { color: var(--btk-muted-strong, #5d646d); font-size: 11px; } /* ciemniejszy niż --muted: kontrast ≥4,5 na tle accent-soft */
.btk-bundle__price { margin-left: auto; font-weight: 700; font-size: 12.5px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.btk-bundle__price .btk-save-line, .btk-bundle__price .btk-cover-line, .btk-bundle__price .btk-lowest-line { display: none; }
.btk-bundle__sum { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.btk-bundle__total { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; }
.btk-bundle__total s { font-size: 12px; color: var(--wp--preset--color--muted); font-weight: 400; margin-right: 5px; }
.btk-bundle__save { font-size: 11.5px; font-weight: 700; color: var(--wp--preset--color--ok); }
.btk-bundle__cta { margin-left: auto; background: var(--wp--preset--color--accent) !important; color: #fff !important; border: 0 !important; border-radius: var(--btk-r-btn-sm) !important; padding: 9px 16px !important; font-weight: 800 !important; font-size: 12.5px !important; }

/* ---------- karta produktu K3 „Immersyjna" (wybór właściciela 2026-07-12) ----------
   Pas hero z tintem szmaragdu (okładka + tytuł + autor + ocena + chipy +
   wydania + krótki opis + próbka), buy-box jako PRZYKLEJONA kolumna boczna,
   sekcje (zakładki, seria, podobne, autor) w kolumnie głównej.
   UWAGA: klasa btk-single jest na <main>, NIE na body. */
.btk-single div.product {
	display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 0 44px; align-items: start;
}
/* hero PRZYPIĘTY do wiersza 1 — inaczej buy-box (kol. 2) zajmuje wiersz 1 i
   spycha pełnoszerokościowy hero pod siebie (bug 2026-07-13).
   align-self:stretch (poprawka właściciela N8, 2026-08-02): przy ZAPOWIEDZI
   buy-box jest wyższy od treści hero (ramka premiery + „Powiadom mnie" + info)
   i wystawał poza zielony pas — wysokość wiersza rośnie do buy-boksu, więc pas
   ma się rozciągać razem z nim, a nie zostawać przy własnej wysokości treści. */
.btk-pp-hero { grid-column: 1 / -1; grid-row: 1; align-self: stretch; }
/* .summary rozpuszczone na elementy siatki (display:contents), żeby buy-box i
   box zestawów trafiły w OSOBNE wiersze prawej kolumny: buy-box w wierszu hero
   (wyśrodkowany), zestawy w wierszu pod hero (wyrównane do linii zakładek). */
.btk-single div.product > .summary { display: contents; }
/* UWAGA: bez `margin: 0` tutaj — nadpisywało margin-top zestawu (specyficzność 0,3,1). */
.btk-single div.product > .summary > * { grid-column: 2; }
/* buy-box: ZAKOTWICZONY w hero (wyśrodkowany w pionie), NIE sticky — odjeżdża
   razem z hero przy przewijaniu (decyzja właściciela 2026-07-13).
   margin-block (poprawka właściciela 2026-08-02): gdy buy-box jest wyższy od
   treści hero (zapowiedzi), wyznacza wysokość wiersza — bez marginesów pas
   kończył się „na styk" z panelem; oddech jak padding hero (30/32px). */
.btk-single .btk-buybox {
	grid-column: 2; grid-row: 1; align-self: center; margin: 30px 0 32px;
	float: none !important; width: 100% !important;
}
/* „Kup w zestawie taniej": prawa kolumna pod hero, wyrównana do linii zakładek
   Opis/Szczegóły/Opinie (margin-top jak .btk-ptabs = 34px), statycznie. */
.btk-single .btk-bundle { grid-column: 2; grid-row: 2; align-self: start; margin-top: 34px; }
.btk-single div.product > :not(.btk-pp-hero):not(.summary) { grid-column: 1; min-width: 0; }
/* Sekcje POD wierszem zakładek/zestawów — na całą szerokość karty (obie kolumny),
   bo prawa kolumna pod zestawami była pusta, a te pasy ściśnięte do kolumny 1
   (usterka właściciela 2026-07-13). Zakładki (.btk-ptabs) zostają w kolumnie 1.
   grid-row: auto — trafiają NIŻEJ niż wiersz z zakładkami i zestawami.
   Selektory dwuklasowe = ta sama specyficzność (0,4,1) co reguła wyżej, ale później. */
.btk-single div.product > .btk-series.btk-series--product,
.btk-single div.product > .btk-pp-section.btk-pp-related,
.btk-single div.product > .btk-pp-section.btk-pp-author { grid-column: 1 / -1; }

/* pas hero: pełna szerokość okna (full-bleed), treść w kontenerze.
   overflow-x:clip na html I body — 100vw zawiera pasek przewijania i bez klipu
   robił poziomy scroll; na mobilnym przewija się <html> (nie <body>), więc klip
   MUSI być na obu, inaczej stronę da się przeciągać w bok. clip (nie hidden)
   NIE psuje sticky. */
html, body { overflow-x: clip; }
.btk-pp-hero {
	width: 100vw; margin-left: calc(50% - 50vw);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 7%, var(--wp--preset--color--card));
	border-block: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 14%, var(--wp--preset--color--line));
}
.btk-pp-hero__in {
	max-width: 1180px; margin: 0 auto; padding: 30px 20px 32px;
	/* 3 kolumny: okładka | info | zarezerwowana kolumna 380px pod PRZYKLEJONY
	   buy-box (wjeżdża w prawą stronę hero — cena widoczna od razu). Szerokość
	   i przerwa jak w gridzie div.product, więc buy-box trafia idealnie w tę lukę. */
	display: grid; grid-template-columns: auto minmax(0, 1fr) 380px; column-gap: 44px; align-items: start;
}
.btk-pp-hero .images { grid-column: 1; float: none !important; width: 230px !important; max-width: 230px; margin: 0 !important; }
.btk-pp-hero .images img { border-radius: 8px; box-shadow: var(--btk-sh-cover); }
.btk-pp-heroinfo { grid-column: 2; min-width: 0; }
/* flaga (bestseller/nowość/promocja) w hero między autorem a oceną; kopię, którą
   btk-flags renderuje na górze buy-boksu, ukrywamy — zostaje jedna, we właściwym miejscu */
.summary > .btk-flags--single { display: none; }
.btk-pp-heroinfo > .btk-flags--single { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.btk-pp-shortdesc { margin: 14px 0 0; font-size: 14px; line-height: 1.65; color: var(--wp--preset--color--muted); max-width: 68ch; }

/* próbka ebooka: wyraźny przycisk tonal (tint szmaragdu) pod krótkim opisem */
.btk-pp-sample-btn {
	display: inline-flex; align-items: center; gap: 9px; margin: 16px 0 0;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	border-radius: var(--btk-r-btn); padding: 12px 22px; font-size: 13.5px; font-weight: 800; text-decoration: none;
}
.btk-pp-sample-btn:hover { background: color-mix(in srgb, var(--wp--preset--color--accent) 18%, var(--wp--preset--color--card)); color: var(--wp--preset--color--accent-ink); }
.btk-pp-heroinfo .btk-pp-player { margin-top: 16px; }

/* buy-box wypełnia kolumnę boczną */
/* buy-box wyśrodkowany w hero (align-self:center) — bez marginesu górnego */
.btk-single .summary .btk-buybox { max-width: none; }
.btk-single .summary .btk-bundle { max-width: none; }

@media (max-width: 980px) {
	.btk-single div.product { display: block; }
	/* mobile: buy-box i zestawy w normalnym przepływie pod hero, z odstępami */
	.btk-single .btk-buybox { grid-row: auto; align-self: auto; margin-top: 24px; }
	.btk-single .btk-bundle { grid-row: auto; margin-top: 18px; }
	/* węższe ekrany: bez zarezerwowanej kolumny — buy-box wraca pod hero */
	.btk-pp-hero__in { grid-template-columns: auto minmax(0, 1fr); column-gap: 24px; }
	.btk-pp-hero .images { width: 150px !important; }
}
@media (max-width: 560px) {
	.btk-pp-hero__in { grid-template-columns: 1fr; justify-items: start; text-align: left; }
	/* okładka NA GÓRZE, dane pod spodem: bez tego images(grid-column:1) i
	   heroinfo(grid-column:2) tworzyły drugą kolumnę mimo siatki 1fr → nadal
	   dwie kolumny obok siebie (usterka 2026-07-13). Kolejność DOM: images → heroinfo. */
	.btk-pp-hero .images, .btk-pp-heroinfo { grid-column: 1; }
	/* mobile: okładka nieco większa (skaluje się z szerokością, cap 200px) —
	   uwaga właściciela 2026-07-20; desktop bez zmian (delikatność szablonu). */
	.btk-pp-hero .images { width: min(58vw, 200px) !important; max-width: 200px; }
	.btk-pp-heroinfo { width: 100%; }
}

/* player próbki audiobooka (S.S.3 pkt 9): odsłuch wprost z karty */
.btk-pp-player { display: flex; align-items: center; gap: 12px; margin: 12px 0 0; }
.btk-pp-player__btn {
	width: 46px; height: 46px; border-radius: 50%; border: 0; cursor: pointer; flex: none;
	background: var(--wp--preset--color--accent); color: #fff; box-shadow: var(--btk-glow);
	display: grid; place-items: center;
}
.btk-pp-player__btn svg { width: 18px; height: 18px; }
.btk-pp-player__btn .ic-pause, .btk-pp-player.is-playing .btk-pp-player__btn .ic-play { display: none; }
.btk-pp-player.is-playing .btk-pp-player__btn .ic-pause { display: block; }
.btk-pp-player__meta b { display: block; font-size: 13px; }
.btk-pp-player__time { color: var(--wp--preset--color--muted); font-size: 11.5px; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .btk-pp-player__btn { color: #0E2A22; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .btk-pp-player__btn { color: #0E2A22; } }

.btk-single .product_title { font-family: var(--btk-serif); font-size: clamp(24px, 3.4vw, 34px); line-height: 1.12; }
.btk-single .summary .price { font-size: 28px; font-weight: 800; color: var(--wp--preset--color--promo); font-variant-numeric: tabular-nums; }
.btk-single .summary .price del { font-size: 15px; color: var(--wp--preset--color--muted); }
.btk-single .summary .price ins { text-decoration: none; }
.btk-single .summary .cart .single_add_to_cart_button {
	background: var(--wp--preset--color--accent); border-radius: var(--btk-r-btn); font-weight: 800; padding: 14px 28px; font-size: 15px; box-shadow: var(--btk-glow);
}
.btk-single .summary .cart .single_add_to_cart_button:hover { background: var(--wp--preset--color--accent-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--wp--preset--color--accent); }

/* ============================================================
   Zamówienie jednoetapowe — W1 FINALNY (makieta zamowienie-w1-final,
   2026-07-12): dwie kolumny (koszyk + logowanie + dane | sticky
   podsumowanie + „Ostatnia szansa"), sekcja faktury VAT ze stanami,
   karty radius 20, przyciski radius 14/11, błędy w winie (err).
   ============================================================ */

/* nagłówek strony + podtytuł */
.btk-checkout-page .wp-block-post-title { font-size: clamp(26px, 3.4vw, 34px); line-height: 1.12; letter-spacing: -.02em; margin: 20px 0 0; }
.btk-co-sub { font-size: 13.5px; color: var(--wp--preset--color--muted); margin: 6px 0 16px; }
/* Owner (Karta-8): strona zamówienia bez tytułu „Zamówienie" i podtytułu — czysty
   one-step checkout. Ukrywamy H1 tylko na checkoucie (body-class .woocommerce-checkout,
   nadawana przez WooCommerce), żeby NIE ruszać H1 innych stron z page.html. Podtytuł
   usunięty w inc/checkout.php (hook woocommerce_before_checkout_form). */
.woocommerce-checkout .wp-block-post-title { display: none; }

/* siatka: form.checkout = grid, lewa kolumna .btk-co-main, prawa .btk-co-aside */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; align-items: start; }
.btk-co-main { min-width: 0; display: grid; gap: 16px; align-content: start; }
/* sticky podsumowanie: header nie jest przyklejony, więc odstęp od góry okna */
.btk-co-aside { min-width: 0; position: sticky; top: 20px; }
@media (max-width: 860px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.btk-co-aside { position: static; }
}
/* Błędy walidacji Woo wstrzykiwane do form.checkout (grid) — pełna szerokość,
   inaczej zajmują pierwszą komórkę i rozjeżdżają kolumny. */
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper,
.woocommerce-checkout form.checkout > .woocommerce-error,
.woocommerce-checkout form.checkout > .woocommerce-message,
.woocommerce-checkout form.checkout > .woocommerce-info { grid-column: 1 / -1; }

/* karty (panel radius 20) */
.btk-co-login, .btk-cart-panel, .woocommerce-checkout #customer_details, .btk-lastchance,
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r-lg); box-shadow: var(--btk-sh); padding: 20px 22px;
}
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }

/* nagłówki paneli (17px, ikona w kolorze marki) */
.btk-co-h, .woocommerce-checkout .woocommerce-billing-fields > h3 {
	font-size: 17px; font-weight: 800; letter-spacing: -.01em; margin: 0;
	display: flex; align-items: center; gap: 9px; color: var(--wp--preset--color--ink);
}
.btk-co-h .btk-i { color: var(--wp--preset--color--accent); width: 1.15em; height: 1.15em; }
/* „Twoje dane": ikona user doklejona maską (nagłówek renderuje szablon Woo) */
.woocommerce-checkout .woocommerce-billing-fields > h3::before {
	content: ""; width: 19px; height: 19px; flex: none; background: var(--wp--preset--color--accent);
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none" stroke="black" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="16" cy="11" r="5"/><path d="M6 27c1.5-6 6-8 10-8s8.5 2 10 8"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none" stroke="black" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="16" cy="11" r="5"/><path d="M6 27c1.5-6 6-8 10-8s8.5 2 10 8"/></svg>') center / contain no-repeat;
}
.btk-cart-panel__cnt { color: var(--wp--preset--color--muted); font-weight: 600; font-size: 14px; }

/* ----- panel „Twój koszyk" (lewa kolumna) ----- */
.btk-cart-item { display: flex; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.btk-cart-item__covlink { flex: none; display: block; width: 52px; }
.btk-cart-item__img, img.btk-cart-item__img { width: 52px; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 6px; box-shadow: var(--btk-sh-cover); display: block; }
.btk-cart-item__inf { flex: 1; min-width: 0; }
.btk-cart-item__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--ink); text-decoration: none; }
.btk-cart-item__t:hover { color: var(--wp--preset--color--accent); }
.btk-cart-item__au { display: block; font-size: 12px; color: var(--wp--preset--color--muted); margin-top: 1px; }
.btk-cart-item__meta { display: flex; gap: 6px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.btk-fmt { font-size: 10px; font-weight: 700; letter-spacing: .09em; padding: 3px 9px; border-radius: 6px; text-transform: uppercase; }
.btk-fmt--ebook { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.btk-fmt--audiobook { background: var(--wp--preset--color--premium-soft); color: var(--wp--preset--color--premium); }
.btk-fmt--epress { background: var(--wp--preset--color--amber-soft); color: var(--wp--preset--color--amber); }
.btk-cart-item__files { font-size: 11px; color: var(--wp--preset--color--muted); font-weight: 500; }
.btk-cart-item__omni { display: block; font-size: 10.5px; color: var(--wp--preset--color--muted); margin-top: 5px; font-variant-numeric: tabular-nums; }
.btk-cart-item__omni .woocommerce-Price-amount { font-size: inherit; }
.btk-cart-item__pr { text-align: right; flex: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.btk-cart-item__pr del { font-size: 12px; color: var(--wp--preset--color--muted); margin-right: 6px; }
.btk-cart-item__now { font-size: 15px; font-weight: 700; }
.btk-cart-item__now.is-sale { color: var(--wp--preset--color--promo); }
.btk-cart-item__rmv {
	width: 30px; height: 30px; flex: none; border-radius: 8px; color: var(--wp--preset--color--muted);
	font-size: 18px; line-height: 1; display: grid; place-items: center; text-decoration: none;
}
.btk-cart-item__rmv:hover { background: var(--wp--preset--color--promo-soft); color: var(--wp--preset--color--err); }
/* kod rabatowy */
.btk-coupon { display: flex; gap: 8px; margin-top: 14px; }
/* prefiks .btk-coupon: wygrywa z globalną regułą input[type="text"] (0,1,1) */
.btk-coupon .btk-coupon__input {
	flex: 1; min-width: 0; height: 40px; padding: 0 14px; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r);
	background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink); font: inherit; font-size: 14px;
	transition: border-color .12s, box-shadow .12s;
}
.btk-coupon .btk-coupon__input:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }
.btk-coupon__btn {
	flex: none; border: 0; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	border-radius: var(--btk-r-btn-sm); padding: 0 16px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.btk-coupon__btn:hover { filter: brightness(.96); }
.btk-coupon-msg:empty { display: none; }
.btk-coupon-msg > * { margin: 0; }

/* ----- zwijane logowanie (nad formularzem; osobny <form> Woo) ----- */
.btk-co-login { margin: 0 0 16px; }
.btk-login summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: var(--wp--preset--color--muted); }
.btk-login summary::-webkit-details-marker { display: none; }
.btk-login summary > .btk-i { color: var(--wp--preset--color--accent); }
.btk-login__lead b { color: var(--wp--preset--color--ink); }
.btk-login__lnk { color: var(--wp--preset--color--accent); font-weight: 700; }
.btk-login__chev { margin-left: auto; display: inline-flex; color: var(--wp--preset--color--muted); transition: transform .15s ease; }
.btk-login[open] .btk-login__chev { transform: rotate(180deg); }
.btk-login__body { margin-top: 6px; }
.woocommerce .btk-co-login form.login {
	border: 0; border-radius: 0; background: transparent; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px;
}
.btk-co-login form.login > * { grid-column: 1 / -1; }
.btk-co-login form.login > .form-row-first { grid-column: 1; }
.btk-co-login form.login > .form-row-last { grid-column: 2; }
.btk-co-login form.login .clear { display: none; }
.btk-co-login form.login .form-row { margin: 12px 0 0; padding: 0; }
.btk-co-login form.login label { display: block; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ink); margin-bottom: 6px; }
.btk-co-login form.login .input-text {
	width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r);
	background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink); font-size: 14px;
	transition: border-color .12s, box-shadow .12s;
}
.btk-co-login form.login .input-text:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }
/* wiersz akcji: przycisk (order:-1 — jak w makiecie przed „Zapamiętaj mnie") */
.btk-co-login form.login > .form-row:not(.form-row-first):not(.form-row-last) { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 14px; }
.btk-co-login .woocommerce-form-login__submit {
	order: -1; border: 0; background: var(--wp--preset--color--accent); color: #fff; border-radius: var(--btk-r-btn);
	padding: 13px 24px; font-weight: 700; font-size: 14.5px; cursor: pointer; font-family: inherit; box-shadow: var(--btk-glow);
}
.btk-co-login .woocommerce-form-login__submit:hover { background: var(--wp--preset--color--accent-ink); }
.btk-co-login .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 7px; margin: 0; font-weight: 600; color: var(--wp--preset--color--muted); font-size: 12.5px; }
.btk-co-login .woocommerce-form__input-checkbox { width: 17px; height: 17px; margin: 0; accent-color: var(--wp--preset--color--accent); }
.btk-co-login .lost_password { margin: 10px 0 0; font-size: 12.5px; }
.btk-co-login .lost_password a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.btk-co-login .lost_password a:hover { text-decoration: underline; }
.btk-login__or { display: flex; align-items: center; gap: 12px; margin: 16px 0 12px; color: var(--wp--preset--color--muted); font-size: 12px; font-weight: 600; }
.btk-login__or::before, .btk-login__or::after { content: ""; flex: 1; border-top: 1px solid var(--wp--preset--color--line); }
.btk-login__social { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
@media (max-width: 600px) { .btk-login__social { grid-template-columns: 1fr; } }
.btk-login__note { display: flex; gap: 6px; align-items: flex-start; font-size: 11.5px; color: var(--wp--preset--color--muted); margin: 12px 0 0; }
.btk-login__note .btk-i { color: var(--wp--preset--color--accent); margin-top: 1px; }

/* ----- pola formularza „Twoje dane" (markup Woo) ----- */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
/* WooCommerce nadaje .form-row-first/last width:47%+float — w gridzie kurczy to pola
   (imię/nazwisko wychodziły ~125px); wymuszamy pełną komórkę. Wrapper pola bywa
   display:inline (block-theme), przez co input width:100% liczył się od treści. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: auto; float: none; }
.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2; }
@media (max-width: 600px) {
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; }
}
.woocommerce-checkout form.checkout .form-row { margin: 12px 0 0; padding: 0; }
.woocommerce-checkout form.checkout .form-row label { display: block; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ink); margin-bottom: 6px; }
.woocommerce form .form-row .required, .btk-req { color: var(--wp--preset--color--accent); font-weight: 800; font-style: normal; text-decoration: none; border-bottom: 0; }
/* prefiks .btk-invoice przy .btk-inp: wygrywa z globalną regułą input[type] (0,1,1) */
.woocommerce-checkout form.checkout .form-row input.input-text,
.woocommerce-checkout form.checkout .form-row select,
.btk-invoice .btk-inp {
	width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r);
	background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink); font-family: inherit; font-size: 14px;
	transition: border-color .12s, box-shadow .12s;
}
.woocommerce-checkout form.checkout .form-row input.input-text:focus,
.woocommerce-checkout form.checkout .form-row select:focus,
.btk-invoice .btk-inp:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }
/* stan błędu pola: WINO (walidacja klienta Woo dodaje .woocommerce-invalid) */
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid select,
.btk-invoice .btk-inp.btk-err { border-color: var(--wp--preset--color--err); }
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid input.input-text:focus,
.btk-invoice .btk-inp.btk-err:focus { border-color: var(--wp--preset--color--err); box-shadow: 0 0 0 3px var(--wp--preset--color--promo-soft); }
.woocommerce-checkout form.checkout .form-row.woocommerce-invalid label { color: var(--wp--preset--color--ink); }
/* opis pola (np. hint pod e-mailem): WooCommerce block-theme daje mu niebieskie
   tło „dymka" — zerujemy do zwykłej, cichej podpowiedzi (bez tła i strzałki). */
.woocommerce-checkout form.checkout .form-row .description { display: block; background: transparent; border: 0; padding: 0; box-shadow: none; font-size: 11.5px; font-weight: 400; color: var(--wp--preset--color--muted); margin-top: 5px; line-height: 1.5; }
.woocommerce-checkout form.checkout .form-row .description::before,
.woocommerce-checkout form.checkout .form-row .description::after { display: none; }

/* pozostałe globalne pola Woo (moje konto, opinie itd.) — jak dotąd */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select {
	border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px; padding: 11px 14px;
	background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); font-size: 14px; width: 100%;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row select:focus { outline: 2px solid var(--wp--preset--color--accent); border-color: transparent; }
.woocommerce form .form-row label { font-size: 12.5px; font-weight: 600; color: var(--wp--preset--color--muted); }

/* ----- sekcja „Chcę fakturę VAT" ----- */
.btk-checkcard {
	display: flex; gap: 11px; align-items: flex-start; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r);
	padding: 12px 14px; cursor: pointer; background: var(--wp--preset--color--card); transition: border-color .12s; margin-top: 14px;
}
.btk-checkcard:hover { border-color: var(--wp--preset--color--accent); }
.btk-checkcard:has(input:checked) { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.btk-checkcard input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--wp--preset--color--accent); flex: none; }
.btk-checkcard__ot b { display: flex; align-items: center; gap: 7px; font-size: 13.5px; line-height: 1.3; color: var(--wp--preset--color--ink); }
.btk-checkcard__ot b .btk-i { color: var(--wp--preset--color--accent); }
.btk-checkcard__ot small { display: block; font-size: 11.5px; font-weight: 400; color: var(--wp--preset--color--muted); margin-top: 2px; }
/* segmented control (kontener radius 14, przyciski 11 — NIE pill) */
.btk-seg { display: flex; gap: 4px; background: var(--wp--preset--color--warm); border-radius: var(--btk-r-btn); padding: 4px; width: max-content; max-width: 100%; margin-top: 14px; }
.btk-seg button { border: 0; background: transparent; padding: 9px 18px; border-radius: var(--btk-r-btn-sm); font-size: 13px; font-weight: 600; color: var(--wp--preset--color--muted); cursor: pointer; font-family: inherit; }
.btk-seg button[aria-selected="true"] { background: var(--wp--preset--color--card); color: var(--wp--preset--color--accent-ink); box-shadow: 0 1px 3px rgba(32,36,45,.1); font-weight: 700; }
.btk-field { margin: 12px 0 0; padding: 0; }
.btk-field > label { display: block; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ink); margin-bottom: 6px; }
.btk-fgrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.btk-fgrid-kod { display: grid; grid-template-columns: 150px 1fr; gap: 0 12px; }
@media (max-width: 600px) { .btk-fgrid2, .btk-fgrid-kod { grid-template-columns: 1fr; } }
/* wiersz NIP + przycisk GUS */
.btk-gusrow { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.btk-gusrow .btk-field { flex: 1; min-width: 200px; }
.btk-gusbtn {
	flex: none; height: 44px; display: inline-flex; align-items: center; gap: 8px; border: 0;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	border-radius: var(--btk-r-btn); padding: 0 20px; font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.btk-gusbtn:hover { filter: brightness(.96); }
.btk-gusbtn:disabled, .btk-gusbtn.is-loading { opacity: .6; cursor: default; }
.btk-manualbtn {
	margin-top: 12px; background: transparent; color: var(--wp--preset--color--accent);
	border: 1.5px solid var(--wp--preset--color--accent); border-radius: var(--btk-r-btn-sm);
	padding: 7px 14px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
	transition: background .12s ease, color .12s ease;
}
.btk-manualbtn:hover { background: var(--wp--preset--color--accent); color: #fff; }
/* notice lookupu NIP (radius 14; błąd = wino) */
.btk-notice { display: flex; gap: 11px; align-items: flex-start; border-radius: var(--btk-r-btn); padding: 13px 16px; font-size: 12.5px; line-height: 1.55; margin-top: 12px; }
.btk-notice .btk-i { flex: none; margin-top: 2px; width: 1.35em; height: 1.35em; }
.btk-notice b { display: block; font-size: 13.5px; }
.btk-notice--ok { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.btk-notice--ok .btk-i { color: var(--wp--preset--color--accent); }
.btk-notice--err { background: var(--wp--preset--color--promo-soft); color: var(--wp--preset--color--err); border: 1px solid color-mix(in srgb, var(--wp--preset--color--err) 22%, transparent); }
.btk-hintline { display: flex; gap: 6px; align-items: flex-start; font-size: 11.5px; color: var(--wp--preset--color--muted); margin: 12px 0 0; line-height: 1.5; }
.btk-hintline .btk-i { color: var(--wp--preset--color--accent); margin-top: 1px; }
.btk-reqnote { font-size: 11px; color: var(--wp--preset--color--muted); margin: 10px 0 0; }
.btk-hairline { border: 0; border-top: 1px solid var(--wp--preset--color--line); margin: 16px 0; }

/* ----- gość / konto ----- */
.btk-guest-hint {
	display: flex; gap: 11px; background: var(--wp--preset--color--warm); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r-btn); padding: 13px 16px; font-size: 12.5px; line-height: 1.6; color: var(--wp--preset--color--muted); margin: 0;
}
.btk-guest-hint .btk-i { color: var(--wp--preset--color--accent); width: 1.35em; height: 1.35em; margin-top: 2px; flex: none; }
.btk-guest-hint b { color: var(--wp--preset--color--ink); }
.btk-guest-hint a { color: var(--wp--preset--color--accent); font-weight: 700; text-decoration: underline; }
.woocommerce-checkout .woocommerce-account-fields { margin-top: 12px; }
/* checkbox-karta „Zakładam konto" (form.checkout w selektorze: wygrywa z ogólną
   regułą etykiet pól) */
.woocommerce-checkout form.checkout p.create-account label {
	display: flex; gap: 11px; align-items: flex-start; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r);
	padding: 12px 14px; cursor: pointer; background: var(--wp--preset--color--card); transition: border-color .12s;
	font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--ink); margin: 0; line-height: 1.4;
}
.woocommerce-checkout form.checkout p.create-account label:hover { border-color: var(--wp--preset--color--accent); }
.woocommerce-checkout form.checkout p.create-account label:has(input:checked) { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.woocommerce-checkout form.checkout p.create-account input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--wp--preset--color--accent); flex: none; }
.woocommerce-checkout div.create-account { margin-top: 12px; }

/* ----- prawa kolumna: podsumowanie (nagłówek + treść = jedna karta) ----- */
.woocommerce-checkout #order_review_heading { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: -.01em; border-bottom: 0; border-radius: var(--btk-r-lg) var(--btk-r-lg) 0 0; padding-bottom: 0; }
.woocommerce-checkout #order_review { border-top: 0; border-radius: 0 0 var(--btk-r-lg) var(--btk-r-lg); padding-top: 8px; }
.woocommerce table.shop_table { border: 0; border-collapse: collapse; font-size: 13.5px; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: 1px solid var(--wp--preset--color--line); padding: 10px 6px; }
.woocommerce table.shop_table .order-total td, .woocommerce table.shop_table .order-total th { font-size: 16px; font-weight: 800; }
/* pozycje pokazuje panel koszyka w lewej kolumnie — w podsumowaniu tylko sumy */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody { display: none; }
.woocommerce-checkout .woocommerce-checkout-review-order-table { width: 100%; margin: 0; background: transparent; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td { border: 0; padding: 5px 0; background: transparent; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th { font-weight: 400; color: var(--wp--preset--color--muted); text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td { text-align: right; color: var(--wp--preset--color--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount td { color: var(--wp--preset--color--promo); font-weight: 700; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount .woocommerce-remove-coupon { font-size: 11px; font-weight: 600; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .btk-delivery td { color: var(--wp--preset--color--accent-ink); font-weight: 700; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td { border-top: 1px solid var(--wp--preset--color--line); padding-top: 12px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th { font-size: 14px; font-weight: 700; color: var(--wp--preset--color--ink); vertical-align: bottom; padding-bottom: 4px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td { font-size: 27px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax { display: block; font-size: 11px; font-weight: 500; color: var(--wp--preset--color--muted); margin-top: 3px; letter-spacing: 0; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .btk-vat-note td { text-align: right; font-size: 11px; font-weight: 500; color: var(--wp--preset--color--muted); padding: 3px 0 0; }

/* płatność wewnątrz karty podsumowania: radio-karty jak w makiecie */
.btk-pay-h { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--wp--preset--color--line); }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; margin-top: 4px; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 12px 0 4px; padding: 0; border: 0; display: grid; gap: 10px; }
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0; border: 1.5px solid var(--btk-line-2); border-radius: var(--btk-r); padding: 12px 14px;
	background: var(--wp--preset--color--card); transition: border-color .12s; line-height: 1.4;
}
.woocommerce-checkout #payment ul.payment_methods li:hover { border-color: var(--wp--preset--color--accent); }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.woocommerce-checkout #payment li input.input-radio { width: 17px; height: 17px; margin: 0 8px 0 0; accent-color: var(--wp--preset--color--accent); vertical-align: -3px; }
.woocommerce-checkout #payment li label { display: inline; font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--ink); cursor: pointer; margin: 0; }
.woocommerce-checkout #payment li label img { max-height: 22px; width: auto; vertical-align: middle; margin-left: 6px; }
.woocommerce-checkout #payment div.payment_box { background: transparent; margin: 0; padding: 8px 0 0; font-size: 11.5px; color: var(--wp--preset--color--muted); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 0; margin: 0; }
/* zgody (regulamin Woo + waiver + newsletter) — specyficzność musi wygrywać
   z ogólną regułą etykiet pól form.checkout (display:block, 700) */
/* Etykieta zgody jako BLOK z checkboxem pozycjonowanym absolutnie — tekst (z linkiem
   i gwiazdką) płynie i zawija się naturalnie. display:flex robił z każdego elementu
   inline osobny flex-item i przy długim tekście prawnym zdanie się rozpadało (P.P.2 #2). */
.woocommerce-checkout form.checkout .form-row.btk-consent label,
.woocommerce-checkout form.checkout .woocommerce-terms-and-conditions-wrapper .form-row label {
	display: block; position: relative; padding-left: 28px; font-size: 12.5px; margin: 0;
	color: var(--wp--preset--color--muted); font-weight: 400; line-height: 1.5; cursor: pointer;
}
.woocommerce-checkout .btk-consent input, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input { position: absolute; left: 0; top: 2px; width: 17px; height: 17px; margin: 0; accent-color: var(--wp--preset--color--accent); flex: none; }
.woocommerce-checkout .btk-consent a, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--wp--preset--color--accent-ink); text-decoration: underline; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin: 12px 0 0; font-size: 12.5px; color: var(--wp--preset--color--muted); }
/* przy zgodzie o odstąpieniu były DWIE gwiazdki: szara (abbr Woo) i nasza
   zielona (.btk-req). Chowamy tylko szarą Woo w wierszach zgód — zostaje jedna
   zielona. Pól obowiązkowych (imię/e-mail/telefon) NIE ruszamy. */
.woocommerce-checkout form.checkout .form-row.btk-consent label abbr.required { display: none; }
/* WooCommerce (tryb block-theme) nadaje #payment #place_order float:right i stałą
   szerokość — nasza reguła musi mieć wyższą specyficzność, inaczej przycisk pływa
   i „linie zaufania" pod nim kolapsują obok floata (width:0). */
.woocommerce-checkout #payment #place_order,
#place_order {
	width: 100%; float: none; display: block; margin-top: 14px; background: var(--wp--preset--color--accent); border: 0; border-radius: var(--btk-r-btn);
	padding: 15px; font-size: 16px; font-weight: 800; color: #fff; box-shadow: var(--btk-glow);
}
#place_order:hover { background: var(--wp--preset--color--accent-ink); }
/* linie zaufania pod CTA */
.btk-co-trust { clear: both; margin-top: 14px; display: grid; grid-template-columns: 1fr; gap: 6px; font-size: 12.5px; color: var(--wp--preset--color--muted); }
.btk-co-trust span { display: inline-flex; align-items: flex-start; gap: 7px; line-height: 1.45; }
.btk-co-trust .btk-i { color: var(--wp--preset--color--accent); margin-top: 2px; flex: none; }

/* ----- moduł „Ostatnia szansa" (podrzędny wobec podsumowania: bez cienia) ----- */
.btk-lastchance { margin-top: 16px; box-shadow: none; }
.btk-lastchance__h { font-size: 11.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--wp--preset--color--muted); display: flex; align-items: center; gap: 8px; margin: 0; }
.btk-lastchance__h .btk-i { color: var(--wp--preset--color--accent); }
.btk-lastchance__rail { max-height: 248px; overflow-y: auto; margin-top: 10px; scrollbar-width: thin; }
.btk-lastchance__item { display: flex; gap: 10px; align-items: center; padding: 9px 2px; border-bottom: 1px solid var(--wp--preset--color--line); }
.btk-lastchance__rail .btk-lastchance__item:last-child { border-bottom: 0; }
.btk-lastchance__covlink { flex: none; display: block; width: 36px; }
img.btk-lastchance__cov { width: 36px; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 4px; box-shadow: var(--btk-sh-cover); display: block; }
.btk-lastchance__inf { flex: 1; min-width: 0; }
.btk-lastchance__t {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	font-size: 12.5px; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--ink); text-decoration: none;
}
.btk-lastchance__t:hover { color: var(--wp--preset--color--accent); }
.btk-lastchance__pr { display: block; font-size: 12.5px; font-weight: 700; margin-top: 2px; font-variant-numeric: tabular-nums; }
.btk-lastchance__pr del { font-size: 11px; color: var(--wp--preset--color--muted); font-weight: 400; margin-right: 5px; }
.btk-lastchance__pr .woocommerce-Price-amount { font-size: inherit; }
.btk-lastchance__now { color: var(--wp--preset--color--promo); } /* pozycje zawsze w promocji — cena śliwka */
.btk-lastchance__omni { display: block; font-size: 9.5px; color: var(--wp--preset--color--muted); margin-top: 1px; font-variant-numeric: tabular-nums; }
.btk-lastchance__omni .woocommerce-Price-amount { font-size: inherit; }
.btk-lastchance__fab {
	width: 32px; height: 32px; flex: none; border: 0; border-radius: 50%;
	background: var(--wp--preset--color--accent); color: #fff; display: grid; place-items: center;
	box-shadow: var(--btk-glow); text-decoration: none;
}
.btk-lastchance__fab:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-lastchance__fab .btk-i { width: 15px; height: 15px; vertical-align: 0; }
.btk-lastchance__fab.loading { opacity: .6; }
.btk-lastchance__fab.added::after { content: none; }

@media (prefers-reduced-motion: reduce) {
	.btk-login__chev { transition: none; }
	.btk-lastchance__rail { scroll-behavior: auto; }
}

/* legacy: × przy nazwie pozycji w tabeli podsumowania (tbody ukryty na
   checkoucie, ale filtr nazwy działa też w mailach/innych widokach) */
.btk-remove-item { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--muted); text-decoration: none; font-size: 14px; line-height: 1; margin-right: 4px; }
.btk-remove-item:hover { background: var(--wp--preset--color--err); color: #fff; }

/* ============================================================
   Listing produktów (S.S.2): pasek narzędzi, widoki lista/tabela,
   treść kategorii nad/pod produktami
   ============================================================ */

/* pasek: przełącznik widoku + per-page (między licznikiem a sortowaniem Woo) */
.btk-ltools { display: inline-flex; align-items: center; gap: 16px; float: right; margin: 0 14px 14px 0; }
/* ikony i select "Na stronie" równo z selectem sortowania Woo (36,5px):
   flex-start + jawne wysokości, bo centrowanie rozjeżdżało pasek o kilka px */
.btk-ltools__views { display: inline-flex; align-self: flex-start; border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px; overflow: hidden; }
.btk-ltools__view {
	display: grid; place-items: center; width: 34px; height: 34px;
	color: var(--wp--preset--color--muted); background: var(--wp--preset--color--card);
}
.btk-ltools__view + .btk-ltools__view { border-left: 1px solid var(--wp--preset--color--line); }
.btk-ltools__view:hover { color: var(--wp--preset--color--accent); }
.btk-ltools__view.is-on { background: var(--wp--preset--color--accent); color: #fff; }
.btk-ltools__pp { font-size: 12.5px; color: var(--wp--preset--color--muted); display: inline-flex; align-items: center; align-self: flex-start; gap: 7px; }
.btk-ltools__pp select { border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px; padding: 6px 8px; height: 37px; background: var(--wp--preset--color--card); font-size: 12.5px; }
@media (max-width: 860px) {
	/* Toolbar sklepu na mobile: licznik, przełącznik widoku i sortowanie jako
	   pełne, oddzielne wiersze (wcześniej float nakładał je na siebie). */
	.woocommerce .woocommerce-result-count { float: none; display: block; width: 100%; margin: 0 0 10px; }
	.btk-ltools { float: none; display: flex; justify-content: space-between; align-items: center; width: 100%; margin: 0 0 12px; clear: both; }
	.woocommerce .woocommerce-ordering { float: none; display: block; width: 100%; margin: 0; }
	.woocommerce .woocommerce-ordering select { width: 100%; }
}

/* ----- widok LISTA: kafel rozłożony w wiersz (okładka | opis | akcje) -----
   UWAGA na selektory: klasę .woocommerce ma sam <body> (szablon blokowy nie
   ma wewnętrznego wrappera), więc ".woocommerce ul.products" w środku
   selektora z body.btk-view-* NIGDY nie złapie — układ zweryfikowany
   na stagingu przez wstrzyknięty <style> (2026-07-10). */
body.btk-view-list ul.products { grid-template-columns: 1fr !important; gap: 12px; }
body.btk-view-list ul.products li.product {
	display: grid; grid-template-columns: 96px minmax(0, 1fr) 210px;
	gap: 4px 20px; align-content: center; padding: 14px 18px;
}
body.btk-view-list ul.products li.product:hover { transform: none; }
/* rozpuszczamy link kafla: jego dzieci (okładka/tytuł/cena/gwiazdki) trafiają do grida <li> */
body.btk-view-list ul.products li.product a.woocommerce-LoopProduct-link { display: contents; }
body.btk-view-list ul.products li.product a img,
body.btk-view-list ul.products li.product .btk-cover-fallback { grid-column: 1; grid-row: 1 / span 4; width: 96px; }
body.btk-view-list ul.products li.product .woocommerce-loop-product__title { grid-column: 2; grid-row: 1; min-height: 0; font-size: 15.5px; padding-right: 48px; }
body.btk-view-list ul.products li.product .price { grid-column: 2; grid-row: 2; }
/* 2 linijki opisu (renderowane na listingu zawsze, widoczne tylko w liście);
   padding-right: tekst nie wchodzi pod serce ulubionych */
body.btk-view-list ul.products li.product .btk-lexcerpt {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	grid-column: 2; grid-row: 3; font-size: 12.5px; line-height: 1.55;
	color: var(--wp--preset--color--muted); margin-top: 2px; padding-right: 48px;
}
body.btk-view-list ul.products li.product .btk-stars { grid-column: 2; grid-row: 4; }
/* para przycisków wyśrodkowana w pionie względem całego wiersza */
body.btk-view-list ul.products li.product .btk-actions {
	display: flex; flex-direction: column; gap: 8px; justify-content: center;
	grid-column: 3; grid-row: 1 / span 4;
}
body.btk-view-list ul.products li.product .btk-actions .button { width: 100%; margin: 0; }
/* serce ulubionych: pionowo wyśrodkowane, na lewo od kolumny przycisków */
body.btk-view-list ul.products li.product .btk-fav { top: 50%; transform: translateY(-50%); right: 248px; }
body.btk-view-list ul.products li.product .btk-flags--tile { top: 6px; left: 10px; }
body.btk-view-list ul.products li.product span.onsale { top: 6px; left: 10px; }
@media (max-width: 640px) {
	body.btk-view-list ul.products li.product { grid-template-columns: 72px minmax(0, 1fr); gap: 3px 14px; }
	body.btk-view-list ul.products li.product a img,
	body.btk-view-list ul.products li.product .btk-cover-fallback { width: 72px; }
	body.btk-view-list ul.products li.product .btk-lexcerpt { display: none; } /* mobile: bez opisu, kafel ma zostać zwarty */
	body.btk-view-list ul.products li.product .btk-actions { grid-column: 2; grid-row: 5; flex-direction: row; justify-content: flex-start; }
	body.btk-view-list ul.products li.product .btk-actions .button { width: auto; padding: 6px 16px; }
	body.btk-view-list ul.products li.product .btk-fav { top: 10px; right: 10px; transform: none; }
}

/* wrapper przycisków kafla (inc/archive.php): poza widokiem lista jest przezroczysty
   dla layoutu — przyciski zachowują się jak bezpośrednie dzieci <li> */
.btk-actions { display: contents; }
/* fragment opisu istnieje w DOM na listingach, ale pokazuje go tylko widok lista */
.btk-lexcerpt { display: none; }

/* ----- widok TABELA: zwarte wiersze (miniatura | tytuł | cena | koszyk) ----- */
body.btk-view-table ul.products { grid-template-columns: 1fr !important; gap: 0; border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); overflow: hidden; }
body.btk-view-table ul.products li.product {
	display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 150px;
	gap: 2px 16px; align-items: center;
	border: 0; border-radius: 0; padding: 8px 52px 8px 14px; /* prawy padding: miejsce na serce */
}
body.btk-view-table ul.products li.product + li.product { border-top: 1px solid var(--wp--preset--color--line); }
body.btk-view-table ul.products li.product:hover { transform: none; box-shadow: none; background: var(--wp--preset--color--accent-soft); }
body.btk-view-table ul.products li.product a.woocommerce-LoopProduct-link { display: contents; }
body.btk-view-table ul.products li.product a img,
body.btk-view-table ul.products li.product .btk-cover-fallback { grid-column: 1; grid-row: 1 / span 2; width: 44px; box-shadow: none; border-radius: 4px; }
body.btk-view-table ul.products li.product .woocommerce-loop-product__title {
	grid-column: 2; grid-row: 1 / span 2; min-height: 0; font-size: 13.5px; -webkit-line-clamp: 2;
}
body.btk-view-table ul.products li.product .btk-stars { display: none; }
body.btk-view-table ul.products li.product .price { grid-column: 3; grid-row: 1 / span 2; font-size: 14.5px; justify-self: end; text-align: right; display: block; white-space: nowrap; }
/* w tabeli tylko cena zakupu — linie okładkowej/najniższej zaciemniają zwarty wiersz */
body.btk-view-table ul.products li.product .btk-cover-line,
body.btk-view-table ul.products li.product .btk-lowest-line { display: none; }
body.btk-view-table ul.products li.product .button { grid-column: 4; grid-row: 1 / span 2; width: 100%; margin: 0; padding: 6px 8px; font-size: 12px; }
body.btk-view-table ul.products li.product .button.btk-buy-now { display: none; } /* zwarty wiersz: jedno CTA */
body.btk-view-table ul.products li.product span.onsale,
body.btk-view-table ul.products li.product .btk-flags { display: none; }
body.btk-view-table ul.products li.product .btk-fav { top: 50%; transform: translateY(-50%); right: 10px; }
@media (max-width: 640px) {
	body.btk-view-table ul.products li.product { grid-template-columns: 44px minmax(0, 1fr) auto; }
	body.btk-view-table ul.products li.product .button { grid-column: 2 / span 2; grid-row: 3; justify-self: start; width: auto; }
}

/* ----- treść kategorii nad/pod produktami (zwijana) -----
   Bez karty (tła/obramowania) — czysty tekst na tle strony; „Pokaż więcej"
   po prawej (uwaga właściciela 2026-07-10). */
.btk-catc {
	margin: 0 0 4px;
	font-size: 13.5px; line-height: 1.7; color: var(--wp--preset--color--muted);
}
.btk-catc--bottom { margin: 26px 0 0; }
/* Dwa poziomy nagłówków w długich opisach kategorii (5 tys. znaków, H2 + H3):
   przy jednym rozmiarze 16px hierarchia znikała i tekst czytał się jak ciąg
   pogrubień. H2 dostaje więcej powietrza nad sobą, H3 schodzi bliżej akapitu. */
.btk-catc h2, .btk-catc h3 { font-family: var(--btk-serif); color: var(--wp--preset--color--ink); }
.btk-catc h2 { margin: 22px 0 7px; font-size: 17px; }
.btk-catc h3 { margin: 16px 0 5px; font-size: 14.5px; }
.btk-catc h2:first-child, .btk-catc h3:first-child, .btk-catc p:first-child { margin-top: 0; }
.btk-catc p { margin: 0 0 8px; }
.btk-catc a { color: var(--wp--preset--color--accent); }
.btk-catc img { max-width: 100%; height: auto; border-radius: 8px; }
.btk-catc.is-collapsed { max-height: 220px; overflow: hidden; position: relative; }
.btk-catc.is-collapsed::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 70px;
	background: linear-gradient(transparent, var(--wp--preset--color--paper));
}
.btk-catc__more {
	border: 0; background: transparent; padding: 6px 0 0; cursor: pointer;
	color: var(--wp--preset--color--accent); font-weight: 700; font-size: 12.5px; font-family: inherit;
	display: block; width: fit-content; margin: 0 0 16px auto;
}
.btk-catc__more:hover { text-decoration: underline; }

/* ---------- porządki w legacy szablonach Woo ---------- */
.woocommerce .woocommerce-result-count { color: var(--wp--preset--color--muted); font-size: 13px; }
.woocommerce .woocommerce-ordering select { border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px; padding: 7px 10px; background: var(--wp--preset--color--card); }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
@media (max-width: 480px) {
	.woocommerce nav.woocommerce-pagination ul li a,
	.woocommerce nav.woocommerce-pagination ul li span { padding: 7px 11px; }
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 8px 13px; font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--wp--preset--color--accent); color: #fff; border-color: var(--wp--preset--color--accent); }

/* ---------- slider hero ---------- */
.btk-slider { position: relative; border-radius: var(--btk-r-lg); overflow: hidden; min-height: 270px; }
.btk-slider .btk-ban { position: absolute; inset: 0; min-height: 0; opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.btk-slider .btk-ban.is-cur { opacity: 1; pointer-events: auto; }
.btk-ban--rasp { background: linear-gradient(115deg, #6E1739, #9D2257 65%, #B94D7E); } /* śliwka */
.btk-ban--rasp .btk-ban__cta { color: #6E1739; }
.btk-ban--teal { background: linear-gradient(115deg, #312E81, #4F46E5); } /* indygo */
.btk-ban--teal .btk-ban__cta { color: #312E81; }
/* pasek sterowania w prawym dolnym rogu — poza treścią i CTA slajdu */
.btk-slider__ctrl {
	position: absolute; right: 14px; bottom: 12px; z-index: 3;
	display: flex; align-items: center; gap: 2px;
	background: rgba(13, 27, 48, .32); border-radius: 99px; padding: 2px 6px;
	backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.btk-slider__dots { display: flex; }
/* przycisk ma 24×24 px (WCAG 2.2 target size), widoczna kropka to pseudoelement */
.btk-slider__dots button { width: 24px; height: 24px; border: 0; background: transparent; cursor: pointer; padding: 0; display: grid; place-items: center; }
.btk-slider__dots button::before { content: ""; width: 9px; height: 9px; border-radius: 99px; background: rgba(255,255,255,.45); transition: width .2s ease; }
.btk-slider__dots button.is-on::before { background: #fff; width: 22px; }
.btk-slider__arr { width: 28px; height: 28px; border-radius: 50%; border: 0; background: transparent; color: #fff; font-size: 16px; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0 0 2px; }
.btk-slider__arr:hover { background: rgba(255,255,255,.22); }
@media (prefers-reduced-motion: reduce) { .btk-slider .btk-ban { transition: none; } }

/* ---------- ranking bestsellerów ---------- */
.btk-rank { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .btk-rank { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.btk-rank__item { display: flex; gap: 10px; min-width: 0; align-items: flex-start; background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 12px; text-decoration: none; color: var(--wp--preset--color--ink); }
.btk-rank__item:hover { box-shadow: var(--btk-sh); }
.btk-rank__n { font-size: 32px; font-weight: 800; color: var(--wp--preset--color--accent); opacity: .45; line-height: 1; min-width: 28px; }
/* height:auto neutralizuje atrybut height="300" placeholdera — bez niego aspect-ratio nie działa */
.btk-rank__item img { width: 56px; height: auto; aspect-ratio: 2/3; object-fit: cover; border-radius: 5px; flex: none; }
.btk-rank__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.btk-rank__title { font-size: 13px; font-weight: 700; line-height: 1.25; }
.btk-rank__author { font-size: 11.5px; color: var(--wp--preset--color--muted); }
.btk-rank__price { font-size: 13.5px; font-weight: 800; font-variant-numeric: tabular-nums; }
.btk-rank__price .btk-save-line, .btk-rank__price .btk-cover-line, .btk-rank__price .btk-lowest-line { display: none; }
.btk-rank__price del { color: var(--wp--preset--color--muted); font-weight: 400; font-size: 11px; }
.btk-rank__price ins { text-decoration: none; color: var(--wp--preset--color--promo); }

/* ---------- opinie klientów (Google) ---------- */
.btk-rev { display: grid; grid-template-columns: 230px 1fr; gap: 18px; align-items: stretch; } /* stretch: kafle opinii na równi z podsumowaniem */
@media (max-width: 860px) { .btk-rev { grid-template-columns: 1fr; } }
.btk-rev__sum {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 20px; text-align: center;
	display: flex; flex-direction: column; justify-content: center;
}
.btk-rev__sum .g { display: flex; justify-content: center; }
.btk-rev__sum .g svg { height: 26px; width: auto; }
.btk-rev__sum .score { font-size: 36px; font-weight: 800; margin-top: 4px; }
.btk-rev__sum .stars { color: var(--wp--preset--color--amber); font-size: 15px; letter-spacing: 1px; }
.btk-rev__sum p { font-size: 11.5px; color: var(--wp--preset--color--muted); margin: 6px 0 0; }
.btk-rev__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 860px) { .btk-rev__grid { grid-template-columns: 1fr; } }
.btk-rev__card { background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 16px; font-size: 13px; }
.btk-rev__who { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.btk-rev__ava { width: 34px; height: 34px; border-radius: 50%; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent); display: grid; place-items: center; font-weight: 800; flex: none; }
.btk-rev__who b { display: block; font-size: 13px; }
.btk-rev__who small { color: var(--wp--preset--color--muted); font-size: 11px; }
.btk-rev__card p { margin: 4px 0 0; line-height: 1.55; }

/* ---------- sekcja bloga: W4 „Półka księgarza" (wybór właściciela 2026-07-12)
   — kafel polecenia na tincie marki + 2 najnowsze wpisy ---------- */
.btk-blogw4 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 760px) { .btk-blogw4 { grid-template-columns: 1fr; } }
.btk-blogw4__reco { background: var(--wp--preset--color--accent-soft); border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.btk-blogw4__oko { width: 22px; height: 22px; color: var(--wp--preset--color--accent); }
.btk-blogw4__reco b { color: var(--wp--preset--color--accent-ink); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.btk-blogw4__reco h3 { margin: 0; font-size: 16px; font-weight: 800; line-height: 1.3; color: var(--wp--preset--color--ink); }
.btk-blogw4__reco p { margin: 0; font-size: 12.5px; color: var(--wp--preset--color--muted); }
.btk-blogw4__reco a { margin-top: auto; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--accent); text-decoration: none; }
.btk-blogw4__reco a:hover { text-decoration: underline; }
.btk-blogw4__post {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px; box-shadow: var(--btk-sh); padding: 16px 18px;
	display: flex; flex-direction: column; gap: 8px;
	transition: transform .15s ease, box-shadow .15s ease;
}
.btk-blogw4__post:hover { transform: translateY(-2px); box-shadow: var(--btk-sh-hover); }
.btk-blogw4__badge { align-self: flex-start; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); border-radius: 6px; padding: 3px 8px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.btk-blogw4__post h3 { margin: 0; font-size: 15px; font-weight: 800; line-height: 1.3; }
.btk-blogw4__post h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.btk-blogw4__post h3 a:hover { color: var(--wp--preset--color--accent); }
.btk-blogw4__post p { margin: 0; font-size: 12.5px; color: var(--wp--preset--color--muted); }
.btk-blogw4__meta { margin-top: auto; font-size: 11.5px; color: var(--btk-muted-strong, var(--wp--preset--color--muted)); }
@media (prefers-reduced-motion: reduce) { .btk-blogw4__post { transition: none; } }

/* ---------- opis SEO nad stopką: przewijane pole tekstowe ---------- */
.btk-seo { margin-top: 44px; color: var(--wp--preset--color--muted); font-size: 13px; line-height: 1.7; }
.btk-seo h2 { font-family: var(--btk-serif); font-size: 17px; color: var(--wp--preset--color--ink); margin: 0 0 10px; }
.btk-seo__scroll {
	max-height: 170px; overflow-y: auto; padding-right: 14px;
	border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r);
	padding: 14px 18px; background: var(--wp--preset--color--card);
	scrollbar-width: thin; scrollbar-color: var(--wp--preset--color--line) transparent;
}
.btk-seo__scroll p { margin: 0 0 10px; }
.btk-seo__scroll h3 { font-size: 13.5px; color: var(--wp--preset--color--ink); margin: 14px 0 6px; font-family: inherit; }
.btk-seo__scroll h3:first-child { margin-top: 0; }
.btk-seo__scroll ul { margin: 0 0 10px; padding-left: 18px; }
.btk-seo__scroll li { margin: 0 0 3px; }
.btk-seo__scroll strong { color: var(--wp--preset--color--ink); font-weight: 700; }
.btk-seo__scroll a { color: var(--wp--preset--color--accent-ink); text-decoration: underline; text-underline-offset: 2px; }
.btk-seo__scroll a:hover { color: var(--wp--preset--color--accent); }

/* ---------- drugi opis SEO POD stopką: zwijany "Pokaż więcej" ---------- */
.btk-seofoot { border-top: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--paper); padding: 22px 0 30px; }
.btk-seofoot__inner { max-width: 1180px; margin: 0 auto; padding: 0 20px; color: var(--wp--preset--color--muted); font-size: 12.5px; line-height: 1.7; }
.btk-seofoot__inner p { margin: 0 0 8px; }
.btk-seofoot__inner h3 { font-size: 13px; font-weight: 800; color: var(--wp--preset--color--ink); margin: 14px 0 5px; font-family: inherit; }
.btk-seofoot__inner strong { color: var(--wp--preset--color--ink); font-weight: 700; }
.btk-seofoot__inner a { color: var(--wp--preset--color--accent-ink); text-decoration: underline; text-underline-offset: 2px; }
.btk-seofoot__inner a:hover { color: var(--wp--preset--color--accent); }
.btk-seofoot details summary {
	cursor: pointer; list-style: none; display: inline-block;
	color: var(--wp--preset--color--accent); font-weight: 700; font-size: 12.5px;
}
.btk-seofoot details summary::-webkit-details-marker { display: none; }
.btk-seofoot details .is-close { display: none; }
.btk-seofoot details[open] .is-open { display: none; }
.btk-seofoot details[open] .is-close { display: inline; }
.btk-seofoot details[open] summary { margin-bottom: 8px; }

/* ---------- modal "dodano do koszyka" ---------- */
.btk-modal { position: fixed; inset: 0; z-index: 100; background: rgba(22,24,29,.45); display: grid; place-items: center; padding: 20px; }
.btk-modal[hidden] { display: none; } /* atrybut hidden musi wygrywać z display:grid */
.btk-modal__box { background: var(--wp--preset--color--card); border-radius: var(--btk-r-lg); box-shadow: var(--btk-sh); padding: 24px; width: min(420px, 100%); position: relative; }
.btk-modal__x { position: absolute; top: 10px; right: 12px; border: 0; background: transparent; font-size: 22px; color: var(--wp--preset--color--muted); cursor: pointer; line-height: 1; }
.btk-modal__x:hover { color: var(--wp--preset--color--ink); }
.btk-modal__head { font-weight: 800; font-size: 15.5px; color: var(--wp--preset--color--ok); margin-bottom: 14px; }
.btk-modal__product { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.btk-modal__img { width: 56px; aspect-ratio: 2/3; object-fit: cover; border-radius: 5px; flex: none; }
.btk-modal__name { font-weight: 700; font-size: 14.5px; line-height: 1.3; }
.btk-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* akcje modala wg ULTIMATE UI: główna „Przejdź do koszyka" = PRIMARY szmaragd,
   „Kontynuuj zakupy" = SECONDARY (obrys szmaragd). Bez śliwki/brązu.
   Oba z ramką 1.5px → identyczna wysokość w siatce 1fr 1fr. */
.btk-modal__continue { background: var(--wp--preset--color--card); color: var(--wp--preset--color--accent-ink); border: 1.5px solid var(--wp--preset--color--accent); border-radius: var(--btk-r-btn-sm); padding: 12px; font-size: 13.5px; font-weight: 800; cursor: pointer; }
.btk-modal__continue:hover { background: var(--wp--preset--color--accent-soft); }
.btk-modal__cart { display: grid; place-items: center; background: var(--wp--preset--color--accent); color: #fff; border: 1.5px solid var(--wp--preset--color--accent); border-radius: var(--btk-r-btn-sm); padding: 12px; font-size: 13.5px; font-weight: 800; text-decoration: none; box-shadow: var(--btk-glow); }
.btk-modal__cart:hover { background: var(--wp--preset--color--accent-ink); border-color: var(--wp--preset--color--accent-ink); color: #fff; }
@media (max-width: 420px) { .btk-modal__actions { grid-template-columns: 1fr; } }

/* ---------- tryb ciemny ----------
   Auto wg systemu (prefers-color-scheme), chyba że użytkownik wybrał
   przełącznikiem (html[data-theme=light|dark], zapamiętane w localStorage). */
/* Paleta dark wg brandbooku: bg #14171E, karty #1E232C, tekst #F2EDE4, marka #3ECFAC. */
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) body {
		--wp--preset--color--paper: #14171E; --wp--preset--color--card: #1E232C;
		--wp--preset--color--ink: #F2EDE4; --wp--preset--color--muted: #A39E96;
		--wp--preset--color--line: #2F333D; --wp--preset--color--accent: #3ECFAC;
		--wp--preset--color--accent-ink: #6FE0C6; --wp--preset--color--accent-soft: #12332C;
		--wp--preset--color--promo: #D9739F; --wp--preset--color--amber: #D99A4E;
		--wp--preset--color--amber-soft: #332714; --wp--preset--color--ok: #3ECFAC;
		--wp--preset--color--warm: #191D26;
		--wp--preset--color--promo-soft: #3A1626; --wp--preset--color--premium-soft: #232047;
		--wp--preset--color--err: #E77C93;
		--btk-muted-strong: #B5AFA6;
		--btk-line-2: #3A3F4B;
		background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink);
		--btk-sh: 0 1px 4px rgba(0,0,0,.4);
		--btk-sh-hover: 0 8px 22px rgba(0,0,0,.5);
		--btk-sh-cover: 0 2px 8px rgba(0,0,0,.5);
		--btk-glow: 0 4px 14px rgba(62,207,172,.28);
	}
	/* na kolorze marki w dark tekst ciemny (jasny akcent #3ECFAC) */
	html:not([data-theme="light"]) .btk-search button:hover { color: var(--wp--preset--color--accent); }
	html:not([data-theme="light"]) .btk-nl {
		background:
			url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170' viewBox='0 0 170 170'><g fill='none' stroke='%233ECFAC' stroke-opacity='.09' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><g transform='rotate(-10 44 46)'><circle cx='44' cy='46' r='17'/><path d='M37 53l14-14'/><circle cx='38.5' cy='40' r='2.6'/><circle cx='49.5' cy='52' r='2.6'/></g><g transform='rotate(8 122 122)'><path d='M96 108h50a4 4 0 0 1 4 4v7a5 5 0 0 0 0 10v7a4 4 0 0 1-4 4H96a4 4 0 0 1-4-4v-7a5 5 0 0 0 0-10v-7a4 4 0 0 1 4-4z'/><path d='M109 111v26' stroke-dasharray='3 5'/></g></g></svg>") 0 0 / 170px 170px,
			color-mix(in srgb, var(--wp--preset--color--accent) 9%, var(--wp--preset--color--card));
	}
	html:not([data-theme="light"]) .btk-news { background: #101319; color: #F2EDE4; }
	html:not([data-theme="light"]) .btk-modal { background: rgba(0,0,0,.6); }
	html:not([data-theme="light"]) .btk-slider__arr { background: rgba(30,35,44,.85); color: #6FE0C6; }
}
html[data-theme="dark"] body {
	--wp--preset--color--paper: #14171E; --wp--preset--color--card: #1E232C;
	--wp--preset--color--ink: #F2EDE4; --wp--preset--color--muted: #A39E96;
	--wp--preset--color--line: #2F333D; --wp--preset--color--accent: #3ECFAC;
	--wp--preset--color--accent-ink: #6FE0C6; --wp--preset--color--accent-soft: #12332C;
	--wp--preset--color--promo: #D9739F; --wp--preset--color--amber: #D99A4E;
	--wp--preset--color--amber-soft: #332714; --wp--preset--color--ok: #3ECFAC;
	--wp--preset--color--warm: #191D26;
	--wp--preset--color--promo-soft: #3A1626; --wp--preset--color--premium-soft: #232047;
	--wp--preset--color--err: #E77C93;
	--btk-muted-strong: #B5AFA6;
	--btk-line-2: #3A3F4B;
	background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink);
	--btk-sh: 0 1px 4px rgba(0,0,0,.4);
	--btk-sh-hover: 0 8px 22px rgba(0,0,0,.5);
	--btk-sh-cover: 0 2px 8px rgba(0,0,0,.5);
	--btk-glow: 0 4px 14px rgba(62,207,172,.28);
}
html[data-theme="dark"] .btk-nl {
	background:
		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170' viewBox='0 0 170 170'><g fill='none' stroke='%233ECFAC' stroke-opacity='.09' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><g transform='rotate(-10 44 46)'><circle cx='44' cy='46' r='17'/><path d='M37 53l14-14'/><circle cx='38.5' cy='40' r='2.6'/><circle cx='49.5' cy='52' r='2.6'/></g><g transform='rotate(8 122 122)'><path d='M96 108h50a4 4 0 0 1 4 4v7a5 5 0 0 0 0 10v7a4 4 0 0 1-4 4H96a4 4 0 0 1-4-4v-7a5 5 0 0 0 0-10v-7a4 4 0 0 1 4-4z'/><path d='M109 111v26' stroke-dasharray='3 5'/></g></g></svg>") 0 0 / 170px 170px,
		color-mix(in srgb, var(--wp--preset--color--accent) 9%, var(--wp--preset--color--card));
}
html[data-theme="dark"] .btk-news { background: #101319; color: #F2EDE4; }
html[data-theme="dark"] .btk-modal { background: rgba(0,0,0,.6); }
html[data-theme="dark"] .btk-slider__arr { background: rgba(30,35,44,.85); color: #6FE0C6; }

/* jasny akcent #3ECFAC w dark: na wypełnionych przyciskach tekst ciemny, nie biały */
html[data-theme="dark"] ul.products li.product .button:hover,
html[data-theme="dark"] ul.products li.product .button.btk-buy-now,
html[data-theme="dark"] .btk-ltools__view.is-on,
html[data-theme="dark"] #place_order,
html[data-theme="dark"] .btk-news button,
html[data-theme="dark"] .btk-nl button,
html[data-theme="dark"] .btk-lib__dl.button,
html[data-theme="dark"] .btk-odbierz__form .button,
html[data-theme="dark"] #review_form .form-submit input[type="submit"],
html[data-theme="dark"] .woocommerce nav.woocommerce-pagination ul li span.current,
html[data-theme="dark"] .btk-single .summary .cart .single_add_to_cart_button,
html[data-theme="dark"] .btk-co-login .woocommerce-form-login__submit,
html[data-theme="dark"] .btk-lastchance__fab,
html[data-theme="dark"] .btk-manualbtn:hover,
html[data-theme="dark"] .btk-contact__actions button,
html[data-theme="dark"] .btk-claim-form button[type="submit"],
html[data-theme="dark"] .btk-return__submit,
html[data-theme="dark"] .btk-bundle__cta { color: #0E2A22 !important; }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) ul.products li.product .button:hover,
	html:not([data-theme="light"]) ul.products li.product .button.btk-buy-now,
	html:not([data-theme="light"]) .btk-ltools__view.is-on,
	html:not([data-theme="light"]) #place_order,
	html:not([data-theme="light"]) .btk-news button,
	html:not([data-theme="light"]) .btk-nl button,
	html:not([data-theme="light"]) .btk-lib__dl.button,
	html:not([data-theme="light"]) .btk-odbierz__form .button,
	html:not([data-theme="light"]) #review_form .form-submit input[type="submit"],
	html:not([data-theme="light"]) .woocommerce nav.woocommerce-pagination ul li span.current,
	html:not([data-theme="light"]) .btk-single .summary .cart .single_add_to_cart_button,
	html:not([data-theme="light"]) .btk-co-login .woocommerce-form-login__submit,
	html:not([data-theme="light"]) .btk-lastchance__fab,
	html:not([data-theme="light"]) .btk-manualbtn:hover,
	html:not([data-theme="light"]) .btk-contact__actions button,
	html:not([data-theme="light"]) .btk-claim-form button[type="submit"],
	html:not([data-theme="light"]) .btk-return__submit,
	html:not([data-theme="light"]) .btk-bundle__cta { color: #0E2A22 !important; }
}

.btk-theme-toggle { border: 0; background: transparent; cursor: pointer; font-size: 17px; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; }
.btk-theme-toggle:hover { background: var(--wp--preset--color--paper); }

/* ---------- komunikaty Woo — notice wg 29-ultimate-ui: radius 14, tint + ciemny
   tekst semantyczny; błąd = WINO (err), nie śliwka ---------- */
/* Cztery ODRĘBNE kolory semantyczne marki (wcześniej info dziedziczyło zielony
   sukcesu → „wszystko zielone", uwaga właściciela pkt 7/10):
   sukces = szmaragd (ok) · info/notice = indygo (premium) · uwaga = bursztyn
   (amber) · błąd = wino (err). */
.woocommerce-info, .woocommerce-message, .woocommerce-noreviews, .woocommerce-error, .woocommerce-warning {
	border: 0; border-radius: 14px; padding: 13px 18px 13px 44px; font-size: 13.5px;
}
/* SUKCES — szmaragd */
.woocommerce-message, .wc-block-components-notice-banner.is-success {
	background: color-mix(in srgb, var(--wp--preset--color--ok) 11%, var(--wp--preset--color--card));
	color: var(--wp--preset--color--accent-ink);
}
.woocommerce-message::before, .woocommerce-message a { color: var(--wp--preset--color--ok); }
/* INFO / NOTICE — indygo (NIE zielony) */
.woocommerce-info, .woocommerce-noreviews, .wc-block-components-notice-banner.is-info {
	background: var(--wp--preset--color--premium-soft); color: var(--wp--preset--color--premium);
}
.woocommerce-info::before, .woocommerce-noreviews::before { color: var(--wp--preset--color--premium); }
.woocommerce-info a, .woocommerce-noreviews a { color: var(--wp--preset--color--premium); font-weight: 700; text-decoration: underline; }
/* UWAGA / WARNING — bursztyn */
.woocommerce-warning, .wc-block-components-notice-banner.is-warning {
	background: var(--wp--preset--color--amber-soft); color: var(--wp--preset--color--amber);
}
.woocommerce-warning::before { color: var(--wp--preset--color--amber); }
.woocommerce-warning a, .wc-block-components-notice-banner.is-warning a { color: var(--wp--preset--color--amber); font-weight: 700; text-decoration: underline; }
/* BŁĄD — wino */
.woocommerce-error, .wc-block-components-notice-banner.is-error {
	background: color-mix(in srgb, var(--wp--preset--color--err) 10%, var(--wp--preset--color--card));
	color: var(--wp--preset--color--err);
}
.woocommerce-error::before, .woocommerce-error a { color: var(--wp--preset--color--err); }
/* block-notices (bloki koszyk/checkout, gdyby wystąpiły) — tło per typ + radius marki */
.wc-block-components-notice-banner { border-radius: 14px !important; border: 0 !important; }
.wc-block-components-notice-banner.is-info { background: var(--wp--preset--color--premium-soft) !important; }
.wc-block-components-notice-banner.is-success { background: color-mix(in srgb, var(--wp--preset--color--ok) 11%, var(--wp--preset--color--card)) !important; }
.wc-block-components-notice-banner.is-warning { background: var(--wp--preset--color--amber-soft) !important; }
.wc-block-components-notice-banner.is-error { background: color-mix(in srgb, var(--wp--preset--color--err) 10%, var(--wp--preset--color--card)) !important; }
/* Dark: tekst notice info (np. „Brak zapisanej płatności one click") czytelny
   na ciemnym tle premium-soft (#232047) — inaczej indygo na indygo znikało. */
html[data-theme="dark"] .wc-block-components-notice-banner.is-info,
html[data-theme="dark"] .wc-block-components-notice-banner.is-info .wc-block-components-notice-banner__content { color: #C7CCF5; }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .wc-block-components-notice-banner.is-info,
	html:not([data-theme="light"]) .wc-block-components-notice-banner.is-info .wc-block-components-notice-banner__content { color: #C7CCF5; }
}
.woocommerce form.checkout_coupon, .woocommerce form.login {
	border: 1px solid var(--wp--preset--color--line); border-radius: 10px; background: var(--wp--preset--color--card);
}

/* ---------- pola formularzy globalnie (komentarze/opinie, kupony, logowanie) ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="search"], input[type="number"], input[type="url"], textarea, select {
	background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink);
	border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px;
	padding: 10px 14px; font: inherit; font-size: 14px;
}
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--wp--preset--color--accent); border-color: transparent; }
#review_form .comment-form { display: grid; gap: 12px; max-width: 640px; }
#review_form label { display: block; font-size: 12.5px; font-weight: 600; color: var(--wp--preset--color--muted); margin-bottom: 4px; }
#review_form textarea, #review_form input { width: 100%; }
#review_form input[type="checkbox"] { width: auto; padding: 0; margin: 2px 0 0; }
#review_form .comment-form-cookies-consent { display: flex; gap: 9px; align-items: flex-start; }
#review_form .comment-form-cookies-consent label { display: inline; margin: 0; font-weight: 400; font-size: 12.5px; line-height: 1.5; }
#review_form .form-submit input[type="submit"] { width: auto; background: var(--wp--preset--color--accent); color: #fff; border: 0; border-radius: var(--btk-r-btn); padding: 12px 24px; font-weight: 800; cursor: pointer; }
.woocommerce #reviews #comments ol.commentlist li {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r); padding: 16px; margin: 0 0 12px;
}
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 0; margin: 0; padding: 0; }

/* natywne kontrolki (scrollbar, checkbox, date picker) w kolorach trybu */
html[data-theme="dark"] { color-scheme: dark; }
html[data-theme="light"] { color-scheme: light; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) { color-scheme: dark; } }

/* ---------- dostępność ---------- */
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product { transition: none; }
}

/* próbka pod okładką (lewa kolumna karty) */
.woocommerce div.product div.images .btk-pp-sample--under { display: block; width: 100%; text-align: center; margin: 12px 0 0; box-sizing: border-box; }

/* ---------- guttery: treść nie dotyka krawędzi ekranu ---------- */
main.wp-block-group { padding-left: 16px; padding-right: 16px; }
@media (min-width: 900px) { main.wp-block-group { padding-left: 20px; padding-right: 20px; } }

/* ---------- biblioteka klienta — półka okładek 2:3 (B2, btk-library) ----------
   booktown = pliki do POBRANIA (bez śledzenia postępu czytania): status zamiast
   paska postępu. Okładki 2:3 MUSZĄ mieć height:auto (Woo 10.9.x dodaje width/height
   do <img> — atrybut height pinuje wysokość i aspect-ratio jest ignorowane). */
/* więcej „oddechu": szersze pozycje + większe odstępy, żeby karty się nie zlewały */
.btk-lib { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 34px 26px; align-items: stretch; }
.btk-lib__item { display: flex; flex-direction: column; min-width: 0; height: 100%; }
.btk-lib__item[hidden] { display: none; }
.btk-lib__cov { position: relative; border-radius: 8px; overflow: hidden; box-shadow: var(--btk-sh-cover); aspect-ratio: 2/3; background: var(--wp--preset--color--warm); }
.btk-lib__covlink { display: block; height: 100%; }
.btk-lib__cov img, .btk-lib__img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.btk-lib__noimg { display: block; width: 100%; height: 100%; background: linear-gradient(160deg, var(--wp--preset--color--accent), var(--wp--preset--color--accent-ink)); }
.btk-lib__fmt { position: absolute; top: 8px; left: 8px; z-index: 2; box-shadow: 0 1px 3px rgba(32,36,45,.18); }
.btk-lib__body { display: flex; flex-direction: column; gap: 7px; margin-top: 12px; min-width: 0; flex: 1 0 auto; }
.btk-lib__t { font-size: 12.5px; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; }
.btk-lib__t a { color: inherit; text-decoration: none; }
.btk-lib__t a:hover { color: var(--wp--preset--color--accent); }
.btk-lib__author { font-size: 11.5px; color: var(--wp--preset--color--muted); }
/* akcje dosuwane do dołu karty (margin-top:auto) → przyciski „Pobierz…"
   równają się w wierszu mimo różnej liczby akcji/statusu na kartach */
.btk-lib__actions { display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 4px; }
.btk-lib__dl.button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: var(--wp--preset--color--accent); color: #fff; border-radius: var(--btk-r-btn-sm); font-size: 12px; font-weight: 700; padding: 8px 12px; text-align: center; }
.btk-lib__dl.button:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-lib__dl.button .btk-i { width: 14px; height: 14px; }
.btk-lib__status { font-size: 11.5px; color: var(--wp--preset--color--muted); line-height: 1.4; }
/* pending/failed = „Wydawca generuje odnośniki…" — kanoniczny loader marki .btk-spin */
.btk-lib__status--generating { display: inline-flex; align-items: center; gap: 6px; }
.btk-lib-empty p { color: var(--wp--preset--color--muted); }

/* status zapowiedzi na półce — termin premiery ma być czytelny, nie „drobnym drukiem" */
.btk-lib__status--premiere { display: inline-flex; align-items: flex-start; gap: 6px; font-size: 12px; color: var(--wp--preset--color--premium); font-weight: 600; }
.btk-lib__status--premiere .btk-i { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 1px; }
/* Dark: granatowe premium (#312E81) na ciemnej karcie by zniknęło — jasne indygo. */
html[data-theme="dark"] .btk-lib__status--premiere { color: #C7CCF5; }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .btk-lib__status--premiere { color: #C7CCF5; }
}

/* strona /odbierz (dostęp gościa do plików) */
.btk-odbierz { max-width: 420px; }
/* półka gościa: nagłówek nad siatką kafli (siatkę niesie .btk-lib) */
.btk-odbierz__shelf > p { margin: 0 0 18px; color: var(--wp--preset--color--muted); }
.btk-odbierz__form label { font-size: 12.5px; font-weight: 600; color: var(--wp--preset--color--muted); }
.btk-odbierz__form input { width: 100%; }
.btk-odbierz__form .button { background: var(--wp--preset--color--accent); color: #fff; border-radius: var(--btk-r-btn); border: 0; padding: 11px 26px; font-weight: 700; cursor: pointer; }

/* przyciski logowania społecznościowego pod formularzem (Nextend przez shortcode) */
.btk-social-login { margin-top: 18px; }
.btk-social-login__sep { display: flex; align-items: center; gap: 12px; color: var(--wp--preset--color--muted); font-size: 12px; margin-bottom: 12px; }
.btk-social-login__sep::before, .btk-social-login__sep::after { content: ""; flex: 1; height: 1px; background: var(--wp--preset--color--line); }

/* zakładka "Połączone konta" (Moje konto) */
.btk-linked { display: grid; gap: 12px; max-width: 560px; }
.btk-linked > p { color: var(--wp--preset--color--muted); font-size: 13px; margin: 0; }
.btk-linked__row {
	display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
	border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card);
	border-radius: var(--btk-r); padding: 12px 16px;
}
.btk-linked__state { font-size: 13.5px; font-weight: 600; }
.btk-linked__state--on { color: var(--wp--preset--color--ok); }
.btk-linked__state--off { color: var(--wp--preset--color--muted); }

/* ---------- Nextend Social Login — normalizacja do brandu ----------
   Checkout (.btk-login__social), formularze logowania (.btk-social-login)
   i „Połączone konta" (.btk-linked__row). Ujednolica geometrię: pełna
   szerokość, równa wysokość, radius marki (14), spójny krój, wyrównana treść.
   Kolory providerów (FB/Google) zostawiamy rozpoznawalne. */
.btk-login__social .nsl-container, .btk-social-login .nsl-container { margin: 0 !important; width: 100%; }
.btk-login__social .nsl-container .nsl-container-buttons,
.btk-social-login .nsl-container .nsl-container-buttons { display: grid; gap: 10px; width: 100%; }
.btk-login__social .nsl-container .nsl-button,
.btk-social-login .nsl-container .nsl-button,
.btk-linked__row .nsl-button {
	width: 100% !important; max-width: none !important; margin: 0 !important;
	min-height: 46px !important; border-radius: var(--btk-r-btn) !important;
	font-family: inherit !important; box-shadow: none !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
.btk-login__social .nsl-container .nsl-button-label-container,
.btk-social-login .nsl-container .nsl-button-label-container,
.btk-linked__row .nsl-button-label-container { font-family: inherit !important; font-weight: 700 !important; }
/* „Połączone konta": przycisk zwarty po prawej stronie wiersza */
.btk-linked__row .nsl-container { width: auto; margin: 0 !important; }
.btk-linked__row .nsl-container .nsl-container-buttons { display: block; }
.btk-linked__row .nsl-button { width: auto !important; min-height: 40px !important; padding: 0 18px !important; }

/* Facebook BEZ niebieskiego tła — jak Google (pkt 6/8): białe tło + delikatna ramka +
   granatowe logo. Nextend daje niebieskie tło inline (background-color:#1877F2) → !important;
   logo to <path fill="#fff"> → CSS fill nadpisuje atrybut prezentacyjny na markę FB. */
.btk-login__social .nsl-button-facebook,
.btk-social-login .nsl-button-facebook,
.btk-linked__row .nsl-button-facebook {
	background-color: var(--wp--preset--color--card) !important;
	border: 0 !important;
}
/* Ikony providerów (Google + Facebook) mniejsze — Nextend renderuje SVG 24px,
   za duże względem tekstu; dopasowujemy do wielkości etykiety (uwaga właściciela). */
.btk-login__social .nsl-button .nsl-button-svg-container svg,
.btk-social-login .nsl-button .nsl-button-svg-container svg,
.btk-linked__row .nsl-button .nsl-button-svg-container svg {
	width: 18px !important; height: 18px !important;
}
.btk-login__social .nsl-button-facebook .nsl-button-svg-container,
.btk-social-login .nsl-button-facebook .nsl-button-svg-container,
.btk-linked__row .nsl-button-facebook .nsl-button-svg-container { background: transparent !important; }
.btk-login__social .nsl-button-facebook .nsl-button-label-container,
.btk-social-login .nsl-button-facebook .nsl-button-label-container,
.btk-linked__row .nsl-button-facebook .nsl-button-label-container { color: var(--wp--preset--color--ink) !important; }
.btk-login__social .nsl-button-facebook svg path,
.btk-social-login .nsl-button-facebook svg path,
.btk-linked__row .nsl-button-facebook svg path { fill: #1877F2 !important; }

/* ---------- karuzele sekcji produktowych (S.S.1) ---------- */
.btk-car { position: relative; }
.btk-car ul.products {
	display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory;
	scrollbar-width: none; padding-bottom: 4px;
}
.btk-car ul.products::-webkit-scrollbar { display: none; }
.btk-car ul.products li.product {
	flex: 0 0 calc((100% - 4 * 18px) / 5); min-width: 205px; scroll-snap-align: start;
}
@media (max-width: 600px) {
	.btk-car ul.products { display: flex !important; }
	.btk-car ul.products li.product { flex-basis: calc((100% - 12px) / 2); min-width: 160px; }
}
.btk-car .btk-rank { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.btk-car .btk-rank::-webkit-scrollbar { display: none; }
.btk-car .btk-rank__item { flex: 0 0 calc((100% - 4 * 16px) / 5); min-width: 220px; scroll-snap-align: start; }
.btk-car__prev, .btk-car__next {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink);
	font-size: 22px; line-height: 1; cursor: pointer; box-shadow: var(--btk-sh);
	display: grid; place-items: center; padding: 0 0 3px;
}
.btk-car__prev { left: -14px; }
.btk-car__next { right: -14px; }
.btk-car__prev:hover, .btk-car__next:hover { color: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
.btk-car__prev:disabled, .btk-car__next:disabled { opacity: 0; pointer-events: none; }
.btk-car__more { display: grid !important; place-items: center; background: var(--wp--preset--color--accent-soft) !important; border-style: dashed !important; }
.btk-car__more a { font-weight: 800; font-size: 15px; color: var(--wp--preset--color--accent); text-decoration: none; text-align: center; padding: 20px; }
.btk-car__more a:hover { text-decoration: underline; }

/* ---------- pasek newslettera nad stopką ----------
   Wariant W1 „Szmaragd" (decyzja właściciela 2026-07-11): cicha karta na
   bardzo lekkim tincie koloru marki, minimalnie — bez ilustracji, akcent
   tylko w „−5%", przycisku i kropce. Kompaktowa (uwaga właściciela 2026-07-11). */
/* węższa karta (uwaga właściciela 2026-07-12) + delikatny deseń rabatowy w tle:
   półprzezroczyste ikony % i kuponu w kolorze marki (zamiast pieczęci) */
.btk-nl {
	text-align: center; max-width: 720px;
	background:
		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170' viewBox='0 0 170 170'><g fill='none' stroke='%23047857' stroke-opacity='.07' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><g transform='rotate(-10 44 46)'><circle cx='44' cy='46' r='17'/><path d='M37 53l14-14'/><circle cx='38.5' cy='40' r='2.6'/><circle cx='49.5' cy='52' r='2.6'/></g><g transform='rotate(8 122 122)'><path d='M96 108h50a4 4 0 0 1 4 4v7a5 5 0 0 0 0 10v7a4 4 0 0 1-4 4H96a4 4 0 0 1-4-4v-7a5 5 0 0 0 0-10v-7a4 4 0 0 1 4-4z'/><path d='M109 111v26' stroke-dasharray='3 5'/></g></g></svg>") 0 0 / 170px 170px,
		color-mix(in srgb, var(--wp--preset--color--accent) 7%, var(--wp--preset--color--card));
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--accent) 20%, var(--wp--preset--color--line));
	color: var(--wp--preset--color--ink);
	border-radius: var(--btk-r-lg); padding: 26px 24px; margin: 34px auto 0;
}
/* „−5%" w głównej czcionce (Onest) — dziedziczy wagę 800 z nagłówka */
.btk-nl__pct { color: var(--wp--preset--color--accent); }
.btk-nl__dot { color: var(--wp--preset--color--accent); }
.btk-nl__main { max-width: 520px; margin: 0 auto; }
.btk-nl__main small { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.btk-nl__main h2 { margin: 6px 0 4px; font-size: 21px; color: var(--wp--preset--color--ink); line-height: 1.25; letter-spacing: -.02em; }
.btk-nl__main > p, .btk-nl__main form > p { margin: 0 0 14px; font-size: 12.5px; color: var(--wp--preset--color--muted); }
.btk-nl form { display: flex; flex-direction: column; gap: 10px; align-items: center; margin-top: 14px; }
.btk-nl__row { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; width: 100%; max-width: 440px; }
.btk-nl input[type="email"] {
	flex: 1; min-width: 210px; border: 1px solid var(--wp--preset--color--line); border-radius: 12px;
	padding: 11px 18px; font-size: 13.5px; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--card);
}
.btk-nl input[type="email"]:focus-visible { outline: 2px solid var(--wp--preset--color--accent); border-color: transparent; }
.btk-nl button { background: var(--wp--preset--color--accent); color: #fff; border: 0; border-radius: var(--btk-r-btn); padding: 11px 24px; font-weight: 800; font-size: 13.5px; cursor: pointer; box-shadow: var(--btk-glow); }
.btk-nl button:hover { background: var(--wp--preset--color--accent-ink); }
.btk-nl__consent { font-size: 10px; line-height: 1.45; color: var(--wp--preset--color--muted); display: flex; gap: 7px; align-items: flex-start; max-width: 440px; text-align: left; }
.btk-nl__consent input { margin-top: 2px; flex: 0 0 auto; }
.btk-nl__msg { font-size: 13px; font-weight: 700; }
.btk-nl__msg.is-err { color: var(--wp--preset--color--promo); }

/* ---------- sekcja "o ksiegarni" (S.S.1: ladniejszy styl) ---------- */
.btk-about {
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r-lg); padding: 30px 34px; margin-top: 34px;
	display: grid; grid-template-columns: 64px 1fr; gap: 22px; align-items: start;
}
.btk-about__icon { font-size: 44px; line-height: 1; }
.btk-about h2 { font-family: var(--btk-serif); margin: 0 0 10px; font-size: 21px; }
.btk-about p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.7; color: var(--wp--preset--color--muted); }
.btk-about p:last-child { margin-bottom: 0; }
.btk-about b { color: var(--wp--preset--color--ink); }
@media (max-width: 700px) { .btk-about { grid-template-columns: 1fr; padding: 22px; } .btk-nl form { flex-basis: 100%; } }

/* blok SEO "o księgarni" pod newsletterem — W1: ciepły pas, sygnatura „oko"
   przy nagłówku (brandbook: karty bez akcentu lewą krawędzią) */
.btk-seo { background: var(--wp--preset--color--warm); border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r-lg); padding: 26px 30px; margin-top: 26px; position: relative; }
.btk-seo h2 { font-family: var(--btk-serif); font-size: 20px; margin: 0 0 12px; padding-left: 28px; position: relative; }
/* sygnatura „oko" (koncentryczne okręgi + kropka) w kolorze marki */
.btk-seo h2::before {
	content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 18px; height: 18px;
	background: var(--wp--preset--color--accent);
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><circle stroke="black" stroke-width="2.4" fill="none" cx="16" cy="16" r="11"/><circle stroke="black" stroke-width="2.4" fill="none" cx="16" cy="16" r="6"/><circle cx="16" cy="16" r="2.2" fill="black"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><circle stroke="black" stroke-width="2.4" fill="none" cx="16" cy="16" r="11"/><circle stroke="black" stroke-width="2.4" fill="none" cx="16" cy="16" r="6"/><circle cx="16" cy="16" r="2.2" fill="black"/></svg>') center / contain no-repeat;
}
.btk-seo__scroll h3 { font-size: 14.5px; margin: 14px 0 6px; color: var(--wp--preset--color--accent); }
.btk-seo__scroll p { font-size: 13px; line-height: 1.7; color: var(--wp--preset--color--muted); }

/* zakładki bestsellerów (Ebooki/Audiobooki) */
.btk-tabs { display: flex; gap: 8px; margin: 0 0 14px; }
.btk-tabs__btn {
	border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--muted); border-radius: 99px; padding: 8px 20px;
	font-size: 13.5px; font-weight: 700; cursor: pointer;
}
.btk-tabs__btn.is-on { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--card); }
.btk-tabs__btn:not(.is-on):hover { border-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); }

/* naprawa kafelka rankingu: rowne wysokosci, tytul/autor przyciete */
.btk-car .btk-rank__item { height: 128px; overflow: hidden; }
.btk-rank__img { flex: 0 0 56px; width: 56px; height: 84px; object-fit: cover; border-radius: 5px; }
.btk-rank__body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.btk-rank__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; font-weight: 700; line-height: 1.3; }
.btk-rank__author { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; font-size: 11.5px; color: var(--wp--preset--color--muted); }
.btk-rank__price { font-weight: 800; font-size: 13.5px; margin-top: auto; }

/* ---------- S.S.3 pkt 3: inne wydania tytułu (ebook <-> audiobook) ---------- */
.btk-pp-editions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 0; }
.btk-pp-editions__t { font-size: 12.5px; font-weight: 600; color: var(--wp--preset--color--muted); margin-right: 2px; }
.btk-pp-edition {
	display: inline-flex; align-items: center; gap: 7px;
	border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card);
	border-radius: var(--btk-r-btn-sm); padding: 8px 14px;
	font-size: 13px; font-weight: 700; color: var(--wp--preset--color--ink); text-decoration: none;
}
.btk-pp-edition small { font-size: 11.5px; font-weight: 600; color: var(--wp--preset--color--muted); }
.btk-pp-edition small .woocommerce-Price-amount { font-size: 11.5px; color: var(--wp--preset--color--accent-ink); }
.btk-pp-edition.is-current { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); cursor: default; }
a.btk-pp-edition:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-ink); }
/* mobile: chipy formatów i przełącznik wydań w zwarte 1–2 linie — etykieta
   „Ten tytuł kupisz też jako…" na własnej linii, chipy zawijają się pod nią */
@media (max-width: 560px) {
	.btk-pp-formats, .btk-pp-editions { gap: 6px; }
	.btk-pp-editions { align-items: center; }
	.btk-pp-editions__t { flex: 1 0 100%; margin: 0 0 2px; }
}

/* ---------- zakładki karty produktu: Opis | Szczegóły | Opinie (2026-07-12) ---------- */
/* clear:both konieczne — galeria i podsumowanie Woo to floaty; bez tego
   zakładki wpływały obok okładki (rozjechana karta, zrzut właściciela 12.07) */
.btk-ptabs { margin-top: 34px; clear: both; }
/* bez overflow-x:auto na desktopie — z ujemnym marginesem przycisku robił
   1px „suwaka" przy wierszu zakładek (zrzut właściciela 12.07) */
.btk-ptabs__nav { display: flex; gap: 2px; border-bottom: 1px solid var(--wp--preset--color--line); }
.btk-ptabs__btn {
	border: 0; background: transparent; cursor: pointer; font-family: inherit;
	padding: 12px 18px; font-size: 14.5px; font-weight: 700; color: var(--wp--preset--color--muted);
	border-bottom: 2.5px solid transparent; white-space: nowrap;
}
@media (max-width: 480px) {
	.btk-ptabs__nav { overflow-x: auto; scrollbar-width: none; }
}
.btk-ptabs__btn:hover { color: var(--wp--preset--color--ink); }
.btk-ptabs__btn.is-on { color: var(--wp--preset--color--accent-ink); border-bottom-color: var(--wp--preset--color--accent); }
.btk-ptab { padding-top: 24px; }
.btk-ptab[hidden] { display: none; }
.btk-ptab.btk-pp-section { margin-top: 0; } /* odstęp daje padding zakładki, nie sekcja */
.btk-ptab .woocommerce-Reviews-title { display: none; } /* etykieta zakładki wystarczy */

/* opinie: bez awatara przy nazwie klienta (uwaga właściciela 2026-07-12) */
.woocommerce #reviews #comments ol.commentlist li img.avatar { display: none; }

/* ============================================================
   W2 „Spotlight serii" — strona główna (wybór właściciela 2026-07-12)
   ============================================================ */

/* pas hero full-bleed na ciepłym tle; wewnątrz oryginalna siatka slider+banery */
/* pas hero bez własnego tła — normalne tło strony (uwaga właściciela 2026-07-13) */
.btk-herowarm { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); background: none; border-bottom: 0; }
/* Układ „constrained" (main.wp-block-group) nadaje bezpośrednim dzieciom
   margin-inline:auto !important, co kasowało full-bleed → pas hero dostawał
   podwójny gutter i uciekał w prawo (usterka mobile 2026-07-13). Wyższa
   specyficzność + !important przywraca full-bleed; POJEDYNCZY gutter (równy
   reszcie treści) daje dopiero .btk-herowarm__in. */
main.wp-block-group > .btk-herowarm { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; max-width: 100vw; }
.btk-herowarm__in { max-width: 1180px; margin: 0 auto; padding: 0 20px 24px; }
@media (max-width: 900px) { .btk-herowarm__in { padding: 0 16px 18px; } }

/* wstęga % promocji w rogu okładki kafla (Omnibus: % od najniższej z 30 dni) */
.btk-covwrap { position: relative; display: block; overflow: hidden; border-radius: 8px; box-shadow: var(--btk-sh-cover); }
.woocommerce ul.products li.product .btk-covwrap img { border-radius: 8px; box-shadow: none; display: block; }
.btk-ribbon {
	position: absolute; top: 12px; right: -34px; z-index: 2; transform: rotate(45deg);
	background: var(--wp--preset--color--promo); color: #fff;
	font-size: 10px; font-weight: 800; letter-spacing: .08em; padding: 3px 36px;
	font-variant-numeric: tabular-nums; pointer-events: none;
}
/* widoki lista/tabela: wrapper znika (display:contents — okładka wraca do
   siatki wiersza), wstęga ukryta */
body.btk-view-list ul.products li.product .btk-covwrap,
body.btk-view-table ul.products li.product .btk-covwrap { display: contents; }
body.btk-view-list ul.products li.product .btk-ribbon,
body.btk-view-table ul.products li.product .btk-ribbon { display: none; }

/* bestsellery: duże karty wzorca B4 (ULTIMATE UI) w karuzeli */
.btk-car .btk-rank--big { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 16px; padding-bottom: 4px; }
.btk-rank--big { grid-template-columns: none; }
.btk-car .btk-rank--big::-webkit-scrollbar { display: none; }
/* Karty bestsellerów w rozmiarze kart „Nowości" (5 na rząd, min 205px) — właściciel
   P.P.2 #5: zdjęcia były za duże, mają być jak w Nowościach. */
.btk-car .btk-rank--big > .btk-bigcard { flex: 0 0 calc((100% - 4 * 18px) / 5); min-width: 205px; scroll-snap-align: start; height: auto; }
@media (max-width: 700px) { .btk-car .btk-rank--big > .btk-bigcard { flex-basis: calc((100% - 12px) / 2); min-width: 160px; } }
.btk-bigcard { background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); overflow: hidden; display: flex; flex-direction: column; transition: transform .15s ease, box-shadow .15s ease; }
.btk-bigcard:hover { transform: translateY(-2px); box-shadow: var(--btk-sh-hover); }
/* okładka wypełnia górę kafla jak w Nowościach (nie mała na ciepłym pasku) */
.btk-bigcard__top { position: relative; display: block; overflow: hidden; }
.btk-bigcard__top img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; }
.btk-bigcard__top .btk-ribbon { top: 14px; right: -32px; }
/* numer rankingu jako czytelny badge w rogu (okładka jest teraz pełna) */
.btk-bigcard__n { position: absolute; left: 8px; top: 8px; z-index: 1; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; background: var(--wp--preset--color--accent-ink); color: #fff; font-size: 13px; font-weight: 800; line-height: 1; box-shadow: 0 1px 4px rgba(32,36,45,.28); }
.btk-bigcard__body { padding: 13px 54px 14px 15px; position: relative; display: flex; flex-direction: column; gap: 5px; flex: 1; }
.btk-bigcard__badges { display: flex; gap: 6px; flex-wrap: wrap; }
.btk-fmtb { border-radius: 99px; padding: 3px 10px; font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.btk-fmtb--ebook { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.btk-fmtb--audiobook { background: var(--wp--preset--color--premium-soft); color: var(--wp--preset--color--premium); }
.btk-fmtb--epress { background: var(--wp--preset--color--amber-soft); color: var(--wp--preset--color--amber); }
.btk-fmtb--best { background: var(--wp--preset--color--amber-soft); color: var(--wp--preset--color--amber); }
.btk-bigcard__t { font-size: 15px; font-weight: 700; line-height: 1.25; color: var(--wp--preset--color--ink); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em; }
.btk-bigcard__t:hover { color: var(--wp--preset--color--accent-ink); }
.btk-bigcard__a { font-size: 12px; color: var(--wp--preset--color--muted); }
.btk-bigcard__price { font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: auto; display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.btk-bigcard__price del { color: var(--wp--preset--color--muted); font-weight: 400; font-size: 12.5px; }
.btk-bigcard__price ins { text-decoration: none; color: var(--wp--preset--color--promo); }
.btk-bigcard__fab {
	position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; border-radius: 50%;
	background: var(--wp--preset--color--accent); color: #fff; display: grid; place-items: center;
	box-shadow: var(--btk-glow); text-decoration: none;
}
.btk-bigcard__fab:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-bigcard__fab .btk-i { width: 18px; height: 18px; }
.btk-bigcard__fab.loading { opacity: .6; }

/* newsletter: niski pasek wyrównany do siatki sekcji (1180, wyśrodkowany).
   Grid 2 kolumny × 2 rzędy: SAM wiersz input+przycisk jest w jednej linii z blokiem
   tekstu (rząd 1, wyśrodkowany), zgoda schodzi pod input (rząd 2) — dzięki temu
   pole e-mail równa się z nagłówkiem, a nie ucieka do góry (2026-07-12). */
.btk-nl { text-align: left; max-width: 1180px; margin-left: auto; margin-right: auto; padding: 24px 32px; }
.btk-nl__main {
	max-width: none; margin: 0;
	/* kolumny wg treści + justify-content:center — tekst i formularz wyśrodkowane
	   RAZEM w poziomie (bez rozpychania do krawędzi z pustką w środku) */
	display: grid; grid-template-columns: minmax(0, 440px) 440px; justify-content: center; column-gap: 56px; align-items: center;
}
/* FSE: wpautop w szablonie owija treść shortcode'a w stray <p>/<br>, który rozbijał
   grid (zgoda lądowała w kolumnie 1 pod tekstem zamiast pod inputem, +93px pustki).
   Czynimy stray <p> przezroczystymi i chowamy <br> — zgoda wraca na swoje miejsce. */
.btk-nl__main > p, .btk-nl form p { display: contents; }
.btk-nl form br { display: none; }
.btk-nl__text { grid-column: 1; grid-row: 1 / 3; align-self: center; }
.btk-nl__text h2 { font-size: 22px; margin: 6px 0 8px; }
.btk-nl__text p { margin: 0; font-size: 12.5px; color: var(--wp--preset--color--muted); }
/* form renderuje się „przezroczyście" — jego dzieci stają się komórkami grida */
.btk-nl form { display: contents; }
.btk-nl__row { grid-column: 2; grid-row: 1; align-self: center; flex-wrap: nowrap; justify-content: flex-start; width: auto; max-width: none; margin: 0; }
.btk-nl__consent { grid-column: 2; grid-row: 2; align-self: start; max-width: none; margin-top: 10px; }
.btk-nl__msg { grid-column: 2; grid-row: 3; }
@media (max-width: 820px) {
	.btk-nl__main { grid-template-columns: 1fr; }
	.btk-nl__text { grid-row: 1; }
	.btk-nl__row { grid-column: 1; grid-row: 2; margin-top: 8px; }
	.btk-nl__consent { grid-column: 1; grid-row: 3; }
	.btk-nl__msg { grid-column: 1; grid-row: 4; }
}
/* Telefon: pole e-mail i przycisk w pionie (przycisk POD polem) — na wąskim
   ekranie „Odbieram rabat" ściskał się obok inputu i łamał na 2 linie (2026-07-20). */
@media (max-width: 560px) {
	.btk-nl__row { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 10px; }
	.btk-nl__row input[type="email"] { width: 100%; min-width: 0; }
	.btk-nl__row button { width: 100%; }
}

/* ============================================================
   Loadery i szkielety — port z ULTIMATE UI (29-ultimate-ui.html, sekcja B11).
   Kanoniczne loadery marki: spinner, oko-loader (sygnatura marki), kropki,
   pasek nieokreślony, skeleton shimmer. Respektują prefers-reduced-motion.
   ============================================================ */
.btk-spin {
	width: 26px; height: 26px; border-radius: 50%; flex: none;
	border: 3.5px solid var(--wp--preset--color--accent-soft);
	border-top-color: var(--wp--preset--color--accent);
	animation: btk-sp 1s linear infinite;
}
@keyframes btk-sp { to { transform: rotate(360deg); } }
/* spinner wewnątrz przycisku primary (na ciemnym tle) */
.btk-spin--btn { width: 16px; height: 16px; border-width: 2.5px; border-color: rgba(255,255,255,.35); border-top-color: #fff; }
/* wariant mały — statusy inline (np. „Wydawca generuje odnośniki…" w bibliotece) */
.btk-spin--sm { width: 16px; height: 16px; border-width: 2.5px; }

/* oko-loader — sygnatura marki: koncentryczne okręgi „b." + kropka, pulsują */
.btk-eyeload { display: inline-flex; flex: none; animation: btk-pulse 1.4s ease-in-out infinite; }
.btk-eyeload svg { width: 30px; height: 30px; display: block; }
@keyframes btk-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .45; transform: scale(.88); } }

/* trzy skaczące kropki (krótkie akcje inline) */
.btk-dotl { display: inline-flex; gap: 5px; align-items: center; }
.btk-dotl span { width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--accent); display: inline-block; animation: btk-dt 1.2s ease-in-out infinite; }
.btk-dotl span:nth-child(2) { animation-delay: .15s; }
.btk-dotl span:nth-child(3) { animation-delay: .3s; }
@keyframes btk-dt { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-4px); } }

/* pasek nieokreślony (np. „Przygotowujemy plik…") */
.btk-indet { height: 6px; border-radius: 3px; background: var(--wp--preset--color--warm); overflow: hidden; position: relative; }
.btk-indet i { position: absolute; height: 100%; width: 35%; border-radius: 3px; background: var(--wp--preset--color--accent); animation: btk-ind 1.3s ease-in-out infinite; }
@keyframes btk-ind { 0% { left: -35%; } 100% { left: 100%; } }

/* skeleton (shimmer) — placeholder treści ładowanej AJAX-em */
.btk-skel { background: linear-gradient(90deg, var(--wp--preset--color--warm) 25%, #F3EDE2 50%, var(--wp--preset--color--warm) 75%); background-size: 200% 100%; animation: btk-sh 1.4s infinite; border-radius: 8px; }
@keyframes btk-sh { to { background-position: -200% 0; } }

@media (prefers-reduced-motion: reduce) {
	.btk-spin, .btk-eyeload, .btk-dotl span, .btk-indet i, .btk-skel { animation: none; }
	.btk-indet i { left: 0; width: 100%; opacity: .5; }
}

/* ============================================================
   EmptyState — wspólny wzorzec stanu pustego (ULTIMATE UI):
   ikona wyciszona + tytuł + tekst + CTA. Używany m.in. w pustym koszyku,
   pustej bibliotece, pustej liście życzeń, braku zamówień.
   ============================================================ */
.btk-empty { text-align: center; max-width: 460px; margin: 40px auto; padding: 20px; }
.btk-empty__ic { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 14px; color: var(--btk-line-2); }
.btk-empty__ic svg, .btk-empty__ic .btk-i { width: 56px; height: 56px; stroke-width: 1.8; }
.btk-empty h2 { font-size: 20px; margin: 0 0 6px; letter-spacing: -.02em; }
.btk-empty p { color: var(--wp--preset--color--muted); font-size: 13.5px; line-height: 1.6; margin: 0 0 18px; }
.btk-empty .button, .btk-empty .btk-btn {
	display: inline-flex; align-items: center; gap: 8px; background: var(--wp--preset--color--accent);
	color: #fff; border: 0; border-radius: var(--btk-r-btn); padding: 12px 26px; font-weight: 700;
	font-size: 14.5px; text-decoration: none; box-shadow: var(--btk-glow); cursor: pointer;
}
.btk-empty .button:hover, .btk-empty .btk-btn:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-empty__alt { margin: 28px 0 0; font-size: 13px; }
.btk-empty__alt a { color: var(--wp--preset--color--accent); font-weight: 700; }
.btk-empty__alt a:hover { text-decoration: underline; }
.btk-empty--cart { margin: 64px auto; }

/* ============================================================
   MOJE KONTO + LOGOWANIE (makieta konto-klienta-warianty, B8/B9/B11):
   szkielet AccountNav (B8), kokpit D2, logowanie L3 „Split brand".
   Tylko tokeny theme.json, jeden krój Onest, ikony z inc/icons.php.
   ============================================================ */

/* Tytuł strony „Moje konto" zbędny — kokpit ma powitanie, logowanie ma własny
   nagłówek w karcie; ukrywamy H1 na wszystkich ekranach konta (zalogowany i gość). */
.woocommerce-account .wp-block-post-title { display: none; }

/* ---------- szkielet dwukolumnowy (nav + treść) ---------- */
.btk-acc { display: grid; grid-template-columns: 220px 1fr; gap: 22px; align-items: start; margin: 8px 0 48px; }
.btk-acc-body { min-width: 0; }
@media (max-width: 899px) { .btk-acc { grid-template-columns: 1fr; gap: 16px; } }

/* Woo (woocommerce-layout.css) narzuca nav/treści float+% szerokości
   (nav 30% float:left, treść 68% float:right) — łamie nasz grid: treść wychodziła
   węższa niż kolumna. Zerujemy, układem steruje wyłącznie grid (usterka 2026-07-13). */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
/* Konto na pełną szerokość treści sklepu (contentSize 1180, spójnie z nagłówkiem/
   stopką). Właściwa przyczyna „za wąsko" to floaty Woo wyżej, nie sam contentSize. */
.woocommerce-account .wp-block-post-content { max-width: 1180px; }
.woocommerce-account .btk-acc { max-width: 1180px; margin-inline: auto; }
/* Woo blocktheme dorzuca podkreślenie linku aktywnej/hover pozycji — u nas sygnałem
   jest tint tła, nie underline. */
.btk-acc-nav li.is-active a, .btk-acc-nav li a:hover { text-decoration: none; }

/* sidebar — AccountNav */
.btk-acc-nav { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 16px; }
.btk-acc-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
/* WooCommerce dokłada do <li> menu własny margines/obramowanie o WYŻSZEJ
   specyficzności (.woocommerce-account …ul li) → mój reset przegrywał; wymuszamy
   !important, o rozstaw dba gap listy (usterka 2026-07-13, runda 2). */
.btk-acc-nav__list li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.btk-acc-user { display: flex; gap: 10px; align-items: center; padding: 4px 12px 14px; border-bottom: 1px solid var(--wp--preset--color--line); margin-bottom: 6px; }
.btk-acc-ava { width: 40px; height: 40px; border-radius: 50%; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex: none; }
.btk-acc-user__meta { min-width: 0; }
.btk-acc-user__meta b { display: block; font-size: 13.5px; line-height: 1.2; letter-spacing: -.01em; }
/* „czytelnik od 2026" w jednej linii — bez łamania po każdym słowie (usterka 2026-07-13). */
.btk-acc-user__meta span { font-size: 11px; color: var(--wp--preset--color--muted); white-space: nowrap; }
/* Pozycja menu rośnie z treścią (etykieta może być dwuliniowa) — tło aktywnej/hover
   ma zawsze objąć CAŁĄ etykietę: brak stałej wysokości, element blokowy (flex). */
.btk-acc-nav__link { display: flex; align-items: center; gap: 10px; padding: 8px 13px; border-radius: 11px; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: var(--wp--preset--color--muted); text-decoration: none; }
.btk-acc-nav__ic { width: 16px; height: 16px; flex: none; }
.btk-acc-nav__link:hover { background: var(--wp--preset--color--warm); color: var(--wp--preset--color--ink); }
.btk-acc-nav .is-active > .btk-acc-nav__link { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.btk-acc-nav__link--out { color: var(--wp--preset--color--err); margin-top: 6px; border-top: 1px solid var(--wp--preset--color--line); border-radius: 0 0 11px 11px; padding-top: 14px; }
.btk-acc-nav__link--out:hover { background: var(--wp--preset--color--promo-soft); color: var(--wp--preset--color--err); }
@media (max-width: 899px) {
	.btk-acc-nav { flex-direction: row; overflow-x: auto; position: static; gap: 6px; padding-bottom: 4px; }
	.btk-acc-nav__list { flex-direction: row; gap: 6px; }
	.btk-acc-user { display: none; }
	.btk-acc-nav__link { white-space: nowrap; border: 1.5px solid var(--btk-line-2); }
	.btk-acc-nav__link--out { border: 1.5px solid var(--wp--preset--color--promo-soft); border-radius: 11px; padding-top: 10px; margin-top: 0; }
}

/* ---------- nagłówki treści + sekcje kokpitu ---------- */
.btk-acc-head { margin-bottom: 18px; }
.btk-acc-head h1 { font-size: clamp(22px, 3.4vw, 30px); font-weight: 800; letter-spacing: -.02em; }
.btk-acc-sub { color: var(--wp--preset--color--muted); font-size: 14px; margin: 4px 0 0; }
.btk-acc-sec { margin-top: 30px; }
.btk-acc-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.btk-acc-h2 { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 800; letter-spacing: -.02em; }
.btk-acc-h2 .btk-i { color: var(--wp--preset--color--accent); width: 18px; height: 18px; }
.btk-acc-more { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--accent); text-decoration: none; }
.btk-acc-more .btk-i { width: 14px; height: 14px; }
.btk-acc-more:hover { color: var(--wp--preset--color--accent-ink); }

/* ---------- kokpit: kafle skrótów (podsumowanie, nie duplikat zakładek) ---------- */
/* Kafle rozszerzają/zwężają się do szerokości ekranu (auto-fit) — bez uciekania
   treści na wąskich widokach; poniżej 460px zawsze jedna kolumna. */
.btk-acc-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-top: 4px; }
@media (max-width: 460px) { .btk-acc-tiles { grid-template-columns: 1fr; } }
.btk-acc-tile {
	display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px;
	background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--btk-r-lg); padding: 16px 18px; text-decoration: none; color: inherit;
	min-width: 0;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.btk-acc-tile:hover { transform: translateY(-2px); box-shadow: var(--btk-sh-hover); border-color: var(--btk-line-2); }
.btk-acc-tile__ic { grid-row: 1 / 3; width: 44px; height: 44px; border-radius: 12px; background: var(--wp--preset--color--accent-soft); display: grid; place-items: center; }
.btk-acc-tile__ic .btk-i { width: 22px; height: 22px; color: var(--wp--preset--color--accent-ink); }
.btk-acc-tile__n { font-size: 26px; font-weight: 800; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; align-self: end; min-width: 0; }
.btk-acc-tile__lbl { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--muted); min-width: 0; overflow-wrap: anywhere; }
.btk-acc-tile__go { grid-column: 1 / 3; display: inline-flex; align-items: center; gap: 5px; margin-top: 12px; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--accent); min-width: 0; overflow-wrap: anywhere; }
.btk-acc-tile__go .btk-i { width: 14px; height: 14px; }
.btk-acc-tile:hover .btk-acc-tile__go { color: var(--wp--preset--color--accent-ink); }

/* ---------- kokpit: teaser „Ostatnio w bibliotece" (same okładki, bez akcji) ---------- */
.btk-acc-teaser { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 600px) { .btk-acc-teaser { grid-template-columns: repeat(3, 1fr); gap: 10px; } }
.btk-acc-teaser__item { text-decoration: none; color: inherit; display: block; }
.btk-acc-teaser__item img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 8px; box-shadow: var(--btk-sh-cover); display: block; }
.btk-acc-teaser__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.3; }
.btk-acc-teaser__item:hover .btk-acc-teaser__t { color: var(--wp--preset--color--accent); }

/* ---------- tabbar formatów biblioteki ---------- */
.btk-tabbar { display: flex; gap: 4px; background: var(--wp--preset--color--warm); border-radius: 12px; padding: 4px; width: max-content; max-width: 100%; flex-wrap: wrap; margin-bottom: 16px; }
.btk-tabbar button { padding: 8px 15px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--wp--preset--color--muted); border: 0; background: transparent; cursor: pointer; font-family: inherit; }
.btk-tabbar button.is-on { background: var(--wp--preset--color--card); color: var(--wp--preset--color--accent-ink); box-shadow: 0 1px 3px rgba(32,36,45,.1); font-weight: 700; }
.btk-tabbar button:not(.is-on):hover { color: var(--wp--preset--color--ink); }

/* ---------- tabela zamówień (B8) ---------- */
.btk-tb { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--wp--preset--color--card); border-radius: 14px; overflow: hidden; border: 1px solid var(--wp--preset--color--line); }
.btk-tb th { font-size: 10.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--wp--preset--color--muted); background: var(--wp--preset--color--warm); text-align: left; padding: 10px 14px; }
.btk-tb td { padding: 11px 14px; border-top: 1px solid var(--wp--preset--color--line); vertical-align: middle; }
.btk-tb tbody tr:hover td { background: var(--wp--preset--color--warm); }
.btk-tb__right { text-align: right; }
.btk-tb__muted { color: var(--wp--preset--color--muted); }
.btk-tb__num { font-variant-numeric: tabular-nums; }
.btk-tb__link { color: var(--wp--preset--color--accent); font-weight: 700; text-decoration: none; white-space: nowrap; }
.btk-tb__link:hover { color: var(--wp--preset--color--accent-ink); text-decoration: underline; }
@media (max-width: 600px) { .btk-tb { font-size: 12px; } .btk-tb th, .btk-tb td { padding: 8px 10px; } }

/* tabela zamówień Woo — nie przycinaj na wąskim (poziomy scroll gdy trzeba) */
.woocommerce-account .woocommerce-orders-table { width: 100%; }
.woocommerce-account .woocommerce-orders-table__cell { overflow-wrap: anywhere; }

/* ---------- akcje posprzedażowe na stronie „Szczegóły zamówienia" ---------- */
.btk-order-actions { margin: 22px 0 6px; }
.btk-order-actions__h { font-size: 15px; font-weight: 700; margin: 0 0 12px; }
.btk-order-actions__row { display: flex; flex-wrap: wrap; gap: 10px; }
.btk-oa-btn {
	display: inline-flex; align-items: center; gap: 7px; padding: 10px 16px; border-radius: 14px;
	font-size: 13.5px; font-weight: 700; text-decoration: none; cursor: pointer;
	border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--ink); transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.btk-oa-btn .btk-i { width: 16px; height: 16px; }
.btk-oa-btn:hover { border-color: var(--btk-line-2); transform: translateY(-1px); }
.btk-oa-btn--primary { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); color: #fff; }
.btk-oa-btn--primary:hover { background: var(--wp--preset--color--accent-ink); border-color: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-oa-btn--muted { background: var(--wp--preset--color--warm); color: var(--wp--preset--color--muted); cursor: not-allowed; opacity: .8; }
.btk-oa-btn--muted:hover { transform: none; border-color: var(--wp--preset--color--line); }
.btk-order-actions__note { margin: 10px 0 0; font-size: 12.5px; color: var(--wp--preset--color--muted); }

/* ---------- powiadomienia zapisu na koncie (sukces = tint szmaragd, błąd = wino) ---------- */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-info { border: 0; border-radius: 14px; padding: 13px 16px; font-size: 13px; list-style: none; margin: 0 0 16px; box-shadow: none; }
.woocommerce-account .woocommerce-message { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.woocommerce-account .woocommerce-error { background: var(--wp--preset--color--promo-soft); color: var(--wp--preset--color--err); }
.woocommerce-account .woocommerce-info { background: var(--wp--preset--color--warm); color: var(--wp--preset--color--muted); }
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-info::before { display: none; }

/* ---------- Konto: pola i przyciski wg marki (były surowe Woo — pkt 1, 4a, 4b) ---------- */
/* „Dane do faktury" (btk-invoice-book): pola brand jak checkout/logowanie — wcześniej
   ~30px surowe, niewyrównane z 44px przyciskiem GUS (pkt 4b). */
.btk-invbook .btk-inp {
	width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--btk-line-2);
	border-radius: 12px; font-family: inherit; font-size: 14px; color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--card); outline: none; transition: border-color .12s, box-shadow .12s;
}
.btk-invbook select.btk-inp { height: 44px; }
.btk-invbook textarea.btk-inp { height: auto; min-height: 90px; padding: 10px 14px; }
.btk-invbook .btk-inp:focus { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }

/* Przyciski marki na koncie: „Dodaj/Zapisz zestaw" (faktury) + akcje listy zamówień
   („Zobacz szczegóły", natywne „Zapłać") — Woo default był bez brandu (pkt 1, 4a). */
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-orders-table__cell .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 7px;
	background: var(--wp--preset--color--accent); color: #fff; border: 0;
	border-radius: var(--btk-r-btn); padding: 11px 18px; font-weight: 700; font-size: 13.5px;
	line-height: 1; box-shadow: none; text-decoration: none; transition: background .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account .woocommerce-orders-table__cell .button:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
/* „Anuluj" (nieopłacone zamówienie) — akcja destrukcyjna: lekka czerwień marki (wino),
   nie szmaragd. Wyższa specyficzność niż reguła ogólna .button wyżej. */
.woocommerce-account .woocommerce-MyAccount-content .button.cancel,
.woocommerce-account .woocommerce-orders-table__cell .button.cancel {
	background: color-mix(in srgb, var(--wp--preset--color--err) 9%, var(--wp--preset--color--card));
	color: var(--wp--preset--color--err);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--err) 22%, transparent);
}
.woocommerce-account .woocommerce-MyAccount-content .button.cancel:hover,
.woocommerce-account .woocommerce-orders-table__cell .button.cancel:hover {
	background: color-mix(in srgb, var(--wp--preset--color--err) 15%, var(--wp--preset--color--card));
	color: var(--wp--preset--color--err);
}

/* ---------- Usunięcie konta (RODO, Szczegóły konta) ---------- */
.btk-acc-delete { margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--wp--preset--color--line); }
.btk-acc-delete h3 { font-size: 15px; font-weight: 700; margin: 0 0 8px; color: var(--wp--preset--color--err); }
.btk-acc-delete__lead { font-size: 13.5px; margin: 0 0 8px; }
.btk-acc-delete__legal { font-size: 12.5px; line-height: 1.5; color: var(--wp--preset--color--muted); background: var(--wp--preset--color--warm); border-radius: 10px; padding: 10px 12px; margin: 0 0 14px; }
.btk-acc-delete__form { max-width: 420px; display: grid; gap: 12px; }
.btk-acc-delete__form .btk-field { margin: 0; }
.btk-acc-delete__form label { font-size: 12.5px; font-weight: 700; }
.btk-acc-delete .btk-inp { width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--btk-line-2); border-radius: 12px; font-family: inherit; font-size: 14px; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--card); outline: none; }
.btk-acc-delete .btk-inp:focus { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }
.btk-acc-delete__confirm { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; font-weight: 400; }
.btk-acc-delete__confirm input { margin-top: 2px; flex: none; }
.btk-acc-delete__btn.button { justify-self: start; background: color-mix(in srgb, var(--wp--preset--color--err) 10%, var(--wp--preset--color--card)) !important; color: var(--wp--preset--color--err) !important; border: 1px solid color-mix(in srgb, var(--wp--preset--color--err) 25%, transparent) !important; }
.btk-acc-delete__btn.button:hover { background: var(--wp--preset--color--err) !important; color: #fff !important; }
.btk-account-deleted-banner { max-width: 1180px; margin: 16px auto 0; padding: 14px 18px; border-radius: 14px; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); font-size: 14px; text-align: center; }

/* ============================================================
   LOGOWANIE L3 „Split brand" (/logowanie → /moje-konto/ dla gościa)
   ============================================================ */
/* karta logowania wyśrodkowana na ekranie (poziomo max-width+auto, pionowo grid) */
.btk-login-page { max-width: 900px; margin: 0 auto; padding: 32px 0 56px; min-height: 68vh; display: grid; align-content: center; }
.btk-authcard { display: grid; grid-template-columns: .9fr 1.1fr; border-radius: 20px; overflow: hidden; border: 1px solid var(--wp--preset--color--line); box-shadow: var(--btk-sh); background: var(--wp--preset--color--card); }
.btk-authcard__brand { position: relative; overflow: hidden; background: linear-gradient(165deg, var(--wp--preset--color--accent), var(--wp--preset--color--accent-ink)); color: #fff; padding: 34px 30px; display: flex; flex-direction: column; gap: 20px; }
/* deseń „b." (kropki) — jak w B9/mockupie; półprzezroczysty, dekoracyjny */
.btk-authcard__brand::before { content: ""; position: absolute; inset: 0; opacity: .13; z-index: 0; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'120'%20height%3D'120'%3E%3Cg%20fill%3D'none'%20stroke%3D'%23ffffff'%20stroke-width%3D'2'%20opacity%3D'0.5'%3E%3Ccircle%20cx%3D'24'%20cy%3D'30'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'24'%20cy%3D'30'%20r%3D'3.4'%20fill%3D'%23ffffff'%20stroke%3D'none'%2F%3E%3Ccircle%20cx%3D'90'%20cy%3D'18'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'90'%20cy%3D'18'%20r%3D'3.4'%20fill%3D'%23ffffff'%20stroke%3D'none'%2F%3E%3Ccircle%20cx%3D'62'%20cy%3D'72'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'62'%20cy%3D'72'%20r%3D'3.4'%20fill%3D'%23ffffff'%20stroke%3D'none'%2F%3E%3Ccircle%20cx%3D'104'%20cy%3D'96'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'104'%20cy%3D'96'%20r%3D'3.4'%20fill%3D'%23ffffff'%20stroke%3D'none'%2F%3E%3Ccircle%20cx%3D'16'%20cy%3D'100'%20r%3D'9'%2F%3E%3Ccircle%20cx%3D'16'%20cy%3D'100'%20r%3D'3.4'%20fill%3D'%23ffffff'%20stroke%3D'none'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); }
.btk-authcard__logo { position: relative; z-index: 1; font-size: 20px; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.btk-authcard__logo em { font-style: normal; opacity: .8; }
.btk-authcard__slogan { position: relative; z-index: 1; font-size: 23px; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; margin: 0; }
.btk-authcard__benefits { position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.btk-authcard__benefits li { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; }
.btk-authcard__bic { width: 34px; height: 34px; border-radius: 10px; background: rgba(255,255,255,.16); display: grid; place-items: center; flex: none; }
.btk-authcard__bic .btk-i { width: 18px; height: 18px; color: #fff; }
.btk-authcard__benefits li b { display: block; font-size: 14px; }
.btk-authcard__benefits li span span { opacity: .85; }

.btk-authcard__form { background: var(--wp--preset--color--card); padding: 30px; }
.btk-authcard__h { font-size: 18px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 18px; }
.btk-authtabs { display: flex; gap: 4px; background: var(--wp--preset--color--warm); border-radius: 12px; padding: 4px; margin-bottom: 20px; }
.btk-authtabs button { flex: 1; padding: 9px; border-radius: 9px; font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--muted); border: 0; background: transparent; cursor: pointer; font-family: inherit; }
.btk-authtabs button.is-on { background: var(--wp--preset--color--card); color: var(--wp--preset--color--accent-ink); box-shadow: 0 1px 3px rgba(32,36,45,.1); }
.btk-authpane { display: none; }
.btk-authpane.is-on { display: block; }

/* pola formularza logowania/rejestracji */
.btk-authcard__form .btk-field { margin: 0 0 14px; padding: 0; }
.btk-authcard__form .btk-field > label { display: block; font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ink); margin-bottom: 6px; }
.btk-authcard__form .btk-inp { width: 100%; height: 44px; padding: 0 14px; border: 1.5px solid var(--btk-line-2); border-radius: 12px; font-family: inherit; font-size: 14px; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--card); outline: none; transition: border-color .12s, box-shadow .12s; }
.btk-authcard__form .btk-inp:focus { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft); }
.btk-authcard__form .btk-help { display: block; font-size: 11.5px; color: var(--wp--preset--color--muted); margin-top: 6px; }
.btk-authrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 4px 0 16px; }
.btk-remember { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--wp--preset--color--muted); cursor: pointer; }
.btk-remember input { width: 17px; height: 17px; accent-color: var(--wp--preset--color--accent); }
.btk-forgot { font-size: 12.5px; color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.btk-forgot:hover { text-decoration: underline; }
.btk-authbtn.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; border: 0; border-radius: var(--btk-r-btn); padding: 0; height: 46px; font-weight: 700; font-size: 14.5px; background: var(--wp--preset--color--accent); color: #fff; box-shadow: var(--btk-glow); cursor: pointer; }
.btk-authbtn.button:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-authbtn .btk-i { width: 17px; height: 17px; }
.btk-authcard__form .woocommerce-form-row { margin: 0; }

/* zgody rejestracji: regulamin (wymagany) + newsletter (opcjonalny) + tekst RODO */
.btk-authcard__form .btk-reg-consent { margin: 0 0 10px; }
.btk-authcard__form .btk-reg-consent .btk-remember { align-items: flex-start; font-size: 12.5px; line-height: 1.45; }
.btk-authcard__form .btk-reg-consent input { margin-top: 1px; flex: none; }
.btk-authcard__form .btk-reg-consent a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.btk-authcard__form .btk-reg-consent a:hover { text-decoration: underline; }
.btk-authcard__form .woocommerce-privacy-policy-text p { font-size: 11.5px; color: var(--wp--preset--color--muted); line-height: 1.5; margin: 2px 0 12px; }
.btk-authcard__form .woocommerce-privacy-policy-text a { color: var(--wp--preset--color--accent); }

/* separator „albo" + social (Nextend) już wpięte przez inc/social-login.php */
.btk-authpane .btk-social-login { margin-top: 16px; }

/* Przyciski logowania społecznościowego (Nextend) — kolory marek rozpoznawalne,
   geometria znormalizowana (wyżej). WYJĄTEK: Facebook bez niebieskiego kafla —
   białe tło + granatowe logo jak Google (uwaga właściciela Karta-8 pkt 6/8,
   nadpisanie w sekcji „Nextend Social Login — normalizacja"). */

@media (max-width: 720px) {
	.btk-authcard { grid-template-columns: 1fr; }
	.btk-authcard__brand { order: 2; }
	.btk-authcard__form { order: 1; }
}

/* ============================================================================
   Tpay — front płatności (A.D.5 pkt 5.16)
   Wtyczka renderuje szybki przelew jako listę kafli pełnej szerokości (siatka
   z min. kolumną 200 px nie mieści się w naszej wąskiej kolumnie płatności),
   a BLIK i zgody w obcym stylu. Przestylowujemy je BEZ dotykania wtyczki
   (będzie aktualizowana) — kotwica na #tpay-payment / .payment_method_tpayblik
   bije reguły wtyczki bez wszędobylskiego !important.
   ⚠️ AKTUALIZACJA WTYCZKI TPAY: sprawdzić, czy klasy się nie zmieniły.
   ============================================================================ */

/* --- Szybki przelew: siatka logotypów zamiast listy --- */
#tpay-payment.tpay-pbl-container {
	max-width: 100%;
	padding: 0;
	background: transparent;
	border: 0 !important; /* wtyczka: border-color:#d50000 !important */
}
#tpay-payment .separator { display: none; } /* czerwone kreski Tpay */

#tpay-payment .tpay-pbl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	padding: 0;
	width: 100%;
}
/* Zwinięte: pokazujemy 2 rzędy (6 banków), resztę odsłania „Pokaż wszystkie”. */
#tpay-payment.btk-tpay--collapsed .tpay-item:nth-child(n+7) { display: none; }

#tpay-payment .tpay-pbl .tpay-item { width: 100%; margin: 0; cursor: pointer; }
#tpay-payment .tpay-pbl .tpay-item:only-child { max-width: none; }

/* Kafel: logo u góry, nazwa pod spodem (decyzja właściciela). */
#tpay-payment .tpay-item > div > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	height: 100%;
	min-height: 74px;
	padding: 9px 6px;
	border: 1.5px solid var(--wp--preset--color--line, #e2e6ee);
	border-radius: 12px;
	background: var(--wp--preset--color--card, #fff);
	transition: border-color .15s ease, box-shadow .15s ease;
}
#tpay-payment .tpay-item:hover > div > div {
	border-color: var(--wp--preset--color--accent, #047857);
}
/* Zaznaczony bank — akcent marki zamiast niebieskiego z wtyczki. */
#tpay-payment .tpay-item input:checked + div > div {
	border: 2px solid var(--wp--preset--color--accent, #047857) !important;
	box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft, #d1fae5) !important;
}
#tpay-payment .tpay-group-logo-holder { height: auto; }
#tpay-payment .tpay-group-logo-holder img {
	width: auto !important;   /* wtyczka: width:90px */
	height: auto !important;  /* wtyczka: height:auto już jest */
	max-width: 66px;
	max-height: 26px;
	object-fit: contain;
}
#tpay-payment .tpay-item .name {
	font-size: 10.5px;
	line-height: 1.25;
	text-align: center;
	color: var(--wp--preset--color--muted, #6b7280);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Przycisk „Pokaż wszystkie” (wstawiany przez checkout.js). */
.btk-tpay-more {
	appearance: none;
	margin: 10px 0 0;
	width: 100%;
	padding: 9px 12px;
	border: 1.5px dashed var(--wp--preset--color--line, #e2e6ee);
	border-radius: 10px;
	background: transparent;
	color: var(--wp--preset--color--accent, #047857);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.btk-tpay-more:hover { border-color: var(--wp--preset--color--accent, #047857); }

/* --- BLIK: pole kodu i etykiety pod nasz układ --- */
/* Wtyczka wymusza min-width:350px na wierszach BLIK (alias + pole kodu), co
   w naszej wąskiej kolumnie płatności rozpycha box poza siatkę. Zdejmujemy
   to minimum — specyficzność .payment_method_tpayblik .tpay-blik0 <el> (0,3,0)
   bije regułę wtyczki (0,2,0). */
.payment_method_tpayblik .tpay-blik0,
.payment_method_tpayblik .tpay-blik0 .tpay_blik-payment-form,
.payment_method_tpayblik .tpay-blik0 .tpay_blik-payment-alias {
	min-width: 0;
	max-width: 100%;
}
.payment_method_tpayblik .separator { display: none; }
.payment_method_tpayblik .tpay_blik-payment-form .bottom > div {
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 6px;
}
.payment_method_tpayblik #blik0-code {
	width: 100%;
	max-width: 220px;
	box-sizing: border-box;
	border: 1.5px solid var(--wp--preset--color--line, #e2e6ee);
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 22px;
	letter-spacing: 6px;
	text-align: center;
	font-variant-numeric: tabular-nums;
	background: var(--wp--preset--color--card, #fff);
	color: inherit;
}
.payment_method_tpayblik #blik0-code:focus {
	border-color: var(--wp--preset--color--accent, #047857);
	outline: 2px solid transparent;
	box-shadow: 0 0 0 3px var(--wp--preset--color--accent-soft, #d1fae5);
}
.payment_method_tpayblik .blik-label { font-size: 13.5px; font-weight: 600; }
.payment_method_tpayblik .show-blik-info { font-size: 12.5px; color: var(--wp--preset--color--muted, #6b7280); }

/* Metody Tpay — spójny akcent linków (zgody, „Przeczytaj cały tekst”). */
.payment_method_tpaypbl a,
.payment_method_tpayblik a,
.payment_method_tpaysf a { color: var(--wp--preset--color--accent, #047857); }

/* Mobile: 3 kafle nadal się mieszczą; poniżej 340 px daj im odetchnąć. */
@media (max-width: 360px) {
	#tpay-payment .tpay-pbl { gap: 6px; }
	#tpay-payment .tpay-item .name { font-size: 10px; }
}

/* ------------------------------------------------------------------
   FAQ przeniesione z TrisoShop (etap 2) — akordeon na <details>.
   Stary sklep rozwijał odpowiedzi jQuery; po migracji robi to przeglądarka,
   więc styl musi sam nieść informację „to się klika”.
   ------------------------------------------------------------------ */
.btk-faq { margin: 0 0 28px; }
.btk-faq__item {
	border-bottom: 1px solid var(--wp--preset--color--line, #e5e7eb);
}
.btk-faq__item > summary {
	cursor: pointer;
	list-style: none;
	padding: 14px 34px 14px 0;
	position: relative;
	font-weight: 600;
	line-height: 1.45;
}
.btk-faq__item > summary::-webkit-details-marker { display: none; }
.btk-faq__item > summary::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	transition: transform .18s ease;
	opacity: .55;
}
.btk-faq__item[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
.btk-faq__item > summary:hover { color: var(--wp--preset--color--accent, #047857); }
.btk-faq__item > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #047857);
	outline-offset: 2px;
	border-radius: 4px;
}
.btk-faq__item > *:not(summary) { margin: 0 0 14px; padding-left: 2px; }
.btk-faq__item > *:last-child { margin-bottom: 18px; }

@media (prefers-reduced-motion: reduce) {
	.btk-faq__item > summary::after { transition: none; }
}

/* ------------------------------------------------------------------
   Tabele w treściach przeniesionych z TrisoShop (etap 2).
   Regulaminy i polityka prywatności niosą tabele z czasów starego sklepu
   (polityka: 11 sztuk). Komórki z długimi adresami i nazwami rozpychały je
   ponad szerokość ekranu — na 360 px najszersza miała 463 px.
   ------------------------------------------------------------------ */
.wp-block-post-content table,
.entry-content table {
	max-width: 100%;
}
.wp-block-post-content th,
.wp-block-post-content td,
.entry-content th,
.entry-content td {
	overflow-wrap: anywhere;   /* długi e-mail/URL łamie się zamiast rozpychać */
	word-break: normal;
}

@media (max-width: 640px) {
	/* Gdy sama treść komórek nie pozwala się zmieścić (tabele z wieloma
	   kolumnami), tabela przewija się w poziomie — strona zostaje nieruchoma. */
	.wp-block-post-content table,
	.entry-content table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ---------- Blog: lista wpisów (home.html) i pojedynczy wpis (single.html)
   — poprawki właściciela 2026-08-02: wcześniej oba widoki spadały na index.html
   (tytuł + skrót), więc wpis wyglądał na „niedokopiowany". ---------- */
.btk-blogarch .btk-blogarch__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; list-style: none; padding: 0; margin: 0 0 24px; }
@media (max-width: 960px) { .btk-blogarch .btk-blogarch__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .btk-blogarch .btk-blogarch__grid { grid-template-columns: 1fr; } }
/* równe wysokości kart (poprawka właściciela N3): <li> siatki rozciąga się do
   wiersza, karta wypełnia go flexem — data przyklejona do dołu robi resztę.
   margin 0: klasa is-layout-flow WordPressa dokłada margin-block-start każdemu
   li poza pierwszym i przesuwała karty 22px w dół wewnątrz wiersza siatki. */
.btk-blogarch .btk-blogarch__grid > li { display: flex; min-width: 0; margin: 0; }
.btk-blogarch__card {
	width: 100%; display: flex; flex-direction: column; gap: 8px;
	background: #fff; border: 1px solid var(--wp--preset--color--line, #E5E7EB);
	border-radius: var(--btk-r); padding: 20px;
	transition: transform .15s ease, box-shadow .15s ease;
}
/* zdjęcie podglądu wpisu (N3): stały kadr 16:10, zaokrąglenie jak karta */
.btk-blogarch__card .btk-blogarch__img { margin: -8px -8px 4px; }
.btk-blogarch__card .btk-blogarch__img img {
	width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block;
	border-radius: calc(var(--btk-r) - 4px);
}
.btk-blogarch__card:hover { transform: translateY(-2px); box-shadow: var(--btk-sh-hover); }
.btk-blogarch__card h2 { margin: 0; font-size: 17px; font-weight: 800; line-height: 1.3; }
.btk-blogarch__card h2 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.btk-blogarch__card h2 a:hover { color: var(--wp--preset--color--accent); }
.btk-blogarch__card .wp-block-post-excerpt { font-size: 13.5px; color: var(--wp--preset--color--muted); }
.btk-blogarch__card .wp-block-post-excerpt p { margin: 0; }
.btk-blogarch__card .wp-block-post-excerpt__more-text { margin-top: 6px; }
.btk-blogarch__card .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--accent); font-weight: 700; font-size: 13px; text-decoration: none; }
.btk-blogarch__card .wp-block-post-excerpt__more-link:hover { text-decoration: underline; }
.btk-blogarch__card .wp-block-post-date { margin-top: auto; font-size: 11.5px; color: var(--btk-muted-strong, var(--wp--preset--color--muted)); }
.btk-blogarch__pages { margin-top: 8px; }
@media (prefers-reduced-motion: reduce) { .btk-blogarch__card { transition: none; } }

.btk-post h1.wp-block-post-title { font-size: clamp(26px, 4vw, 36px); font-weight: 800; line-height: 1.2; margin: 18px 0 6px; }
.btk-post .btk-post__meta { gap: 12px; font-size: 13px; color: var(--wp--preset--color--muted); margin-bottom: 14px; }
.btk-post .btk-post__meta a { color: var(--wp--preset--color--accent); text-decoration: none; }
.btk-post .btk-post__meta a:hover { text-decoration: underline; }
.btk-post .btk-post__cover img { border-radius: var(--btk-r-lg); }
.btk-post .wp-block-post-content { font-size: 16px; line-height: 1.7; }
.btk-post .wp-block-post-content h2 { font-size: 22px; font-weight: 800; margin: 28px 0 10px; }
.btk-post .wp-block-post-content h3 { font-size: 18px; font-weight: 800; margin: 22px 0 8px; }
.btk-post .wp-block-post-content img { border-radius: var(--btk-r); max-width: 100%; height: auto; }
.btk-post .wp-block-post-content a { color: var(--wp--preset--color--accent); }
.btk-post .btk-post__back { margin: 26px 0 8px; }
.btk-post .btk-post__back a { color: var(--wp--preset--color--accent); font-weight: 700; text-decoration: none; }
.btk-post .btk-post__back a:hover { text-decoration: underline; }

/* ============================================================
   C1 — strony informacyjne (2026-08-04, motyw 0.15.0):
   Kontakt (.btk-kontakt + .btk-contact) i landing Punktomanii
   (.btk-loy-*). Wg zaakceptowanych mockupów w BAZIE (03 ROBOCZE).
   ============================================================ */

/* --- Kontakt: dwie karty + mapa --- */
.btk-kontakt { display: grid; grid-template-columns: 5fr 7fr; gap: 20px; margin: 8px 0 20px; }
@media (max-width: 820px) { .btk-kontakt { grid-template-columns: 1fr; } }
.btk-kontakt__card { border-radius: var(--btk-r); padding: 26px; }
.btk-kontakt__card--data { background: var(--wp--preset--color--accent-soft); }
.btk-kontakt__card--form { background: var(--wp--preset--color--card); border: 1px solid var(--wp--preset--color--line); }
.btk-kontakt__card h2 { font-size: 19px; margin: 0 0 16px; }
.btk-kontakt__lead { color: var(--wp--preset--color--muted); max-width: 56ch; margin: 0 0 24px; }
.btk-kontakt__row { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px; }
.btk-kontakt__row .btk-i { width: 20px; height: 20px; margin-top: 2px; color: var(--wp--preset--color--accent-ink); }
.btk-kontakt__row small { display: block; color: var(--wp--preset--color--muted); font-size: 13px; }
.btk-kontakt__reg { border-top: 1px solid rgba(4,84,62,.18); margin-top: 16px; padding-top: 14px; font-size: 13.5px; }
.btk-kontakt__reg p { margin: 0 0 6px; }
.btk-kontakt__map { border-radius: var(--btk-r); overflow: hidden; border: 1px solid var(--wp--preset--color--line); margin: 0 0 28px; }
.btk-kontakt__map iframe { display: block; width: 100%; height: 360px; border: 0; }

/* --- Formularz kontaktowy (shortcode [btk_contact_form]) --- */
.btk-contact__hp { position: absolute !important; left: -9999px; top: auto; }
.btk-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .btk-contact__row { grid-template-columns: 1fr; } }
.btk-contact__field { margin: 0 0 14px; }
.btk-contact__field label { display: block; font-size: 13.5px; font-weight: 600; margin: 0 0 6px; }
.btk-contact__field input, .btk-contact__field select, .btk-contact__field textarea {
	width: 100%; font: inherit; font-size: 15px; padding: 11px 13px;
	border: 1px solid var(--btk-line-2); border-radius: 10px;
	background: var(--wp--preset--color--card); color: var(--wp--preset--color--ink);
}
.btk-contact__field input:focus, .btk-contact__field select:focus, .btk-contact__field textarea:focus {
	outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px;
	border-color: var(--wp--preset--color--accent);
}
.btk-contact__field textarea { resize: vertical; min-height: 120px; }
.btk-contact__actions { margin: 4px 0 0; }
.btk-contact__actions button {
	background: var(--wp--preset--color--accent); color: #fff; border: 0;
	border-radius: var(--btk-r-btn); padding: 13px 26px; font: inherit;
	font-weight: 700; font-size: 15.5px; cursor: pointer; box-shadow: var(--btk-glow);
}
.btk-contact__actions button:hover { background: var(--wp--preset--color--accent-ink); }
.btk-contact__rodo { font-size: 12px; color: var(--wp--preset--color--muted); margin: 12px 0 0; }
.btk-contact__notice { border-radius: 10px; padding: 12px 14px; font-size: 14px; margin: 0 0 16px; }
.btk-contact__notice--ok { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink); }
.btk-contact__notice--err { background: #FBEAE8; color: #B42318; }

/* Formularz zgłoszeń i panel zwrotów mają własny arkusz we wtyczce
   (btk-claims/assets/claims.css) — tutaj zostają wyłącznie nadpisania
   trybu ciemnego, wyżej, razem z resztą przycisków. */

/* --- Landing Punktomanii --- */
.btk-loy-hero {
	background: linear-gradient(180deg, var(--wp--preset--color--accent-soft), var(--wp--preset--color--paper) 88%);
	border-radius: 16px; padding: 56px 48px; position: relative; overflow: hidden; margin: 8px 0 0;
}
@media (max-width: 640px) { .btk-loy-hero { padding: 36px 22px; } }
.btk-loy-hero__dots {
	position: absolute; right: -40px; bottom: -60px; width: 300px; height: 300px; border-radius: 50%;
	background-image: radial-gradient(rgba(4,120,87,.16) 2.5px, transparent 2.6px); background-size: 22px 22px;
}
.btk-loy-badge {
	display: inline-block; background: var(--wp--preset--color--card); border: 1px solid rgba(4,120,87,.25);
	color: var(--wp--preset--color--accent-ink); font-size: 12.5px; font-weight: 600;
	border-radius: 999px; padding: 6px 14px; margin: 0 0 18px;
}
.btk-loy-hero h1, .btk-loy-hero__title { font-size: 44px; font-weight: 800; letter-spacing: -1px; line-height: 1.12; max-width: 15ch; margin: 0; position: relative; }
@media (max-width: 640px) { .btk-loy-hero h1, .btk-loy-hero__title { font-size: 32px; } }
.btk-loy-hero p { max-width: 52ch; margin: 16px 0 26px; font-size: 17px; position: relative; }
.btk-loy-btn {
	display: inline-block; background: var(--wp--preset--color--accent); color: #fff !important;
	border-radius: var(--btk-r-btn); padding: 14px 28px; font-weight: 700; font-size: 16px;
	text-decoration: none; box-shadow: var(--btk-glow); position: relative;
}
.btk-loy-btn:hover { background: var(--wp--preset--color--accent-ink); }
.btk-loy-btn--ghost {
	background: none; box-shadow: none; color: var(--wp--preset--color--accent-ink) !important;
	font-size: 15px; padding: 14px 10px; margin-left: 8px;
}
.btk-loy-btn--ghost:hover { background: none; text-decoration: underline; }
.btk-loy h2 { font-size: 27px; font-weight: 800; letter-spacing: -.5px; margin: 52px 0 22px; }
.btk-loy-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 820px) { .btk-loy-steps { grid-template-columns: 1fr; } }
.btk-loy-step { border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 24px; }
.btk-loy-step__no {
	width: 34px; height: 34px; border-radius: 50%; background: var(--wp--preset--color--accent-soft);
	color: var(--wp--preset--color--accent-ink); font-weight: 800; display: flex;
	align-items: center; justify-content: center; margin: 0 0 14px;
}
.btk-loy-step b { display: block; font-size: 17px; margin: 0 0 6px; }
.btk-loy-step p { font-size: 14.5px; color: var(--wp--preset--color--muted); margin: 0; }
.btk-loy-split { display: grid; grid-template-columns: 7fr 5fr; gap: 22px; align-items: start; }
@media (max-width: 860px) { .btk-loy-split { grid-template-columns: 1fr; } }
table.btk-loy-pts { width: 100%; border-collapse: collapse; font-size: 15px; }
table.btk-loy-pts td { padding: 13px 14px; border-bottom: 1px solid var(--wp--preset--color--line); }
table.btk-loy-pts tr td:last-child { text-align: right; font-weight: 800; color: var(--wp--preset--color--accent-ink); white-space: nowrap; }
table.btk-loy-pts tr.is-bonus td:first-child::before { content: "+ "; color: var(--wp--preset--color--promo); font-weight: 800; }
.btk-loy-pts-note { font-size: 13px; color: var(--wp--preset--color--muted); margin: 10px 0 0; }
.btk-loy-example { background: var(--wp--preset--color--warm); border-radius: var(--btk-r); padding: 24px; font-size: 15px; }
.btk-loy-example b { color: var(--wp--preset--color--accent-ink); }

/* kupon-bilecik (statyczny pokaz na landingu — geometria 1:1 z btk-loyalty) */
.btk-loy-coupon {
	display: flex; background: var(--wp--preset--color--accent-soft);
	border: 1.5px dashed var(--wp--preset--color--accent); border-radius: var(--btk-r);
	overflow: hidden; position: relative; max-width: 430px; margin: 22px auto 4px;
}
.btk-loy-coupon__amt {
	flex: 0 0 128px; display: flex; flex-direction: column; align-items: center; justify-content: center;
	border-right: 2px dashed rgba(4,120,87,.45); padding: 22px 10px;
}
.btk-loy-coupon__amt b { font-size: 34px; font-weight: 800; color: var(--wp--preset--color--accent-ink); letter-spacing: -1px; }
.btk-loy-coupon__amt span { font-size: 11.5px; color: var(--wp--preset--color--accent-ink); opacity: .75; }
.btk-loy-coupon__body { padding: 18px 20px; }
.btk-loy-coupon__body b { display: block; font-size: 15px; margin: 0 0 4px; }
.btk-loy-coupon__body p { font-size: 13px; margin: 0 0 12px; }
.btk-loy-coupon__use {
	display: inline-block; background: var(--wp--preset--color--accent); color: #fff;
	font-size: 13.5px; font-weight: 700; border-radius: var(--btk-r-btn); padding: 9px 16px;
}
.btk-loy-coupon__cancel { display: block; font-size: 12px; color: var(--wp--preset--color--muted); text-decoration: underline; margin: 8px 0 0; }
.btk-loy-coupon::before, .btk-loy-coupon::after {
	content: ""; position: absolute; left: 119px; width: 18px; height: 18px;
	background: var(--wp--preset--color--paper); border-radius: 50%;
}
.btk-loy-coupon::before { top: -9px; }
.btk-loy-coupon::after { bottom: -9px; }
.btk-loy-perks { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .btk-loy-perks { grid-template-columns: 1fr; } }
.btk-loy-perk { display: flex; gap: 12px; border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 18px; }
.btk-loy-perk .btk-i { width: 22px; height: 22px; margin-top: 2px; color: var(--wp--preset--color--accent); flex: none; }
.btk-loy-perk b { display: block; margin: 0 0 3px; }
.btk-loy-perk p { font-size: 14px; color: var(--wp--preset--color--muted); margin: 0; }
.btk-loy-cta {
	background: var(--wp--preset--color--accent); border-radius: 16px; color: #fff;
	text-align: center; padding: 44px 24px; margin: 56px 0 26px;
}
.btk-loy-cta h2 { color: #fff; margin: 0 0 8px; font-size: 28px; }
.btk-loy-cta p { opacity: .85; margin: 0 0 22px; }
.btk-loy-cta .btk-loy-btn { background: #fff; color: var(--wp--preset--color--accent-ink) !important; box-shadow: none; }
.btk-loy-reg { margin: 0 0 48px; }
.btk-loy-reg > details { border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 0 22px; }
.btk-loy-reg summary { cursor: pointer; font-weight: 700; padding: 16px 0; list-style: none; }
.btk-loy-reg summary::-webkit-details-marker { display: none; }
.btk-loy-reg__in { font-size: 13.5px; padding: 4px 0 18px; max-width: 80ch; }
.btk-loy-reg__in p { margin: 0 0 8px; }

/* karta na ciepłym tle — dane do przelewu, przykłady */
.btk-card-warm { background: var(--wp--preset--color--warm); border-radius: var(--btk-r); padding: 24px; font-size: 15px; }

/* ============================================================
   C1b (2026-08-05, motyw 0.15.1): tabele treści (.btk-table),
   kroki 4-kolumnowe (.btk-steps4, „Jak kupować"), chipy nawigacji
   FAQ (.btk-faqnav), lead stron treściowych (.btk-lead).
   ============================================================ */

/* lead pod H1 strony treściowej */
.btk-lead { font-size: 17px; color: var(--wp--preset--color--muted); max-width: 70ch; margin: 0 0 24px; }

/* tabela w treści strony — karta z nagłówkiem na tincie */
.btk-table { overflow-x: auto; border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); margin: 0 0 22px; }
.btk-table table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14.5px; }
.btk-table th {
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	text-align: left; font-weight: 700; padding: 12px 16px; white-space: nowrap;
}
.btk-table td { padding: 12px 16px; border-top: 1px solid var(--wp--preset--color--line); vertical-align: top; }
.btk-table tr td:nth-child(2) { white-space: nowrap; }

/* kroki zakupu — 4 karty (desktop), 2 (tablet), 1 (telefon) */
.btk-steps4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 980px) { .btk-steps4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .btk-steps4 { grid-template-columns: 1fr; } }

/* chipy-kotwice nad FAQ */
.btk-faqnav { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; }
.btk-faqnav a {
	display: inline-block; border: 1px solid var(--wp--preset--color--line); border-radius: 999px;
	padding: 8px 16px; font-size: 13.5px; font-weight: 600; text-decoration: none;
	color: var(--wp--preset--color--ink); background: var(--wp--preset--color--card);
}
.btk-faqnav a:hover, .btk-faqnav a:focus-visible {
	border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-ink);
	background: var(--wp--preset--color--accent-soft);
}

/* C1c (2026-08-05): pasek liczb na „O nas" */
.btk-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 4px 0 8px; }
@media (max-width: 980px) { .btk-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .btk-stats { grid-template-columns: 1fr; } }
.btk-stat { border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 22px 18px; text-align: center; }
.btk-stat b { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.5px; color: var(--wp--preset--color--accent-ink); margin: 0 0 6px; font-variant-numeric: tabular-nums; }
.btk-stat span { font-size: 13.5px; color: var(--wp--preset--color--muted); line-height: 1.45; }

/* ============================================================
   C1d (2026-08-05, motyw 0.15.4): poradnik „Kup na prezent”
   — hero, pasek faktów i naprzemienne kroki ze zrzutami.
   ============================================================ */

.btk-gift-hero {
	background: linear-gradient(180deg, var(--wp--preset--color--premium-soft, #EDEBFA), var(--wp--preset--color--paper) 88%);
	border-radius: 16px; padding: 52px 48px; position: relative; overflow: hidden; margin: 8px 0 26px;
}
@media (max-width: 640px) { .btk-gift-hero { padding: 34px 22px; } }
.btk-gift-hero__dots {
	position: absolute; right: -40px; bottom: -60px; width: 300px; height: 300px; border-radius: 50%;
	background-image: radial-gradient(rgba(49,46,129,.14) 2.5px, transparent 2.6px); background-size: 22px 22px;
}
.btk-gift-hero__title { font-size: 40px; font-weight: 800; letter-spacing: -1px; line-height: 1.14; max-width: 18ch; margin: 0; position: relative; }
@media (max-width: 640px) { .btk-gift-hero__title { font-size: 30px; } }
.btk-gift-hero p { max-width: 56ch; margin: 16px 0 26px; font-size: 17px; position: relative; }

.btk-gift-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 0 0 12px; }
@media (max-width: 980px) { .btk-gift-facts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .btk-gift-facts { grid-template-columns: 1fr; } }
.btk-gift-fact { border: 1px solid var(--wp--preset--color--line); border-radius: var(--btk-r); padding: 18px 16px; }
.btk-gift-fact b { display: block; font-size: 17px; font-weight: 800; color: var(--wp--preset--color--accent-ink); margin: 0 0 4px; }
.btk-gift-fact span { font-size: 13.5px; color: var(--wp--preset--color--muted); line-height: 1.45; }

/* krok: tekst + zrzut ekranu, naprzemiennie */
.btk-gift-step {
	display: grid; grid-template-columns: 1fr 1fr; gap: 34px; align-items: center;
	padding: 26px 0; border-top: 1px solid var(--wp--preset--color--line);
}
.btk-gift-step:first-of-type { border-top: 0; }
@media (max-width: 860px) { .btk-gift-step { grid-template-columns: 1fr; gap: 20px; } }
.btk-gift-step--rev .btk-gift-step__txt { order: 2; }
@media (max-width: 860px) { .btk-gift-step--rev .btk-gift-step__txt { order: 0; } }
.btk-gift-step__no {
	display: inline-block; background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 5px 13px; margin: 0 0 12px;
}
.btk-gift-step__txt h3 { font-size: 22px; font-weight: 800; letter-spacing: -.3px; margin: 0 0 10px; }
.btk-gift-step__txt p { margin: 0 0 10px; }
.btk-gift-step__tip { font-size: 14px; color: var(--wp--preset--color--muted); }
.btk-gift-step__img { margin: 0; }
.btk-gift-step__img img {
	/* BEZ `width` w CSS: szerokość bierze się z atrybutu width="…" obrazka, więc
	   zrzut nie jest skalowany w górę ponad swoją natywną rozdzielczość (rozmycie),
	   a przeglądarka rezerwuje na niego miejsce jeszcze przed doładowaniem (lazy
	   loading nie powoduje skoku layoutu — `width:auto` zwijało obrazek do 2 px). */
	display: block; max-width: 100%; height: auto; margin: 0 auto;
	border-radius: var(--btk-r);
	border: 1px solid var(--wp--preset--color--line); box-shadow: var(--btk-sh-hover);
	background: var(--wp--preset--color--card);
}

/* ============================================================
   Strona 404 — „Zakładka wypadła" (wybór właściciela 2026-08-05)
   Po przepięciu DNS 32 984 starych adresów kończy się na 410, a mapa 301
   nigdy nie łapie wszystkiego — ten ekran zobaczy realny ruch, więc obok
   żartu ma wyszukiwarkę i skróty do działów. Kolory i krój wyłącznie
   z tokenów motywu, żeby tryb ciemny działał bez osobnych reguł.
   ============================================================ */
.btk-404 { text-align: center; padding: 56px 20px 64px; max-width: 640px; margin: 0 auto; }
.btk-404__code {
	font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
	color: var(--wp--preset--color--accent); margin: 0 0 14px;
}
.btk-404__art { display: block; margin: 0 auto 24px; color: var(--wp--preset--color--accent); }
.btk-404__lib {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 20px;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent-ink);
	border-radius: 999px; padding: 8px 16px; font-size: 13.5px; font-weight: 700;
}
.btk-404__lib .btk-i { width: 18px; height: 18px; }
/* Dark: accent-ink jest ciemną zielenią — na ciemnym tle znika. Ta sama pułapka
   co przy notice info i ikonie zasad przedsprzedaży. */
html[data-theme="dark"] .btk-404__lib { color: var(--wp--preset--color--accent); }
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .btk-404__lib { color: var(--wp--preset--color--accent); }
}
.btk-404__h {
	font-size: 40px; line-height: 1.12; font-weight: 800; letter-spacing: -.03em;
	margin: 0 0 14px; color: var(--wp--preset--color--ink);
}
.btk-404__dot { color: var(--wp--preset--color--accent); }
.btk-404__p {
	font-size: 16.5px; line-height: 1.6; color: var(--wp--preset--color--muted);
	margin: 0 auto 26px; max-width: 52ch;
}
.btk-404__cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin: 0 0 24px; }
.btk-404__btn {
	display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
	font-size: 14.5px; font-weight: 700; padding: 11px 20px;
	border: 1.5px solid var(--wp--preset--color--accent); border-radius: var(--btk-r-btn);
	transition: background .12s ease, color .12s ease;
}
.btk-404__btn--p { background: var(--wp--preset--color--accent); color: #fff; }
.btk-404__btn--p:hover { background: var(--wp--preset--color--accent-ink); border-color: var(--wp--preset--color--accent-ink); }
.btk-404__btn--s { background: transparent; color: var(--wp--preset--color--accent); }
.btk-404__btn--s:hover { background: var(--wp--preset--color--accent-soft); }
/* Wyszukiwarka to ten sam komponent co w nagłówku (.btk-search) — tu tylko
   szerokość i wyśrodkowanie, żeby nie dublować stylu pola. */
.btk-404__search { max-width: 460px; margin: 0 auto 22px; }
.btk-404__chips { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.btk-404__chip {
	font-size: 13px; font-weight: 600; text-decoration: none;
	color: var(--wp--preset--color--muted); background: var(--wp--preset--color--warm);
	border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: 6px 14px;
}
.btk-404__chip:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.btk-404__hint { font-size: 13px; color: var(--wp--preset--color--muted); margin: 22px 0 0; }
@media (max-width: 640px) {
	.btk-404 { padding: 40px 16px 48px; }
	.btk-404__h { font-size: 30px; }
	.btk-404__p { font-size: 15.5px; }
}

/* ── Powitanie po migracji ze starego sklepu ───────────────────────────────
   Wchodzi na istniejący szkielet .btk-modal (to samo tło, ten sam krzyżyk),
   więc zachowuje się dokładnie jak modal koszyka — klient zna już ten wzorzec. */
.btk-welcome__box { width: min(520px, 100%); padding: 28px 26px 22px; text-align: left; }
.btk-welcome__h { margin: 0 0 10px; font-size: 24px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; color: var(--wp--preset--color--ink); }
.btk-welcome__lead { margin: 0 0 18px; font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--muted); }
.btk-welcome__note { background: var(--wp--preset--color--accent-soft); border-radius: var(--btk-r-lg); padding: 16px 18px; margin-bottom: 20px; }
.btk-welcome__note-h { margin: 0 0 6px; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--wp--preset--color--ink); }
.btk-welcome__note-p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--wp--preset--color--ink); }
.btk-welcome__actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.btk-welcome__cta { display: inline-flex; justify-content: center; align-items: center; padding: 13px 20px; border-radius: 99px; background: var(--wp--preset--color--accent); color: #fff; font-weight: 700; font-size: 15px; text-decoration: none; }
.btk-welcome__cta:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }
.btk-welcome__alt { padding: 13px 14px; font-size: 14.5px; font-weight: 600; color: var(--wp--preset--color--accent); text-decoration: none; white-space: nowrap; }
.btk-welcome__alt:hover { text-decoration: underline; }
.btk-welcome__dismiss { display: block; margin: 14px auto 0; border: 0; background: transparent; padding: 4px 8px; font-size: 13.5px; color: var(--wp--preset--color--muted); cursor: pointer; }
.btk-welcome__dismiss:hover { color: var(--wp--preset--color--ink); text-decoration: underline; }

/* Wejście delikatne i tylko dla tych, którzy nie prosili o mniej ruchu. */
@media (prefers-reduced-motion: no-preference) {
	.btk-welcome:not([hidden]) .btk-welcome__box { animation: btk-welcome-in .22s ease-out both; }
	@keyframes btk-welcome-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}

@media (max-width: 560px) {
	.btk-welcome__box { padding: 24px 18px 18px; }
	.btk-welcome__h { font-size: 21px; }
	.btk-welcome__actions { grid-template-columns: 1fr; }
	.btk-welcome__alt { text-align: center; }
}
