/* Pesto — style bazowe (token-driven). Klasy: pesto-*. */

:root {
	--pesto-ink: var(--wp--preset--color--ink, #121316);
	--pesto-body: var(--wp--preset--color--body, #2b2f36);
	--pesto-muted: var(--wp--preset--color--muted, #6f6e6a);
	--pesto-line: var(--wp--preset--color--line, #e7e3da);
	--pesto-surface: var(--wp--preset--color--surface, #f3efe7);
	--pesto-paper: var(--wp--preset--color--paper, #faf7f1);
	--pesto-base: var(--wp--preset--color--base, #ffffff);
	--pesto-accent: var(--wp--preset--color--accent, #c8a24a);
	--pesto-accent-d: #a9863a;
	--pesto-accent-on-light: #7a5e22; /* akcent jako TEKST/IKONA na jasnym tle — WCAG AA (~4.6:1 na surface) */
	--pesto-leaf: var(--wp--preset--color--leaf, #d9bd6e);
	--pesto-coral: var(--wp--preset--color--coral, #1c6b8c);
	--pesto-coral-d: #155977;
	--pesto-accent-ink: var(--wp--preset--color--accent-ink, #1a1a17);
	--pesto-gold: var(--wp--preset--color--gold, #c59f17);

	--pesto-radius-sm: 12px;
	--pesto-radius: 18px;
	--pesto-radius-lg: 26px;
	--pesto-radius-xl: 36px;
	--pesto-radius-pill: 999px;
	--pesto-shadow: 0 18px 48px rgba(20,24,29,.08);
	--pesto-shadow-sm: 0 6px 20px rgba(20,24,29,.06);
	/* Cień CTA PODĄŻA za akcentem (color-mix) — zmiana koloru przycisku w Customizerze
	   nie zostawia „starej" poświaty (wcześniej złoty hardcode w fallbackach). */
	--pesto-cta-shadow: 0 4px 14px color-mix(in srgb, var(--pesto-accent) 30%, transparent);
	--pesto-cta-shadow-h: 0 6px 20px color-mix(in srgb, var(--pesto-accent) 40%, transparent);
	--pesto-container: 1180px;
	--pesto-container-narrow: 760px;
	--pesto-gap: clamp(1rem, 0.6rem + 1.4vw, 2rem);
	--pesto-header-h: 74px;

	--pesto-font-body: var(--wp--preset--font-family--body, Inter, system-ui, sans-serif);
	--pesto-font-display: var(--wp--preset--font-family--display, "Bricolage Grotesque", system-ui, sans-serif);
}

*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--pesto-font-body);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--pesto-body);
	background: var(--pesto-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pesto-font-display);
	color: var(--pesto-ink);
	line-height: 1.07;
	letter-spacing: -.02em;
	font-weight: 700;
	margin: 0 0 0.5em;
}
h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 2.8rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.1rem); }
h3 { font-size: 1.3rem; }

a { color: var(--pesto-accent); text-underline-offset: 2px; }
a:hover { text-decoration: underline; }

img { max-width: 100%; height: auto; }

/* Układ */
.pesto-container { width: 100%; max-width: var(--pesto-container); margin-inline: auto; padding-inline: var(--pesto-gap); }
.pesto-container--narrow { max-width: var(--pesto-container-narrow); }
.pesto-main { padding-block: clamp(1.5rem, 1rem + 2vw, 3rem); }

/* Dostępność */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.pesto-skip-link:focus {
	position: fixed; left: 1rem; top: 1rem; z-index: 1000;
	width: auto; height: auto; clip: auto;
	padding: 0.6rem 1rem; background: var(--pesto-ink); color: #fff; border-radius: 8px;
}
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--pesto-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Nagłówek */
.pesto-header {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in srgb, var(--pesto-base) 88%, transparent);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--pesto-line);
}
.pesto-header__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	min-height: var(--pesto-header-h);
}
.pesto-site-title { font-family: var(--pesto-font-display); font-size: 1.3rem; margin: 0; }
.pesto-site-title a { color: var(--pesto-ink); text-decoration: none; }

/* Menu */
.pesto-menu { display: flex; gap: clamp(0.75rem, 0.4rem + 1vw, 1.75rem); list-style: none; margin: 0; padding: 0; }
.pesto-menu a { color: var(--pesto-ink); text-decoration: none; font-weight: 500; padding: 0.5rem 0; display: inline-block; font-size: var(--pesto-menu-size, 15px); text-transform: var(--pesto-menu-transform, none); }
.pesto-menu a:hover { color: var(--pesto-accent); }
.pesto-menu .current-menu-item > a { color: var(--pesto-accent); }

.pesto-nav-toggle {
	display: none;
	width: 44px; height: 44px; border: 1px solid var(--pesto-line);
	background: var(--pesto-base); border-radius: 10px; cursor: pointer; position: relative;
}
.pesto-nav-toggle__bar, .pesto-nav-toggle__bar::before, .pesto-nav-toggle__bar::after {
	content: ""; position: absolute; left: 50%; width: 20px; height: 2px; background: var(--pesto-ink);
	transform: translateX(-50%); transition: transform 0.2s ease, opacity 0.2s ease;
}
.pesto-nav-toggle__bar { top: 50%; }
.pesto-nav-toggle__bar::before { top: -6px; }
.pesto-nav-toggle__bar::after { top: 6px; }
.pesto-nav-toggle[aria-expanded="true"] .pesto-nav-toggle__bar { background: transparent; }
.pesto-nav-toggle[aria-expanded="true"] .pesto-nav-toggle__bar::before { top: 0; transform: translateX(-50%) rotate(45deg); }
.pesto-nav-toggle[aria-expanded="true"] .pesto-nav-toggle__bar::after { top: 0; transform: translateX(-50%) rotate(-45deg); }

/* Przyciski */
.pesto-button, .wp-block-button__link, button.pesto-searchform__submit {
	display: inline-block; font-family: var(--pesto-font-body); font-weight: 600;
	background: var(--pesto-ink); color: var(--pesto-accent-ink);
	border: 0; border-radius: var(--pesto-radius-pill); padding: 0.7rem 1.4rem;
	text-decoration: none; cursor: pointer; transition: transform 0.12s ease, background 0.2s ease;
}
.pesto-button:hover { background: var(--pesto-accent); transform: translateY(-1px); }

/* Karty / listy */
.pesto-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--pesto-gap); }
.pesto-card { border: 1px solid var(--pesto-line); border-radius: var(--pesto-radius); overflow: hidden; background: var(--pesto-base); display: flex; flex-direction: column; }
.pesto-card__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.pesto-card__body { padding: 1rem 1.1rem 1.25rem; }
.pesto-card__title { font-size: 1.15rem; margin: 0 0 0.35rem; }
.pesto-card__title a { color: var(--pesto-ink); text-decoration: none; }
.pesto-card__title a:hover { color: var(--pesto-accent); }
.pesto-entry-meta { color: var(--pesto-muted); font-size: 0.875rem; margin: 0 0 0.5rem; }

/* Treść wpisu */
.pesto-entry__header { margin-bottom: 1.25rem; }
.pesto-entry__media { margin: 0 0 1.5rem; border-radius: var(--pesto-radius); overflow: hidden; }
.pesto-entry__content > * + * { margin-top: 1rem; }

/* Wyszukiwarka */
.pesto-searchform { display: flex; gap: 0.5rem; }
.pesto-searchform__field { flex: 1; padding: 0.6rem 0.8rem; border: 1px solid var(--pesto-line); border-radius: 10px; font: inherit; }

/* Paginacja */
.pesto-pagination, .navigation.pagination { margin-top: 2rem; }
.pesto-pagination .page-numbers, .navigation .page-numbers {
	display: inline-block; padding: 0.4rem 0.75rem; border: 1px solid var(--pesto-line);
	border-radius: 8px; margin: 0 0.15rem; text-decoration: none; color: var(--pesto-ink);
}
.pesto-pagination .current, .navigation .current { background: var(--pesto-ink); color: #fff; border-color: var(--pesto-ink); }

/* Stopka */
.pesto-footer { border-top: 1px solid var(--pesto-line); background: var(--pesto-surface); margin-top: 3rem; }
.pesto-footer__inner { padding-block: 2.5rem; }
.pesto-footer__widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--pesto-gap); margin-bottom: 1.5rem; }
.pesto-footer-menu { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; margin: 0 0 1rem; padding: 0; }
.pesto-footer-menu a { color: var(--pesto-body); text-decoration: none; }
.pesto-footer-menu a:hover { color: var(--pesto-accent); }
.pesto-footer__copy { color: var(--pesto-muted); font-size: 0.875rem; margin: 0; }

/* 404 */
.pesto-404 { text-align: center; padding-block: clamp(2rem, 1rem + 5vw, 5rem); }
.pesto-404 .pesto-searchform { max-width: 420px; margin-inline: auto; }

/* Mobile */
@media (max-width: 860px) {
	.pesto-nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
	.pesto-nav {
		position: absolute; left: 0; right: 0; top: var(--pesto-header-h);
		background: var(--pesto-base); border-bottom: 1px solid var(--pesto-line);
		padding: 0.5rem var(--pesto-gap) 1rem;
		display: none;
	}
	.pesto-nav.is-open { display: block; }
	.pesto-menu { flex-direction: column; gap: 0; }
	.pesto-menu li { border-top: 1px solid var(--pesto-line); }
	.pesto-menu a { padding: 0.85rem 0; }
}

/* Redukcja ruchu */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* ============================================================
   KOMPONENTY WYGLĄDU (redesign 4.5) — klasy pesto-*
   ============================================================ */
.pesto-btn{display:inline-flex;align-items:center;gap:.5rem;border:0;cursor:pointer;font-family:var(--pesto-font-body);font-weight:600;font-size:1rem;padding:.85rem 1.6rem;border-radius:var(--pesto-radius-pill);transition:transform .15s ease,box-shadow .2s ease,background .2s ease;text-decoration:none}
.pesto-btn:focus-visible{outline:3px solid var(--pesto-ink);outline-offset:2px}
.pesto-btn--primary{background:var(--pesto-accent);color:var(--pesto-accent-ink);box-shadow:0 10px 24px rgba(200,162,74,.32)}
.pesto-btn--primary:hover{background:var(--pesto-accent-d);transform:translateY(-2px)}
.pesto-btn--coral{background:var(--pesto-coral);color:#fff;box-shadow:0 8px 22px rgba(255,107,74,.3)}
.pesto-btn--coral:hover{background:var(--pesto-coral-d);transform:translateY(-2px)}
.pesto-btn--ghost{background:transparent;color:var(--pesto-ink);border:1.5px solid var(--pesto-line)}
.pesto-btn--ghost:hover{border-color:var(--pesto-ink)}
.pesto-eyebrow{font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pesto-accent)}

/* Hero */
.pesto-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:center;padding:clamp(2rem,4vw,3.6rem) 0}
.pesto-hero h1{font-size:clamp(2.4rem,5.2vw,4.1rem);font-weight:800}
.pesto-hero h1 em{font-style:normal;color:var(--pesto-accent);position:relative}
.pesto-hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;background:var(--pesto-coral);opacity:.45;border-radius:2px}
.pesto-hero p{font-size:1.12rem;color:var(--pesto-muted);max-width:32ch;margin:1.2rem 0 1.8rem}
.pesto-hero__media{position:relative;aspect-ratio:1/1;width:100%;max-width:440px;margin-inline:auto}
.pesto-blob{position:absolute;inset:0;background:radial-gradient(120% 120% at 30% 20%,var(--pesto-leaf),var(--pesto-accent));border-radius:42% 58% 56% 44%/52% 44% 56% 48%;animation:pesto-morph 14s ease-in-out infinite}
@keyframes pesto-morph{50%{border-radius:54% 46% 40% 60%/46% 56% 44% 54%}}
.pesto-hero__photo{position:absolute;inset:8%;border-radius:var(--pesto-radius-xl);overflow:hidden;box-shadow:var(--pesto-shadow)}
.pesto-hero__photo img{width:100%;height:100%;object-fit:cover}

/* Pasek zaufania */
.pesto-trust{background:var(--pesto-base);border-top:1px solid var(--pesto-line);border-bottom:1px solid var(--pesto-line)}
.pesto-trust__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;padding:1.6rem 0}
.pesto-trust__item{display:flex;gap:.8rem;align-items:flex-start}
.pesto-trust__ic{flex:none;width:42px;height:42px;border-radius:var(--pesto-radius-pill);background:var(--pesto-surface);display:grid;place-items:center;color:var(--pesto-accent)}
/* Przypięty rozmiar SVG (globalny reset img,svg{height:auto} nadpisuje atrybut height) + block = zero luzu baseline. */
.pesto-trust__ic svg{display:block;width:22px;height:22px}

/* Pills */
.pesto-pills{display:flex;gap:.7rem;flex-wrap:wrap}
.pesto-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--pesto-radius-pill);background:var(--pesto-base);border:1.5px solid var(--pesto-line);font-weight:600;font-size:.92rem;transition:.18s;text-decoration:none;color:var(--pesto-ink)}
.pesto-pill:hover{border-color:var(--pesto-accent);color:var(--pesto-accent);transform:translateY(-2px)}
.pesto-pill--active{background:var(--pesto-accent);color:#fff;border-color:var(--pesto-accent)}

/* Karta produktu */
.pesto-card{background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius-lg);padding:.7rem;transition:transform .18s ease,box-shadow .22s ease}
.pesto-card:hover{transform:translateY(-4px);box-shadow:var(--pesto-shadow)}
.pesto-card__media{position:relative;aspect-ratio:1/1;border-radius:var(--pesto-radius);overflow:hidden;background:var(--pesto-surface)}
.pesto-card__media img{width:100%;height:100%;object-fit:cover}
.pesto-badge{position:absolute;top:.6rem;left:.6rem;background:var(--pesto-coral);color:#fff;font-size:.72rem;font-weight:700;padding:.25rem .6rem;border-radius:var(--pesto-radius-pill)}
.pesto-card__name{font-weight:600;font-size:.98rem;line-height:1.3;margin:.7rem .4rem .2rem}
.pesto-card__row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.4rem .4rem .3rem}
.pesto-card__price{font-family:var(--pesto-font-display);font-weight:700;font-size:1.15rem}
.pesto-card__add{width:42px;height:42px;border-radius:var(--pesto-radius-pill);background:var(--pesto-accent);color:var(--pesto-accent-ink);border:0;cursor:pointer;font-size:1.3rem;display:grid;place-items:center;transition:.18s;text-decoration:none;line-height:1}
.pesto-card__add:hover{background:var(--pesto-accent-d);transform:scale(1.08)}

/* Historia / pasy sekcji */
.pesto-band{background:var(--pesto-surface)}
.pesto-section{padding:4rem 0}

/* Klub / newsletter */
.pesto-club{background:var(--pesto-ink);color:#fff;border-radius:var(--pesto-radius-xl);padding:3rem;display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;position:relative;overflow:hidden}
.pesto-club::before{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;background:var(--pesto-accent);opacity:.35;border-radius:50%}
.pesto-club__off{display:inline-block;background:var(--pesto-coral);color:#fff;font-weight:700;padding:.2rem .7rem;border-radius:var(--pesto-radius-pill);font-size:.8rem;margin-bottom:.8rem;position:relative}

@media(max-width:980px){
	.pesto-hero__grid{grid-template-columns:1fr;gap:1.3rem;padding:1.8rem 0}
	.pesto-hero__media{aspect-ratio:16/10;max-width:420px}
	.pesto-trust__grid{grid-template-columns:repeat(2,1fr)}
	.pesto-club{grid-template-columns:1fr;padding:2rem}
}
@media(prefers-reduced-motion:reduce){.pesto-blob{animation:none}}

/* ============================================================
   KONSUMPCJA OPCJI CUSTOMIZERA (sekcje wyglądu)
   ============================================================ */
:root{
	--pesto-font-size:16px;
	--pesto-heading-weight:700;
	--pesto-heading-spacing:-.02em;
	--pesto-section-pad:64px;
	--pesto-header-bg:var(--pesto-paper);
	--pesto-header-fg:var(--pesto-ink);
	--pesto-footer-bg:var(--pesto-ink);
	--pesto-footer-fg:#cfd2d6;
	--pesto-shop-cols:4;
	--pesto-card-gap:22px;
	--pesto-card-bg:#ffffff;
	--pesto-card-border:1px;
	--pesto-price-color:var(--pesto-ink);
}
body{font-size:var(--pesto-font-size)}
h1,h2,h3,h4,h5,h6{font-weight:var(--pesto-heading-weight);letter-spacing:var(--pesto-heading-spacing)}
/* Skala H2/H3 z Customizera — tylko treść stron/wpisów (bez widżetów/sekcji) */
.pesto-entry__content h2,.pesto-page__content h2{font-size:var(--pesto-h2-size,clamp(1.5rem,1.2rem+1.4vw,2rem))}
.pesto-entry__content h3,.pesto-page__content h3{font-size:var(--pesto-h3-size,clamp(1.2rem,1.05rem+.8vw,1.5rem))}
.pesto-section{padding-block:var(--pesto-section-pad)}

/* Nagłówek sterowany opcjami */
.pesto-header{background:var(--pesto-header-bg);color:var(--pesto-header-fg);min-height:var(--pesto-header-h)}
.pesto-header a,.pesto-header .pesto-site-title a{color:var(--pesto-header-fg)}
.pesto-has-sticky-header .pesto-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px)}
.pesto-has-dark-header .pesto-header{border-bottom:1px solid rgba(255,255,255,.12)}
.pesto-has-dark-header .pesto-header .pesto-nav a:hover{color:var(--pesto-accent)}

/* Stopka sterowana opcjami */
.pesto-footer{background:var(--pesto-footer-bg);color:var(--pesto-footer-fg);border-top:0}
.pesto-footer a{color:var(--pesto-footer-fg)}
.pesto-footer a:hover{color:#fff}

/* ---------- Strona główna: dopełnienia ----------
   Nagłówek sekcji: JEDNA kanoniczna definicja (wcześniej dublowała się z „wzorcem
   wyśrodkowanym" niżej i tytuł nie siedział na środku). Tytuł wyśrodkowany;
   przycisk („Wszystkie produkty") na desktopie absolutnie po prawej, na mobile pod tytułem. */
.pesto-section__head{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;margin:0 auto 1.8rem}
.pesto-section__head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:.2rem 0 0;max-width:60ch}
.pesto-section__head p{color:var(--pesto-muted);font-size:1.05rem;max-width:60ch}
.pesto-section__head > .pesto-btn{position:absolute;right:0;top:50%;transform:translateY(-50%)}
@media(max-width:760px){.pesto-section__head > .pesto-btn{position:static;transform:none;margin-top:.9rem}}
.pesto-hero__cta{display:flex;gap:.8rem;flex-wrap:wrap}
.pesto-hero__photo{position:absolute;inset:8%;border-radius:var(--pesto-radius-xl);overflow:hidden;box-shadow:var(--pesto-shadow)}
.pesto-hero__photo img{width:100%;height:100%;object-fit:cover}
.pesto-story__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:center;padding-block:var(--pesto-section-pad)}
.pesto-story__media{aspect-ratio:4/5;border-radius:var(--pesto-radius-xl);background:linear-gradient(160deg,#f3efe7,#efe7d6);display:grid;place-items:center;font-size:5rem;overflow:hidden;box-shadow:var(--pesto-shadow)}
.pesto-story__media img{width:100%;height:100%;object-fit:cover}
.pesto-club__form{display:flex;gap:.6rem;position:relative;flex-wrap:wrap}
.pesto-club__form input{flex:1 1 200px;border:0;border-radius:var(--pesto-radius-pill);padding:.9rem 1.2rem;font-size:1rem;font-family:var(--pesto-font-body)}
.pesto-front .products{list-style:none;padding:0}
@media(max-width:900px){.pesto-story__grid{grid-template-columns:1fr;gap:1.5rem}}

/* ---------- Nagłówek: narzędzia + badge ---------- */
.pesto-header__inner{gap:1.5rem}
.pesto-header__brand{display:flex;align-items:center}
.pesto-header .pesto-nav{margin-right:auto;margin-left:.5rem}
.pesto-header__tools{display:flex;align-items:center;gap:.25rem}
.pesto-tool{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--pesto-radius-pill);color:inherit;position:relative;transition:background .15s ease}
.pesto-tool:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.pesto-cart-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;line-height:18px;padding:0 4px;background:var(--pesto-coral);color:#fff;border-radius:var(--pesto-radius-pill);font-size:.7rem;font-weight:700;text-align:center;font-family:var(--pesto-font-body)}
.pesto-cart-badge[data-count="0"]{display:none}
@media(max-width:782px){
	.pesto-header .pesto-nav{position:fixed;inset:var(--pesto-header-h) 0 auto;background:var(--pesto-paper);border-bottom:1px solid var(--pesto-line);padding:1rem var(--pesto-gap);transform:translateY(-120%);transition:transform .25s ease;margin:0}
	.pesto-nav.is-open{transform:translateY(0)}
}
@media(min-width:783px){.pesto-nav-toggle{display:none}}

/* ============================================================
   KOSZYK / CHECKOUT — pełne wygładzenie
   ============================================================ */
.woocommerce-cart .pesto-main,.woocommerce-checkout .pesto-main{padding-block:2.5rem}
.woocommerce table.shop_table{border-radius:var(--pesto-radius);border:1px solid var(--pesto-line);border-collapse:separate;overflow:hidden}
.woocommerce table.shop_table th{background:var(--pesto-surface);font-family:var(--pesto-font-display)}
.woocommerce table.shop_table td,.woocommerce table.shop_table th{border-top:1px solid var(--pesto-line);padding:1rem}
.woocommerce .cart_item img{border-radius:var(--pesto-radius-sm);width:64px}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-checkout .woocommerce-checkout-review-order{background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius-lg);padding:1.4rem}
.woocommerce .cart_totals h2,.woocommerce-checkout #order_review_heading{font-family:var(--pesto-font-display);font-size:1.3rem}
.woocommerce-cart .actions .coupon input{border-radius:var(--pesto-radius-pill);border:1.5px solid var(--pesto-line);padding:.7rem 1rem}
.woocommerce form.checkout h3{font-family:var(--pesto-font-display);color:var(--pesto-ink)}
.woocommerce-checkout #payment{border-radius:var(--pesto-radius-lg);border:1px solid var(--pesto-line)}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--pesto-line)}
.woocommerce-checkout #place_order{width:100%;font-size:1.05rem;padding:1rem}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--pesto-accent)}
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before{color:var(--pesto-accent)}

/* Ciemny nagłówek: hover narzędzi jaśniejszy */
.pesto-has-dark-header .pesto-tool:hover{background:rgba(255,255,255,.12)}

/* ---------- Wyszukiwarka (nakładka) ---------- */
.pesto-search{position:fixed;inset:0;z-index:200}
.pesto-search[hidden]{display:none}
.pesto-search__backdrop{position:absolute;inset:0;background:rgba(18,19,22,.5);opacity:0;transition:opacity .2s ease}
.pesto-search.is-open .pesto-search__backdrop{opacity:1}
.pesto-search__panel{position:relative;background:var(--pesto-paper);max-width:760px;margin:0 auto;padding:1.6rem var(--pesto-gap) 1.8rem;border-radius:0 0 var(--pesto-radius-lg) var(--pesto-radius-lg);box-shadow:var(--pesto-shadow);transform:translateY(-110%);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.pesto-search.is-open .pesto-search__panel{transform:translateY(0)}
.pesto-search__form{display:flex;align-items:center;gap:.6rem;border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-pill);padding:.4rem .4rem .4rem 1rem;background:var(--pesto-base)}
.pesto-search__icon{color:var(--pesto-muted);flex:none}
.pesto-search__input{flex:1 1 auto;border:0;outline:0;background:transparent;font-size:1.05rem;font-family:var(--pesto-font-body);padding:.6rem 0}
.pesto-search__submit{flex:none}
.pesto-search__close{flex:none;width:40px;height:40px;border-radius:var(--pesto-radius-pill);border:0;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--pesto-muted)}
.pesto-search__close:hover{background:var(--pesto-surface);color:var(--pesto-ink)}
.pesto-search__hint{color:var(--pesto-muted);font-size:.85rem;margin:.8rem 0 0;padding-left:1rem}
@media(max-width:560px){.pesto-search__submit{display:none}}
@media(prefers-reduced-motion:reduce){.pesto-search__panel,.pesto-search__backdrop{transition:none}}

/* Hero: znak-łapka gdy brak obrazu */
.pesto-hero__mark{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.92)}
.pesto-hero__mark svg{filter:drop-shadow(0 8px 24px rgba(0,0,0,.18))}
/* Produkty na stronie głównej: usuń domyślne marginesy listy Woo wewnątrz sekcji */
.pesto-front .woocommerce{margin:0}
.pesto-front .woocommerce ul.products{margin:0}

/* ---------- Customizer: nowe tokeny (Botiga-style rozbudowa) ---------- */
:root{
	--pesto-line-height:1.6;
	--pesto-btn-radius:999px;
	--pesto-btn-transform:none;
	--pesto-header-shadow:none;
	--pesto-footer-heading:#ffffff;
	--pesto-card-title-size:1rem;
}
body{line-height:var(--pesto-line-height)}
.pesto-btn{border-radius:var(--pesto-btn-radius);text-transform:var(--pesto-btn-transform)}
.pesto-header{box-shadow:var(--pesto-header-shadow)}
.pesto-header-noborder .pesto-header{border-bottom:0}

/* Builder nagłówka — sloty lewo / środek / prawo (z Customizera) */
.pesto-header__inner--builder{display:flex;align-items:center;gap:clamp(.5rem,1.5vw,1.2rem)}
.pesto-header__slot{display:flex;align-items:center;gap:clamp(.3rem,1.2vw,.9rem);min-width:0}
.pesto-header__slot--left{justify-content:flex-start}
.pesto-header__slot--center{flex:1 1 auto;justify-content:center}
.pesto-header__slot--right{margin-left:auto;justify-content:flex-end}
.pesto-header__slot .pesto-nav{margin:0}
.pesto-header__cta{padding:.5rem 1.1rem;font-size:.9rem;white-space:nowrap}

/* Zmniejszanie nagłówka po przewinięciu (sticky_shrink) */
.pesto-shrink-header.pesto-has-sticky-header .pesto-header{transition:min-height .2s ease,box-shadow .2s ease}
.pesto-shrink-header.pesto-has-sticky-header.pesto-scrolled .pesto-header{min-height:calc(var(--pesto-header-h) * .76);box-shadow:0 6px 20px rgba(20,24,29,.08)}
.pesto-shrink-header.pesto-has-sticky-header.pesto-scrolled .pesto-header__inner{padding-block:.15rem}
.pesto-footer h4,.pesto-footer .pesto-footer__brand{color:var(--pesto-footer-heading)}
.pesto-hide-rating .woocommerce ul.products li.product .star-rating{display:none}

/* ============================================================
   ANTY-OVERFLOW: blokada poziomego "bujania" strony
   ============================================================ */
/* clip zamiast hidden — nie psuje position:sticky nagłówka */
/* Obrazy i media nigdy nie rozpychają układu */
img,svg,video,iframe{max-width:100%}
/* Grid/flex: pozwól dzieciom się kurczyć (fix "grid blowout") */
.pesto-container{max-width:min(var(--pesto-container),100%)}

/* ============================================================
   TIP-TOP #1 — nawigacja: podmenu, hover, mobile
   ============================================================ */
/* Animowane podkreślenie pozycji menu */
.pesto-menu > li{position:relative}
.pesto-menu > li > a{position:relative}
.pesto-menu > li > a::after{content:"";position:absolute;left:0;right:100%;bottom:.2rem;height:2px;background:var(--pesto-accent);transition:right .22s cubic-bezier(.16,1,.3,1)}
.pesto-menu > li > a:hover::after,
.pesto-menu > li.current-menu-item > a::after{right:0}

/* Rozwijane podmenu (desktop) */
.pesto-menu .sub-menu{position:absolute;top:100%;left:-.9rem;min-width:220px;background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);box-shadow:var(--pesto-shadow);padding:.5rem;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s;z-index:60}
.pesto-menu li:hover > .sub-menu,
.pesto-menu li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.pesto-menu .sub-menu li{display:block}
.pesto-menu .sub-menu a{display:block;padding:.5rem .8rem;border-radius:10px;font-weight:500;white-space:nowrap}
.pesto-menu .sub-menu a:hover{background:var(--pesto-surface);color:var(--pesto-ink)}
.pesto-menu .sub-menu a::after{display:none}
/* Strzałka przy pozycji z podmenu */
.pesto-menu > li.menu-item-has-children > a{padding-right:1.05rem}
.pesto-menu > li.menu-item-has-children > a::before{content:"";position:absolute;right:0;top:50%;width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-70%) rotate(45deg);opacity:.55}

/* MEGA MENU — pozycja menu z klasą CSS „pesto-mega" → szerokie, wielokolumnowe podmenu.
   2. poziom = nagłówki kolumn, 3. poziom = linki. Włącz: Wygląd → Menu → „Klasy CSS (opcjonalne)" = pesto-mega. */
.pesto-nav{position:relative}
.pesto-menu > li.pesto-mega{position:static}
.pesto-menu > li.pesto-mega > .sub-menu{
	left:0;right:auto;width:min(760px,94vw);
	display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
	gap:.1rem 1.4rem;padding:1.3rem 1.5rem;
}
.pesto-menu > li.pesto-mega > .sub-menu > li{break-inside:avoid}
.pesto-menu > li.pesto-mega > .sub-menu > li > a{font-weight:700;color:var(--pesto-ink);padding:.4rem .4rem;white-space:normal}
.pesto-menu > li.pesto-mega > .sub-menu > li.menu-item-has-children > a::before{display:none}
.pesto-menu > li.pesto-mega .sub-menu .sub-menu{
	position:static;opacity:1;visibility:visible;transform:none;
	box-shadow:none;border:0;background:none;min-width:0;padding:.1rem 0 .5rem;margin:0;
}
.pesto-menu > li.pesto-mega .sub-menu .sub-menu a{font-weight:500;color:var(--pesto-muted);padding:.32rem .4rem;white-space:normal}
.pesto-menu > li.pesto-mega .sub-menu .sub-menu a:hover{color:var(--pesto-accent);background:var(--pesto-surface)}

/* Mobile: podmenu w pionie z wcięciem */
@media(max-width:782px){
	.pesto-menu{flex-direction:column;gap:.1rem}
	.pesto-menu > li > a{padding:.65rem 0;font-size:1.05rem}
	.pesto-menu > li > a::after{display:none}
	.pesto-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;background:transparent;padding:0 0 .3rem 1rem;min-width:0}
	.pesto-menu .sub-menu a{white-space:normal;color:var(--pesto-muted)}
	/* Mega menu na mobile = zwykła pionowa lista (bez siatki kolumn). */
	.pesto-menu > li.pesto-mega > .sub-menu{display:block;width:auto;max-width:none;padding:0 0 .3rem 1rem}
}

/* ============================================================
   TIP-TOP #2 — stopka: siatka widżetów, logo, linki
   ============================================================ */
.pesto-footer{padding:3.2rem 0 1.6rem}
.pesto-footer__widgets{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.2rem;margin-bottom:2.2rem}
@media(max-width:900px){.pesto-footer__widgets{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pesto-footer__widgets{grid-template-columns:1fr}}
.pesto-footer .widget{margin:0}
.pesto-footer .widget img{max-width:170px;height:auto;filter:brightness(0) invert(1);opacity:.95}
.pesto-footer .widget-title,
.pesto-footer h3,.pesto-footer h4{color:var(--pesto-footer-heading);font-family:var(--pesto-font-display);font-size:1rem;margin:0 0 .9rem;letter-spacing:.01em}
.pesto-footer ul{list-style:none;margin:0;padding:0}
.pesto-footer ul li{margin:0}
.pesto-footer ul a{display:inline-block;padding:.28rem 0;color:var(--pesto-footer-fg);text-decoration:none;transition:color .15s,transform .15s}
.pesto-footer ul a:hover{color:#fff;transform:translateX(3px)}
.pesto-footer p{margin:.3rem 0;line-height:1.7}
.pesto-footer a{color:var(--pesto-footer-fg)}
.pesto-footer a:hover{color:#fff}
.pesto-footer__copy{border-top:1px solid color-mix(in srgb,var(--pesto-footer-fg) 22%,transparent);padding-top:1.4rem;margin-top:.5rem;font-size:.82rem;color:color-mix(in srgb,var(--pesto-footer-fg) 75%,transparent);text-align:center}

/* ============================================================
   TIP-TOP #3 — detale globalne
   ============================================================ */
::selection{background:var(--pesto-accent);color:var(--pesto-accent-ink)}
a:focus-visible,button:focus-visible{outline:2.5px solid var(--pesto-accent);outline-offset:2px;border-radius:4px}
/* Kotwice (TOC) nie chowają się pod sticky nagłówkiem */
[id]{scroll-margin-top:calc(var(--pesto-header-h) + 16px)}
/* Rytm treści wpisów/stron */
.pesto-entry-content p{margin:0 0 1.1rem}
.pesto-entry-content h2{margin:2rem 0 .8rem;font-size:1.6rem}
.pesto-entry-content h3{margin:1.6rem 0 .6rem;font-size:1.25rem}
.pesto-entry-content ul,.pesto-entry-content ol{margin:0 0 1.1rem;padding-left:1.3rem}
.pesto-entry-content li{margin:.25rem 0}
.pesto-entry-content a{color:var(--pesto-accent-d);text-decoration:underline;text-underline-offset:2px}
.pesto-entry-content blockquote{margin:1.4rem 0;padding:.8rem 1.2rem;border-left:3px solid var(--pesto-accent);background:var(--pesto-surface);border-radius:0 var(--pesto-radius-sm) var(--pesto-radius-sm) 0;color:var(--pesto-muted)}
/* Klub: pole + fokus na ciemnym pasie */
.pesto-club__form input:focus{outline:3px solid color-mix(in srgb,#fff 65%,transparent);outline-offset:2px}

/* ============================================================
   FIX MOBILE: kuloodporny boczny padding + pas zaufania
   ============================================================ */
/* Padding kontenera z twardym fallbackiem (gdyby zmienna nie doszła) */
.pesto-container{padding-left:16px;padding-right:16px;padding-left:var(--pesto-gap,clamp(1rem,4vw,2rem));padding-right:var(--pesto-gap,clamp(1rem,4vw,2rem))}
.pesto-main{padding-top:.6rem}

/* Pas zaufania: tytuł nad opisem (koniec sklejania "dostawa2-3"), brak ucinania */
.pesto-trust__grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem 1.4rem}
.pesto-trust__item{min-width:0}
.pesto-trust__item>div{min-width:0}
.pesto-trust__item strong{display:block;margin-bottom:.1rem}
.pesto-trust__item span{display:block;color:var(--pesto-muted);font-size:.9rem;line-height:1.35}
@media(max-width:560px){
	.pesto-trust__grid{grid-template-columns:1fr 1fr;gap:1rem .9rem;padding:1.2rem 0}
	.pesto-trust__ic{width:36px;height:36px}
	.pesto-trust__item strong{font-size:.92rem}
	.pesto-trust__item span{font-size:.82rem}
}

/* Sekcje home: oddech pionowy na mobile */
@media(max-width:560px){
	.pesto-section{padding-block:2rem}
	.pesto-eyebrow{font-size:.72rem}
}

/* ---------- Topbar ---------- */
.pesto-topbar{background:var(--pesto-topbar-bg,#121316);color:var(--pesto-topbar-fg,#f3efe7);font-size:.82rem}
.pesto-topbar__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:36px;padding-top:.3rem;padding-bottom:.3rem}
.pesto-topbar__text{font-weight:600;letter-spacing:.02em}
.pesto-topbar__phone{color:inherit;font-weight:700;text-decoration:none;white-space:nowrap}
.pesto-topbar__phone:hover{color:var(--pesto-accent,#c8a24a)}
@media(max-width:560px){.pesto-topbar__in{justify-content:center;text-align:center}.pesto-topbar__phone{display:none}}

/* ---------- Skala H1 ---------- */
h1,.pesto-hero__title{font-size:var(--pesto-h1-size,clamp(2rem,1.4rem+2.4vw,3rem))}

/* ---------- Kolumny stopki (desktop) ---------- */
@media(min-width:900px){.pesto-footer__widgets{grid-template-columns:repeat(var(--pesto-footer-cols,3),1fr)}}

/* ---------- Przycisk "do góry" ---------- */
.pesto-top{position:fixed;bottom:24px;left:18px;z-index:9970;width:46px;height:46px;border:1.5px solid var(--pesto-line,#e7e3da);border-radius:50%;background:var(--pesto-base,#fff);color:var(--pesto-ink,#121316);display:grid;place-items:center;cursor:pointer;box-shadow:var(--pesto-shadow-sm,0 4px 14px rgba(0,0,0,.12));opacity:0;transform:translateY(8px);transition:.2s}
.pesto-top.is-visible{opacity:1;transform:none}
.pesto-top[hidden]{display:grid}
.pesto-top:hover{border-color:var(--pesto-accent,#c8a24a);color:var(--pesto-accent-d,#a9863a)}
@media(max-width:782px){.pesto-top{bottom:88px}}

/* Pasek górny */
/* Linki w treści */
.pesto-entry-content a,.woocommerce-Tabs-panel a,.pesto-footer__copy a{color:var(--pesto-link,var(--pesto-accent-d))}
/* Plakietka promocji wg ustawienia */
.woocommerce span.onsale{background:var(--pesto-sale-bg,var(--pesto-coral))!important}
/* Przycisk do góry */
.pesto-scrolltop{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:9980;width:44px;height:44px;border:0;border-radius:50%;background:var(--pesto-ink,#121316);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25);opacity:.92;transition:.18s}
.pesto-scrolltop:hover{opacity:1;transform:translateX(-50%) translateY(-2px)}
.pesto-scrolltop[hidden]{display:none}
@media(max-width:782px){.pesto-scrolltop{left:auto;right:18px;transform:none;bottom:84px}.pesto-scrolltop:hover{transform:translateY(-2px)}}

/* ============================================================
   MEGA-MENU: pozycji menu nadaj klasę CSS "pesto-mega"
   (Wygląd > Menu > Opcje ekranu > Klasy CSS), a jej podmenu
   rozwinie się jako szeroki, wielokolumnowy panel.
   ============================================================ */
.pesto-nav .pesto-menu > li.pesto-mega{position:static}
.pesto-nav .pesto-menu > li.pesto-mega > .sub-menu{
	left:50%;transform:translateX(-50%) translateY(8px);
	width:min(920px,calc(100vw - 2rem));
	display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
	gap:.2rem 1.6rem;padding:1.2rem 1.4rem;
}
.pesto-nav .pesto-menu > li.pesto-mega:hover > .sub-menu,
.pesto-nav .pesto-menu > li.pesto-mega:focus-within > .sub-menu{transform:translateX(-50%) translateY(0)}
/* Drugi poziom w mega: nagłówki kolumn + lista pod spodem */
.pesto-nav .pesto-menu > li.pesto-mega > .sub-menu > li > a{
	font-weight:800;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
	color:var(--pesto-muted,#6f6e6a);padding:.4rem .2rem .5rem;border-bottom:1px solid var(--pesto-line,#e7e3da);margin-bottom:.3rem
}
.pesto-nav .pesto-menu > li.pesto-mega > .sub-menu > li > .sub-menu{
	position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
	box-shadow:none;border:0;padding:0;width:auto;display:block;background:transparent
}
.pesto-nav .pesto-menu > li.pesto-mega > .sub-menu > li > .sub-menu a{padding:.35rem .2rem;font-size:.92rem}
@media(max-width:980px){
	/* Na mobile mega zachowuje się jak zwykłe podmenu (wcięcia). */
	.pesto-nav .pesto-menu > li.pesto-mega > .sub-menu{display:block;width:auto;left:auto;transform:none}
}

/* ============================================================
   NAGŁÓWEK: logo o stałej wysokości (koniec rozjazdu)
   ============================================================ */
.pesto-logo{display:flex;align-items:center;line-height:0}
.pesto-logo img,
.pesto-header__brand .custom-logo{
	height:var(--pesto-logo-h,44px);width:auto;max-width:none;object-fit:contain;display:block
}
.pesto-site-title{font-family:var(--pesto-font-display,inherit);font-size:1.35rem;font-weight:800;margin:0;line-height:1.1}
.pesto-site-title a{color:inherit;text-decoration:none}
.pesto-header__brand{display:flex;align-items:center;min-width:0;flex:0 0 auto}
.pesto-header__inner{gap:1.2rem}
@media(max-width:782px){
	.pesto-logo img,.pesto-header__brand .custom-logo{height:var(--pesto-logo-h-m,36px)}
}

/* Tryb: treść stron/wpisów na pełną szerokość (opcja Customizera) */
body.pesto-content-full .pesto-main > .pesto-container,
body.pesto-content-full .pesto-page > .pesto-container{max-width:100%;padding-inline:clamp(1rem,4vw,3rem)}
/* Ikony narzędzi w nagłówku: ukrywanie steruje PHP (warunki), tu spójny układ */
.pesto-header__tools{display:flex;align-items:center;gap:.4rem}
.pesto-header__tools .pesto-tool{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;color:inherit;background:transparent;border:0;cursor:pointer;position:relative;transition:.15s}
.pesto-header__tools .pesto-tool:hover{background:var(--pesto-surface,#f3efe7)}

/* ============================================================
   SZLIF STOPKI: nagłówki kolumn, odstępy, oddzielenie copy
   ============================================================ */
.pesto-footer__widgets .widget-title,
.pesto-footer__widgets .wp-block-heading{
	font-family:var(--pesto-font-display,inherit);font-size:.82rem;font-weight:800;
	letter-spacing:.08em;text-transform:uppercase;margin:0 0 1rem;opacity:.85
}
.pesto-footer__widgets .widget{margin:0}
.pesto-footer__widgets ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.pesto-footer__widgets a{text-decoration:none;opacity:.9;transition:.15s}
.pesto-footer__widgets a:hover{opacity:1;color:var(--pesto-footer-link-hover,var(--pesto-accent))}
/* Dolny pasek stopki (builder: copyright / menu) */
.pesto-footer__bottom{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;align-items:center;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid color-mix(in srgb,var(--pesto-footer-fg,#cfd2d6) 16%,transparent)}
.pesto-footer__bottom .pesto-footer__copy{margin:0}
.pesto-footer__bottom .pesto-footer-menu{margin:0}
.pesto-footer__bottom .pesto-footer__cookies{margin:0;color:color-mix(in srgb,var(--pesto-footer-fg,#cfd2d6) 75%,transparent);font-size:.82rem;text-decoration:underline;cursor:pointer}
.pesto-footer__bottom .pesto-footer__cookies:hover{color:var(--pesto-footer-fg,#fff)}
.pesto-footer__bottom--split{justify-content:space-between}
.pesto-footer__bottom--center{flex-direction:column;justify-content:center;text-align:center}
.pesto-footer__bottom--center .pesto-footer-menu{justify-content:center}
.pesto-footer__bottom--left{justify-content:flex-start}
@media(max-width:600px){.pesto-footer__bottom{flex-direction:column;align-items:flex-start;text-align:left}}
.pesto-footer__copy{border-top:1px solid var(--pesto-line);padding-top:1.3rem;margin-top:1.3rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}
@media(max-width:560px){.pesto-footer__copy{flex-direction:column;text-align:center;gap:.6rem}}

/* ============================================================
   SZLIF WIZUALNY v2 — nagłówek, menu, stopka
   ============================================================ */
/* Nagłówek: subtelny blur przy przyklejeniu + płynny cień po przewinięciu */
body.pesto-has-sticky-header .pesto-header{
	position:sticky;top:0;z-index:9990;
	background:color-mix(in srgb,var(--pesto-header-bg,#fff) 92%,transparent);
	backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);
	transition:box-shadow .25s ease,padding .2s ease;
}
body.pesto-has-sticky-header .pesto-header.is-scrolled{box-shadow:0 6px 24px rgba(20,24,29,.08)}

/* Menu główne: podkreślenie aktywnej pozycji animowane */
.pesto-menu > li > a{position:relative;padding:.4rem .2rem}
.pesto-menu > li > a::after{
	content:"";position:absolute;left:.2rem;right:.2rem;bottom:-2px;height:2px;
	background:var(--pesto-accent);transform:scaleX(0);transform-origin:left;
	transition:transform .22s ease;border-radius:2px;
}
.pesto-menu > li:hover > a::after,
.pesto-menu > li.current-menu-item > a::after{transform:scaleX(1)}

/* Liczba w koszyku: kropka akcentu */
.pesto-cart-link .pesto-cart-count{
	position:absolute;top:2px;right:2px;min-width:18px;height:18px;
	background:var(--pesto-accent);color:var(--pesto-accent-ink);border-radius:999px;
	font-size:.68rem;font-weight:800;display:grid;place-items:center;padding:0 4px;line-height:1;
}

/* Stopka: czytelna hierarchia, akcentowe linki, oddech */
.pesto-footer{background:var(--pesto-footer-bg,var(--pesto-ink));color:var(--pesto-footer-fg,#cfcdc8)}
.pesto-footer a{color:var(--pesto-footer-fg,#cfcdc8);text-decoration:none;transition:color .15s ease}
.pesto-footer a:hover{color:var(--pesto-accent)}
.pesto-footer__widgets{padding-block:clamp(2.2rem,5vw,3.4rem)}
.pesto-footer .widget-title,.pesto-footer__widgets h3{color:#fff;font-family:var(--pesto-font-display);font-size:1rem;font-weight:700;margin-bottom:.9rem;letter-spacing:.01em}
.pesto-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding-block:1.1rem;font-size:.85rem}
.pesto-footer__bottom .pesto-container{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}

/* Drobny, spójny focus dla dostępności */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
	outline:2px solid var(--pesto-accent);outline-offset:2px;border-radius:4px;
}

/* ============================================================
   SZLIF PROFESJONALNY v3 — spójność systemu
   ============================================================ */
/* Przyciski: stany active + disabled + spójny aktywny cień */
.pesto-btn:active{transform:translateY(0)!important}
.pesto-btn[disabled],.pesto-btn.is-loading{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none}
.pesto-btn--primary:active{box-shadow:0 4px 12px rgba(200,162,74,.28)}
.pesto-btn--lg{padding:1rem 2rem;font-size:1.08rem}
.pesto-btn--sm{padding:.55rem 1.1rem;font-size:.9rem}

/* Pola formularzy: jednolity, czysty styl w całym motywie */
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=search],
input[type=password],input[type=url],textarea,select{
	font-family:var(--pesto-font-body);font-size:1rem;color:var(--pesto-ink);
	background:var(--pesto-base,#fff);border:1.5px solid var(--pesto-line);
	border-radius:var(--pesto-radius,18px);padding:.7rem 1rem;transition:border-color .15s ease,box-shadow .15s ease;
}
input:focus,textarea:focus,select:focus{
	border-color:var(--pesto-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--pesto-accent) 18%,transparent);outline:none;
}
::placeholder{color:var(--pesto-muted);opacity:.75}
label{font-weight:600;color:var(--pesto-ink)}

/* Nagłówek sekcji: kanoniczna definicja wyżej (sekcja „Strona główna: dopełnienia") —
   duplikat usunięty, bo nadpisywał margines/szerokość nie nadpisując flexa → tytuł zjeżdżał z osi. */

/* Linki w treści: eleganckie podkreślenie */
.pesto-entry-content a:not(.pesto-btn){
	color:var(--pesto-link,var(--pesto-accent-d));text-decoration:underline;
	text-underline-offset:.18em;text-decoration-thickness:.08em;
	text-decoration-color:color-mix(in srgb,var(--pesto-link,#a9863a) 40%,transparent);transition:text-decoration-color .15s ease;
}
.pesto-entry-content a:not(.pesto-btn):hover{text-decoration-color:currentColor}

/* Obrazy w treści: zaokrąglone, nigdy nie wychodzą poza kontener */
.pesto-entry-content img{max-width:100%;height:auto;border-radius:var(--pesto-radius,18px)}

/* Selekcja tekstu w kolorach marki */
::selection{background:color-mix(in srgb,var(--pesto-accent) 30%,transparent);color:var(--pesto-ink)}

/* Płynne pojawianie się sekcji przy wejściu (delikatne, z poszanowaniem reduced-motion) */
@media(prefers-reduced-motion:no-preference){
	.pesto-reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
	.pesto-reveal.is-visible{opacity:1;transform:none}
}

/* ============================================================
   MODEL SZEROKOŚCI v3 — CSS GRID FULL-BLEED
   Solidna metoda bez 100vw, bez ujemnych marginesów, bez
   overflow-hacków → brak poziomego scrolla, sticky działa.

   Kontener treści jest gridem z 3 pasami:
     [full] [ margines | KOLUMNA TREŚCI | margines ] [full]
   Zwykłe elementy lądują w kolumnie treści (z max-width),
   a .alignfull / .pesto-full rozciągają się na cały grid (full).
   .alignwide / .pesto-wide — szerszy pas pośredni.
   ============================================================ */

:root{
	--pesto-content:var(--pesto-container,1180px);
	--pesto-content-narrow:var(--pesto-container-narrow,760px);
	--pesto-wide:1400px;
	--pesto-edge:clamp(1rem,4vw,2.5rem); /* boczny oddech */
}

/* Grid zakładamy na realnych kontenerach treści motywu */
.pesto-main,
.pesto-entry,
.pesto-entry__content,
.pesto-page__content{
	display:grid;
	grid-template-columns:
		[full-start] minmax(var(--pesto-edge),1fr)
		[wide-start] minmax(0, calc((var(--pesto-wide) - var(--pesto-content)) / 2))
		[content-start] min(var(--pesto-content), 100% - 2 * var(--pesto-edge)) [content-end]
		minmax(0, calc((var(--pesto-wide) - var(--pesto-content)) / 2)) [wide-end]
		minmax(var(--pesto-edge),1fr) [full-end];
}
/* Wariant wąski (page/single): węższa kolumna treści */
.pesto-main.pesto-container--narrow,
.pesto-container--narrow .pesto-entry__content{
	--pesto-content:var(--pesto-content-narrow);
}

/* <main> jako grid nie potrzebuje już max-width/padding z .pesto-container */
main.pesto-main.pesto-container{max-width:100%;padding-inline:0;margin-inline:0;width:100%}

/* Domyślnie KAŻDE dziecko kontenera siada w kolumnie treści */
.pesto-main > *,
.pesto-entry__content > *,
.pesto-page__content > *{
	grid-column:content;
	min-width:0; /* fix grid blowout */
}

/* Pełna szerokość — sięga krawędzi okna (kolumna full) */
.pesto-main > .alignfull,  .pesto-main > .pesto-full,
.pesto-entry__content > .alignfull, .pesto-entry__content > .pesto-full,
.pesto-page__content > .alignfull, .pesto-page__content > .pesto-full{
	grid-column:full;
	width:auto;max-width:none;margin-inline:0;
}
/* Szeroki pas pośredni */
.pesto-main > .alignwide, .pesto-main > .pesto-wide,
.pesto-entry__content > .alignwide, .pesto-entry__content > .pesto-wide,
.pesto-page__content > .alignwide, .pesto-page__content > .pesto-wide{
	grid-column:wide;
	width:auto;max-width:none;margin-inline:0;
}

/* Strona/wpis: treść jest w <article class="pesto-entry"> → .pesto-entry__content.
   Żeby sekcje pełnej szerokości (.alignfull/.pesto-full) sięgały krawędzi okna,
   rozciągamy article na cały grid, a wewnętrzny wrapper czynimy „przezroczystym"
   (display:contents) — jego bloki trafiają wprost do gridu article i podlegają
   regułom content/wide/full powyżej. */
.pesto-main > .pesto-entry{ grid-column:full; }
.pesto-entry > *{ grid-column:content; min-width:0; }
.pesto-entry > .pesto-entry__content{ display:contents; }

/* Treść WEWNĄTRZ sekcji full-width może wrócić do kolumny własnym pasem */
.alignfull > .pesto-container,
.pesto-full > .pesto-container{
	max-width:var(--pesto-content);margin-inline:auto;
	padding-inline:var(--pesto-edge);box-sizing:border-box;
}

/* Element, który MA być pełnej szerokości, ale leży głębiej (nie jest
   bezpośrednim dzieckiem gridu) — wymuś przez wyrwanie marginesem.
   Fallback dla treści z page builderów.
   Dołączamy tu .pesto-pdp__features (sekcja 4 kart wokół zdjęcia, jak w WP
   Bakery): siedzi w wąskim panelu opisu (max-width 75ch/90ch), a jej grid
   narożników potrzebuje PEŁNEJ szerokości okna — inaczej karty są ściśnięte
   i „cięte na bokach". Reguła trzymana w base.css (model szerokości żyje tu,
   nie w woocommerce.css). WARUNEK symetrii: rodzic (panel opisu) wyśrodkowany —
   patrz margin-inline:auto na .woocommerce-Tabs-panel. */
.pesto-full--deep,
.pesto-pdp__features{
	width:100vw;max-width:100vw;
	margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}

/* Bezpiecznik: media nigdy nie rozpychają układu */
img,svg,video,iframe{max-width:100%;height:auto}

/* Tryb „treść na pełną szerokość" (opcja Customizera): poszerz kolumnę treści */
body.pesto-content-full .pesto-main,
body.pesto-content-full .pesto-entry__content{--pesto-content:100%}

/* ============================================================
   BUILDER NAGŁÓWKA/STOPKI — nowe elementy
   (telefon, tekst/USP, ikony social, kolumny stopki: o nas/menu/kontakt/płatności)
   ============================================================ */
/* Nagłówek: telefon + tekst/USP */
.pesto-header__phone{display:inline-flex;align-items:center;gap:.45rem;color:inherit;text-decoration:none;font-weight:600;white-space:nowrap}
.pesto-header__phone svg{flex:none}
.pesto-header__phone:hover{color:var(--pesto-accent)}
.pesto-header__text{font-size:.85rem;color:var(--pesto-muted);line-height:1.25;max-width:22ch}
@media(max-width:980px){.pesto-header__phone-txt{display:none}.pesto-header__text{display:none}}

/* Ikony social (nagłówek i stopka) */
.pesto-social{display:inline-flex;align-items:center;gap:.4rem}
.pesto-social__link{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:inherit;border:1px solid var(--pesto-line);transition:border-color .15s ease,color .15s ease,background .15s ease}
.pesto-social__link:hover{border-color:var(--pesto-accent);color:var(--pesto-accent)}
.pesto-header__social .pesto-social__link{width:32px;height:32px}

/* Przełącznik języka (i waluty — wspólny dropdown) w nagłówku */
.pesto-langsw,.pesto-cursw{position:relative}
.pesto-langsw__btn,.pesto-cursw__btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:0;cursor:pointer;color:inherit;font:inherit;font-weight:600;padding:.3rem .4rem;border-radius:8px}
.pesto-langsw__btn:hover,.pesto-cursw__btn:hover{color:var(--pesto-accent)}
.pesto-langsw__list,.pesto-cursw__list{position:absolute;top:100%;right:0;min-width:9rem;margin:.3rem 0 0;padding:.3rem;list-style:none;background:var(--pesto-base,#fff);border:1px solid var(--pesto-line,#e7e3da);border-radius:var(--pesto-radius-sm,12px);box-shadow:0 8px 24px rgba(0,0,0,.1);display:none;z-index:60}
.pesto-langsw.is-open .pesto-langsw__list,.pesto-cursw.is-open .pesto-cursw__list{display:block}
.pesto-langsw__list a,.pesto-cursw__list a,.pesto-cursw__list button{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;font:inherit;padding:.45rem .6rem;border-radius:8px;color:var(--pesto-ink,#121316);text-decoration:none}
.pesto-langsw__list a:hover,.pesto-cursw__list a:hover,.pesto-cursw__list button:hover{background:var(--pesto-surface,#f3efe7)}
.pesto-langsw__list [aria-current="true"] a{font-weight:700}

/* Builder stopki: siatka kolumn + bloki */
.pesto-footer__widgets--builder{display:grid;gap:1.6rem 2rem;grid-template-columns:repeat(var(--pesto-footer-cols,3),minmax(0,1fr))}
.pesto-footer__heading{color:var(--pesto-footer-heading,#fff);font-family:var(--pesto-font-display,inherit);font-size:1rem;font-weight:700;margin:0 0 .9rem}
.pesto-footer__about .pesto-brand,.pesto-footer__about .site-title,.pesto-footer__about a{color:var(--pesto-footer-heading,#fff)}
.pesto-footer__about-text,.pesto-footer__text{margin:.7rem 0 0;line-height:1.6;font-size:.92rem;opacity:.92}
.pesto-footer__contact,.pesto-footer__menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;font-size:.92rem}
.pesto-footer__contact a,.pesto-footer__menu a{color:inherit;text-decoration:none;opacity:.92}
.pesto-footer__contact a:hover,.pesto-footer__menu a:hover{color:var(--pesto-footer-link-hover,var(--pesto-accent));opacity:1}
.pesto-footer__contact-item--hours{opacity:.7}
.pesto-footer__social{margin-top:.2rem}
.pesto-footer__social .pesto-social__link{color:var(--pesto-footer-fg,#cfd2d6);border-color:rgba(255,255,255,.18)}
.pesto-footer__social .pesto-social__link:hover{color:var(--pesto-footer-link-hover,var(--pesto-accent));border-color:var(--pesto-footer-link-hover,var(--pesto-accent))}
.pesto-footer__pay{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem;align-items:center}
/* Białe chipy z realnym logo marki (SVG) */
.pesto-pay{display:inline-flex;align-items:center;justify-content:center;height:26px;min-width:42px;padding:0 .5rem;border-radius:6px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px rgba(0,0,0,.1)}
.pesto-pay svg{display:block}
/* Blok „O nas" z extras: odstęp social + płatności pod tekstem */
.pesto-footer__about .pesto-footer__about-social{margin-top:.75rem}
.pesto-footer__about .pesto-footer__pay{margin-top:.6rem}
/* Blok własny HTML/shortcode */
.pesto-footer__html{font-size:.92rem;line-height:1.6}
.pesto-footer__html :where(iframe,img){max-width:100%;border:0;border-radius:8px}
.pesto-footer__html :where(p):last-child{margin-bottom:0}
@media(max-width:782px){.pesto-footer__widgets--builder{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pesto-footer__widgets--builder{grid-template-columns:1fr}}
