/* =========================================================================
   Pages (no page builder): hero + converted content.
   Tokens from the Customizer design system (--iv-*).
   ========================================================================= */

/* ---------- Page hero (.iv_phero) ---------- */

.iv_phero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: clamp(380px, 52vh, 560px);
	background: var(--iv-ink);
	color: #fff;
}
.iv_phero-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}
/* Uniform dark overlay. */
.iv_phero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	/* Dark behind the text (left), nearly transparent on the right — the photo shows through. */
	/* --iv-text-end = where the hero text column ends (container offset + ~640px of text). */
	--iv-text-end: calc(max(var(--iv-gutter), (100vw - var(--iv-container-max)) / 2 + var(--iv-gutter)) + 640px);
	background: linear-gradient(90deg,
		rgba(20, 20, 20, .84) 0,
		rgba(20, 20, 20, .74) var(--iv-text-end),
		rgba(20, 20, 20, .06) calc(var(--iv-text-end) + 360px),
		rgba(20, 20, 20, .02) 100%);
	pointer-events: none;
}
/* The logo X's orange stroke — overlay, never part of the photo. The box keeps the SVG's
   1000:600 proportions (height = hero, width follows) so the curl + rounded end never distort. */
.iv_phero::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	aspect-ratio: 1000 / 600;
	z-index: -1;
	background: linear-gradient(200deg, rgba(251, 192, 21, 0) 0%, rgba(251, 192, 21, .55) 20%, var(--iv-accent) 58%, var(--iv-accent-deep) 100%);
	-webkit-mask: url("../images/hero-curve.svg?v=10") center / 100% 100% no-repeat;
	mask: url("../images/hero-curve.svg?v=10") center / 100% 100% no-repeat;
	opacity: .8;
	pointer-events: none;
}
.iv_phero-inner {
	width: 100%;
	padding-top: clamp(48px, 7vw, 96px);
	padding-bottom: clamp(40px, 5vw, 72px);
}
.iv_phero .iv_breadcrumbs,
.iv_phero .iv_breadcrumb,
.iv_phero nav[aria-label] { color: rgba(255, 255, 255, .7); background: none; padding: 0; margin: 0 0 18px; }
.iv_phero .iv_breadcrumbs a,
.iv_phero .iv_breadcrumb a,
.iv_phero nav[aria-label] a { color: rgba(255, 255, 255, .85); }
.iv_phero-kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
}
.iv_phero-kicker::before { content: ""; width: 28px; height: 3px; border-radius: 2px; background: var(--iv-accent); }
.iv_phero-title {
	margin: 0;
	max-width: 22ch;
	font-family: var(--iv-font-display);
	font-weight: var(--iv-fw-heading, 600);
	font-size: clamp(2rem, 2.3vw + 1rem, 3.25rem);
	line-height: 1.08;
	letter-spacing: -0.025em;
	color: #fff;
	text-wrap: balance;
}
.iv_phero-text { margin: 18px 0 0; max-width: 60ch; font-size: 1.125rem; line-height: 1.6; color: rgba(255, 255, 255, .85); }
.iv_phero-buttons { margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 12px; }
.iv_phero--compact { min-height: 0; }
.iv_phero--compact .iv_phero-inner { padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(36px, 4vw, 56px); }
.iv_phero--compact .iv_phero-title { font-size: clamp(1.875rem, 1.6vw + 1rem, 2.75rem); }
.iv_phero--plain::after { opacity: .55; }
@media (max-width: 767px) {
	/* Mobile: full overlay, the stroke only a faint hint. */
	.iv_phero::before { background: rgba(24, 24, 24, .72); }
	.iv_phero::after { opacity: .18; }
	.iv_phero-buttons .iv_btn { width: 100%; justify-content: center; }
}

/* ---------- Converted page content (.iv_page-content) ---------- */

.iv_page-content {
	--iv-measure: 74ch;
	padding-bottom: clamp(48px, 6vw, 88px);
	color: var(--iv-ink-soft);
	font-size: 1.0625rem;
	line-height: 1.7;
}
.iv_page-content > .iv_block {
	width: min(100% - 2 * var(--iv-gutter), var(--iv-container-max) - 2 * var(--iv-gutter));
	margin-inline: auto;
	padding-block: clamp(36px, 4.5vw, 64px);
}
.iv_page-content > .iv_block + .iv_block { border-top: 1px solid var(--iv-stone-200); }
/* Single-column text keeps a readable measure; tables, columns, galleries go full width. */
.iv_page-content .iv_block > :is(p, ul, ol, h2, h3, h4, h5, .iv_numbered, .iv_checklist, .iv_btn-row) { max-width: var(--iv-measure); }

.iv_page-content :is(h2, h3, h4, h5) {
	font-family: var(--iv-font-display);
	font-weight: var(--iv-fw-heading, 600);
	color: var(--iv-ink);
	letter-spacing: -0.015em;
	line-height: 1.2;
	text-wrap: balance;
	margin: 1.6em 0 .5em;
}
.iv_page-content :is(h2, h3, h4, h5):first-child { margin-top: 0; }
.iv_page-content h2 { font-size: clamp(1.625rem, 1.2vw + 1.1rem, 2.25rem); }
.iv_page-content h3 { font-size: clamp(1.25rem, .6vw + 1rem, 1.5rem); }
.iv_page-content h4 { font-size: 1.125rem; }
.iv_page-content p { margin: 0 0 1em; }
.iv_page-content :is(ul, ol) { margin: 0 0 1.2em; padding-left: 1.25em; }
.iv_page-content li { margin: .3em 0; }
.iv_page-content strong { color: var(--iv-ink); font-weight: 600; }
.iv_page-content a:not(.iv_btn) { color: var(--iv-accent-deep); text-decoration: underline; text-underline-offset: 2px; }
.iv_page-content a:not(.iv_btn):hover { color: var(--iv-accent-deep-2); }

/* 2–4 column blocks (from builder rows). */
.iv_cols { display: grid; gap: clamp(24px, 4vw, 56px); align-items: center; }
.iv_cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.iv_cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.iv_cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
.iv_col { min-width: 0; }
.iv_col > :last-child { margin-bottom: 0; }
@media (max-width: 900px) { .iv_cols-3, .iv_cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .iv_cols-2, .iv_cols-3, .iv_cols-4 { grid-template-columns: 1fr; } }

/* Images */
.iv_figure { margin: 0; }
.iv_figure img { display: block; width: 100%; height: auto; border-radius: var(--iv-radius-md); }
.iv_figure figcaption { margin-top: 8px; font-size: .875rem; color: var(--iv-ink-muted); }
.iv_page-content .gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.iv_page-content .gallery-item { margin: 0; width: auto !important; }
.iv_page-content .gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--iv-radius-sm); border: 0 !important; }
@media (max-width: 700px) { .iv_page-content .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Button rows */
.iv_btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.4em 0 0; }

/* Check list + "check" headings (old .h3vinkje) */
.iv_checklist { list-style: none; padding: 0 !important; }
.iv_checklist li { position: relative; padding-left: 30px; }
.iv_checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--iv-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l5 5L20 7' fill='none' stroke='%23b05408' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.iv_check-heading { position: relative; padding-left: 40px; }
.iv_check-heading::before {
	content: "";
	position: absolute;
	left: 0;
	top: .1em;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--iv-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l5 5L20 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
}

/* Numbered list (old .lijst) */
.iv_numbered ol { list-style: none; counter-reset: iv-n; padding-left: 0; }
.iv_numbered ol > li { counter-increment: iv-n; position: relative; padding-left: 44px; margin: .7em 0; }
.iv_numbered ol > li::before {
	content: counter(iv-n);
	position: absolute;
	left: 0;
	top: 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--iv-accent-soft);
	color: var(--iv-accent-deep);
	font-weight: 700;
	font-size: .875rem;
}

/* FAQ (from accordions) */
.iv_faq-list { max-width: 900px; border-top: 1px solid var(--iv-stone-200); margin: 1em 0 1.4em; }
.iv_faq { border-bottom: 1px solid var(--iv-stone-200); }
.iv_faq summary {
	cursor: pointer;
	list-style: none;
	position: relative;
	padding: 18px 44px 18px 0;
	font-family: var(--iv-font-display);
	font-weight: 600;
	font-size: 1.0625rem;
	color: var(--iv-ink);
}
.iv_faq summary::-webkit-details-marker { display: none; }
.iv_faq summary::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--iv-accent-deep);
	border-bottom: 2px solid var(--iv-accent-deep);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .2s var(--iv-ease);
}
.iv_faq[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.iv_faq summary:focus-visible { outline: 2px solid var(--iv-accent); outline-offset: 2px; }
.iv_faq-body { padding: 0 0 18px; }
.iv_faq-body > :last-child { margin-bottom: 0; }

/* Tables (also used on product pages) */
.iv_table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); background: var(--iv-paper); margin: 1em 0 1.4em; }
.iv_table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.iv_table th, .iv_table td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--iv-stone-200); }
.iv_table thead th { font-family: var(--iv-font-display); font-weight: 600; color: var(--iv-ink); background: var(--iv-stone-100); border-bottom: 2px solid var(--iv-accent); }
.iv_table tbody th { font-weight: 600; color: var(--iv-ink); }
.iv_table tbody tr:nth-child(even) { background: var(--iv-warm-50); }
.iv_table tbody tr:last-child :is(th, td) { border-bottom: 0; }

@media (prefers-reduced-motion: reduce) { .iv_faq summary::after { transition: none; } }

/* Breadcrumbs inside the hero: no bar, no border, no nested container padding. */
.iv_phero .iv_breadcrumbs { border: 0 !important; background: none !important; padding: 0 !important; margin: 0 0 18px !important; box-shadow: none !important; }
.iv_phero .iv_breadcrumbs .iv_container { padding: 0 !important; max-width: none; border: 0 !important; }
.iv_phero .iv_breadcrumbs, .iv_phero .iv_breadcrumbs * { color: rgba(255, 255, 255, .78) !important; font-size: .875rem; }
.iv_phero .iv_breadcrumbs a:hover { color: #fff !important; }

/* ---------- Forms ([iv_form]) ---------- */
.iv_form { max-width: 760px; margin: 1em 0 1.4em; }
.iv_form-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.iv_form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.iv_field { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.iv_field--half { grid-column: span 1; }
@media (max-width: 600px) { .iv_field--half { grid-column: 1 / -1; } }
.iv_field > label, .iv_field legend { font-weight: 600; font-size: .9375rem; color: var(--iv-ink); }
.iv_req { color: var(--iv-accent-deep); }
.iv_field :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=url], textarea) {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 1rem;
	color: var(--iv-ink);
	background: var(--iv-paper);
	border: 1px solid var(--iv-stone-200);
	border-radius: var(--iv-radius-sm);
}
.iv_field :is(input, textarea):focus-visible { outline: 2px solid var(--iv-accent); outline-offset: 1px; border-color: var(--iv-accent); }
.iv_field fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.iv_field legend { margin-bottom: 8px; }
.iv_choices { display: flex; flex-wrap: wrap; gap: 8px; }
.iv_choice { display: inline-flex; align-items: flex-start; gap: 8px; padding: 8px 12px; border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-sm); background: var(--iv-paper); cursor: pointer; font-size: .9375rem; }
.iv_choice:has(input:checked) { border-color: var(--iv-accent); background: var(--iv-accent-soft); }
.iv_choice input { margin-top: 3px; accent-color: var(--iv-accent-deep); }
.iv_choice--accept { border: 0; padding: 0; background: none !important; }
.was-validated :is(input, textarea):invalid { border-color: #b3261e; }
.iv_form-status { min-height: 1.4em; margin: 14px 0; font-weight: 600; }
.iv_form-status.is-error { color: #b3261e; }
.iv_form-status.is-ok { color: var(--iv-ink-soft); }
.iv_form button.is-loading { opacity: .7; cursor: progress; }

/* ---------- Cards ([iv_listing]) ---------- */
.iv_cards { list-style: none; margin: 1.4em 0 0; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1000px) { .iv_cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .iv_cards { grid-template-columns: 1fr; } }
.iv_card { margin: 0 !important; display: flex; flex-direction: column; background: var(--iv-paper); border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); overflow: hidden; transition: box-shadow .2s var(--iv-ease), transform .2s var(--iv-ease); }
.iv_card:hover { box-shadow: 0 14px 34px rgba(20, 20, 20, .08); transform: translateY(-2px); }
.iv_card-media { display: block; aspect-ratio: 16 / 10; background: var(--iv-stone-100); overflow: hidden; }
.iv_card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iv_card-media--doc { aspect-ratio: 3 / 4; padding: 18px; }
.iv_card-media--doc img { object-fit: contain; }
.iv_card-ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--iv-stone-100), var(--iv-stone-200)); }
.iv_card-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.iv_card-meta { margin: 0 !important; font-size: .8125rem; color: var(--iv-ink-muted); }
.iv_card-title { margin: 0 !important; font-size: 1.125rem !important; line-height: 1.3 !important; }
.iv_card-title a { color: var(--iv-ink) !important; text-decoration: none !important; }
.iv_card-title a:hover { color: var(--iv-accent-deep) !important; }
.iv_card-text { margin: 0 !important; font-size: .9375rem; line-height: 1.55; color: var(--iv-ink-soft); }
.iv_card-download { margin-top: auto; }
.iv_card-download > summary { list-style: none; cursor: pointer; display: inline-flex; }
.iv_card-download > summary::-webkit-details-marker { display: none; }
.iv_card-download[open] > summary { display: none; }
.iv_card-download .iv_form-grid { grid-template-columns: 1fr; }
.iv_card-download .iv_field--half { grid-column: 1 / -1; }
.iv_pager { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 6px; }
.iv_pager .page-numbers { padding: 8px 14px; border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-sm); text-decoration: none !important; color: var(--iv-ink) !important; }
.iv_pager .page-numbers.current { background: var(--iv-ink); color: #fff !important; border-color: var(--iv-ink); }

/* =========================================================================
   Homepage (front-page.php) — sections 1–3.
   ========================================================================= */

/* Hero */
.iv_phero--home { min-height: clamp(560px, calc(100vh - 77px), 720px); align-items: stretch; }
.iv_phero--home .iv_phero-inner { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding-top: clamp(48px, 7vw, 104px); padding-bottom: clamp(24px, 3vw, 40px); }
.iv_phero--home .iv_phero-title { font-size: clamp(2.125rem, 2.3vw + .95rem, 3.5rem); max-width: 21ch; }
.iv_home-actions { align-items: center; gap: 28px; }
.iv_textlink { color: #fff; font-weight: 600; text-decoration: none; padding: 4px 0; border-bottom: 2px solid var(--iv-accent); }
.iv_textlink:hover { color: var(--iv-gold); }
@media (max-width: 560px) { .iv_home-actions { gap: 18px; } .iv_home-actions .iv_btn { width: 100%; justify-content: center; } }

/* Trust bar */
.iv_usp-bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; background: var(--iv-paper); border-radius: var(--iv-radius-md); box-shadow: 0 10px 30px rgba(0, 0, 0, .18); overflow: hidden; }
.iv_usp-bar-item { display: flex; align-items: center; gap: 14px; padding: 18px 22px; min-width: 0; }
.iv_usp-bar-item + .iv_usp-bar-item { border-left: 1px solid var(--iv-stone-200); }
.iv_usp-bar-icon { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--iv-accent-soft); color: var(--iv-accent-deep); }
.iv_usp-bar-text strong { font-family: var(--iv-font-display); font-weight: 600; font-size: 1rem; line-height: 1.25; color: var(--iv-ink); letter-spacing: -0.01em; }
@media (max-width: 1024px) {
	.iv_usp-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iv_usp-bar-item:nth-child(3) { border-left: 0; }
	.iv_usp-bar-item:nth-child(n+3) { border-top: 1px solid var(--iv-stone-200); }
}
@media (max-width: 560px) {
	.iv_usp-bar-item { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; }
	.iv_usp-bar-icon { width: 34px; height: 34px; }
	.iv_usp-bar-text strong { font-size: .9375rem; }
}

/* Logos */
.iv_logos { background: var(--iv-paper); padding-block: clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--iv-stone-200); }
.iv_logos-title { margin: 0 0 24px; text-align: center; font-family: var(--iv-font-body); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--iv-ink-muted); }
.iv_logos-row { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px 40px; }
.iv_logos-row img { display: block; max-height: 44px; width: auto; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .2s var(--iv-ease), opacity .2s var(--iv-ease); }
.iv_logos-row img:hover { filter: none; opacity: 1; }

/* Section head */
.iv_section { padding-block: clamp(56px, 7vw, 96px); }
.iv_eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--iv-accent-deep); }
.iv_eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 2px; background: var(--iv-accent); }
.iv_section-title { margin: 14px 0 0; max-width: 22ch; font-family: var(--iv-font-display); font-weight: var(--iv-fw-heading, 600); font-size: clamp(1.875rem, 1.6vw + 1.2rem, 2.75rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--iv-ink); text-wrap: balance; }
.iv_section-intro { margin: 16px 0 0; max-width: 62ch; font-size: 1.0625rem; color: var(--iv-ink-soft); }

/* Problems */
.iv_problems-section { background: var(--iv-stone-100); }
.iv_problems { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; }
.iv_problem { display: flex; min-width: 0; }
.iv_problem-inner { position: relative; display: flex; flex-direction: column; gap: 12px; width: 100%; padding: 28px 24px 24px; background: var(--iv-paper); border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); color: inherit; text-decoration: none; transition: transform .2s var(--iv-ease), box-shadow .2s var(--iv-ease); }
.iv_problem-inner::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; border-radius: var(--iv-radius-md) var(--iv-radius-md) 0 0; background: var(--iv-accent); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--iv-ease); }
.iv_problem-inner:hover, .iv_problem-inner:focus-visible { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(20, 20, 20, .08); outline: none; }
.iv_problem-inner:hover::before, .iv_problem-inner:focus-visible::before { transform: scaleX(1); }
.iv_problem-inner:focus-visible { box-shadow: 0 0 0 3px var(--iv-accent-soft), 0 14px 34px rgba(20, 20, 20, .08); }
.iv_problem-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--iv-radius-sm); background: var(--iv-accent-soft); color: var(--iv-accent-deep); }
.iv_problem-title { font-family: var(--iv-font-display); font-weight: var(--iv-fw-heading, 600); font-size: 1.1875rem; line-height: 1.25; letter-spacing: -0.01em; color: var(--iv-ink); text-wrap: balance; }
.iv_problem-text { font-size: .9375rem; line-height: 1.55; color: var(--iv-ink-soft); }
.iv_problem-link { margin-top: auto; padding-top: 8px; font-weight: 600; font-size: .9375rem; color: var(--iv-accent-deep); }
.iv_problem-link span { display: inline-block; transition: transform .2s var(--iv-ease); }
.iv_problem-inner:hover .iv_problem-link span { transform: translateX(3px); }
@media (max-width: 1100px) { .iv_problems { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .iv_problems { grid-template-columns: 1fr; gap: 12px; margin-top: 28px; } .iv_problem-inner { padding: 22px 20px 20px; } }
@media (prefers-reduced-motion: reduce) { .iv_problem-inner, .iv_problem-inner::before, .iv_problem-link span, .iv_logos-row img { transition: none; } }


/* ---------- Client logos: continuous marquee (pauses on hover; static for reduced motion) ---------- */
.iv_marquee {
	--iv-logo-w: 136px;
	--iv-logo-gap: 48px;
	display: flex;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
}
.iv_marquee-track {
	flex: none;
	display: flex;
	align-items: center;
	gap: var(--iv-logo-gap);
	margin: 0;
	padding: 0 calc(var(--iv-logo-gap) / 2);
	list-style: none;
	animation: iv-marquee calc(var(--iv-marquee-count, 10) * 3.6s) linear infinite;
}
.iv_marquee:hover .iv_marquee-track,
.iv_marquee:focus-within .iv_marquee-track { animation-play-state: paused; }
@keyframes iv-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.iv_marquee-item {
	flex: none;
	position: relative;
	width: var(--iv-logo-w);
	/* 16:9 = 56% of the width; the tallest logo's mark needs 52% → never cropped, at any width. */
	aspect-ratio: 16 / 9;
}
/* Logo files are 300×300 squares with the mark in a centred band — only the EMPTY
   transparent top/bottom is trimmed (frame is taller than every mark). */
.iv_marquee-item img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1);
	opacity: .7;
	transition: filter .25s var(--iv-ease), opacity .25s var(--iv-ease);
}
.iv_marquee-item img:hover { filter: none; opacity: 1; }
@media (max-width: 600px) { .iv_marquee { --iv-logo-w: 104px; --iv-logo-gap: 24px; } }
@media (prefers-reduced-motion: reduce) {
	.iv_marquee { -webkit-mask-image: none; mask-image: none; flex-wrap: wrap; justify-content: center; }
	.iv_marquee-track { animation: none; flex-wrap: wrap; justify-content: center; }
	.iv_marquee-track[aria-hidden="true"] { display: none; }
}
.iv_marquee-item img { height: 100% !important; width: 100% !important; max-width: none !important; max-height: none !important; }


/* ---------- Problems v2: 2×2, real project photo beside the text + "not listed" bar ---------- */
.iv_problems { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px; }
.iv_problem-inner { flex-direction: row; gap: 0; padding: 0; overflow: hidden; align-items: stretch; }
.iv_problem-inner::before { z-index: 2; }
.iv_problem-media { flex: 0 0 42%; position: relative; background: var(--iv-stone-200); overflow: hidden; }
.iv_problem-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: transform .5s var(--iv-ease); }
.iv_problem-inner:hover .iv_problem-media img { transform: scale(1.04); }
.iv_problem-body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 26px 26px 24px; min-width: 0; }
.iv_problem-title { font-size: 1.25rem; }
.iv_problem-link { margin-top: auto; }
.iv_problems-more {
	margin-top: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 28px;
	flex-wrap: wrap;
	padding: 22px 26px;
	background: var(--iv-paper);
	border: 1px dashed var(--iv-stone-200);
	border-radius: var(--iv-radius-md);
}
.iv_problems-more p { margin: 0; font-family: var(--iv-font-display); font-weight: 600; font-size: 1.0625rem; color: var(--iv-ink); }
@media (max-width: 900px) {
	.iv_problems { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
	.iv_problem-inner { flex-direction: column; }
	.iv_problem-media { flex: none; aspect-ratio: 16 / 9; }
	.iv_problem-body { padding: 20px; }
	.iv_problems-more { padding: 20px; }
	.iv_problems-more .iv_btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .iv_problem-media img { transition: none; } }

/* =========================================================================
   Content page polish (application / solution pages). Layout only — the
   converted content is untouched.
   ========================================================================= */

/* Rhythm: full-bleed alternating grounds instead of hairlines. */
.iv_page-content > .iv_block + .iv_block { border-top: 0; }
.iv_page-content > .iv_block { padding-block: clamp(48px, 6vw, 88px); position: relative; }
.iv_page-content > .iv_block:nth-of-type(even) {
	background: var(--iv-stone-100);
	box-shadow: 0 0 0 100vmax var(--iv-stone-100);
	clip-path: inset(0 -100vmax);
}

/* Photo + text rows. */
.iv_page-content .iv_cols-2 { gap: clamp(32px, 5vw, 80px); }
.iv_figure--photo { margin: 0; aspect-ratio: 4 / 3; border-radius: var(--iv-radius-md); overflow: hidden; box-shadow: 0 18px 40px rgba(20, 20, 20, .10); background: var(--iv-stone-200); }
.iv_figure--photo img { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0; display: block; }
.iv_col > :is(h2, h3):first-child { margin-top: 0; }
.iv_col h3 { font-size: clamp(1.5rem, 1vw + 1.1rem, 2rem); line-height: 1.15; }
.iv_col .iv_btn-row { margin-top: 1.6em; }
/* Opening block reads as an intro. */
.iv_page-content > .iv_block:first-child .iv_col p { font-size: 1.125rem; line-height: 1.75; color: var(--iv-ink); }

/* FAQ on a light card. */
.iv_faq-list { background: var(--iv-paper); border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); padding: 4px 22px; }
.iv_faq:last-child { border-bottom: 0; }
.iv_faq summary { padding-block: 16px; }
/* Closing FAQ block (the last section): a focused centred column. */
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > * { max-width: 860px; margin-inline: auto; }
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > h2 { text-align: center; max-width: 30ch; }

/* Table: stick with the card language. */
.iv_page-content .iv_table-wrap { box-shadow: 0 10px 28px rgba(20, 20, 20, .05); }

/* Text over photo band. */
.iv_band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-radius: var(--iv-radius-md);
	padding: clamp(32px, 5vw, 64px);
	color: #fff;
}
.iv_band-media { position: absolute; inset: 0; margin: 0; z-index: -2; }
.iv_band-media img { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0; }
.iv_band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 20, 20, .86), rgba(20, 20, 20, .55)); }
.iv_band :is(h2, h3, h4, p, li, strong) { color: #fff !important; }
.iv_band a:not(.iv_btn) { color: #fff !important; }
.iv_band .iv_cols { align-items: center; }



/* =========================================================================
   Content page v2 — editorial (0.14.0). Presentation only.
   ========================================================================= */

/* In-page navigation */
.iv_toc { background: var(--iv-paper); border-bottom: 1px solid var(--iv-stone-200); }
.iv_toc-inner { display: flex; align-items: baseline; gap: 18px; padding-block: 18px; }
.iv_toc-label { flex: none; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--iv-ink-muted); }
.iv_toc-list { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
.iv_toc-list a { display: block; white-space: nowrap; padding: 7px 14px; border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-pill); font-size: .875rem; color: var(--iv-ink-soft); text-decoration: none; transition: border-color .15s var(--iv-ease), color .15s var(--iv-ease); }
.iv_toc-list a:hover, .iv_toc-list a:focus-visible { border-color: var(--iv-accent); color: var(--iv-accent-deep); outline: none; }
.iv_page-content h2[id] { scroll-margin-top: 110px; }
@media (max-width: 700px) { .iv_toc-inner { flex-direction: column; gap: 10px; } .iv_toc-list { width: 100%; } }

/* Editorial topic sections: heading left (sticky), reading column right. */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:has(> h2:first-child) {
		display: grid;
		grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
		column-gap: clamp(40px, 5vw, 96px);
		align-items: start;
	}
	.iv_page-content > .iv_block:has(> h2:first-child) > * { grid-column: 2; max-width: none; }
	.iv_page-content > .iv_block:has(> h2:first-child) > h2:first-child {
		grid-column: 1;
		grid-row: 1 / span 40;
		position: sticky;
		top: 110px;
		margin: 0;
		max-width: 16ch;
		font-size: clamp(1.75rem, 1.2vw + 1.2rem, 2.375rem);
		line-height: 1.12;
	}
	.iv_page-content > .iv_block:has(> h2:first-child) > h2:first-child::after {
		content: "";
		display: block;
		width: 48px;
		height: 3px;
		margin-top: 20px;
		border-radius: 2px;
		background: var(--iv-accent);
	}
	/* Closing FAQ keeps its centred column. */
	.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) { display: block; }
}
.iv_page-content > .iv_block > h2 + p { font-size: 1.1875rem; line-height: 1.7; color: var(--iv-ink); }

/* Photo rows alternate sides. */
@media (min-width: 701px) {
	.iv_cols--flip > .iv_col:first-child { order: 2; }
}
/* Intro photo: subtle accent frame. */
.iv_page-content > .iv_block:first-child .iv_figure--photo { overflow: visible; box-shadow: none; position: relative; }
.iv_page-content > .iv_block:first-child .iv_figure--photo img { border-radius: var(--iv-radius-md); position: relative; z-index: 1; box-shadow: 0 18px 40px rgba(20, 20, 20, .12); }
.iv_page-content > .iv_block:first-child .iv_figure--photo::before {
	content: "";
	position: absolute;
	inset: 18px -18px -18px 18px;
	border: 2px solid var(--iv-accent);
	border-radius: var(--iv-radius-md);
	opacity: .55;
}

/* Lists → checklists (content lists only; not FAQ/TOC/cards). */
.iv_page-content .iv_block :is(.iv_col, .iv_faq-body, .iv_block) > ul:not([class]),
.iv_page-content .iv_block > ul:not([class]) { list-style: none; padding-left: 0; }
.iv_page-content .iv_block :is(.iv_col, .iv_faq-body) > ul:not([class]) > li,
.iv_page-content .iv_block > ul:not([class]) > li { position: relative; padding-left: 32px; margin: .55em 0; }
.iv_page-content .iv_block :is(.iv_col, .iv_faq-body) > ul:not([class]) > li::before,
.iv_page-content .iv_block > ul:not([class]) > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--iv-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l5 5L20 7' fill='none' stroke='%23b05408' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* FAQ: clean lines with +/−, no card (topic sections). */
.iv_page-content .iv_faq-list { background: none; border: 0; border-top: 1px solid var(--iv-stone-200); border-radius: 0; padding: 0; margin: 2em 0; }
.iv_page-content .iv_faq { border-bottom: 1px solid var(--iv-stone-200); }
.iv_page-content .iv_faq:last-child { border-bottom: 1px solid var(--iv-stone-200); }
.iv_page-content .iv_faq summary { padding: 20px 48px 20px 0; font-size: 1.0625rem; }
.iv_page-content .iv_faq summary::after {
	content: "+";
	width: 28px;
	height: 28px;
	right: 0;
	border: 1px solid var(--iv-stone-200);
	border-radius: 50%;
	display: grid;
	place-items: center;
	transform: translateY(-50%);
	font-family: var(--iv-font-body);
	font-weight: 400;
	font-size: 1.125rem;
	line-height: 1;
	color: var(--iv-accent-deep);
	background: var(--iv-paper);
}
.iv_page-content .iv_faq[open] summary::after { content: "−"; transform: translateY(-50%); border-color: var(--iv-accent); }
.iv_page-content .iv_faq summary:hover { color: var(--iv-accent-deep); }
.iv_page-content .iv_faq-body { padding: 0 48px 22px 0; color: var(--iv-ink-soft); }
/* Closing FAQ: two columns of lines on wide screens. */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:last-child > .iv_faq-list { max-width: none !important; columns: 2; column-gap: 56px; border-top: 0; }
	.iv_page-content > .iv_block:last-child > .iv_faq-list .iv_faq { break-inside: avoid; border-top: 1px solid var(--iv-stone-200); border-bottom: 0; }
	.iv_page-content > .iv_block:last-child > h2 { max-width: 24ch !important; margin-bottom: 1.2em; }
}

/* Tables: dark header, calmer body. */
.iv_page-content .iv_table-wrap { margin: 2em 0; box-shadow: none; border-color: var(--iv-stone-200); }
.iv_page-content .iv_table thead th { background: var(--iv-ink); color: #fff; border-bottom: 0; font-size: .875rem; letter-spacing: .02em; }
.iv_page-content .iv_table tbody tr:nth-child(even) { background: var(--iv-stone-100); }
.iv_page-content .iv_table tbody td:first-child { font-weight: 600; color: var(--iv-ink); }
.iv_page-content .iv_table td, .iv_page-content .iv_table th { padding: 14px 18px; }

/* Text-over-photo band: full bleed. */
.iv_page-content > .iv_block:has(> .iv_band) { padding-block: 0; }
.iv_page-content .iv_band { border-radius: 0; box-shadow: 0 0 0 100vmax transparent; margin-inline: calc(50% - 50vw); padding-inline: max(var(--iv-gutter), calc((100vw - var(--iv-container-max)) / 2 + var(--iv-gutter))); padding-block: clamp(56px, 7vw, 104px); }
.iv_page-content .iv_band :is(h2, h3) { font-size: clamp(1.625rem, 1.4vw + 1.1rem, 2.5rem); line-height: 1.15; max-width: 22ch; }
.iv_page-content .iv_band .iv_cols { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.iv_page-content .iv_band .iv_col:last-child { justify-self: end; }
.iv_page-content .iv_band .iv_btn { padding: 16px 28px; font-size: 1rem; }
@media (max-width: 700px) { .iv_page-content .iv_band .iv_cols { grid-template-columns: 1fr; } .iv_page-content .iv_band .iv_col:last-child { justify-self: start; } }

/* Heat stroke — brand gradient (anthracite → gold → orange) as a tapered stroke under
   section headings: thin start, rounded thick end, echoing the logo's X. */
:root { --iv-heat-stroke: linear-gradient(90deg, var(--iv-ink-soft) 0%, var(--iv-gold) 45%, var(--iv-accent) 100%); }
.iv_page-content > .iv_block > h2::after,
.iv_page-content .iv_col > h2::after,
.iv_page-content .iv_col > h3:first-child::after,
.iv_section-title::after {
	content: "";
	display: block;
	width: 112px;
	height: 7px;
	margin-top: 18px;
	background: var(--iv-heat-stroke);
	clip-path: polygon(0 45%, 92% 0, 100% 50%, 92% 100%, 0 55%);
	border-radius: 0 6px 6px 0;
}
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:has(> h2:first-child) > h2:first-child::after { width: 112px; height: 7px; background: var(--iv-heat-stroke); border-radius: 0 6px 6px 0; }
}
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > h2::after { margin-inline: auto; }
.iv_band :is(h2, h3)::after { display: none !important; }

/* Heat bar v2 — three rounded segments (graphite · gold · orange) stepping up like rising heat. */
.iv_page-content > .iv_block > h2::after,
.iv_page-content .iv_col > h2::after,
.iv_page-content .iv_col > h3:first-child::after,
.iv_section-title::after,
.iv_page-content > .iv_block:has(> h2:first-child) > h2:first-child::after {
	clip-path: none !important;
	border-radius: 0 !important;
	width: 104px !important;
	height: 5px !important;
	margin-top: 20px;
	background:
		linear-gradient(var(--iv-ink-soft), var(--iv-ink-soft)) 0 0 / 18px 100% no-repeat,
		linear-gradient(var(--iv-gold), var(--iv-gold)) 26px 0 / 30px 100% no-repeat,
		linear-gradient(var(--iv-accent), var(--iv-accent)) 64px 0 / 40px 100% no-repeat !important;
	-webkit-mask: radial-gradient(circle at 2.5px 50%, #000 2.5px, transparent 2.6px) 0 0 / 0 0, linear-gradient(#000, #000);
	border-radius: 3px !important;
}

/* Photo rows: the photo follows the text column's height — 40px beyond its top and
   bottom — with a 450px minimum. */
@media (min-width: 701px) {
	.iv_page-content .iv_cols-2:has(.iv_figure--photo) { align-items: stretch; }
	.iv_page-content .iv_cols-2:has(.iv_figure--photo) > .iv_col:has(> .iv_figure--photo:only-child) { display: flex; }
	.iv_page-content .iv_col > .iv_figure--photo:only-child {
		flex: 1;
		aspect-ratio: auto;
		height: auto;
		min-height: 450px;
		margin-block: -40px;
	}
	.iv_page-content .iv_col > .iv_figure--photo:only-child img { height: 100% !important; }
}


/* Every photo row gets the offset accent frame (bottom-right). */
.iv_page-content .iv_figure--photo { overflow: visible !important; box-shadow: none !important; position: relative; background: none; }
.iv_page-content .iv_figure--photo img { border-radius: var(--iv-radius-md) !important; position: relative; z-index: 1; box-shadow: 0 18px 40px rgba(20, 20, 20, .12); }
.iv_page-content .iv_figure--photo::before {
	content: "";
	position: absolute;
	inset: 18px -18px -18px 18px;
	border: 2px solid var(--iv-accent);
	border-radius: var(--iv-radius-md);
	opacity: .55;
}
/* Photo on the right: frame mirrors to bottom-left. */
.iv_cols--flip .iv_figure--photo::before { inset: 18px 18px -18px -18px; }

/* Section padding: at least 60px top + bottom. Photo rows add the photo's 40px overhang,
   so the photo itself also sits ≥60px from the section edge. */
.iv_page-content > .iv_block { padding-block: clamp(60px, 6vw, 88px) !important; }
@media (min-width: 701px) {
	.iv_page-content > .iv_block:has(.iv_cols-2 .iv_figure--photo) { padding-block: calc(clamp(60px, 6vw, 88px) + 40px) !important; }
}
.iv_page-content > .iv_block:has(> .iv_band) { padding-block: 0 !important; }

/* Photo band v2 (Marlborough-style): tinted solid left, photo dissolves in on the right,
   copy + button stacked in one left column. */
.iv_page-content .iv_band { padding-block: clamp(80px, 9vw, 140px) !important; }
.iv_page-content .iv_band::before {
	background:
		radial-gradient(ellipse 60% 90% at 30% 50%, rgba(176, 84, 8, .22), transparent 70%),
		linear-gradient(90deg, rgba(30, 26, 24, .94) 0%, rgba(30, 26, 24, .9) 38%, rgba(30, 26, 24, .55) 62%, rgba(30, 26, 24, .08) 100%) !important;
}
.iv_page-content .iv_band .iv_cols { display: flex !important; flex-direction: column; align-items: flex-start !important; gap: 32px; max-width: 640px; }
.iv_page-content .iv_band .iv_col:last-child { justify-self: auto; }
.iv_page-content .iv_band :is(h2, h3) { font-size: clamp(1.875rem, 1.8vw + 1.1rem, 3rem) !important; line-height: 1.1; letter-spacing: -0.02em; max-width: 20ch; margin: 0; }
.iv_page-content .iv_band :is(h2, h3)::before {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin-bottom: 24px;
	border-radius: 2px;
	background: var(--iv-accent);
}
.iv_page-content .iv_band .iv_btn-row { margin: 0; }
.iv_page-content .iv_band .iv_btn { padding: 18px 30px; font-size: 1.0625rem; background: var(--iv-accent-deep); border-color: var(--iv-accent); }
.iv_page-content .iv_band .iv_btn::after { content: " →"; }
@media (max-width: 700px) {
	.iv_page-content .iv_band { padding-block: 64px !important; }
	.iv_page-content .iv_band::before { background: rgba(30, 26, 24, .82) !important; }
	.iv_page-content .iv_band .iv_btn { width: 100%; justify-content: center; }
}

/* Photo rows v3: photo overhangs the text by 30px (was 40); text vertically centred. */
@media (min-width: 701px) {
	.iv_page-content .iv_col > .iv_figure--photo:only-child { margin-block: -30px; }
	.iv_page-content > .iv_block:has(.iv_cols-2 .iv_figure--photo) { padding-block: calc(clamp(60px, 6vw, 88px) + 30px) !important; }
	.iv_page-content .iv_cols-2:has(.iv_figure--photo) > .iv_col:not(:has(> .iv_figure--photo)) { display: flex; flex-direction: column; justify-content: center; }
}
@media (min-width: 701px) {
	/* The image never sets the row height (portrait photos would): it fills the figure. */
	.iv_page-content .iv_col > .iv_figure--photo:only-child img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
}

/* Closing FAQ = same editorial layout as every topic section (no centring). */
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > * { margin-inline: 0 !important; }
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > h2 { text-align: left !important; }
.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) > h2::after { margin-inline: 0 !important; }
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:last-child:has(> .iv_faq-list) { display: grid !important; }
	.iv_page-content > .iv_block:last-child > .iv_faq-list { columns: 1 !important; border-top: 1px solid var(--iv-stone-200) !important; }
	.iv_page-content > .iv_block:last-child > .iv_faq-list .iv_faq { border-top: 0 !important; border-bottom: 1px solid var(--iv-stone-200) !important; }
	.iv_page-content > .iv_block:last-child > h2 { max-width: 16ch !important; margin: 0 !important; }
}

/* Bottom spacing: only the section's own padding (no stacked wrapper padding / margins). */
.iv_page-content { padding-bottom: 0 !important; }
.iv_page-content > .iv_block > :last-child,
.iv_page-content > .iv_block .iv_col > :last-child { margin-bottom: 0 !important; }

/* Right column starts level with the heading. */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:has(> h2:first-child) > h2:first-child + * { margin-top: 0 !important; }
	.iv_page-content > .iv_block > h2:first-child + .iv_faq-list { border-top: 0 !important; }
	.iv_page-content > .iv_block > h2:first-child + .iv_faq-list > .iv_faq:first-child summary { padding-top: 6px; }
}

/* Mobile: photo first in every photo row. */
@media (max-width: 700px) {
	.iv_page-content .iv_cols-2 > .iv_col:has(> .iv_figure--photo) { order: -1; }
	.iv_page-content .iv_figure--photo { margin-right: 18px; margin-bottom: 18px; }
	.iv_cols--flip .iv_figure--photo { margin-right: 0; margin-left: 18px; }
}

/* FAQ v3 — prominent cards. */
.iv_page-content .iv_faq-list { border: 0 !important; display: flex; flex-direction: column; gap: 12px; columns: auto !important; }
.iv_page-content .iv_faq {
	border: 1px solid var(--iv-stone-200) !important;
	border-radius: var(--iv-radius-md);
	background: var(--iv-paper);
	box-shadow: 0 2px 6px rgba(20, 20, 20, .04);
	transition: border-color .2s var(--iv-ease), box-shadow .2s var(--iv-ease);
	overflow: hidden;
	position: relative;
}
.iv_page-content > .iv_block:nth-of-type(odd) .iv_faq { background: var(--iv-stone-100); box-shadow: none; }
.iv_page-content .iv_faq::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--iv-accent); transform: scaleY(0); transition: transform .2s var(--iv-ease); }
.iv_page-content .iv_faq:hover { border-color: var(--iv-accent) !important; box-shadow: 0 10px 24px rgba(20, 20, 20, .07); }
.iv_page-content .iv_faq[open] { border-color: var(--iv-accent) !important; background: var(--iv-paper) !important; box-shadow: 0 14px 30px rgba(20, 20, 20, .08); }
.iv_page-content .iv_faq[open]::before { transform: scaleY(1); }
.iv_page-content .iv_faq summary,
.iv_page-content > .iv_block > h2:first-child + .iv_faq-list > .iv_faq:first-child summary { padding: 20px 64px 20px 24px !important; font-weight: 600; font-size: 1.0625rem; color: var(--iv-ink); }
.iv_page-content .iv_faq summary::after {
	right: 20px !important;
	width: 30px; height: 30px;
	border: 0 !important;
	background: var(--iv-accent-soft) !important;
	color: var(--iv-accent-deep) !important;
	font-weight: 600 !important;
	transition: background .2s var(--iv-ease), color .2s var(--iv-ease);
}
.iv_page-content .iv_faq:hover summary::after,
.iv_page-content .iv_faq[open] summary::after { background: var(--iv-accent-deep) !important; color: #fff !important; }
.iv_page-content .iv_faq-body { padding: 0 64px 22px 24px !important; }
.iv_page-content .iv_faq[open] summary { color: var(--iv-accent-deep); }
@media (prefers-reduced-motion: reduce) { .iv_page-content .iv_faq, .iv_page-content .iv_faq::before { transition: none; } }

/* Photo band heading: smaller, wider measure (long CTA sentences read as 3–4 lines). */
.iv_page-content .iv_band .iv_cols { max-width: 920px !important; }
.iv_page-content .iv_band :is(h2, h3) { font-size: clamp(1.5rem, 1vw + 1.05rem, 2.125rem) !important; line-height: 1.22 !important; max-width: 34ch !important; letter-spacing: -0.01em; }
.iv_page-content .iv_band :is(h2, h3) { max-width: 48ch !important; }
.iv_page-content .iv_band::before { background: radial-gradient(ellipse 60% 90% at 30% 50%, rgba(176, 84, 8, .22), transparent 70%), linear-gradient(90deg, rgba(30, 26, 24, .94) 0%, rgba(30, 26, 24, .9) 50%, rgba(30, 26, 24, .5) 72%, rgba(30, 26, 24, .08) 100%) !important; }

/* Second photo band on a page: mirrored variant (text right, warm tint from the right, light button). */
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band::before {
	background:
		radial-gradient(ellipse 60% 90% at 70% 50%, rgba(245, 129, 36, .28), transparent 70%),
		linear-gradient(270deg, rgba(58, 30, 12, .95) 0%, rgba(58, 30, 12, .9) 50%, rgba(58, 30, 12, .5) 72%, rgba(58, 30, 12, .08) 100%) !important;
}
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band .iv_cols { margin-left: auto; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band .iv_btn { background: #fff !important; color: var(--iv-accent-deep) !important; border-color: #fff !important; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band .iv_btn:hover { background: var(--iv-accent-soft) !important; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band :is(h2, h3)::before { background: #fff; }
@media (max-width: 700px) {
	.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band::before { background: rgba(58, 30, 12, .85) !important; }
}

/* Second photo band v2: full warm overlay, everything centred. */
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band::before {
	background: radial-gradient(ellipse 70% 100% at 50% 50%, rgba(245, 129, 36, .22), transparent 75%), rgba(58, 30, 12, .86) !important;
}
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band .iv_cols { margin-inline: auto !important; align-items: center !important; text-align: center; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band :is(h2, h3) { margin-inline: auto !important; text-align: center; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band :is(h2, h3)::before { margin-inline: auto; }
.iv_page-content > .iv_block:has(> .iv_band) ~ .iv_block:has(> .iv_band) .iv_band .iv_btn-row { justify-content: center; }

/* Text-only two-column rows: top-aligned; opening sentence promoted to a heading (0.16.2). */
.iv_page-content .iv_cols-2:not(:has(.iv_figure--photo)) { align-items: start; }
.iv_page-content .iv_col-lead { margin: 0 0 .6em; font-size: clamp(1.25rem, .6vw + 1.05rem, 1.5rem); line-height: 1.25; }

/* Product grids inside page content ([products] shortcodes): full width, heading on top (0.16.3). */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:has(ul.products) { display: block; }
	.iv_page-content > .iv_block:has(ul.products) > h2:first-child { position: static; max-width: 24ch; margin: 0 0 clamp(28px, 3vw, 40px); }
}
.iv_page-content .iv_block > p:has(> .woocommerce) { max-width: none; margin: 0; }
.iv_page-content .iv_block .woocommerce { max-width: none; }

/* Screen-reader-only text (WooCommerce price ranges, "variaties" notes) was showing visibly. */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus { clip: auto; clip-path: none; height: auto; width: auto; margin: 0; padding: 12px 20px; z-index: 100000; background: #fff; color: #000; }
@media (min-width: 1200px) { .iv_page-content ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }

/* ---------- Project advice configurator ([iv_configurator], /offerte/) — 0.17.0 ---------- */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block:has(.iv_cfg) { display: block; }
	.iv_page-content > .iv_block:has(.iv_cfg) > h2:first-child { position: static; max-width: 28ch; margin: 0 0 clamp(24px, 3vw, 36px); }
}
.iv_page-content .iv_block > p:has(> .iv_cfg) { max-width: none; margin: 0; }
.iv_cfg { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(24px, 4vw, 56px); align-items: start; max-width: none; }
@media (max-width: 960px) { .iv_cfg { grid-template-columns: 1fr; } .iv_cfg-summary { order: 2; } }
.iv_cfg-main { background: var(--iv-paper); border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); padding: clamp(22px, 3.5vw, 44px); box-shadow: 0 18px 40px rgba(20, 20, 20, .06); min-width: 0; }
.iv_cfg-intro { margin: 0 0 22px; font-size: 1.0625rem; color: var(--iv-ink); }
.iv_cfg-progress { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.iv_cfg-progress-label { flex: none; font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--iv-ink-soft); }
.iv_cfg-progress-label b { color: var(--iv-ink); }
.iv_cfg-progress-bar { flex: 1; height: 6px; border-radius: 6px; background: var(--iv-stone-200); overflow: hidden; }
.iv_cfg-progress-bar > span { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--iv-heat-stroke, var(--iv-accent)); transition: width .35s ease; }
.iv_cfg-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.iv_cfg-title { display: flex; align-items: center; gap: 14px; padding: 0; margin: 0 0 10px; font-family: var(--iv-font-heading, inherit); font-size: clamp(1.375rem, .8vw + 1.1rem, 1.75rem); font-weight: 600; line-height: 1.2; color: var(--iv-ink); outline: none; }
.iv_cfg-num { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--iv-accent-soft); color: var(--iv-accent-deep); font-size: 1rem; }
.iv_cfg-why { margin: 0 0 24px; padding: 12px 16px; border-left: 3px solid var(--iv-accent); background: var(--iv-stone-50, #f7f5f1); border-radius: 0 var(--iv-radius-sm) var(--iv-radius-sm) 0; font-size: .9375rem; color: var(--iv-ink-soft); }
.iv_cfg-why strong { color: var(--iv-ink); }
.iv_cfg .iv_field--third { grid-column: span 1; }
.iv_cfg .iv_form-grid:has(.iv_field--third) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 600px) { .iv_cfg .iv_form-grid:has(.iv_field--third) { grid-template-columns: 1fr; } }
.iv_cfg .iv_field--big .iv_choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.iv_cfg .iv_field--big .iv_choice { padding: 16px 18px; font-weight: 600; font-size: 1rem; align-items: center; }
.iv_cfg-unit { display: flex; align-items: stretch; }
.iv_cfg-unit input { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.iv_cfg-unit > span { display: grid; place-items: center; padding: 0 14px; border: 1px solid var(--iv-stone-200); border-left: 0; border-radius: 0 var(--iv-radius-sm) var(--iv-radius-sm) 0; background: var(--iv-stone-50, #f7f5f1); color: var(--iv-ink-soft); font-size: .9375rem; }
.iv_cfg input[type=file] { padding: 14px; border: 1px dashed var(--iv-stone-300, #cfc8bc); border-radius: var(--iv-radius-sm); background: var(--iv-stone-50, #f7f5f1); font: inherit; font-size: .9375rem; }
.iv_cfg-hint { color: var(--iv-ink-soft); font-size: .8125rem; }
.iv_cfg-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--iv-stone-200); }
.iv_cfg-nav-right { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-left: auto; }
.iv_cfg-back, .iv_cfg-skip { padding: 8px 0; border: 0; background: none; font: inherit; font-size: .9375rem; font-weight: 600; color: var(--iv-ink-soft); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--iv-stone-300, #cfc8bc); }
.iv_cfg-back:hover, .iv_cfg-skip:hover { color: var(--iv-accent-deep); text-decoration-color: currentColor; }
.iv_cfg-summary { position: sticky; top: 110px; padding: 24px; border-radius: var(--iv-radius-md); background: var(--iv-graphite, #232323); color: rgba(255, 255, 255, .78); }
.iv_cfg-summary-title { margin: 0 0 16px !important; font-size: 1.0625rem !important; color: #fff !important; }
.iv_cfg-summary-title::after { display: none !important; }
.iv_cfg-summary dl { margin: 0; display: grid; gap: 4px; }
.iv_cfg-summary dt { margin-top: 10px; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.iv_cfg-summary dd { margin: 0; color: #fff; font-weight: 600; font-size: .9375rem; overflow-wrap: anywhere; }
.iv_cfg-summary dd.iv_cfg-summary-none { font-weight: 400; color: rgba(255, 255, 255, .6); }
.iv_cfg-summary-product { margin: 0 0 8px; font-size: .9375rem; }
.iv_cfg-summary-product span { display: block; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.iv_cfg-summary-product a { color: #fff; font-weight: 600; }
.iv_cfg .was-validated input:invalid { border-color: #b3261e; }
.iv_single-cfg-link { display: inline-block; margin-top: 12px; font-weight: 600; color: var(--iv-accent-deep); text-decoration: underline; text-underline-offset: 4px; }
.iv_single-cfg-link:hover { color: var(--iv-ink); }
.iv_cfg [hidden] { display: none !important; }

/* =================== Homepage sections 5–12 (0.18.0) =================== */
.iv_hs-headrow { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.iv_hs-headrow > a { flex: none; }
.iv_hs-more { margin: 32px 0 0; }

/* 5 · Applications: photo tiles */
.iv_hs-apps { background: var(--iv-paper); }
.iv_tiles { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.iv_tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.iv_tile-inner { position: relative; display: block; aspect-ratio: 16 / 10; border-radius: var(--iv-radius-md); overflow: hidden; background: var(--iv-ink); color: #fff; text-decoration: none; isolation: isolate; }
.iv_tile-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; z-index: -2; transition: transform .5s var(--iv-ease); }
.iv_tile-inner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 20, 20, 0) 35%, rgba(20, 20, 20, .82) 100%); }
.iv_tile-title { position: absolute; left: 20px; right: 20px; bottom: 18px; font-family: var(--iv-font-display); font-weight: 600; font-size: 1.1875rem; line-height: 1.2; text-wrap: balance; }
.iv_tile-title span { display: inline-block; color: var(--iv-accent); transition: transform .2s var(--iv-ease); }
.iv_tile-inner::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--iv-heat-stroke); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--iv-ease); z-index: 1; }
.iv_tile-inner:hover img, .iv_tile-inner:focus-visible img { transform: scale(1.05); }
.iv_tile-inner:hover::before, .iv_tile-inner:focus-visible::before { transform: scaleX(1); }
.iv_tile-inner:hover .iv_tile-title span { transform: translateX(4px); }
.iv_tile-inner:focus-visible { outline: 3px solid var(--iv-accent); outline-offset: 3px; }
@media (max-width: 1000px) { .iv_tiles, .iv_tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .iv_tiles, .iv_tiles--4 { grid-template-columns: 1fr; } .iv_tile-inner { aspect-ratio: 16 / 8; } }

/* 6 · Principle: dark compare */
.iv_hs-principle { background: var(--iv-ink); color: rgba(255, 255, 255, .78); }
.iv_hs-principle .iv_section-title { color: #fff; max-width: 26ch; }
.iv_hs-principle .iv_eyebrow { color: var(--iv-accent); }
.iv_hs-principle .iv_textlink { color: #fff; }
.iv_compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
.iv_compare-col { padding: 28px; border-radius: var(--iv-radius-md); border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); }
.iv_compare-col--b { border-color: rgba(245, 129, 36, .55); background: linear-gradient(180deg, rgba(245, 129, 36, .12), rgba(245, 129, 36, .02)); }
.iv_compare-diagram svg { display: block; width: 100%; height: auto; max-height: 190px; margin-bottom: 18px; }
.iv_cd-hall { fill: none; stroke: rgba(255, 255, 255, .45); stroke-width: 2.5; stroke-linejoin: round; }
.iv_cd-fill { fill: rgba(255, 140, 60, .16); }
.iv_cd-rise path { fill: none; stroke: rgba(255, 160, 90, .8); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.iv_cd-unit { fill: rgba(255, 255, 255, .25); }
.iv_cd-zone path { fill: rgba(245, 129, 36, .32); }
.iv_cd-heater { fill: var(--iv-accent); }
.iv_cd-person circle, .iv_cd-person path { fill: none; stroke: #fff; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.iv_compare-title { margin: 0 0 12px; font-size: 1.3125rem; color: #fff; }
.iv_compare-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.iv_compare-list li { position: relative; padding-left: 22px; line-height: 1.6; }
.iv_compare-list li::before { content: ""; position: absolute; left: 0; top: .62em; width: 10px; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, .45); }
.iv_compare-col--b .iv_compare-list li::before { background: var(--iv-accent); }
@media (max-width: 800px) { .iv_compare { grid-template-columns: 1fr; } .iv_compare-col { padding: 22px; } }

/* 7 · Project advice */
.iv_hs-advice { background: var(--iv-paper); }
.iv_advice { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding: clamp(28px, 4vw, 56px); border-radius: var(--iv-radius-md); background: var(--iv-accent-soft); border: 1px solid rgba(245, 129, 36, .3); }
.iv_advice-copy .iv_section-intro { margin-bottom: 28px; }
.iv_advice-routes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.iv_advice-routes a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-radius: var(--iv-radius-sm); background: var(--iv-paper); border: 1px solid var(--iv-stone-200); color: var(--iv-ink); font-weight: 600; text-decoration: none; transition: border-color .2s var(--iv-ease), transform .2s var(--iv-ease); }
.iv_advice-routes a span:last-child { color: var(--iv-accent-deep); transition: transform .2s var(--iv-ease); }
.iv_advice-routes a:hover, .iv_advice-routes a:focus-visible { border-color: var(--iv-accent); transform: translateX(4px); outline: none; }
@media (max-width: 860px) { .iv_advice { grid-template-columns: 1fr; } }

/* 8 · Projects */
.iv_hs-projects { background: var(--iv-stone-100); }
.iv_hs-projects .iv_cards, .iv_hs-know .iv_cards { margin-top: 36px; }

/* 9 · Technology */
.iv_hs-tech { background: var(--iv-paper); }
.iv_catrow { margin-top: 36px; display: flex; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid var(--iv-stone-200); }
.iv_catrow-title { margin: 0; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--iv-ink-soft); }
.iv_catrow ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.iv_catrow a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--iv-stone-200); border-radius: 999px; color: var(--iv-ink); font-weight: 600; font-size: .9375rem; text-decoration: none; transition: border-color .2s, background .2s; }
.iv_catrow a:hover { border-color: var(--iv-accent); background: var(--iv-accent-soft); }
.iv_catrow-n { font-size: .75rem; font-weight: 600; color: var(--iv-ink-soft); }

/* 10 · Approach */
.iv_hs-approach { background: var(--iv-stone-100); }
.iv_steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
.iv_step { position: relative; padding: 26px 24px; border-radius: var(--iv-radius-md); background: var(--iv-paper); border: 1px solid var(--iv-stone-200); }
.iv_step-n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--iv-ink); color: #fff; font-weight: 700; margin-bottom: 18px; }
.iv_step:last-child .iv_step-n { background: var(--iv-accent-deep); }
.iv_step-title { margin: 0 0 8px; font-size: 1.25rem; }
.iv_step-text { margin: 0; color: var(--iv-ink-soft); font-size: .9375rem; line-height: 1.6; }
@media (min-width: 1001px) { .iv_step:not(:last-child)::after { content: ""; position: absolute; top: 45px; right: -17px; width: 18px; height: 2px; background: var(--iv-accent); } }
@media (max-width: 1000px) { .iv_steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .iv_steps { grid-template-columns: 1fr; } }

/* 11 · Professionals: dark band */
.iv_hs-pro { background: var(--iv-ink); }
.iv_pro { display: flex; align-items: center; justify-content: space-between; gap: 28px 56px; flex-wrap: wrap; }
.iv_pro-copy { max-width: 640px; }
.iv_hs-pro .iv_section-title { color: #fff; }
.iv_hs-pro .iv_eyebrow { color: var(--iv-accent); }
.iv_hs-pro .iv_section-intro { color: rgba(255, 255, 255, .75); }
.iv_pro-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 0; }
.iv_btn-ghost { border: 1.5px solid rgba(255, 255, 255, .45); color: #fff !important; background: transparent; }
.iv_btn-ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }

/* 12 · Knowledge */
.iv_hs-know { background: var(--iv-paper); }

/* Journey blocks on solution/application pages (0.18.0) */
@media (min-width: 1000px) {
	.iv_page-content > .iv_block.iv_journey { display: block !important; }
	.iv_page-content > .iv_block.iv_journey > h2:first-child { position: static !important; max-width: 28ch !important; margin: 0 0 clamp(28px, 3vw, 40px) !important; }
}
.iv_page-content .iv_journey > * { max-width: none; }
.iv_page-content .iv_journey .iv_cards { margin-top: 0; }
.iv_page-content .iv_journey .iv_btn-row { margin-top: 24px; }
.iv_advice--page { grid-template-columns: minmax(0, 1fr) auto; }
.iv_page-content .iv_advice--page h2 { margin: 0 0 10px; }
.iv_page-content .iv_advice--page h2::after { display: none !important; }
.iv_advice--page .iv_advice-copy p { margin: 0; max-width: 60ch; }
.iv_advice-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: 0; }
@media (max-width: 860px) { .iv_advice--page { grid-template-columns: 1fr; } }
.iv_page-content > .iv_block.iv_journey--advice { padding-block: clamp(40px, 5vw, 64px); }

/* Project case study (0.18.0) */
.iv_page-content > .iv_block.iv_case-main { display: block !important; }
.iv_case-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 5vw, 72px); align-items: start; }
@media (max-width: 960px) { .iv_case-grid { grid-template-columns: 1fr; } }
.iv_page-content .iv_case-story > * { max-width: 70ch; }
.iv_case-lead { margin: 0 0 32px; padding: 20px 24px; border-left: 4px solid var(--iv-accent); background: var(--iv-stone-100); border-radius: 0 var(--iv-radius-sm) var(--iv-radius-sm) 0; font-size: 1.1875rem; line-height: 1.6; color: var(--iv-ink); font-weight: 500; }
.iv_case-step { margin: 0 0 32px; }
.iv_page-content .iv_case-step-title { display: flex; align-items: center; gap: 14px; margin: 0 0 12px !important; font-size: clamp(1.375rem, .8vw + 1.1rem, 1.75rem) !important; }
.iv_page-content .iv_case-step-title::after { display: none !important; }
.iv_case-step-n { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--iv-accent-soft); color: var(--iv-accent-deep); font-size: 1rem; }
.iv_case-step:last-child .iv_case-step-n { background: var(--iv-ink); color: #fff; }
.iv_case-aside { position: sticky; top: 110px; display: grid; gap: 16px; }
.iv_page-content .iv_case-aside-title { margin: 0 0 14px !important; font-size: 1.125rem !important; max-width: none !important; }
.iv_page-content .iv_case-aside-title::after { display: none !important; }
.iv_case-facts { padding: 24px; border-radius: var(--iv-radius-md); border: 1px solid var(--iv-stone-200); background: var(--iv-paper); }
.iv_case-facts dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; font-size: .9375rem; }
.iv_case-facts dt { color: var(--iv-ink-soft); }
.iv_case-facts dd { margin: 0; font-weight: 600; color: var(--iv-ink); }
.iv_case-cta { padding: 26px; border-radius: var(--iv-radius-md); background: var(--iv-ink); color: rgba(255, 255, 255, .78); }
.iv_page-content .iv_case-cta .iv_case-aside-title { color: #fff; }
.iv_case-cta p { margin: 0 0 20px; font-size: .9375rem; line-height: 1.6; }
.iv_case-phone { display: block; margin-top: 14px; color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.iv_case-gallery { list-style: none; margin: 0; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.iv_case-gallery li { margin: 0 !important; padding: 0 !important; }
.iv_case-gallery li::before { display: none !important; }
.iv_case-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--iv-radius-sm); display: block; }
@media (max-width: 700px) { .iv_case-gallery { grid-template-columns: 1fr 1fr; } }
.iv_page-content .iv_case-cta p { color: rgba(255, 255, 255, .8) !important; }
.iv_page-content .iv_case-cta .iv_case-phone { color: #fff !important; text-decoration-color: rgba(255, 255, 255, .4); }

/* /projecten/ filter */
.iv_filterbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.iv_filterbar button { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1px solid var(--iv-stone-200); border-radius: 999px; background: var(--iv-paper); font: inherit; font-size: .9375rem; font-weight: 600; color: var(--iv-ink); cursor: pointer; transition: border-color .2s, background .2s; }
.iv_filterbar button span { font-size: .75rem; color: var(--iv-ink-soft); }
.iv_filterbar button:hover { border-color: var(--iv-accent); }
.iv_filterbar button.is-active { background: var(--iv-ink); border-color: var(--iv-ink); color: #fff; }
.iv_filterbar button.is-active span { color: rgba(255, 255, 255, .7); }
.iv_cards li[hidden] { display: none !important; }
.iv_product-cases { margin-top: 56px; }

/* Listings ([iv_listing]) use the full content width (0.18.1). */
.iv_page-content .iv_block > :is(.iv_cards, .iv_filterbar, .iv_pager) { max-width: none !important; }
.iv_page-content .iv_block > p:empty { display: none; }
@media (min-width: 1000px) { .iv_page-content > .iv_block:has(> .iv_cards) { display: block !important; } }

/* =========== One button system, site-wide (0.18.1) ===========
   Every text button: pill, 1.5px border, 15px/600, 14×26 padding (46px tall).
   Large (.iv_btn-lg and full-width photo-band CTAs): 16px/600, 16×32 (52px tall).
   Icon buttons (header icons, qty ±, card "view" arrow) are excluded. */
:is(.iv_btn, a.button, button.button, input.button, .button.alt, .single_add_to_cart_button, .add_to_cart_button, .checkout-button, #place_order, .wc-forward, .woocommerce-button):not(.iv_icon-btn, .iv_qty-btn, .iv_card-view):not(#iv_x) {
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 14px 26px !important;
	border-radius: 999px !important;
	border-width: 1.5px !important;
	border-style: solid !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: 0 !important;
	text-align: center;
	white-space: normal;
}
:is(.iv_btn-lg, .iv_band .iv_btn, .iv_cfg-nav [type=submit]):not(#iv_x):not(#iv_y) {
	min-height: 52px;
	padding: 16px 32px !important;
	font-size: 16px !important;
}
/* Specificity note: :not(#iv_x) lifts these above older !important button rules in main.css. */
/* Buttons that had no border colour of their own get one matching their fill. */
.single_add_to_cart_button { border-color: var(--iv-accent) !important; }

/* Mobile overflow fixes (0.18.2) */
.iv_page-content :is(p, li, td) a { overflow-wrap: anywhere; }
.single-product div.product > *, .single-product .woocommerce-product-gallery, .iv_gallery-thumbs { min-width: 0; max-width: 100%; }
.single-product .woocommerce-product-gallery { overflow: hidden; }
.woocommerce-tabs ul.tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
.woocommerce-tabs ul.tabs li { flex: none; }
.woocommerce-Tabs-panel table, .single-product .entry-content table { display: block; max-width: 100%; min-width: 0 !important; width: auto !important; overflow-x: auto; }

/* 0.18.4 — Application tiles: whole photo, centred, never cropped (blurred copy fills the frame);
   title under the photo. */
.iv_tile-inner { aspect-ratio: auto; display: flex; flex-direction: column; background: var(--iv-paper); color: var(--iv-ink); border: 1px solid var(--iv-stone-200); }
.iv_tile-inner::after { display: none; }
.iv_tile-media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--iv-ink); }
.iv_tile-media::before { content: ""; position: absolute; inset: -20px; background: var(--iv-tile-bg) center / cover no-repeat; filter: blur(18px) brightness(.75); }
.iv_tile-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: center; z-index: 1; }
.iv_tile-title { position: static; display: block; padding: 16px 18px 18px; font-size: 1.0625rem; color: var(--iv-ink); }
.iv_tile-inner::before { top: auto; bottom: 0; z-index: 2; }
.iv_tile-inner:hover img, .iv_tile-inner:focus-visible img { transform: scale(1.03); }
@media (max-width: 560px) { .iv_tile-inner { aspect-ratio: auto; } }

/* Het principe: brand gradient, no illustrations, prominent button. */
.iv_hs-principle { background: radial-gradient(120% 140% at 100% 100%, rgba(245, 129, 36, .38) 0%, rgba(176, 84, 8, .18) 35%, transparent 65%), linear-gradient(135deg, #1d1d1d 0%, var(--iv-ink) 45%, #3a2414 100%); }
.iv_compare-col { padding: 32px; }
.iv_compare-col--b { background: linear-gradient(160deg, rgba(245, 129, 36, .22), rgba(245, 129, 36, .05)); }
.iv_compare-title { font-size: 1.375rem; }
.iv_hs-principle .iv_hs-more { margin-top: 36px; }

/* 0.18.5 — "Wat wil je oplossen?": numbered list + one large photo that follows hover/focus. */
.iv_plist { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: stretch; margin-top: 40px; }
.iv_plist-items { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--iv-stone-200); }
.iv_plist-item { border-bottom: 1px solid var(--iv-stone-200); }
.iv_plist-link { position: relative; display: flex; gap: 22px; padding: 26px 8px 26px 0; color: inherit; text-decoration: none; }
.iv_plist-link::before { content: ""; position: absolute; left: 0; bottom: -1px; height: 3px; width: 100%; background: var(--iv-heat-stroke); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--iv-ease); }
.iv_plist-item.is-active .iv_plist-link::before { transform: scaleX(1); }
.iv_plist-n { flex: none; width: 44px; font-family: var(--iv-font-display); font-weight: 600; font-size: 1rem; line-height: 1.9; color: var(--iv-stone-400, #a9a29a); transition: color .25s; }
.iv_plist-item.is-active .iv_plist-n { color: var(--iv-accent-deep); }
.iv_plist-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.iv_plist-title { font-family: var(--iv-font-display); font-weight: 600; font-size: clamp(1.25rem, .6vw + 1.05rem, 1.5rem); line-height: 1.25; color: var(--iv-ink); }
.iv_plist-text { color: var(--iv-ink-soft); line-height: 1.6; max-width: 52ch; }
.iv_plist-more { font-weight: 600; font-size: .9375rem; color: var(--iv-accent-deep); }
.iv_plist-more span { display: inline-block; transition: transform .2s var(--iv-ease); }
.iv_plist-link:hover .iv_plist-more span, .iv_plist-link:focus-visible .iv_plist-more span { transform: translateX(4px); }
.iv_plist-link:focus-visible { outline: 3px solid var(--iv-accent); outline-offset: 4px; }
.iv_plist-thumb { display: none; }
.iv_plist-stage { position: relative; min-height: 460px; border-radius: var(--iv-radius-md); overflow: hidden; background: var(--iv-ink); box-shadow: 0 24px 50px rgba(20, 20, 20, .14); }
.iv_plist-photo { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .45s var(--iv-ease), transform .8s var(--iv-ease); }
.iv_plist-photo.is-active { opacity: 1; transform: none; }
@media (max-width: 900px) {
	.iv_plist { grid-template-columns: 1fr; }
	.iv_plist-stage { display: none; }
	.iv_plist-thumb { display: block; flex: none; width: 88px; height: 88px; margin-left: auto; border-radius: var(--iv-radius-sm); overflow: hidden; }
	.iv_plist-thumb img { width: 100%; height: 100%; object-fit: cover; }
	.iv_plist-n { width: 32px; }
	.iv_plist-link { gap: 14px; }
}
@media (prefers-reduced-motion: reduce) { .iv_plist-photo, .iv_plist-link::before { transition: none; } }

/* 0.18.6 — Section 3 = real projects (option A): photo, project name, the case's own line. */
.iv_cases { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.iv_case-card a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.iv_case-card-media { display: block; aspect-ratio: 4 / 5; border-radius: var(--iv-radius-md); overflow: hidden; background: var(--iv-stone-200); }
.iv_case-card-media img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .6s var(--iv-ease); }
.iv_case-card a:hover img, .iv_case-card a:focus-visible img { transform: scale(1.04); }
.iv_case-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 2px 0; }
.iv_case-card-title { font-family: var(--iv-font-display); font-weight: 600; font-size: 1.125rem; line-height: 1.3; color: var(--iv-ink); text-wrap: balance; }
.iv_case-card a:hover .iv_case-card-title { color: var(--iv-accent-deep); }
.iv_case-card-text { font-size: .9375rem; line-height: 1.55; color: var(--iv-ink-soft); }
.iv_case-card a:focus-visible { outline: 3px solid var(--iv-accent); outline-offset: 4px; border-radius: var(--iv-radius-md); }
@media (max-width: 1000px) { .iv_cases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .iv_cases { grid-template-columns: 1fr; } .iv_case-card-media { aspect-ratio: 16 / 10; } }

/* 0.18.7 — Section 3 cases: 2×2, 16:9 photos, each in a white box. */
.iv_cases { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.iv_case-card a { background: var(--iv-paper); border: 1px solid var(--iv-stone-200); border-radius: var(--iv-radius-md); overflow: hidden; transition: box-shadow .25s var(--iv-ease), transform .25s var(--iv-ease); }
.iv_case-card a:hover, .iv_case-card a:focus-visible { box-shadow: 0 16px 36px rgba(20, 20, 20, .09); transform: translateY(-2px); }
.iv_case-card-media { aspect-ratio: 16 / 9; border-radius: 0; }
.iv_case-card-body { padding: 20px 24px 24px; gap: 8px; }
.iv_case-card-title { font-size: 1.25rem; }
@media (max-width: 760px) { .iv_cases { grid-template-columns: 1fr; } .iv_case-card-media { aspect-ratio: 16 / 9; } }

/* 0.18.9 — "Wat wil je oplossen?": warm brand glow behind the cards + glow on hover. */
.iv_problems-section { position: relative; isolation: isolate; overflow: hidden; }
.iv_problems-section::before,
.iv_problems-section::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; filter: blur(40px); }
.iv_problems-section::before { width: 720px; height: 720px; right: -180px; top: -220px; background: radial-gradient(circle, rgba(245, 129, 36, .30) 0%, rgba(245, 129, 36, .10) 45%, transparent 70%); }
.iv_problems-section::after { width: 620px; height: 620px; left: -220px; bottom: -260px; background: radial-gradient(circle, rgba(242, 183, 5, .22) 0%, rgba(242, 183, 5, .07) 45%, transparent 70%); }
.iv_problem-inner { box-shadow: 0 1px 0 rgba(20, 20, 20, .02); }
.iv_problem-inner:hover, .iv_problem-inner:focus-visible { box-shadow: 0 0 0 1px rgba(245, 129, 36, .35), 0 18px 44px rgba(245, 129, 36, .20); }
.iv_problems-more { position: relative; }
@media (prefers-reduced-motion: reduce) { .iv_problem-inner { transition: none; } }

/* 0.19.0 — Footer CTA = configurator quick start (replaces infra's trust-badge card). */
.iv_footer-cta-inner { align-items: center; }
.iv_footer-chips { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: min(100%, 520px); }
.iv_footer-chips a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-radius: var(--iv-radius-sm); border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .05); color: #fff; font-weight: 600; font-size: .9375rem; text-decoration: none; transition: background .2s, border-color .2s, transform .2s var(--iv-ease); }
.iv_footer-chips a svg { flex: none; color: var(--iv-accent); transition: transform .2s var(--iv-ease); }
.iv_footer-chips a:hover, .iv_footer-chips a:focus-visible { background: rgba(245, 129, 36, .16); border-color: rgba(245, 129, 36, .6); outline: none; }
.iv_footer-chips a:hover svg, .iv_footer-chips a:focus-visible svg { transform: translateX(3px); }
@media (max-width: 560px) { .iv_footer-chips { grid-template-columns: 1fr; } }
.iv_footer-cta-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; font-size: .875rem; color: rgba(255, 255, 255, .62); }
.iv_footer-cta-meta > * { display: inline-flex; align-items: center; gap: 8px; }
.iv_footer-cta-meta svg { color: var(--iv-accent); }
.iv_footer-cta-meta a { color: rgba(255, 255, 255, .8); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .25); text-underline-offset: 4px; }
.iv_footer-cta-meta a:hover { color: #fff; text-decoration-color: var(--iv-accent); }

/* 0.19.2 — Mobile footer polish. The sticky CTA hides over the footer, so no body padding needed. */
@media (max-width: 767px) {
	body { padding-bottom: 0 !important; }
	.iv_footer-extra { flex-direction: column; align-items: stretch; gap: 24px; }
	.iv_footer-connect { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 14px 20px; }
	.iv_footer-connect .iv_footer-title { grid-column: 1; }
	.iv_footer-connect .iv_footer-menu--inline { grid-column: 2 / 4; justify-self: end; gap: 18px; }
	.iv_footer-connect .iv_footer-dealer { grid-column: 1 / -1; width: 100%; }
	.iv_footer-certs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px 12px; justify-items: center; align-items: center; }
	.iv_footer-certs img { height: 44px; max-width: 88px; object-fit: contain; }
	.iv_footer-legal-row { flex-direction: column; align-items: center; gap: 10px; text-align: center; }
	.iv_footer-copy { margin: 0; font-size: .8125rem; line-height: 1.6; }
	.iv_footer-copy .iv_footer-credit { display: block; margin: 4px 0 0; }
	.iv_footer-legal-menu { justify-content: center; }
}

/* 0.19.3 — Projecten carousel: two cards fully visible, the third peeking in from the right edge. */
.iv_hs-projects { overflow: hidden; }
.iv_cases--carousel { display: flex !important; grid-template-columns: none !important; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 0; overscroll-behavior-x: contain; scrollbar-width: none; margin-right: calc(50% - 50vw); padding-right: 24px; padding-bottom: 6px; }
.iv_cases--carousel::-webkit-scrollbar { display: none; }
.iv_cases--carousel > li { flex: 0 0 calc((min(100vw, var(--iv-container-max)) - 2 * var(--iv-gutter) - 48px) / 2.25); scroll-snap-align: start; }
.iv_cases--carousel:focus-visible { outline: 3px solid var(--iv-accent); outline-offset: 6px; }
.iv_hs-projects .iv_hs-headrow > a, .iv_carousel-nav { flex: none; }
.iv_hs-projects .iv_hs-headrow { align-items: flex-end; }
.iv_carousel-nav { display: inline-flex; gap: 8px; margin-left: auto; margin-right: 12px; }
.iv_carousel-btn { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--iv-ink); background: transparent; color: var(--iv-ink); font-size: 1.125rem; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.iv_carousel-btn:hover:not(:disabled) { background: var(--iv-ink); color: #fff; }
.iv_carousel-btn:disabled { opacity: .3; cursor: default; }
@media (max-width: 760px) {
	.iv_cases--carousel > li { flex-basis: 82%; }
	.iv_carousel-nav { display: none; }
}

/* Footer social icons */
.iv_footer-menu--inline a { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--iv-stone-200); color: var(--iv-ink); transition: background .2s, color .2s, border-color .2s; }
.iv_footer-menu--inline a:hover, .iv_footer-menu--inline a:focus-visible { background: var(--iv-accent-deep); border-color: var(--iv-accent-deep); color: #fff; }
.iv_footer-menu--inline { gap: 10px !important; }
.iv_footer-menu--inline a { padding: 0 !important; line-height: 0; }
.iv_footer-menu--inline a svg { display: block; }
.iv_footer-menu--inline a { display: inline-grid !important; place-items: center; }
.iv_single-cfg-link.iv_btn { display: flex; width: 100%; margin-top: 12px; color: #fff !important; text-decoration: none; }
/* Social icons: no list dot, readable in every state. */
.iv_footer-menu--inline > li { list-style: none !important; padding-left: 0 !important; }
.iv_footer-menu--inline > li::before, .iv_footer-menu--inline > li::marker, .iv_footer-menu--inline a::before, .iv_footer-menu--inline a::after { content: none !important; display: none !important; }
.iv_footer-menu--inline a, .iv_footer-menu--inline a svg { color: var(--iv-ink) !important; fill: currentColor; }
.iv_footer-menu--inline a:hover, .iv_footer-menu--inline a:focus-visible { background: var(--iv-ink) !important; border-color: var(--iv-ink) !important; }
.iv_footer-menu--inline a:hover svg, .iv_footer-menu--inline a:focus-visible svg { color: #fff !important; }
