/* ===========================================================
   EcoBen — Layout produktu (Variant-1)
   Scope: .ecoben-single-product (strona produktu)
   Drawer: globalny (.ecoben-cart-*)
   =========================================================== */

/* Rezerwacja miejsca na pasek przewijania — przy otwarciu drawera/popupu (body overflow:hidden)
   pasek znikał i CAŁA strona skakała w prawo o ~15px. scrollbar-gutter:stable trzyma gutter zawsze,
   więc blokada scrolla nie powoduje przeskoku. Globalnie (drawer/login/lightbox = ten sam efekt). */
html { scrollbar-gutter: stable; }

:root {
	--eb-navy: #0A1F44;
	--eb-navy-deep: #061331;
	--eb-navy-soft: #1F3563;
	--eb-sage: #4A7C59;
	--eb-sage-light: #6FA67E;
	--eb-sage-deep: #2F5239;
	--eb-cream: #FAF8F4;
	--eb-cream-warm: #F2EEE5;
	--eb-paper: #FFFFFF;
	--eb-ink: #1A1A1A;
	--eb-ink-soft: #45433E;
	--eb-ink-faint: #7A7770;
	--eb-line: #E8E5DE;
	--eb-gold: #C19A4B;
	--eb-rose: #B85447;
}

/* ---------- Tło i typografia strony produktu ---------- */
.ecoben-single-product .entry-summary,
.ecoben-single-product div.product .summary {
	font-family: 'Outfit', sans-serif;
	color: var(--eb-ink);
}

.ecoben-single-product .product_title,
.ecoben-single-product h1.product_title {
	font-family: 'Instrument Serif', serif !important;
	font-weight: 400;
	font-size: clamp(30px, 4vw, 42px);
	line-height: 1.04;
	letter-spacing: -0.01em;
	color: var(--eb-ink);
	margin: 0 0 14px;
}
.ecoben-single-product .product_title em { font-style: italic; color: var(--eb-sage-deep); }

.ecoben-single-product .woocommerce-product-details__short-description {
	font-size: 16px;
	color: var(--eb-ink-soft);
	line-height: 1.55;
	margin-bottom: 24px;
}
.ecoben-single-product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* ---------- Wyróżniki nad tytułem ---------- */
.ecoben-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	color: var(--eb-ink-faint);
	font-size: 13px;
	margin-bottom: 14px;
}
.ecoben-meta .ecoben-dot { width: 4px; height: 4px; background: var(--eb-ink-faint); border-radius: 50%; }
.ecoben-badge-eco {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--eb-sage-deep);
	font-weight: 600;
}

/* ---------- Oceny ---------- */
.ecoben-ratings {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	padding: 14px 0;
	border-top: 1px solid var(--eb-line);
	border-bottom: 1px solid var(--eb-line);
	margin-bottom: 26px;
}
.ecoben-stars { color: var(--eb-gold); font-size: 17px; letter-spacing: 1px; }
.ecoben-rating-num { font-weight: 600; font-size: 15px; }
.ecoben-review-link { color: var(--eb-navy); text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }
.ecoben-verified {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	color: var(--eb-sage-deep);
	font-weight: 500;
}

/* ---------- Benefity ---------- */
.ecoben-benefits {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 30px;
}
.ecoben-benefit {
	background: var(--eb-paper);
	border: 1px solid var(--eb-line);
	border-radius: 14px;
	padding: 18px 16px;
	transition: border-color .2s, transform .2s;
}
.ecoben-benefit:hover { border-color: var(--eb-sage-light); transform: translateY(-2px); }
.ecoben-benefit-icon {
	width: 36px; height: 36px;
	border-radius: 10px;
	background: var(--eb-cream-warm);
	display: flex; align-items: center; justify-content: center;
	color: var(--eb-navy);
	margin-bottom: 10px;
}
.ecoben-benefit-title { font-weight: 600; font-size: 14px; margin-bottom: 4px; color: var(--eb-ink); }
.ecoben-benefit-text { font-size: 12.5px; color: var(--eb-ink-soft); line-height: 1.45; }

/* ---------- Karta ceny ---------- */
.ecoben-single-product .ecoben-price-block {
	background: var(--eb-paper);
	border: 1px solid var(--eb-line);
	border-radius: 20px;
	padding: 26px;
	margin-bottom: 18px;
}
.ecoben-price-row {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 4px;
}
/* Natywna cena WooCommerce w karcie */
.ecoben-single-product .ecoben-price-block .price {
	margin: 0 !important;
	font-family: 'Instrument Serif', serif;
	color: var(--eb-navy);
	font-size: 44px;
	line-height: 1;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
}
.ecoben-single-product .ecoben-price-block .price ins {
	text-decoration: none;
	font-size: 44px;
	color: var(--eb-navy);
}
.ecoben-single-product .ecoben-price-block .price del {
	font-size: 17px;
	color: var(--eb-ink-faint);
	font-family: 'Outfit', sans-serif;
	opacity: 1;
}
.ecoben-save {
	align-self: center;
	background: var(--eb-sage);
	color: #fff;
	padding: 4px 10px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	font-family: 'Outfit', sans-serif;
}
.ecoben-price-note { font-size: 13px; color: var(--eb-ink-faint); margin-bottom: 20px; }

/* Formularz add-to-cart (qty + przycisk w jednym rzędzie) */
.ecoben-single-product .ecoben-price-block form.cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 12px;
}
.ecoben-single-product .ecoben-price-block form.cart .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--eb-line);
	border-radius: 14px;
	overflow: hidden;
	background: var(--eb-paper);
	margin: 0;
}
.ecoben-single-product .ecoben-price-block form.cart .quantity input.qty {
	width: 56px;
	height: 56px;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 600;
	font-size: 15px;
	color: var(--eb-ink);
	-moz-appearance: textfield;
}
.ecoben-single-product .ecoben-price-block form.cart .quantity input.qty::-webkit-outer-spin-button,
.ecoben-single-product .ecoben-price-block form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ecoben-single-product .ecoben-price-block form.cart .single_add_to_cart_button {
	flex: 1;
	background: var(--eb-navy);
	color: var(--eb-cream);
	border: 0;
	border-radius: 14px;
	min-height: 56px;
	font-family: 'Outfit', sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	cursor: pointer;
	transition: background .2s, transform .2s, box-shadow .2s;
}
.ecoben-single-product .ecoben-price-block form.cart .single_add_to_cart_button:hover {
	background: var(--eb-navy-soft);
	transform: translateY(-1px);
	box-shadow: 0 12px 24px rgba(10,31,68,.2);
	color: var(--eb-cream);
}
.ecoben-single-product .ecoben-price-block form.cart .single_add_to_cart_button.loading { opacity: .7; cursor: progress; }
.ecoben-single-product .ecoben-price-block form.cart .single_add_to_cart_button.added { background: var(--eb-sage); }

/* Kup teraz */
.ecoben-buy-now {
	width: 100%;
	background: var(--eb-paper);
	color: var(--eb-navy);
	border: 1.5px solid var(--eb-navy);
	border-radius: 14px;
	min-height: 52px;
	font-family: 'Outfit', sans-serif;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s, color .2s;
	margin-bottom: 4px;
}
.ecoben-buy-now:hover { background: var(--eb-navy); color: var(--eb-cream); }
.ecoben-buy-now[disabled] { opacity: .7; cursor: progress; }

/* Dostawa / stan */
.ecoben-delivery {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 0 2px;
	margin-top: 14px;
	border-top: 1px solid var(--eb-line);
	font-size: 13.5px;
	color: var(--eb-ink-soft);
}
.ecoben-delivery strong { color: var(--eb-navy); }
.ecoben-stock-dot {
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--eb-sage);
	box-shadow: 0 0 0 4px rgba(74,124,89,.15);
	animation: ecoben-pulse 2s infinite;
	flex-shrink: 0;
}
.ecoben-stock-dot.out { background: var(--eb-rose); animation: none; box-shadow: 0 0 0 4px rgba(184,84,71,.15); }
@keyframes ecoben-pulse { 0%,100% { box-shadow: 0 0 0 4px rgba(74,124,89,.15); } 50% { box-shadow: 0 0 0 6px rgba(74,124,89,.28); } }
.ecoben-truck { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--eb-ink-faint); }

/* Pasek zaufania */
.ecoben-trust {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 22px;
}
.ecoben-trust-item {
	display: flex; gap: 10px; align-items: center;
	font-size: 12.5px; color: var(--eb-ink-soft);
	padding: 12px 14px;
	background: var(--eb-paper);
	border: 1px solid var(--eb-line);
	border-radius: 12px;
}
.ecoben-trust-item svg { color: var(--eb-sage); flex-shrink: 0; }
.ecoben-trust-item strong { color: var(--eb-ink); font-weight: 600; }

/* ---------- Overlay na galerii ---------- */
.ecoben-single-product .woocommerce-product-gallery { position: relative; }
.ecoben-gallery-badge {
	position: absolute; top: 18px; left: 18px; z-index: 5;
	background: rgba(255,255,255,.9);
	backdrop-filter: blur(8px);
	padding: 7px 14px;
	border-radius: 999px;
	font-size: 12px;
	color: var(--eb-sage-deep);
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
}
.ecoben-gallery-badge::before { content: "•"; color: var(--eb-sage); margin-right: 6px; }
.ecoben-gallery-tag {
	position: absolute; bottom: 18px; right: 18px; z-index: 5;
	background: var(--eb-navy);
	color: var(--eb-cream);
	padding: 11px 16px;
	border-radius: 14px;
	font-size: 12px;
	letter-spacing: .05em;
	text-transform: uppercase;
	font-weight: 600;
}

/* ===========================================================
   WYSUWANY KOSZYK (drawer)
   =========================================================== */
.ecoben-cart-overlay {
	position: fixed; inset: 0;
	background: rgba(6,19,49,.45);
	opacity: 0; visibility: hidden;
	transition: opacity .3s;
	z-index: 999998;
}
.ecoben-cart-overlay.show { opacity: 1; visibility: visible; }
body.ecoben-cart-locked { overflow: hidden; }

.ecoben-cart-drawer {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: 400px; max-width: 92vw;
	background: var(--eb-cream);
	box-shadow: -20px 0 50px rgba(6,19,49,.18);
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.2,.7,.3,1);
	z-index: 999999;
	display: flex;
	flex-direction: column;
	font-family: 'Outfit', sans-serif;
}
.ecoben-cart-drawer.open { transform: translateX(0); }

.ecoben-cart-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--eb-line);
	background: var(--eb-paper);
}
.ecoben-cart-title { font-family: 'Instrument Serif', serif; font-size: 24px; color: var(--eb-navy); }
.ecoben-cart-count {
	background: var(--eb-gold); color: var(--eb-navy);
	border-radius: 999px; padding: 1px 9px;
	font-family: 'Outfit', sans-serif; font-size: 12px; font-weight: 700;
	vertical-align: middle;
}
.ecoben-cart-close { background: none; border: 0; font-size: 26px; line-height: 1; color: var(--eb-ink-faint); cursor: pointer; }
.ecoben-cart-close:hover { color: var(--eb-navy); }

/* 1.26.0: scrollem steruje wyłącznie .ecoben-cart-scroll (body bez flex:1/overflow). */
.ecoben-cart-body { padding: 16px 24px; }
.ecoben-cart-drawer .ecoben-cart-empty { text-align: center; padding: 30px 22px 26px; max-width: 460px; margin: 0 auto; font-family: 'Outfit', sans-serif; }
.ecoben-cart-empty-ic { display: inline-flex; align-items: center; justify-content: center; width: 66px; height: 66px; border-radius: 50%; background: var(--eb-cream-warm, #F2EEE5); color: var(--eb-navy, #0A1F44); margin-bottom: 16px; }
.ecoben-cart-drawer .ecoben-cart-empty-title { font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: 26px; line-height: 1.1; color: var(--eb-navy, #0A1F44); margin: 0 0 8px; }
.ecoben-cart-drawer .ecoben-cart-empty-sub { font-size: 13.5px; color: var(--eb-ink-faint, #7A7770); line-height: 1.55; margin: 0 auto 20px; max-width: 320px; }
.ecoben-cart-drawer .ecoben-cart-empty-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--eb-navy, #0A1F44) !important; color: var(--eb-cream, #FAF8F4) !important; text-decoration: none !important; padding: 14px 32px; border-radius: 14px; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 15px; box-shadow: 0 8px 22px rgba(10,31,68,.16); transition: transform .15s, box-shadow .2s, background .2s; }
.ecoben-cart-drawer .ecoben-cart-empty-cta:hover { background: var(--eb-navy-soft, #1F3563) !important; color: #fff !important; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(10,31,68,.22); }

.ecoben-empty-suggest { margin-top: 30px; text-align: left; border-top: 1px solid var(--eb-line, #E8E5DE); padding-top: 22px; }
.ecoben-empty-suggest-h { display: block; text-align: center; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--eb-ink-faint, #7A7770); font-weight: 600; margin: 0 0 14px; }
.ecoben-empty-suggest .ecoben-upsell-item { display: flex; align-items: center; gap: 13px; padding: 11px 12px; border: 1px solid var(--eb-line, #E8E5DE); border-radius: 14px; margin-bottom: 9px; background: var(--eb-paper, #fff); transition: border-color .15s, box-shadow .15s; }
.ecoben-empty-suggest .ecoben-upsell-item:hover { border-color: var(--eb-sage, #4A7C59); box-shadow: 0 6px 18px rgba(10,31,68,.06); }
.ecoben-empty-suggest .ecoben-upsell-img { width: 54px; height: 54px; border-radius: 10px; }
.ecoben-empty-suggest .ecoben-upsell-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ecoben-empty-suggest .ecoben-upsell-name { text-decoration: none; color: var(--eb-ink, #1A1A1A); font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13.5px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ecoben-empty-suggest .ecoben-upsell-name:hover { color: var(--eb-navy, #0A1F44); }
.ecoben-empty-suggest .ecoben-upsell-price { font-family: 'Outfit', sans-serif !important; font-size: 13.5px; color: var(--eb-navy, #0A1F44); font-weight: 600; }
.ecoben-empty-suggest .ecoben-upsell-price del,
.ecoben-empty-suggest .ecoben-upsell-price del .woocommerce-Price-amount { color: var(--eb-ink-faint, #7A7770); font-weight: 400; text-decoration: line-through; margin-right: 5px; opacity: .8; }
.ecoben-empty-suggest .ecoben-upsell-price ins { text-decoration: none; }
.ecoben-empty-suggest .ecoben-upsell-price .woocommerce-Price-amount { font-family: 'Outfit', sans-serif !important; }
.ecoben-empty-suggest .ecoben-upsell-add { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--eb-navy, #0A1F44); background: #fff; color: var(--eb-navy, #0A1F44); font-size: 21px; line-height: 1; cursor: pointer; transition: .15s; }
.ecoben-empty-suggest .ecoben-upsell-add:hover { background: var(--eb-navy, #0A1F44); color: #fff; }

.ecoben-ci {
	display: flex; gap: 14px; align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--eb-line);
}
.ecoben-ci-img { width: 60px; height: 60px; border-radius: 10px; overflow: hidden; background: var(--eb-cream-warm); flex-shrink: 0; }
.ecoben-ci-img img { width: 100%; height: 100%; object-fit: cover; }
.ecoben-ci-info { flex: 1; min-width: 0; }
.ecoben-ci-name { font-size: 14px; font-weight: 600; line-height: 1.3; margin-bottom: 4px; }
.ecoben-ci-name a { color: var(--eb-ink); text-decoration: none; }
.ecoben-ci-meta { font-size: 13px; color: var(--eb-ink-faint); }
.ecoben-ci-meta .ecoben-ci-qty { color: var(--eb-navy); font-weight: 600; }
.ecoben-ci-remove { background: none; border: 0; font-size: 20px; color: var(--eb-ink-faint); cursor: pointer; line-height: 1; padding: 4px; }
.ecoben-ci-remove:hover { color: var(--eb-rose); }

.ecoben-cart-foot { padding: 20px 24px; border-top: 1px solid var(--eb-line); background: var(--eb-paper); }
.ecoben-cart-foot.is-empty { display: none; }
.ecoben-cart-subtotal { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; font-size: 15px; }
.ecoben-cart-subtotal strong { font-family: 'Instrument Serif', serif; font-size: 26px; color: var(--eb-navy); }
.ecoben-cart-checkout {
	display: block; text-align: center;
	background: var(--eb-navy); color: var(--eb-cream);
	border-radius: 14px; padding: 16px;
	font-weight: 600; text-decoration: none;
	transition: background .2s;
}
.ecoben-cart-checkout:hover { background: var(--eb-navy-soft); color: var(--eb-cream); }
.ecoben-cart-view { display: block; text-align: center; margin-top: 10px; color: var(--eb-navy); text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }

/* ---------- Responsywność ---------- */
@media (max-width: 768px) {
	.ecoben-benefits, .ecoben-trust { grid-template-columns: 1fr; }
	.ecoben-single-product .product_title { font-size: 30px; }
	.ecoben-single-product .woocommerce-product-details__short-description { font-size: 15px; }
	.ecoben-single-product .ecoben-description p { font-size: 15px; }
	.ecoben-single-product .ecoben-price-block .price,
	.ecoben-single-product .ecoben-price-block .price ins { font-size: 36px; }
}

/* ===========================================================
   PREMIUM 1.0.4 — tło, warianty, ukrycie „Zobacz koszyk"
   =========================================================== */

/* Kremowe tło strony produktu (jak Variant-1) — białe karty kontrastują */
body.ecoben-single-product,
.ecoben-single-product .content-bg,
.ecoben-single-product .content-area,
.ecoben-single-product .site-main,
.ecoben-single-product .entry-content,
.ecoben-single-product .content-container {
	background-color: var(--eb-cream);
}

/* Ukryj wbudowany link „Zobacz koszyk" po dodaniu — mamy własny wysuwany koszyk */
.ecoben-single-product .added_to_cart,
.ecoben-single-product form.cart .added_to_cart {
	display: none !important;
}

/* ---------- PRODUKT PROSTY: ilość + przycisk w jednym rzędzie ---------- */
.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 12px;
}

/* ---------- PRODUKT WARIANTOWY: czysty układ kolumnowy ---------- */
.ecoben-single-product .ecoben-price-block form.variations_form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0 0 12px;
}
/* zakres cen u góry przy wariancie = drugorzędny (nie konkuruje z ceną wariacji) */
.product-type-variable .ecoben-price-block > .price {
	font-family: 'Outfit', sans-serif;
	font-size: 15px;
	color: var(--eb-ink-faint);
	display: block;
	margin-bottom: 2px;
}
/* badge rabatu w GÓRNYM wierszu ceny chowamy przy wariancie (cały wiersz i tak ukryty);
   badge PRZY CENIE WARIACJI (wstawia JS na found_variation) zostaje widoczny */
.product-type-variable .ecoben-price-row .ecoben-save { display: none; }
.ecoben-single-product .ecoben-price-block .woocommerce-variation-price .ecoben-save {
	align-self: center;
	font-size: 12px;
	line-height: 1.4;
}

/* tabela wariantów jako czysty blok */
.ecoben-single-product .ecoben-price-block form.variations_form table.variations,
.ecoben-single-product .ecoben-price-block form.variations_form table.variations tbody,
.ecoben-single-product .ecoben-price-block form.variations_form table.variations tr,
.ecoben-single-product .ecoben-price-block form.variations_form table.variations td,
.ecoben-single-product .ecoben-price-block form.variations_form table.variations th {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	margin: 0;
}
.ecoben-single-product .ecoben-price-block form.variations_form table.variations th.label {
	font-size: 13px;
	font-weight: 600;
	color: var(--eb-ink-soft);
	margin-bottom: 8px;
}
.ecoben-single-product .ecoben-price-block form.variations_form select {
	width: 100%;
	min-height: 52px;
	border: 1px solid var(--eb-line);
	border-radius: 14px;
	background: var(--eb-paper);
	padding: 0 16px;
	font-family: 'Outfit', sans-serif;
	font-size: 15px;
	color: var(--eb-ink);
	cursor: pointer;
}
.ecoben-single-product .ecoben-price-block form.variations_form .reset_variations {
	display: inline-block;
	margin-top: 8px;
	font-size: 13px;
	color: var(--eb-ink-faint);
}
.ecoben-single-product .ecoben-price-block .single_variation_wrap {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
/* cena wybranej wariacji = bohater */
.ecoben-single-product .ecoben-price-block .single_variation .price {
	margin: 0 !important;
	font-family: 'Instrument Serif', serif;
	font-size: 40px;
	line-height: 1;
	color: var(--eb-navy);
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
}
.ecoben-single-product .ecoben-price-block .single_variation .price ins { text-decoration: none; color: var(--eb-navy); }
.ecoben-single-product .ecoben-price-block .single_variation .price del {
	font-family: 'Outfit', sans-serif;
	font-size: 16px;
	color: var(--eb-ink-faint);
	opacity: 1;
}
/* rząd: ilość + przycisk (wariant) */
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
}
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
	opacity: .4;
	cursor: not-allowed;
}

/* ---------- PRZYCISK (wspólne): bez ucinania tekstu ---------- */
.ecoben-single-product .ecoben-price-block .single_add_to_cart_button {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	line-height: 1.15;
	height: auto;
	min-height: 56px;
	padding: 0 22px;
}
.ecoben-single-product .ecoben-price-block .quantity { flex: 0 0 auto; }

/* ===========================================================
   GALERIA 1.0.5 — stały kwadrat, dowolne proporcje, tag/badge
   =========================================================== */
.ecoben-single-product .woocommerce-product-gallery {
	max-width: 540px;
	margin: 0;
	float: none;
}
.ecoben-single-product .woocommerce-product-gallery__wrapper { margin: 0; }

/* Główny kafelek = kwadrat; zdjęcie dowolnych wymiarów mieści się w całości */
.ecoben-single-product .woocommerce-product-gallery__image {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: 20px;
	overflow: hidden;
	background: linear-gradient(160deg, #F5F1E8 0%, #EAE3D2 100%);
}
.ecoben-single-product .woocommerce-product-gallery__image a {
	display: block;
	width: 100%;
	height: 100%;
}
.ecoben-single-product .woocommerce-product-gallery__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	padding: 9%;
}

/* Lupa zoom w rogu */
.ecoben-single-product .woocommerce-product-gallery__trigger { top: 16px; right: 16px; z-index: 7; }

/* Miniatury */
.ecoben-single-product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.ecoben-single-product .flex-control-thumbs li { width: auto; margin: 0; list-style: none; }
.ecoben-single-product .flex-control-thumbs img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 10px;
	opacity: .55;
	cursor: pointer;
	transition: opacity .2s, outline-color .2s;
	outline: 2px solid transparent;
}
.ecoben-single-product .flex-control-thumbs img:hover { opacity: 1; }
.ecoben-single-product .flex-control-thumbs img.flex-active { opacity: 1; outline-color: var(--eb-navy); }

/* Tag/badge są teraz w kafelku obrazu — kotwiczymy do niego */
.ecoben-single-product .woocommerce-product-gallery__image .ecoben-gallery-badge { top: 16px; left: 16px; }
.ecoben-single-product .woocommerce-product-gallery__image .ecoben-gallery-tag { bottom: 16px; right: 16px; }

/* Ukryj domyślną plakietkę „Promocja!" na produkcie (rabat pokazuje cena).
   NIE dotykamy produktów podobnych. */
.ecoben-single-product div.product > .onsale,
.ecoben-single-product .woocommerce-product-gallery .onsale,
.ecoben-single-product div.product > .images .onsale,
.ecoben-single-product div.product > .summary .onsale { display: none !important; }

/* ===========================================================
   GALERIA EcoBen 1.0.6 — custom, bez hover-zoom, z lightboxem
   =========================================================== */
.ecoben-single-product .ecoben-gallery {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	max-width: 560px;
}
.ecoben-single-product .ecoben-thumbs {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 0 0 72px;
}
.ecoben-single-product .ecoben-thumb {
	width: 72px; height: 72px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 12px;
	overflow: hidden;
	background: var(--eb-paper);
	cursor: pointer;
	opacity: .55;
	transition: opacity .2s, border-color .2s;
}
.ecoben-single-product .ecoben-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ecoben-single-product .ecoben-thumb:hover { opacity: 1; }
.ecoben-single-product .ecoben-thumb.is-active { opacity: 1; border-color: var(--eb-navy); }

.ecoben-single-product .ecoben-stage {
	position: relative;
	flex: 1 1 auto;
	aspect-ratio: 1 / 1;
	border-radius: 22px;
	overflow: hidden;
	background: linear-gradient(160deg, #F5F1E8 0%, #EAE3D2 100%);
}
.ecoben-single-product .ecoben-stage-btn {
	display: block; width: 100%; height: 100%;
	padding: 0; border: 0; background: none; cursor: zoom-in;
}
.ecoben-single-product .ecoben-stage-img {
	width: 100%; height: 100%;
	object-fit: contain;
	padding: 8%;
	transition: opacity .2s ease;
}
.ecoben-single-product .ecoben-zoom-hint {
	position: absolute; top: 16px; right: 16px;
	display: inline-flex; align-items: center; gap: 6px;
	background: rgba(255,255,255,.9);
	backdrop-filter: blur(8px);
	padding: 7px 12px;
	border-radius: 999px;
	font-size: 12px; font-weight: 600; color: var(--eb-navy);
	pointer-events: none;
}
.ecoben-single-product .ecoben-stage .ecoben-gallery-badge { top: 16px; left: 16px; }
.ecoben-single-product .ecoben-stage .ecoben-gallery-tag { bottom: 16px; right: 16px; }

@media (max-width: 768px) {
	.ecoben-single-product .ecoben-gallery { flex-direction: column; max-width: 100%; }
	.ecoben-single-product .ecoben-thumbs {
		flex-direction: row; flex: 0 0 auto; order: 2;
		overflow-x: auto; padding-bottom: 4px;
	}
	.ecoben-single-product .ecoben-thumb { flex: 0 0 64px; width: 64px; height: 64px; }
	.ecoben-single-product .ecoben-stage { order: 1; width: 100%; }
}

/* ---------- LIGHTBOX ---------- */
.ecoben-lightbox {
	position: fixed; inset: 0; z-index: 1000000;
	display: none; align-items: center; justify-content: center;
}
.ecoben-lightbox.open { display: flex; }
.ecoben-lightbox-backdrop { position: absolute; inset: 0; background: rgba(6,19,49,.88); }
.ecoben-lightbox-img {
	position: relative; z-index: 1;
	max-width: 90vw; max-height: 88vh;
	object-fit: contain; border-radius: 8px;
	box-shadow: 0 30px 80px rgba(0,0,0,.5);
}
.ecoben-lightbox-close, .ecoben-lightbox-prev, .ecoben-lightbox-next {
	position: absolute; z-index: 2;
	width: 48px; height: 48px; border-radius: 50%;
	background: rgba(255,255,255,.14); color: #fff; border: 0;
	font-size: 26px; line-height: 1; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: background .2s;
}
.ecoben-lightbox-close:hover, .ecoben-lightbox-prev:hover, .ecoben-lightbox-next:hover { background: rgba(255,255,255,.28); }
.ecoben-lightbox-close { top: 24px; right: 24px; }
.ecoben-lightbox-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.ecoben-lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }
.ecoben-lightbox.is-single .ecoben-lightbox-prev,
.ecoben-lightbox.is-single .ecoben-lightbox-next { display: none; }

/* ===========================================================
   UKŁAD + WARIANTY + FBT + MOBILE 1.0.7
   =========================================================== */

/* Przejęcie układu: własna siatka galeria | podsumowanie */
.ecoben-single-product img { max-width: 100%; height: auto; }

/* ---------- WARIANTY: jedna cena + swatche ---------- */
.product-type-variable .ecoben-price-block > .price { display: none !important; }
.ecoben-single-product .ecoben-price-block form.variations_form .variations select,
.ecoben-single-product .ecoben-price-block form.variations_form .reset_variations { display: none !important; }
/* Anty-pop-in: rezerwujemy wysokość obszaru swatchy i ceny, zanim JS je zbuduje (swatche + cena
   wariantu dochodzą po DOM-ready) — koniec skoku treści (FBT/opis) pod spodem przy starcie. */
.ecoben-single-product .ecoben-price-block form.variations_form .variations { min-height: 72px; }
.ecoben-single-product .ecoben-price-block .single_variation_wrap { min-height: 128px; }
/* 1.49.0/1.51.0 — cena wariantu BEZ animacji na wejściu. Pełny łańcuch przyczyn (potwierdzony
   w źródle Kadence 1.5.1): Kadence woocommerce.min.css ma `.woocommerce-variation
   .single_variation{display:none}` (stan bazowy = ukryty), a WC (add-to-cart-variation.js)
   dopiero po inicjalizacji robi `.slideDown(200)` → cena „wjeżdżała" ~0,5–1 s. Ta reguła
   (!important bije bez-!important Kadence niezależnie od kolejności arkuszy) + serwerowy
   prefill z 1.50.0 = cena w HTML i widoczna od pierwszej klatki; slideDown na widocznym
   elemencie to no-op. Miejsce zarezerwowane przez min-height wyżej → bez skoku layoutu.
   Pusty (brak wyboru) = brak treści, więc i tak nic nie widać. */
.ecoben-single-product .ecoben-price-block .single_variation { display: block !important; }
.ecoben-single-product .ecoben-price-block form.variations_form .variations th.label {
	font-size: 13px; font-weight: 600; color: var(--eb-ink-soft); margin-bottom: 8px; padding: 0;
}
.ecoben-swatches { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 2px; }
.ecoben-swatch {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 96px;
	padding: 10px 18px;
	border: 1.5px solid var(--eb-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: var(--eb-ink);
	text-align: center;
	transition: border-color .15s, background .15s, color .15s;
}
.ecoben-swatch:hover { border-color: var(--eb-navy); }
.ecoben-swatch.is-active { border-color: var(--eb-navy); background: var(--eb-navy); color: #fff; }
.ecoben-swatch-label { font-weight: 600; font-size: 14px; line-height: 1.25; }
/* cena opcji pod etykietą (render PHP — tylko produkty z jednym atrybutem) */
.ecoben-swatch-price { font-weight: 500; font-size: 12.5px; line-height: 1.25; color: var(--eb-ink-faint); }
.ecoben-swatch.is-active .ecoben-swatch-price { color: rgba(255,255,255,.85); }
/* pill bez ceny (multi-atrybut / fallback JS) — wraca dawny padding */
.ecoben-swatch:not(:has(.ecoben-swatch-price)) { padding: 12px 20px; min-width: 0; }

/* ---------- OPIS (bez zakładek) ---------- */
.ecoben-single-product .ecoben-description { margin: 8px 0 0; }
.ecoben-single-product .ecoben-description p { font-size: 16px; }

/* ---------- CZĘSTO KUPOWANE RAZEM ---------- */
.ecoben-single-product .ecoben-fbt { margin: 48px 0; }
.ecoben-fbt-head { text-align: center; margin-bottom: 28px; }
.ecoben-eyebrow {
	display: inline-block;
	font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
	color: var(--eb-sage-deep); border: 1px solid var(--eb-sage); border-radius: 999px;
	padding: 6px 14px; margin-bottom: 14px;
}
.ecoben-fbt-head h2 {
	font-family: 'Instrument Serif', serif; font-weight: 400;
	font-size: clamp(26px, 3vw, 40px); color: var(--eb-ink); margin: 0;
}
.ecoben-fbt-card {
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 24px;
	padding: 28px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center;
}
.ecoben-fbt-items { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ecoben-fbt-item { text-decoration: none; color: inherit; text-align: center; width: 150px; }
.ecoben-fbt-img { display: block; aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: var(--eb-cream); margin-bottom: 8px; }
.ecoben-fbt-img img { width: 100%; height: 100%; object-fit: cover; }
.ecoben-fbt-name { display: block; font-size: 13px; font-weight: 600; line-height: 1.3; margin-bottom: 2px; }
.ecoben-fbt-price { display: block; font-size: 13px; color: var(--eb-ink-faint); }
.ecoben-fbt-plus { font-size: 24px; color: var(--eb-ink-faint); flex: 0 0 auto; }
.ecoben-fbt-summary { text-align: center; min-width: 210px; }
.ecoben-fbt-total { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; margin-bottom: 14px; }
.ecoben-fbt-total span { color: var(--eb-ink-soft); }
.ecoben-fbt-total strong { font-family: 'Instrument Serif', serif; font-size: 30px; color: var(--eb-navy); }
.ecoben-fbt-add {
	width: 100%; background: var(--eb-navy); color: var(--eb-cream); border: 0; border-radius: 14px;
	padding: 16px; font-family: 'Outfit', sans-serif; font-weight: 600; cursor: pointer; transition: background .2s;
}
.ecoben-fbt-add:hover { background: var(--eb-navy-soft); }
.ecoben-fbt-add[disabled] { opacity: .7; cursor: progress; }

/* ===========================================================
   MOBILE — pełne dopasowanie
   =========================================================== */
@media (max-width: 760px) {
	.ecoben-single-product .ecoben-price-block { padding: 20px; }
	.ecoben-fbt-card { grid-template-columns: 1fr; gap: 24px; }
	.ecoben-fbt-items { justify-content: center; }
	.ecoben-fbt-item { width: 38%; max-width: 150px; }
	.ecoben-fbt-summary { min-width: 0; }
	.ecoben-single-product .product_title { font-size: 30px; }
	.ecoben-lightbox-prev { left: 10px; }
	.ecoben-lightbox-next { right: 10px; }
}

/* 1.0.8 — przy wariancie chowamy cały wiersz „od–do" (range + badge),
   zostaje tylko cena wybranego wariantu */
.product-type-variable .ecoben-price-block .ecoben-price-row { display: none !important; }
/* nota cena/zastosowanie przeniesiona pod cenę wariacji (JS) */
.ecoben-single-product .single_variation_wrap .ecoben-price-note { margin: 2px 0 4px; }

/* 1.0.9 — galeria jako natywna kolumna Kadence + sticky na desktopie */
.ecoben-single-product .woocommerce-product-gallery { position: relative; }
@media (min-width: 992px) {
	.ecoben-single-product .woocommerce-product-gallery { position: sticky; top: 90px; align-self: flex-start; }
}
.ecoben-single-product .woocommerce-product-gallery .ecoben-gallery { max-width: 100%; }

/* ===========================================================
   1.1.0 — wyrównanie kolumn + mobilna galeria
   =========================================================== */

/* Podsumowanie wyrównane do GÓRY (było centrowane = opis niżej niż zdjęcie) */
.ecoben-single-product div.product { align-items: flex-start !important; }
.ecoben-single-product div.product .summary,
.ecoben-single-product div.product .entry-summary {
	align-self: flex-start !important;
	margin-top: 0 !important;
}

/* Galeria: zabezpieczenia przed rozpychaniem (flex min-width:0) */
.ecoben-single-product .ecoben-gallery,
.ecoben-single-product .ecoben-stage,
.ecoben-single-product .ecoben-thumbs { min-width: 0; }

/* MOBILE: galeria pełnej szerokości, miniatury przewijalne, brak overflow */
@media (max-width: 768px) {
	.ecoben-single-product .woocommerce-product-gallery {
		position: static !important;
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		margin: 0 !important;
	}
	.ecoben-single-product .ecoben-gallery {
		flex-direction: column;
		width: 100%;
		max-width: 100%;
		gap: 10px;
	}
	.ecoben-single-product .ecoben-stage { order: 1; width: 100%; }
	.ecoben-single-product .ecoben-thumbs {
		order: 2;
		flex-direction: row;
		flex: 0 0 auto;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
		scrollbar-width: thin;
	}
	.ecoben-single-product .ecoben-thumb { flex: 0 0 58px; width: 58px; height: 58px; }
}

/* ===========================================================
   1.1.1 — układ przez owijkę JS, qty −/+, mobilna galeria z kropkami
   =========================================================== */

/* Sekcje pod sobą; górę składamy we własną siatkę (.ecoben-top z JS) */
.ecoben-single-product div.product { display: block !important; }
.ecoben-single-product .ecoben-top {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	margin-bottom: 8px;
}
.ecoben-single-product .ecoben-top > * { min-width: 0; }
.ecoben-single-product .ecoben-top .woocommerce-product-gallery {
	width: auto !important; max-width: 100% !important; float: none !important; margin: 0 !important;
}
.ecoben-single-product .ecoben-top .summary,
.ecoben-single-product .ecoben-top .entry-summary {
	width: auto !important; max-width: none !important; float: none !important; margin: 0 !important; padding: 0 !important;
}
@media (min-width: 992px) {
	.ecoben-single-product .ecoben-top .woocommerce-product-gallery { position: sticky; top: 90px; align-self: start; }
}

/* Ilość −/+ */
.ecoben-single-product .ecoben-price-block .quantity {
	display: inline-flex; align-items: center; margin: 0;
	border: 1px solid var(--eb-line); border-radius: 14px; overflow: hidden; background: #fff; flex: 0 0 auto;
	/* Rezerwacja szerokości na wstrzykiwane JS-em przyciski −/+ (input + 2× przycisk). Bez tego
	   box ilości rósł z ~44px do ~124px po DOM-ready i przycisk „Dodaj do koszyka" zwężał się skokowo. */
	min-width: 124px; box-sizing: border-box;
}
.ecoben-single-product .ecoben-price-block .quantity input.qty {
	width: 48px !important; height: 56px;
	border: 0 !important; border-left: 1px solid var(--eb-line) !important; border-right: 1px solid var(--eb-line) !important;
	border-radius: 0 !important; text-align: center; font-weight: 600; font-size: 15px; background: transparent; -moz-appearance: textfield;
}
.ecoben-qty-btn {
	width: 44px; height: 56px; border: 0; background: none;
	font-size: 20px; line-height: 1; color: var(--eb-ink); cursor: pointer; transition: background .15s;
}
.ecoben-qty-btn:hover { background: var(--eb-cream); }

/* Kropki galerii */
.ecoben-dots { display: none; }
.ecoben-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(10,31,68,.22); cursor: pointer; transition: width .2s, background .2s; }
.ecoben-dot.is-active { width: 22px; border-radius: 999px; background: var(--eb-navy); }

/* MOBILE: jedna kolumna, pełna szerokość zdjęcia, kropki zamiast paska miniatur */
@media (max-width: 960px) {
	.ecoben-single-product .ecoben-top { grid-template-columns: 1fr; gap: 18px; }
	.ecoben-single-product .ecoben-top .woocommerce-product-gallery { position: static !important; margin-bottom: 0 !important; }
}
@media (max-width: 768px) {
	.ecoben-single-product .ecoben-gallery { flex-direction: column; gap: 0; max-width: 100%; }
	.ecoben-single-product .ecoben-thumbs { display: none !important; }
	.ecoben-single-product .ecoben-stage { order: 1; width: 100%; border-radius: 18px; }
	.ecoben-single-product .ecoben-stage-img { padding: 5%; }
	.ecoben-single-product .ecoben-dots { display: flex; justify-content: center; gap: 8px; order: 2; margin-top: 14px; }
}

/* ===========================================================
   1.2.0 — koszyk pod konwersję + ukrycie nawigacji zakładek
   =========================================================== */

/* Ukrycie paska zakładek (zostaje sam opis) + reset na mobile (wg ustaleń) */
.ecoben-single-product .woocommerce-tabs .wc-tabs { display: none !important; }
.ecoben-single-product .woocommerce-tabs .panel { margin: 0 !important; }
@media (max-width: 540px) {
	.ecoben-single-product #tab-description { padding-left: 0; padding-right: 0; }
	.ecoben-single-product .woocommerce-tabs { border: 0 !important; }
}

/* Pasek darmowej dostawy */
.ecoben-cart-progress { padding: 16px 24px 0; }
.ecoben-cart-progress:empty { display: none; }
.ecoben-ship-msg { font-size: 13px; color: var(--eb-ink-soft); margin-bottom: 8px; }
.ecoben-ship-msg strong { color: var(--eb-sage-deep); }
.ecoben-ship-msg.ok { color: var(--eb-sage-deep); font-weight: 600; }
.ecoben-ship-bar { height: 7px; border-radius: 999px; background: var(--eb-cream-warm); overflow: hidden; }
.ecoben-ship-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--eb-sage), var(--eb-sage-light)); border-radius: 999px; transition: width .4s ease; }

/* Pozycja koszyka: ilość +/- */
.ecoben-ci-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.ecoben-ci-qtybox { display: inline-flex; align-items: center; border: 1px solid var(--eb-line); border-radius: 10px; overflow: hidden; }
.ecoben-ci-dec, .ecoben-ci-inc { width: 30px; height: 30px; border: 0; background: none; font-size: 16px; line-height: 1; color: var(--eb-ink); cursor: pointer; }
.ecoben-ci-dec:hover, .ecoben-ci-inc:hover { background: var(--eb-cream); }
.ecoben-ci-q { min-width: 30px; text-align: center; font-weight: 600; font-size: 14px; }
.ecoben-ci-price { font-weight: 600; font-size: 14px; color: var(--eb-navy); white-space: nowrap; }

/* Upsell */
.ecoben-cart-upsell { padding: 4px 24px 0; }
.ecoben-cart-upsell:empty { display: none; }
.ecoben-upsell-title { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--eb-ink-faint); font-weight: 600; margin: 10px 0 8px; }
.ecoben-upsell-item { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--eb-line); border-radius: 12px; margin-bottom: 8px; background: var(--eb-paper); }
.ecoben-upsell-img { width: 44px; height: 44px; border-radius: 8px; overflow: hidden; background: var(--eb-cream); flex: 0 0 auto; }
.ecoben-upsell-img img { width: 100%; height: 100%; object-fit: cover; }
.ecoben-upsell-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ecoben-upsell-name { font-size: 13px; font-weight: 600; line-height: 1.25; }
.ecoben-upsell-price { font-size: 13px; color: var(--eb-ink-faint); }
.ecoben-upsell-add { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--eb-navy); background: #fff; color: var(--eb-navy); font-size: 20px; line-height: 1; cursor: pointer; transition: .15s; }
.ecoben-upsell-add:hover { background: var(--eb-navy); color: #fff; }
.ecoben-upsell-add[disabled] { opacity: .5; cursor: progress; }

/* Zaufanie w stopce koszyka */
.ecoben-cart-trust { display: flex; gap: 16px; justify-content: center; margin-top: 12px; font-size: 11.5px; color: var(--eb-ink-faint); }
.ecoben-cart-trust span { display: inline-flex; align-items: center; gap: 5px; }
.ecoben-cart-trust svg { color: var(--eb-sage); }

/* 1.2.1 — zdjęcie główne bez wewnętrznego paddingu (wypełnia kafelek) */
#ecoben-stage-img { padding: 0; }

/* ===========================================================
   1.3.0 — galeria slajdowa; mobile = scroll-snap z peekiem
   =========================================================== */

/* Slajdy (desktop: widać tylko aktywny, reszta wygaszona) */
.ecoben-single-product .ecoben-slides { position: absolute; inset: 0; }
.ecoben-single-product .ecoben-slide {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .25s ease; cursor: zoom-in;
}
.ecoben-single-product .ecoben-slide.is-active { opacity: 1; }
.ecoben-single-product .ecoben-slide img { width: 100%; height: 100%; object-fit: contain; padding: 0; display: block; }

/* MOBILE: pozioma karuzela z wystającym (peek) kolejnym zdjęciem */
@media (max-width: 768px) {
	.ecoben-single-product .ecoben-stage {
		position: relative;
		aspect-ratio: auto !important;
		overflow: visible !important;
		background: transparent !important;
		border-radius: 0 !important;
	}
	.ecoben-single-product .ecoben-slides {
		position: static !important;
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		padding: 0 7%;
		scrollbar-width: none;
	}
	.ecoben-single-product .ecoben-slides::-webkit-scrollbar { display: none; }
	.ecoben-single-product .ecoben-slide {
		position: static !important;
		flex: 0 0 86%;
		scroll-snap-align: center;
		aspect-ratio: 1 / 1;
		border-radius: 18px;
		overflow: hidden;
		background: linear-gradient(160deg, #F5F1E8 0%, #EAE3D2 100%);
		opacity: .5;
		transform: scale(.93);
		transition: opacity .3s ease, transform .3s ease;
	}
	.ecoben-single-product .ecoben-slide.is-active { opacity: 1; transform: scale(1); }
	.ecoben-single-product .ecoben-gallery.is-single .ecoben-slides { padding: 0; }
	.ecoben-single-product .ecoben-gallery.is-single .ecoben-slide { flex-basis: 100%; opacity: 1; transform: none; }

	/* czysta karuzela — chowamy plakietki i podpowiedź zoom na mobile */
	.ecoben-single-product .ecoben-stage .ecoben-gallery-badge,
	.ecoben-single-product .ecoben-stage .ecoben-gallery-tag,
	.ecoben-single-product .ecoben-zoom-hint { display: none; }
}

/* ===========================================================
   1.4.0 — „Często kupowane razem" (checklista) + fix bump „+"
   =========================================================== */

/* Spójna typografia sekcji FBT */
.ecoben-single-product .ecoben-fbt,
.ecoben-single-product .ecoben-fbt * { font-family: 'Outfit', sans-serif; }
.ecoben-single-product .ecoben-fbt-head h2,
.ecoben-single-product .ecoben-fbt-total-val { font-family: 'Instrument Serif', serif; }

.ecoben-single-product .ecoben-fbt-card {
	display: grid; grid-template-columns: 1fr 280px; gap: 32px; align-items: center; padding: 24px;
}
.ecoben-single-product .ecoben-fbt-list { display: flex; flex-direction: column; gap: 10px; }
.ecoben-single-product .ecoben-fbt-item {
	position: relative;
	display: flex; align-items: center; gap: 14px; width: auto; text-align: left; margin: 0;
	padding: 12px 14px; border: 1px solid var(--eb-line); border-radius: 14px; background: var(--eb-paper);
	cursor: pointer; transition: border-color .15s;
}
.ecoben-single-product .ecoben-fbt-item:hover { border-color: var(--eb-sage-light); }
.ecoben-single-product .ecoben-fbt-check { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.ecoben-single-product .ecoben-fbt-checkbox {
	flex: 0 0 auto; width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--eb-line);
	display: flex; align-items: center; justify-content: center; color: #fff; transition: .15s;
}
.ecoben-single-product .ecoben-fbt-checkbox svg { opacity: 0; }
.ecoben-single-product .ecoben-fbt-check:checked ~ .ecoben-fbt-checkbox { background: var(--eb-sage); border-color: var(--eb-sage); }
.ecoben-single-product .ecoben-fbt-check:checked ~ .ecoben-fbt-checkbox svg { opacity: 1; }
.ecoben-single-product .ecoben-fbt-item.is-current .ecoben-fbt-checkbox { background: var(--eb-navy); border-color: var(--eb-navy); }
.ecoben-single-product .ecoben-fbt-thumb { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 10px; overflow: hidden; background: var(--eb-cream); }
.ecoben-single-product .ecoben-fbt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ecoben-single-product .ecoben-fbt-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.ecoben-single-product .ecoben-fbt-name { font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--eb-ink); }
.ecoben-single-product .ecoben-fbt-name em { color: var(--eb-ink-faint); font-style: normal; font-weight: 500; font-size: 12px; }
.ecoben-single-product .ecoben-fbt-var { max-width: 230px; height: 38px; border: 1px solid var(--eb-line); border-radius: 10px; padding: 0 10px; font-size: 13px; background: #fff; cursor: pointer; }
.ecoben-single-product .ecoben-fbt-price { font-weight: 600; font-size: 14px; color: var(--eb-navy); white-space: nowrap; }
.ecoben-single-product .ecoben-fbt-summary { text-align: center; }
.ecoben-single-product .ecoben-fbt-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.ecoben-single-product .ecoben-fbt-total span { color: var(--eb-ink-soft); }
.ecoben-single-product .ecoben-fbt-total-val { font-size: 30px; color: var(--eb-navy); }
.ecoben-single-product .ecoben-fbt-add { width: 100%; background: var(--eb-navy); color: var(--eb-cream); border: 0; border-radius: 14px; padding: 16px; font-weight: 600; cursor: pointer; transition: background .2s; }
.ecoben-single-product .ecoben-fbt-add:hover { background: var(--eb-navy-soft); }
.ecoben-single-product .ecoben-fbt-add[disabled] { opacity: .7; cursor: progress; }
@media (max-width: 760px) {
	.ecoben-single-product .ecoben-fbt-card { grid-template-columns: 1fr; gap: 20px; padding: 18px; }
	.ecoben-single-product .ecoben-fbt-var { max-width: none; width: 100%; }
}

/* Fix przycisku „+" w bump offerze (równe koło, wyśrodkowany plus) */
.ecoben-upsell-add {
	flex: 0 0 34px !important;
	width: 34px !important; height: 34px !important;
	min-width: 34px !important; min-height: 34px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	border: 1.5px solid var(--eb-navy);
	background: #fff; color: var(--eb-navy);
	display: flex !important; align-items: center; justify-content: center;
	font-size: 22px; line-height: 1; cursor: pointer; transition: .15s; aspect-ratio: 1 / 1;
}
.ecoben-upsell-add:hover { background: var(--eb-navy); color: #fff; }

/* ===========================================================
   1.5.0 — FBT karty (siatka, czytelny wybór, rabat na zestaw)
   =========================================================== */
.ecoben-single-product .ecoben-fbt-hint { text-align: center; color: var(--eb-ink-faint); font-size: 13px; margin: -10px 0 22px; }
.ecoben-single-product .ecoben-fbt-card { display: block; padding: 24px; }
.ecoben-single-product .ecoben-fbt-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
	margin-bottom: 22px;
}
.ecoben-single-product .ecoben-fbt-item {
	position: relative;
	display: flex; flex-direction: column; align-items: center; text-align: center;
	gap: 8px; width: auto; margin: 0;
	padding: 16px 12px 14px;
	border: 1.5px solid var(--eb-line); border-radius: 16px; background: var(--eb-paper);
	cursor: pointer; transition: border-color .15s, opacity .15s, box-shadow .15s;
}
.ecoben-single-product .ecoben-fbt-item:hover { border-color: var(--eb-sage-light); }
.ecoben-single-product .ecoben-fbt-item.is-off { opacity: .5; }
.ecoben-single-product .ecoben-fbt-check { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }

.ecoben-single-product .ecoben-fbt-tick {
	position: absolute; top: 10px; left: 10px;
	width: 24px; height: 24px; border-radius: 50%;
	border: 2px solid var(--eb-line); background: #fff; color: #fff;
	display: flex; align-items: center; justify-content: center; transition: .15s;
}
.ecoben-single-product .ecoben-fbt-tick svg { opacity: 0; }
.ecoben-single-product .ecoben-fbt-check:checked ~ .ecoben-fbt-tick { background: var(--eb-sage); border-color: var(--eb-sage); }
.ecoben-single-product .ecoben-fbt-check:checked ~ .ecoben-fbt-tick svg { opacity: 1; }
.ecoben-single-product .ecoben-fbt-item.is-current .ecoben-fbt-tick { background: var(--eb-navy); border-color: var(--eb-navy); }

.ecoben-single-product .ecoben-fbt-thumb { width: 100%; max-width: 120px; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--eb-cream); }
.ecoben-single-product .ecoben-fbt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ecoben-single-product .ecoben-fbt-name { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--eb-ink); }
.ecoben-single-product .ecoben-fbt-name em { display: block; font-style: normal; font-weight: 500; font-size: 11px; color: var(--eb-ink-faint); margin-top: 2px; }
.ecoben-single-product .ecoben-fbt-var { width: 100%; height: 36px; border: 1px solid var(--eb-line); border-radius: 9px; padding: 0 8px; font-size: 12.5px; background: #fff; cursor: pointer; }
.ecoben-single-product .ecoben-fbt-price { font-weight: 700; font-size: 14px; color: var(--eb-navy); margin-top: auto; }

/* Podsumowanie zestawu + rabat */
.ecoben-single-product .ecoben-fbt-summary { text-align: center; max-width: 460px; margin: 0 auto; }
.ecoben-single-product .ecoben-fbt-total { display: flex; justify-content: center; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.ecoben-single-product .ecoben-fbt-total > span:first-child { color: var(--eb-ink-soft); }
.ecoben-single-product .ecoben-fbt-prices { display: inline-flex; align-items: baseline; gap: 10px; }
.ecoben-single-product .ecoben-fbt-old { color: var(--eb-ink-faint); font-size: 18px; text-decoration: line-through; }
.ecoben-single-product .ecoben-fbt-total-val { font-size: 34px; color: var(--eb-navy); }
.ecoben-single-product .ecoben-fbt-savemsg {
	display: inline-block; margin: 4px 0 16px;
	background: var(--eb-sage); color: #fff; font-weight: 700; font-size: 13px;
	padding: 7px 16px; border-radius: 999px;
}
.ecoben-single-product .ecoben-fbt-add { display: block; width: 100%; max-width: 360px; margin: 0 auto; }

/* ===========================================================
   1.5.0 — strona /koszyk
   =========================================================== */
.ecoben-cartpage-ship {
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 14px;
	padding: 15px 18px; margin: 0 0 22px;
}
.ecoben-cartpage-ship.is-unlocked { border-color: var(--eb-sage); background: linear-gradient(0deg, rgba(74,124,89,.06), rgba(74,124,89,.06)), var(--eb-paper); }
.ecoben-ship-inner { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.ecoben-ship-inner .ecoben-ship-msg { margin-bottom: 0; font-size: 14px; }
.ecoben-ship-ic { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; background: var(--eb-cream-warm); color: var(--eb-sage-deep); display: inline-flex; align-items: center; justify-content: center; }
.ecoben-cartpage-ship.is-unlocked .ecoben-ship-ic { background: var(--eb-sage); color: #fff; }
.ecoben-cartpage-ship,
.ecoben-cartpage-ship *,
.ecoben-cartpage-ship .ecoben-ship-msg,
.ecoben-cartpage-ship .ecoben-ship-msg strong,
.ecoben-cartpage-ship .woocommerce-Price-amount,
.ecoben-cartpage-ship .woocommerce-Price-amount *,
.ecoben-cartpage-ship .woocommerce-Price-currencySymbol { font-family: 'Outfit', sans-serif !important; }
.ecoben-cartpage-trust { margin-top: 14px; }

/* Anty-flash: kupon koszyka ukryty od KLATKI ZERO; toggle „Masz kod rabatowy?" pokazuje go
   przez klasę .ecoben-coupon-open. 1.55.0 — selektory na poziomie specyficzności Kadence:
   motyw ma `.woocommerce-cart table.cart td.actions .coupon .input-text{height:38px}` i
   `.button{height:38px;line-height:38px}` (0,4,3) — nasze 3-klasowe reguły z 1.54.0
   przegrywały, a sztywny height:38px PRZYCINAŁ tekst przycisku. Tu: ta sama baza
   selektora co Kadence + jawny height:auto/min-height. */
.woocommerce-cart table.cart td.actions { text-align: left; }
.woocommerce-cart table.cart td.actions .ecoben-coupon-toggle {
	display: block; width: 100%; text-align: left;
	background: var(--eb-cream-warm); border: 1px solid var(--eb-line); border-left: 3px solid var(--eb-sage);
	border-radius: 12px; padding: 12px 16px; font-size: 14px; color: var(--eb-ink-soft);
	margin: 0 0 12px; cursor: pointer;
}
.woocommerce-cart table.cart td.actions .ecoben-coupon-toggle:hover { border-left-color: var(--eb-sage-deep); }
.woocommerce-cart table.cart td.actions .coupon { display: none !important; }
.woocommerce-cart table.cart td.actions .coupon.ecoben-coupon-open {
	display: flex !important; float: none; flex-wrap: wrap; align-items: stretch; gap: 10px;
	width: 100%; height: auto !important; overflow: visible;
	border: 1px solid var(--eb-line); border-radius: 14px; padding: 14px 16px;
	margin: 0 0 16px; background: var(--eb-paper); position: relative;
}
/* Nachodzący tekst: label „Kupon:" wycięty niezależnie od resetów motywu */
.woocommerce-cart table.cart td.actions .coupon label {
	position: absolute !important; width: 1px !important; height: 1px !important;
	overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important;
}
.woocommerce-cart table.cart td.actions .coupon .input-text {
	float: none; flex: 1 1 220px; width: auto; min-width: 0;
	height: auto; min-height: 48px; margin: 0; box-sizing: border-box;
	border: 1px solid var(--eb-line); border-radius: 10px; padding: 0 14px;
}
.woocommerce-cart table.cart td.actions .coupon .button {
	float: none; flex: 0 0 auto; width: auto;
	height: auto; min-height: 48px; line-height: 1.2;
	background: var(--eb-navy); color: var(--eb-cream);
	border: 0; border-radius: 10px; padding: 12px 22px;
	font-weight: 600; font-size: 15px; white-space: nowrap; cursor: pointer;
}
.woocommerce-cart table.cart td.actions .coupon .button:hover,
.woocommerce-cart table.cart td.actions .coupon .button:not(:hover) {
	background: var(--eb-navy); color: var(--eb-cream); /* bije Kadence .button:not(:hover){palette} */
}
.woocommerce-cart table.cart td.actions .coupon .button:hover { background: var(--eb-navy-soft); }
@media (max-width: 560px) {
	.woocommerce-cart table.cart td.actions .coupon.ecoben-coupon-open { flex-direction: column; align-items: stretch; }
	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce-cart table.cart td.actions .coupon .button { flex: 1 1 auto; width: 100%; }
}
/* „Zaktualizuj koszyk" = martwy w naszym layoucie (ilości aktualizuje AJAX) */
.woocommerce-cart table.cart td.actions > .button[name="update_cart"] { display: none !important; }

/* Anty-flash sekcji „Dobierz do zamówienia" (addony): ukryte do czasu umieszczenia przez JS.
   Na mobile JS przenosi je nad podsumowanie — bez tego błyskały na dole i skakały w górę.
   FALLBACK: gdyby JS się nie wykonał, odsłaniamy po 1.2s (niezawodność > gładkość). */
.woocommerce-cart .ecoben-addons { visibility: hidden; animation: ecbAddonsReveal 0s linear 1.2s forwards; }
.woocommerce-cart .ecoben-addons.is-placed { visibility: visible; animation: none; }
@keyframes ecbAddonsReveal { to { visibility: visible; } }

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background: var(--eb-navy) !important; color: var(--eb-cream) !important;
	border-radius: 14px !important; font-weight: 600 !important; padding: 16px 22px !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--eb-navy-soft) !important; }
.woocommerce-cart .cart_totals h2 { font-family: 'Instrument Serif', serif; font-weight: 400; }

/* Sticky CTA na mobile */
.ecoben-cart-sticky[hidden] { display: none !important; } /* pusty wrapper (koszyk pusty po AJAX) — zawsze ukryty, też na mobile */
.ecoben-cart-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
	display: none; align-items: center; justify-content: space-between; gap: 12px;
	background: var(--eb-paper); border-top: 1px solid var(--eb-line);
	padding: 12px 16px; box-shadow: 0 -8px 24px rgba(0,0,0,.07);
}
.ecoben-cart-sticky-total { display: flex; flex-direction: column; line-height: 1.1; }
.ecoben-cart-sticky-label { font-family: 'Outfit', sans-serif; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--eb-ink-faint); margin-bottom: 2px; }
.ecoben-cart-sticky-btn {
	background: var(--eb-navy); color: var(--eb-cream); text-decoration: none;
	padding: 13px 24px; border-radius: 12px; font-weight: 600; white-space: nowrap;
}
@media (max-width: 768px) {
	.ecoben-cart-sticky { display: flex; }
	body.woocommerce-cart { padding-bottom: 84px; }
}

/* ===========================================================
   1.6.0 — FBT (środek + kwadraty) oraz premium /koszyk
   =========================================================== */

/* R14-3 DEDUP: usunięto zdublowane reguły FBT z 1.6.0 (display:flex + flex-wrap:wrap
   wstrzykiwały zawijanie do mobilnej karuzeli → flex zawijał zamiast scrollować).
   Aktywny układ FBT: blok 1.6.1/1.26.0 (desktop grid) + 1.28.0 karuzela mobile niżej. */

/* ===========================================================
   PREMIUM /koszyk
   =========================================================== */
.woocommerce-cart .cart-summary h2,
.woocommerce-cart .cart_totals h2,
.woocommerce-cart .cross-sells > h2 {
	font-family: 'Instrument Serif', serif; font-weight: 400; color: var(--eb-navy); font-size: 30px;
}
.woocommerce-cart .cart-content-wrapper,
.woocommerce-cart table.cart,
.woocommerce-cart .cart_totals { font-family: 'Outfit', sans-serif; }

/* Tabela koszyka — lekka, kartowa */
.woocommerce-cart table.cart { border: 0; }
.woocommerce-cart table.cart thead th {
	border: 0; border-bottom: 1px solid var(--eb-line);
	color: var(--eb-ink-faint); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .04em;
}
.woocommerce-cart table.cart td { border-top: 1px solid var(--eb-line); background: transparent; vertical-align: middle; }
.woocommerce-cart table.cart img { border-radius: 12px; }
.woocommerce-cart table.cart td.product-name a { color: var(--eb-ink); font-weight: 600; text-decoration: none; }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--eb-navy); }
.woocommerce-cart table.cart .variation, .woocommerce-cart table.cart .variation p { font-size: 12px; color: var(--eb-sage-deep); margin: 4px 0 0; }
.woocommerce-cart .product-subtotal { font-weight: 700; color: var(--eb-navy); }
.woocommerce-cart .quantity input.qty {
	border: 1px solid var(--eb-line) !important; border-radius: 10px !important; min-height: 44px; text-align: center;
}

/* Akcje (kupon / aktualizuj) */
.woocommerce-cart .cart .actions { padding-top: 8px; }
.woocommerce-cart .cart .actions .button[name="update_cart"] {
	background: #fff !important; color: var(--eb-navy) !important; border: 1.5px solid var(--eb-line) !important;
	border-radius: 12px !important; font-weight: 600 !important;
}
.woocommerce-cart .cart .actions .coupon .input-text {
	border: 1px solid var(--eb-line); border-radius: 12px; min-height: 46px; padding: 0 14px;
}
.woocommerce-cart .cart .actions .coupon .button {
	background: var(--eb-navy) !important; color: var(--eb-cream) !important; border-radius: 12px !important; font-weight: 600 !important;
}

/* Podsumowanie — biała karta premium */
.woocommerce-cart .cart_totals {
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 20px;
	padding: 26px; box-shadow: 0 14px 34px rgba(10,31,68,.06);
}
.woocommerce-cart .cart_totals table { border: 0; margin-bottom: 14px; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td { border-top: 1px solid var(--eb-line); padding: 12px 0; }
.woocommerce-cart .cart_totals .order-total .amount { font-family: 'Instrument Serif', serif; font-size: 26px; color: var(--eb-navy); }
.woocommerce-cart .cart_totals ul#shipping_method li { margin-bottom: 6px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block; text-align: center;
	background: var(--eb-navy) !important; color: var(--eb-cream) !important;
	border-radius: 14px !important; font-weight: 600 !important; padding: 17px !important; font-size: 16px !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--eb-navy-soft) !important; }

/* Cross-sells na dole koszyka */
.woocommerce-cart .cross-sells { margin-top: 40px; }

@media (max-width: 1024px) {
	.woocommerce-cart .cart_totals { margin-top: 24px; }
}

/* ===========================================================
   1.6.1 / 1.26.0 — FBT responsywnie:
   mobile = 2 kolumny (grid, bez kurczenia flex-shrink do 3 → koniec 6-linijkowych tytułów);
   desktop = lista po lewej + podsumowanie w prawej kolumnie (mniej pionu).
   =========================================================== */
.ecoben-single-product .ecoben-fbt-card { display: block; padding: 20px; }
.ecoben-single-product .ecoben-fbt-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;                       /* R7-E: ciaśniej, więcej oddechu w kartach */
	margin: 0 0 18px;
	max-width: none;
}
.ecoben-single-product .ecoben-fbt-item { flex: none; width: auto; max-width: none; box-sizing: border-box; }
.ecoben-single-product .ecoben-fbt-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12.5px; }
.ecoben-single-product .ecoben-fbt-thumb { width: 100%; max-width: 90px; margin: 0 auto; aspect-ratio: 1 / 1; }
.ecoben-single-product .ecoben-fbt-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 0; }

@media (min-width: 761px) {
	.ecoben-single-product .ecoben-fbt-card { display: grid; grid-template-columns: 1fr 280px; gap: 28px; align-items: start; padding: 24px; }
	/* minmax 170px (czujka 2): przy 3 produktach karty zostają szerokie, tytuł 1–2 linie */
	.ecoben-single-product .ecoben-fbt-list { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin: 0; }
	.ecoben-single-product .ecoben-fbt-name { font-size: 13px; }
	.ecoben-single-product .ecoben-fbt-summary { text-align: left; max-width: none; margin: 0; background: var(--eb-cream); border: 1px solid var(--eb-line); border-radius: 16px; padding: 20px; }
	.ecoben-single-product .ecoben-fbt-total { justify-content: space-between; margin-bottom: 8px; }
	/* R7-E: kwota bez łamania na 2 linie, mniejsze old-price/„Oszczędzasz" — zwarty panel */
	.ecoben-single-product .ecoben-fbt-total-val { font-size: 25px; white-space: nowrap; }
	.ecoben-single-product .ecoben-fbt-old { font-size: 15px; }
	.ecoben-single-product .ecoben-fbt-savemsg { font-size: 12px; padding: 5px 12px; margin: 4px 0 12px; }
	.ecoben-single-product .ecoben-fbt-add { max-width: none; }
}
/* R15-1: usunięto ≤360px grid 1fr dla .ecoben-fbt-list — mobile to teraz JEDNA karuzela (≤760px, niżej). */

/* /koszyk — drobne dopracowanie */
.woocommerce-cart .cart-summary h2 { display: none; }                 /* duplikat „Podsumowanie koszyka" nad tabelą */
.woocommerce-cart table.cart td.product-thumbnail img {
	width: 72px !important; height: 72px !important; min-width: 72px !important; border-radius: 12px;
}
.woocommerce-cart table.cart td { padding-top: 18px !important; padding-bottom: 18px !important; }
.woocommerce-cart ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-cart ul#shipping_method li { display: flex; align-items: center; gap: 8px; }

/* ===========================================================
   1.7.0 — „Dobierz do zamówienia" (inline upsell w koszyku)
   =========================================================== */
.woocommerce-cart .ecoben-addons {
	margin: 28px 0;
	padding: 24px;
	background: var(--eb-cream);
	border: 1px solid var(--eb-line);
	border-radius: 20px;
	font-family: 'Outfit', sans-serif;
}
.woocommerce-cart .ecoben-addons-head { text-align: center; margin-bottom: 20px; }
.woocommerce-cart .ecoben-addons-head .ecoben-eyebrow {
	display: inline-block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
	color: var(--eb-sage-deep); border: 1px solid var(--eb-sage); border-radius: 999px; padding: 6px 14px; margin-bottom: 10px;
}
.woocommerce-cart .ecoben-addons-head h2 {
	font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: clamp(22px, 2.4vw, 30px);
	color: var(--eb-ink); margin: 0; display: block;
}
.woocommerce-cart .ecoben-addons-ship {
	margin: 8px 0 0; font-size: 13.5px; color: var(--eb-sage-deep); background: rgba(74,124,89,.1);
	display: inline-block; padding: 6px 14px; border-radius: 999px;
}
.woocommerce-cart .ecoben-addons-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.woocommerce-cart .ecoben-addon {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 16px; padding: 16px 12px;
	transition: border-color .15s, box-shadow .15s;
}
.woocommerce-cart .ecoben-addon:hover { border-color: var(--eb-sage-light); box-shadow: 0 10px 24px rgba(10,31,68,.06); }
.woocommerce-cart .ecoben-addon-img { width: 100%; max-width: 120px; aspect-ratio: 1/1; border-radius: 12px; overflow: hidden; background: var(--eb-cream); }
.woocommerce-cart .ecoben-addon-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.woocommerce-cart .ecoben-addon-name { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--eb-ink); text-decoration: none; }
.woocommerce-cart .ecoben-addon-name:hover { color: var(--eb-navy); }
.woocommerce-cart .ecoben-addon-rating { font-size: 12px; color: var(--eb-gold); font-weight: 600; }
.woocommerce-cart .ecoben-addon-rating small { color: var(--eb-ink-faint); font-weight: 400; }
.woocommerce-cart .ecoben-addon-price { font-size: 14px; font-weight: 700; color: var(--eb-navy); margin-top: auto; }
.woocommerce-cart .ecoben-addon-price del { color: var(--eb-ink-faint); font-weight: 400; font-size: 12px; }
.woocommerce-cart .ecoben-addon-price ins { text-decoration: none; }
.woocommerce-cart .ecoben-addon-add {
	margin-top: 6px; width: 100%;
	background: var(--eb-navy); color: var(--eb-cream); border: 0; border-radius: 12px;
	padding: 11px 10px; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13.5px; cursor: pointer;
	text-decoration: none; display: inline-block; text-align: center; transition: background .2s;
}
.woocommerce-cart .ecoben-addon-add:hover { background: var(--eb-navy-soft); color: var(--eb-cream); }
.woocommerce-cart .ecoben-addon-add[disabled] { opacity: .75; cursor: progress; }
.woocommerce-cart .ecoben-addon-choose { background: #fff; color: var(--eb-navy); border: 1.5px solid var(--eb-navy); }
.woocommerce-cart .ecoben-addon-choose:hover { background: var(--eb-navy); color: var(--eb-cream); }

@media (max-width: 900px) { .woocommerce-cart .ecoben-addons-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .woocommerce-cart .ecoben-addons-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* ===========================================================
   1.8.0 — KOSZYK redesign (mobile karty, desktop czysto, qty +/- AJAX)
   =========================================================== */

/* Ukryj „Zaktualizuj koszyk" (aktualizacja jest automatyczna) */
.woocommerce-cart .cart .actions button[name="update_cart"],
.woocommerce-cart .cart .actions input[name="update_cart"] { display: none !important; }
.woocommerce-cart.ecoben-cart-loading .cart_totals,
.woocommerce-cart.ecoben-cart-loading .product-subtotal { opacity: .45; transition: opacity .2s; }

/* Ilość +/- w koszyku */
.woocommerce-cart .cart_item .quantity {
	display: inline-flex !important; align-items: center; border: 1px solid var(--eb-line);
	border-radius: 12px; overflow: hidden; background: #fff; width: auto;
}
.woocommerce-cart .cart_item .quantity .ecoben-qty-btn {
	width: 38px; height: 44px; border: 0; background: none; font-size: 18px; line-height: 1; color: var(--eb-ink); cursor: pointer;
}
.woocommerce-cart .cart_item .quantity .ecoben-qty-btn:hover { background: var(--eb-cream); }
.woocommerce-cart .cart_item .quantity input.qty {
	width: 42px !important; height: 44px; min-height: 44px !important; padding: 0 !important;
	border: 0 !important; border-left: 1px solid var(--eb-line) !important; border-right: 1px solid var(--eb-line) !important;
	border-radius: 0 !important; text-align: center; font-weight: 600; background: transparent; -moz-appearance: textfield;
}
.woocommerce-cart .cart_item .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .cart_item .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Przycisk usuń (×) */
.woocommerce-cart td.product-remove a.remove {
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 26px; height: 26px; line-height: 1; font-size: 18px;
	color: var(--eb-ink-faint) !important; background: var(--eb-cream) !important; border-radius: 50%;
}
.woocommerce-cart td.product-remove a.remove:hover { background: var(--eb-rose) !important; color: #fff !important; }

/* DESKTOP — czysta tabela */
@media (min-width: 769px) {
	.woocommerce-cart table.cart td.product-thumbnail img { width: 80px !important; height: 80px !important; min-width: 80px !important; }
	.woocommerce-cart table.cart td { padding: 20px 14px !important; vertical-align: middle; }
	.woocommerce-cart table.cart td.product-name a { font-size: 15.5px; }
	.woocommerce-cart table.cart td.product-price,
	.woocommerce-cart table.cart td.product-subtotal { font-size: 15px; }
}

/* MOBILE — każdy produkt jako karta */
@media (max-width: 768px) {
	.woocommerce-cart table.cart thead { display: none; }
	.woocommerce-cart table.cart,
	.woocommerce-cart table.cart tbody { display: block; width: 100%; }
	.woocommerce-cart table.cart tr.cart_item {
		display: grid !important;
		grid-template-columns: 64px 1fr auto;
		grid-template-areas: "img name remove" "img price qty" "img sub sub";
		gap: 4px 12px; align-items: center;
		background: #fff; border: 1px solid var(--eb-line); border-radius: 16px;
		padding: 14px !important; margin: 0 0 12px !important;
	}
	.woocommerce-cart table.cart tr.cart_item td {
		display: block; border: 0 !important; padding: 0 !important; margin: 0 !important; text-align: left !important; width: auto !important;
	}
	.woocommerce-cart table.cart tr.cart_item td::before { display: none !important; }
	.woocommerce-cart table.cart td.product-remove { grid-area: remove; justify-self: end; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-area: img; }
	.woocommerce-cart table.cart td.product-thumbnail img { width: 64px !important; height: 64px !important; min-width: 64px !important; }
	.woocommerce-cart table.cart td.product-name { grid-area: name; font-size: 14px; line-height: 1.3; }
	.woocommerce-cart table.cart td.product-name a { font-weight: 600; }
	.woocommerce-cart table.cart td.product-price { grid-area: price; color: var(--eb-ink-faint); font-size: 13.5px; }
	.woocommerce-cart table.cart td.product-quantity { grid-area: qty; justify-self: end; }
	.woocommerce-cart table.cart td.product-subtotal {
		grid-area: sub; font-weight: 700; color: var(--eb-navy); font-size: 15px;
		border-top: 1px solid var(--eb-line) !important; padding-top: 10px !important; margin-top: 4px !important;
	}
	.woocommerce-cart table.cart .variation { margin-top: 2px; }
	.woocommerce-cart .cart-collaterals, .woocommerce-cart .cart_totals { width: 100% !important; float: none !important; }
	.woocommerce-cart .cart .actions { padding: 6px 0 0 !important; }
}

/* ===========================================================
   1.9.0 — koszyk: oddech, pełna szerokość „Dobierz", select wariantu
   =========================================================== */

/* „Dobierz do zamówienia" — pełna szerokość (przeniesione JS poza formularz) */
.woocommerce-cart .ecoben-addons { max-width: none !important; margin: 32px 0 0; padding: 28px; }
.woocommerce-cart .ecoben-addons-grid { gap: 16px; }
.woocommerce-cart .ecoben-addon { padding: 18px 14px; gap: 8px; }
.woocommerce-cart .ecoben-addon-img { max-width: 140px; }
.woocommerce-cart .ecoben-addon-var {
	width: 100%; height: 38px; border: 1px solid var(--eb-line); border-radius: 10px;
	padding: 0 10px; font-size: 12.5px; background: #fff; cursor: pointer; margin-top: 2px;
}

/* Koszyk — mniej ściśnięte: oddech w wierszach, mniejsze kontrolki */
@media (min-width: 769px) {
	.woocommerce-cart table.cart td { padding: 24px 16px !important; }
	.woocommerce-cart table.cart td.product-thumbnail img { width: 72px !important; height: 72px !important; min-width: 72px !important; }
	.woocommerce-cart table.cart td.product-name a { font-size: 15px; line-height: 1.45; }
	.woocommerce-cart table.cart thead th { padding-bottom: 14px; }
	.woocommerce-cart .cart_item .quantity .ecoben-qty-btn { width: 34px; height: 40px; font-size: 16px; }
	.woocommerce-cart .cart_item .quantity input.qty { width: 40px !important; height: 40px; min-height: 40px !important; }
	.woocommerce-cart .cart_totals { padding: 28px; }
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td { padding: 14px 0; font-size: 14.5px; }
	.woocommerce-cart .cart_totals .order-total .amount { font-size: 24px; }
	.woocommerce-cart ul#shipping_method li { line-height: 1.5; margin-bottom: 8px; }
}
@media (max-width: 900px) {
	.woocommerce-cart .ecoben-addons-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===========================================================
   1.10.0 — koszyk: szersze podsumowanie, oddech, mobile bez szarości
   =========================================================== */
@media (min-width: 769px) {
	/* Dwie kolumny: lista (szeroka) + podsumowanie (wyraźnie szersze niż dotąd) */
.woocommerce-cart .cart_totals { width: 100% !important; padding: 30px 32px !important; }
	.woocommerce-cart .cart_totals h2 { font-size: 27px; margin-bottom: 4px; }
	.woocommerce-cart .cart_totals table { margin-bottom: 18px; }
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td { padding: 16px 0 !important; font-size: 15px; line-height: 1.6; }
	.woocommerce-cart .cart_totals .order-total th { font-size: 16px; }
	.woocommerce-cart .cart_totals .order-total .amount { font-size: 28px; }
	.woocommerce-cart .cart_totals .woocommerce-shipping-methods li { line-height: 1.6; margin-bottom: 8px; }
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { padding: 18px !important; font-size: 16px !important; margin-top: 6px; }
	.woocommerce-cart .ecoben-cartpage-trust { margin-top: 18px; gap: 18px; }
}

/* MOBILE: stackowanie kolumn + usunięcie szarych teł komórek */
@media (max-width: 768px) {
.woocommerce-cart table.cart tr.cart_item { background: #fff !important; }
	.woocommerce-cart table.cart tr.cart_item td,
	.woocommerce-cart table.cart tr.cart_item td.product-name,
	.woocommerce-cart table.cart tr.cart_item td.product-price,
	.woocommerce-cart table.cart tr.cart_item td.product-subtotal { background: transparent !important; }
	.woocommerce-cart .cart_totals { margin-top: 22px; padding: 22px !important; }
	.woocommerce-cart .cart_totals h2 { font-size: 24px; }
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td { padding: 14px 0 !important; }
}

/* ===========================================================
   1.10.2 — cena bez promocji (duża) + układ tabeli sum
   =========================================================== */

/* Cena produktu prostego: duża i spójna z/bez promocji */
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price,
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price .amount,
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price ins,
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price ins .amount {
	font-family: 'Instrument Serif', serif !important;
	font-size: 44px !important;
	line-height: 1 !important;
	color: var(--eb-navy) !important;
	text-decoration: none !important;
}
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price del,
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price del .amount {
	font-family: 'Outfit', sans-serif !important;
	font-size: 17px !important;
	color: var(--eb-ink-faint) !important;
}
@media (max-width: 768px) {
	.ecoben-single-product .ecoben-price-block .ecoben-price-row .price,
	.ecoben-single-product .ecoben-price-block .ecoben-price-row .price .amount,
	.ecoben-single-product .ecoben-price-block .ecoben-price-row .price ins,
	.ecoben-single-product .ecoben-price-block .ecoben-price-row .price ins .amount { font-size: 36px !important; }
}

/* Tabela podsumowania: wąska kolumna etykiet, szeroka na dostawę */
@media (min-width: 769px) {
	.woocommerce-cart .cart_totals table.shop_table th {
		width: 92px !important; padding-right: 12px !important; vertical-align: top; font-size: 14px;
	}
	.woocommerce-cart .cart_totals table.shop_table td { width: auto !important; }
}
.woocommerce-cart .cart_totals ul#shipping_method { margin: 0; padding: 0; }
.woocommerce-cart .cart_totals ul#shipping_method li { line-height: 1.5; margin-bottom: 8px; }
.woocommerce-cart .cart_totals ul#shipping_method li label { font-size: 14px; }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination { font-size: 13px; color: var(--eb-ink-faint); }

/* ===========================================================
   1.11.0 — mini-koszyk: szerszy (550px) + elementy ~10% mniejsze
   =========================================================== */
.ecoben-cart-drawer { width: 550px; max-width: 92vw; }

.ecoben-cart-head { padding: 18px 22px; }
.ecoben-cart-title { font-size: 22px; }
.ecoben-cart-count { font-size: 11px; padding: 1px 8px; }
.ecoben-cart-close { font-size: 24px; }

.ecoben-cart-progress { padding: 14px 22px 0; }
.ecoben-ship-msg { font-size: 12px; margin-bottom: 7px; }
.ecoben-ship-bar { height: 6px; }

.ecoben-cart-body { padding: 14px 22px; }
.ecoben-ci { gap: 12px; padding: 12px 0; }
.ecoben-ci-img { width: 54px; height: 54px; }
.ecoben-ci-name { font-size: 13px; margin-bottom: 3px; }
.ecoben-ci-row { margin-top: 7px; }
.ecoben-ci-price { font-size: 13px; }
.ecoben-ci-remove { font-size: 18px; }
.ecoben-ci-qtybox .ecoben-ci-dec,
.ecoben-ci-qtybox .ecoben-ci-inc { width: 27px; height: 27px; font-size: 15px; }
.ecoben-ci-q { min-width: 26px; font-size: 13px; }

.ecoben-cart-upsell { padding: 2px 22px 0; }
.ecoben-upsell-title { font-size: 11px; margin: 8px 0 7px; }
.ecoben-upsell-item { padding: 9px; gap: 10px; margin-bottom: 7px; }
.ecoben-upsell-img { width: 40px; height: 40px; }
.ecoben-upsell-name { font-size: 12.5px; }
.ecoben-upsell-price { font-size: 12.5px; }
.ecoben-upsell-add { width: 30px !important; height: 30px !important; min-width: 30px !important; min-height: 30px !important; font-size: 19px; }

.ecoben-cart-foot { padding: 18px 22px; }
.ecoben-cart-subtotal { font-size: 14px; margin-bottom: 14px; }
.ecoben-cart-subtotal strong { font-size: 23px; }
.ecoben-cart-checkout { padding: 14px; }
.ecoben-cart-view { font-size: 13px; margin-top: 9px; }
.ecoben-cart-trust { font-size: 11px; gap: 14px; margin-top: 11px; }

/* ===========================================================
   1.11.3 — wyrównanie ilości + grubość ceny bez promocji
   =========================================================== */

/* Pole ilości dosunięte do lewej (bez doklejonego marginesu) */
.ecoben-single-product .ecoben-price-block form.cart { justify-content: flex-start; padding-left: 0; }
.ecoben-single-product .ecoben-price-block form.cart .quantity { margin: 0 !important; }
.ecoben-single-product .ecoben-price-block form.cart .quantity input.qty { margin: 0 !important; }
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart { padding-left: 0; }
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart .quantity { margin: 0 !important; }

/* Cena BEZ promocji (brak del/ins) — grubość 700 */
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price > .amount,
.ecoben-single-product .ecoben-price-block .ecoben-price-row .price > .amount bdi,
.ecoben-single-product .ecoben-price-block .single_variation .price > .amount {
	font-weight: 700 !important;
}

/* ===========================================================
   1.11.4 — koszyk: mobile (karty, bez ceny jedn., × w rogu) + równe szerokości
   =========================================================== */

/* DESKTOP: koszyk i „Dobierz" identycznej, pełnej szerokości */
@media (min-width: 769px) {
.woocommerce-cart .ecoben-addons { width: 100% !important; box-sizing: border-box; margin-left: 0 !important; margin-right: 0 !important; }
}

/* MOBILE: karta produktu bez ceny jednostkowej, × w rogu, mniejsze +/- */
@media (max-width: 768px) {
	.woocommerce-cart table.cart tr.cart_item {
		grid-template-columns: 60px 1fr auto !important;
		grid-template-areas: "img name remove" "img qty sub" !important;
		align-items: center;
	}
	.woocommerce-cart table.cart td.product-price { display: none !important; }
	.woocommerce-cart table.cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-area: img; }
	.woocommerce-cart table.cart td.product-name { grid-area: name; }
	.woocommerce-cart table.cart td.product-quantity { grid-area: qty; justify-self: start; }
	.woocommerce-cart table.cart td.product-subtotal {
		grid-area: sub; justify-self: end;
		border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important;
	}
	/* mniejsze +/- */
	.woocommerce-cart .cart_item .quantity .ecoben-qty-btn { width: 30px; height: 34px; font-size: 15px; }
	.woocommerce-cart .cart_item .quantity input.qty { width: 32px !important; height: 34px; min-height: 34px !important; }
	/* bez szarego tła pod „Paczka 1" / metodą wysyłki */
	.woocommerce-cart .cart_totals table tr,
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td { background: transparent !important; }
}

/* ===========================================================
   1.11.5 — produkt: ilość dosunięta do lewej, font Outfit, mniejsza
   =========================================================== */

/* Brak GAP w rzędzie ilość+przycisk; odstęp daje margines przycisku */
.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form) { gap: 0 !important; }
.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form) .single_add_to_cart_button { margin-left: 12px; }
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart { gap: 0 !important; }
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart .single_add_to_cart_button { margin-left: 12px; }

/* Pole ilości: dosunięte, kompaktowe, font Outfit */
.ecoben-single-product .ecoben-price-block .quantity { margin: 0 !important; float: none !important; height: 56px; }
.ecoben-single-product .ecoben-price-block .quantity .ecoben-qty-btn {
	width: 40px; height: 56px; font-size: 17px; font-family: 'Outfit', sans-serif;
}
.ecoben-single-product .ecoben-price-block .quantity input.qty {
	width: 42px !important; height: 56px;
	font-family: 'Outfit', sans-serif !important; font-weight: 600; font-size: 15px;
}

/* Font Outfit dla pól ilości i przycisków +/- WSZĘDZIE (spójność) */
.ecoben-qty-btn,
.ecoben-ci-q, .ecoben-ci-dec, .ecoben-ci-inc,
.ecoben-cart-drawer input.qty,
.woocommerce-cart .cart_item input.qty,
.ecoben-price-block input.qty { font-family: 'Outfit', sans-serif !important; }

/* ===========================================================
   1.12.0 — koszyk: responsywny grid 2-kol, bez kolumny CENA, sticky font
   =========================================================== */

/* Neutralizujemy ewentualne hacki (min-width/margin) i robimy czysty grid */
@media (min-width: 1025px) {
.woocommerce-cart .cart_totals { width: 100% !important; min-width: 0 !important; }
}
@media (max-width: 1024px) {
.woocommerce-cart .cart-collaterals { margin-top: 24px !important; }
}

/* Kolumna CENA (cena jednostkowa) usunięta — tytuł dostaje miejsce */
.woocommerce-cart table.cart th.product-price,
.woocommerce-cart table.cart td.product-price { display: none !important; }

/* Sticky bar koszyka (mobile) — font Outfit + pogrubiona kwota */
.ecoben-cart-sticky,
.ecoben-cart-sticky *,
.ecoben-cart-sticky-total .woocommerce-Price-amount,
.ecoben-cart-sticky-total .woocommerce-Price-amount *,
.ecoben-cart-sticky-total bdi,
.ecoben-cart-sticky-total .amount,
.ecoben-cart-sticky-total .woocommerce-Price-currencySymbol { font-family: 'Outfit', sans-serif !important; }
.ecoben-cart-sticky-total .woocommerce-Price-amount { font-size: 20px; font-weight: 700; color: var(--eb-navy); }

/* Padding sekcji „Dobierz" na małych ekranach */
@media (max-width: 540px) {
	.woocommerce-cart .ecoben-addons { padding-left: 15px !important; padding-right: 15px !important; }
}

/* ===========================================================
   1.12.1 — FBT: stała wysokość miniatury + padding karty na mobile
   =========================================================== */
.ecoben-single-product .ecoben-fbt-thumb {
	aspect-ratio: auto !important;
	width: 100%;
	max-width: none;
	height: 154px;
}
.ecoben-single-product .ecoben-fbt-thumb img { width: 100%; height: 100%; object-fit: contain; }

@media (max-width: 760px) {
	.ecoben-single-product .ecoben-fbt-card { padding-left: 10px !important; padding-right: 10px !important; }
}
@media (max-width: 600px) {
	.ecoben-single-product .ecoben-fbt-thumb { height: 128px; }
}

/* ===========================================================
   1.12.2 — układ koszyka: natywny Kadence; tylko responsywność mobile
   =========================================================== */
@media (max-width: 1024px) {
	.woocommerce-cart .kadence-woo-cart-form-wrap { min-width: 0 !important; }
	.woocommerce-cart .cart-collaterals { min-width: 0 !important; width: auto !important; }
	.woocommerce-cart .cart_totals { min-width: 0 !important; width: auto !important; }
}

/* ===========================================================
   1.13.0 — szersze podsumowanie + Outfit na polach/selectach/kuponie
   =========================================================== */

/* Desktop: węższa lista, szersze podsumowanie (tylko szerokości, bez zmiany display) */
@media (min-width: 1025px) {
	.woocommerce-cart .woocommerce-cart-form { max-width: 54% !important; }
	.woocommerce-cart .cart-collaterals { width: 44% !important; max-width: 44% !important; }
	.woocommerce-cart .cart-collaterals .cart_totals { min-width: 0 !important; width: 100% !important; }
}

/* Outfit WSZĘDZIE: pola, selecty, kupon, warianty (koniec Segoe UI) */
.woocommerce-cart input,
.woocommerce-cart select,
.woocommerce-cart textarea,
.woocommerce-cart .button,
.woocommerce-cart button,
.woocommerce-cart .coupon input,
#coupon_code,
.ecoben-addons select,
.ecoben-addon-var,
.ecoben-fbt-var,
.ecoben-single-product select,
.ecoben-cart-drawer input,
.ecoben-cart-drawer select { font-family: 'Outfit', sans-serif !important; }

.woocommerce-cart input::placeholder,
#coupon_code::placeholder { font-family: 'Outfit', sans-serif !important; }

/* ===========================================================
   1.14.0 — popup z opiniami
   =========================================================== */
.ecoben-reviews-overlay { position: fixed; inset: 0; background: rgba(6,19,49,.55); opacity: 0; visibility: hidden; transition: opacity .3s; z-index: 1000000; }
.ecoben-reviews-overlay.show { opacity: 1; visibility: visible; }
.ecoben-reviews-modal {
	position: fixed; left: 50%; top: 50%; transform: translate(-50%, -46%);
	opacity: 0; visibility: hidden; transition: transform .3s cubic-bezier(.2,.7,.3,1), opacity .3s;
	z-index: 1000001; width: 680px; max-width: 94vw; max-height: 88vh;
	display: flex; flex-direction: column; overflow: hidden;
	background: var(--eb-cream); border-radius: 22px; box-shadow: 0 40px 90px rgba(6,19,49,.35);
	font-family: 'Outfit', sans-serif;
}
.ecoben-reviews-modal.open { opacity: 1; visibility: visible; transform: translate(-50%, -50%); }
.ecoben-reviews-close { position: absolute; top: 14px; right: 18px; background: none; border: 0; font-size: 28px; line-height: 1; color: var(--eb-ink-faint); cursor: pointer; z-index: 2; }
.ecoben-reviews-close:hover { color: var(--eb-navy); }

.ecoben-reviews-head { display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: center; padding: 28px 28px 22px; border-bottom: 1px solid var(--eb-line); background: var(--eb-paper); }
.ecoben-reviews-score { text-align: center; }
.ecoben-rv-num { font-family: 'Instrument Serif', serif; font-size: 64px; line-height: 1; color: var(--eb-navy); }
.ecoben-rv-stars { color: var(--eb-gold); font-size: 20px; letter-spacing: 2px; margin: 6px 0; }
.ecoben-rv-sub { font-size: 13px; color: var(--eb-ink-faint); }
.ecoben-reviews-bars { display: flex; flex-direction: column; gap: 8px; }
.ecoben-rv-bar { display: grid; grid-template-columns: 34px 1fr 30px; gap: 10px; align-items: center; font-size: 13px; color: var(--eb-ink-soft); }
.ecoben-rv-bar .track { height: 8px; background: var(--eb-cream-warm); border-radius: 999px; overflow: hidden; }
.ecoben-rv-bar .fill { display: block; height: 100%; background: var(--eb-gold); border-radius: 999px; }
.ecoben-rv-bar .cnt { text-align: right; color: var(--eb-ink-faint); }

.ecoben-reviews-list { overflow-y: auto; padding: 20px 28px 28px; display: flex; flex-direction: column; gap: 16px; }
.ecoben-review { background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 16px; padding: 18px; }
.ecoben-review-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ecoben-review-avatar { width: 40px; height: 40px; border-radius: 50%; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 15px; flex-shrink: 0; }
.ecoben-review-who { display: flex; flex-direction: column; }
.ecoben-review-name { font-weight: 600; font-size: 14px; color: var(--eb-ink); }
.ecoben-review-date { font-size: 12px; color: var(--eb-ink-faint); }
.ecoben-review-verified { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--eb-sage-deep); background: rgba(74,124,89,.1); padding: 3px 9px; border-radius: 999px; font-weight: 600; }
.ecoben-review-stars { color: var(--eb-gold); letter-spacing: 1px; margin-bottom: 8px; font-size: 14px; }
.ecoben-review-text { font-size: 14px; line-height: 1.55; color: var(--eb-ink-soft); }

.ecoben-single-product .ecoben-ratings .ecoben-stars,
.ecoben-single-product .ecoben-ratings .ecoben-rating-num,
.ecoben-single-product .ecoben-review-link { cursor: pointer; }

@media (max-width: 600px) {
	.ecoben-reviews-head { grid-template-columns: 1fr; gap: 16px; text-align: center; }
	.ecoben-rv-num { font-size: 52px; }
	.ecoben-reviews-list { padding: 16px 18px 22px; }
}

/* ===========================================================
   1.14.1 — widoczny przycisk zamknięcia popupu opinii
   =========================================================== */
.ecoben-reviews-close {
	top: 14px; right: 14px;
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--eb-cream-warm) !important; border: 1px solid var(--eb-line);
	color: var(--eb-ink) !important; font-size: 22px; line-height: 1;
	display: flex; align-items: center; justify-content: center;
	transition: background .2s, color .2s, border-color .2s; z-index: 3;
}
.ecoben-reviews-close:hover { background: var(--eb-navy) !important; color: #fff !important; border-color: var(--eb-navy); }
/* żeby × nie nachodził na liczby przy paskach gwiazdek */
.ecoben-reviews-head { padding-right: 64px; }
@media (max-width: 600px) {
	.ecoben-reviews-close { top: 10px; right: 10px; width: 36px; height: 36px; }
	.ecoben-reviews-head { padding-right: 28px; padding-top: 30px; }
}

/* ===========================================================
   1.14.2 — galeria: klik trafia tylko w widoczny (aktywny) slajd
   =========================================================== */
@media (min-width: 769px) {
	.ecoben-single-product .ecoben-stage .ecoben-slide { pointer-events: none; z-index: 1; }
	.ecoben-single-product .ecoben-stage .ecoben-slide.is-active { pointer-events: auto; z-index: 2; }
}

/* ===========================================================
   1.15.0 — okruszki (breadcrumbs) premium
   =========================================================== */
.woocommerce-breadcrumb,
.kadence-breadcrumbs,
.rank-math-breadcrumb p {
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	line-height: 1.7 !important;
	letter-spacing: .01em;
	color: var(--eb-ink) !important;            /* aktualna strona = ciemna */
	display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px;
}
.woocommerce-breadcrumb a,
.kadence-breadcrumbs a,
.rank-math-breadcrumb a {
	color: var(--eb-ink-faint) !important;       /* linki wyciszone */
	text-decoration: none !important;
	font-weight: 400;
	transition: color .15s ease;
}
.woocommerce-breadcrumb a:hover,
.kadence-breadcrumbs a:hover,
.rank-math-breadcrumb a:hover { color: var(--eb-navy) !important; }
/* separatory delikatne */
.woocommerce-breadcrumb,
.kadence-breadcrumbs,
.rank-math-breadcrumb p { --eb-sep: var(--eb-line); }
.kadence-breadcrumbs .breadcrumb-separator,
.rank-math-breadcrumb .separator { color: var(--eb-ink-faint) !important; opacity: .6; padding: 0 2px; }
/* aktualny element pogrubiony lekko (gdy oznaczony klasą) */
.rank-math-breadcrumb .last,
.kadence-breadcrumbs .kadence-breadcrumb-item-current { color: var(--eb-ink) !important; font-weight: 500; }

/* ===========================================================
   1.16.0 — strona /sklep (archiwum) premium
   =========================================================== */
.ecoben-shop .woocommerce-products-header,
.ecoben-shop .woocommerce-result-count,
.ecoben-shop .woocommerce-ordering { display: none !important; }

/* HERO */
.ecoben-shop-hero { text-align: center; max-width: 720px; margin: 0 auto; padding: 8px 0 30px; }
.ecoben-shop-eyebrow { display: inline-block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--eb-sage-deep); font-weight: 600; border: 1px solid var(--eb-sage); border-radius: 999px; padding: 6px 14px; margin-bottom: 16px; }
.ecoben-shop-title { font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: clamp(30px, 4vw, 42px); line-height: 1.05; color: var(--eb-ink); margin: 0 0 12px; }
.ecoben-shop-sub { font-size: 16px; color: var(--eb-ink-soft); line-height: 1.55; margin: 0 auto 20px; max-width: 600px; }
.ecoben-shop-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; }
.ecoben-shop-trust span { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--eb-ink-soft); }
.ecoben-shop-trust span svg { color: var(--eb-sage); flex: 0 0 auto; }

/* TOOLBAR */
.ecoben-shop-toolbar { margin: 0 0 26px; }
.ecoben-shop-cats { display: flex; flex-wrap: wrap; gap: 10px; }
.ecoben-shop-cat { display: inline-flex; align-items: center; gap: 7px; padding: 10px 18px; border: 1px solid var(--eb-line); border-radius: 999px; background: var(--eb-paper); color: var(--eb-ink-soft); text-decoration: none; font-family: 'Outfit', sans-serif; font-size: 14.5px; font-weight: 500; transition: background .15s, color .15s, border-color .15s; white-space: nowrap; }
.ecoben-shop-cat:hover { border-color: var(--eb-navy); color: var(--eb-navy); }
.ecoben-shop-cat.is-active { background: var(--eb-navy); border-color: var(--eb-navy); color: var(--eb-cream); }
.ecoben-shop-cat-n { font-size: 12px; opacity: .65; }
.ecoben-shop-cat.is-active .ecoben-shop-cat-n { opacity: .85; }
.ecoben-shop-toolbar-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--eb-line); }
.ecoben-shop-count { font-size: 13.5px; color: var(--eb-ink-faint); font-family: 'Outfit', sans-serif; }
.ecoben-shop-sortwrap { display: inline-flex; align-items: center; gap: 8px; }
.ecoben-shop-sortlbl { font-size: 13.5px; color: var(--eb-ink-faint); }
.ecoben-shop-sort { font-family: 'Outfit', sans-serif !important; font-size: 14px; color: var(--eb-ink); border: 1px solid var(--eb-line); border-radius: 10px; padding: 9px 36px 9px 14px; background: var(--eb-paper) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230A1F44' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer; }
.ecoben-shop-sort:focus { outline: none; border-color: var(--eb-navy); }

/* SIATKA */
.ecoben-shop-results { position: relative; transition: opacity .2s; }
.ecoben-shop-results.ecoben-shop-loading { opacity: .45; pointer-events: none; }
.ecoben-shop ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ecoben-shop ul.products::before, .ecoben-shop ul.products::after { content: none !important; display: none !important; }
.ecoben-shop ul.products li.product { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important; display: flex; flex-direction: column; background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 18px; overflow: hidden; transition: border-color .15s, box-shadow .2s, transform .15s; }
.ecoben-shop ul.products li.product:hover { border-color: var(--eb-sage); box-shadow: 0 14px 34px rgba(10,31,68,.09); transform: translateY(-3px); }
.ecoben-shop li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; text-decoration: none; color: inherit; position: relative; }
.ecoben-shop li.product img { width: 100% !important; height: 230px; object-fit: contain; background: var(--eb-cream); margin: 0 !important; padding: 18px; display: block; border-bottom: 1px solid var(--eb-line); box-sizing: border-box; }

/* Badge'y */
.ecoben-card-badges { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; gap: 6px; z-index: 2; }
.ecoben-card-badge { font-size: 11px; font-weight: 700; padding: 5px 10px; border-radius: 999px; line-height: 1; letter-spacing: .02em; }
.ecoben-card-badge.sale { background: #B85447; color: #fff; }
.ecoben-card-badge.feat { background: var(--eb-navy); color: var(--eb-cream); }
.ecoben-card-badge.oos { background: var(--eb-ink-faint); color: #fff; }

/* Tytuł / oceny / cena */
.ecoben-shop li.product .woocommerce-loop-product__title { font-family: 'Outfit', sans-serif; font-size: 15.5px; font-weight: 600; color: var(--eb-ink); line-height: 1.35; margin: 0; padding: 14px 16px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.ecoben-card-rating { display: flex; align-items: center; gap: 6px; padding: 8px 16px 0; min-height: 22px; }
.ecoben-card-stars { color: var(--eb-gold); font-size: 14px; letter-spacing: 1px; }
.ecoben-card-rcount { font-size: 12px; color: var(--eb-ink-faint); }
.ecoben-card-rnew { font-size: 11px; color: var(--eb-sage-deep); font-weight: 600; background: rgba(74,124,89,.1); padding: 2px 9px; border-radius: 999px; letter-spacing: .02em; }
.ecoben-shop li.product .price { display: block; padding: 8px 16px 0; margin: 0; font-family: 'Outfit', sans-serif !important; font-size: 18px; color: var(--eb-navy); font-weight: 700; }
.ecoben-shop li.product .price del { color: var(--eb-ink-faint); font-weight: 400; font-size: 14px; margin-right: 6px; opacity: .85; }
.ecoben-shop li.product .price ins { text-decoration: none; }
.ecoben-shop li.product .price .woocommerce-Price-amount,
.ecoben-shop li.product .price bdi { font-family: 'Outfit', sans-serif !important; }

/* Przycisk dodawania */
.ecoben-shop li.product > a.button,
.ecoben-shop li.product > .button { display: block; margin: 14px 16px 16px; text-align: center; background: var(--eb-navy) !important; color: var(--eb-cream) !important; border: 0 !important; border-radius: 12px !important; padding: 13px 16px !important; font-family: 'Outfit', sans-serif !important; font-weight: 600 !important; font-size: 14.5px !important; line-height: 1.2 !important; text-decoration: none !important; transition: background .2s !important; cursor: pointer; }
.ecoben-shop li.product > a.button:hover,
.ecoben-shop li.product > .button:hover { background: var(--eb-navy-soft) !important; }
.ecoben-shop li.product > a.button.loading { opacity: .7; }
.ecoben-shop li.product a.added_to_cart { display: none !important; }

/* Paginacja */
.ecoben-shop .woocommerce-pagination { margin: 36px 0 0; text-align: center; }
.ecoben-shop .woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px; border: 0 !important; margin: 0; padding: 0; }
.ecoben-shop .woocommerce-pagination ul li { border: 0 !important; margin: 0; overflow: visible; }
.ecoben-shop .woocommerce-pagination ul li a,
.ecoben-shop .woocommerce-pagination ul li span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--eb-line) !important; border-radius: 10px; color: var(--eb-ink) !important; font-family: 'Outfit', sans-serif; font-weight: 600; background: var(--eb-paper); transition: border-color .15s, background .15s; }
.ecoben-shop .woocommerce-pagination ul li span.current { background: var(--eb-navy); color: var(--eb-cream) !important; border-color: var(--eb-navy) !important; }
.ecoben-shop .woocommerce-pagination ul li a:hover { border-color: var(--eb-navy) !important; color: var(--eb-navy) !important; }

/* RESPONSYWNOŚĆ */
@media (max-width: 1024px) {
	.ecoben-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.ecoben-shop li.product img { height: 190px; }
}
@media (max-width: 560px) {
	.ecoben-shop-cats { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; scrollbar-width: none; }
	.ecoben-shop-cats::-webkit-scrollbar { display: none; }
	.ecoben-shop-cat { flex: 0 0 auto; }
	.ecoben-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ecoben-shop li.product img { height: 150px; padding: 12px; }
	.ecoben-shop li.product .woocommerce-loop-product__title { font-size: 14px; padding: 12px 12px 0; }
	.ecoben-card-rating { padding: 6px 12px 0; }
	.ecoben-shop li.product .price { padding: 6px 12px 0; font-size: 16px; }
	.ecoben-shop li.product > a.button { margin: 12px; padding: 12px !important; }
	.ecoben-shop-toolbar-row { flex-direction: column; align-items: stretch; gap: 10px; }
	.ecoben-shop-sortwrap { justify-content: space-between; }
	.ecoben-shop-sort { flex: 1; }
}

/* ===========================================================
   1.17.1 — /sklep: TWARDE wymuszenie fontu, wyrównania, wagi
   (Kadence nadpisuje specyficznością — dlatego !important)
   =========================================================== */
.ecoben-shop-hero, .ecoben-shop-hero *,
.ecoben-shop-toolbar, .ecoben-shop-toolbar *,
.ecoben-shop ul.products li.product,
.ecoben-shop ul.products li.product *,
.ecoben-shop .woocommerce-pagination,
.ecoben-shop .woocommerce-pagination * { font-family: 'Outfit', sans-serif !important; }

/* Tytuł hero pozostaje serif */
.ecoben-shop .ecoben-shop-title { font-family: 'Instrument Serif', serif !important; }

/* Wyrównanie do lewej (WooCommerce domyślnie centruje karty) */
.ecoben-shop ul.products li.product,
.ecoben-shop ul.products li.product .woocommerce-loop-product__title,
.ecoben-shop ul.products li.product .price,
.ecoben-shop ul.products li.product .ecoben-card-rating { text-align: left !important; }
.ecoben-shop ul.products li.product .ecoben-card-rating { justify-content: flex-start !important; }

/* Cena: ZAWSZE pogrubiona 700 (także zwykła); stara cena 400 */
.ecoben-shop li.product .price,
.ecoben-shop li.product .price ins,
.ecoben-shop li.product .price ins .woocommerce-Price-amount,
.ecoben-shop li.product .price ins bdi,
.ecoben-shop li.product .price > .woocommerce-Price-amount,
.ecoben-shop li.product .price > bdi { font-weight: 700 !important; }
.ecoben-shop li.product .price del,
.ecoben-shop li.product .price del .woocommerce-Price-amount,
.ecoben-shop li.product .price del bdi { font-weight: 400 !important; }

/* Przycisk dodawania — pewne nadpisanie stylu Kadence (tło, brak strzałki/uppercase) */
.ecoben-shop li.product a.button,
.ecoben-shop li.product a.add_to_cart_button,
.ecoben-shop li.product .button {
	display: block !important; width: auto !important; float: none !important;
	margin: 14px 16px 16px !important; text-align: center !important;
	background: var(--eb-navy, #0A1F44) !important; color: var(--eb-cream, #FAF8F4) !important;
	border: 0 !important; border-radius: 12px !important; padding: 13px 16px !important;
	font-family: 'Outfit', sans-serif !important; font-weight: 600 !important; font-size: 14.5px !important;
	letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; line-height: 1.2 !important;
}
.ecoben-shop li.product a.button:hover,
.ecoben-shop li.product a.add_to_cart_button:hover,
.ecoben-shop li.product .button:hover { background: var(--eb-navy-soft, #1F3563) !important; color: #fff !important; }
.ecoben-shop li.product a.button::after,
.ecoben-shop li.product a.add_to_cart_button::after,
.ecoben-shop li.product a.button::before,
.ecoben-shop li.product a.add_to_cart_button::before { content: none !important; display: none !important; }
.ecoben-shop li.product a.added_to_cart { display: none !important; }

/* ===========================================================
   1.17.2 — /sklep: wyrównanie tytułu + przycisk zawsze w przepływie
   =========================================================== */
/* Kadence zeruje padding tytułu → wymuszamy spójne 16px jak reszta */
.ecoben-shop ul.products li.product h2.woocommerce-loop-product__title,
.ecoben-shop ul.products li.product .woocommerce-loop-product__title {
	padding: 14px 16px 0 !important; margin: 0 !important; text-align: left !important;
}
.ecoben-shop ul.products li.product .ecoben-card-rating,
.ecoben-shop ul.products li.product .star-rating,
.ecoben-shop ul.products li.product .price {
	padding-left: 16px !important; padding-right: 16px !important;
	margin-left: 0 !important; margin-right: 0 !important; text-align: left !important;
}

/* Przycisk „Dodaj" — ZAWSZE w przepływie (Kadence pokazuje go absolutnie na hover,
   przez co zasłaniał cenę). Reset pozycji/animacji hover. */
.ecoben-shop ul.products li.product .button,
.ecoben-shop ul.products li.product .add_to_cart_button,
.ecoben-shop ul.products li.product a.added_to_cart {
	position: static !important; opacity: 1 !important; visibility: visible !important;
	transform: none !important; top: auto !important; right: auto !important;
	bottom: auto !important; left: auto !important; max-height: none !important;
}
.ecoben-shop ul.products li.product:hover .button,
.ecoben-shop ul.products li.product:hover .add_to_cart_button {
	position: static !important; transform: none !important;
}

/* Gdyby Kadence opakowywał dolną część karty w warstwę absolutną — neutralizacja */
.ecoben-shop ul.products li.product .product-details,
.ecoben-shop ul.products li.product .kadence-woo-product-details,
.ecoben-shop ul.products li.product .price-wrapper,
.ecoben-shop ul.products li.product .loop-add-to-cart {
	position: static !important; opacity: 1 !important; transform: none !important;
}

/* Krótki opis produktu w karcie (jeśli motyw go dorzuca) — chowamy dla czystej karty */
.ecoben-shop ul.products li.product .woocommerce-product-details__short-description,
.ecoben-shop ul.products li.product .product-details__short-description,
.ecoben-shop ul.products li.product .kadence-woo-product-details-excerpt {
	display: none !important;
}

/* ===========================================================
   1.17.3 — /sklep: dopracowanie mobile (mniej ściśnięte)
   =========================================================== */
/* Przycisk równo przy dole karty (link rośnie) — desktop i mobile */
.ecoben-shop ul.products li.product a.woocommerce-LoopProduct-link { flex: 1 1 auto; }
.ecoben-shop ul.products li.product .button,
.ecoben-shop ul.products li.product .add_to_cart_button { margin-top: auto !important; }

@media (max-width: 600px) {
	.ecoben-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 11px !important; }
	.ecoben-shop ul.products li.product { border-radius: 14px; }
	.ecoben-shop ul.products li.product img { height: 132px !important; padding: 10px !important; }

	.ecoben-shop ul.products li.product h2.woocommerce-loop-product__title {
		font-size: 12.5px !important; line-height: 1.3 !important; padding: 11px 11px 0 !important; min-height: 0 !important;
	}
	.ecoben-shop ul.products li.product .ecoben-card-rating { padding: 6px 11px 0 !important; min-height: 0 !important; gap: 4px; }
	.ecoben-shop ul.products li.product .ecoben-card-stars { font-size: 12px; }
	.ecoben-shop ul.products li.product .ecoben-card-rcount { font-size: 11px; }
	.ecoben-shop ul.products li.product .ecoben-card-rnew { font-size: 10px; padding: 2px 7px; }

	.ecoben-shop ul.products li.product .price { padding: 6px 11px 0 !important; font-size: 14px !important; line-height: 1.3; }
	.ecoben-shop ul.products li.product .price del { font-size: 11.5px !important; display: inline-block; }

	.ecoben-shop ul.products li.product .button,
	.ecoben-shop ul.products li.product .add_to_cart_button {
		margin: 11px 11px 12px !important; padding: 10px 8px !important;
		font-size: 12.5px !important; line-height: 1.25 !important; border-radius: 10px !important;
	}
	/* schowaj doklejaną przez motyw strzałkę/ikonę w przycisku (łamała się do nowej linii) */
	.ecoben-shop ul.products li.product .button svg,
	.ecoben-shop ul.products li.product .button i,
	.ecoben-shop ul.products li.product .add_to_cart_button svg,
	.ecoben-shop ul.products li.product .add_to_cart_button i { display: none !important; }

	.ecoben-card-badges { top: 8px; left: 8px; }
	.ecoben-card-badge { font-size: 10px; padding: 4px 8px; }
}

/* Bardzo wąskie ekrany — 1 kolumna dla czytelności */
@media (max-width: 360px) {
	.ecoben-shop ul.products { grid-template-columns: 1fr !important; }
	.ecoben-shop ul.products li.product img { height: 200px !important; }
	.ecoben-shop ul.products li.product h2.woocommerce-loop-product__title { font-size: 15px !important; }
	.ecoben-shop ul.products li.product .price { font-size: 17px !important; }
	.ecoben-shop ul.products li.product .button,
	.ecoben-shop ul.products li.product .add_to_cart_button { font-size: 14px !important; padding: 12px !important; }
}

/* ===========================================================
   1.17.4 — /sklep: reset wrappera Kadence .product-details
   (miał własny duży padding, który dokładał się do naszych wcięć
   i ściskał karty — zwłaszcza na mobile). Jednolite wcięcie dają
   teraz nasze elementy: tytuł/oceny/cena/przycisk.
   =========================================================== */
.ecoben-shop ul.products li.product .product-details {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.ecoben-shop ul.products li.product .product-details { width: auto !important; }

/* ===========================================================
   1.18.0 — strona /zamowienie (checkout) premium
   =========================================================== */
/* Czcionki (Kadence wstawia Segoe — wymuszamy spójność) */
.ecoben-checkout,
.ecoben-checkout input,
.ecoben-checkout select,
.ecoben-checkout textarea,
.ecoben-checkout button,
.ecoben-checkout label,
.ecoben-checkout .woocommerce-Price-amount,
.ecoben-checkout bdi { font-family: 'Outfit', sans-serif !important; }
.ecoben-checkout .ecoben-co-title { font-family: 'Instrument Serif', serif !important; }

/* Nagłówek + zapewnienie bezpieczeństwa */
.ecoben-checkout .ecoben-co-head { margin: 0 0 26px; }
.ecoben-checkout .ecoben-co-title { font-weight: 400; font-size: clamp(30px, 4vw, 42px); line-height: 1.05; color: var(--eb-ink); margin: 0 0 8px; }
.ecoben-checkout .ecoben-co-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--eb-sage-deep); margin: 0; }
.ecoben-checkout .ecoben-co-secure svg { color: var(--eb-sage); }

/* Kupon — slim */
.ecoben-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: var(--eb-cream-warm); border: 1px solid var(--eb-line); border-left: 3px solid var(--eb-sage);
	border-radius: 12px; padding: 12px 16px; font-size: 14px; color: var(--eb-ink-soft); margin: 0 0 22px;
}
.ecoben-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.ecoben-checkout .woocommerce-form-coupon-toggle a { color: var(--eb-navy); font-weight: 600; }
/* P3: kupon kompaktowy — input + przycisk obok (jedna linia na desktop) */
.ecoben-checkout .checkout_coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; border: 1px solid var(--eb-line); border-radius: 14px; padding: 14px 16px; margin: 0 0 22px; background: var(--eb-paper); }
.ecoben-checkout .checkout_coupon > p { margin: 0; }
.ecoben-checkout .checkout_coupon > p:first-child { flex: 1 1 100%; font-size: 13px; color: var(--eb-ink-faint); }
.ecoben-checkout .checkout_coupon .form-row-first { flex: 1 1 200px; margin: 0; }
.ecoben-checkout .checkout_coupon .form-row-last { flex: 0 0 auto; margin: 0; }
.ecoben-checkout .checkout_coupon .input-text { width: 100%; min-height: 48px; }
.ecoben-checkout .checkout_coupon .button { width: auto; background: var(--eb-navy) !important; color: var(--eb-cream) !important; border: 0 !important; border-radius: 10px !important; padding: 13px 22px !important; font-weight: 600 !important; white-space: nowrap; }

/* === UKŁAD 2-KOLUMNOWY + STICKY PODSUMOWANIE (desktop) === */
/* WC/Kadence nadaje #order_review i #customer_details float + width:48% — jako
   itemy gridu float jest ignorowany, ale width:% zgniata je w obrębie tracka
   (prawa kolumna ~190px → łamanie znak-po-znaku). Neutralizujemy width/float
   na itemach gridu globalnie (naprawia też zakres 768–980px). */
.ecoben-checkout form.checkout > #customer_details,
.ecoben-checkout form.checkout > #order_review,
.ecoben-checkout form.checkout > #order_review_heading {
	width: auto !important; max-width: none !important; float: none !important;
}
@media (min-width: 981px) {
	.ecoben-checkout form.checkout {
		display: grid !important; grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.95fr) !important;
		grid-template-rows: auto auto 1fr; gap: 14px 40px; align-items: start;
	}
	/* WIERSZ 1 = błędy/notyfikacje na pełną szerokość, ZAWSZE na górze (gdy brak — wiersz 0px).
	   KRYTYCZNE: bez tego WC prependuje błąd do gridu, który auto-umieszcza go w niejawnym
	   wierszu na DOLE → klient go nie widzi (stąd „scrolluje do dołu, nie ma błędów"). */
	.ecoben-checkout form.checkout > .woocommerce-notices-wrapper,
	.ecoben-checkout form.checkout > .woocommerce-NoticeGroup,
	.ecoben-checkout form.checkout > .woocommerce-error,
	.ecoben-checkout form.checkout > .woocommerce-message,
	.ecoben-checkout form.checkout > .woocommerce-info { grid-column: 1 / -1; grid-row: 1; margin-bottom: 4px; }
	/* treść spada do wierszy 2-3 */
	.ecoben-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 2 / span 2; }
	.ecoben-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; }
	.ecoben-checkout form.checkout > #order_review { grid-column: 2; grid-row: 3; position: sticky; top: 120px; }
}
.ecoben-checkout form.checkout > wc-order-attribution-inputs { display: none !important; }

/* Stos billing/shipping/notes w lewej kolumnie */
.ecoben-checkout #customer_details.col2-set { display: block; }
.ecoben-checkout #customer_details .col-1,
.ecoben-checkout #customer_details .col-2 { width: auto; float: none; max-width: none; }
.ecoben-checkout .woocommerce-billing-fields,
.ecoben-checkout .woocommerce-shipping-fields,
.ecoben-checkout .woocommerce-additional-fields {
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 18px; padding: 24px 26px; margin: 0 0 18px;
}

/* Nagłówki sekcji (serif) — bez „Wysłać na inny adres?" i „Dodatkowe informacje" (to przełączniki, styl 1.32.0). */
.ecoben-checkout .woocommerce-billing-fields h3,
.ecoben-checkout #order_review_heading {
	font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: 23px; color: var(--eb-navy);
	margin: 0 0 18px; line-height: 1.2;
}
.ecoben-checkout #order_review_heading { font-size: 24px; margin-bottom: 14px; }

/* Pola formularza — baza (border/radius/focus). Etykiety: patrz floating 1.21. */
.ecoben-checkout .form-row { margin: 0 0 16px; padding: 0; }
.ecoben-checkout .input-text,
.ecoben-checkout textarea,
.ecoben-checkout select {
	width: 100%; min-height: 50px; border: 1px solid var(--eb-line); border-radius: 12px;
	padding: 0 15px; font-size: 15px; color: var(--eb-ink); background: var(--eb-paper); box-shadow: none; line-height: 1.4;
}
.ecoben-checkout textarea { padding: 12px 15px; min-height: 84px; }
.ecoben-checkout .input-text:focus,
.ecoben-checkout textarea:focus,
.ecoben-checkout select:focus { outline: none; border-color: var(--eb-navy); box-shadow: 0 0 0 3px rgba(10,31,68,.08); }
.ecoben-checkout .input-text::placeholder,
.ecoben-checkout textarea::placeholder { color: var(--eb-ink-faint); }
/* Autofill — zdejmij niebieskie tło przeglądarki (prefill), zachowaj kolor tekstu */
.ecoben-checkout .input-text:-webkit-autofill,
.ecoben-checkout .input-text:-webkit-autofill:hover,
.ecoben-checkout .input-text:-webkit-autofill:focus,
.ecoben-checkout textarea:-webkit-autofill,
.ecoben-checkout select:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px var(--eb-paper, #fff) inset !important;
	box-shadow: 0 0 0 1000px var(--eb-paper, #fff) inset !important;
	-webkit-text-fill-color: var(--eb-ink, #1A1A1A) !important;
	caret-color: var(--eb-ink, #1A1A1A);
}
/* WC zielona obwódka pól zwalidowanych → neutralna; focus dalej granatowy (:not(:focus)) */
.ecoben-checkout .woocommerce-validated .input-text:not(:focus),
.ecoben-checkout .woocommerce-validated textarea:not(:focus),
.ecoben-checkout .woocommerce-validated select:not(:focus) { border-color: var(--eb-line) !important; }
.ecoben-checkout .woocommerce-invalid .input-text:not(:focus),
.ecoben-checkout .woocommerce-invalid textarea:not(:focus),
.ecoben-checkout .woocommerce-invalid select:not(:focus) { border-color: var(--eb-rose) !important; }
/* Wiersze pól (form-row-first/last, ecoben-trio): patrz flex 1.20. */

/* select2 (kraj) — dropdown; sizowanie selekcji w sekcji floating 1.20. */
.select2-dropdown { border-color: var(--eb-line, #E8E5DE); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--eb-navy, #0A1F44); }

/* Radio / checkbox — czytelne, markowe */
.ecoben-checkout input[type="radio"],
.ecoben-checkout input[type="checkbox"] { accent-color: var(--eb-navy); width: 19px; height: 19px; margin: 0 8px 0 0; cursor: pointer; }
/* Segment „Osoba prywatna / Firma": patrz sekcja 1.20 (karty z ukrytym radio). */

/* === PRAWA KOLUMNA: podsumowanie === */
.ecoben-checkout #order_review {
	background: var(--eb-paper); border: 1px solid var(--eb-line); border-radius: 18px; padding: 22px 22px 24px;
}
.ecoben-checkout .woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; margin: 0 0 6px; font-size: 14.5px; }
/* N5: wspólna lewa linia wszystkich komórek (kwoty zostają po prawej) */
.ecoben-checkout .woocommerce-checkout-review-order-table th,
.ecoben-checkout .woocommerce-checkout-review-order-table td { padding-left: 0 !important; padding-right: 0 !important; }
.ecoben-checkout .woocommerce-checkout-review-order-table .product-total,
.ecoben-checkout .woocommerce-checkout-review-order-table thead th.product-total,
.ecoben-checkout .woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.ecoben-checkout .woocommerce-checkout-review-order-table thead th { text-align: left; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--eb-ink-faint); font-weight: 600; padding: 0 0 12px; border-bottom: 1px solid var(--eb-line); }
.ecoben-checkout .woocommerce-checkout-review-order-table thead th.product-total { text-align: right; }
.ecoben-checkout .woocommerce-checkout-review-order-table .cart_item td { padding: 12px 0; border-bottom: 1px solid var(--eb-line); vertical-align: middle; }
.ecoben-checkout .cart_item .product-name { color: var(--eb-ink); line-height: 1.4; padding-right: 12px; }
.ecoben-checkout .cart_item .product-quantity { color: var(--eb-ink-faint); font-weight: 600; }
.ecoben-checkout .cart_item .product-total { text-align: right; white-space: nowrap; font-weight: 600; color: var(--eb-ink); }
.ecoben-checkout .woocommerce-checkout-review-order-table tfoot th { text-align: left; font-weight: 500; color: var(--eb-ink-soft); padding: 10px 0; }
.ecoben-checkout .woocommerce-checkout-review-order-table tfoot td { text-align: right; padding: 10px 0; }
.ecoben-checkout .woocommerce-checkout-review-order-table .cart-subtotal th,
.ecoben-checkout .woocommerce-checkout-review-order-table .cart-subtotal td { border-top: 1px solid var(--eb-line); }
/* N4: „Łącznie" tym samym fontem co reszta (Outfit), nie Instrument Serif */
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total th { font-family: 'Outfit', sans-serif !important; font-weight: 700; font-size: 18px; color: var(--eb-navy); border-top: 2px solid var(--eb-navy); padding-top: 14px; }
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total td { font-family: 'Outfit', sans-serif !important; font-weight: 700; font-size: 19px; color: var(--eb-navy); border-top: 2px solid var(--eb-navy); padding-top: 14px; }
/* P5: „Łącznie" + kwota w jednej linii (th lewo / td prawo — NIE display:block, które
   rozbijało wiersz na 3 linie). „(zawiera … VAT)" zostaje małą, szarą linijką pod kwotą. */
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total th,
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total td { display: table-cell !important; vertical-align: baseline; }
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax { display: block; font-family: 'Outfit', sans-serif !important; font-size: 12px; font-weight: 400; color: var(--eb-ink-faint); }
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax .woocommerce-Price-amount { font-weight: 600; }

/* (dostawa checkoutu skonsolidowana w bloku 1.32.0/1.33.0 — usunięto stare N3/N2/R7-B) */

/* Płatności — karty */
.ecoben-checkout #payment { background: transparent; }
.ecoben-checkout .ecoben-co-payinfo { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--eb-ink-faint); margin: 18px 0 12px; }
.ecoben-checkout .ecoben-co-payinfo svg { color: var(--eb-sage); flex: 0 0 auto; }
/* N2: płatności — jeden lekki kontener, metody rozdzielone cienką linią (bez per-pudełka i cienia) */
.ecoben-checkout .wc_payment_methods { list-style: none; margin: 0; padding: 0; border: 1px solid var(--eb-line); border-radius: 14px; overflow: hidden; }
.ecoben-checkout .wc_payment_method { display: flex; flex-wrap: wrap; align-items: center; border: 0; border-top: 1px solid var(--eb-line); border-radius: 0; transition: background .15s; cursor: pointer; }
.ecoben-checkout .wc_payment_method:first-child { border-top: 0; }
.ecoben-checkout .wc_payment_method:hover { background: rgba(10,31,68,.025); }
.ecoben-checkout .wc_payment_method:has(input:checked) { background: rgba(10,31,68,.05); box-shadow: none; }
.ecoben-checkout .wc_payment_method > input.input-radio { flex: 0 0 auto; margin: 0 0 0 16px; }
.ecoben-checkout .wc_payment_method > label { flex: 1; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 11px 16px 11px 12px; margin: 0; cursor: pointer; font-weight: 500; color: var(--eb-ink); font-size: 14.5px; box-sizing: border-box; }
.ecoben-checkout .wc_payment_method > label img { margin: 0 0 0 auto; max-height: 24px; width: auto; }
.ecoben-checkout .payment_box { flex: 1 0 100%; background: var(--eb-cream); border-top: 1px solid var(--eb-line); padding: 14px 16px; font-size: 13.5px; color: var(--eb-ink-soft); }
.ecoben-checkout .payment_box p { margin: 0; }
.ecoben-checkout .woocommerce-error { background: rgba(184,84,71,.08); border: 1px solid rgba(184,84,71,.25); color: #8a3a2e; border-radius: 10px; padding: 10px 12px; font-size: 13px; margin: 0; list-style: none; }

/* Regulamin + zgody */
.ecoben-checkout .woocommerce-terms-and-conditions-wrapper { margin: 18px 0; padding: 14px 16px; background: var(--eb-cream-warm); border-radius: 12px; }
.ecoben-checkout .woocommerce-terms-and-conditions-checkbox-text { font-size: 13.5px; color: var(--eb-ink-soft); }
.ecoben-checkout .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 8px; }
.ecoben-checkout .woocommerce-terms-and-conditions-link { color: var(--eb-navy); font-weight: 600; }

/* Przycisk „Kupuję i płacę" */
.ecoben-checkout #place_order,
.ecoben-checkout .place-order .button.alt {
	width: 100%; display: block; background: var(--eb-navy) !important; color: var(--eb-cream) !important;
	border: 0 !important; border-radius: 14px !important; padding: 17px 20px !important;
	font-family: 'Outfit', sans-serif !important; font-weight: 600 !important; font-size: 16.5px !important;
	letter-spacing: normal !important; text-transform: none !important; box-shadow: 0 10px 24px rgba(10,31,68,.18) !important;
	transition: background .2s, transform .15s !important; cursor: pointer; margin-top: 6px;
}
.ecoben-checkout #place_order:hover { background: var(--eb-navy-soft) !important; transform: translateY(-1px); }

/* Pasek zaufania pod CTA */
.ecoben-checkout .ecoben-co-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; margin: 16px 0 0; }
.ecoben-checkout .ecoben-co-trust span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--eb-ink-faint); }
.ecoben-checkout .ecoben-co-trust svg { color: var(--eb-sage); }

/* === MOBILE === */
@media (max-width: 980px) {
	.ecoben-checkout #order_review { margin-top: 8px; }
}
@media (max-width: 600px) {
	.ecoben-checkout .woocommerce-billing-fields { padding: 18px 16px; border-radius: 14px; }
	.ecoben-checkout #order_review { padding: 18px 16px; border-radius: 14px; }
	.ecoben-checkout .wc_payment_method > label { padding: 13px 14px; font-size: 14px; }
}

/* ===========================================================
   1.19.0 — checkout: floating labels, czyste sekcje, bumpy
   =========================================================== */
/* Sekcje lżejsze (bez ciężkich kart) — dane rozliczeniowe.
   (shipping-fields i additional-fields: kontenery przełączników skonsolidowane w 1.34.0 na końcu pliku.) */
.ecoben-checkout .woocommerce-billing-fields { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 0 30px !important; }
/* Tylko nagłówek danych rozliczeniowych = serif. „Wysłać na inny adres?" i „Dodatkowe informacje"
   NIE są nagłówkami — to przełączniki (styl w bloku 1.32.0 niżej). */
.ecoben-checkout .woocommerce-billing-fields h3 {
	font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: 22px; color: var(--eb-navy);
	margin: 0 0 16px; padding: 0 0 12px; border-bottom: 1px solid var(--eb-line); line-height: 1.2;
}

/* Floating labels: jeden system (is-filled / :focus-within) w sekcji 1.20 niżej. */

/* Powracający klient / kupon — slim info */
.ecoben-checkout .woocommerce-form-login-toggle .woocommerce-info {
	background: var(--eb-cream-warm); border: 1px solid var(--eb-line); border-left: 3px solid var(--eb-navy);
	border-radius: 12px; padding: 12px 16px; font-size: 14px; color: var(--eb-ink-soft); margin: 0 0 18px;
}
.ecoben-checkout .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
.ecoben-checkout .woocommerce-form-login-toggle a { color: var(--eb-navy); font-weight: 600; }
/* P2: gdy dostępny popup logowania z headera (klasę dodaje JS) — ukryj inline form WC.
   !important bije inline display:block ustawiany przez jQuery slideToggle. */
.ecoben-has-login-popup .ecoben-checkout form.woocommerce-form-login { display: none !important; }

/* Zakładanie konta */
.ecoben-checkout .woocommerce-account-fields { margin: 6px 0 8px; }
.ecoben-checkout .woocommerce-account-fields label[for="createaccount"] { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 500; color: var(--eb-ink); cursor: pointer; }
.ecoben-checkout .woocommerce-account-fields .create-account { margin-top: 12px; }
.ecoben-checkout .woocommerce-account-fields .create-account p { margin: 0; }

/* --- BUMP OFFERY (P7: kompaktowa karta-przełącznik; znika po dodaniu) --- */
.ecoben-checkout .ecoben-bumps { margin: 6px 0 16px; display: flex; flex-direction: column; gap: 10px; }
.ecoben-checkout .ecoben-bump {
	display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; cursor: pointer;
	appearance: none; -webkit-appearance: none; box-shadow: none;
	border: 1px solid var(--eb-line) !important; border-radius: 12px; background: var(--eb-paper) !important; padding: 10px 12px;
	font-family: 'Outfit', sans-serif !important; transition: border-color .15s, background .15s;
}
.ecoben-checkout .ecoben-bump:hover { border-color: var(--eb-sage) !important; background: rgba(74,124,89,.04) !important; }
.ecoben-checkout .ecoben-bump.is-loading { pointer-events: none; }
.ecoben-checkout .ecoben-bump-img { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 9px; overflow: hidden; background: #fff; border: 1px solid var(--eb-line); }
.ecoben-checkout .ecoben-bump-img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.ecoben-checkout .ecoben-bump-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ecoben-checkout .ecoben-bump-head { font-size: 13.5px; font-weight: 600; color: var(--eb-ink); line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ecoben-checkout .ecoben-bump-price { font-size: 13px; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.ecoben-checkout .ecoben-bump-price del { color: var(--eb-ink-faint); }
.ecoben-checkout .ecoben-bump-price ins { text-decoration: none; font-weight: 700; color: var(--eb-sage-deep); }
.ecoben-checkout .ecoben-bump-save { font-size: 11px; font-weight: 700; color: var(--eb-rose); }
.ecoben-checkout .ecoben-bump-cta {
	flex: 0 0 auto; align-self: center; display: inline-flex; align-items: center; justify-content: center;
	font-size: 13px; font-weight: 700; color: #fff; background: var(--eb-sage); border-radius: 10px; padding: 10px 14px; white-space: nowrap; transition: background .15s;
}
.ecoben-checkout .ecoben-bump:hover .ecoben-bump-cta { background: var(--eb-sage-deep); }
.ecoben-checkout .ecoben-bump-cta-done { display: none; }
.ecoben-checkout .ecoben-bump.is-loading .ecoben-bump-cta-add { display: none; }
.ecoben-checkout .ecoben-bump.is-loading .ecoben-bump-cta-done { display: inline; }
.ecoben-checkout .ecoben-bump.is-loading .ecoben-bump-cta { background: var(--eb-sage-deep); }
@media (max-width: 600px) {
	.ecoben-checkout .ecoben-bump { flex-wrap: wrap; }
	.ecoben-checkout .ecoben-bump-cta { width: 100%; margin-top: 4px; }
}

/* --- P6: stepper ilości + usuwanie pozycji w podsumowaniu --- */
.ecoben-checkout .product-name .ecoben-coq-controls { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.ecoben-checkout .ecoben-coq { display: inline-flex; align-items: center; border: 1px solid var(--eb-line); border-radius: 8px; overflow: hidden; }
.ecoben-checkout .ecoben-coq-btn { width: 28px; height: 28px; border: 0; background: var(--eb-cream); color: var(--eb-navy); font-size: 16px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.ecoben-checkout .ecoben-coq-btn:hover { background: var(--eb-cream-warm); }
.ecoben-checkout .ecoben-coq-val { min-width: 32px; text-align: center; font-size: 13.5px; font-weight: 600; color: var(--eb-ink); }
.ecoben-checkout .ecoben-coq-remove { border: 0; background: transparent; color: var(--eb-ink-faint); font-size: 18px; line-height: 1; cursor: pointer; padding: 4px 6px; }
.ecoben-checkout .ecoben-coq-remove:hover { color: var(--eb-rose); }
.ecoben-checkout .cart_item.ecoben-row-loading { opacity: .5; pointer-events: none; }

/* ===========================================================
   1.20.0 — checkout: naprawa szerokości, wiersze pól, floating
   labels (sterowane is-filled), trio Kraj/Kod/Miasto, segment firma
   =========================================================== */
/* Kolumny billing/shipping pełna szerokość (WC dawał 47% → dziura w środku) */
.ecoben-checkout #customer_details.col2-set { display: block !important; width: auto !important; }
.ecoben-checkout #customer_details .col-1,
.ecoben-checkout #customer_details .col-2 { width: 100% !important; float: none !important; max-width: none !important; padding: 0 !important; }

/* Pola w wierszach (flex w obrębie sekcji) */
.ecoben-checkout .woocommerce-billing-fields__field-wrapper,
.ecoben-checkout .woocommerce-shipping-fields__field-wrapper,
.ecoben-checkout .woocommerce-additional-fields__field-wrapper { display: flex; flex-wrap: wrap; column-gap: 16px; row-gap: 0; }
.ecoben-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.ecoben-checkout .woocommerce-shipping-fields__field-wrapper > .form-row,
.ecoben-checkout .woocommerce-additional-fields__field-wrapper > .form-row { flex: 1 1 100%; width: auto; float: none; margin: 0 0 15px; }
.ecoben-checkout .form-row-first { flex: 1 1 calc(50% - 8px) !important; }
.ecoben-checkout .form-row-last { flex: 1 1 calc(50% - 8px) !important; }
@media (min-width: 721px) {
	.ecoben-checkout .form-row.ecoben-trio { flex: 1 1 calc(33.333% - 11px) !important; }
}

/* --- FLOATING LABELS (sterowane is-filled / :focus-within, nie placeholderem) --- */
.ecoben-checkout .form-row.ecoben-float { position: relative; }
.ecoben-checkout .ecoben-float > label {
	/* Zakotwiczenie na środku POLA (52px → 26px), nie środku .form-row. Inaczej, gdy pod polem
	   pojawia się komunikat błędu, wiersz rośnie i „top:50%" spychało etykietę w dół (brzydki
	   efekt: pola z błędem miały etykietę niżej niż pola bez błędu). 26px = stała wysokość pola/2. */
	position: absolute !important; left: 16px; top: 26px; transform: translateY(-50%); margin: 0 !important; padding: 0 !important;
	font-size: 15px !important; font-weight: 400 !important; color: var(--eb-ink-faint) !important; pointer-events: none;
	transition: all .15s ease; max-width: calc(100% - 46px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	background: transparent !important; z-index: 2;
}
/* P1: stan aktywny — etykieta wskakuje NA górną ramkę (notched outline, jak Material outlined).
   Tło --eb-paper + padding przecina linię ramki; left:12px wyrównuje tekst do paddingu pola (16px). */
.ecoben-checkout .ecoben-float.is-filled > label,
.ecoben-checkout .form-row.ecoben-row-select.ecoben-float > label, /* select ZAWSZE ma wartość → etykieta u góry od klatki zero (bez czekania na JS) */
.ecoben-checkout .ecoben-float:focus-within > label {
	top: -7px !important; left: 12px; transform: none !important; font-size: 11px !important; font-weight: 600 !important;
	color: var(--eb-navy) !important; background: var(--eb-paper) !important; padding: 0 4px !important; line-height: 1.2;
}
.ecoben-checkout .ecoben-float > label .required { color: #B85447; }
.ecoben-checkout .ecoben-float > label .optional { display: none; }
/* P1: pole niższe (~52px), wartość pionowo wyśrodkowana (równy padding góra/dół), font 15/400 */
.ecoben-checkout .ecoben-float .input-text { height: 52px !important; padding: 0 16px !important; font-weight: 400 !important; font-size: 15px !important; line-height: 1.2 !important; color: var(--eb-ink) !important; }
.ecoben-checkout .ecoben-float textarea { height: auto !important; min-height: 92px; padding: 16px 16px 10px !important; font-weight: 400 !important; font-size: 15px !important; line-height: 1.4 !important; color: var(--eb-ink) !important; }
/* Placeholder ukryty — etykieta pełni jego rolę (brak nakładania tekstów) */
.ecoben-checkout .ecoben-float .input-text::placeholder,
.ecoben-checkout .ecoben-float textarea::placeholder { color: transparent !important; }

/* select2 / country — etykieta u góry, „Polska" niżej (koniec nakładania) */
.ecoben-checkout .ecoben-row-select .select2-container { width: 100% !important; }
.ecoben-checkout .ecoben-row-select .select2-container .select2-selection--single { height: 52px !important; border: 1px solid var(--eb-line) !important; border-radius: 12px !important; background: var(--eb-paper); }
/* P1: select niższy (52px), wartość pionowo wyśrodkowana; font kraju 15px Outfit */
.ecoben-checkout .ecoben-row-select .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 50px !important; padding: 0 30px 0 16px !important; font-size: 15px !important; font-weight: 400 !important; font-family: 'Outfit', sans-serif !important; color: var(--eb-ink) !important; }
.ecoben-checkout .ecoben-row-select .select2-container--default .select2-selection--single .select2-selection__arrow { top: 14px !important; right: 12px !important; }
.ecoben-checkout .ecoben-row-select select { height: 52px !important; padding: 0 16px !important; font-size: 15px !important; font-weight: 400 !important; }

/* Segment: Osoba prywatna / Firma (faktura VAT) */
.ecoben-checkout .ecb-customer-type { margin: 0 0 15px !important; }
.ecoben-checkout .ecb-customer-type > label { display: none !important; }
/* Dwie równe karty 50/50 — !important wygrywa z inline-CSS wtyczki company-nip */
.ecoben-checkout .ecb-customer-type .woocommerce-input-wrapper { display: flex !important; flex-wrap: nowrap; gap: 12px !important; align-items: stretch; }
.ecoben-checkout .ecb-customer-type input[type="radio"] { position: absolute !important; opacity: 0 !important; width: 0 !important; height: 0 !important; margin: 0 !important; pointer-events: none; }
.ecoben-checkout .ecb-customer-type label.radio {
	flex: 1 1 0 !important; display: flex !important; align-items: center; gap: 10px; border: 1.5px solid var(--eb-line); border-radius: 12px;
	padding: 14px 16px; margin: 0 !important; cursor: pointer; font-weight: 500; color: var(--eb-ink); transition: border-color .15s, background .15s;
}
.ecoben-checkout .ecb-customer-type label.radio::before {
	content: ""; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--eb-line); flex: 0 0 auto; transition: .15s;
}
.ecoben-checkout .ecb-customer-type label.radio:hover { border-color: var(--eb-navy); }
.ecoben-checkout .ecb-customer-type input[type="radio"]:checked + label.radio { border-color: var(--eb-navy); background: rgba(10,31,68,.04); }
.ecoben-checkout .ecb-customer-type input[type="radio"]:checked + label.radio::before { border-color: var(--eb-navy); background: radial-gradient(var(--eb-navy) 45%, transparent 50%); }
/* „(opcjonalne)" z wtyczki company-nip — niepotrzebne w segmencie */
.ecoben-checkout .ecb-customer-type label.radio .optional { display: none !important; }
@media (max-width: 520px) {
	.ecoben-checkout .ecb-customer-type .woocommerce-input-wrapper { flex-direction: column !important; }
}

/* ===========================================================
   1.22.0 — checkout: siła hasła premium (zamiast jaskrawego bloku WC)
   =========================================================== */
.ecoben-checkout .woocommerce-password-strength {
	display: inline-block; width: auto !important; margin: 8px 0 0 !important; padding: 4px 0 6px !important;
	background: transparent !important; border: 0 !important; border-bottom: 2px solid currentColor; border-radius: 0 !important;
	font-size: 12px !important; font-weight: 600; line-height: 1.2; text-align: left; color: var(--eb-ink-faint);
}
.ecoben-checkout .woocommerce-password-strength.short,
.ecoben-checkout .woocommerce-password-strength.bad { color: var(--eb-rose) !important; }
.ecoben-checkout .woocommerce-password-strength.good { color: var(--eb-gold) !important; }
.ecoben-checkout .woocommerce-password-strength.strong { color: var(--eb-sage-deep) !important; }
.ecoben-checkout .woocommerce-password-hint {
	display: block; margin: 6px 0 0; font-size: 12px; font-weight: 400; line-height: 1.45; color: var(--eb-ink-faint);
}

/* ===========================================================
   1.24.0 — checkout: naprawa overflow (mobile), kupon, address_2,
   spójność fontów, segment firmy nad imieniem, płatności,
   miniatury w podsumowaniu, popup logowania
   =========================================================== */

/* --- A. ANTI-OVERFLOW: pola nie rozpychają strony („rozjechany checkout") ---
   Pola w wierszach flex miały min-width:auto (intrinsic input ~20 znaków) →
   na telefonie nie zwężały się i rozpychały body na boki (kwoty/maile ucięte).
   min-width:0 + border-box + stos par na ≤600px likwiduje overflow u źródła. */
.ecoben-checkout .form-row { min-width: 0; max-width: 100%; box-sizing: border-box; }
.ecoben-checkout .woocommerce-input-wrapper { min-width: 0; max-width: 100%; }
.ecoben-checkout .input-text,
.ecoben-checkout textarea,
.ecoben-checkout select { box-sizing: border-box !important; max-width: 100% !important; min-width: 0; }
@media (max-width: 980px) {
	/* siatka bezpieczeństwa — gdyby coś jeszcze chciało wyjść poza ekran */
	.ecoben-checkout .woocommerce { overflow-x: clip; }
}
/* Pary pól (imię/nazwisko, telefon/e-mail) pełna szerokość na telefonie */
@media (max-width: 600px) {
	.ecoben-checkout .form-row-first,
	.ecoben-checkout .form-row-last { flex: 1 1 100% !important; }
}

/* --- B. KUPON: input + przycisk nie wystają poza ekran --- */
.ecoben-checkout .checkout_coupon .form-row-first { min-width: 0; }
.ecoben-checkout .checkout_coupon .button { max-width: 100%; }
@media (max-width: 768px) {
	.ecoben-checkout .checkout_coupon { flex-direction: column; align-items: stretch; }
	.ecoben-checkout .checkout_coupon .form-row-first,
	.ecoben-checkout .checkout_coupon .form-row-last { flex: 1 1 100% !important; width: 100% !important; min-width: 0; }
	.ecoben-checkout .checkout_coupon .input-text { width: 100% !important; }
	.ecoben-checkout .checkout_coupon .button { width: 100% !important; }
}

/* --- C. „Dalsza część adresu (opcjonalne)": pole wyglądało na PUSTE ---
   Etykieta miała klasę .screen-reader-text (WP: clip/width:1px !important),
   a placeholder jest ukryty przez floating → nic nie było widać.
   Przywracamy etykietę, by pełniła rolę pływającego labelu. */
.ecoben-checkout .ecoben-float > label.screen-reader-text {
	width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important;
	-webkit-clip-path: none !important; margin: 0 !important; padding: 0 !important;
}

/* --- D. SPÓJNOŚĆ FONTÓW: „Stworzyć konto?" ---
   „Wysłać na inny adres?" przeniesione do skonsolidowanego bloku checkoutu (1.34.0). */
.ecoben-checkout .woocommerce-account-fields label[for="createaccount"] {
	font-family: 'Outfit', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: var(--eb-navy);
}

/* --- E. REGULAMIN + ZGODY: jeden rozmiar/styl, linki granatowe --- */
.ecoben-checkout .woocommerce-terms-and-conditions-wrapper * { font-family: 'Outfit', sans-serif !important; }
.ecoben-checkout .woocommerce-form__label-for-checkbox.checkbox,
.ecoben-checkout .woocommerce-terms-and-conditions-checkbox-text {
	font-size: 14px !important; font-weight: 400 !important; line-height: 1.5 !important; color: var(--eb-ink-soft) !important;
}
.ecoben-checkout .woocommerce-terms-and-conditions-wrapper a,
.ecoben-checkout .woocommerce-privacy-policy-text a { color: var(--eb-navy) !important; font-weight: 600; }

/* --- F. METODY PŁATNOŚCI: czysto (bez grubych pasków imoje), spójny błąd --- */
/* Zdejmij lewe paski/cienie, które imoje/motyw wstrzykuje w wiersze i boxy */
.ecoben-checkout #payment .wc_payment_method,
.ecoben-checkout #payment li.wc_payment_method,
.ecoben-checkout #payment .wc_payment_method > label,
.ecoben-checkout #payment .imoje-payment-method-container,
.ecoben-checkout #payment .payment_box { border-left: 0 !important; box-shadow: none !important; }
/* Zaznaczona metoda: czysto — sam jaśniejszy ton tła + zaznaczone radio (jak we wzorcu) */
.ecoben-checkout #payment .wc_payment_method:has(input:checked) { border-left: 0 !important; box-shadow: none !important; }
/* P3: opis metody (np. „Nastąpi przekierowanie…") — padding + lekkie tło (było przy lewej krawędzi).
   #payment-specyficzność + !important bije reset paddingu z imoje/motywu. */
.ecoben-checkout #payment .payment_box { padding: 14px 16px !important; background: var(--eb-cream) !important; border-top: 1px solid var(--eb-line) !important; }
/* Komunikat błędu (np. „Metoda niedostępna") — miękki różowy box jak w referencji */
.ecoben-checkout #payment .payment_box .woocommerce-error,
.ecoben-checkout #payment .imoje-payment-method-container .woocommerce-error {
	background: rgba(184,84,71,.08) !important; border: 1px solid rgba(184,84,71,.22) !important;
	color: #8a3a2e !important; border-radius: 10px !important; padding: 10px 12px !important;
	margin: 0 !important; box-shadow: none !important; font-size: 13px !important; list-style: none;
}
.ecoben-checkout #payment .payment_box .woocommerce-error::before { display: none !important; }

/* --- G. SEGMENT „Osoba prywatna / Firma (faktura VAT)" ---
   1) Nad imieniem i nazwiskiem (wcześniej był pod). Zmiana wizualna przez
      flex `order` (kolejność logiki pól zostaje w wtyczce company-nip).
   2) Obok siebie również na małych telefonach (był stos w pionie). */
.ecoben-checkout .ecb-customer-type { order: -3; }
.ecoben-checkout .ecb-company { order: -2; }
.ecoben-checkout .ecb-nip { order: -1; }
@media (max-width: 520px) {
	.ecoben-checkout .ecb-customer-type .woocommerce-input-wrapper { flex-direction: row !important; gap: 8px !important; }
	.ecoben-checkout .ecb-customer-type label.radio { padding: 12px 10px; font-size: 13.5px; gap: 8px; }
}
@media (max-width: 360px) {
	.ecoben-checkout .ecb-customer-type label.radio { padding: 11px 8px; font-size: 12.5px; gap: 6px; }
	.ecoben-checkout .ecb-customer-type label.radio::before { width: 16px; height: 16px; }
}

/* (dostawa: reguły skonsolidowane w 1.32.0/1.33.0) */

/* --- H. BUMP: krótki opis pod nagłówkiem oferty --- */
.ecoben-checkout .ecoben-bump-desc {
	font-size: 12px; line-height: 1.35; color: var(--eb-ink-faint); margin-top: 1px;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* --- I. MINIATURY PRODUKTÓW w podsumowaniu („Twoje zamówienie") ---
   R14-0: KOMÓRKA ZOSTAJE table-cell (display:grid/flex na <td> wyrzucał ją z layoutu tabeli
   i zwijał kolumnę „Produkt" do min-content ~122px). Układ floatem:
   miniatura float-left, tytuł obok (BFC przez overflow:hidden), kontrolki/wariant clear:left pod spodem.
   font-size:0 na komórce neutralizuje stray &nbsp; z review-order.php; realne dzieci przywracają rozmiar. */
.ecoben-checkout .woocommerce-checkout-review-order-table .cart_item .product-name {
	padding-left: 0 !important; vertical-align: top; font-size: 0;
}
.ecoben-checkout .ecoben-coimg-wrap {
	float: left; width: 48px; height: 48px; margin: 0 12px 0 0; font-size: 0;
}
.ecoben-checkout .ecoben-coimg {
	width: 48px !important; height: 48px !important; max-width: 48px; margin: 0 !important;
	object-fit: contain; border: 1px solid var(--eb-line); border-radius: 8px;
	background: #fff; padding: 3px; box-sizing: border-box; display: block;
}
/* tytuł obok obrazka (BFC); overflow:hidden tworzy kontekst i nie owija pod miniaturę */
.ecoben-checkout .cart_item .product-name > .ecoben-co-pname { display: block; overflow: hidden; font-weight: 600; line-height: 1.35; font-size: 14.5px; }
.ecoben-checkout .cart_item .product-name .ecoben-coq-controls { clear: left; margin: 8px 0 0 !important; font-size: 13.5px; }
/* „Zestaw: −5%" jako mały sage pill, do lewej, w osobnej linii pod kontrolkami */
.ecoben-checkout .cart_item .product-name dl.variation {
	clear: left; float: left; margin: 6px 0 0 !important; display: inline-flex; align-items: baseline; gap: 4px;
	font-size: 11px; line-height: 1.6; background: rgba(74,124,89,.08); color: var(--eb-sage-deep);
	border-radius: 999px; padding: 2px 8px;
}
.ecoben-checkout .cart_item .product-name dl.variation dt,
.ecoben-checkout .cart_item .product-name dl.variation dd { margin: 0 !important; font-weight: 600; font-size: 11px; }
.ecoben-checkout .cart_item .product-name dl.variation dd p { margin: 0; display: inline; }
/* cena w 2. kolumnie wyrównana do góry */
.ecoben-checkout .woocommerce-checkout-review-order-table .cart_item td.product-total { vertical-align: top; }

/* --- J. POPUP LOGOWANIA (wbudowany w checkout) --- */
/* Ukryj natywny inline-form logowania WC, gdy mamy popup (klasa z PHP na <body>) */
.ecoben-co-login-on form.woocommerce-form-login { display: none !important; }
.ecoben-co-login-overlay {
	position: fixed; inset: 0; background: rgba(10,31,68,.5); z-index: 100000;
	opacity: 0; transition: opacity .25s ease;
}
.ecoben-co-login-overlay.show { opacity: 1; }
.ecoben-co-login-modal {
	position: fixed; left: 50%; top: 50%; transform: translate(-50%, -44%); z-index: 100001;
	width: min(420px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto;
	background: var(--eb-paper); border-radius: 18px; padding: 30px 28px 26px;
	box-shadow: 0 30px 80px rgba(10,31,68,.28); font-family: 'Outfit', sans-serif;
	opacity: 0; visibility: hidden; transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.ecoben-co-login-modal.open { opacity: 1; visibility: visible; transform: translate(-50%, -50%); }
.ecoben-co-login-modal h3 {
	font-family: 'Instrument Serif', serif !important; font-weight: 400; font-size: 28px;
	color: var(--eb-navy); margin: 0 0 6px; line-height: 1.1;
}
.ecoben-co-login-sub { font-size: 14px; color: var(--eb-ink-faint); margin: 0 0 18px; line-height: 1.45; }
.ecoben-co-login-close {
	position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%;
	background: var(--eb-cream-warm); color: var(--eb-ink-soft); font-size: 20px; line-height: 1; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; transition: background .15s;
}
.ecoben-co-login-close:hover { background: var(--eb-line); }
.ecoben-co-login-form .form-row { margin: 0 0 14px; }
.ecoben-co-login-form label { display: block; font-size: 12px; font-weight: 600; color: var(--eb-navy); margin: 0 0 6px; }
.ecoben-co-login-form input[type="text"],
.ecoben-co-login-form input[type="password"] {
	width: 100%; height: 50px; box-sizing: border-box; border: 1px solid var(--eb-line); border-radius: 12px;
	padding: 0 15px; font-size: 15px; font-family: 'Outfit', sans-serif; color: var(--eb-ink); background: var(--eb-paper);
}
.ecoben-co-login-form input:focus { outline: none; border-color: var(--eb-navy); box-shadow: 0 0 0 3px rgba(10,31,68,.08); }
.ecoben-co-login-remember { display: flex !important; align-items: center; gap: 8px; font-size: 13.5px !important; font-weight: 400 !important; color: var(--eb-ink-soft) !important; margin: 0 0 14px; cursor: pointer; }
.ecoben-co-login-remember input { width: 18px; height: 18px; margin: 0; accent-color: var(--eb-navy); }
.ecoben-co-login-msg { font-size: 13px; color: var(--eb-sage-deep); margin: 0 0 10px; min-height: 0; }
.ecoben-co-login-msg.is-error { color: var(--eb-rose); }
.ecoben-co-login-submit {
	width: 100%; border: 0; border-radius: 14px; background: var(--eb-navy); color: var(--eb-cream);
	font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 16px; padding: 15px 20px; cursor: pointer;
	box-shadow: 0 10px 24px rgba(10,31,68,.18); transition: background .2s, transform .15s;
}
.ecoben-co-login-submit:hover { background: var(--eb-navy-soft); transform: translateY(-1px); }
.ecoben-co-login-submit:disabled { opacity: .7; cursor: default; transform: none; }
.ecoben-co-login-lost { display: inline-block; margin: 14px 0 0; font-size: 13.5px; color: var(--eb-navy); font-weight: 500; }

/* --- K. Ukryj ikonę menedżera haseł (LastPass) nachodzącą na floating-label --- */
.ecoben-checkout [data-lastpass-icon-root] { display: none !important; }

/* ===========================================================
   1.26.0 — RUNDA 6: mini-koszyk (jeden scroll), /koszyk (dostawa+sumy+upsell)
   Scope: drawer + .woocommerce-cart. FBT — w bloku 1.6.1/1.26.0 wyżej.
   =========================================================== */

/* --- D. MINI-KOSZYK: stała góra (head+pasek dostawy) + stały foot;
   środek = JEDEN scroll obejmujący listę i upsell (min-height:0 = klucz) --- */
.ecoben-cart-drawer { overflow: hidden; }
.ecoben-cart-head,
.ecoben-cart-progress,
.ecoben-cart-foot { flex: 0 0 auto; }
.ecoben-cart-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.ecoben-cart-body { flex: none; overflow: visible; }   /* potwierdzenie: scroll tylko na .ecoben-cart-scroll */

/* upsell w drawerze: kompaktowy, max 2 pozycje (3. i kolejne ukryte) */
.ecoben-cart-upsell .ecoben-upsell-item ~ .ecoben-upsell-item ~ .ecoben-upsell-item { display: none; }
.ecoben-cart-upsell { padding-bottom: 6px; }
.ecoben-cart-upsell .ecoben-upsell-title { margin: 6px 0 6px; }
.ecoben-cart-upsell .ecoben-upsell-item { padding: 8px 9px; gap: 10px; margin-bottom: 6px; }
.ecoben-cart-upsell .ecoben-upsell-img { width: 38px; height: 38px; }
.ecoben-cart-upsell .ecoben-upsell-name { font-size: 12.5px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

/* foot kompaktowy (~140px): Razem + CTA + drobny „Zobacz koszyk" + JEDNA linia zaufania */
.ecoben-cart-foot { padding: 12px 22px 14px; }
.ecoben-cart-subtotal { margin-bottom: 6px; }
.ecoben-cart-subtotal strong { font-size: 20px; }
.ecoben-cart-checkout { padding: 12px; }
.ecoben-cart-view { margin-top: 6px; font-size: 12.5px; }
.ecoben-cart-trust { margin-top: 7px; gap: 14px; font-size: 11px; }
.ecoben-cart-trust svg { width: 13px; height: 13px; }

/* --- K. /koszyk: dostawa lekka (jak checkout R5) — lekkie wiersze w jednym kontenerze.
   ul#shipping_method daje wyższą specyficzność niż starsze reguły → bez !important. --- */
.woocommerce-cart .cart_totals ul#shipping_method { margin: 0; padding: 0; list-style: none; border: 0; border-radius: 0; background: transparent; }
.woocommerce-cart .cart_totals ul#shipping_method li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; border-top: 1px solid var(--eb-line); line-height: 1.4; }
.woocommerce-cart .cart_totals ul#shipping_method li:first-child { border-top: 0; }
.woocommerce-cart .cart_totals ul#shipping_method li:hover { background: rgba(74,124,89,.04); }
.woocommerce-cart .cart_totals ul#shipping_method li:has(input:checked) { background: rgba(74,124,89,.07); }
.woocommerce-cart .cart_totals ul#shipping_method input { margin: 0; flex: 0 0 auto; }
.woocommerce-cart .cart_totals ul#shipping_method label { margin: 0; font-size: 14px; font-weight: 500; color: var(--eb-ink); cursor: pointer; }
/* 1.53.0 — cały panel wiersza dostawy klikalny (JS zaznacza radio); koszyk + kasa */
.woocommerce-cart ul#shipping_method li,
.ecoben-checkout ul#shipping_method li { cursor: pointer; }

/* sumy: „Łącznie" spójnym krojem (Outfit, nie Instrument Serif), wyraźniejsze; „(zawiera VAT)" mała szara */
.woocommerce-cart .cart_totals .order-total th { font-family: 'Outfit', sans-serif !important; font-weight: 700; font-size: 16px; color: var(--eb-navy); }
.woocommerce-cart .cart_totals .order-total .amount { font-family: 'Outfit', sans-serif !important; font-weight: 700; font-size: 23px; color: var(--eb-navy); }
.woocommerce-cart .cart_totals .order-total .includes_tax,
.woocommerce-cart .cart_totals small.includes_tax { display: block; font-family: 'Outfit', sans-serif !important; font-size: 12px; font-weight: 400; color: var(--eb-ink-faint); }

/* --- K2. /koszyk „Dobierz do zamówienia": czytelny grid 3/2/1 (było repeat(4,1fr)) --- */
.woocommerce-cart .ecoben-addons-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
.woocommerce-cart .ecoben-addon { padding: 18px 16px; gap: 9px; }
.woocommerce-cart .ecoben-addon-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.55em; }
@media (max-width: 991px) { .woocommerce-cart .ecoben-addons-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px)  { .woocommerce-cart .ecoben-addons-grid { grid-template-columns: 1fr; } }

/* ===========================================================
   1.27.0 — RUNDA 7: dostawa (zaznaczenie), płatności (jeden ton), uwagi (toggle)
   =========================================================== */

/* --- B. /koszyk DOSTAWA: zaznaczona = label bold + radio sage (checkout w 1.34.0) --- */
.woocommerce-cart .cart_totals #shipping_method li:has(input:checked) label { font-weight: 700 !important; }
.woocommerce-cart .cart_totals #shipping_method input[type="radio"] { accent-color: var(--eb-sage); }

/* --- B. /koszyk: „(zawiera VAT)" — wewnętrzny .amount też mały/szary (dziedziczył duży Instrument Serif) --- */
.woocommerce-cart .cart_totals .order-total .includes_tax,
.woocommerce-cart .cart_totals .order-total .includes_tax .woocommerce-Price-amount {
	display: block; font-family: 'Outfit', sans-serif !important; font-size: 12px !important; font-weight: 400 !important; color: var(--eb-ink-faint);
}
.woocommerce-cart .cart_totals .order-total .includes_tax .woocommerce-Price-amount { display: inline; }

/* --- C. PŁATNOŚCI: jeden spokojny ton zaznaczenia (wiersz + payment_box tym samym), bez prześwitów --- */
.ecoben-checkout #payment .wc_payment_method:has(input:checked) { background: var(--eb-cream) !important; }
.ecoben-checkout #payment .wc_payment_method:has(input:checked) .payment_box { background: transparent !important; border-top-color: rgba(0,0,0,.06) !important; }
/* font opisu (bacs „Prosimy o wpłatę…") — !important bije motyw */
.ecoben-checkout #payment .payment_box,
.ecoben-checkout #payment .payment_box p { font-size: 13.5px !important; line-height: 1.5 !important; }
/* logo w jednej linii, do prawej */
.ecoben-checkout #payment .wc_payment_method > label img { margin-left: auto !important; max-height: 22px !important; width: auto !important; }

/* (D. „Uwagi do zamówienia" — przycisk-toggle skonsolidowany w 1.34.0 na końcu pliku) */

/* ===========================================================
   1.28.0 — wydanie: order_review(fix), płatności, dostawa, koszyk mobile,
   FBT/addons karuzele, produkt CTA + Kup teraz wariant + nota per-wariant,
   modal opinii, globalna typografia
   =========================================================== */

/* --- 11. GLOBALNA TYPOGRAFIA: ciaśniejszy tracking (czytelność, mniej rozjazdu).
   Wersaliki/eyebrow mają własny dodatni letter-spacing → automatycznie pomijają tę wartość.
   Duży serif zmiękczony do -0.25px (-0.5px bywa za ciasno w display). --- */
body { letter-spacing: -0.5px; }
.ecoben-single-product .product_title,
.ecoben-single-product .ecoben-price-block .price,
.ecoben-single-product .ecoben-price-block .single_variation .price,
.ecoben-single-product .ecoben-fbt-total-val,
.ecoben-cart-title, .ecoben-cart-subtotal strong,
.ecoben-rv-num,
.woocommerce-cart .cart_totals .order-total .amount,
.ecoben-checkout .ecoben-co-title { letter-spacing: -0.25px; }

/* --- 9. nota per-wariant: ukryta gdy pusta (atrybut hidden + pewność) --- */
.ecoben-single-product .ecoben-price-note-var[hidden] { display: none !important; }

/* --- 8/R14-4. PRODUKT CTA mobile: rząd 1 = stepper (wąski) + „Dodaj do koszyka" (wypełnia,
   tekst się zawija → nie wystaje); rząd 2 = „Kup teraz" pełną szerokością. Prosty i wariantowy. --- */
@media (max-width: 560px) {
	.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form),
	.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart { flex-wrap: nowrap; align-items: stretch; gap: 10px; }
	.ecoben-single-product .ecoben-price-block form.cart .quantity { flex: 0 0 auto; }
	.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form) .single_add_to_cart_button,
	.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart .single_add_to_cart_button {
		flex: 1 1 auto; min-width: 0; white-space: normal; padding: 0 12px; font-size: 14.5px;
	}
	.ecoben-buy-now { width: 100%; margin-top: 8px; }
}

/* --- 1. PŁATNOŚCI: zwarte (mniej pionu pudełka opisu), jeden ton (reszta w 1.27.0) --- */
.ecoben-checkout #payment .payment_box { padding: 10px 16px 0 !important; margin-top: 0 !important; }
.ecoben-checkout #payment .wc_payment_method > label { margin-bottom: 0 !important; }

/* (dostawa: padding wiersza w bloku 1.32.0/1.33.0) */

/* --- 2. CHECKOUT mobile: oddech boczny --- */
@media (max-width: 760px) {
	.ecoben-checkout #order_review { padding-left: 13px !important; padding-right: 13px !important; }
}
@media (max-width: 520px) {
	/* R15-4: REALNE selektory motywu (potwierdzone przez właściciela) — gutter globalny 20px,
	   .checkout zeruje własny padding (koniec podwójnego). Poprzednia próba (.ecoben-checkout .woocommerce) nie trafiała. */
	#primary .site-container { padding-left: 20px; padding-right: 20px; box-sizing: border-box; }
	.hentry .checkout { padding-left: 0 !important; padding-right: 0 !important; }
	#order_review_heading { padding-left: 0 !important; margin-left: 0 !important; }
	.ecoben-checkout .woocommerce-terms-and-conditions-checkbox-text,
	.ecoben-checkout .woocommerce-privacy-policy-text { font-size: 13px !important; }
}

/* --- 4. KOSZYK mobile: „Paczka 1" NAD opcjami (blok), opcje równo od lewej --- */
@media (max-width: 768px) {
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals th,
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals td { display: block; width: 100%; text-align: left; padding-left: 0 !important; padding-right: 0 !important; }
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals th { padding-bottom: 10px; font-weight: 600; }
	.woocommerce-cart .cart_totals ul#shipping_method li { padding-left: 0; padding-right: 0; }
}

/* --- 5. KOSZYK: pasek zaufania ułożony jak na checkoucie (.ecoben-co-trust) --- */
.woocommerce-cart .ecoben-cartpage-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; }
.woocommerce-cart .ecoben-cartpage-trust span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--eb-ink-faint); }

/* --- 6/R15-1. FBT mobile → karuzela scroll-snap. JEDNA definicja mobilna listy.
   flex-direction:row KLUCZOWE — bazowa reguła 1.5.x daje .ecoben-fbt-list flex-direction:column,
   więc bez tego flex:0 0 76% sterował WYSOKOŚCIĄ (karty w pionie, brak poziomego przepełnienia). --- */
@media (max-width: 760px) {
	.ecoben-single-product .ecoben-fbt-list {
		display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; grid-template-columns: none !important;
		overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		gap: 12px; margin: 0 0 18px; padding: 2px 0 10px; scrollbar-width: none;
	}
	.ecoben-single-product .ecoben-fbt-list::-webkit-scrollbar { display: none; }
	.ecoben-single-product .ecoben-fbt-item { flex: 0 0 76% !important; max-width: none !important; min-width: 0; scroll-snap-align: start; }
}

/* --- 7. KOSZYK „Dobierz do zamówienia" mobile → karuzela (jak FBT); desktop grid bez zmian --- */
@media (max-width: 599px) {
	.woocommerce-cart .ecoben-addons-grid {
		display: flex; flex-wrap: nowrap; grid-template-columns: none;
		overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		gap: 12px; margin: 0 0 4px; padding: 2px 0 10px; scrollbar-width: none;
	}
	.woocommerce-cart .ecoben-addons-grid::-webkit-scrollbar { display: none; }
	.woocommerce-cart .ecoben-addon { flex: 0 0 72%; scroll-snap-align: start; }
}

/* --- 10/R16-C. MODAL OPINII (mobile): nagłówek zwarty, „Zakup zweryfikowany" zawsze w karcie,
   × subtelniejsze i nie zasłania licznika 5★. --- */
@media (max-width: 600px) {
	/* head: bary nie wchodzą pod × (padding-right) + niżej (padding-top) */
	.ecoben-reviews-head { grid-template-columns: auto 1fr; gap: 14px; text-align: left; align-items: center; padding: 20px 50px 14px 18px !important; }
	.ecoben-reviews-score { text-align: center; }
	.ecoben-rv-num { font-size: 38px; }
	.ecoben-rv-bar { grid-template-columns: 26px 1fr 22px; gap: 8px; font-size: 12px; }
	.ecoben-rv-bar .track { height: 6px; }
	/* × mniejsze + subtelne, w rogu */
	.ecoben-reviews-close { top: 10px !important; right: 10px !important; width: 30px !important; height: 30px !important; font-size: 17px; background: rgba(10,31,68,.06) !important; border-color: transparent; }
	.ecoben-review-avatar { width: 34px !important; height: 34px !important; font-size: 13px; }
	.ecoben-review-text { font-size: 13.5px; }
	/* C(1) FIX: plakietka „Zakup zweryfikowany" w JEDNEJ linii, po prawej, shrink-to-content — pigułka
	   NIE rozciąga się na całą szerokość ani poza ekran (poprzednio flex-basis:100% + margin-left:46px
	   dawało box 100%+46px = overflow). Nazwa/data kurczą się z elipsą, gdy brak miejsca. */
	.ecoben-review-head { flex-wrap: nowrap; }
	.ecoben-review-who { min-width: 0; }
	.ecoben-review-name,
	.ecoben-review-date { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
	.ecoben-review-verified { margin-left: auto; flex: 0 0 auto; max-width: 56%; white-space: nowrap; font-size: 11px; padding: 2px 8px; }
	.ecoben-review { padding-bottom: 14px; margin-bottom: 14px; }
}

/* ===========================================================
   1.29.0 — RUNDA 14: order_review(float), uwagi(zwijanie), spójne przełączniki
   =========================================================== */

/* --- 2. „Wysłać na inny adres?" i „Uwagi" — przełączniki skonsolidowane w 1.34.0 na końcu pliku --- */

/* ===========================================================
   1.30.0 — RUNDA 15: FBT karuzela (flex-direction:row), stepper produktu mniejszy na mobile
   =========================================================== */

/* --- 2. Stepper ilości na produkcie mniejszy na ≤560px (nie dominuje obok „Dodaj do koszyka").
   Pola dotykowe nadal ≥~40px (czytelne). --- */
@media (max-width: 560px) {
	.ecoben-single-product .ecoben-price-block .quantity input.qty { width: 40px !important; height: 46px !important; font-size: 14.5px; }
	.ecoben-single-product .ecoben-qty-btn { width: 36px; height: 46px; font-size: 18px; }
}

/* ===========================================================
   1.31.2 — RUNDA 16.2: dostawa mobile (cart+checkout), drobne UX bloku ceny
   =========================================================== */

/* --- Snippety właściciela (potwierdzone na motywie) --- */
.woocommerce-checkout-review-order-table tbody .ecoben-coq-controls { padding-top: 5px; }
.woocommerce-shipping-fields .shipping_address .woocommerce-shipping-fields__field-wrapper { padding-top: 15px; }
.product div .ecoben-price-block { padding-top: 0; }
.entry-summary .ecoben-price-block form { margin-bottom: 0 !important; }

/* (floating-label uwag naprawiony porządnie w 1.33.0 — bez padding-hacka) */

/* --- DOSTAWA /koszyk na MOBILE (≤768px): płaskie wiersze.
   (checkout: dostawa skonsolidowana w bloku 1.34.0 — działa też na mobile.) --- */
@media (max-width: 768px) {
	/* 1) usuń duplikat „Paczka 1:" — to data-title (::before) z responsywnej tabeli motywu. */
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals td::before { content: none !important; display: none !important; }

	/* 2) nazwa paczki = lekki label nad opcjami, oddzielona cienką linią od „Kwoty" */
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals th {
		display: block !important; width: 100% !important; padding: 15px 0 9px !important; margin: 0 !important;
		border: 0 !important; border-top: 1px solid var(--eb-line) !important;
		font-family: 'Outfit', sans-serif !important; font-weight: 600 !important; font-size: 13.5px !important; color: var(--eb-ink-soft) !important; text-align: left !important;
	}
	.woocommerce-cart .cart_totals .woocommerce-shipping-totals td {
		display: block !important; width: 100% !important; padding: 0 0 4px !important; margin: 0 !important; border: 0 !important; text-align: left !important;
	}

	/* 3) opcje = płaskie wiersze: radio + label W JEDNEJ LINII (force row) */
	.woocommerce-cart .cart_totals ul#shipping_method { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; list-style: none !important; overflow: visible !important; }
	.woocommerce-cart .cart_totals ul#shipping_method li {
		display: flex !important; flex-direction: row !important; align-items: center !important; gap: 10px !important;
		padding: 11px 12px !important; margin: 0 !important; border: 0 !important; border-top: 1px solid var(--eb-line) !important;
		border-radius: 0 !important; background: transparent !important; text-align: left !important;
	}
	.woocommerce-cart .cart_totals ul#shipping_method li:first-child { border-top: 0 !important; }
	.woocommerce-cart .cart_totals ul#shipping_method li:has(input:checked) { background: rgba(74,124,89,.06) !important; border-radius: 10px !important; }
	.woocommerce-cart .cart_totals ul#shipping_method li input { flex: 0 0 auto !important; width: auto !important; margin: 0 !important; }
	.woocommerce-cart .cart_totals ul#shipping_method li label {
		flex: 1 1 auto !important; display: inline !important; width: auto !important; margin: 0 !important; padding: 0 !important;
		font-size: 14px !important; line-height: 1.35 !important; color: var(--eb-ink) !important; cursor: pointer; white-space: normal !important;
	}
	.woocommerce-cart .cart_totals ul#shipping_method li:has(input:checked) label { font-weight: 700 !important; }

	/* 4) wiersze sum (Kwota itd.) — pełna, spójna linia (koniec „częściowej kreski") */
	.woocommerce-cart .cart_totals .cart-subtotal th,
	.woocommerce-cart .cart_totals .cart-subtotal td { border-bottom: 1px solid var(--eb-line); }
}

/* ===========================================================
   1.31.3 — checkout = /koszyk (dostawa, VAT), notyfikacje WC, przełączniki
   =========================================================== */

/* (dostawa skonsolidowana w bloku 1.32.0 na końcu pliku) */

/* --- „(zawiera … VAT)" w JEDNEJ linii (na checkoutcie wąsko → łamało się) --- */
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax,
.ecoben-checkout .woocommerce-checkout-review-order-table .order-total .includes_tax .woocommerce-Price-amount { white-space: nowrap !important; }
/* mniej wolnej przestrzeni z prawej — treść bliżej krawędzi karty */
.ecoben-checkout #order_review { padding-left: 18px; padding-right: 18px; }

/* --- NOTYFIKACJE WooCommerce („Usunięto …. Cofnij?") — premium, spójne (koszyk + checkout) --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-noreviews,
.woocommerce-cart .cart-empty.woocommerce-info {
	position: relative; display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 2px 8px;
	background: var(--eb-cream) !important; border: 1px solid var(--eb-line) !important; border-left: 3px solid var(--eb-sage) !important;
	border-radius: 12px !important; box-shadow: none !important; padding: 13px 16px !important; margin: 0 0 16px !important;
	font-family: 'Outfit', sans-serif !important; font-size: 14px !important; line-height: 1.45 !important; color: var(--eb-ink-soft) !important; list-style: none !important;
}
.woocommerce-message::before,
.woocommerce-info::before { position: static !important; margin: 0 6px 0 0 !important; color: var(--eb-sage) !important; font-size: 15px !important; line-height: 1.45 !important; top: auto !important; left: auto !important; }
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-message .restore-item,
.woocommerce-message .button {
	order: 2; float: none !important; display: inline !important; margin: 0 !important; padding: 0 !important;
	background: none !important; border: 0 !important; color: var(--eb-navy) !important; font-weight: 600 !important; font-size: 14px !important;
	text-decoration: underline !important; text-underline-offset: 2px; box-shadow: none !important; min-height: 0 !important; width: auto !important;
}
.woocommerce-message a:hover,
.woocommerce-message .restore-item:hover { color: var(--eb-navy-soft) !important; }

/* (przełączniki skonsolidowane w bloku 1.32.0 na końcu pliku) */

/* ===========================================================
   1.31.5 — spójność bloku ceny (wariant = pojedynczy), zapamiętywanie v2
   =========================================================== */

/* --- BLOK CENY: JEDEN rytm dla pojedynczego i wariantu (REWRITE) ---
   Problem: wariant używał flex-`gap` (jednolity), pojedynczy marginesów → różne odstępy.
   Rozwiązanie: WSZĘDZIE marginesy (gap=0), te same wartości: cena → nota(6) → CTA(14) → Kup teraz(8) → dostawa(16).
   Cena wariantu też 44px (była 40). Gdy nota ukryta (brak danych) — jej margines znika (display:none). */
.ecoben-single-product .ecoben-price-block .single_variation .price,
.ecoben-single-product .ecoben-price-block .single_variation .price ins { font-size: 44px !important; }
.ecoben-single-product .ecoben-price-block .single_variation .price { gap: 12px; margin: 0 0 6px !important; }
.ecoben-single-product .ecoben-price-block .single_variation .price del { font-size: 17px; }
/* koniec flex-gap → rytm dają marginesy (identycznie w obu ścieżkach) */
.ecoben-single-product .ecoben-price-block form.variations_form { gap: 0 !important; }
.ecoben-single-product .ecoben-price-block .single_variation_wrap { gap: 0 !important; }
.ecoben-single-product .ecoben-price-block .variations { margin: 0 0 16px !important; }            /* wybór wariantu → cena */
.ecoben-single-product .ecoben-price-row { margin-bottom: 6px; }                                   /* cena (pojedynczy) → nota */
.ecoben-single-product .ecoben-price-note { margin: 0 0 14px !important; }                          /* nota → CTA (oba) */
.ecoben-single-product .ecoben-price-block form.cart:not(.variations_form),
.ecoben-single-product .ecoben-price-block .woocommerce-variation-add-to-cart { margin: 0 0 8px !important; } /* CTA → Kup teraz (oba) */
.ecoben-single-product .ecoben-buy-now { margin: 0 0 16px !important; }                             /* Kup teraz → dostawa (oba) */
.ecoben-single-product .ecoben-delivery { margin-top: 0 !important; }

/* ===========================================================
   1.32.0 — DOSTAWA na /koszyk (checkout skonsolidowany w 1.34.0 niżej)
   Płaskie wiersze na całą szerokość, radio + nazwa w jednej linii, hairline
   między pozycjami, zaznaczona = płaski sage, label bold, radio sage.
   =========================================================== */
.woocommerce-cart .cart_totals ul#shipping_method {
	display: block !important; list-style: none !important; width: 100% !important; max-width: none !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; overflow: visible !important;
}
.woocommerce-cart .cart_totals ul#shipping_method li {
	display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important;
	gap: 10px !important; width: 100% !important; box-sizing: border-box !important; float: none !important;
	margin: 0 !important; padding: 12px 12px !important; line-height: 1.4 !important;
	border: 0 !important; border-top: 1px solid var(--eb-line) !important; border-radius: 0 !important; background: transparent !important; text-align: left !important; transition: background .15s;
}
.woocommerce-cart .cart_totals ul#shipping_method li:first-child { border-top: 0 !important; }
.woocommerce-cart .cart_totals ul#shipping_method li:hover { background: rgba(74,124,89,.045) !important; }
.woocommerce-cart .cart_totals ul#shipping_method li:has(input:checked) { background: rgba(74,124,89,.09) !important; border-radius: 0 !important; }
.woocommerce-cart .cart_totals ul#shipping_method li input[type="radio"] {
	flex: 0 0 auto !important; width: 18px !important; height: 18px !important; min-width: 18px !important; margin: 0 !important; float: none !important; accent-color: var(--eb-sage) !important;
}
.woocommerce-cart .cart_totals ul#shipping_method li label {
	flex: 1 1 auto !important; display: inline !important; width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important;
	font-family: 'Outfit', sans-serif !important; font-size: 14px !important; font-weight: 500; line-height: 1.4 !important; color: var(--eb-ink) !important; white-space: normal !important; cursor: pointer;
}
.woocommerce-cart .cart_totals ul#shipping_method li:has(input:checked) label { font-weight: 700 !important; }

/* ===========================================================
   1.32.1 — „Stwórz konto" (styl + ukrycie gdy e-mail istnieje) + reset hasła w popupie
   =========================================================== */
.ecoben-checkout .woocommerce-account-fields { margin: 14px 0 0; }
.ecoben-checkout .woocommerce-account-fields .create-account label,
.ecoben-checkout .woocommerce-account-fields label[for="createaccount"] {
	display: inline-flex !important; align-items: center; gap: 10px;
	font-family: 'Outfit', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: var(--eb-navy) !important; cursor: pointer; line-height: 1.3;
}
.ecoben-checkout .woocommerce-account-fields input[type="checkbox"] { width: 20px !important; height: 20px !important; min-width: 20px; margin: 0 !important; flex: 0 0 auto; accent-color: var(--eb-navy); }
.ecoben-checkout .woocommerce-account-fields .create-account { margin-top: 12px; }
/* podpowiedź: ten e-mail ma już konto */
.ecoben-co-email-exists {
	margin: 8px 0 0; padding: 10px 14px; background: var(--eb-cream); border: 1px solid var(--eb-line); border-left: 3px solid var(--eb-sage);
	border-radius: 10px; font-family: 'Outfit', sans-serif; font-size: 13.5px; line-height: 1.45; color: var(--eb-ink-soft);
}
.ecoben-co-email-login {
	background: none; border: 0; padding: 0; cursor: pointer;
	font-family: 'Outfit', sans-serif; font-size: 13.5px; font-weight: 700; color: var(--eb-navy); text-decoration: underline; text-underline-offset: 2px;
}
.ecoben-co-email-login:hover { color: var(--eb-navy-soft); }
/* popup: „Nie pamiętasz hasła?" (button) + „Wróć do logowania" jako linki */
.ecoben-co-login-lost,
.ecoben-co-login-back {
	display: inline-block; margin: 12px 0 0; background: none !important; border: 0 !important; padding: 0 !important; cursor: pointer;
	font-family: 'Outfit', sans-serif; font-size: 13.5px; font-weight: 500; color: var(--eb-navy);
}
.ecoben-co-login-lost:hover,
.ecoben-co-login-back:hover { color: var(--eb-navy-soft); }
.ecoben-co-login-view[hidden] { display: none !important; }

/* ===========================================================
   1.34.0 — CHECKOUT: RESET I KONSOLIDACJA (jeden autorytatywny blok dla /zamowienie)
   Zastępuje rozsypane łatki: 1.24.0-D, 1.27.0-B/D, 1.29.0, 1.31.2(mobile),
   1.32.0(checkout), 1.33.0. Selektory oparte na REALNYM DOM przeglądarki:
     tr.woocommerce-shipping-totals > th + td > ul#shipping_method > li > input[radio] + label
     h3#ship-to-different-address > label > input[checkbox] + span
     button.ecoben-co-notes-toggle  (wstrzykiwany JS)
     p#order_comments_field.ecoben-float > label + textarea
   Zasada: !important TYLKO tam, gdzie bijemy motyw Kadence/WC (escape z tabeli,
   font nagłówka, baza .ecoben-float). Reszta wygrywa samą specyficznością.
   =========================================================== */

/* ---------- 1) DOSTAWA: wiersz na PEŁNĄ szerokość (koniec „pustki po prawej") ----------
   WAŻNE: ustawienie display:flex/block na <tr> NIE rozciąga go na pełną szerokość —
   przeglądarka owija taki wiersz w anonimową komórkę zajmującą tylko JEDNĄ kolumnę
   (stąd pustka po prawej). Fix u źródła: PHP scala <th>+<td> w jeden <td colspan="2">
   (patrz checkout.php → ecoben_co_merge_shipping_row). Tu już tylko stylujemy pełną komórkę.
   Nazwa paczki ląduje w <span class="ecoben-co-ship-name"> nad metodami. */
.ecoben-checkout tr.woocommerce-shipping-totals td {
	width: 100%; box-sizing: border-box; padding: 12px 0 4px; text-align: left; vertical-align: top;
}
/* responsywna tabela motywu dokleja data-title (::before) — zbędny, nazwę pokazuje <span> */
.ecoben-checkout tr.woocommerce-shipping-totals td::before { content: none !important; }
.ecoben-checkout .ecoben-co-ship-name {
	display: block; margin: 0 0 8px; font-family: 'Outfit', sans-serif; font-size: 13.5px; font-weight: 600; color: var(--eb-ink-soft);
}

/* ---------- 2) METODY WYSYŁKI: płaskie wiersze, radio + label w JEDNEJ linii ----------
   radio: flex-shrink:0 + margin:0 → nie jest zgniatany ani nie wyskakuje nad etykietę. */
.ecoben-checkout #shipping_method {
	display: block; list-style: none; width: 100%; margin: 0; padding: 0; border: 0; background: transparent;
}
.ecoben-checkout #shipping_method li {
	display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 !important; padding: 15px 5px;
	line-height: 1.4; border-top: 1px solid var(--eb-line); transition: background .15s;
}
.ecoben-checkout #shipping_method li:first-child { border-top: 0; }
.ecoben-checkout #shipping_method li:has(input:checked) { background: rgba(74,124,89,.07); }
.ecoben-checkout #shipping_method li input[type="radio"] {
	flex-shrink: 0; width: 18px; height: 18px; margin: 0; accent-color: var(--eb-sage);
}
.ecoben-checkout #shipping_method li label {
	flex: 1 1 auto; margin: 0; padding: 0;
	font-family: 'Outfit', sans-serif; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--eb-ink); cursor: pointer;
}
.ecoben-checkout #shipping_method li:has(input:checked) label { font-weight: 700; }

/* ---------- 3) PRZEŁĄCZNIKI: „Wysłać na inny adres?" == „Dodaj uwagi do zamówienia" ----------
   Oba to ten sam wiersz-CHECKBOX: kontener > label > input[checkbox] + span (uwagi: <p>
   wstrzykiwany JS-em, patrz ecoben.js). Identyczna typografia (Outfit 15/600 navy, BEZ serif
   Kadence) i ta sama afordancja (checkbox 20px navy). Bez linii — separują same odstępy.
   Kontenery resetują „kartę" 2175 (ta sama specyficzność, później w pliku → bez !important). */
.ecoben-checkout .woocommerce-shipping-fields,
.ecoben-checkout .woocommerce-additional-fields {
	background: transparent; border: 0; border-radius: 0; padding: 0; margin: 18px 0 0;
}
.ecoben-checkout h3#ship-to-different-address,
.ecoben-checkout .ecoben-co-notes-toggle {
	display: block; min-height: 24px; margin: 0; padding: 0; border: 0; background: none;
}
/* klikalny wiersz: checkbox + tekst (rytm i typografia trzymane na label) */
.ecoben-checkout h3#ship-to-different-address label,
.ecoben-checkout .ecoben-co-notes-toggle label {
	display: inline-flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; letter-spacing: -0.2px;
	font-family: 'Outfit', sans-serif !important; font-size: 15px !important; font-weight: 600 !important;
	color: var(--eb-navy) !important; line-height: 1.3 !important;
}
/* tekst etykiety — WPROST Outfit (inherit bywał zjadany przez motyw na <span>); kolor dziedziczy z label */
.ecoben-checkout h3#ship-to-different-address span,
.ecoben-checkout .ecoben-co-notes-toggle span {
	font-family: 'Outfit', sans-serif !important; font-size: 15px !important; font-weight: 600 !important;
	line-height: 1.3 !important; margin: 0 !important;
}
/* checkbox — identyczny w obu wierszach */
.ecoben-checkout h3#ship-to-different-address input[type="checkbox"],
.ecoben-checkout .ecoben-co-notes-toggle input[type="checkbox"] {
	flex-shrink: 0; width: 20px; height: 20px; margin: 0; accent-color: var(--eb-navy);
}
.ecoben-checkout h3#ship-to-different-address label:hover,
.ecoben-checkout .ecoben-co-notes-toggle label:hover { color: var(--eb-navy-soft) !important; }
/* po zaznaczeniu „inny adres" — pola adresu z oddechem */
.ecoben-checkout .woocommerce-shipping-fields .shipping_address { padding-top: 12px; }

/* ---------- 4) UWAGI: bez podwójnej etykiety ----------
   Checkbox „Dodaj uwagi do zamówienia" JUŻ opisuje sekcję → pływająca etykieta
   „Uwagi do zamówienia" w polu była dublem. Chowamy ją wizualnie, ale ZOSTAWIAMY
   dla czytników ekranu (sr-only = a11y). Podpowiedź daje placeholder (checkout.php).
   Normalny padding (brak miejsca na label = brak nakładania). */
.ecoben-checkout #order_comments_field { position: relative; }
.ecoben-checkout #order_comments_field > label {
	position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important;
	overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important;
}
.ecoben-checkout #order_comments_field textarea { padding: 14px 16px !important; min-height: 90px; }
.ecoben-checkout #order_comments_field textarea::placeholder { color: var(--eb-ink-faint) !important; opacity: 1; }

/* ===========================================================
   1.34.2 — integracja poprawek właściciela (z Customizera → do wtyczki, scoped,
   bez globalnych !important) + wyrównanie odstępów przełączników.
   =========================================================== */

/* --- PRODUKT: odstępy (z Customizera właściciela; !important bo motyw nadpisuje komórki tabeli) --- */
.ecoben-single-product .ecoben-price-block .ecoben-price-row { margin-top: 20px; }
.ecoben-single-product .variations tr .label { padding-top: 20px !important; }
.ecoben-single-product .variations tr div { padding-bottom: 5px !important; }
.ecoben-single-product .woocommerce-variation .woocommerce-variation-price .price { padding-bottom: 10px !important; }

/* --- CHECKOUT: drobne poprawki --- */
.ecoben-checkout #woocommerce-checkout-form-coupon,
.ecoben-checkout .checkout_coupon { padding: 13px; }
.ecoben-checkout #woocommerce-checkout-form-coupon .button,
.ecoben-checkout .checkout_coupon .button { font-size: 16px; }
.ecoben-checkout #payment .wc_payment_method > label img { padding-left: 5px !important; }
.ecoben-checkout .place-order .woocommerce-terms-and-conditions-wrapper p { line-height: 1.4; }
.ecoben-checkout #order_review_heading { padding-left: 0 !important; }
.ecoben-checkout #billing_customer_type_field span { padding-bottom: 10px; }
@media (max-width: 991px) {
	.ecoben-checkout #order_review_heading { padding-top: 20px; }
	.ecoben-checkout #customer_details .woocommerce-billing-fields h3 { padding-top: 10px; }
}

/* --- WYRÓWNANIE: „Stworzyć konto" == „Wysłać na inny adres" == „Dodaj uwagi" ---
   Ten sam odstęp górny dla 3 sekcji-przełączników; checkbox „Stworzyć konto" bez
   dodatkowego marginesu nad sobą (zostawiamy margines pola hasła, gdy odsłonięte).
   Wartości potwierdzone/dostrojone skryptem diagnostycznym (patrz rozmowa). */
.ecoben-checkout .woocommerce-account-fields > p.create-account:first-child,
.ecoben-checkout .woocommerce-account-fields > .create-account:first-child { margin-top: 0; }
/* „Stworzyć konto" (col-1) miało za duży odstęp do „Wysłać/Uwagi" (col-2). Ujemny dolny
   margines sekcji konta podciąga kolumnę wysyłki do równego odstępu (zweryfikowane wizualnie). */
.ecoben-checkout .woocommerce-account-fields { margin: 18px 0 -10px; }

/* --- SEGMENT FIRMA/NIP: koniec „błysku" pól na starcie ---
   Wtyczka company-nip chowa „Nazwa firmy"/„NIP" JS-em PO DOM (apply(): private→display:none,
   company→display:'' czyli USUWA inline). Przez ~0.2s przed JS pola były widoczne (błysk).
   Chowamy je od razu CSS-em i JAWNIE pokazujemy gdy zaznaczona „Firma" (:has — czysty CSS,
   niezależny od JS wtyczki). UWAGA: nie wolno tu zwykłego display:none bez :has — przy „Firma"
   wtyczka tylko KASUJE inline (display:''), więc bez reguły :has pola zostałyby schowane. */
.ecoben-checkout .ecb-company,
.ecoben-checkout .ecb-nip { display: none; }
.ecoben-checkout #customer_details:has(.ecb-customer-type input[value="company"]:checked) .ecb-company,
.ecoben-checkout #customer_details:has(.ecb-customer-type input[value="company"]:checked) .ecb-nip { display: block; }

/* --- CHECKOUT: koniec „przeładowania" przy wejściu ---
   WooCommerce ~1s po wejściu robi AJAX update_checkout (zmierzone: 425ms) i przerenderowuje
   #order_review, nakładając białawą nakładkę ładowania (blockUI) → wyglądało jak przeładowanie.
   Treść po odświeżeniu jest IDENTYCZNA (przeliczenie dostawy/sum), więc czynimy nakładkę
   PRZEZROCZYSTĄ — aktualizacja staje się niewidoczna (nakładka zostaje = blokuje klik podczas update).
   ZAWĘŻONE do #order_review: składanie zamówienia blokuje form.checkout (inna nakładka) —
   TAM feedback ZOSTAJE (klient widzi „przetwarzanie" po kliknięciu „Kupuję i płacę"). */
.ecoben-checkout #order_review .blockUI.blockOverlay { opacity: 0 !important; }

/* --- WALIDACJA: błędy WYRAŹNE i estetyczne ---
   Kadence renderuje inline błąd pod polem jako p.checkout-inline-error-message w przygaszonym
   slate 17px → źle widać. Robimy czytelny czerwony, mniejszy, z oddechem (pola + regulamin). */
.ecoben-checkout .checkout-inline-error-message {
	display: block; margin: 6px 0 0; padding: 0;
	font-family: 'Outfit', sans-serif; font-size: 13px !important; font-weight: 600 !important;
	line-height: 1.35; color: var(--eb-rose) !important;
}
/* górna lista zbiorcza błędów — spokojny, czytelny czerwony box */
.ecoben-checkout ul.woocommerce-error {
	background: rgba(184,84,71,.08); border: 1px solid rgba(184,84,71,.28);
	border-radius: 12px; padding: 12px 14px; margin: 0 0 16px; list-style: none;
	font-family: 'Outfit', sans-serif; font-size: 13.5px; font-weight: 500;
}
.ecoben-checkout ul.woocommerce-error li { color: #8a3a2e; margin: 0; }
/* regulamin niezaakceptowany — czerwony akcent na boxie zgód (wyraźny sygnał) */
.ecoben-checkout .woocommerce-terms-and-conditions-wrapper:has(.woocommerce-invalid) {
	border: 1px solid rgba(184,84,71,.45); background: rgba(184,84,71,.05);
}


/* --- KUPON: schowany do kliknięcia „Masz kupon?" (koniec błysku rozwinięcia na starcie) ---
   Formularz renderował się na ułamek sekundy widoczny, potem JS go chował. Chowamy go od
   klatki zero; „Kliknij tutaj" (slideToggle) i tak ustawia inline display → pokaże się normalnie. */
.ecoben-checkout .checkout_coupon:not(.ecoben-coupon-open),
.ecoben-checkout #woocommerce-checkout-form-coupon:not(.ecoben-coupon-open) { display: none !important; }
.ecoben-checkout .checkout_coupon.ecoben-coupon-open { display: flex !important; }

/* --- 1.51.0 — Kadence no-js window: koniec błysku kuponu/logowania na starcie kasy.
   Kadence (woocommerce.min.css): `.woocommerce-no-js form.woocommerce-form-login/-coupon
   {display:block !important}` + chowa toggle'y — dopóki skrypt WC nie podmieni klasy body
   no-js→js, formularze są WIDOCZNE (błysk ~0,2 s), a toggle'y wskakują po podmianie (skok
   treści niżej = „opóźnione" sekcje Dane rozliczeniowe/Twoje zamówienie). Nasze dotychczasowe
   reguły miały RÓWNĄ specyficzność, a CSS motywu ładuje się PO naszym → przegrywały w oknie
   no-js. Prefiks body. podbija specyficzność — wygrywamy niezależnie od kolejności. */
body.woocommerce-no-js .ecoben-checkout form.woocommerce-form-login,
body.woocommerce-no-js .ecoben-checkout form.checkout_coupon,
body.woocommerce-no-js .ecoben-checkout form.woocommerce-form-coupon { display: none !important; }
body.woocommerce-no-js .ecoben-checkout .woocommerce-form-login-toggle,
body.woocommerce-no-js .ecoben-checkout .woocommerce-form-coupon-toggle { display: block !important; }

/* --- ANTY-BŁYSK: elementy, które JS/WC chowa PO renderze — chowamy je od KLATKI ZERO ---
   (JS/WC pokazują je na interakcję inline display, więc bez !important — żeby pokazanie działało).
   To kasuje migotanie: pola uwag, nagłówka „Dodatkowe informacje" i adresu wysyłki przy starcie. */
.ecoben-checkout .woocommerce-additional-fields > h3 { display: none; }        /* zastąpiony checkboxem „Dodaj uwagi" */
.ecoben-checkout #order_comments_field { display: none; }                       /* checkbox „Dodaj uwagi" je pokazuje */
.ecoben-checkout .woocommerce-shipping-fields .shipping_address { display: none; } /* checkbox „Wysłać na inny adres" je pokazuje */
/* Pole uwag pokazuje CZYSTY CSS po zaznaczeniu checkboxa (wiersz-checkbox renderuje PHP —
   woocommerce_before_order_notes — więc nic nie wskakuje po DOM ready). :has jak przy Firma/NIP.
   JS dokłada tylko focus + inline display (fallback dla starych przeglądarek bez :has). */
.ecoben-checkout .woocommerce-additional-fields:has(.ecoben-co-notes-cb:checked) #order_comments_field { display: block; }
.ecoben-checkout .ecoben-co-notes-toggle { margin: 0 0 10px; }
.ecoben-checkout .ecoben-co-notes-toggle label { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 500; color: var(--eb-ink); cursor: pointer; }

/* --- ANTY-MIGNIĘCIE (całościowo): KURTYNA na form.checkout od KLATKI ZERO ---
   Wszystkie drobne przemeblowania po DOM ready (select2 kraju, floating labels,
   segment Firma/NIP, normalizacje WC) dzieją się POD kurtyną; JS zdejmuje ją po
   skończonym init → jedno płynne wejście zamiast widocznego „mignięcia".
   visibility zachowuje layout (zero skoku). 1.53.0: skrócone — 1×rAF w JS,
   fade .18→.08s, fallback bez JS .8→.4s (odczuwalne ~0,4 s → ~0,1 s). */
.ecoben-checkout form.checkout {
	visibility: hidden; opacity: 0;
	animation: ecbCoReveal 0s linear .4s forwards;
}
.ecoben-checkout form.checkout.ecb-co-ready {
	visibility: visible; opacity: 1; animation: none;
	transition: opacity .08s ease-out;
}
@keyframes ecbCoReveal { to { visibility: visible; opacity: 1; } }

/* =========================================================
   GLOBALNE FONTY — nadpisanie zmiennych czcionek Kadence (self-host Outfit + Instrument Serif).
   Chirurgicznie: Kadence renderuje fonty przez te zmienne, wiec bierze nasze; ikony nietkniete.
   Nazwy zmiennych do potwierdzenia pomiarem (zaleza od wersji Kadence). */
:root {
	--global-body-font-family: 'Outfit', system-ui, -apple-system, sans-serif !important;
	--global-heading-font-family: 'Instrument Serif', Georgia, serif !important;
	--h1-font-family: 'Instrument Serif', Georgia, serif !important;
	--h2-font-family: 'Instrument Serif', Georgia, serif !important;
	--h3-font-family: 'Outfit', sans-serif !important;
	--h4-font-family: 'Outfit', sans-serif !important;
	--h5-font-family: 'Outfit', sans-serif !important;
	--h6-font-family: 'Outfit', sans-serif !important;
}

/* =========================================================
   GLOBALNE ROZMIARY (strony MOTYWU: blog, zwykłe strony WP/WC).
   Tytuły 30/42, paragrafy 16/15. Nasze strony (produkt/sklep/kasa/koszyk)
   mają własne reguły powyżej — wykluczamy je przez body:not(), żeby nie
   ruszyć drobnych fontów naszych komponentów.
   WERYFIKACJA: po wdrożeniu sprawdź w DevTools na blogu/zwykłej stronie,
   czy .entry-title / .entry-content p to faktyczne selektory motywu
   (lekcja: nie zgadujemy markupu Kadence — patrz LEKCJE-runda-hardening).
   Wpisy bloga (.single-post) wykluczone z reguły paragrafów — typografię treści
   bloga (15px) kontroluje snippet „Blog i poradniki" (WPCode), nie deplikujemy. */
body:not(.ecoben-single-product):not(.ecoben-shop):not(.ecoben-checkout):not(.woocommerce-cart) .entry-title {
	font-size: clamp(30px, 4vw, 42px);
}
body:not(.ecoben-single-product):not(.ecoben-shop):not(.ecoben-checkout):not(.woocommerce-cart):not(.single-post) .entry-content p {
	font-size: 16px;
}
@media (max-width: 768px) {
	body:not(.ecoben-single-product):not(.ecoben-shop):not(.ecoben-checkout):not(.woocommerce-cart):not(.single-post) .entry-content p {
		font-size: 15px;
	}
}

/* =========================================================
   GLOBALNY ODSTĘP OD HEADERA — 50px nad treścią na KAŻDEJ stronie.
   #primary .site-container = realny kontener Kadence (potwierdzony przez właściciela,
   ten sam co gutter mobilny kasy ~l.2828). Desktop + mobile, wszystkie podstrony
   (strona główna, O nas, blog, produkt, sklep, kasa — wcześniej 0px od headera).
   Jeśli gdzieś (np. kasa/produkt) wyjdzie za dużo, zawęzić body:not(...). */
#primary .site-container { padding-top: 50px; }

/* =========================================================
   DROBNE POPRAWKI RESPONSYWNE (małe ekrany).
   ========================================================= */
/* 400px i mniejsze */
@media (max-width: 400px) {
	.ecoben-top .entry-summary .ecoben-price-block { padding-right: 15px; padding-left: 15px; }
}
/* 360px i mniejsze */
@media (max-width: 360px) {
	.single_variation_wrap .woocommerce-variation-add-to-cart-enabled .single_add_to_cart_button {
		font-size: 14px !important; padding-right: 5px !important; padding-left: 5px !important;
	}
}

/* =========================================================
   1.54.0/1.55.0 — InPost Paczkomat (geowidget) + stabilizacja podsumowania
   ========================================================= */
/* (a) Przycisk „Wybierz punkt odbioru" + zwinięty pusty th.
   1.54.0 nie zadziałało z dwóch powodów (patrz LEKCJE #9): kwalifikacja elementu
   `tr.easypack-parcel-machine` nie pasowała do realnego DOM (klasa siedzi na innym
   elemencie zależnie od strony), a wtyczka InPost styluje przycisk po #ID
   (specyficzność 1,0,0 bije każdy łańcuch klas). Tu: selektory element-agnostyczne,
   przycisk po ID + klasie, !important na spornych właściwościach. */
th.easypack-parcel-machine-label { display: none !important; }
/* 1.56.0 — wyrównanie do krawędzi listy dostaw + zero paska nad przyciskiem:
   „skrócona linia" nad przyciskiem to border-top komórek tabeli totals (po zwinięciu
   th linia łapała się tylko na szerokości jego dawnej kolumny) → zerujemy bordery
   całego wiersza. Przycisk = pełna szerokość kontenera (te same krawędzie lewa/prawa
   co panel dostaw wyżej, na każdym viewport), max-width:100% ubija overflow na 375px. */
.easypack-parcel-machine,
.easypack-parcel-machine th,
.easypack-parcel-machine td { border: 0 !important; }
.easypack-parcel-machine hr { display: none !important; }
.easypack-parcel-machine { display: block; width: 100%; max-width: 100%; }
.easypack-parcel-machine .easypack-parcel-machine-select,
.easypack-parcel-machine-select {
	display: block; width: 100%; max-width: 100%; box-sizing: border-box;
	padding: 10px 0 4px; border: 0 !important;
}
#easypack_show_geowidget,
.easypack_show_geowidget {
	display: block !important; width: 100% !important; max-width: 100% !important;
	margin: 0 !important; box-sizing: border-box !important; text-align: center;
	background: var(--eb-navy) !important; color: var(--eb-cream) !important;
	border: 0 !important; border-radius: 14px !important;
	font-weight: 600; font-size: 15px; line-height: 1.3;
	padding: 14px 16px !important; cursor: pointer; transition: background .15s ease;
}
#easypack_show_geowidget:hover,
.easypack_show_geowidget:hover { background: var(--eb-navy-soft) !important; }
#selected-parcel-machine { margin: 8px 0 0; max-width: 100%; font-size: 13px; line-height: 1.5; color: var(--eb-ink-soft); text-align: center; }

/* (b) Wybór Paczkomatów dokładał wiersz i tabela auto-layout przeliczała szerokości
   kolumn → tytuły produktów w podsumowaniu zwężały się i łamały do dodatkowej linii.
   table-layout:fixed = szerokości kolumn stałe, niezależne od treści wierszy dostawy. */
.ecoben-checkout .woocommerce-checkout-review-order-table {
	table-layout: fixed; width: 100%;
}
.ecoben-checkout .woocommerce-checkout-review-order-table th.product-name { width: 64%; }
.ecoben-checkout .woocommerce-checkout-review-order-table th.product-total { width: 36%; }
.ecoben-checkout .woocommerce-checkout-review-order-table td { overflow-wrap: break-word; }
