/*
 * ASG Opole — fundament: fonty, baza, klasy narzędziowe, nagłówek, stopka, formularze, restyling modułów Divi.
 * Właściciel: agent Fundament. Kolory/odstępy wyłącznie z tokens.css (var(--asg-…)).
 * API klas: C:\szwdev\asg-dane\raporty\fundament-api.md
 *
 * Kształty (jedna reguła): elementy interaktywne = pigułka (--asg-r-pill), karty/panele = --asg-r-lg,
 * pola formularzy = --asg-r-md, drobne znaczniki = --asg-r-sm. Heksagon tylko jako motyw (maski, znaczniki).
 */

/* ============================================================ 1. Fonty (OFL, self-hosted) */
@font-face {
	font-family: "Geist";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/geist-latin-wght-normal.woff2") format("woff2-variations"), url("../fonts/geist-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Geist";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/geist-latin-ext-wght-normal.woff2") format("woff2-variations"), url("../fonts/geist-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/archivo-latin-wght-normal.woff2") format("woff2-variations"), url("../fonts/archivo-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/archivo-latin-ext-wght-normal.woff2") format("woff2-variations"), url("../fonts/archivo-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Zamienniki z dopasowaną metryką — mniejszy skok układu przy font-display: swap. */
@font-face { font-family: "Geist Fallback"; src: local("Arial"); size-adjust: 104%; ascent-override: 92%; descent-override: 22%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Fallback"; src: local("Arial"); size-adjust: 100%; ascent-override: 88%; descent-override: 21%; line-gap-override: 0%; }

/* ============================================================ 2. Baza */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--asg-header-h) + var(--asg-s-4)); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

html body.asg, html body.asg.custom-background {
	background: var(--asg-ink);
	color: var(--asg-text);
	font-family: var(--asg-font-text);
	font-size: var(--asg-fs-body);
	line-height: var(--asg-lh-body);
	letter-spacing: var(--asg-ls-body);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-optical-sizing: auto;
}
/* Krótkie strony: stopka na dole okna. */
html body.asg { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
html body.asg > .asg-stopka { margin-top: auto; }
body.asg ::selection { background: var(--asg-sand); color: var(--asg-sand-ink); }

/* Divi: tła kontenerów przezroczyste, żeby ton strony był jeden. */
body.asg #page-container,
body.asg #et-main-area,
body.asg #main-content,
body.asg .et-l--body,
body.asg #et-boc { background: transparent; }
/* Divi (et-core-unified…deferred) ma .page.et_pb_pagebuilder_layout #main-content { background-color: #f2f2f0 } — przebijamy. */
html body.asg.page #main-content, html body.asg #main-content { background-color: transparent; }
body.asg #main-content .container::before { display: none; } /* pionowa linia sidebara Divi */
body.asg #page-container { padding-top: 0 !important; }

body.asg h1, body.asg h2, body.asg h3, body.asg h4, body.asg h5, body.asg h6 {
	font-family: var(--asg-font-display);
	font-weight: var(--asg-fw-display);
	color: var(--asg-text);
	padding-bottom: 0;
	margin: 0 0 0.5em;
	text-wrap: balance;
	font-optical-sizing: auto;
}
body.asg h1 { font-size: var(--asg-fs-h1); line-height: var(--asg-lh-h1); letter-spacing: var(--asg-ls-h1); }
body.asg h2 { font-size: var(--asg-fs-h2); line-height: var(--asg-lh-h2); letter-spacing: var(--asg-ls-h2); }
body.asg h3 { font-size: var(--asg-fs-h3); line-height: var(--asg-lh-h3); letter-spacing: var(--asg-ls-h3); }
body.asg h4 { font-size: 1.125rem; line-height: 1.3; letter-spacing: -0.006em; }
body.asg h5, body.asg h6 { font-size: 1rem; line-height: 1.35; letter-spacing: 0; }
body.asg p { line-height: var(--asg-lh-body); text-wrap: pretty; }
body.asg p:not(:last-child) { padding-bottom: 0; margin-bottom: 1em; }
body.asg strong, body.asg b { font-weight: var(--asg-fw-strong); color: var(--asg-text); }
body.asg small { font-size: var(--asg-fs-small); letter-spacing: var(--asg-ls-small); }

body.asg a { color: var(--asg-sand); text-decoration: none; transition: color var(--asg-dur-fast) ease; }
body.asg a:hover { color: var(--asg-sand-strong); }
/* Linki w tekście ciągłym: podkreślenie (nie tylko kolor). */
body.asg :is(p, li, td, dd, blockquote) a:not([class]) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
}
body.asg :is(p, li, td, dd, blockquote) a:not([class]):hover { text-decoration-color: currentColor; }

body.asg img { max-width: 100%; height: auto; }
body.asg hr { border: 0; border-top: 1px solid var(--asg-line); margin: var(--asg-s-7) 0; }
body.asg :is(ul, ol) { padding-left: 1.25em; }
body.asg li::marker { color: var(--asg-text-3); }
body.asg table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
body.asg :is(th, td) { border-bottom: 1px solid var(--asg-line); padding: var(--asg-s-3) var(--asg-s-4); text-align: left; }
body.asg th { color: var(--asg-text-2); font-weight: var(--asg-fw-strong); font-size: var(--asg-fs-small); }
body.asg blockquote { border-left: 2px solid var(--asg-sand); margin: var(--asg-s-6) 0; padding: var(--asg-s-2) 0 var(--asg-s-2) var(--asg-s-5); color: var(--asg-text-2); font-size: 1.125rem; }
body.asg code, body.asg kbd { font-family: var(--asg-font-mono); font-size: 0.9em; }

/* Fokus z klawiatury — widoczny wszędzie, kontrast ≥ 3:1. */
body.asg :focus { outline: none; }
body.asg :focus-visible {
	outline: 2px solid var(--asg-sand);
	outline-offset: 3px;
	border-radius: var(--asg-r-sm);
}
body.asg :is(input, select, textarea):focus-visible { outline-offset: 1px; }
body.asg :focus-visible { scroll-margin-top: calc(var(--asg-header-h) + var(--asg-s-4)); }

/* ============================================================ 3. Klasy narzędziowe */
.asg-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.asg-skip {
	position: fixed; z-index: var(--asg-z-skip); top: var(--asg-s-3); left: var(--asg-s-3);
	padding: var(--asg-s-3) var(--asg-s-5); border-radius: var(--asg-r-pill);
	background: var(--asg-sand); color: var(--asg-sand-ink) !important; font-weight: var(--asg-fw-strong);
	transform: translateY(-200%); transition: transform var(--asg-dur-fast) var(--asg-ease-out);
}
.asg-skip:focus, .asg-skip:focus-visible { transform: none; }
.asg-kotwica { display: block; height: 0; outline: none; }

.asg-wrap {
	width: 100%;
	max-width: calc(var(--asg-max) + 2 * var(--asg-gutter));
	margin-inline: auto;
	padding-inline: var(--asg-gutter);
	box-sizing: border-box;
}
.asg-wrap--waski { max-width: calc(52rem + 2 * var(--asg-gutter)); }
.asg-wrap--tekst { max-width: calc(var(--asg-max-text) + 2 * var(--asg-gutter)); }

.asg-section { padding-block: var(--asg-section) calc(var(--asg-section) * 1.08); position: relative; }
.asg-section--ciasna { padding-block: calc(var(--asg-section) * 0.55) calc(var(--asg-section) * 0.6); }
.asg-section--bez-gory { padding-top: 0; }
.asg-section--powierzchnia { background: var(--asg-surface); }
.asg-section--linia { border-top: 1px solid var(--asg-line); }

.asg-eyebrow {
	display: inline-flex; align-items: center; gap: 0.6em;
	font-family: var(--asg-font-text);
	font-size: var(--asg-fs-eyebrow);
	letter-spacing: var(--asg-ls-eyebrow);
	text-transform: uppercase;
	font-weight: var(--asg-fw-strong);
	color: var(--asg-sand);
	margin: 0 0 var(--asg-s-4);
	line-height: 1.2;
}
.asg-eyebrow::before {
	content: ""; width: 0.62em; aspect-ratio: 0.866; background: currentColor;
	clip-path: var(--asg-hex-pointy); flex: none;
}
.asg-eyebrow--bez-znaku::before { display: none; }

.asg-hero-tytul { font-family: var(--asg-font-display); font-weight: var(--asg-fw-display); font-size: var(--asg-fs-hero); line-height: var(--asg-lh-hero); letter-spacing: var(--asg-ls-hero); text-wrap: balance; margin: 0; }
.asg-h1 { font-size: var(--asg-fs-h1) !important; line-height: var(--asg-lh-h1) !important; letter-spacing: var(--asg-ls-h1) !important; }
.asg-h2 { font-size: var(--asg-fs-h2) !important; line-height: var(--asg-lh-h2) !important; letter-spacing: var(--asg-ls-h2) !important; }
.asg-h3 { font-size: var(--asg-fs-h3) !important; line-height: var(--asg-lh-h3) !important; letter-spacing: var(--asg-ls-h3) !important; }
.asg-lead { font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem); line-height: 1.5; color: var(--asg-text-2); max-width: var(--asg-max-text); text-wrap: pretty; }
.asg-maly { font-size: var(--asg-fs-small); letter-spacing: var(--asg-ls-small); line-height: var(--asg-lh-small); color: var(--asg-text-2); }
.asg-tekst-2 { color: var(--asg-text-2); }
.asg-tekst-3 { color: var(--asg-text-3); }
.asg-akcent { color: var(--asg-sand); }
.asg-liczby { font-variant-numeric: tabular-nums; }

/* Długi tekst (regulamin, opisy): czytelna miara i rytm. */
.asg-prose { max-width: var(--asg-max-text); }
.asg-prose > * + * { margin-top: 1em; }
.asg-prose :is(h2, h3) { margin-top: 2em; }

/* Karty / powierzchnie (tylko gdy wyniesienie coś znaczy). */
.asg-karta {
	background: var(--asg-surface);
	border: 1px solid var(--asg-line);
	border-radius: var(--asg-r-lg);
	padding: var(--asg-s-6);
	box-shadow: inset 0 1px 0 var(--asg-glass-edge);
}
.asg-karta--wyniesiona { background: var(--asg-surface-2); box-shadow: inset 0 1px 0 var(--asg-glass-edge), var(--asg-shadow-2); }

/* Siatki */
.asg-siatka { display: grid; gap: var(--asg-s-5); }
.asg-siatka--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.asg-siatka--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.asg-stos > * + * { margin-top: var(--asg-stos, var(--asg-s-4)); }
.asg-rzad { display: flex; flex-wrap: wrap; gap: var(--asg-s-3); align-items: center; }

/* Heksagon — motyw z logo. */
.asg-hex { clip-path: var(--asg-hex-pointy); aspect-ratio: 0.866; object-fit: cover; }
.asg-hex--plaski { clip-path: var(--asg-hex); aspect-ratio: 1.155; }
.asg-hex-znacznik {
	display: inline-grid; place-items: center; flex: none;
	width: var(--asg-hex-w, 3rem); aspect-ratio: 0.866;
	clip-path: var(--asg-hex-pointy);
	background: var(--asg-sand-soft); color: var(--asg-sand);
	font-family: var(--asg-font-display); font-weight: var(--asg-fw-display); font-size: 1.125rem;
	font-variant-numeric: tabular-nums;
}
.asg-hex-znacznik--pelny { background: var(--asg-sand); color: var(--asg-sand-ink); }
.asg-hex-znacznik .asg-ikona { width: 45%; height: auto; }

/* Ikony inline (Phosphor). */
.asg-ikona { width: 1.25em; height: 1.25em; flex: none; display: inline-block; vertical-align: -0.2em; fill: currentColor; }

/* Odsłanianie przy przewijaniu (sterowane z ruch.js; bez JS treść jest zawsze widoczna). */
.asg-js [data-asg-odslon="czeka"] { opacity: 0; transform: translate3d(0, var(--asg-odslon-y, 1.5rem), 0); }
.asg-js [data-asg-odslon] {
	transition: opacity var(--asg-dur-slow) var(--asg-ease-out), transform var(--asg-dur-slow) var(--asg-ease-out);
	transition-delay: var(--asg-odslon-opoznienie, 0ms);
}
.asg-js [data-asg-odslon="widoczne"] { opacity: 1; transform: none; }

/* ============================================================ 4. Przyciski */
.asg-btn,
body.asg .et_pb_button,
body.asg .wpcf7-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.55em;
	min-height: 2.875rem; padding: 0 1.375rem;
	border: 1px solid transparent; border-radius: var(--asg-r-pill);
	background: var(--asg-sand); color: var(--asg-sand-ink);
	font-family: var(--asg-font-text); font-size: 1rem; font-weight: var(--asg-fw-strong);
	letter-spacing: -0.005em; line-height: 1.1; white-space: nowrap; text-decoration: none;
	cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none;
	transition: background-color var(--asg-dur-fast) ease, border-color var(--asg-dur-fast) ease, color var(--asg-dur-fast) ease, transform var(--asg-dur-press) var(--asg-ease-press);
}
body.asg a.asg-btn, body.asg a.asg-btn:hover { color: var(--asg-sand-ink); }
@media (hover: hover) and (pointer: fine) {
	.asg-btn:hover, body.asg .et_pb_button:hover, body.asg .wpcf7-submit:hover { background: var(--asg-sand-strong); }
}
.asg-btn:active, body.asg .et_pb_button:active, body.asg .wpcf7-submit:active { transform: scale(0.97); }

.asg-btn--ghost,
body.asg .et_pb_button.asg-btn--ghost {
	background: transparent; color: var(--asg-text); border-color: var(--asg-line-strong);
}
body.asg a.asg-btn--ghost, body.asg a.asg-btn--ghost:hover { color: var(--asg-text); }
@media (hover: hover) and (pointer: fine) {
	.asg-btn--ghost:hover { background: var(--asg-surface-3); border-color: var(--asg-line-strong); }
}
/* Przycisk na zdjęciu — materiał pod tekstem, żeby kontrast nie zależał od zdjęcia. */
.asg-btn--szklo {
	background: var(--asg-glass); color: var(--asg-text); border-color: var(--asg-glass-edge);
	-webkit-backdrop-filter: var(--asg-glass-blur); backdrop-filter: var(--asg-glass-blur);
}
body.asg a.asg-btn--szklo, body.asg a.asg-btn--szklo:hover { color: var(--asg-text); }
.asg-btn--maly { min-height: 2.375rem; padding: 0 1rem; font-size: 0.9375rem; }
.asg-btn--duzy { min-height: 3.375rem; padding: 0 1.75rem; font-size: 1.0625rem; }
.asg-btn--pelny { width: 100%; }
.asg-btn .asg-ikona { width: 1.125em; height: 1.125em; transition: transform var(--asg-dur-fast) var(--asg-ease-out); }
@media (hover: hover) and (pointer: fine) {
	.asg-btn:hover .asg-ikona--strzalka { transform: translateX(3px); }
}
.asg-btn[disabled], .asg-btn[aria-disabled="true"] { opacity: 0.45; pointer-events: none; }

/* Link-przycisk (trzeci poziom ważności). */
.asg-link {
	display: inline-flex; align-items: center; gap: 0.4em;
	color: var(--asg-text); font-weight: var(--asg-fw-strong);
	text-decoration: underline; text-decoration-color: var(--asg-line-strong);
	text-underline-offset: 0.25em; text-decoration-thickness: 1px;
	transition: text-decoration-color var(--asg-dur-fast) ease, color var(--asg-dur-fast) ease;
}
body.asg a.asg-link { color: var(--asg-text); }
body.asg a.asg-link:hover { color: var(--asg-text); text-decoration-color: var(--asg-sand); }

/* Okrągły przycisk z ikoną (44×44). */
.asg-ikona-btn {
	display: inline-grid; place-items: center; position: relative;
	width: 2.75rem; height: 2.75rem; padding: 0; margin: 0;
	border: 0; border-radius: var(--asg-r-pill);
	background: transparent; color: var(--asg-text);
	cursor: pointer; -webkit-tap-highlight-color: transparent;
	transition: background-color var(--asg-dur-fast) ease, transform var(--asg-dur-press) var(--asg-ease-press);
}
body.asg a.asg-ikona-btn, body.asg a.asg-ikona-btn:hover { color: var(--asg-text); }
@media (hover: hover) and (pointer: fine) { .asg-ikona-btn:hover { background: var(--asg-surface-3); } }
.asg-ikona-btn:active { transform: scale(0.94); }
.asg-ikona-btn .asg-ikona { width: 1.375rem; height: 1.375rem; }

/* ============================================================ 5. Nagłówek (materiał) */
.asg-naglowek {
	position: sticky; top: var(--wp-admin--admin-bar--height, 0px);
	z-index: var(--asg-z-naglowek);
	height: var(--asg-header-h);
	color: var(--asg-text);
	isolation: isolate;
}
@media (max-width: 600px) { .admin-bar .asg-naglowek { top: 0; } }
/* Materiał na pseudo-elemencie, żeby position: fixed wewnątrz (arkusz) liczyło się od okna. */
.asg-naglowek::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--asg-glass);
	-webkit-backdrop-filter: var(--asg-glass-blur);
	backdrop-filter: var(--asg-glass-blur);
	box-shadow: inset 0 -1px 0 var(--asg-glass-edge);
	transition: opacity var(--asg-dur-base) var(--asg-ease-out);
}
/* Nad hero: przezroczysty u góry, materiał pojawia się po przewinięciu. */
.asg-naglowek-nad-hero .asg-naglowek { position: fixed; left: 0; right: 0; }
.asg-naglowek-nad-hero .asg-naglowek:not([data-asg-przewiniete])::before { opacity: 0; }
.asg-naglowek-nad-hero .asg-naglowek:not([data-asg-przewiniete]) {
	background: linear-gradient(to bottom, color-mix(in srgb, var(--asg-ink) 55%, transparent), transparent);
}
.asg-naglowek-nad-hero .asg-kotwica { position: absolute; }

.asg-naglowek__pasek {
	position: relative; z-index: 2; /* nad zasłoną; arkusz (fixed) żyje w tym kontekście */
	height: 100%;
	display: flex; align-items: center; gap: var(--asg-s-4);
}
.asg-naglowek__logo {
	display: inline-flex; align-items: center; gap: var(--asg-s-3);
	flex: none; color: var(--asg-text) !important; text-decoration: none;
	border-radius: var(--asg-r-sm);
	transition: transform var(--asg-dur-press) var(--asg-ease-press);
}
.asg-naglowek__logo:active { transform: scale(0.97); }
.asg-logo { display: block; line-height: 0; }
body.asg .asg-logo img { display: block; width: auto; height: 2.5rem; max-width: none; }
.asg-naglowek__nazwa { display: grid; line-height: 1.1; }
.asg-naglowek__nazwa strong { font-family: var(--asg-font-display); font-weight: var(--asg-fw-display); font-size: 1rem; letter-spacing: -0.01em; }
.asg-naglowek__nazwa span { font-size: 0.75rem; letter-spacing: 0.02em; color: var(--asg-text-2); }
[data-asg-ton="jasny"] .asg-naglowek .asg-logo img { filter: invert(1) brightness(0.25); }

.asg-naglowek__akcje { display: flex; align-items: center; gap: var(--asg-s-1); margin-left: auto; flex: none; }
.asg-naglowek__cta { margin-left: var(--asg-s-2); }
.asg-naglowek__koszyk { position: relative; }

.asg-koszyk-licznik {
	position: absolute; top: 0.25rem; right: 0.125rem;
	min-width: 1.125rem; height: 1.125rem; padding: 0 0.3rem; box-sizing: border-box;
	display: inline-grid; place-items: center;
	border-radius: var(--asg-r-pill);
	background: var(--asg-sand); color: var(--asg-sand-ink);
	font-size: 0.6875rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
	transform: scale(0); opacity: 0;
	transition: transform var(--asg-dur-base) var(--asg-ease-out), opacity var(--asg-dur-fast) ease;
	pointer-events: none;
}
.asg-koszyk-licznik.is-pelny { transform: scale(1); opacity: 1; }
.asg-koszyk-licznik.is-pulsuje { animation: asg-puls 420ms var(--asg-ease-out); }
@keyframes asg-puls { 0% { transform: scale(1); } 35% { transform: scale(1.28); } 100% { transform: scale(1); } }

/* Burger → X */
.asg-burger { display: none; }
.asg-burger__kreski { position: relative; width: 1.25rem; height: 0.75rem; display: block; }
.asg-burger__kreski span {
	position: absolute; left: 0; right: 0; height: 1.5px; border-radius: 2px; background: currentColor;
	transition: transform var(--asg-dur-base) var(--asg-ease-out);
}
.asg-burger__kreski span:first-child { top: 0; }
.asg-burger__kreski span:last-child { bottom: 0; }
.asg-burger[aria-expanded="true"] .asg-burger__kreski span:first-child { transform: translateY(0.34rem) rotate(45deg); }
.asg-burger[aria-expanded="true"] .asg-burger__kreski span:last-child { transform: translateY(-0.34rem) rotate(-45deg); }

/* ---------- Menu: desktop ---------- */
.asg-arkusz { flex: 1 1 auto; min-width: 0; display: flex; justify-content: center; }
.asg-arkusz__uchwyt, .asg-arkusz__stopka { display: none; }
.asg-nav { min-width: 0; }
body.asg .asg-menu, body.asg .asg-menu ul { list-style: none; margin: 0; padding: 0; }
.asg-menu { display: flex; align-items: center; gap: 0.125rem; }
.asg-menu__el { position: relative; }
.asg-menu > .asg-menu__el--dom { display: none; }
.asg-menu__el--p0 { display: flex; align-items: center; }

.asg-menu__link {
	position: relative; display: inline-flex; align-items: center; gap: 0.3em;
	min-height: 2.5rem; padding: 0 0.75rem; margin: 0;
	border: 0; border-radius: var(--asg-r-pill); background: transparent;
	font: 500 0.9375rem/1 var(--asg-font-text); letter-spacing: -0.003em;
	color: var(--asg-text-2) !important; text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: color var(--asg-dur-fast) ease, background-color var(--asg-dur-fast) ease;
}
.asg-menu__el--p0 > .asg-menu__link:hover,
.asg-menu__el--p0.is-otwarte > .asg-menu__link { color: var(--asg-text) !important; }
.asg-menu__el--p0.is-aktywny > .asg-menu__link,
.asg-menu__el--p0.is-w-sciezce > .asg-menu__link { color: var(--asg-text) !important; }
.asg-menu__el--p0.is-aktywny > .asg-menu__link::after,
.asg-menu__el--p0.is-w-sciezce > .asg-menu__link::after {
	content: ""; position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.3rem; height: 2px;
	border-radius: 2px; background: var(--asg-sand);
}
.asg-menu__link:active { transform: scale(0.97); }
.asg-menu__strzalka { width: 0.875rem; height: 0.875rem; opacity: 0.7; transition: transform var(--asg-dur-fast) var(--asg-ease-out); }
.asg-menu__rozwin {
	display: inline-grid; place-items: center; width: 1.75rem; height: 2.5rem; margin-left: -0.6rem;
	padding: 0; border: 0; background: transparent; color: var(--asg-text-2); cursor: pointer; border-radius: var(--asg-r-pill);
}
.asg-menu__el.is-otwarte > .asg-menu__przelacz .asg-menu__strzalka { transform: rotate(180deg); }

@media (min-width: 72rem) {
	.asg-menu__pod {
		position: absolute; top: calc(100% + 0.5rem); left: 50%;
		width: max-content; min-width: 15rem; max-width: min(56rem, calc(100vw - 2 * var(--asg-gutter))); padding: var(--asg-s-2);
		background: var(--asg-surface-2);
		border: 1px solid var(--asg-line); border-radius: var(--asg-r-lg);
		box-shadow: inset 0 1px 0 var(--asg-glass-edge), var(--asg-shadow-3);
		transform-origin: top center;
		opacity: 0; visibility: hidden;
		transform: translate3d(-50%, -0.375rem, 0) scale(0.98);
		transition: opacity var(--asg-dur-fast) var(--asg-ease-out), transform var(--asg-dur-fast) var(--asg-ease-out), visibility 0s linear var(--asg-dur-fast);
	}
	/* mostek, żeby kursor nie gubił podmenu w szczelinie */
	.asg-menu__pod::before { content: ""; position: absolute; left: 0; right: 0; top: -0.75rem; height: 0.75rem; }
	.asg-menu__el--p0.is-otwarte > .asg-menu__pod {
		opacity: 1; visibility: visible; transform: translate3d(-50%, 0, 0) scale(1);
		transition: opacity var(--asg-dur-fast) var(--asg-ease-out), transform var(--asg-dur-fast) var(--asg-ease-out), visibility 0s;
	}
	@media (hover: hover) and (pointer: fine) {
		.asg-menu__el--p0:hover > .asg-menu__pod {
			opacity: 1; visibility: visible; transform: translate3d(-50%, 0, 0) scale(1);
			transition: opacity var(--asg-dur-fast) var(--asg-ease-out), transform var(--asg-dur-fast) var(--asg-ease-out), visibility 0s;
		}
	}
	.asg-menu__pod .asg-menu__link {
		display: flex; width: 100%; min-height: 2.5rem; padding: 0 0.875rem; border-radius: var(--asg-r-sm);
		font-size: 0.9375rem; color: var(--asg-text-2) !important; justify-content: flex-start;
	}
	.asg-menu__pod .asg-menu__link:hover { background: var(--asg-surface-3); color: var(--asg-text) !important; }
	.asg-menu__pod .is-aktywny > .asg-menu__link { color: var(--asg-sand) !important; }
	/* Trzeci poziom (Sklep → Akcesoria → kulki): panel z kolumnami, grupy zawsze rozwinięte. */
	.asg-menu__pod:has(.asg-menu__pod2) { display: grid; grid-auto-flow: column; grid-auto-columns: auto; gap: var(--asg-s-5); padding: var(--asg-s-3); }
	.asg-menu__pod .asg-menu__rozwin { display: none; }
	.asg-menu__pod > .asg-menu__el--rodzic > .asg-menu__link { color: var(--asg-text) !important; font-weight: var(--asg-fw-strong); }
	.asg-menu__pod2 { display: block; padding-left: 0; }
	.asg-menu__pod2 .asg-menu__link { min-height: 2.25rem; font-size: 0.875rem; }
	.asg-menu__pod2:has(> li:nth-child(7)) { display: grid; grid-auto-flow: column; grid-template-rows: repeat(5, auto); grid-auto-columns: minmax(11.5rem, auto); column-gap: var(--asg-s-1); }
	.asg-menu__pod--w-prawo { left: auto; right: 0; transform: translate3d(0, -0.375rem, 0) scale(0.98); }
}

/* ---------- Menu: telefon/tablet — arkusz ---------- */
@media (max-width: 71.999rem) {
	.asg-burger { display: inline-grid; }
	.asg-naglowek__cta { display: none; }
	.asg-js .asg-arkusz {
		position: fixed; left: 0; right: 0; bottom: 0;
		z-index: var(--asg-z-arkusz);
		display: flex; flex-direction: column;
		max-height: calc(100dvh - var(--asg-header-h) - var(--wp-admin--admin-bar--height, 0px) - var(--asg-s-2));
		background: var(--asg-surface);
		border-radius: var(--asg-r-xl) var(--asg-r-xl) 0 0;
		box-shadow: inset 0 1px 0 var(--asg-glass-edge), var(--asg-shadow-3);
		transform: translate3d(0, 102%, 0);
		visibility: hidden;
		touch-action: pan-y;
		overscroll-behavior: contain;
		will-change: transform;
	}
	.asg-js .asg-arkusz.is-widoczny { visibility: visible; }
	.asg-arkusz__uchwyt { display: grid; place-items: center; height: 1.75rem; flex: none; cursor: grab; touch-action: none; }
	.asg-arkusz__uchwyt span { width: 2.5rem; height: 0.3125rem; border-radius: var(--asg-r-pill); background: var(--asg-line-strong); }
	.asg-nav { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 0 var(--asg-gutter) var(--asg-s-4); -webkit-overflow-scrolling: touch; }
	.asg-menu { display: block; }
	.asg-menu > .asg-menu__el--dom { display: block; }
	.asg-menu__el--p0 { display: grid; grid-template-columns: 1fr auto; align-items: center; border-bottom: 1px solid var(--asg-line); }
	.asg-menu__el--p0 > .asg-menu__link {
		min-height: 3.5rem; padding: 0; justify-content: space-between;
		font-family: var(--asg-font-display); font-weight: 620; font-size: 1.375rem; letter-spacing: -0.015em;
		color: var(--asg-text) !important;
	}
	.asg-menu__el--p0 > .asg-menu__przelacz:not(.asg-menu__rozwin) { width: 100%; grid-column: 1 / -1; }
	.asg-menu__el--p0.is-aktywny > .asg-menu__link::after,
	.asg-menu__el--p0.is-w-sciezce > .asg-menu__link::after { left: 0; right: auto; width: 1.25rem; bottom: 0.625rem; }
	.asg-menu__rozwin { width: 3rem; height: 3.5rem; margin: 0; }
	.asg-menu__strzalka { width: 1.125rem; height: 1.125rem; }
	.asg-menu__pod, .asg-menu__pod2 { display: none; grid-column: 1 / -1; padding: 0 0 var(--asg-s-3); }
	.asg-menu__el.is-otwarte > .asg-menu__pod,
	.asg-menu__el.is-otwarte > .asg-menu__pod2 { display: block; animation: asg-pojaw var(--asg-dur-base) var(--asg-ease-out); }
	.asg-menu__pod .asg-menu__el { display: grid; grid-template-columns: 1fr auto; align-items: center; }
	.asg-menu__pod .asg-menu__link { min-height: 2.75rem; padding: 0 0 0 var(--asg-s-4); font-size: 1.0625rem; color: var(--asg-text-2) !important; white-space: normal; }
	.asg-menu__pod .is-aktywny > .asg-menu__link { color: var(--asg-sand) !important; }
	.asg-menu__pod .asg-menu__rozwin { height: 2.75rem; }
	.asg-menu__pod2 .asg-menu__link { padding-left: var(--asg-s-6); font-size: 1rem; }
	.asg-arkusz__stopka {
		display: grid; gap: var(--asg-s-3); flex: none;
		padding: var(--asg-s-4) var(--asg-gutter) calc(var(--asg-s-4) + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid var(--asg-line);
	}
	.asg-arkusz__tel { display: inline-flex; align-items: center; justify-content: center; gap: var(--asg-s-2); min-height: 2.75rem; color: var(--asg-text-2) !important; font-variant-numeric: tabular-nums; }

	/* bez JS: menu po prostu pod paskiem */
	html:not(.asg-js) .asg-naglowek { height: auto; }
	html:not(.asg-js) .asg-naglowek__pasek { flex-wrap: wrap; padding-block: var(--asg-s-2); }
	html:not(.asg-js) .asg-arkusz { order: 3; flex-basis: 100%; }
	html:not(.asg-js) .asg-burger { display: none; }
}
@media (max-width: 30rem) {
	.asg-naglowek__nazwa span { display: none; }
}
@media (max-width: 22rem) {
	.asg-naglowek__nazwa { display: none; }
}
@keyframes asg-pojaw { from { opacity: 0; transform: translate3d(0, -0.25rem, 0); } to { opacity: 1; transform: none; } }

.asg-zaslona {
	position: fixed; inset: 0; z-index: 1; /* wewnątrz kontekstu nagłówka: pod paskiem i arkuszem */
	background: var(--asg-ink); opacity: 0;
	-webkit-tap-highlight-color: transparent;
}
.asg-zaslona[hidden] { display: none; }
html.asg-blokada, html.asg-blokada body { overflow: hidden; }

/* ---------- Wyszukiwarka (FiboSearch w panelu) ---------- */
.asg-szukaj {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 2;
	padding-block: var(--asg-s-5) var(--asg-s-6);
	background: var(--asg-surface-2);
	box-shadow: inset 0 1px 0 var(--asg-line), var(--asg-shadow-3);
	transform-origin: top center;
	animation: asg-pojaw var(--asg-dur-fast) var(--asg-ease-out);
}
.asg-szukaj[hidden] { display: none; }
.asg-szukaj__wnetrze { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--asg-s-2) var(--asg-s-3); }
.asg-szukaj__tytul { grid-column: 1 / -1; margin: 0 !important; font-size: var(--asg-fs-small); color: var(--asg-text-2); }
.asg-szukaj__pole { min-width: 0; }
body.asg .asg-szukaj .dgwt-wcas-search-wrapp { max-width: none; min-width: 0; }
body.asg .asg-szukaj .dgwt-wcas-sf-wrapp { padding: 0; background: transparent; }
body.asg .asg-szukaj input.dgwt-wcas-search-input,
body.asg .asg-szukaj input[type="search"] {
	height: 3.25rem !important; min-height: 3.25rem; padding: 0 3.75rem 0 1.25rem !important;
	border: 1px solid var(--asg-line-strong) !important; border-radius: var(--asg-r-pill) !important;
	background: var(--asg-surface-3) !important; color: var(--asg-text) !important;
	font: 400 1.0625rem/1.2 var(--asg-font-text) !important; box-shadow: none !important;
}
body.asg .asg-szukaj input.dgwt-wcas-search-input:focus { border-color: var(--asg-sand) !important; }
body.asg .asg-szukaj .dgwt-wcas-search-submit {
	position: absolute !important; top: 50% !important; right: 0.375rem !important; left: auto !important;
	width: 2.5rem !important; height: 2.5rem !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important;
	transform: translateY(-50%); border-radius: var(--asg-r-pill) !important;
	background: var(--asg-sand) !important; border: 0 !important; box-shadow: none !important;
	display: grid !important; place-items: center;
}
body.asg .asg-szukaj .dgwt-wcas-search-submit::before, body.asg .asg-szukaj .dgwt-wcas-search-submit::after { display: none !important; }
body.asg .asg-szukaj .dgwt-wcas-search-submit:active { transform: translateY(-50%) scale(0.94); }
body.asg .asg-szukaj .dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier { position: static !important; width: 1rem !important; height: 1rem !important; fill: var(--asg-sand-ink) !important; }
body.asg .asg-szukaj .dgwt-wcas-preloader { right: 3.5rem !important; }
body.asg .asg-szukaj input::placeholder { color: var(--asg-text-3); opacity: 1; }
/* Podpowiedzi FiboSearch (doklejane do body) */
body.asg .dgwt-wcas-suggestions-wrapp, body.asg .dgwt-wcas-details-wrapp {
	background: var(--asg-surface-2) !important; border: 1px solid var(--asg-line) !important;
	border-radius: 0 0 var(--asg-r-lg) var(--asg-r-lg); box-shadow: var(--asg-shadow-3) !important; color: var(--asg-text);
}
body.asg .dgwt-wcas-suggestion { color: var(--asg-text) !important; border-color: var(--asg-line) !important; }
body.asg .dgwt-wcas-suggestion-selected { background: var(--asg-surface-3) !important; }
body.asg .dgwt-wcas-st-title, body.asg .dgwt-wcas-sp { color: var(--asg-text) !important; }
body.asg .dgwt-wcas-suggestion strong { color: var(--asg-sand) !important; }

/* ============================================================ 6. Stopka */
.asg-stopka {
	background: var(--asg-ink);
	color: var(--asg-text-2);
	border-top: 1px solid var(--asg-line);
	padding-top: clamp(3.5rem, 2.5rem + 4vw, 6rem);
	font-size: 0.9375rem;
	position: relative;
}
.asg-stopka a { color: var(--asg-text-2) !important; }
body.asg .asg-stopka :is(li, p) a { text-decoration: none; }
.asg-stopka a:hover { color: var(--asg-text) !important; }
.asg-stopka__gora {
	display: grid; gap: var(--asg-s-7) var(--asg-s-6);
	grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, 1fr)) minmax(0, 0.7fr);
	padding-bottom: clamp(3rem, 2rem + 3vw, 5rem);
}
.asg-stopka__marka { display: grid; align-content: start; justify-items: start; gap: var(--asg-s-5); }
body.asg .asg-logo--stopka img { height: 4.5rem; }
.asg-stopka__haslo { margin: 0 !important; max-width: 20rem; color: var(--asg-text-2); font-size: 1rem; }
body.asg .asg-stopka a.asg-btn { color: var(--asg-sand-ink) !important; }
.asg-stopka__godziny { display: flex; gap: var(--asg-s-2); align-items: flex-start; margin: 0 !important; font-size: var(--asg-fs-small); color: var(--asg-text-3); }
.asg-stopka__godziny .asg-ikona { margin-top: 0.15em; }
body.asg .asg-stopka__tytul {
	font-family: var(--asg-font-text); font-size: 0.9375rem; font-weight: var(--asg-fw-strong);
	letter-spacing: -0.003em; color: var(--asg-text); margin: 0 0 var(--asg-s-4); line-height: 1.3;
}
.asg-stopka__adres { font-style: normal; line-height: 1.55; margin-bottom: var(--asg-s-4); }
.asg-stopka__lista, .asg-stopka__nav ul, .asg-stopka__social, .asg-stopka__prawne { list-style: none; margin: 0; padding: 0 !important; }
.asg-stopka__lista li a { display: inline-flex; align-items: center; gap: var(--asg-s-2); min-height: 2.25rem; font-variant-numeric: tabular-nums; }
.asg-stopka__lista .asg-ikona { width: 1.125rem; height: 1.125rem; color: var(--asg-text-3); }
.asg-stopka__social { display: flex; gap: var(--asg-s-1); margin-top: var(--asg-s-3) !important; margin-left: -0.625rem !important; }
.asg-stopka__social .asg-ikona-btn { color: var(--asg-text-2) !important; }
.asg-stopka__nav li a { display: inline-flex; min-height: 2.125rem; align-items: center; }
.asg-stopka__dol {
	display: flex; flex-wrap: wrap; gap: var(--asg-s-3) var(--asg-s-6); align-items: center; justify-content: space-between;
	padding-block: var(--asg-s-5) calc(var(--asg-s-5) + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--asg-line);
	font-size: var(--asg-fs-small); color: var(--asg-text-3);
}
.asg-stopka__dol p { margin: 0 !important; }
.asg-stopka__prawne { display: flex; flex-wrap: wrap; gap: var(--asg-s-2) var(--asg-s-5); }
@media (max-width: 64rem) {
	.asg-stopka__gora { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asg-stopka__marka { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
	.asg-stopka__gora { grid-template-columns: 1fr; }
	.asg-stopka__nav ul { columns: 2; column-gap: var(--asg-s-5); }
}

/* ============================================================ 7. Formularze (w tym Contact Form 7) */
body.asg :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], input[type="url"], input[type="date"], select, textarea):not(.dgwt-wcas-search-input) {
	width: 100%; box-sizing: border-box;
	min-height: 2.875rem; padding: 0.625rem 0.875rem;
	border: 1px solid var(--asg-line-strong); border-radius: var(--asg-r-md);
	background: var(--asg-surface-3); color: var(--asg-text);
	font: 400 1rem/1.4 var(--asg-font-text);
	transition: border-color var(--asg-dur-fast) ease, background-color var(--asg-dur-fast) ease;
	-webkit-appearance: none; appearance: none;
}
body.asg textarea { min-height: 8rem; resize: vertical; }
body.asg select {
	padding-right: 2.5rem;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 1.25rem) 55%, calc(100% - 0.9rem) 55%;
	background-size: 0.35rem 0.35rem; background-repeat: no-repeat;
}
body.asg :is(input, select, textarea):hover { border-color: var(--asg-text-3); }
body.asg :is(input, select, textarea):focus { border-color: var(--asg-sand); }
body.asg ::placeholder { color: var(--asg-text-3); opacity: 1; }
body.asg label { color: var(--asg-text); font-weight: 500; font-size: 0.9375rem; }
body.asg input[type="checkbox"], body.asg input[type="radio"] { accent-color: var(--asg-sand); width: 1.125rem; height: 1.125rem; }
body.asg .wpcf7-form p { margin-bottom: var(--asg-s-4); }
body.asg .wpcf7-form label { display: block; }
body.asg .wpcf7-form label > .wpcf7-form-control-wrap { display: block; margin-top: var(--asg-s-2); }
body.asg .wpcf7-not-valid { border-color: var(--asg-err) !important; }
body.asg .wpcf7-not-valid-tip { color: var(--asg-err); font-size: var(--asg-fs-small); margin-top: var(--asg-s-1); }
body.asg .wpcf7 form .wpcf7-response-output {
	margin: var(--asg-s-4) 0 0; padding: var(--asg-s-3) var(--asg-s-4);
	border: 1px solid var(--asg-line-strong); border-radius: var(--asg-r-md); color: var(--asg-text);
}
body.asg .wpcf7 form.sent .wpcf7-response-output { border-color: var(--asg-ok); }
body.asg .wpcf7 form.invalid .wpcf7-response-output, body.asg .wpcf7 form.failed .wpcf7-response-output { border-color: var(--asg-err); }
body.asg .wpcf7-spinner { background-color: var(--asg-text-3); }

/* ============================================================ 8. Restyling modułów Divi (strony nieprzebudowane) */
/* Szerokość treści jak .asg-wrap */
body.asg .et_pb_row,
body.asg .container {
	width: calc(100% - 2 * var(--asg-gutter));
	max-width: var(--asg-max);
}
body.asg .et_pb_row.et_pb_row_fullwidth, body.asg .et_pb_specialty_fullwidth > .et_pb_row { max-width: none; }
body.asg .et_pb_section { padding-block: clamp(3rem, 2rem + 4vw, 6rem); }
body.asg .et_pb_section.et_pb_fullwidth_section { padding-block: 0; }
body.asg .et_pb_row { padding-block: clamp(1.25rem, 1rem + 1vw, 2rem); }

/* Tekst modułów: rodziny i kolory z tokenów (Divi wstawia Poppins/ciemne kolory w CSS modułów). */
body.asg .et-l :is(h1, h2, h3, h4, h5, h6),
body.asg #main-content :is(h1, h2, h3, h4, h5, h6) { font-family: var(--asg-font-display) !important; color: var(--asg-text); }
body.asg .et-l :is(p, li, td, th, dd, dt, blockquote, label),
body.asg #main-content :is(p, li, td, th, dd, dt, blockquote, label) { font-family: var(--asg-font-text); }
body.asg .et_pb_text, body.asg .et_pb_text_inner { color: var(--asg-text-2); font-size: var(--asg-fs-body); line-height: var(--asg-lh-body); }
body.asg .et_pb_text :is(p, li) { color: inherit; }
body.asg .et_pb_text_inner > :is(ul, ol) { margin-bottom: 1em; }
body.asg .et_pb_text_inner { max-width: 48rem; }
body.asg .et_pb_column_4_4 > .et_pb_text .et_pb_text_inner, body.asg .et_pb_text_align_center .et_pb_text_inner, body.asg .et_pb_text[class*="et_pb_text_align_center"] .et_pb_text_inner { margin-inline: auto; }

/* Moduł obrazka: zaokrąglenie jak karty */
body.asg .et_pb_image .et_pb_image_wrap { border-radius: var(--asg-r-lg); overflow: hidden; }
body.asg .et_pb_image img { display: block; }

/* Blurb */
body.asg .et_pb_blurb { color: var(--asg-text-2); }
body.asg .et_pb_blurb .et_pb_module_header, body.asg .et_pb_blurb h4 { font-size: var(--asg-fs-h3) !important; line-height: var(--asg-lh-h3); letter-spacing: var(--asg-ls-h3); padding-bottom: var(--asg-s-2); }
body.asg .et_pb_blurb .et-pb-icon { color: var(--asg-sand) !important; }
body.asg .et_pb_main_blurb_image .et_pb_image_wrap { border-radius: var(--asg-r-md); overflow: hidden; }

/* Toggle / akordeon */
body.asg .et_pb_toggle {
	background: var(--asg-surface) !important; border: 1px solid var(--asg-line) !important;
	border-radius: var(--asg-r-lg); padding: var(--asg-s-5) var(--asg-s-6); margin-bottom: var(--asg-s-3) !important;
}
body.asg .et_pb_toggle_title { color: var(--asg-text) !important; font-size: 1.125rem !important; line-height: 1.35 !important; padding-right: 2.5rem; }
body.asg .et_pb_toggle_title::before { color: var(--asg-sand) !important; right: 0; }
body.asg .et_pb_toggle_content { color: var(--asg-text-2); padding-top: var(--asg-s-3); }

/* Zakładki */
body.asg .et_pb_tabs { border: 1px solid var(--asg-line); border-radius: var(--asg-r-lg); overflow: hidden; background: var(--asg-surface); }
body.asg .et_pb_tabs_controls { background: var(--asg-surface-2) !important; border-bottom: 1px solid var(--asg-line); }
body.asg .et_pb_tabs_controls li { border-right: 1px solid var(--asg-line); background: transparent !important; }
body.asg .et_pb_tabs_controls li a { color: var(--asg-text-2) !important; padding: var(--asg-s-3) var(--asg-s-5) !important; }
body.asg .et_pb_tabs_controls li.et_pb_tab_active { background: var(--asg-surface) !important; }
body.asg .et_pb_tabs_controls li.et_pb_tab_active a { color: var(--asg-text) !important; }
body.asg .et_pb_all_tabs { background: var(--asg-surface); color: var(--asg-text-2); padding: var(--asg-s-5) var(--asg-s-6); }

/* Przyciski Divi = .asg-btn (reguły w sekcji 4); ikony Divi po najechaniu są zbędne. */
body.asg .et_pb_button { font-size: 1rem !important; padding: 0 1.375rem !important; border-width: 1px !important; border-color: transparent !important; color: var(--asg-sand-ink) !important; background-color: var(--asg-sand) !important; }
body.asg .et_pb_button::after, body.asg .et_pb_button::before { display: none !important; }
@media (hover: hover) and (pointer: fine) { body.asg .et_pb_button:hover { background-color: var(--asg-sand-strong) !important; padding: 0 1.375rem !important; } }

/* Dzielnik, liczniki, cennik Divi */
body.asg .et_pb_divider::before { border-top-color: var(--asg-line) !important; }
body.asg .et_pb_number_counter .percent, body.asg .et_pb_circle_counter .percent { color: var(--asg-text); font-family: var(--asg-font-display); }
body.asg .et_pb_pricing_table { background: var(--asg-surface) !important; border: 1px solid var(--asg-line) !important; border-radius: var(--asg-r-lg); }

/* Kontakt Divi (et_pb_contact_form) */
body.asg .et_pb_contact_form .input { background: var(--asg-surface-3) !important; color: var(--asg-text) !important; border: 1px solid var(--asg-line-strong) !important; border-radius: var(--asg-r-md); }

/* Treść zwykłych stron (page.php Divi, gdy body TB wyłączone lub brak szablonu). */
body.asg #main-content .container { padding-top: clamp(2.5rem, 2rem + 3vw, 5rem); }
body.asg #main-content .entry-title.main_title { font-size: var(--asg-fs-h1); line-height: var(--asg-lh-h1); letter-spacing: var(--asg-ls-h1); margin-bottom: var(--asg-s-6); }
body.asg #left-area { padding-bottom: var(--asg-s-8); }
body.asg.et_full_width_page #left-area, body.asg.et_no_sidebar #left-area { width: 100%; }
body.asg .entry-content { color: var(--asg-text-2); }

/* Jasny ton (regulamin, koszyk, zamówienie, konto): pierwsza sekcja z ciemnym tłem Divi nie odcina się kafelkiem. */
[data-asg-ton="jasny"] body.asg .et-l--body .et_pb_section:not([class*="et_pb_with_background"]) { background-color: transparent !important; }
[data-asg-ton="jasny"] body.asg .et_pb_text :is(h1, h2, h3, h4, h5, h6, p, li, span, strong) { color: inherit; }
[data-asg-ton="jasny"] body.asg .et_pb_text { color: var(--asg-text-2) !important; }
[data-asg-ton="jasny"] body.asg .et_pb_text :is(h1, h2, h3, h4, h5, h6, strong) { color: var(--asg-text) !important; }

/* ============================================================ 9. Preferencje dostępności */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
	.asg-js [data-asg-odslon="czeka"] { transform: none; }
	.asg-js [data-asg-odslon] { transition: opacity 200ms ease; }
	.asg-btn:active, .asg-ikona-btn:active, .asg-menu__link:active, .asg-naglowek__logo:active { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
	.asg-naglowek::before { -webkit-backdrop-filter: none; backdrop-filter: none; }
	.asg-btn--szklo { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--asg-surface-2); }
}
@media (prefers-contrast: more) {
	.asg-naglowek::before { box-shadow: inset 0 -1px 0 var(--asg-line-strong); background: var(--asg-ink); }
	.asg-menu__link { color: var(--asg-text) !important; }
	.asg-btn--ghost { border-color: var(--asg-text); }
	body.asg :is(input, select, textarea) { border-color: var(--asg-text-2) !important; }
}
@media (forced-colors: active) {
	.asg-btn, .asg-ikona-btn, .asg-menu__link { border: 1px solid ButtonText; }
	.asg-koszyk-licznik { border: 1px solid CanvasText; }
}

/* ============================================================ 10. Druk */
@media print {
	.asg-naglowek, .asg-zaslona, .asg-skip, .asg-stopka__social, .asg-arkusz { display: none !important; }
	body.asg { background: #fff; color: #000; }
}

/* Divi: tła sekcji (czerń #000/#111 ze starego projektu) → ton strony; zdjęcia i gradienty w tle zostają. */
body.asg .et-l--body .et_pb_section,
body.asg #main-content .et_pb_section { background-color: transparent !important; }

/* Archiwa / wyniki wyszukiwania Divi (index.php) */
body.asg #left-area .et_pb_post { margin-bottom: var(--asg-s-8); }
body.asg .et_pb_post .entry-featured-image-url { display: block; margin-bottom: var(--asg-s-5); border-radius: var(--asg-r-lg); overflow: hidden; }
body.asg .et_pb_post .entry-featured-image-url img { display: block; width: 100%; }
body.asg .et_pb_post .entry-title { font-size: var(--asg-fs-h3); line-height: var(--asg-lh-h3); letter-spacing: var(--asg-ls-h3); margin-bottom: var(--asg-s-2); }
body.asg .et_pb_post .entry-title a { color: var(--asg-text); }
body.asg .et_pb_post .entry-title a:hover { color: var(--asg-sand); }
body.asg .et_pb_post .post-meta { font-size: var(--asg-fs-small); color: var(--asg-text-3); margin-bottom: var(--asg-s-3); }
body.asg .et_pb_post .post-meta a { color: var(--asg-text-2); }
body.asg .et_pb_post .post-content, body.asg .et_pb_post > p { color: var(--asg-text-2); max-width: var(--asg-max-text); }
body.asg .pagination a, body.asg .wp-pagenavi a { color: var(--asg-text); }
@media (max-width: 40rem) {
	body.asg :is(ul, ol) :is(ul, ol) { padding-left: 0.875em; }
}

/* Koordynator: pływający przycisk Divi „do góry” nie pasuje do nowego nagłówka (materiał zawsze pod ręką). */
body.asg .et_pb_scroll_top { display: none !important; }
