/* ISOtherm — style uzupełniające theme.json */

:root {
	--iso-ink: var(--wp--preset--color--ink);
	--iso-line: var(--wp--preset--color--line);
	--iso-line-dark: rgba(255, 255, 255, 0.14);
	--iso-muted: var(--wp--preset--color--muted);
	--iso-muted-dark: var(--wp--preset--color--muted-dark);
	--iso-accent: var(--wp--preset--color--accent);
	--iso-accent-ink: var(--wp--preset--color--accent-ink);
	--iso-mono: var(--wp--preset--font-family--mono);
}

body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, .wp-block-heading { font-stretch: 118%; text-wrap: balance; }
p { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--iso-accent); outline-offset: 3px; }
img { max-width: 100%; height: auto; }

/* ---------- Sekcje ---------- */

.is-sections { margin-block: 0; }
.is-sections > *,
.is-sections .wp-block-post-content > .alignfull { margin-block: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0; }

.is-section { padding-block: var(--wp--preset--spacing--60); }
.is-section > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.is-paper { background: var(--wp--preset--color--paper); }
.is-white { background: var(--wp--preset--color--white); }
.is-bordered-top { border-top: 1px solid var(--iso-line); }

.is-dark { background: var(--iso-ink); color: #fff; }
.is-dark a:where(:not(.wp-element-button)) { color: #fff; }
.is-dark a:where(:not(.wp-element-button)):hover { color: #C9D2DA; }
.is-grid-lines {
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 64px 64px;
}

/* ---------- Typografia pomocnicza ---------- */

.is-eyebrow,
.is-code,
.is-num {
	font-family: var(--iso-mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--iso-accent-ink);
	margin: 0;
}
.is-dark .is-eyebrow, .is-dark .is-num { color: var(--iso-accent); }
.is-code { font-weight: 500; }
.is-code-lg { font-size: var(--wp--preset--font-size--s); }

.is-lead { font-size: var(--wp--preset--font-size--l); color: var(--iso-muted); max-width: 38em; }
.is-dark .is-lead { color: #C9D2DA; }
.is-muted { color: var(--iso-muted); font-size: var(--wp--preset--font-size--s); }
.is-dark .is-muted { color: var(--iso-muted-dark); }

.is-head-copy > * + * { margin-block-start: 1rem; }
.is-head-copy h2 { max-width: 20em; }
.is-section-head { gap: 1.5rem 3rem; }
.is-section-head.is-split { align-items: end; }
.is-head-link a { font-weight: 600; display: inline-flex; min-height: 44px; align-items: center; }

/* ---------- Przyciski ---------- */

.wp-element-button { transition: background-color .15s ease, color .15s ease, border-color .15s ease; display: inline-flex; align-items: center; min-height: 48px; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--iso-ink); border: 1px solid var(--iso-ink); padding-block: calc(.9rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--iso-ink); color: #fff; }
.is-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.4); }
.is-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--iso-ink); border-color: #fff; }
.wp-block-button.is-style-dark > .wp-block-button__link { background: var(--iso-ink); color: #fff; }
.wp-block-button.is-style-dark > .wp-block-button__link:hover { background: #24313F; color: #fff; }

/* ---------- Nagłówek ---------- */

.site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.site-topbar { background: var(--wp--preset--color--ink-2); color: var(--iso-muted-dark); font-size: var(--wp--preset--font-size--xs); padding-block: .55rem; }
.site-topbar .is-eyebrow { color: var(--iso-muted-dark); font-size: .6875rem; }
.site-topbar p { margin: 0; }
.site-topbar-links { display: flex; gap: 1.5rem; }
.site-topbar-links a { color: #fff; }
.site-topbar-links a:hover { color: #C9D2DA; }

.site-header-main { background: var(--iso-ink); border-bottom: 1px solid rgba(255,255,255,.08); padding-block: 1rem; }
.site-header-row { gap: 2rem; }
.site-logo img { width: 150px; height: auto; display: block; }
.site-nav { flex: 1; }
.site-nav .wp-block-navigation__container { gap: .25rem 1.75rem; }
.site-nav { color: #C9D2DA; }
.site-nav .wp-block-navigation-item__content { padding-block: .75rem; }
.site-nav .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-item__content.wp-block-navigation-item__content:focus-visible,
.site-nav .wp-block-navigation-item__content.wp-block-navigation-item__content[aria-current] { color: #fff; }
.site-nav .wp-block-navigation__submenu-container {
	background: var(--iso-ink) !important; border: 1px solid rgba(255,255,255,.12) !important; padding: .5rem 0; min-width: 18rem !important;
}
/* Podmenu: WordPress bez trybu „overlay” ustawia czarny tekst — wymuszamy kolory motywu. */
.site-nav .wp-block-navigation__submenu-container { color: #C9D2DA !important; }
/* Podmenu otwiera się pod pozycją (od jej lewej krawędzi), a nie w lewo. */
.site-nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container { left: 0 !important; right: auto !important; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1.25rem; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.06); }
.site-nav .wp-block-navigation__responsive-container-open { color: #fff; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { color: #fff; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; padding-left: 1rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { color: #C9D2DA; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; }
.site-header-cta .wp-element-button { padding-block: .7rem; min-height: 44px; font-size: var(--wp--preset--font-size--s); }

/* ---------- Menu mobilne ---------- */

.iso-burger { display: none; }
.iso-mnav { display: none; }

@media (max-width: 1099px) {
	.site-topbar .is-eyebrow { display: none; }
	.site-header-row { gap: .75rem; }
	.site-header-row > .site-nav { display: none; }
	.site-header-row > .site-header-cta { margin-left: auto; }

	/* Hamburger → X */
	.iso-burger {
		display: grid; place-content: center; gap: 6px; width: 48px; height: 48px; margin-right: -10px; padding: 0;
		background: transparent; border: 0; cursor: pointer; position: relative; z-index: 120;
	}
	.iso-burger span { display: block; width: 26px; height: 2px; background: #fff; border-radius: 1px; transition: transform .45s var(--iso-ease, ease), opacity .25s ease, width .35s var(--iso-ease, ease); transform-origin: center; }
	.iso-burger span:nth-child(2) { width: 18px; justify-self: end; }
	.iso-burger:hover span:nth-child(2) { width: 26px; }
	.iso-menu-open .iso-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
	.iso-menu-open .iso-burger span:nth-child(2) { opacity: 0; transform: translateX(10px); }
	.iso-menu-open .iso-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

	/* Panel: rozlewa się kołem od hamburgera. */
	.iso-mnav {
		display: block; position: fixed; inset: 0; z-index: 110; overflow-y: auto; overscroll-behavior: contain;
		background-color: var(--iso-ink); color: #fff;
		background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
		background-size: 64px 64px;
		clip-path: circle(0 at var(--iso-mx, calc(100% - 40px)) var(--iso-my, 40px));
		visibility: hidden;
		transition: clip-path .7s cubic-bezier(.7, 0, .2, 1), visibility 0s linear .7s;
	}
	.iso-menu-open .iso-mnav { clip-path: circle(150vmax at var(--iso-mx, calc(100% - 40px)) var(--iso-my, 40px)); visibility: visible; transition: clip-path .8s cubic-bezier(.7, 0, .2, 1), visibility 0s; }
	.iso-menu-open { overflow: hidden; }
	.iso-menu-open .site-header { z-index: 115; }
	.iso-menu-open .site-topbar { max-height: 0; padding-block: 0; opacity: 0; }
	.iso-menu-open .site-header-main { box-shadow: none; }
	.iso-menu-open .site-header-cta { opacity: 0; pointer-events: none; }

	.iso-mnav-inner { min-height: 100%; display: flex; flex-direction: column; padding: 7rem clamp(1rem, 6vw, 3rem) 2.5rem; box-sizing: border-box; max-width: 720px; }
	.iso-mnav-list { list-style: none; margin: 0; padding: 0; }
	.iso-mnav-item { border-bottom: 1px solid rgba(255,255,255,.1); opacity: 0; transform: translateY(24px); transition: opacity .5s ease, transform .6s var(--iso-ease, ease); }
	.iso-menu-open .iso-mnav-item { opacity: 1; transform: none; transition-delay: calc(.25s + var(--i) * .06s); }
	.iso-mnav-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
	.iso-mnav-link {
		display: block; padding: 1rem 0; color: #fff; text-decoration: none;
		font-family: var(--wp--preset--font-family--display); font-stretch: 118%; font-weight: 700; letter-spacing: -.02em;
		font-size: clamp(1.75rem, 7vw, 2.5rem); line-height: 1.1; transition: color .2s ease, transform .3s var(--iso-ease, ease);
	}
	.iso-mnav-link:hover, .iso-mnav-link:focus-visible { color: var(--iso-accent); transform: translateX(6px); }
	.iso-mnav-link[aria-current] { color: var(--iso-accent); }
	.iso-mnav-toggle {
		flex-shrink: 0; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; cursor: pointer;
		background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; transition: transform .4s var(--iso-ease, ease), background-color .2s ease, border-color .2s ease;
	}
	.iso-mnav-toggle:hover { border-color: var(--iso-accent); }
	.iso-mnav-toggle[aria-expanded="true"] { transform: rotate(45deg); background: var(--iso-accent); border-color: var(--iso-accent); color: var(--iso-ink); }

	/* Podmenu: płynne rozwijanie (grid 0fr → 1fr). */
	.iso-mnav-sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--iso-ease, ease); }
	.iso-mnav-toggle[aria-expanded="true"] ~ *, .iso-mnav-row:has(.iso-mnav-toggle[aria-expanded="true"]) + .iso-mnav-sub { grid-template-rows: 1fr; }
	.iso-mnav-sub > ul { overflow: hidden; list-style: none; margin: 0; padding: 0; }
	.iso-mnav-sub li:last-child { padding-bottom: 1rem; }
	.iso-mnav-sub a { display: flex; align-items: baseline; gap: 1rem; padding: .55rem 0; color: #C9D2DA; text-decoration: none; font-size: 1.0625rem; transition: color .2s ease, transform .3s var(--iso-ease, ease); }
	.iso-mnav-sub a:hover, .iso-mnav-sub a:focus-visible, .iso-mnav-sub a[aria-current] { color: #fff; transform: translateX(6px); }
	.iso-mnav-code { font-family: var(--iso-mono); font-size: .75rem; letter-spacing: .06em; color: var(--iso-accent); min-width: 3.75rem; }

	.iso-mnav-foot { margin-top: auto; padding-top: 2.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .6s var(--iso-ease, ease); }
	.iso-menu-open .iso-mnav-foot { opacity: 1; transform: none; transition-delay: .65s; }
	.iso-mnav-cta { margin-bottom: 1rem; min-height: 52px; padding-inline: 1.75rem; text-decoration: none; }
	.iso-mnav-contact { color: #fff; text-decoration: none; font-size: 1.125rem; font-weight: 600; min-height: 40px; display: inline-flex; align-items: center; }
	.iso-mnav-contact:hover { color: var(--iso-accent); }
}

@media (max-width: 600px) {
	.site-header-row > .site-header-cta.wp-block-buttons { display: none; }
}

/* ---------- Hero ---------- */

.is-hero { padding-block: clamp(3.5rem, 8vw, 6rem) clamp(3rem, 6vw, 4.5rem); }
.is-hero-grid { align-items: center; }
.is-hero-copy > * + * { margin-block-start: 1.75rem; }
.is-hero-copy h1 { margin-block-start: 1.25rem; }
.is-hero-image { margin: 0; }
.is-hero-image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; display: block; }
.is-page-hero .is-hero-image img { aspect-ratio: 4 / 3; }

.is-strip { position: relative; row-gap: 0 !important; }
.is-strip::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: var(--iso-line-dark); transform-origin: left; }
.is-strip-item { padding-block-start: 1.5rem; }
.is-strip-item > * { margin: 0; }
.is-strip-item > * + * { margin-block-start: .35rem; }
.is-strip-title { font-weight: 600; font-size: 1.0625rem; }

.is-page-hero { padding-block: clamp(3rem, 7vw, 5rem); }
.is-page-hero-copy > * + * { margin-block-start: 1.25rem; }
.is-page-hero h1 { max-width: 16em; }
/* Tytuł bez grupy (szablon zwykłej strony) — pełna szerokość kontenera, żeby nie był centrowany. */
.is-page-hero > h1 { max-width: var(--wp--style--global--content-size); }

.is-breadcrumb { font-size: var(--wp--preset--font-size--s); color: var(--iso-muted); margin: 0; }
.is-dark .is-breadcrumb { color: var(--iso-muted-dark); }
.is-dark .is-breadcrumb a { color: var(--iso-muted-dark); }
.is-breadcrumb .is-sep { margin-inline: .35rem; opacity: .6; }
.is-breadcrumb [aria-current] { color: inherit; font-weight: 500; }

/* ---------- Karty ---------- */

.is-card {
	position: relative; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--iso-line); transition: border-color .2s ease, transform .2s ease;
}
.is-card:hover { border-color: var(--iso-ink); }
.is-card > * { margin: 0; }
.is-card-body { padding: 1.5rem 1.75rem 1.75rem; flex: 1; }
.is-card-body > * { margin: 0; }
.is-card-body > * + * { margin-block-start: .6rem; }
.is-card-title { font-size: 1.375rem; }
.is-card-title a { color: inherit; }
.is-card-title a::after { content: ""; position: absolute; inset: 0; }
.is-card-media { margin: 0; aspect-ratio: 16 / 10; padding: 1.25rem; border-bottom: 1px solid #ECEEE9; background: #fff; box-sizing: border-box; overflow: hidden; }
.is-card-media img, .is-tile-media img, .is-product-image img { width: 100%; height: 100%; object-fit: contain; display: block; }

.is-card-dark { background: var(--wp--preset--color--ink-3); border-color: rgba(255,255,255,.12); color: #fff; }
.is-card-dark:hover { border-color: rgba(255,255,255,.45); }
.is-card-dark .is-card-title { font-size: 1.625rem; }
.is-cover-media { margin: 0; }
.is-cover-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; transition: transform .5s ease; }
.is-card-dark { overflow: hidden; }
.is-card-dark:hover .is-cover-media img { transform: scale(1.03); }
.is-more { font-weight: 600; font-size: var(--wp--preset--font-size--s); padding-top: .4rem; }
.is-dark .is-more { color: #fff; }

.is-mini-card { padding: 1.5rem; }
.is-mini-card > * + * { margin-block-start: .5rem; }
.is-mini-card .is-card-title { font-size: 1.25rem; }

/* ---------- Proces ---------- */

.is-steps { position: relative; }
.is-steps::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--iso-ink); transform-origin: left; }
.is-step { padding-block-start: 1.75rem; }
.is-step > * { margin: 0; }
.is-step > * + * { margin-block-start: .75rem; }
.is-step-num { font-family: var(--wp--preset--font-family--display); font-size: 2.75rem; font-weight: 300; line-height: 1; color: var(--iso-accent-ink); }
.is-step-title { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.1875rem; font-weight: 600; letter-spacing: 0; }

/* ---------- Dlaczego ---------- */

.is-why { align-items: start; }
.is-why-copy > * + * { margin-block-start: 1.5rem; }
@media (min-width: 900px) { .is-why-copy { position: sticky; top: 9rem; } }
.is-why-list > * { margin: 0; }
.is-why-item { display: grid; grid-template-columns: 3.5rem 1fr; column-gap: 1.25rem; padding-block: 2rem; border-top: 1px solid #C9CEC4; }
.is-why-item:last-child { border-bottom: 1px solid #C9CEC4; }
.is-why-item > * { margin: 0; grid-column: 2; }
.is-why-item > .is-icon { grid-column: 1; grid-row: 1 / span 2; color: var(--iso-accent-ink); width: 32px; height: 32px; }
.is-why-item > * + * { margin-block-start: .5rem; }
.is-why-item > .is-icon + * { margin-block-start: 0; }
.is-why-title { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.25rem; font-weight: 600; letter-spacing: 0; }

/* ---------- Kafelki realizacji ---------- */

.is-tile > * { margin: 0; }
.is-tile > * + * { margin-block-start: .25rem; }
.is-tile-media { margin: 0 0 .9rem !important; aspect-ratio: 1; background: var(--wp--preset--color--paper); padding: 1rem; box-sizing: border-box; overflow: hidden; }
.is-paper .is-tile-media { background: #fff; }
.is-tile-media img { mix-blend-mode: multiply; }
.is-tile-title { font-weight: 600; }

/* ---------- Kontakt i formularz ---------- */

.is-contact { align-items: start; }
.is-contact-copy > * + * { margin-block-start: 1.5rem; }
.is-contact-list { list-style: none; margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--iso-line-dark); }
.is-contact-list a, .is-contact-list span { display: inline-flex; align-items: center; gap: .75rem; min-height: 48px; font-size: 1.125rem; font-weight: 600; }
.is-contact-list span { font-weight: 400; color: #C9D2DA; font-size: 1rem; }
.is-contact-list .is-icon { width: 20px; height: 20px; flex-shrink: 0; }

.is-form-card { background: #fff; color: var(--iso-ink); padding: clamp(1.5rem, 4vw, 2.25rem); }
.is-form-card a { color: var(--iso-accent-ink) !important; }
.is-rfq { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1.25rem; }
.is-rfq label { display: flex; flex-direction: column; gap: .4rem; font-size: var(--wp--preset--font-size--s); font-weight: 600; }
.is-rfq .is-full { grid-column: 1 / -1; }
.is-rfq .is-req { color: #B42318; }
.is-rfq input[type=text], .is-rfq input[type=email], .is-rfq input[type=tel], .is-rfq select, .is-rfq textarea {
	font: inherit; font-weight: 400; color: var(--iso-ink); min-height: 48px; padding: .6rem .85rem;
	border: 1px solid #B9C0B5; border-radius: 0; background: #fff; width: 100%; box-sizing: border-box;
}
.is-rfq textarea { resize: vertical; }
.is-rfq input:focus, .is-rfq select:focus, .is-rfq textarea:focus { outline: 2px solid var(--iso-accent-ink); outline-offset: 0; border-color: var(--iso-accent-ink); }
.is-rfq .is-file { position: relative; flex-direction: row; align-items: center; gap: 1rem; padding: 1.1rem; border: 1px dashed #8D978A; background: var(--wp--preset--color--paper); cursor: pointer; font-weight: 400; }
.is-rfq .is-file::before {
	content: ""; width: 24px; height: 24px; flex-shrink: 0; background: var(--iso-accent-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4'/%3E%3Cpath d='M7 9l5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4'/%3E%3Cpath d='M7 9l5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.is-rfq .is-file:hover { border-color: var(--iso-ink); }
.is-rfq .is-file:focus-within { outline: 2px solid var(--iso-accent-ink); }
.is-rfq .is-file-label { display: flex; flex-direction: column; }
.is-rfq .is-file-label span { color: var(--iso-muted); }
.is-rfq .is-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.is-rfq .is-consent { flex-direction: row; align-items: flex-start; gap: .75rem; font-weight: 400; font-size: var(--wp--preset--font-size--xs); color: var(--iso-muted); }
.is-rfq .is-consent input { width: 20px; height: 20px; margin: 0; flex-shrink: 0; accent-color: var(--iso-accent-ink); }
.is-rfq button { justify-content: center; min-height: 56px; border: 0; cursor: pointer; background: var(--iso-ink); color: #fff; font-size: 1rem; }
.is-rfq button:hover { background: #24313F; color: #fff; }
.is-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.is-form-notice { padding: 1rem 1.25rem; margin-bottom: 1.25rem; font-size: var(--wp--preset--font-size--s); }
.is-form-notice.is-success { background: #E3F5F1; border-left: 4px solid var(--iso-accent-ink); }
.is-form-notice.is-error { background: #FBEAEA; border-left: 4px solid #B42318; }

.is-advisor { border: 1px solid var(--iso-line); padding: 1.5rem; }
.is-advisor > * { margin: 0; }
.is-advisor > * + * { margin-block-start: .4rem; }
.is-advisor-name { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.1875rem; font-weight: 600; letter-spacing: 0; }
.is-advisor-contact { line-height: 2; }

/* ---------- CTA ---------- */

.is-cta-band { padding-block: clamp(3.5rem, 7vw, 5rem); }
.is-cta { gap: 2rem; align-items: center; }
.is-cta h2 { max-width: 16em; }

/* ---------- Karta materiału ---------- */

.is-tabs-bar { padding-block: 0 !important; border-bottom: 1px solid var(--iso-line); }
.is-tabs { display: flex; gap: .25rem; overflow-x: auto; margin: 0; scrollbar-width: none; }
.is-tabs a { font-family: var(--iso-mono); font-size: .8125rem; color: var(--iso-muted); padding: 1rem 1.1rem; border-bottom: 2px solid transparent; white-space: nowrap; }
.is-tabs a:hover { color: var(--iso-ink); }
.is-tabs a.is-active { color: var(--iso-ink); border-bottom-color: var(--iso-ink); font-weight: 500; }

.is-product { padding-block-start: 2.5rem; }
.is-product-hero { align-items: center; }
.is-product-image { margin: 0; background: var(--wp--preset--color--paper); aspect-ratio: 6 / 5; padding: 2.5rem; box-sizing: border-box; overflow: hidden; }
.is-product-image img { mix-blend-mode: multiply; }
.is-product-copy > * { margin: 0; }
.is-product-copy > * + * { margin-block-start: 1.5rem; }
.is-product-copy .is-breadcrumb + * { margin-block-start: 2rem; }

.is-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.is-chips li { padding: .35rem .75rem; border: 1px solid #C9CEC4; font-size: var(--wp--preset--font-size--s); }

.is-split { align-items: start; }
.is-col > * + * { margin-block-start: 1.25rem; }
.is-col h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); }

.is-checklist { list-style: none; padding: 0; margin: 0; }
.is-checklist li { position: relative; padding: .7rem 0 .7rem 2rem; border-bottom: 1px solid #E1E4DE; }
.is-checklist li::before {
	content: ""; position: absolute; left: 0; top: 1rem; width: 16px; height: 16px; background: var(--iso-accent-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.is-spec { margin: 0; background: #fff; border: 1px solid var(--iso-line); padding: .5rem 1.75rem; }
/* Odstęp od nagłówka nad tabelą i opisu pod nią (margin: 0 powyżej nadpisywał odstęp kolumny). */
.is-col > .is-spec { margin-block: 1.75rem 1.25rem; }
.is-col > .is-checklist { margin-block-start: 1.75rem; border-top: 1px solid #E1E4DE; }
.is-spec table { border-collapse: collapse; width: 100%; }
.is-spec th, .is-spec td { border: 0; border-bottom: 1px solid #E1E4DE; padding: 1rem 0; text-align: left; vertical-align: top; }
.is-spec tr:last-child th, .is-spec tr:last-child td { border-bottom: 0; }
.is-spec th { font-family: var(--iso-mono); font-size: .75rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--iso-muted); width: 38%; padding-right: 1rem; }
.is-spec td { font-weight: 500; }

/* ---------- Usługa ---------- */

.is-prose > * + * { margin-block-start: 1.25rem; }
.is-list-cards > * + * { margin-block-start: 1.5rem; }
.is-list-card { background: var(--wp--preset--color--paper); padding: 1.75rem; }
.is-list-card > * { margin: 0; }
.is-list-card > * + * { margin-block-start: .75rem; }
.is-list-title { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.125rem; font-weight: 600; letter-spacing: 0; }

/* Panele „Możliwości” (np. głowice CNC). */
.is-panel { background: #fff; border: 1px solid var(--iso-line); display: flex; flex-direction: column; overflow: hidden; }
.is-panel > * { margin: 0; }
.is-panel-media { margin: 0; overflow: hidden; }
.is-panel-media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform .8s var(--iso-ease, ease); }
.is-panel:hover .is-panel-media img { transform: scale(1.03); }
.is-panel-body { padding: clamp(1.5rem, 3vw, 2.25rem); }
.is-panel-body > * { margin: 0; }
.is-panel-body > * + * { margin-block-start: .75rem; }
.is-panel-title { font-size: 1.625rem; }
.is-matlist { list-style: none; padding: 0; margin-block-start: 1.5rem !important; columns: 2 14rem; column-gap: 2rem; border-top: 1px solid var(--iso-line); }
.is-panel-wide .is-matlist { columns: 3 14rem; }
.is-matlist li { break-inside: avoid; position: relative; padding: .7rem 0 .7rem 1.25rem; border-bottom: 1px solid #ECEEE9; font-size: var(--wp--preset--font-size--s); }
.is-matlist li::before { content: ""; position: absolute; left: 0; top: 1.2rem; width: .5rem; height: 2px; background: var(--iso-accent-ink); }

/* Schemat etapów (co-packing). */
.is-flow { position: relative; row-gap: 2.5rem !important; }
.is-flow-step { position: relative; }
.is-flow-step > * { margin: 0; }
.is-flow-step > * + * { margin-block-start: .6rem; }
.is-flow-step .is-num { margin-block-start: 1.5rem; }
.is-flow-icon { position: relative; z-index: 1; width: 4.5rem; height: 4.5rem; display: grid; place-items: center; background: #fff; border: 1px solid var(--iso-line); color: var(--iso-accent-ink); transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.is-flow-icon .is-icon { width: 34px; height: 34px; }
.is-flow-step:hover .is-flow-icon { background: var(--iso-ink); border-color: var(--iso-ink); color: var(--iso-accent); }
.is-flow-title { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.125rem; font-weight: 600; letter-spacing: 0; }
/* Linia łącząca ikony — tylko gdy kroki stoją w jednym rzędzie. */
@media (min-width: 1100px) {
	.is-flow-step:not(:last-child)::after {
		content: ""; position: absolute; top: 2.25rem; left: 4.5rem; right: calc(-1 * var(--wp--style--block-gap, 1.5rem));
		height: 1px; background: repeating-linear-gradient(90deg, var(--iso-accent-ink) 0 6px, transparent 6px 12px); opacity: .55;
	}
}

/* ---------- Stopka ---------- */

.site-footer { background: var(--wp--preset--color--ink-2); color: var(--iso-muted-dark); padding-block: 4.5rem 2rem; font-size: var(--wp--preset--font-size--s); }
.site-footer a { color: var(--iso-muted-dark); }
.site-footer a:hover { color: #fff; }
.site-footer .is-eyebrow { color: #fff; margin-bottom: .75rem; }
.site-footer-cols p { margin: 0; }
.site-footer-brand > * + * { margin-block-start: 1rem !important; }
.site-footer-brand .wp-block-site-logo img { width: 135px; height: auto; }
.site-footer-links { display: flex; flex-direction: column; gap: .5rem; }
.site-footer-bottom { margin-block-start: 3.5rem !important; padding-block-start: 1.5rem; border-top: 1px solid rgba(255,255,255,.1); font-size: var(--wp--preset--font-size--xs); }
.site-footer-bottom p { margin: 0; }

/* ---------- Strona tekstowa ---------- */

.is-white .wp-block-post-content h2 { font-size: 2rem; margin-block-start: 2.5rem; }
.is-white .wp-block-post-content h3 { font-size: 1.375rem; margin-block-start: 1.75rem; }
.wp-block-post-content > .is-lead { margin-inline: 0 !important; }

/* ---------- Animacje ---------- */

:root { --iso-ease: cubic-bezier(.22, .61, .36, 1); }

/* Odsłanianie przy przewijaniu (klasy dodaje site.js; bez JS wszystko jest widoczne). */
.iso-anim .iso-reveal {
	opacity: 0; transform: translateY(24px);
	transition: opacity .8s var(--iso-ease), transform .8s var(--iso-ease);
	transition-delay: var(--iso-delay, 0ms);
}
.iso-anim .iso-reveal.is-in,
.iso-anim-done .iso-reveal { opacity: 1; transform: none; }
.iso-anim .is-steps.iso-reveal, .iso-anim .is-strip.iso-reveal { opacity: 1; transform: none; }

/* Linie procesu i paska usług rysują się od lewej. */
.iso-anim .is-steps::before, .iso-anim .is-strip::before { transform: scaleX(0); transition: transform 1.2s var(--iso-ease) .1s; }
.iso-anim .is-steps.is-in::before, .iso-anim .is-strip.is-in::before,
.iso-anim-done .is-steps::before, .iso-anim-done .is-strip::before { transform: scaleX(1); }

/* Hero strony głównej — wejście przy załadowaniu. */
.iso-anim .is-hero .is-hero-copy > * { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--iso-ease), transform .9s var(--iso-ease); }
.iso-anim .is-hero .is-hero-copy > :nth-child(2) { transition-delay: .08s; }
.iso-anim .is-hero .is-hero-copy > :nth-child(3) { transition-delay: .18s; }
.iso-anim .is-hero .is-hero-copy > :nth-child(4) { transition-delay: .28s; }
.iso-loaded .is-hero .is-hero-copy > *, .iso-anim-done .is-hero .is-hero-copy > * { opacity: 1; transform: none; }


/* Karty usług (ciemne na ciemnym — samo zanikanie jest słabo widoczne): zdjęcie odsłania się kurtyną i oddala. */
.iso-anim .is-card-dark.iso-reveal { transform: translateY(40px); }
.iso-anim .is-card-dark.iso-reveal .is-cover-media { clip-path: inset(100% 0 0 0); transition: clip-path 1.1s var(--iso-ease); transition-delay: calc(var(--iso-delay, 0ms) + .1s); }
.iso-anim .is-card-dark.iso-reveal .is-cover-media img { transform: scale(1.18); transition: transform 1.6s var(--iso-ease); transition-delay: calc(var(--iso-delay, 0ms) + .1s); }
.iso-anim .is-card-dark.iso-reveal .is-card-body > * { opacity: 0; transform: translateY(12px); transition: opacity .7s var(--iso-ease), transform .7s var(--iso-ease); }
.iso-anim .is-card-dark.iso-reveal .is-card-body > :nth-child(1) { transition-delay: calc(var(--iso-delay, 0ms) + .45s); }
.iso-anim .is-card-dark.iso-reveal .is-card-body > :nth-child(2) { transition-delay: calc(var(--iso-delay, 0ms) + .55s); }
.iso-anim .is-card-dark.iso-reveal .is-card-body > :nth-child(3) { transition-delay: calc(var(--iso-delay, 0ms) + .65s); }
.iso-anim .is-card-dark.is-in .is-cover-media, .iso-anim-done .is-card-dark .is-cover-media { clip-path: inset(0); }
.iso-anim .is-card-dark.is-in .is-cover-media img, .iso-anim-done .is-card-dark .is-cover-media img { transform: none; }
.iso-anim .is-card-dark.is-in .is-card-body > *, .iso-anim-done .is-card-dark .is-card-body > * { opacity: 1; transform: none; }
/* Po odsłonięciu przywróć szybkie przejście dla efektu hover. */
.iso-anim .is-card-dark.is-in:hover .is-cover-media img { transform: scale(1.03); transition-delay: 0s; transition-duration: .5s; }

/* Hero podstron (usługi, produkty, strony informacyjne) — wejście przy załadowaniu. */
.iso-anim .is-page-hero .is-hero-copy > *, .iso-anim .is-page-hero-copy > * { opacity: 0; transform: translateY(16px); transition: opacity .8s var(--iso-ease), transform .8s var(--iso-ease); }
.iso-anim .is-page-hero .is-hero-copy > :nth-child(2), .iso-anim .is-page-hero-copy > :nth-child(2) { transition-delay: .07s; }
.iso-anim .is-page-hero .is-hero-copy > :nth-child(3), .iso-anim .is-page-hero-copy > :nth-child(3) { transition-delay: .14s; }
.iso-anim .is-page-hero .is-hero-copy > :nth-child(4), .iso-anim .is-page-hero-copy > :nth-child(4) { transition-delay: .21s; }
.iso-anim .is-page-hero .is-hero-copy > :nth-child(5) { transition-delay: .28s; }
.iso-loaded .is-page-hero .is-hero-copy > *, .iso-loaded .is-page-hero-copy > *,
.iso-anim-done .is-page-hero .is-hero-copy > *, .iso-anim-done .is-page-hero-copy > * { opacity: 1; transform: none; }

/*
 * Zabezpieczenie: gdy skrypt strony się nie uruchomi, po 3 s <head> dodaje klasę iso-anim-done
 * i cała treść musi być widoczna. !important wygrywa z każdą regułą ukrywającą.
 */
.iso-anim-done .iso-reveal,
.iso-anim-done .iso-reveal .is-card-body > *,
.iso-anim-done .is-hero .is-hero-copy > *,
.iso-anim-done .is-page-hero .is-hero-copy > *,
.iso-anim-done .is-page-hero-copy > * { opacity: 1 !important; transform: none !important; }
.iso-anim-done .is-cover-media,
.iso-anim-done .is-hero-image img { clip-path: none !important; }
.iso-anim-done .is-hero-image::before, .iso-anim-done .is-hero-image::after { opacity: 1 !important; transform: none !important; }
.iso-anim-done .is-steps::before, .iso-anim-done .is-strip::before { transform: none !important; }

/* Zdjęcia w hero: narożniki jak znaczniki kadru na rysunku technicznym (lewy górny, prawy dolny). */
:root { --iso-frame: #C9A86A; --iso-frame-size: clamp(2.5rem, 5vw, 4rem); --iso-frame-gap: clamp(.6rem, 1.4vw, 1rem); }
.is-hero-image { position: relative; overflow: visible; }
.is-hero-image::before, .is-hero-image::after {
	content: ""; position: absolute; width: var(--iso-frame-size); height: var(--iso-frame-size); pointer-events: none;
	border: 0 solid var(--iso-frame);
}
.is-hero-image::before { top: calc(-1 * var(--iso-frame-gap)); left: calc(-1 * var(--iso-frame-gap)); border-top-width: 2px; border-left-width: 2px; }
.is-hero-image::after { bottom: calc(-1 * var(--iso-frame-gap)); right: calc(-1 * var(--iso-frame-gap)); border-bottom-width: 2px; border-right-width: 2px; }

/* Wejście: zdjęcie odsłania się od lewej, narożniki dosuwają się z zewnątrz. */
.iso-anim .is-hero-image img { clip-path: inset(0 100% 0 0); transition: clip-path 1.3s cubic-bezier(.7, 0, .2, 1) .15s; }
.iso-anim .is-hero-image::before { opacity: 0; transform: translate(-14px, -14px); transition: opacity .6s ease .9s, transform .9s var(--iso-ease) .9s; }
.iso-anim .is-hero-image::after { opacity: 0; transform: translate(14px, 14px); transition: opacity .6s ease 1s, transform .9s var(--iso-ease) 1s; }
.iso-loaded .is-hero-image img { clip-path: inset(0); }
.iso-loaded .is-hero-image::before, .iso-loaded .is-hero-image::after { opacity: 1; transform: none; }

/* Nagłówek po przewinięciu: górny pasek się chowa, nagłówek dostaje cień. */
.site-topbar { max-height: 4rem; overflow: hidden; transition: max-height .35s var(--iso-ease), padding .35s var(--iso-ease), opacity .25s ease; }
.is-scrolled .site-topbar { max-height: 0; padding-block: 0; opacity: 0; }
.site-header-main { transition: box-shadow .3s ease, padding .3s var(--iso-ease); }
.is-scrolled .site-header-main { box-shadow: 0 8px 24px rgba(0, 0, 0, .28); padding-block: .7rem; }

/* Hover: karty, zdjęcia, strzałki. */
.is-card { transition: border-color .25s ease, transform .35s var(--iso-ease), box-shadow .35s var(--iso-ease); }
.is-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(14, 22, 32, .35); }
.is-card-dark:hover { box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .6); }
.is-card-media img, .is-tile-media img { transition: transform .6s var(--iso-ease); }
.is-card:hover .is-card-media img, .is-tile:hover .is-tile-media img { transform: scale(1.05); }
.is-head-link a, .is-more { transition: color .2s ease, letter-spacing .3s var(--iso-ease); }
.is-head-link a:hover, .is-card:hover .is-more { letter-spacing: .02em; }
.wp-element-button { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--iso-ease); }
.wp-element-button:active { transform: translateY(1px); }

/* ---------- Ruch ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Nasza firma ---------- */

.is-about-image { margin: 2.5rem 0 0 !important; max-width: 560px; }
.is-about-image img { width: 100%; height: auto; display: block; }

/* ---------- Mapa ---------- */

.is-map { margin: 0; padding: 0 !important; line-height: 0; background: var(--wp--preset--color--line); }
.is-map iframe { display: block; width: 100%; height: clamp(320px, 45vw, 520px); border: 0; filter: grayscale(.35); }
