/*
Theme Name: Idź Do Przodu
Theme URI: https://idzdoprzodu.pl
Author: Aderlo Cloud
Author URI: https://aderlo.cloud
Description: Lekki motyw blokowy dla Jana Pawła Tomaszewskiego — mówcy motywacyjnego, konferansjera i trenera. Zbudowany pod materiał zdjęciowy ze sceny, bez page-buildera, z obsługą WooCommerce.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.4.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: idz-do-przodu
Tags: block-theme, full-site-editing, business, one-column, custom-colors, custom-menu, featured-images, threaded-comments
*/

/* ==========================================================================
   Podstawy
   ========================================================================== */

body { -webkit-font-smoothing: antialiased; }

.idz-eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0;
}

.has-ink-background-color .idz-eyebrow,
.idz-dark .idz-eyebrow { color: var(--wp--preset--color--accent-hi); }

.idz-dark { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--on-dark); }
.idz-dark :where(h1, h2, h3, h4) { color: var(--wp--preset--color--on-dark); }
.idz-dark :where(p) { color: var(--wp--preset--color--on-dark-soft); }

.idz-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--text-soft); }
.idz-dark .idz-lead { color: var(--wp--preset--color--on-dark-soft); }

/* Nagłówek sekcji */
.idz-head { max-width: 66ch; }
.idz-head h2 { margin-bottom: 0; }

/* ==========================================================================
   Pasek nawigacji
   ========================================================================== */

.idz-topbar {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--paper) 90%, transparent);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.idz-topbar .wp-block-site-title a { text-decoration: none; }
.idz-topbar .wp-block-navigation { font-family: var(--wp--preset--font-family--body); }
.idz-topbar .wp-block-navigation a {
	font-size: 14.5px;
	font-weight: 500;
	text-decoration: none;
	color: var(--wp--preset--color--text-soft);
	border-bottom: 2px solid transparent;
	padding-bottom: 3px;
	transition: color .18s, border-color .18s;
}
.idz-topbar .wp-block-navigation a:hover,
.idz-topbar .wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--text);
	border-bottom-color: var(--wp--preset--color--accent);
}

/* ==========================================================================
   Hero
   ========================================================================== */

.idz-hero { position: relative; overflow: hidden; }
.idz-hero.wp-block-cover { min-height: unset; }
.idz-hero .wp-block-cover__background { opacity: 1 !important; }
.idz-hero h1 em { font-style: normal; color: var(--wp--preset--color--accent-hi); }
.idz-hero .idz-hero__note {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13.5px;
	color: var(--wp--preset--color--on-dark-soft);
	border-left: 2px solid var(--wp--preset--color--accent-hi);
	padding-left: 12px;
}

/* ==========================================================================
   Pasek faktów
   ========================================================================== */

.idz-facts { border-bottom: 1px solid var(--wp--preset--color--rule); }
.idz-facts .wp-block-columns { gap: 0; margin-bottom: 0; }

.idz-fact {
	padding: 26px 22px 26px 0;
	border-right: 1px solid var(--wp--preset--color--rule);
}
.idz-fact:last-child { border-right: 0; }
.idz-fact__n {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: clamp(32px, 4.4vw, 44px);
	letter-spacing: -.045em;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: var(--wp--preset--color--text);
	margin: 0;
}
.idz-fact__n small { font-size: .5em; color: var(--wp--preset--color--accent); margin-left: 3px; letter-spacing: 0; }
.idz-fact__l { font-size: 14px; color: var(--wp--preset--color--text-soft); margin-top: 8px; line-height: 1.45; }

@media (max-width: 781px) {
	.idz-fact {
		border-right: 0;
		border-bottom: 1px solid var(--wp--preset--color--rule);
		padding-right: 0;
	}
	.idz-fact:last-child { border-bottom: 0; }
}

/* ==========================================================================
   Oferta
   ========================================================================== */

.idz-offer { display: grid; gap: 2px; background: var(--wp--preset--color--rule); }

.idz-offer__item {
	background: var(--wp--preset--color--paper);
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: stretch;
	margin: 0;
}
.idz-offer__item:nth-child(even) .idz-offer__pic { order: -1; }

.idz-offer__txt {
	padding: clamp(28px, 4vw, 52px);
	display: grid;
	gap: 14px;
	align-content: center;
}
.idz-offer__txt h3 { margin: 0; }
.idz-offer__txt p { margin: 0; color: var(--wp--preset--color--text-soft); }
.idz-offer__for {
	font-family: var(--wp--preset--font-family--display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0;
}
.idz-offer__pic { position: relative; min-height: 250px; }
.idz-offer__pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.idz-offer__pic figure { margin: 0; height: 100%; }

@media (max-width: 820px) {
	.idz-offer__item { grid-template-columns: 1fr; }
	.idz-offer__item .idz-offer__pic { order: -1; min-height: 210px; }
}

.idz-more { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1px; background: var(--wp--preset--color--rule); margin-top: 2px; }
.idz-more__i { background: var(--wp--preset--color--paper); padding: 22px 24px; }
.idz-more__i h4 { font-size: 18px; margin: 0 0 6px; }
.idz-more__i p { font-size: 14.5px; color: var(--wp--preset--color--text-soft); margin: 0; }

/* ==========================================================================
   Referencje
   ========================================================================== */

.idz-logos { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(26px, 5vw, 56px); }
.idz-logos img { height: 40px; width: auto; object-fit: contain; filter: grayscale(1) brightness(1.7) contrast(.55); opacity: .8; }
.idz-logos figure { margin: 0; }
.idz-logos__txt {
	display: flex; flex-wrap: wrap; gap: 18px 30px;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600; font-size: 15px;
	color: var(--wp--preset--color--on-dark-soft);
}

.idz-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(272px, 1fr)); gap: 26px; }
.idz-quote {
	border-top: 2px solid var(--wp--preset--color--accent-hi);
	padding-top: 18px;
	margin: 0;
	border-left: 0;
}
.idz-quote p { font-size: 16.5px; line-height: 1.6; color: var(--wp--preset--color--on-dark); margin: 0 0 14px; }
.idz-quote cite {
	font-style: normal;
	font-size: 13.5px;
	color: var(--wp--preset--color--on-dark-soft);
	display: block;
}
.idz-quote cite b {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	color: var(--wp--preset--color--on-dark);
	font-size: 14.5px;
	letter-spacing: -.01em;
}

/* ==========================================================================
   O mnie
   ========================================================================== */

.idz-about { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: clamp(28px, 5vw, 60px); align-items: start; }
.idz-about__pic { position: relative; margin: 0; }
.idz-about__pic img { width: 100%; border-radius: 2px; display: block; }
.idz-about__txt { display: grid; gap: 18px; }
.idz-about__txt p { color: var(--wp--preset--color--text-soft); margin: 0; }
.idz-about__txt h2 { margin: 0; }

.idz-offstage { border-top: 1px solid var(--wp--preset--color--rule); margin-top: 8px; list-style: none; padding: 0; }
.idz-offstage li {
	display: flex; gap: 16px; align-items: baseline;
	padding: 11px 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	font-size: 15.5px;
	color: var(--wp--preset--color--text-soft);
}
.idz-offstage b {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	color: var(--wp--preset--color--text);
	min-width: 84px;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.02em;
}

@media (max-width: 760px) {
	.idz-about { grid-template-columns: 1fr; }
	.idz-about__pic { max-width: 300px; }
}

/* ==========================================================================
   Galeria
   ========================================================================== */

.idz-gallery.wp-block-gallery { gap: 10px; }
.idz-gallery .wp-block-image { margin: 0; }
.idz-gallery img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform .5s ease; }
.idz-gallery figure:hover img { transform: scale(1.04); }
.idz-gallery figcaption {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 22px 14px 10px;
	font-size: 13px; color: #fff;
	background: linear-gradient(transparent, rgba(12, 8, 14, .8));
	margin: 0;
}

/* ==========================================================================
   Kontakt
   ========================================================================== */

.idz-contact__data { display: grid; gap: 2px; margin-top: 28px; }
.idz-contact__data a {
	display: flex; gap: 14px; align-items: baseline;
	text-decoration: none;
	padding: 12px 0;
	border-bottom: 1px solid var(--wp--preset--color--rule-dark);
	color: var(--wp--preset--color--on-dark);
}
.idz-contact__data a:hover { color: var(--wp--preset--color--accent-hi); }
.idz-contact__data .lbl {
	font-family: var(--wp--preset--font-family--display);
	font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--wp--preset--color--on-dark-soft);
	min-width: 86px;
}
.idz-contact__data .val { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 18px; letter-spacing: -.02em; }

/* Formularz (Contact Form 7 lub natywny) */
.idz-form {
	background: var(--wp--preset--color--ink-2);
	padding: clamp(22px, 3.4vw, 32px);
	border: 1px solid var(--wp--preset--color--rule-dark);
	border-radius: 3px;
}
.idz-form label {
	display: block;
	font-size: 12.5px;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	color: var(--wp--preset--color--on-dark-soft);
	margin-bottom: 6px;
}
.idz-form input[type="text"],
.idz-form input[type="email"],
.idz-form input[type="tel"],
.idz-form select,
.idz-form textarea {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15.5px;
	padding: 11px 13px;
	border-radius: 2px;
	border: 1px solid var(--wp--preset--color--rule-dark);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--on-dark);
	width: 100%;
	margin-bottom: 14px;
}
.idz-form textarea { resize: vertical; min-height: 78px; }
.idz-form input[type="submit"],
.idz-form button[type="submit"] {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700; font-size: 15px;
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 0; border-radius: 2px;
	padding: 13px 22px;
	width: 100%;
	cursor: pointer;
	transition: background .16s;
}
.idz-form input[type="submit"]:hover,
.idz-form button[type="submit"]:hover { background: var(--wp--preset--color--accent-ink); }

/* ==========================================================================
   Stopka
   ========================================================================== */

.idz-footer { border-top: 1px solid var(--wp--preset--color--rule-dark); font-size: 14px; }
.idz-footer a { color: var(--wp--preset--color--on-dark-soft); text-decoration: none; }
.idz-footer a:hover { color: var(--wp--preset--color--accent-hi); }

/* ==========================================================================
   Wpisy i archiwa
   ========================================================================== */

.idz-postlist .wp-block-post-title a { text-decoration: none; }
.idz-postlist .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.idz-postlist .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; }

.idz-entry :where(p, ul, ol) { max-width: 68ch; }
.idz-entry img { border-radius: 2px; }

/* ==========================================================================
   WooCommerce — dopasowanie do motywu
   ========================================================================== */

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 17px;
	letter-spacing: -.02em;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price { color: var(--wp--preset--color--accent); font-weight: 700; }

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	background: var(--wp--preset--color--accent);
	color: #fff;
	border-radius: 2px;
	padding: 12px 20px;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--wp--preset--color--accent-ink); color: #fff; }

.woocommerce div.product .product_title { font-family: var(--wp--preset--font-family--display); }
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info { border-top-color: var(--wp--preset--color--accent); }
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before { color: var(--wp--preset--color--accent); }

/* ==========================================================================
   Dostępność i ruch
   ========================================================================== */

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.idz-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--wp--preset--color--accent);
	color: #fff;
	padding: 10px 16px;
	z-index: 100;
}
.idz-skip-link:focus { left: 8px; top: 8px; }

@media (prefers-reduced-motion: reduce) {
	.idz-gallery img { transition: none; }
	.idz-gallery figure:hover img { transform: none; }
	* { scroll-behavior: auto !important; }
}

/* ==========================================================================
   Zapisy: formularze, sekcja newslettera, okno mini-kursu
   ========================================================================== */

.idz-zapis { margin: 0; }
.idz-zapis__pulapka { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.idz-zapis__pole { display: grid; gap: 6px; margin-bottom: 12px; }
.idz-zapis__pole label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--text-soft);
}
.idz-dark .idz-zapis__pole label,
.idz-modal .idz-zapis__pole label { color: var(--wp--preset--color--on-dark-soft); }

.idz-zapis input[type="text"],
.idz-zapis input[type="email"] {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	padding: 12px 14px;
	border-radius: 2px;
	border: 1px solid var(--wp--preset--color--rule);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--text);
	width: 100%;
}
.idz-dark .idz-zapis input[type="text"],
.idz-dark .idz-zapis input[type="email"],
.idz-modal .idz-zapis input[type="text"],
.idz-modal .idz-zapis input[type="email"] {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--rule-dark);
	color: var(--wp--preset--color--on-dark);
}
.idz-zapis input::placeholder { color: var(--wp--preset--color--text-soft); opacity: .7; }
.idz-dark .idz-zapis input::placeholder,
.idz-modal .idz-zapis input::placeholder { color: var(--wp--preset--color--on-dark-soft); opacity: .6; }

.idz-zapis__zgoda { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 16px; }
.idz-zapis__zgoda input { margin-top: 3px; flex: 0 0 auto; width: 17px; height: 17px; accent-color: var(--wp--preset--color--accent); }
.idz-zapis__zgoda label { font-size: 13.5px; line-height: 1.5; color: var(--wp--preset--color--text-soft); }
.idz-dark .idz-zapis__zgoda label,
.idz-modal .idz-zapis__zgoda label { color: var(--wp--preset--color--on-dark-soft); }

.idz-zapis__przycisk {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700; font-size: 15px; letter-spacing: -.01em;
	background: var(--wp--preset--color--accent);
	color: #fff; border: 0; border-radius: 2px;
	padding: 14px 24px; width: 100%; cursor: pointer;
	transition: background .16s, transform .16s;
}
.idz-zapis__przycisk:hover:not(:disabled) { background: var(--wp--preset--color--accent-ink); transform: translateY(-1px); }
.idz-zapis__przycisk:disabled { opacity: .65; cursor: progress; }

.idz-zapis__drobne { font-size: 12.5px; line-height: 1.5; color: var(--wp--preset--color--text-soft); margin: 10px 0 0; }
.idz-dark .idz-zapis__drobne,
.idz-modal .idz-zapis__drobne { color: var(--wp--preset--color--on-dark-soft); }
.idz-zapis__drobne a { color: inherit; }

.idz-zapis__komunikat {
	margin: 14px 0 0; padding: 13px 15px; border-radius: 2px;
	font-size: 14.5px; line-height: 1.5;
}
.idz-zapis__komunikat--ok {
	background: rgba(196, 42, 112, .1);
	border-left: 3px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--text);
}
.idz-dark .idz-zapis__komunikat--ok,
.idz-modal .idz-zapis__komunikat--ok { color: var(--wp--preset--color--on-dark); background: rgba(255, 92, 158, .14); border-left-color: var(--wp--preset--color--accent-hi); }
.idz-zapis__komunikat--blad {
	background: rgba(150, 40, 40, .1);
	border-left: 3px solid #A33;
	color: var(--wp--preset--color--text);
}
.idz-modal .idz-zapis__komunikat--blad { color: var(--wp--preset--color--on-dark); background: rgba(200, 70, 70, .18); }

/* ——— sekcja newslettera ——— */

.idz-newsletter {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--on-dark);
	padding-block: clamp(46px, 6vw, 78px);
	padding-inline: 20px;
}
.idz-newsletter__in {
	max-width: 1180px; margin-inline: auto;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
	gap: clamp(28px, 5vw, 64px); align-items: start;
}
.idz-newsletter__txt h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(26px, 3.8vw, 40px); font-weight: 800; letter-spacing: -.03em;
	margin: 10px 0 14px; color: var(--wp--preset--color--on-dark);
	text-wrap: balance;
}
.idz-newsletter__txt p { color: var(--wp--preset--color--on-dark-soft); max-width: 48ch; margin: 0; }

@media (max-width: 820px) { .idz-newsletter__in { grid-template-columns: 1fr; } }

/* ——— okno mini-kursu ——— */

.idz-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.idz-modal[hidden] { display: none !important; }
.idz-modal__tlo { position: absolute; inset: 0; background: rgba(10, 6, 12, .74); backdrop-filter: blur(3px); }

.idz-modal__okno {
	position: relative;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
	width: 100%; max-width: 940px; max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: var(--wp--preset--color--ink-2);
	border: 1px solid var(--wp--preset--color--rule-dark);
	border-radius: 3px;
	box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8);
	animation: idz-modal-wjazd .26s ease-out;
}
@keyframes idz-modal-wjazd { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .idz-modal__okno { animation: none; } }

.idz-modal__tresc { padding: clamp(26px, 4vw, 44px); color: var(--wp--preset--color--on-dark); }
.idz-modal__tresc h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(28px, 4vw, 40px); font-weight: 900; letter-spacing: -.04em; line-height: 1.02;
	margin: 12px 0 16px; color: var(--wp--preset--color--on-dark);
}
.idz-modal__tresc h2 em { font-style: normal; color: var(--wp--preset--color--accent-hi); }
.idz-modal__lead { color: var(--wp--preset--color--on-dark-soft); margin: 0 0 20px; font-size: 15.5px; line-height: 1.6; }

.idz-modal__lista { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--wp--preset--color--rule-dark); }
.idz-modal__lista li {
	display: flex; gap: 14px; align-items: baseline;
	padding: 9px 0; border-bottom: 1px solid var(--wp--preset--color--rule-dark);
	font-size: 14.5px; color: var(--wp--preset--color--on-dark-soft);
}
.idz-modal__lista b {
	font-family: var(--wp--preset--font-family--display); font-weight: 800;
	color: var(--wp--preset--color--accent-hi); min-width: 62px; font-size: 13px;
	letter-spacing: .04em; text-transform: uppercase;
}

.idz-modal__obraz { position: relative; overflow: hidden; }
.idz-modal__obraz img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.idz-modal__zamknij {
	position: absolute; top: 10px; right: 12px; z-index: 2;
	width: 38px; height: 38px; line-height: 1;
	background: rgba(0, 0, 0, .4); color: #fff;
	border: 0; border-radius: 50%; font-size: 26px; cursor: pointer;
	transition: background .16s;
}
.idz-modal__zamknij:hover { background: var(--wp--preset--color--accent); }

@media (max-width: 800px) {
	.idz-modal__okno { grid-template-columns: 1fr; }
	.idz-modal__obraz { display: none; }
}

/* ==========================================================================
   Osadzenia po Avadzie i typografia odzyskana z page buildera
   ========================================================================== */

/*
 * Filmy siedziały w [fusion_code] zakodowane base64, w kontenerze .embed-container,
 * którego style należały do Avady. Po jej wyłączeniu kontener został bez reguł —
 * dajemy mu własne, żeby osadzenia trzymały proporcję i nie wychodziły poza ekran.
 */
.embed-container {
	position: relative;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	margin-block: clamp(20px, 3vw, 30px);
	background: var(--wp--preset--color--ink);
	border-radius: 2px;
	overflow: hidden;
}
.embed-container iframe,
.embed-container object,
.embed-container embed {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Osadzenia wstawione jako zwykły blok HTML też mają się mieścić. */
.idz-entry iframe { max-width: 100%; }

/* Klasy wyrównania, które w treści zostawił page builder. */
.customcenter,
.whitecenter,
.customheading {
	display: block;
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.12;
	font-size: clamp(22px, 3.4vw, 30px);
	margin-block: clamp(26px, 4vw, 40px) clamp(14px, 2vw, 20px);
	text-wrap: balance;
}
.whitecenter { color: var(--wp--preset--color--text); }

/* Długie adresy w treści nie mogą rozpychać strony na telefonie. */
.idz-entry :where(p, li, td) { overflow-wrap: anywhere; }

/* ==========================================================================
   Film: fasada zamiast osadzonego odtwarzacza
   ========================================================================== */

.idz-film { position: relative; }

.idz-film__start {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	border: 0;
	background: var(--wp--preset--color--ink);
	border-radius: 3px;
	overflow: hidden;
	cursor: pointer;
	aspect-ratio: 16 / 9;
	line-height: 0;
}
.idz-film__start img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease, opacity .3s; }
.idz-film__start:hover img { transform: scale(1.03); opacity: .88; }

.idz-film__play {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	transition: transform .2s ease;
}
.idz-film__play svg { width: 74px; height: 52px; filter: drop-shadow(0 6px 18px rgba(0,0,0,.45)); }
.idz-film__play-tlo { fill: rgba(20, 12, 18, .78); transition: fill .2s ease; }
.idz-film__start:hover .idz-film__play { transform: scale(1.07); }
.idz-film__start:hover .idz-film__play-tlo { fill: var(--wp--preset--color--accent); }

.idz-film iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: 3px;
	display: block;
}

.idz-film__podpis {
	margin: 12px 0 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--text-soft);
}
.idz-dark .idz-film__podpis { color: var(--wp--preset--color--on-dark-soft); }

.idz-film__kanal { margin: 10px 0 0; font-size: 14px; }
.idz-film__kanal a { text-decoration: none; }
.idz-film__kanal a:hover { text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
	.idz-film__start img,
	.idz-film__play { transition: none; }
	.idz-film__start:hover img { transform: none; }
	.idz-film__start:hover .idz-film__play { transform: none; }
}

/* ——— sekcja z filmem na stronie głównej ——— */

.idz-film-sekcja {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--on-dark);
	padding-block: clamp(50px, 7vw, 96px);
	padding-inline: 20px;
}
.idz-film-sekcja__in {
	max-width: 1180px; margin-inline: auto;
	display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(28px, 5vw, 60px); align-items: center;
}
.idz-film-sekcja__txt h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(30px, 4.6vw, 50px); font-weight: 900; letter-spacing: -.045em;
	margin: 12px 0 16px; color: var(--wp--preset--color--on-dark);
	text-wrap: balance;
}
.idz-film-sekcja__txt p { color: var(--wp--preset--color--on-dark-soft); margin: 0; }
.idz-film-sekcja__uwaga {
	margin-top: 16px !important;
	font-size: 13px;
	border-left: 2px solid var(--wp--preset--color--accent-hi);
	padding-left: 12px;
}

@media (max-width: 860px) {
	.idz-film-sekcja__in { grid-template-columns: 1fr; }
	.idz-film-sekcja__film { order: -1; }
}

/* ==========================================================================
   Rekomendacje na wideo
   ========================================================================== */

.idz-rek {
	background: var(--wp--preset--color--paper-2);
	padding-block: clamp(50px, 7vw, 96px);
	padding-inline: 20px;
}
.idz-rek__in { max-width: 1180px; margin-inline: auto; }

.idz-rek__head { max-width: 62ch; margin-bottom: clamp(28px, 4vw, 44px); }
.idz-rek__head h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(28px, 4.4vw, 46px); font-weight: 800; letter-spacing: -.04em;
	margin: 12px 0 14px; text-wrap: balance;
}
.idz-rek__head p { margin: 0; }

.idz-rek__lista {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 420px));
	gap: 26px;
}

.idz-rek__karta { margin: 0; }

.idz-rek__film .idz-film__start {
	border-radius: 3px;
	box-shadow: 0 16px 40px -22px rgba(30, 10, 25, .5);
}

/*
 * Miniatura z YouTube niesie własne napisy („POLECA", „100%") w krzykliwych
 * kolorach. Zasłona przyciemnia dolną część kadru i daje miejsce na nazwisko
 * złożone typografią strony — dzięki temu karta trzyma się reszty layoutu.
 */
.idz-rek__zaslona {
	position: absolute; inset: 0;
	background:
		linear-gradient(to top, rgba(16, 10, 18, .92) 0%, rgba(16, 10, 18, .55) 30%, rgba(16, 10, 18, .12) 58%, rgba(16, 10, 18, .28) 100%);
	pointer-events: none;
}

.idz-rek__opis {
	position: absolute; left: 18px; right: 18px; bottom: 16px;
	display: grid; gap: 3px; text-align: left; pointer-events: none;
}
.idz-rek__kto {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800; font-size: clamp(19px, 2.4vw, 24px); letter-spacing: -.03em;
	color: #fff; line-height: 1.1;
}
.idz-rek__kontekst {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px; color: rgba(255, 255, 255, .78);
}

.idz-rek__czas {
	position: absolute; top: 14px; right: 14px;
	font-family: var(--wp--preset--font-family--display);
	font-size: 12px; font-weight: 700; letter-spacing: .04em;
	color: #fff; background: rgba(12, 8, 14, .72);
	padding: 4px 8px; border-radius: 2px;
	font-variant-numeric: tabular-nums;
	pointer-events: none;
}

.idz-rek__podpis {
	margin-top: 12px;
	font-size: 14px; line-height: 1.5;
	color: var(--wp--preset--color--text-soft);
}

/* Po uruchomieniu filmu nakładki znikają razem z przyciskiem. */
.idz-rek__film iframe ~ .idz-rek__zaslona,
.idz-rek__film iframe ~ .idz-rek__opis,
.idz-rek__film iframe ~ .idz-rek__czas { display: none; }

/* Etykieta rodzaju materiału na karcie (rekomendacja / rozmowa). */
.idz-rek__typ {
	position: absolute; top: 14px; left: 14px;
	font-family: var(--wp--preset--font-family--display);
	font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: #fff; background: var(--wp--preset--color--accent);
	padding: 5px 9px; border-radius: 2px;
	pointer-events: none;
}
.idz-rek__film iframe ~ .idz-rek__typ { display: none; }

/* Przy dwóch i więcej kartach siatka ma trzymać równe wysokości. */
.idz-rek__lista { align-items: start; }

/* ==========================================================================
   Formularz kontaktowy (Contact Form 7) — własny układ
   ========================================================================== */

.idz-cf7 { display: grid; gap: 18px; }

.idz-cf7__rzad {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 18px;
}

.idz-cf7__pole { display: grid; gap: 7px; margin: 0; }

.idz-cf7__pole > label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	color: var(--wp--preset--color--on-dark-soft);
	display: flex; align-items: baseline; gap: 8px;
}
.idz-cf7__opc {
	font-family: var(--wp--preset--font-family--body);
	font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none;
	color: var(--wp--preset--color--text-soft); opacity: .8;
}

/* CF7 owija kontrolki we własny span — musi się rozciągać na całą szerokość. */
.idz-cf7 .wpcf7-form-control-wrap { display: block; width: 100%; }

.idz-cf7 input[type="text"],
.idz-cf7 input[type="email"],
.idz-cf7 input[type="tel"],
.idz-cf7 select,
.idz-cf7 textarea {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15.5px;
	line-height: 1.4;
	width: 100%;
	padding: 12px 14px;
	height: auto;                       /* CF7 i motywy potrafią narzucić wysokość */
	min-height: 0;
	border: 1px solid var(--wp--preset--color--rule-dark);
	border-radius: 3px;
	background: rgba(255, 255, 255, .04);
	color: var(--wp--preset--color--on-dark);
	transition: border-color .16s, background .16s, box-shadow .16s;
	-webkit-appearance: none;
	appearance: none;
}
.idz-cf7 textarea { min-height: 112px; resize: vertical; }

.idz-cf7 select {
	background-image: linear-gradient(45deg, transparent 50%, var(--wp--preset--color--on-dark-soft) 50%),
		linear-gradient(135deg, var(--wp--preset--color--on-dark-soft) 50%, transparent 50%);
	background-position: calc(100% - 19px) 50%, calc(100% - 13px) 50%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 38px;
	cursor: pointer;
}
.idz-cf7 select option { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--on-dark); }

.idz-cf7 input::placeholder,
.idz-cf7 textarea::placeholder { color: var(--wp--preset--color--on-dark-soft); opacity: .55; }

.idz-cf7 input:focus,
.idz-cf7 select:focus,
.idz-cf7 textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent-hi);
	background: rgba(255, 255, 255, .07);
	box-shadow: 0 0 0 3px rgba(255, 92, 158, .16);
}

/* ——— przycisk ——— */

.idz-cf7__stopka { display: grid; gap: 12px; margin-top: 4px; }

.idz-cf7 .idz-cf7__wyslij,
.idz-cf7 input[type="submit"] {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700; font-size: 15.5px; letter-spacing: -.01em;
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 0; border-radius: 3px;
	padding: 15px 26px;
	width: 100%;
	cursor: pointer;
	transition: background .16s, transform .16s;
}
.idz-cf7 .idz-cf7__wyslij:hover { background: var(--wp--preset--color--accent-ink); transform: translateY(-1px); }
.idz-cf7 .idz-cf7__wyslij:disabled { opacity: .6; cursor: progress; transform: none; }

.idz-cf7__drobne {
	margin: 0; font-size: 12.5px; line-height: 1.55;
	color: var(--wp--preset--color--on-dark-soft);
}
.idz-cf7__drobne a { color: inherit; }

/* ——— komunikaty i walidacja CF7 ——— */

.idz-cf7 .wpcf7-not-valid { border-color: #C85A5A; background: rgba(200, 90, 90, .08); }
.idz-cf7 .wpcf7-not-valid-tip {
	display: block; margin-top: 6px;
	font-size: 12.5px; color: #F09A9A;
}
.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0; padding: 13px 15px;
	border: 0; border-left: 3px solid var(--wp--preset--color--accent-hi);
	border-radius: 3px;
	background: rgba(255, 92, 158, .12);
	color: var(--wp--preset--color--on-dark);
	font-size: 14.5px; line-height: 1.5;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border-left-color: #C85A5A; background: rgba(200, 90, 90, .14);
}
.wpcf7 form.sent .wpcf7-response-output {
	border-left-color: #58B36B; background: rgba(88, 179, 107, .14);
}
.wpcf7-spinner { margin: 8px auto 0; display: block; }

/* Na wąskim ekranie pola idą jedno pod drugim. */
@media (max-width: 560px) {
	.idz-cf7__rzad { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Formularz kontaktowy — korekty po pomiarach na żywej stronie
   ==========================================================================
   Zmierzone: pole miało 250 px w kolumnie 219 px (brak border-box), dziedziczyło
   margin 10/14 px z globalnych stylów, a CF7 wstawiał <br> między etykietą a polem
   mimo wyłączonego autop. Stąd sklejone pola i przerwy po ~58 px.
   ========================================================================== */

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

/* CF7 dokłada <br> po etykiecie — w siatce to osobny element i dodatkowy wiersz. */
.idz-cf7 br { display: none; }

.idz-cf7 .wpcf7-form-control-wrap { margin: 0; line-height: 0; }

.idz-cf7 input[type="text"],
.idz-cf7 input[type="email"],
.idz-cf7 input[type="tel"],
.idz-cf7 select,
.idz-cf7 textarea {
	display: block;
	margin: 0;
	max-width: 100%;
	line-height: 1.35;
	font-size: 15.5px;
	padding: 11px 13px;
	height: 46px;               /* jednakowa wysokość pól i listy w jednym rzędzie */
}
.idz-cf7 textarea { height: auto; min-height: 104px; line-height: 1.55; padding: 12px 13px; }
.idz-cf7 select { height: 46px; padding-block: 0; }

.idz-cf7__pole { gap: 6px; }
.idz-cf7__pole > label { margin: 0 0 2px; line-height: 1.2; }
.idz-cf7__rzad { gap: 14px; }
.idz-cf7 { gap: 14px; }

.idz-cf7 .idz-cf7__wyslij,
.idz-cf7 input[type="submit"] { display: block; margin: 0; height: auto; line-height: 1.2; }

/* Podpowiedź walidacji nie może rozpychać siatki. */
.idz-cf7 .wpcf7-not-valid-tip { line-height: 1.4; margin-top: 5px; }

/* --------------------------------------------------------------------------
   Arkusz Avady (fusion-styles) narzuca .wpcf7-form input { height: 40px }.
   Ma tę samą specyficzność co nasza reguła, a ładuje się później, więc wygrywał
   i rozjeżdżał wysokości: pola 40 px obok listy 46 px. Podbijamy specyficzność
   przez kontener, który CF7 zawsze owija wokół kontrolki.
   -------------------------------------------------------------------------- */

.idz-cf7 .wpcf7-form-control-wrap > input[type="text"],
.idz-cf7 .wpcf7-form-control-wrap > input[type="email"],
.idz-cf7 .wpcf7-form-control-wrap > input[type="tel"],
.idz-cf7 .wpcf7-form-control-wrap > select {
	height: 46px;
	min-height: 46px;
	padding: 11px 13px;
	line-height: 1.35;
}
.idz-cf7 .wpcf7-form-control-wrap > select { padding-block: 0; }
.idz-cf7 .wpcf7-form-control-wrap > textarea {
	height: auto;
	min-height: 104px;
	padding: 12px 13px;
	line-height: 1.55;
}
