/* ==========================================================================
   Kanwa — front-end styles (pixel-perfect wg Figmy)
   ========================================================================== */

/* --- Self-hosted fonts (offline, z polskimi znakami) --------------------- */
@font-face {
	font-family: "Oxanium";
	font-style: normal; font-weight: 200 800; font-display: swap;
	src: url("../fonts/oxanium-latin-ext.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: "Oxanium";
	font-style: normal; font-weight: 200 800; font-display: swap;
	src: url("../fonts/oxanium-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lexend Deca";
	font-style: normal; font-weight: 100 900; font-display: swap;
	src: url("../fonts/lexend-deca-latin-ext.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: "Lexend Deca";
	font-style: normal; font-weight: 100 900; font-display: swap;
	src: url("../fonts/lexend-deca-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--kanwa-shadow-card: 0 16px 32px -4px rgba(12, 12, 13, 0.1), 0 4px 4px -4px rgba(12, 12, 13, 0.05);
	--kanwa-shadow-glow: 0 0 17px rgba(2, 151, 241, 0.3);
	--kanwa-radius: 12px;
	--kanwa-wide: 1536px;
	--kanwa-content: 1406px;
}

html { scroll-behavior: smooth; overflow-x: clip; scrollbar-gutter: stable; }
/* Jednolite, jasnoszare tło całej strony (jak w Figmie) — białe karty na nim widać.
   UWAGA: NIE ustawiamy overflow-x:hidden na body/.wp-site-blocks — tworzy to kontener
   przewijania, który psuje position:sticky nagłówka. Nadmiar w poziomie tnie html { overflow-x: clip }. */
/* Białe tło TYLKO na body — propaguje się do canvas (bo html jest przezroczysty),
   a samo body staje się przezroczyste. Dzięki temu dekoracyjne koła (z-index:-1,
   trafiające do roota) malują się NAD białym canvasem i są widoczne. Tło na
   .wp-site-blocks / html przykrywałoby te koła. */
body { background: #ffffff; }
/* Poziomy zamek: <main> zawiera wszystkie sekcje i NIE jest przodkiem sticky
   nagłówka (ten jest osobnym template-part), więc overflow-x:clip tutaj blokuje
   boczne przewijanie bez psucia sticky. Dekoracyjne koła (z-index:-1) wychodzące
   poza viewport są przycinane na jego krawędzi, ale nadal płynnie przechodzą
   między sekcjami w pionie (clip tnie tworzy kontenera przewijania). */
main { overflow-x: clip; }

/* Wymuszenie właściwych fontów (Oxanium — nagłówki, Lexend Deca — tekst) */
body, p, li, a, span, .wp-block-list, input, button, textarea, select {
	font-family: "Lexend Deca", -apple-system, "Segoe UI", sans-serif;
}
h1, h2, h3, h4, h5, h6,
.kanwa-hero-title, .kanwa-section-title, .kanwa-card__title, .kanwa-feature__title,
.kanwa-product-card__title, .kanwa-hero-badge__title, .kanwa-nav__list a,
.wp-block-button__link, .kanwa-partners__title, .kanwa-footer__links a, .kanwa-contact-phone {
	font-family: "Oxanium", "Segoe UI", sans-serif;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .02em; padding: 13px 24px; border-radius: 6px; }
.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--base-700);
	border: 1px solid var(--wp--preset--color--primary); box-shadow: none;
}
.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: #fff; }
.kanwa-btn-phone .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.kanwa-btn-phone .wp-block-button__link::before {
	content: ""; width: 18px; height: 18px; flex: 0 0 18px; background: currentColor;
	-webkit-mask: url("../icons/ui/phone-call.svg") center / contain no-repeat;
	        mask: url("../icons/ui/phone-call.svg") center / contain no-repeat;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
/* Nagłówek jest owijany przez WP w <div class="wp-block-template-part">, którego
   wysokość = wysokość nagłówka. position:sticky przywiera tylko w obrębie rodzica,
   więc bez tego odklejałby się od razu. display:contents usuwa ten box z układu,
   dzięki czemu rodzicem sticky staje się .wp-site-blocks (cała strona). */
.wp-block-template-part { display: contents; }
.kanwa-header { position: sticky; top: 0; z-index: 100; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.kanwa-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 14px max(24px, calc((100% - var(--kanwa-wide)) / 2)); }
.kanwa-logo { flex: 0 0 auto; }
.kanwa-logo img, .kanwa-logo svg { height: 60px; width: auto; display: block; }
.kanwa-header__right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 1 1 auto; }
.kanwa-header__top { display: flex; align-items: center; justify-content: flex-end; gap: 24px; font-size: 14px; }
.kanwa-header__question b { font-weight: 700; }
.kanwa-header__question { color: var(--wp--preset--color--secondary); margin: 0; }
.kanwa-header__pills { display: flex; align-items: center; gap: 12px; }
.kanwa-mobile-menu__actions { display: flex; align-items: center; gap: 8px; }
/* Zaloguj / Koszyk — widoczne TYLKO w sklepie (desktop) */
.kanwa-header__account { display: none; }
body.kanwa-shop-ctx .kanwa-header__account { display: inline-flex; }
/* Zaloguj / Koszyk — widoczne TYLKO w sklepie (mobile); hamburger zawsze */
.kanwa-header__mobile a.kanwa-iconbtn,
.kanwa-header__mobile .kanwa-iconbtn--cart { display: none; }
body.kanwa-shop-ctx .kanwa-header__mobile a.kanwa-iconbtn,
body.kanwa-shop-ctx .kanwa-header__mobile .kanwa-iconbtn--cart { display: inline-flex; }
.kanwa-contact-pill {
	display: inline-flex; align-items: center; gap: 8px;
	background: linear-gradient(90deg, #0297f1, #0079c2);
	color: #fff; padding: 5px 12px; border-radius: 6px; text-decoration: underline;
	box-shadow: var(--kanwa-shadow-glow); font-size: 14px;
}
.kanwa-contact-pill:hover { color: #fff; filter: brightness(1.05); }
.kanwa-contact-pill svg { width: 16px; height: 16px; }
.kanwa-nav { width: 100%; border-top: 1px solid var(--wp--preset--color--base-200); padding-top: 4px; }
.kanwa-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 4px; flex-wrap: nowrap; }
.kanwa-nav__list a {
	display: inline-flex; align-items: center; gap: 7px; padding: 10px 11px; border-radius: 6px; text-decoration: none;
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 14px; letter-spacing: 0; text-transform: uppercase;
	color: var(--wp--preset--color--secondary); transition: background .2s, color .2s; white-space: nowrap;
}
.kanwa-nav__list a:hover { background: rgba(2,151,241,.08); }
.kanwa-nav__icon { width: 18px; height: 18px; flex: 0 0 18px; color: var(--wp--preset--color--primary); }
.kanwa-nav__icon svg { width: 100%; height: 100%; display: block; }
.kanwa-header__mobile { display: none; align-items: center; gap: 16px; }
.kanwa-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; background: transparent; cursor: pointer; color: var(--wp--preset--color--primary); }
.kanwa-iconbtn svg { width: 26px; height: 26px; }

/* Off-canvas mobile menu — overflow:hidden, żeby panel odsunięty w prawo
   (translateX(100%)) nie powiększał szerokości strony (poziomy scroll na telefonie). */
.kanwa-mobile-menu { position: fixed; inset: 0; z-index: 200; visibility: hidden; overflow: hidden; }
.kanwa-mobile-menu__overlay { position: absolute; inset: 0; background: #1e2d3b; opacity: 0; transition: opacity .3s ease; }
.kanwa-mobile-menu__panel {
	position: absolute; top: 0; right: 0; height: 100%; width: min(85vw, 340px);
	box-sizing: border-box; max-width: 100vw;
	background: #fff; transform: translateX(100%); transition: transform .3s ease;
	display: flex; flex-direction: column; padding: 20px; overflow-y: auto; box-shadow: -8px 0 30px rgba(0,0,0,.2);
}
/* panel i jego dzieci liczą padding w szerokości (bez tego wychodzi poza ekran) */
.kanwa-mobile-menu__panel * { box-sizing: border-box; }
.kanwa-mobile-menu.is-open { visibility: visible; }
.kanwa-mobile-menu.is-open .kanwa-mobile-menu__overlay { opacity: .55; }
.kanwa-mobile-menu.is-open .kanwa-mobile-menu__panel { transform: translateX(0); }
.kanwa-mobile-menu__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.kanwa-mobile-menu__head .kanwa-logo img, .kanwa-mobile-menu__head .kanwa-logo svg { height: 34px; }
.kanwa-mobile-menu__nav { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; }
.kanwa-mobile-menu__nav a {
	display: flex; align-items: center; gap: 16px; padding: 16px 8px; text-decoration: none;
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 18px; text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
}
.kanwa-mobile-menu__nav a:hover { color: var(--wp--preset--color--primary); }
.kanwa-mobile-menu__nav .kanwa-nav__icon { width: 26px; height: 26px; flex: 0 0 26px; color: var(--wp--preset--color--primary); }
.kanwa-mobile-menu__cta { margin-top: auto; padding-top: 24px; }
.kanwa-mobile-menu__cta h4 { margin: 0 0 4px; font-family: var(--wp--preset--font-family--heading); }
.kanwa-mobile-menu__cta .kanwa-contact-pill { display: flex; justify-content: center; margin-top: 12px; }
/* Blokada scrolla przy otwartym menu — na <html> (na <body> psułaby sticky nagłówek). */
html.kanwa-menu-open { overflow: hidden; }

/* ==========================================================================
   SECTION LAYOUT SYSTEM
   ========================================================================== */
.kanwa-section { position: relative; padding-block: clamp(56px, 7vw, 120px); padding-inline: max(24px, calc((100% - var(--kanwa-wide)) / 2)); }
.kanwa-2col__inner { max-width: var(--kanwa-wide); margin-inline: auto; }
.kanwa-2col__inner.wp-block-columns { gap: clamp(32px, 6vw, 120px); align-items: center; }
.kanwa-media-round { border-radius: 24px; overflow: hidden; margin: 0; }
.kanwa-media-round img { border-radius: 24px; width: 100%; object-fit: cover; display: block; }
/* proporcje kadru wg Figmy */
.kanwa-intro .kanwa-media-round img { aspect-ratio: 626 / 779; }
.kanwa-why .kanwa-media-round img { aspect-ratio: 626 / 669; }
.kanwa-contact .kanwa-media-round img { aspect-ratio: 626 / 436; }

.kanwa-section-title {
	font-family: var(--wp--preset--font-family--heading); font-weight: 400; text-transform: uppercase;
	letter-spacing: 0.04em; line-height: 1.186; font-size: clamp(28px, 2.75vw, 40px);
	margin: 0 0 24px; color: var(--wp--preset--color--secondary);
}
.kanwa-section-title strong { font-weight: 700; }
.kanwa-eyebrow-bold { font-weight: 700; margin: 4px 0; }
/* Długie wersaliki (np. WODNO-KANALIZACYJNE) nie mogą rozpychać strony w poziomie */
.kanwa-section-title, .kanwa-product-card__title, .kanwa-card__title, .kanwa-feature__title, .kanwa-hero-title { overflow-wrap: break-word; }
img, video { max-width: 100%; }

/* ==========================================================================
   HERO
   ========================================================================== */
/* Wartości 1:1 z Figmy (kanwa: ramka hero 1880×760, tekst x172/y80, plakietka x1344/y522) */
.kanwa-hero { position: relative; overflow: hidden; background: #d7dee5; }
/* Tło hero — zapętlone wideo (loopable animation z Figmy) */
.kanwa-hero__video {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; z-index: 0; pointer-events: none;
}
.kanwa-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.93) 26%, rgba(255,255,255,.55) 48%, rgba(255,255,255,.15) 68%, rgba(255,255,255,0) 100%);
}
.kanwa-hero__inner { position: relative; z-index: 2; height: 760px; width: 100%; }
/* tekst zaczyna się w TYM SAMYM miejscu co logo w nagłówku (ten sam margines).
   Blok rozpięty na całą wysokość hero + flex-column: tytuł/lead/przyciski u góry,
   a strzałka „Dowiedz się więcej” dosuwana do dołu (margin-top:auto) — jak w Figmie. */
.kanwa-hero__text { position: absolute; top: 0; bottom: 0; left: max(24px, calc((100% - 1536px) / 2)); width: min(756px, calc(100% - 48px)); display: flex; flex-direction: column; align-items: flex-start; padding: 80px 0 108px; }
.kanwa-hero-title {
	font-family: "Oxanium", sans-serif; font-weight: 500; text-transform: uppercase;
	line-height: 1.14; letter-spacing: .005em; font-size: 52px;
	margin: 0; color: var(--wp--preset--color--secondary); overflow-wrap: break-word;
}
.kanwa-hero-title strong { font-weight: 700; }
.kanwa-hero-lead { max-width: 496px; font-size: 14px; line-height: 22px; color: var(--wp--preset--color--secondary); margin: 40px 0 0; }
.kanwa-hero .wp-block-buttons.kanwa-hero-buttons { flex-direction: column; align-items: flex-start; gap: 10px; margin: 30px 0 0; }
.kanwa-hero-buttons .wp-block-button:first-child { width: 278px; }
.kanwa-hero-buttons .wp-block-button:first-child .wp-block-button__link { display: flex; width: 100%; }
.kanwa-hero-buttons .wp-block-button__link { height: 48px; }
.kanwa-arrow-link { margin: 30px 0 0; margin-top: auto; margin-bottom: 0; }
.kanwa-arrow-link a { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--wp--preset--color--secondary); font-size: 14px; }
.kanwa-arrow-link a::before {
	content: ""; width: 22px; height: 22px; flex: 0 0 22px; background: var(--wp--preset--color--primary);
	-webkit-mask: url("../icons/ui/arrow-down.svg") center / contain no-repeat;
	        mask: url("../icons/ui/arrow-down.svg") center / contain no-repeat;
}
.kanwa-hero-badge {
	position: absolute; bottom: 40px; top: auto; right: max(24px, calc((100% - 1536px) / 2)); width: 496px;
	background: rgba(255,255,255,.85); backdrop-filter: blur(2px); border-radius: 8px; padding: 32px;
	box-shadow: var(--kanwa-shadow-card);
}
.kanwa-hero-badge__title { color: var(--wp--preset--color--primary); text-transform: uppercase; font-family: "Oxanium", sans-serif; font-weight: 700; font-size: 24px; margin: 0 0 16px; letter-spacing: .03em; }
.kanwa-hero-badge p { font-size: 14px; line-height: 22px; color: var(--wp--preset--color--secondary); margin: 0; }
.kanwa-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { color: #fff; }
.kanwa-hero .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--base-700); background: #fff; }

/* ==========================================================================
   BENEFIT / FEATURE CARDS
   ========================================================================== */
.kanwa-benefits-row.wp-block-columns { gap: 20px; margin-top: 24px; margin-bottom: 20px; }
.kanwa-card { background: #fff; border-radius: 12px; padding: 20px; box-shadow: var(--kanwa-shadow-card); height: 100%; margin: 0; }
.kanwa-card__title { color: var(--wp--preset--color--primary); text-transform: uppercase; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(17px,1.05vw,20px); letter-spacing: .03em; line-height: 1.2; margin: 0 0 10px; }
.kanwa-card p { font-size: 14px; line-height: 22px; margin: 0; color: var(--wp--preset--color--secondary); }

.kanwa-feature { margin: 0 0 24px; }
.kanwa-feature__title { color: var(--wp--preset--color--primary); text-transform: uppercase; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(17px,1.05vw,20px); letter-spacing: .03em; margin: 0 0 8px; }
.kanwa-feature p { font-size: 14px; line-height: 22px; margin: 0; }
.kanwa-inline-buttons { gap: 20px; margin-top: 40px; }

/* ==========================================================================
   PRODUCTS
   ========================================================================== */
.kanwa-products__title { margin-bottom: 16px; }
.kanwa-products__desc { max-width: 1010px; margin: 0 auto 40px; font-size: 14px; line-height: 22px; }
.kanwa-products-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; max-width: var(--kanwa-wide); margin-inline: auto; }
.kanwa-product-card {
	flex: 0 0 calc((100% - 60px) / 4); max-width: 369px; background: #fff; border-radius: 12px; box-shadow: var(--kanwa-shadow-card);
	padding: 40px 20px; display: flex; flex-direction: column; align-items: center; gap: 20px; min-height: 400px; margin: 0;
	transition: transform .2s, box-shadow .2s;
}
.kanwa-product-card:hover { transform: translateY(-6px); box-shadow: 0 24px 44px -6px rgba(2,151,241,.18); }
.kanwa-product-card__icon { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; margin: 0; min-height: 120px; }
.kanwa-product-card__icon img { height: 100px; width: auto; }
/* „Rury z żeliwa sferoidalnego” to zdjęcie (nie ikona liniowa) — samo z siebie
   wygląda na większe od pozostałych kafelków. Dopasowujemy je wielkością. */
.kanwa-product-card__icon img[src*="rury-zeliwne"] { height: 78px; width: auto; object-fit: contain; }
.kanwa-product-card__title { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(18px,1.4vw,24px); color: var(--wp--preset--color--base-800); text-transform: uppercase; letter-spacing: .02em; line-height: 1.25; margin: 0; }
.kanwa-product-card__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; text-align: center; width: 100%; }
.kanwa-product-card__list li { font-size: 14px; line-height: 1.35; color: var(--wp--preset--color--secondary); }
/* dekoracyjne, jasnoniebieskie elementy tła (jak w Figmie) */
/* Dekoracyjne, bardzo jasnoniebieskie koła tła — pozycje 1:1 z Figmy.
   z-index:-1 wrzuca je do warstwy tła całej strony (za całą treścią), więc koła
   PŁYNNIE przechodzą między sekcjami zamiast urywać się na ich krawędziach.
   Sekcje NIE mają overflow:hidden (inaczej ucinałyby koło); poziomy nadmiar
   tnie html { overflow-x: clip } — nie tworzy poziomego scrolla. */
/* Ellipse 1 (3669:38): WYPEŁNIONE koło #EDF5F9, śr. 1109, środek 489px na prawo
   od środka ramki, 69px poniżej góry sekcji intro. */
.kanwa-intro { position: relative; }
.kanwa-intro::before { content: ""; position: absolute; width: 1109px; height: 1109px; border-radius: 50%; background: #EDF5F9; left: 50%; top: calc(clamp(56px, 7vw, 120px) + 69px); transform: translate(calc(-50% + 489px), -50%); z-index: -1; pointer-events: none; }
/* Ellipse 2 (3669:39): PIERŚCIEŃ (pusty środek) — obrys #0297F1 @5%, grubość 64px,
   śr. zewn. 1235, wyśrodkowany, 565px poniżej góry sekcji. box-sizing:border-box →
   obrys mieści się w 1235 (jak stroke w SVG). */
.kanwa-products { position: relative; }
.kanwa-products::before { content: ""; position: absolute; box-sizing: border-box; width: 1235px; height: 1235px; border-radius: 50%; background: transparent; border: 64px solid rgba(2,151,241,.05); left: 50%; top: calc(clamp(56px, 7vw, 120px) + 565px); transform: translate(-50%, -50%); z-index: -1; pointer-events: none; }

/* ==========================================================================
   WHY (decor circle)
   ========================================================================== */
/* Ellipse 1 (3669:84): WYPEŁNIONE koło #EDF5F9, śr. 1109. Figma: środek 339px na
   lewo od środka ramki, 354px poniżej góry sekcji (bleed z lewej za kolumną tekstu). */
.kanwa-why { position: relative; }
.kanwa-why::before {
	content: ""; position: absolute; width: 1109px; height: 1109px; border-radius: 50%;
	background: #EDF5F9; left: calc(50% - 469px); top: 50%; transform: translate(-50%, -50%); z-index: -1; pointer-events: none;
}
.kanwa-why .kanwa-2col__inner { position: relative; }

/* (Sekcje „Porozmawiajmy” na stronie głównej i siatka katalogów NIE mają kół w
   Figmie — wcześniej dodane koła usunięto, żeby zachować zgodność 1:1.) */

/* ==========================================================================
   CTA
   ========================================================================== */
.kanwa-cta { position: relative; overflow: hidden; background: linear-gradient(94deg, #0079c2 0%, #0297f1 62%); color: #fff; padding: clamp(56px,7vw,110px) max(24px, calc((100% - var(--kanwa-wide)) / 2)); }
.kanwa-cta::before { content: ""; position: absolute; width: 1241px; height: 1241px; border-radius: 50%; border: 115px solid rgba(255,255,255,.9); left: 50%; top: -595px; transform: translateX(calc(-50% + 845px)); z-index: 1; pointer-events: none; }
.kanwa-cta::after { content: ""; position: absolute; right: 0; bottom: 0; width: 54%; height: 120%; background: url("../images/cta-pipes.png") right bottom / contain no-repeat; z-index: 1; pointer-events: none; }
.kanwa-cta__inner { position: relative; z-index: 2; max-width: 600px; }
.kanwa-cta__title { color: #fff; margin-bottom: 20px; }
.kanwa-cta p { color: #fff; font-size: 14px; line-height: 22px; margin: 0 0 24px; }
.kanwa-btn-white .wp-block-button__link { background: #fff; color: var(--wp--preset--color--secondary); }
.kanwa-btn-white .wp-block-button__link:hover { background: var(--wp--preset--color--secondary); color: #fff; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.kanwa-contact-cta { display: flex; align-items: center; gap: 40px; flex-wrap: wrap; margin-top: 40px; }
.kanwa-contact-phone { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(20px,1.5vw,24px); line-height: 30px; text-transform: uppercase; letter-spacing: .02em; }
.kanwa-contact-phone a { display: inline-flex; align-items: center; gap: 10px; color: var(--wp--preset--color--base-800); text-decoration: none; }
.kanwa-contact-phone a::before { content: ""; width: 32px; height: 32px; flex: 0 0 32px; background: var(--wp--preset--color--primary); -webkit-mask: url("../icons/ui/phone-call.svg") center/contain no-repeat; mask: url("../icons/ui/phone-call.svg") center/contain no-repeat; }
.kanwa-contact-phone a:hover { color: var(--wp--preset--color--primary); }

/* ==========================================================================
   PARTNERS
   ========================================================================== */
.kanwa-partners-section { padding-block: 48px; padding-inline: max(24px, calc((100% - var(--kanwa-wide)) / 2)); }
.kanwa-partners { display: flex; align-items: center; gap: 40px; }
.kanwa-partners__title { text-transform: uppercase; color: var(--wp--preset--color--secondary); font-family: var(--wp--preset--font-family--heading); font-size: clamp(16px,1.05vw,20px); letter-spacing: .03em; margin: 0; white-space: nowrap; }
.kanwa-marquee { flex: 1 1 auto; min-width: 0; overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
/* Dwie IDENTYCZNE grupy z trailing gap (padding-right) → translateX(-50%) daje
   szerokość dokładnie jednej grupy → pętla bez skoku. */
.kanwa-marquee__track { display: flex; align-items: center; width: max-content; animation: kanwa-scroll 34s linear infinite; }
.kanwa-marquee__group { display: flex; align-items: center; gap: 56px; padding-right: 56px; flex: 0 0 auto; }
.kanwa-marquee:hover .kanwa-marquee__track { animation-play-state: paused; }
.kanwa-marquee img { height: 44px; max-height: 44px; width: auto; max-width: 150px; object-fit: contain; display: block; }
@keyframes kanwa-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* Marquee to subtelne, poziome przewijanie logotypów (z pauzą na hover) — celowo
   przewija się także przy prefers-reduced-motion (np. wyłączone animacje w Windows),
   inaczej logotypy stały nieruchomo. */

/* ==========================================================================
   FOOTER
   ========================================================================== */
.kanwa-footer { background: var(--wp--preset--color--primary); color: #fff; overflow: hidden; }
.kanwa-footer a { color: #fff; }
.kanwa-footer__inner { max-width: 1920px; margin: 0 auto; padding: 40px max(24px, calc((100% - var(--kanwa-wide)) / 2)); }
.kanwa-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.kanwa-footer__logo { flex: 0 0 auto; margin-left: -300px; }
.kanwa-footer__logo svg { height: 56px; width: auto; display: block; }
.kanwa-footer__cols { display: flex; align-items: center; gap: clamp(24px, 3vw, 64px); flex-wrap: wrap; font-size: 14px; line-height: 1.6; }
.kanwa-footer__col b { font-weight: 700; }
.kanwa-footer__contact { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.kanwa-footer a.kanwa-footer__pill { display: inline-flex; align-items: center; gap: 12px; background: #fff; color: var(--wp--preset--color--base-900); padding: 6px 12px; border-radius: 6px; text-decoration: underline; box-shadow: var(--kanwa-shadow-glow); }
.kanwa-footer a.kanwa-footer__pill:hover { color: var(--wp--preset--color--primary); }
.kanwa-footer__pill svg { width: 16px; height: 16px; }
.kanwa-footer__line { border: 0; border-top: 1px solid rgba(255,255,255,.4); margin: 28px 0; }
.kanwa-footer__links { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: clamp(24px, 5vw, 80px); flex-wrap: wrap; }
.kanwa-footer__links a { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 15px; text-transform: uppercase; text-decoration: none; letter-spacing: .02em; }
.kanwa-footer__links a:hover { text-decoration: underline; }
/* „Wykonanie [logo]” po lewej, linki prawne po prawej — dół footera */
.kanwa-footer__made { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); flex-wrap: wrap; }
.kanwa-footer__made-credit { display: flex; align-items: center; gap: 12px; }
.kanwa-footer__made span { font-size: 13px; color: rgba(255,255,255,.7); letter-spacing: .02em; }
.kanwa-footer__legal { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.kanwa-footer__legal-link { font-family: var(--wp--preset--font-family--heading); font-size: 13px; font-weight: 600; color: rgba(255,255,255,.8); text-decoration: none; letter-spacing: .02em; background: none; border: 0; padding: 0; cursor: pointer; }
.kanwa-footer__legal-link:hover { color: #fff; text-decoration: underline; }

/* ==========================================================================
   STRONY PRAWNE (Polityka prywatności / regulamin)
   ========================================================================== */
.kanwa-legal-section { padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(48px, 7vw, 96px); }
.kanwa-legal { max-width: 900px; margin: 0 auto; padding: 0 20px; color: var(--wp--preset--color--secondary); }
.kanwa-legal h1 { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: clamp(30px, 4.5vw, 48px); line-height: 1.1; margin: 0 0 20px; }
.kanwa-legal h2 { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(20px, 2.6vw, 26px); line-height: 1.2; margin: 36px 0 12px; }
.kanwa-legal p, .kanwa-legal li { font-family: var(--wp--preset--font-family--body); font-size: 16px; line-height: 1.7; color: #404040; }
.kanwa-legal__lead { font-size: 17px; color: #262626; margin-bottom: 8px; }
.kanwa-legal ul { padding-left: 22px; margin: 12px 0; display: flex; flex-direction: column; gap: 8px; }
.kanwa-legal strong { color: var(--wp--preset--color--secondary); }
.kanwa-legal a { color: var(--wp--preset--color--primary); text-decoration: underline; }
.kanwa-legal a:hover { color: var(--wp--preset--color--primary-dark); }
.kanwa-legal__cc-open { background: none; border: 0; padding: 0; font: inherit; color: var(--wp--preset--color--primary); text-decoration: underline; cursor: pointer; }
.kanwa-legal__cc-open:hover { color: var(--wp--preset--color--primary-dark); }
.kanwa-footer__made-logo { display: inline-flex; align-items: center; opacity: .85; transition: opacity .2s; }
.kanwa-footer__made-logo:hover { opacity: 1; }
.kanwa-footer__made-logo svg { height: 26px; width: auto; display: block; transform: translateY(3px); }
/* Adres i fax (numer) w stopce — każdy w osobnym wierszu, jeden pod drugim */
.kanwa-icon-inline { display: flex; align-items: center; gap: 10px; }
.kanwa-icon-inline svg { width: 20px; height: 20px; flex: 0 0 20px; }

/* ==========================================================================
   OFERTA (podstrona)
   ========================================================================== */
/* sekcja „Niezawodna armatura” — obraz z lewej, tekst z prawej; koło tła po prawej */
/* Oferta „Niezawodna armatura” (Figma 3669:222): obraz z lewej, tekst z prawej,
   koło ø991 bleeduje w prawo, środek 294px na prawo od środka ramki. */
.kanwa-offer-feature::before { width: 991px; height: 991px; left: calc(50% + 294px); right: auto; top: 50%; transform: translate(-50%, -50%); }
.kanwa-offer-feature .kanwa-media-round img { aspect-ratio: 626 / 560; }
/* wyróżnione kategorie — 3 wiersze tekst/obraz, tytuły w kolorze primary (jak w Figmie) */
.kanwa-offer-row__title {
	font-family: var(--wp--preset--font-family--heading); font-weight: 400;
	text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.186;
	font-size: clamp(24px, 2vw, 32px); color: var(--wp--preset--color--primary);
	margin: 0 0 24px;
}
.kanwa-offer-row .kanwa-media-round img { aspect-ratio: 626 / 340; }
.kanwa-offer-row { padding-block: clamp(28px, 3vw, 44px); }

/* ==========================================================================
   O FIRMIE (podstrona)
   ========================================================================== */
/* niebieski wstęp pod tytułem (np. „Przedsiębiorstwo KANWA… 1997 w Krakowie”) */
.kanwa-about-lead {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600; font-size: clamp(17px, 1.2vw, 20px);
	text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.19;
	margin: 0 0 12px;
}
.kanwa-about .kanwa-media-round img { aspect-ratio: 626 / 541; }
/* zdjęcie z niebieskim radialnym nakładem i napisem (jak w Figmie) */
.kanwa-about-media { position: relative; margin: 0; }
.kanwa-about-media::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: 24px;
	background: radial-gradient(ellipse 75% 95% at 50% 50%, rgba(0,0,0,.55) 0%, rgba(1,58,92,.5) 55%, rgba(2,151,241,.55) 100%);
}
.kanwa-about-media__caption {
	position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
	padding: 24px; text-align: center; color: #fff;
	font-family: var(--wp--preset--font-family--heading); font-weight: 800;
	text-transform: uppercase; letter-spacing: .04em; line-height: 1.186;
	font-size: clamp(26px, 2.9vw, 40px);
}

/* ==========================================================================
   KATALOGI (podstrona)
   ========================================================================== */
.kanwa-catalogs__title { margin-bottom: 40px; }
.kanwa-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: var(--kanwa-wide); margin-inline: auto; }
.kanwa-cat-card { background: #fff; border-radius: 12px; box-shadow: var(--kanwa-shadow-card); padding: 20px; display: flex; flex-direction: column; gap: 20px; }
/* pole logo 256px wysokości (jak w Figmie), logo wyśrodkowane i nieprzycięte */
.kanwa-cat-card__logo { height: 256px; display: flex; align-items: center; justify-content: center; }
/* Logo w kontenerze o wymiarach z Figmy — skaluje się proporcjonalnie */
.kanwa-cat-logo { position: relative; display: block; height: auto; max-width: 78%; overflow: hidden; }
.kanwa-cat-logo--full img, .kanwa-cat-logo--cover img { display: block; width: 100%; height: 100%; }
.kanwa-cat-logo--full img { object-fit: contain; }
.kanwa-cat-logo--cover img { object-fit: cover; }
.kanwa-cat-logo--crop img { position: absolute; max-width: none; }
/* Keramo — 4 części na przezroczystym tle (insety 1:1 z Figmy) */
.kanwa-cat-logo--keramo img { position: absolute; object-fit: contain; }
.kanwa-cat-logo--keramo .k1 { left: 10.8%; top: -0.88%; width: 78.1%; height: 63.8%; }
.kanwa-cat-logo--keramo .k2 { left: 35.25%; top: 79%; width: 34.06%; height: 20.64%; }
.kanwa-cat-logo--keramo .k3 { left: 27.25%; top: 76.91%; width: 6.07%; height: 23.33%; }
.kanwa-cat-logo--keramo .k4 { left: 23.9%; top: 35.51%; width: 45.54%; height: 28.04%; }
/* Amiblu — białe na niebieskim zaokrąglonym tle */
.kanwa-cat-logo--amiblu { display: flex; align-items: center; justify-content: center; background: #118fe5; border-radius: 10px; }
.kanwa-cat-logo--amiblu img { width: 79.3%; height: auto; object-fit: contain; }
.kanwa-cat-card__line { border: 0; border-top: 1px solid var(--wp--preset--color--base-200); margin: 0; width: 100%; }
.kanwa-cat-card__foot { display: flex; align-items: flex-end; gap: 12px; }
.kanwa-cat-card__info { flex: 1 1 auto; min-width: 0; }
.kanwa-cat-card__name { color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 20px; text-transform: uppercase; letter-spacing: .04em; line-height: 1.186; margin: 0 0 6px; }
.kanwa-cat-card__type { font-size: 14px; line-height: 22px; color: var(--wp--preset--color--secondary); margin: 0; }
.kanwa-cat-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; padding: 12px 24px; border: 1px solid var(--wp--preset--color--primary); border-radius: 6px; color: var(--wp--preset--color--base-700); font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .02em; text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; flex: 0 0 auto; }
.kanwa-cat-card, .kanwa-cat-card__logo, .kanwa-cat-card__foot, .kanwa-cat-card__info { box-sizing: border-box; }
/* Saint-Gobain PAM — 2 części (znak + podpis SAINT-GOBAIN) */
.kanwa-cat-logo--pam img { position: absolute; object-fit: contain; }
.kanwa-cat-logo--pam .pam1 { left: 0; top: 0; width: 100%; height: 87.08%; }
.kanwa-cat-logo--pam .pam2 { left: 49.66%; top: 83.32%; width: 50.34%; height: 16.68%; }
.kanwa-cat-btn:hover { background: var(--wp--preset--color--primary); color: #fff; }

/* ==========================================================================
   KONTAKT (podstrona)
   ========================================================================== */
.kanwa-contact-page__inner { display: flex; gap: 24px; align-items: stretch; max-width: var(--kanwa-wide); margin-inline: auto; }
.kanwa-contact-form-wrap { flex: 1 1 886px; min-width: 0; background: #fff; border-radius: 24px; box-shadow: var(--kanwa-shadow-card); padding: 40px; }
.kanwa-contact-photo { flex: 0 1 626px; border-radius: 24px; overflow: hidden; }
.kanwa-contact-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kanwa-contact-form__title { color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: clamp(24px, 2.2vw, 32px); text-transform: uppercase; letter-spacing: .04em; line-height: 1.186; margin: 0 0 24px; }
.kanwa-form { margin: 0; }
.kanwa-form__row { display: flex; gap: 24px; margin-bottom: 20px; }
.kanwa-field { display: flex; flex-direction: column; gap: 5px; flex: 1 1 0; min-width: 0; }
.kanwa-field__label { font-size: 14px; text-transform: uppercase; color: var(--wp--preset--color--secondary); letter-spacing: .02em; }
.kanwa-field input, .kanwa-field textarea { box-sizing: border-box; width: 100%; border: 1px solid #d4d4d4; border-radius: 6px; padding: 12px; font-size: 14px; font-family: "Lexend Deca", sans-serif; color: var(--wp--preset--color--secondary); background: #fff; }
.kanwa-field input { height: 48px; }
.kanwa-field textarea { height: 134px; resize: vertical; }
.kanwa-field input::placeholder, .kanwa-field textarea::placeholder { color: var(--wp--preset--color--secondary); opacity: .35; }
.kanwa-field input:focus, .kanwa-field textarea:focus { outline: none; border-color: var(--wp--preset--color--primary); box-shadow: var(--kanwa-shadow-glow); }
.kanwa-form__row--msg .kanwa-field--msg { flex: 1 1 64%; }
.kanwa-form__row--msg .kanwa-field--file { flex: 1 1 34%; }
.kanwa-dropzone { position: relative; box-sizing: border-box; display: flex; align-items: center; justify-content: center; text-align: center; height: 134px; border: 1px dashed #d4d4d4; border-radius: 6px; cursor: pointer; padding: 12px; }
.kanwa-dropzone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.kanwa-dropzone__text { font-size: 14px; color: var(--wp--preset--color--secondary); opacity: .55; line-height: 22px; }
.kanwa-dropzone__text strong { display: block; opacity: 1; }
.kanwa-form__consent { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.kanwa-checkbox { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--wp--preset--color--secondary); line-height: 1.45; flex: 1 1 360px; cursor: pointer; }
.kanwa-checkbox input { width: 24px; height: 24px; flex: 0 0 24px; accent-color: var(--wp--preset--color--primary); margin: 0; }
.kanwa-form__submit { flex: 0 0 auto; background: var(--wp--preset--color--primary); color: #fff; border: 0; border-radius: 6px; height: 48px; padding: 0 32px; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .02em; cursor: pointer; transition: filter .2s; }
.kanwa-form__submit:hover { filter: brightness(1.06); }
.kanwa-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.kanwa-form-alert { padding: 12px 16px; border-radius: 8px; margin: 0 0 20px; font-size: 14px; }
.kanwa-form-alert--ok { background: #e6f7ec; color: #1a7f43; }
.kanwa-form-alert--err { background: #fdeaea; color: #c0392b; }
.kanwa-contact-form__line { border: 0; border-top: 1px solid #e5e5e5; margin: 32px 0; }
.kanwa-contact-direct { display: flex; flex-direction: column; gap: 20px; }
.kanwa-contact-direct__row { display: flex; gap: 60px; flex-wrap: wrap; }
.kanwa-contact-direct__item { display: inline-flex; align-items: center; gap: 10px; color: var(--wp--preset--color--base-800); text-decoration: none; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(18px, 1.5vw, 24px); text-transform: uppercase; letter-spacing: .02em; }
.kanwa-contact-direct__ic { width: 30px; height: 30px; flex: 0 0 30px; color: var(--wp--preset--color--primary); }
.kanwa-contact-direct__ic svg { width: 100%; height: 100%; display: block; }
.kanwa-underline { text-decoration: underline; }
a.kanwa-contact-direct__item:hover .kanwa-contact-direct__txt { color: var(--wp--preset--color--primary); }
.kanwa-contact-courier { display: flex; gap: 60px; justify-content: center; flex-wrap: wrap; font-size: 14px; text-transform: uppercase; color: var(--wp--preset--color--secondary); }
.kanwa-contact-courier p { margin: 0; }
/* mapa */
.kanwa-map-section { padding: 0; }
.kanwa-contact-map { position: relative; width: 100%; line-height: 0; }
.kanwa-contact-map iframe { display: block; width: 100%; height: 362px; border: 0; }
.kanwa-map-btn { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #fff; color: var(--wp--preset--color--secondary); padding: 12px 24px; border-radius: 6px; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .02em; text-decoration: none; box-shadow: var(--kanwa-shadow-card); line-height: 1; }
.kanwa-map-btn:hover { background: var(--wp--preset--color--primary); color: #fff; }

/* ==========================================================================
   KARIERA (podstrona)
   ========================================================================== */
.kanwa-careers__title { margin-bottom: 16px; }
.kanwa-careers__desc { max-width: 1010px; margin: 0 auto 40px; font-size: 14px; line-height: 22px; }
.kanwa-jobs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: var(--kanwa-wide); margin-inline: auto; }
.kanwa-job { display: flex; gap: 20px; background: #fff; border-radius: 12px; box-shadow: var(--kanwa-shadow-card); padding: 20px; }
.kanwa-job__photo { flex: 0 0 217px; align-self: stretch; border-radius: 8px; overflow: hidden; background: #d9d9d9; }
.kanwa-job__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kanwa-job__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 20px; padding: 20px 0 20px 20px; border-left: 1px solid #e5e5e5; }
.kanwa-job__title { color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: clamp(22px, 1.8vw, 32px); text-transform: uppercase; letter-spacing: .04em; line-height: 1.186; margin: 0; }
.kanwa-job__tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.kanwa-job__tab { box-sizing: border-box; border: 1px solid var(--wp--preset--color--primary); background: transparent; border-radius: 6px; padding: 4px 12px; font-family: "Lexend Deca", sans-serif; font-size: 14px; color: var(--wp--preset--color--secondary); cursor: pointer; transition: background .2s, color .2s; }
.kanwa-job__tab.is-active { background: linear-gradient(90deg, #0297f1, #0079c2); color: #fff; border-color: transparent; }
.kanwa-job__panels { flex: 1 1 auto; }
.kanwa-job__panel { display: none; font-size: 14px; line-height: 22px; color: var(--wp--preset--color--secondary); }
.kanwa-job__panel.is-active { display: block; }
.kanwa-job__panel p { margin: 0 0 10px; }
.kanwa-job__panel ul { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; }
.kanwa-job__btn { align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 32px; background: var(--wp--preset--color--primary); color: #fff; border-radius: 6px; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .02em; text-decoration: none; transition: filter .2s; }
.kanwa-job__btn:hover { filter: brightness(1.06); color: #fff; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
	.kanwa-product-card { flex-basis: calc((100% - 20px) / 2); max-width: none; }
	.kanwa-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.kanwa-jobs-grid { grid-template-columns: 1fr; }
	/* 7 pozycji nawigacji nie mieści się w jednym rzędzie poniżej ~1200px → hamburger */
	.kanwa-nav, .kanwa-header__top { display: none; }
	/* pusty prawy blok nie może rozpychać nagłówka mobilnego */
	.kanwa-header__right { display: none; }
	.kanwa-header__mobile { display: flex; flex-wrap: nowrap; gap: 4px; }
	.kanwa-header__mobile .kanwa-iconbtn { width: 42px; height: 42px; }
	.kanwa-header__inner { padding: 10px clamp(16px, 4vw, 40px); }
	/* logo w nagłówku mniejsze na mobile (Figma: ~26px) */
	.kanwa-logo svg, .kanwa-logo img { height: 30px; }
}
@media (max-width: 1024px) {
	.kanwa-header__inner { padding: 10px clamp(16px, 4vw, 40px); }
	/* HERO na mobile — wyśrodkowany (jak w Figmie): tytuł, tekst, przyciski, box */
	.kanwa-hero__inner { height: auto; padding: 44px clamp(16px,4vw,40px) 48px; text-align: center; }
	.kanwa-hero__text { position: static; width: auto; max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; padding: 0; }
	/* nagłówek hero na mobile 1:1 z Figmy: ~28px, SemiBold + ExtraBold, większy tracking */
	.kanwa-hero-title { font-size: clamp(24px, 7vw, 30px); font-weight: 600; letter-spacing: 0.04em; line-height: 1.19; }
	.kanwa-hero-title strong { font-weight: 800; }
	.kanwa-hero-lead { margin-left: auto; margin-right: auto; }
	/* przyciski pełnej szerokości, wyśrodkowane */
	.kanwa-hero .wp-block-buttons.kanwa-hero-buttons { align-items: stretch; width: 100%; max-width: 340px; margin-left: auto; margin-right: auto; }
	.kanwa-hero-buttons .wp-block-button, .kanwa-hero-buttons .wp-block-button:first-child { width: 100%; }
	.kanwa-hero-buttons .wp-block-button__link { width: 100%; }
	/* strzałka „Dowiedz się więcej” — na mobile pominięta (jak w Figmie) */
	.kanwa-arrow-link { display: none; }
	.kanwa-hero-badge { position: static; top: auto; bottom: auto; width: auto; max-width: 496px; margin: 32px auto 0; text-align: center; }
	/* CTA na mobile — treść wyśrodkowana, rury jako pas na dole, biały ring w rogu (jak w Figmie) */
	.kanwa-cta { text-align: center; padding-bottom: 200px; }
	.kanwa-cta__inner { max-width: none; margin: 0 auto; }
	.kanwa-cta .wp-block-buttons { justify-content: center; }
	.kanwa-cta::after { position: absolute; inset: auto 0 0 0; width: 100%; height: 200px; margin: 0; display: block; background: url("../images/cta-pipes.png") center bottom / cover no-repeat; z-index: 1; }
	.kanwa-cta::before { display: block; width: 560px; height: 560px; border-width: 60px; left: 50%; top: auto; bottom: 40px; transform: translateX(calc(-50% - 40px)); }
	/* gradient hero na mobile idzie z GÓRY na dół (wartości z Figmy: 165.6deg) */
	.kanwa-hero::after { background: linear-gradient(165.6deg, #ffffff 15%, rgba(255,255,255,0.72) 45%, rgba(255,255,255,0) 100%); }
	/* koła tła na mobile — jak w Figmie tylko za sekcjami intro i „dlaczego”,
	   wyśrodkowane poziomo; produkty na mobile bez koła */
	.kanwa-intro::before, .kanwa-why::before, .kanwa-offer-feature::before { width: 723px; height: 723px; left: 50%; right: auto; top: 50%; transform: translate(-50%, -50%); background: #EDF5F9; }
	.kanwa-products::before { display: none; }
	/* Kontakt: formularz i zdjęcie jeden pod drugim */
	.kanwa-contact-page__inner { flex-direction: column; }
	.kanwa-contact-photo { flex: 1 1 auto; min-height: 280px; max-height: 420px; }
	.kanwa-contact-map iframe { height: 320px; }
}
/* Gdy kolumny WordPressa układają się w pion (≤781px) — treść sekcji wyśrodkowana
   jak w Figmie (tytuły, opisy, eyebrow, przyciski). Karty i cechy zostają lewe. */
@media (max-width: 781px) {
	.kanwa-2col .wp-block-column { text-align: center; }
	.kanwa-2col .kanwa-card, .kanwa-2col .kanwa-feature { text-align: left; }
	.kanwa-2col .kanwa-eyebrow-bold { text-align: center; }
	.kanwa-inline-buttons.wp-block-buttons,
	.kanwa-contact-cta,
	.kanwa-contact-cta .wp-block-buttons { justify-content: center; }
	/* obrazy w sekcjach 2-kolumnowych nie na całą wysokość — kadr jak w Figmie */
	.kanwa-intro .kanwa-media-round img,
	.kanwa-why .kanwa-media-round img,
	.kanwa-contact .kanwa-media-round img { aspect-ratio: 328 / 158; }
}
@media (max-width: 640px) {
	.kanwa-product-card { flex-basis: 100%; min-height: auto; }
	.kanwa-cat-grid { grid-template-columns: 1fr; }
	.kanwa-cat-card__foot { flex-direction: column; align-items: stretch; }
	.kanwa-cat-btn { width: 100%; }
	/* Kariera: karta oferty stackowana (zdjęcie u góry, treść pod) */
	.kanwa-job { flex-direction: column; }
	.kanwa-job__photo { flex: 0 0 auto; height: 200px; align-self: auto; }
	.kanwa-job__body { border-left: 0; border-top: 1px solid #e5e5e5; padding: 20px 0 0; }
	.kanwa-job__btn { align-self: stretch; }
	/* Kontakt: pola w jednej kolumnie, zgoda i przycisk pełnej szerokości */
	.kanwa-form__row, .kanwa-form__row--msg { flex-direction: column; }
	.kanwa-form__consent { flex-direction: column; align-items: stretch; }
	/* bez tego flex:1 1 360px w kolumnie robił z checkboxa 360px wysokości (duża luka) */
	.kanwa-checkbox { flex: 0 0 auto; }
	.kanwa-form__submit { width: 100%; }
	/* tytuły i dane bezpośrednie wyśrodkowane (jak w Figmie mobile) */
	.kanwa-contact-form__title { text-align: center; }
	.kanwa-contact-direct { align-items: center; }
	.kanwa-contact-direct__row { gap: 16px; flex-direction: column; align-items: center; }
	.kanwa-contact-direct__item { justify-content: center; }
	.kanwa-contact-courier { gap: 10px; flex-direction: column; text-align: center; }
	.kanwa-contact-form-wrap { padding: 24px; }
	.kanwa-hero-badge { padding: 20px; }
	.kanwa-footer__top, .kanwa-footer__cols { justify-content: center; text-align: center; }
	.kanwa-footer__contact { align-items: center; }
	/* linki stopki pionowo, jeden pod drugim (jak w Figmie mobile) */
	.kanwa-footer__links { flex-direction: column; gap: 18px; }
	/* stopka „wykonanie/prawne” — wyśrodkowane jako kolumna na mobile */
	.kanwa-footer__made { flex-direction: column; justify-content: center; text-align: center; }
	.kanwa-footer__legal { justify-content: center; }
	/* adres i fax wyśrodkowane jako blok */
	.kanwa-icon-inline { justify-content: center; }
	.kanwa-footer__logo { margin-left: 0; max-width: 100%; }
	/* logo w stopce — pełna szerokość jak w Figmie (SVG ~560px rozpychał stronę → ograniczamy) */
	.kanwa-footer__logo { width: 100%; }
	.kanwa-footer__logo svg { height: auto; width: 100%; max-width: 360px; }
	/* marquee w kolumnie musi się rozciągać do szerokości ekranu, nie do treści */
	.kanwa-partners { flex-direction: column; align-items: stretch; gap: 16px; }
	.kanwa-marquee { width: 100%; max-width: 100%; align-self: stretch; }
	.kanwa-partners__title { white-space: normal; text-align: center; }
	.kanwa-contact-cta { gap: 20px; justify-content: center; }
	.kanwa-contact-cta .wp-block-buttons { width: 100%; }
	.kanwa-contact-cta .wp-block-button, .kanwa-contact-cta .wp-block-button__link { width: 100%; }
}
