/*
Theme Name: IPTV Belgique Signal
Theme URI: https://iptvbelgiquez.com/
Author: IPTV belgique
Author URI: https://iptvbelgiquez.com/
Description: Theme WordPress sur mesure pour IPTV belgique. Direction « Telecom Tech Platform » : fond blanc dominant, photographie editoriale, panneaux techniques, tarifs lisibles et support visible sur chaque page. Optimise pour la Belgique (fr-BE), mobile-first, accessible et rapide.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: iptv-belgique
Tags: custom-theme, iptv, streaming, belgium, french, accessibility-ready, responsive
*/

/* ==========================================================================
   0. TOKENS — systeme de design « Signal »
   Palette derivee du logo IPTV belgique : encre, or et rouge sur blanc.
   ========================================================================== */
:root {
	/* Encre & texte */
	--ibz-ink: #0f1115;
	--ibz-ink-2: #1b1f27;
	--ibz-ink-3: #2c333f;
	--ibz-body: #4b5462;
	--ibz-muted: #6b7484;

	/* Surfaces */
	--ibz-white: #ffffff;
	--ibz-cream: #fffdf8;
	--ibz-mist: #f5f6f8;
	--ibz-sand: #faf7f0;
	--ibz-line: #e6e8ec;
	--ibz-line-warm: #ece7dc;

	/* Accents de marque */
	--ibz-red: #e62330;
	--ibz-red-600: #cc1a27;
	--ibz-red-700: #a5121d;
	--ibz-red-soft: #fdeceb;
	--ibz-gold: #f7be00;
	--ibz-gold-600: #d9a400;
	--ibz-gold-soft: #fff6d9;

	/* Etats */
	--ibz-green: #0e8f63;
	--ibz-green-soft: #e6f6ef;
	--ibz-blue: #1e5fa8;
	--ibz-blue-soft: #eaf2fb;
	--ibz-wa: #25d366;
	--ibz-wa-700: #128c7e;

	/* Rayons */
	--ibz-r-xs: 6px;
	--ibz-r-sm: 10px;
	--ibz-r-md: 14px;
	--ibz-r-lg: 18px;
	--ibz-r-xl: 26px;
	--ibz-r-pill: 999px;

	/* Ombres */
	--ibz-sh-1: 0 1px 2px rgba(15, 17, 21, .05), 0 1px 1px rgba(15, 17, 21, .04);
	--ibz-sh-2: 0 6px 18px -8px rgba(15, 17, 21, .16), 0 2px 6px -2px rgba(15, 17, 21, .05);
	--ibz-sh-3: 0 20px 44px -22px rgba(15, 17, 21, .28), 0 8px 18px -10px rgba(15, 17, 21, .10);
	--ibz-sh-4: 0 44px 88px -40px rgba(15, 17, 21, .40);

	/* Rythme */
	--ibz-container: 1216px;
	--ibz-gutter: clamp(1rem, 4vw, 2.25rem);
	--ibz-section-y: clamp(3.5rem, 6.5vw, 6.5rem);
	--ibz-header-h: 72px;

	/* Typographie */
	--ibz-font-title: "Barlow", "Segoe UI", system-ui, -apple-system, sans-serif;
	--ibz-font-text: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;

	/* Mouvement */
	--ibz-t-fast: 150ms cubic-bezier(.4, 0, .2, 1);
	--ibz-t-base: 240ms cubic-bezier(.4, 0, .2, 1);
	--ibz-t-slow: 340ms cubic-bezier(.22, .61, .36, 1);
}

/* ==========================================================================
   1. RESET & BASE
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ibz-header-h) + 18px);
}

body {
	margin: 0;
	background: var(--ibz-white);
	color: var(--ibz-body);
	font-family: var(--ibz-font-text);
	font-size: 1.0625rem;
	line-height: 1.72;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--ibz-font-title);
	color: var(--ibz-ink);
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: -.018em;
}

h1 { font-size: clamp(2.05rem, 1.35rem + 3.1vw, 3.55rem); line-height: 1.05; }
h2 { font-size: clamp(1.65rem, 1.2rem + 1.95vw, 2.6rem); line-height: 1.1; }
h3 { font-size: clamp(1.2rem, 1.06rem + .6vw, 1.5rem); }
h4 { font-size: clamp(1.06rem, 1rem + .3vw, 1.2rem); }
h5 { font-size: 1.0625rem; }
h6 { font-size: .95rem; letter-spacing: .02em; text-transform: uppercase; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--ibz-red-600);
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	transition: color var(--ibz-t-fast);
}
a:hover { color: var(--ibz-red-700); }

img, picture, svg, video { max-width: 100%; height: auto; display: block; }
img { border-style: none; }

ul, ol { margin: 0 0 1.15em; padding-left: 1.25rem; }
li { margin-bottom: .45em; }
li:last-child { margin-bottom: 0; }

strong, b { font-weight: 700; color: var(--ibz-ink-2); }
small { font-size: .875rem; }

hr {
	border: 0;
	height: 1px;
	background: var(--ibz-line);
	margin: 2.5rem 0;
}

blockquote {
	margin: 1.8rem 0;
	padding: 1.25rem 1.5rem;
	border-left: 3px solid var(--ibz-gold);
	background: var(--ibz-sand);
	border-radius: 0 var(--ibz-r-md) var(--ibz-r-md) 0;
	color: var(--ibz-ink-2);
	font-size: 1.1rem;
}
blockquote p:last-child { margin-bottom: 0; }
blockquote cite { display: block; margin-top: .6rem; font-size: .9rem; font-style: normal; color: var(--ibz-muted); }

code, kbd, pre {
	font-family: ui-monospace, SFMono-Regular, "Cascadia Mono", Menlo, monospace;
	font-size: .9em;
}
code {
	background: var(--ibz-mist);
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-xs);
	padding: .12em .38em;
	color: var(--ibz-ink-2);
}
pre {
	background: var(--ibz-ink);
	color: #eef1f6;
	padding: 1.1rem 1.25rem;
	border-radius: var(--ibz-r-md);
	overflow-x: auto;
}
pre code { background: none; border: 0; color: inherit; padding: 0; }

table { border-collapse: collapse; width: 100%; }

/* ==========================================================================
   2. ACCESSIBILITE
   ========================================================================== */
.ibz-skip-link {
	position: absolute;
	left: 12px;
	top: -80px;
	z-index: 999;
	background: var(--ibz-ink);
	color: #fff;
	padding: .8rem 1.15rem;
	border-radius: var(--ibz-r-sm);
	font-weight: 600;
	text-decoration: none;
	transition: top var(--ibz-t-fast);
}
.ibz-skip-link:focus { top: 12px; color: #fff; }

.ibz-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ibz-gold);
	outline-offset: 2px;
	border-radius: var(--ibz-r-xs);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================================
   3. LAYOUT
   ========================================================================== */
.ibz-container {
	width: 100%;
	max-width: var(--ibz-container);
	margin-inline: auto;
	padding-inline: var(--ibz-gutter);
}
.ibz-container--narrow { max-width: 860px; }
.ibz-container--mid { max-width: 1040px; }

.ibz-section { padding-block: var(--ibz-section-y); position: relative; }
.ibz-section--tight { padding-block: clamp(2.5rem, 4.5vw, 4rem); }
.ibz-section--white { background: var(--ibz-white); }
.ibz-section--mist { background: var(--ibz-mist); }
.ibz-section--sand { background: var(--ibz-sand); }
.ibz-section--cream { background: var(--ibz-cream); }
.ibz-section--ink { background: var(--ibz-ink); color: #cdd3dd; }
.ibz-section--ink h2,
.ibz-section--ink h3,
.ibz-section--ink h4 { color: #fff; }

.ibz-grid { display: grid; gap: clamp(1rem, 2.2vw, 1.6rem); }
.ibz-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ibz-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ibz-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1023px) {
	.ibz-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ibz-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
	.ibz-grid--2,
	.ibz-grid--3,
	.ibz-grid--4 { grid-template-columns: minmax(0, 1fr); }
}

/* Split editorial : texte + media */
.ibz-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.75rem, 4vw, 3.75rem);
	align-items: center;
}
.ibz-split--media-first .ibz-split__media { order: -1; }
@media (max-width: 899px) {
	.ibz-split { grid-template-columns: minmax(0, 1fr); }
	.ibz-split--media-first .ibz-split__media { order: 0; }
}

/* ==========================================================================
   4. TITRES DE SECTION & MOTIF « SIGNAL »
   ========================================================================== */
.ibz-signal {
	display: inline-flex;
	align-items: flex-end;
	gap: 3px;
	height: 14px;
	margin-bottom: .85rem;
}
.ibz-signal span {
	width: 4px;
	border-radius: 2px;
	background: var(--ibz-ink);
	display: block;
}
.ibz-signal span:nth-child(1) { height: 6px; }
.ibz-signal span:nth-child(2) { height: 10px; background: var(--ibz-gold); }
.ibz-signal span:nth-child(3) { height: 14px; background: var(--ibz-red); }
.ibz-section--ink .ibz-signal span:nth-child(1) { background: #fff; }

.ibz-eyebrow {
	display: block;
	font-family: var(--ibz-font-title);
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ibz-red-600);
	margin-bottom: .55rem;
}
.ibz-section--ink .ibz-eyebrow { color: var(--ibz-gold); }

.ibz-sec-head { max-width: 60ch; margin-bottom: clamp(1.75rem, 3.5vw, 2.9rem); }
.ibz-sec-head--center { margin-inline: auto; text-align: center; }
.ibz-sec-head--center .ibz-signal { justify-content: center; }
.ibz-sec-head p {
	font-size: 1.08rem;
	color: var(--ibz-body);
	margin-bottom: 0;
}
.ibz-section--ink .ibz-sec-head p { color: #b9c0cc; }

.ibz-sec-head--split {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(1rem, 3vw, 3rem);
	align-items: end;
	max-width: none;
}
@media (max-width: 899px) {
	.ibz-sec-head--split { grid-template-columns: minmax(0, 1fr); align-items: start; }
}

.ibz-lead { font-size: 1.15rem; color: var(--ibz-ink-3); }

/* ==========================================================================
   5. BOUTONS
   ========================================================================== */
.ibz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	padding: .85rem 1.5rem;
	min-height: 50px;
	border: 1px solid transparent;
	border-radius: var(--ibz-r-pill);
	font-family: var(--ibz-font-title);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: .005em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--ibz-t-fast), color var(--ibz-t-fast),
		border-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast), transform var(--ibz-t-fast);
}
.ibz-btn svg { width: 20px; height: 20px; flex: none; }

.ibz-btn--primary {
	background: var(--ibz-red-600);
	color: #fff;
	box-shadow: 0 10px 22px -12px rgba(204, 26, 39, .85);
}
.ibz-btn--primary:hover { background: var(--ibz-red-700); color: #fff; transform: translateY(-1px); }

.ibz-btn--ink { background: var(--ibz-ink); color: #fff; }
.ibz-btn--ink:hover { background: var(--ibz-ink-3); color: #fff; transform: translateY(-1px); }

.ibz-btn--gold { background: var(--ibz-gold); color: var(--ibz-ink); }
.ibz-btn--gold:hover { background: var(--ibz-gold-600); color: var(--ibz-ink); transform: translateY(-1px); }

.ibz-btn--ghost {
	background: #fff;
	color: var(--ibz-ink);
	border-color: var(--ibz-line);
	box-shadow: var(--ibz-sh-1);
}
.ibz-btn--ghost:hover { border-color: var(--ibz-ink); color: var(--ibz-ink); }

.ibz-btn--outline-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .32);
}
.ibz-btn--outline-light:hover { background: rgba(255, 255, 255, .1); color: #fff; border-color: #fff; }

.ibz-btn--wa { background: var(--ibz-wa); color: #06301c; }
.ibz-btn--wa:hover { background: #1fbe5b; color: #06301c; transform: translateY(-1px); }

.ibz-btn--sm { min-height: 42px; padding: .55rem 1.1rem; font-size: .9375rem; }
.ibz-btn--lg { min-height: 56px; padding: 1rem 1.9rem; font-size: 1.06rem; }
.ibz-btn--block { display: flex; width: 100%; }

.ibz-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
}
@media (max-width: 479px) {
	.ibz-btn-row .ibz-btn { width: 100%; }
}

.ibz-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-family: var(--ibz-font-title);
	font-weight: 600;
	text-decoration: none;
	color: var(--ibz-ink);
	border-bottom: 2px solid var(--ibz-gold);
	padding-bottom: 2px;
}
.ibz-link-arrow svg { width: 16px; height: 16px; transition: transform var(--ibz-t-fast); }
.ibz-link-arrow:hover { color: var(--ibz-red-600); }
.ibz-link-arrow:hover svg { transform: translateX(3px); }

/* ==========================================================================
   6. PUCES, BADGES, LISTES
   ========================================================================== */
.ibz-chip {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .38rem .8rem;
	border-radius: var(--ibz-r-pill);
	background: var(--ibz-mist);
	border: 1px solid var(--ibz-line);
	font-family: var(--ibz-font-title);
	font-size: .85rem;
	font-weight: 600;
	color: var(--ibz-ink-2);
	line-height: 1.3;
}
.ibz-chip svg { width: 16px; height: 16px; }
.ibz-chip--gold { background: var(--ibz-gold-soft); border-color: #f3e2ad; color: #6b5200; }
.ibz-chip--red { background: var(--ibz-red-soft); border-color: #f7cfcd; color: #8d1119; }
.ibz-chip--green { background: var(--ibz-green-soft); border-color: #c6e9db; color: #0a6b4a; }
.ibz-chip--ink { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); color: #fff; }

.ibz-badge {
	display: inline-block;
	padding: .3rem .7rem;
	border-radius: var(--ibz-r-xs);
	background: var(--ibz-gold);
	color: var(--ibz-ink);
	font-family: var(--ibz-font-title);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ibz-checks { list-style: none; margin: 0; padding: 0; }
.ibz-checks li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: .6rem;
}
.ibz-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ibz-green-soft);
	border: 1px solid #bfe6d5;
}
.ibz-checks li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: calc(.45em + 5px);
	width: 8px;
	height: 5px;
	border-left: 2px solid var(--ibz-green);
	border-bottom: 2px solid var(--ibz-green);
	transform: rotate(-45deg);
}
.ibz-checks--ink li::before { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); }
.ibz-checks--ink li::after { border-color: var(--ibz-gold); }

.ibz-crosses { list-style: none; margin: 0; padding: 0; }
.ibz-crosses li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; }
.ibz-crosses li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ibz-red-soft);
	border: 1px solid #f5cbc9;
}
.ibz-crosses li::after {
	content: "\00d7";
	position: absolute;
	left: 5px;
	top: calc(.45em - 3px);
	color: var(--ibz-red-600);
	font-weight: 700;
	line-height: 1;
	font-size: 1rem;
}

/* ==========================================================================
   7. CARTES GENERIQUES
   ========================================================================== */
.ibz-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	padding: clamp(1.25rem, 2.2vw, 1.75rem);
	box-shadow: var(--ibz-sh-1);
	transition: box-shadow var(--ibz-t-base), transform var(--ibz-t-base), border-color var(--ibz-t-base);
}
.ibz-card--hover:hover {
	transform: translateY(-3px);
	box-shadow: var(--ibz-sh-3);
	border-color: #d8dce3;
}
.ibz-card h3 { margin-bottom: .5rem; }
.ibz-card p:last-child { margin-bottom: 0; }

.ibz-card__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--ibz-r-md);
	background: var(--ibz-sand);
	border: 1px solid var(--ibz-line-warm);
	display: grid;
	place-items: center;
	margin-bottom: 1rem;
	color: var(--ibz-ink);
}
.ibz-card__icon svg { width: 26px; height: 26px; }

.ibz-card--ink {
	background: var(--ibz-ink-2);
	border-color: rgba(255, 255, 255, .1);
	color: #c3cad6;
}
.ibz-card--ink h3, .ibz-card--ink h4 { color: #fff; }
.ibz-card--ink .ibz-card__icon { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14); color: var(--ibz-gold); }

/* ==========================================================================
   8. EN-TETE DU SITE
   ========================================================================== */
.ibz-topbar {
	background: var(--ibz-ink);
	color: #b9c0cc;
	font-size: .875rem;
}
.ibz-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 40px;
	padding-block: .4rem;
}
.ibz-topbar__list {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ibz-topbar__list li { margin: 0; display: inline-flex; align-items: center; gap: .45rem; }
.ibz-topbar__list svg { width: 15px; height: 15px; color: var(--ibz-gold); }
.ibz-topbar a { color: #e7eaef; text-decoration: none; }
.ibz-topbar a:hover { color: var(--ibz-gold); }
.ibz-topbar__pulse {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--ibz-green);
	box-shadow: 0 0 0 3px rgba(14, 143, 99, .25);
	flex: none;
}
@media (max-width: 899px) { .ibz-topbar { display: none; } }

.ibz-header {
	position: sticky;
	top: 0;
	z-index: 200;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: saturate(150%) blur(10px);
	border-bottom: 1px solid var(--ibz-line);
	transition: box-shadow var(--ibz-t-base);
}
.ibz-header.is-stuck { box-shadow: 0 8px 24px -18px rgba(15, 17, 21, .5); }
.admin-bar .ibz-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ibz-header { top: 46px; } }

.ibz-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--ibz-header-h);
}

.ibz-brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; flex: none; }
.ibz-brand img { width: auto; height: 40px; }
@media (max-width: 479px) { .ibz-brand img { height: 34px; } }
.ibz-brand__text {
	font-family: var(--ibz-font-title);
	font-weight: 700;
	font-size: 1.2rem;
	color: var(--ibz-ink);
	letter-spacing: -.01em;
}

.ibz-nav { display: flex; align-items: center; gap: .1rem; }
.ibz-nav ul { list-style: none; display: flex; align-items: center; gap: .1rem; margin: 0; padding: 0; }
.ibz-nav li { margin: 0; position: relative; }
.ibz-nav a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .55rem .72rem;
	border-radius: var(--ibz-r-sm);
	font-family: var(--ibz-font-title);
	font-size: .96rem;
	font-weight: 500;
	color: var(--ibz-ink-2);
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--ibz-t-fast), background-color var(--ibz-t-fast);
}
.ibz-nav a::after {
	content: "";
	position: absolute;
	left: .72rem;
	right: .72rem;
	bottom: .28rem;
	height: 2px;
	border-radius: 2px;
	background: var(--ibz-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ibz-t-base);
}
.ibz-nav a:hover { color: var(--ibz-ink); background: var(--ibz-mist); }
.ibz-nav a:hover::after,
.ibz-nav .current-menu-item > a::after,
.ibz-nav .current_page_item > a::after,
.ibz-nav .current-menu-ancestor > a::after { transform: scaleX(1); }
.ibz-nav .current-menu-item > a,
.ibz-nav .current_page_item > a { color: var(--ibz-ink); font-weight: 600; }

/* Sous-menus */
.ibz-nav .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 240px;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding: .45rem;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-md);
	box-shadow: var(--ibz-sh-3);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--ibz-t-fast), transform var(--ibz-t-fast), visibility var(--ibz-t-fast);
}
.ibz-nav li:hover > .sub-menu,
.ibz-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ibz-nav .sub-menu a { width: 100%; font-weight: 500; }
.ibz-nav .sub-menu a::after { display: none; }
.ibz-nav .menu-item-has-children > a > svg { width: 12px; height: 12px; opacity: .55; }

.ibz-header__actions { display: flex; align-items: center; gap: .6rem; flex: none; }
.ibz-header__wa {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .5rem .85rem;
	border-radius: var(--ibz-r-pill);
	border: 1px solid var(--ibz-line);
	background: #fff;
	color: var(--ibz-ink-2);
	font-family: var(--ibz-font-title);
	font-size: .92rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--ibz-t-fast), color var(--ibz-t-fast);
}
.ibz-header__wa svg { width: 18px; height: 18px; color: var(--ibz-wa-700); }
.ibz-header__wa:hover { border-color: var(--ibz-wa); color: var(--ibz-ink); }

@media (max-width: 1099px) { .ibz-nav, .ibz-header__wa { display: none; } }
@media (max-width: 639px) { .ibz-header__actions .ibz-btn { display: none; } }

/* Bouton hamburger */
.ibz-burger {
	display: none;
	align-items: center;
	gap: .5rem;
	padding: .5rem .8rem .5rem .65rem;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-pill);
	font-family: var(--ibz-font-title);
	font-weight: 600;
	font-size: .92rem;
	color: var(--ibz-ink);
	cursor: pointer;
	min-height: 44px;
}
.ibz-burger__bars { display: block; width: 20px; height: 14px; position: relative; }
.ibz-burger__bars span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: var(--ibz-ink);
	transition: transform var(--ibz-t-base), opacity var(--ibz-t-fast);
}
.ibz-burger__bars span:nth-child(1) { top: 0; }
.ibz-burger__bars span:nth-child(2) { top: 6px; background: var(--ibz-red); }
.ibz-burger__bars span:nth-child(3) { top: 12px; }
.ibz-burger[aria-expanded="true"] .ibz-burger__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ibz-burger[aria-expanded="true"] .ibz-burger__bars span:nth-child(2) { opacity: 0; }
.ibz-burger[aria-expanded="true"] .ibz-burger__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 1099px) { .ibz-burger { display: inline-flex; } }

/* Panneau mobile */
.ibz-mobile {
	position: fixed;
	inset: 0;
	z-index: 300;
	background: #fff;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform var(--ibz-t-slow), visibility var(--ibz-t-slow);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.ibz-mobile.is-open { transform: translateX(0); visibility: visible; }
.ibz-mobile__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem var(--ibz-gutter);
	border-bottom: 1px solid var(--ibz-line);
	position: sticky;
	top: 0;
	background: #fff;
	z-index: 2;
}
.ibz-mobile__close {
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border-radius: 50%;
	border: 1px solid var(--ibz-line);
	background: #fff;
	cursor: pointer;
	color: var(--ibz-ink);
}
.ibz-mobile__close svg { width: 20px; height: 20px; }
.ibz-mobile__body { padding: 1.25rem var(--ibz-gutter) 2rem; flex: 1; }
.ibz-mobile ul { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.ibz-mobile li { margin: 0; border-bottom: 1px solid var(--ibz-line); }
.ibz-mobile a {
	display: block;
	padding: .95rem .25rem;
	font-family: var(--ibz-font-title);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--ibz-ink);
	text-decoration: none;
}
.ibz-mobile a:hover { color: var(--ibz-red-600); }
.ibz-mobile .sub-menu { margin: 0 0 .5rem .9rem; border-left: 2px solid var(--ibz-line); padding-left: .75rem; }
.ibz-mobile .sub-menu li { border: 0; }
.ibz-mobile .sub-menu a { font-size: .98rem; font-weight: 500; padding: .55rem .25rem; color: var(--ibz-body); }
.ibz-mobile__cta { display: grid; gap: .65rem; margin-bottom: 1.5rem; }
.ibz-mobile__meta {
	background: var(--ibz-sand);
	border: 1px solid var(--ibz-line-warm);
	border-radius: var(--ibz-r-md);
	padding: 1rem 1.1rem;
	font-size: .95rem;
}
.ibz-mobile__meta strong { display: block; color: var(--ibz-ink); }

body.ibz-nav-open { overflow: hidden; }

/* ==========================================================================
   9. PIED DE PAGE
   ========================================================================== */
.ibz-footer {
	background: var(--ibz-ink);
	color: #a8b0be;
	padding-top: clamp(3rem, 5vw, 4.5rem);
	position: relative;
}
.ibz-footer a { color: #dfe3ea; text-decoration: none; }
.ibz-footer a:hover { color: var(--ibz-gold); }

.ibz-footer__support {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
}
.ibz-footer__support-card {
	background: var(--ibz-ink-2);
	border: 1px solid rgba(255, 255, 255, .09);
	border-radius: var(--ibz-r-lg);
	padding: 1.3rem 1.4rem;
	display: flex;
	gap: .9rem;
	align-items: flex-start;
	transition: border-color var(--ibz-t-base), transform var(--ibz-t-base);
}
.ibz-footer__support-card:hover { border-color: rgba(247, 190, 0, .45); transform: translateY(-2px); }
.ibz-footer__support-card svg { width: 26px; height: 26px; color: var(--ibz-gold); flex: none; }
.ibz-footer__support-card strong { display: block; color: #fff; font-family: var(--ibz-font-title); font-size: 1.02rem; margin-bottom: .15rem; }
.ibz-footer__support-card span { font-size: .93rem; display: block; }
@media (max-width: 899px) { .ibz-footer__support { grid-template-columns: minmax(0, 1fr); } }

.ibz-footer__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}
@media (max-width: 1023px) { .ibz-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .ibz-footer__cols { grid-template-columns: minmax(0, 1fr); } }

.ibz-footer__brand img { height: 42px; width: auto; margin-bottom: 1rem; }
.ibz-footer__brand p { font-size: .96rem; max-width: 42ch; }
.ibz-footer h4 {
	color: #fff;
	font-size: .9rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.ibz-footer ul { list-style: none; margin: 0; padding: 0; }
.ibz-footer li { margin-bottom: .55rem; font-size: .96rem; }

.ibz-footer__contact li { display: flex; gap: .55rem; align-items: flex-start; }
.ibz-footer__contact svg { width: 17px; height: 17px; color: var(--ibz-gold); flex: none; margin-top: .22em; }

.ibz-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding-block: 1.4rem;
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 1.5rem;
	align-items: center;
	justify-content: space-between;
	font-size: .88rem;
}
.ibz-footer__legal-links { display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; list-style: none; margin: 0; padding: 0; }
.ibz-footer__legal-links li { margin: 0; }
.ibz-footer__disclaimer {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding-block: 1.25rem 2rem;
	font-size: .82rem;
	color: #7d8698;
	max-width: 92ch;
}

/* ==========================================================================
   10. BOUTON WHATSAPP FLOTTANT
   ========================================================================== */
.ibz-wa-float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 190;
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .8rem 1.25rem .8rem .9rem;
	background: var(--ibz-wa);
	color: #05301b;
	border-radius: var(--ibz-r-pill);
	font-family: var(--ibz-font-title);
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 16px 34px -14px rgba(5, 48, 27, .6), 0 0 0 6px rgba(37, 211, 102, .14);
	transition: transform var(--ibz-t-fast), background-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast);
}
.ibz-wa-float svg { width: 26px; height: 26px; flex: none; }
.ibz-wa-float:hover {
	background: #1fbe5b;
	color: #05301b;
	transform: translateY(-2px);
	box-shadow: 0 20px 40px -14px rgba(5, 48, 27, .65), 0 0 0 8px rgba(37, 211, 102, .18);
}
.ibz-wa-float:focus-visible { outline: 3px solid var(--ibz-ink); outline-offset: 3px; }
.admin-bar .ibz-wa-float { bottom: 24px; }

@media (max-width: 767px) {
	.ibz-wa-float {
		right: 16px;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		width: 56px;
		height: 56px;
		min-width: 56px;
		padding: 0;
		justify-content: center;
		gap: 0;
	}
	.ibz-wa-float__label { display: none; }
}
body.ibz-nav-open .ibz-wa-float,
body.ibz-modal-open .ibz-wa-float { opacity: 0; visibility: hidden; pointer-events: none; }

/* Espace de securite pour ne jamais recouvrir la derniere section */
@media (max-width: 767px) {
	.ibz-site-main > *:last-child { padding-bottom: calc(var(--ibz-section-y) + 60px); }
}

/* ==========================================================================
   11. HERO — « tableau de bord streaming »
   ========================================================================== */
.ibz-hero {
	position: relative;
	background: #fff;
	padding-block: clamp(2rem, 3.5vw, 3.25rem) clamp(3rem, 5.5vw, 5rem);
	overflow: hidden;
}
.ibz-hero::before {
	content: "";
	position: absolute;
	top: -220px;
	right: -160px;
	width: 720px;
	height: 720px;
	background: radial-gradient(circle, rgba(247, 190, 0, .16) 0%, rgba(247, 190, 0, 0) 62%);
	pointer-events: none;
}
.ibz-hero::after {
	content: "";
	position: absolute;
	left: -180px;
	bottom: -260px;
	width: 620px;
	height: 620px;
	background: radial-gradient(circle, rgba(230, 35, 48, .09) 0%, rgba(230, 35, 48, 0) 62%);
	pointer-events: none;
}
.ibz-hero > .ibz-container { position: relative; z-index: 1; }

.ibz-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: center;
}
@media (max-width: 979px) { .ibz-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }

.ibz-hero__status-chip {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .42rem .95rem .42rem .7rem;
	border-radius: var(--ibz-r-pill);
	background: #fff;
	border: 1px solid var(--ibz-line);
	box-shadow: var(--ibz-sh-1);
	font-family: var(--ibz-font-title);
	font-size: .86rem;
	font-weight: 600;
	color: var(--ibz-ink-2);
	margin-bottom: 1.15rem;
}
.ibz-hero__dot {
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--ibz-green);
	box-shadow: 0 0 0 4px rgba(14, 143, 99, .18);
	flex: none;
}
.ibz-hero h1 { margin-bottom: .75rem; }
.ibz-hero h1 em { font-style: normal; color: var(--ibz-red-600); }
.ibz-hero__underline { position: relative; display: inline-block; }
.ibz-hero__underline::after {
	content: "";
	position: absolute;
	left: -.06em; right: -.06em; bottom: .06em;
	height: .2em;
	background: var(--ibz-gold);
	opacity: .5;
	border-radius: 3px;
	z-index: -1;
}
.ibz-hero__lead {
	font-size: clamp(1.05rem, 1rem + .3vw, 1.19rem);
	color: var(--ibz-ink-3);
	max-width: 54ch;
	margin-bottom: 1.6rem;
}
.ibz-hero__cta { margin-bottom: 1.5rem; }
.ibz-hero__micro {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.4rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: .93rem;
	color: var(--ibz-muted);
}
.ibz-hero__micro li { display: inline-flex; align-items: center; gap: .4rem; margin: 0; }
.ibz-hero__micro svg { width: 17px; height: 17px; color: var(--ibz-green); flex: none; }

.ibz-hero__media { position: relative; margin-bottom: 40px; }
.ibz-hero__frame {
	position: relative;
	border-radius: var(--ibz-r-xl);
	overflow: hidden;
	border: 1px solid var(--ibz-line);
	box-shadow: var(--ibz-sh-4);
	background: var(--ibz-cream);
}
.ibz-hero__frame img { width: 100%; height: auto; display: block; }

.ibz-hero__panel {
	position: absolute;
	left: 0;
	bottom: -26px;
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(10px);
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	box-shadow: var(--ibz-sh-3);
	padding: .95rem 1.15rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.1rem;
	min-width: min(400px, 94%);
}
.ibz-hero__panel-item + .ibz-hero__panel-item { border-left: 1px solid var(--ibz-line); padding-left: 1.1rem; }
.ibz-hero__panel-value {
	display: block;
	font-family: var(--ibz-font-title);
	font-size: 1.22rem;
	font-weight: 700;
	color: var(--ibz-ink);
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
}
.ibz-hero__panel-label { display: block; font-size: .78rem; color: var(--ibz-muted); letter-spacing: .02em; }
.ibz-hero__tag {
	position: absolute;
	top: 18px;
	right: -10px;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	background: var(--ibz-ink);
	color: #fff;
	padding: .55rem .95rem;
	border-radius: var(--ibz-r-pill);
	font-family: var(--ibz-font-title);
	font-size: .84rem;
	font-weight: 600;
	box-shadow: var(--ibz-sh-3);
}
.ibz-hero__tag svg { width: 17px; height: 17px; color: var(--ibz-gold); }
@media (max-width: 599px) {
	.ibz-hero__panel {
		position: static;
		min-width: 0;
		width: 100%;
		margin-top: 1rem;
		box-shadow: var(--ibz-sh-2);
		gap: .75rem;
		padding: .85rem .95rem;
	}
	.ibz-hero__panel-item + .ibz-hero__panel-item { padding-left: .75rem; }
	.ibz-hero__panel-value { font-size: 1.05rem; }
	.ibz-hero__media { margin-bottom: 0; }
	.ibz-hero__tag { top: 12px; right: 8px; font-size: .78rem; }
}

/* ==========================================================================
   12. BANDE DE CONFIANCE (statuts)
   ========================================================================== */
.ibz-trustbar {
	background: var(--ibz-sand);
	border-top: 1px solid var(--ibz-line-warm);
	border-bottom: 1px solid var(--ibz-line-warm);
	padding-block: clamp(1.5rem, 3vw, 2.35rem);
	position: relative;
	background-image: url("assets/images/sections/belgian-signal-pattern.svg");
	background-size: cover;
	background-position: center;
}
.ibz-trustbar__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
}
.ibz-trustbar__item {
	display: flex;
	gap: .85rem;
	align-items: flex-start;
	padding-left: clamp(0px, 1.5vw, 1.5rem);
	border-left: 1px solid rgba(15, 17, 21, .1);
}
.ibz-trustbar__item:first-child { border-left: 0; padding-left: 0; }
.ibz-trustbar__item svg { width: 30px; height: 30px; flex: none; color: var(--ibz-ink); }
.ibz-trustbar__item strong {
	display: block;
	font-family: var(--ibz-font-title);
	font-size: 1.06rem;
	color: var(--ibz-ink);
	line-height: 1.25;
	margin-bottom: .1rem;
}
.ibz-trustbar__item span { display: block; font-size: .9rem; color: var(--ibz-muted); }
@media (max-width: 899px) {
	.ibz-trustbar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem; }
	.ibz-trustbar__item { border-left: 0; padding-left: 0; }
}
@media (max-width: 479px) { .ibz-trustbar__grid { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   13. DIAGNOSTIC (probleme / solution)
   ========================================================================== */
.ibz-diag { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.5rem); }
@media (max-width: 899px) { .ibz-diag { grid-template-columns: minmax(0, 1fr); } }
.ibz-diag__card {
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	overflow: hidden;
	box-shadow: var(--ibz-sh-1);
	display: flex;
	flex-direction: column;
}
.ibz-diag__problem {
	padding: 1.25rem 1.4rem;
	background: var(--ibz-mist);
	border-bottom: 1px dashed var(--ibz-line);
}
.ibz-diag__label {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-family: var(--ibz-font-title);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ibz-red-600);
	margin-bottom: .5rem;
}
.ibz-diag__problem h3 { font-size: 1.13rem; margin-bottom: .35rem; }
.ibz-diag__problem p { font-size: .96rem; margin: 0; }
.ibz-diag__answer { padding: 1.25rem 1.4rem; flex: 1; }
.ibz-diag__answer .ibz-diag__label { color: var(--ibz-green); }
.ibz-diag__answer p { margin: 0; font-size: .99rem; color: var(--ibz-ink-3); }

/* ==========================================================================
   14. VISUELS EDITORIAUX
   ========================================================================== */
.ibz-figure {
	position: relative;
	border-radius: var(--ibz-r-xl);
	overflow: hidden;
	border: 1px solid var(--ibz-line);
	box-shadow: var(--ibz-sh-3);
	background: var(--ibz-cream);
	margin: 0;
}
.ibz-figure img { width: 100%; display: block; }
.ibz-figure--flat { box-shadow: var(--ibz-sh-2); border-radius: var(--ibz-r-lg); }
.ibz-figure__caption {
	position: absolute;
	left: 14px;
	bottom: 14px;
	right: 14px;
	background: rgba(15, 17, 21, .84);
	backdrop-filter: blur(6px);
	color: #fff;
	padding: .6rem .9rem;
	border-radius: var(--ibz-r-md);
	font-size: .88rem;
	line-height: 1.45;
}
.ibz-figure__caption strong { color: var(--ibz-gold); font-family: var(--ibz-font-title); }
.ibz-media-note { margin-top: .7rem; font-size: .85rem; color: var(--ibz-muted); }

.ibz-content-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.5rem); }
@media (max-width: 979px) { .ibz-content-cols { grid-template-columns: minmax(0, 1fr); } }
.ibz-content-card {
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--ibz-sh-1);
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--ibz-t-base), transform var(--ibz-t-base);
}
.ibz-content-card:hover { transform: translateY(-3px); box-shadow: var(--ibz-sh-3); }
.ibz-content-card__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ibz-mist); }
.ibz-content-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ibz-content-card__body { padding: 1.3rem 1.4rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.ibz-content-card__body h3 { margin-bottom: .45rem; }
.ibz-content-card__body p { font-size: .98rem; }
.ibz-content-card__list { margin-top: auto; padding-top: 1rem; }

/* ==========================================================================
   15. APPAREILS
   ========================================================================== */
.ibz-devices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
@media (max-width: 899px) { .ibz-devices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .ibz-devices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ibz-device {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: 1rem .9rem;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-md);
	text-align: left;
	transition: border-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast), transform var(--ibz-t-fast);
	text-decoration: none;
	color: inherit;
}
.ibz-device:hover { border-color: var(--ibz-ink); box-shadow: var(--ibz-sh-2); transform: translateY(-2px); color: inherit; }
.ibz-device svg { width: 26px; height: 26px; color: var(--ibz-ink); }
.ibz-device strong { font-family: var(--ibz-font-title); font-size: .99rem; color: var(--ibz-ink); display: block; }
.ibz-device span { font-size: .85rem; color: var(--ibz-muted); }

/* ==========================================================================
   16. ETAPES D'INSTALLATION
   ========================================================================== */
.ibz-steps { list-style: none; margin: 0; padding: 0; position: relative; }
.ibz-steps::before {
	content: "";
	position: absolute;
	left: 21px;
	top: 26px;
	bottom: 26px;
	width: 2px;
	background: linear-gradient(180deg, var(--ibz-gold), var(--ibz-red) 65%, transparent);
	opacity: .35;
}
.ibz-step {
	position: relative;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 1.1rem;
	padding-bottom: 1.75rem;
	margin: 0;
}
.ibz-step:last-child { padding-bottom: 0; }
.ibz-step__num {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--ibz-ink);
	color: var(--ibz-ink);
	display: grid;
	place-items: center;
	font-family: var(--ibz-font-title);
	font-weight: 700;
	font-size: 1.05rem;
	position: relative;
	z-index: 1;
}
.ibz-step__body h3 { font-size: 1.16rem; margin-bottom: .3rem; }
.ibz-step__body p { margin-bottom: .5rem; font-size: .99rem; }
.ibz-step__meta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-size: .86rem;
	color: var(--ibz-muted);
	font-family: var(--ibz-font-title);
	font-weight: 600;
}
.ibz-step__meta svg { width: 15px; height: 15px; color: var(--ibz-gold-600); }

/* ==========================================================================
   17. TARIFS
   ========================================================================== */
.ibz-plans { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
@media (max-width: 1023px) { .ibz-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .ibz-plans { grid-template-columns: minmax(0, 1fr); } }

.ibz-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	padding: 1.5rem 1.4rem 1.6rem;
	box-shadow: var(--ibz-sh-1);
	transition: transform var(--ibz-t-base), box-shadow var(--ibz-t-base), border-color var(--ibz-t-base);
}
.ibz-plan:hover { transform: translateY(-4px); box-shadow: var(--ibz-sh-3); border-color: #d5dae2; }
.ibz-plan__name { font-family: var(--ibz-font-title); font-size: 1.06rem; font-weight: 700; color: var(--ibz-ink); margin-bottom: .15rem; }
.ibz-plan__sub { font-size: .88rem; color: var(--ibz-muted); margin-bottom: 1rem; display: block; }
.ibz-plan__price { display: flex; align-items: baseline; gap: .25rem; font-family: var(--ibz-font-title); color: var(--ibz-ink); margin-bottom: .3rem; }
.ibz-plan__amount { font-size: 2.5rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.ibz-plan__currency { font-size: 1.35rem; font-weight: 600; }
.ibz-plan__per { font-size: .95rem; color: var(--ibz-muted); font-weight: 500; }
.ibz-plan__equiv { display: block; font-size: .88rem; color: var(--ibz-muted); margin-bottom: 1rem; font-variant-numeric: tabular-nums; }
.ibz-plan__save {
	display: inline-block;
	margin-bottom: 1rem;
	padding: .22rem .6rem;
	border-radius: var(--ibz-r-xs);
	background: var(--ibz-green-soft);
	color: #0a6b4a;
	font-size: .8rem;
	font-weight: 700;
	font-family: var(--ibz-font-title);
	border: 1px solid #c6e9db;
}
.ibz-plan__list { list-style: none; margin: 0 0 1.4rem; padding: 0; font-size: .95rem; }
.ibz-plan__list li { position: relative; padding-left: 1.55rem; margin-bottom: .5rem; }
.ibz-plan__list li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .55em;
	width: 8px;
	height: 5px;
	border-left: 2px solid var(--ibz-green);
	border-bottom: 2px solid var(--ibz-green);
	transform: rotate(-45deg);
}
.ibz-plan .ibz-btn { margin-top: auto; }

.ibz-plan--featured { background: var(--ibz-ink); border-color: var(--ibz-ink); color: #c8cfda; box-shadow: var(--ibz-sh-4); }
.ibz-plan--featured .ibz-plan__name,
.ibz-plan--featured .ibz-plan__price { color: #fff; }
.ibz-plan--featured .ibz-plan__sub,
.ibz-plan--featured .ibz-plan__per,
.ibz-plan--featured .ibz-plan__equiv { color: #9aa4b4; }
.ibz-plan--featured .ibz-plan__list li::before { border-color: var(--ibz-gold); }
.ibz-plan--featured .ibz-plan__save { background: rgba(247, 190, 0, .16); border-color: rgba(247, 190, 0, .4); color: var(--ibz-gold); }
.ibz-plan__ribbon {
	position: absolute;
	top: -13px;
	left: 1.4rem;
	background: var(--ibz-gold);
	color: var(--ibz-ink);
	font-family: var(--ibz-font-title);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .3rem .75rem;
	border-radius: var(--ibz-r-xs);
	box-shadow: var(--ibz-sh-2);
}

.ibz-plans-note { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; font-size: .93rem; color: var(--ibz-muted); }
.ibz-plans-note span { display: inline-flex; align-items: center; gap: .4rem; }
.ibz-plans-note svg { width: 17px; height: 17px; color: var(--ibz-green); }

.ibz-included {
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
	background: var(--ibz-mist);
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	padding: clamp(1.35rem, 2.6vw, 2rem);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem 2rem;
}
@media (max-width: 899px) { .ibz-included { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .ibz-included { grid-template-columns: minmax(0, 1fr); } }
.ibz-included__item { display: flex; gap: .75rem; align-items: flex-start; }
.ibz-included__item svg { width: 22px; height: 22px; color: var(--ibz-ink); flex: none; margin-top: .15em; }
.ibz-included__item strong { display: block; font-family: var(--ibz-font-title); color: var(--ibz-ink); font-size: 1rem; }
.ibz-included__item span { font-size: .92rem; color: var(--ibz-body); }

/* ==========================================================================
   18. BANDE TECHNIQUE SOMBRE
   ========================================================================== */
.ibz-tech { background: var(--ibz-ink); color: #b8c0cd; position: relative; overflow: hidden; }
.ibz-tech::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 82% 18%, rgba(247, 190, 0, .13), transparent 46%),
		radial-gradient(circle at 12% 88%, rgba(230, 35, 48, .14), transparent 48%);
	pointer-events: none;
}
.ibz-tech > .ibz-container { position: relative; z-index: 1; }
.ibz-tech h2, .ibz-tech h3 { color: #fff; }
.ibz-tech__metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(1.75rem, 3vw, 2.5rem); }
@media (max-width: 899px) { .ibz-tech__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ibz-metric { background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--ibz-r-lg); padding: 1.25rem 1.3rem; }
.ibz-metric__value {
	display: block;
	font-family: var(--ibz-font-title);
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
	margin-bottom: .2rem;
}
.ibz-metric__value em { font-style: normal; color: var(--ibz-gold); }
.ibz-metric__label { display: block; font-size: .93rem; color: #9aa4b4; }

/* ==========================================================================
   19. SUPPORT & SCENARIOS
   ========================================================================== */
.ibz-support-list { list-style: none; margin: 0; padding: 0; }
.ibz-support-list li {
	display: flex;
	gap: .9rem;
	align-items: flex-start;
	padding: 1rem 0;
	border-bottom: 1px solid var(--ibz-line);
	margin: 0;
}
.ibz-support-list li:last-child { border-bottom: 0; }
.ibz-support-list svg { width: 24px; height: 24px; color: var(--ibz-ink); flex: none; margin-top: .15em; }
.ibz-support-list strong { display: block; font-family: var(--ibz-font-title); color: var(--ibz-ink); font-size: 1.03rem; }
.ibz-support-list span { font-size: .95rem; }

.ibz-scenarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 979px) { .ibz-scenarios { grid-template-columns: minmax(0, 1fr); } }
.ibz-scenario {
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-left: 3px solid var(--ibz-gold);
	border-radius: var(--ibz-r-md);
	padding: 1.25rem 1.35rem;
	box-shadow: var(--ibz-sh-1);
}
.ibz-scenario__who {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-family: var(--ibz-font-title);
	font-weight: 700;
	color: var(--ibz-ink);
	font-size: 1.02rem;
	margin-bottom: .45rem;
}
.ibz-scenario__who svg { width: 18px; height: 18px; color: var(--ibz-red-600); }
.ibz-scenario p { font-size: .96rem; margin-bottom: .7rem; }
.ibz-scenario__tag { font-size: .82rem; color: var(--ibz-muted); font-style: italic; display: block; }

/* ==========================================================================
   20. TABLEAU COMPARATIF
   ========================================================================== */
.ibz-table-wrap { border: 1px solid var(--ibz-line); border-radius: var(--ibz-r-lg); overflow: hidden; background: #fff; box-shadow: var(--ibz-sh-1); }
.ibz-table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.ibz-table th, .ibz-table td { padding: .95rem 1.1rem; text-align: left; vertical-align: top; }
.ibz-table thead th {
	background: var(--ibz-ink);
	color: #fff;
	font-family: var(--ibz-font-title);
	font-size: .95rem;
	font-weight: 600;
}
.ibz-table thead th.is-highlight { background: var(--ibz-ink-2); color: var(--ibz-gold); }
.ibz-table tbody tr { border-top: 1px solid var(--ibz-line); }
.ibz-table tbody tr:nth-child(even) { background: var(--ibz-mist); }
.ibz-table th[scope="row"] { font-family: var(--ibz-font-title); font-weight: 600; color: var(--ibz-ink); }
.ibz-table td.is-highlight { background: rgba(247, 190, 0, .09); font-weight: 600; color: var(--ibz-ink-2); }
.ibz-table__yes, .ibz-table__no { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; }
.ibz-table__yes { color: #0a6b4a; }
.ibz-table__no { color: var(--ibz-red-700); }
.ibz-table__yes svg, .ibz-table__no svg { width: 16px; height: 16px; }

@media (max-width: 767px) {
	.ibz-table-wrap { border: 0; box-shadow: none; background: none; border-radius: 0; }
	.ibz-table, .ibz-table tbody, .ibz-table tr, .ibz-table td, .ibz-table th { display: block; width: 100%; }
	.ibz-table thead { display: none; }
	.ibz-table tbody tr {
		border: 1px solid var(--ibz-line);
		border-radius: var(--ibz-r-md);
		background: #fff !important;
		margin-bottom: .9rem;
		padding: .35rem 0;
		box-shadow: var(--ibz-sh-1);
	}
	.ibz-table th[scope="row"] {
		background: var(--ibz-mist);
		border-radius: var(--ibz-r-sm);
		margin: .4rem .6rem .2rem;
		padding: .6rem .8rem;
	}
	.ibz-table td { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 1rem; border-top: 1px dashed var(--ibz-line); }
	.ibz-table td::before {
		content: attr(data-label);
		font-family: var(--ibz-font-title);
		font-weight: 600;
		color: var(--ibz-muted);
		font-size: .88rem;
		flex: none;
	}
	.ibz-table td.is-highlight { background: rgba(247, 190, 0, .12); }
}

/* ==========================================================================
   21. FAQ
   ========================================================================== */
.ibz-faq { display: grid; gap: .75rem; }
.ibz-faq--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
@media (max-width: 899px) { .ibz-faq--cols { grid-template-columns: minmax(0, 1fr); } }

.ibz-faq__item {
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-md);
	overflow: hidden;
	transition: border-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast);
}
.ibz-faq__item.is-open { border-color: #d4d9e1; box-shadow: var(--ibz-sh-2); }
.ibz-faq__q {
	display: flex;
	align-items: center;
	gap: .9rem;
	width: 100%;
	padding: 1.05rem 1.15rem;
	background: none;
	border: 0;
	text-align: left;
	cursor: pointer;
	font-family: var(--ibz-font-title);
	font-size: 1.03rem;
	font-weight: 600;
	color: var(--ibz-ink);
	line-height: 1.35;
}
.ibz-faq__icon {
	width: 30px;
	height: 30px;
	border-radius: var(--ibz-r-xs);
	border: 1px solid var(--ibz-line);
	background: var(--ibz-mist);
	position: relative;
	flex: none;
	transition: background-color var(--ibz-t-fast), border-color var(--ibz-t-fast);
}
.ibz-faq__icon::before, .ibz-faq__icon::after {
	content: "";
	position: absolute;
	background: var(--ibz-ink);
	border-radius: 2px;
	transition: transform var(--ibz-t-base), opacity var(--ibz-t-fast);
}
.ibz-faq__icon::before { top: 50%; left: 7px; right: 7px; height: 2px; margin-top: -1px; }
.ibz-faq__icon::after { left: 50%; top: 7px; bottom: 7px; width: 2px; margin-left: -1px; }
.ibz-faq__item.is-open .ibz-faq__icon { background: var(--ibz-gold-soft); border-color: #f0dfa6; }
.ibz-faq__item.is-open .ibz-faq__icon::after { transform: scaleY(0); opacity: 0; }
.ibz-faq__q:hover { color: var(--ibz-red-600); }
.ibz-faq__a { padding: 0 1.15rem; max-height: 0; overflow: hidden; transition: max-height var(--ibz-t-slow), padding var(--ibz-t-slow); }
.ibz-faq__item.is-open .ibz-faq__a { padding: 0 1.15rem 1.2rem; max-height: 1400px; }
.ibz-faq__a p { font-size: .99rem; }
.ibz-faq__a p:last-child { margin-bottom: 0; }
.no-js .ibz-faq__a { max-height: none; padding: 0 1.15rem 1.2rem; }

.ibz-faq-groups { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.ibz-faq-group__title { display: flex; align-items: center; gap: .75rem; font-size: 1.25rem; margin-bottom: 1rem; }
.ibz-faq-group__title svg { width: 24px; height: 24px; color: var(--ibz-red-600); flex: none; }

/* ==========================================================================
   22. BANDEAU CTA FINAL
   ========================================================================== */
.ibz-cta-band {
	position: relative;
	border-radius: var(--ibz-r-xl);
	background: var(--ibz-ink);
	color: #c6cdd9;
	padding: clamp(2rem, 4.5vw, 3.5rem);
	overflow: hidden;
	box-shadow: var(--ibz-sh-4);
}
.ibz-cta-band::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("assets/images/sections/cta-ribbon-pattern.svg");
	background-size: cover;
	background-position: center right;
	pointer-events: none;
}
.ibz-cta-band > * { position: relative; z-index: 1; }
.ibz-cta-band h2 { color: #fff; max-width: 24ch; }
.ibz-cta-band p { color: #c6cdd9; max-width: 58ch; font-size: 1.05rem; }
.ibz-cta-band__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: center; }
@media (max-width: 899px) { .ibz-cta-band__grid { grid-template-columns: minmax(0, 1fr); } }
.ibz-cta-band__side { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--ibz-r-lg); padding: 1.35rem 1.5rem; }
.ibz-cta-band__side strong { color: #fff; display: block; font-family: var(--ibz-font-title); margin-bottom: .5rem; }

/* ==========================================================================
   23. BLOG & ARTICLES
   ========================================================================== */
.ibz-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.75rem); }
@media (max-width: 979px) { .ibz-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .ibz-posts { grid-template-columns: minmax(0, 1fr); } }

.ibz-post-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-lg);
	overflow: hidden;
	box-shadow: var(--ibz-sh-1);
	transition: transform var(--ibz-t-base), box-shadow var(--ibz-t-base);
	height: 100%;
}
.ibz-post-card:hover { transform: translateY(-3px); box-shadow: var(--ibz-sh-3); }
.ibz-post-card__media { aspect-ratio: 16 / 9; background: var(--ibz-mist); overflow: hidden; }
.ibz-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--ibz-t-slow); }
.ibz-post-card:hover .ibz-post-card__media img { transform: scale(1.03); }
.ibz-post-card__body { padding: 1.15rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.ibz-post-card__meta { display: flex; flex-wrap: wrap; gap: .4rem .8rem; font-size: .83rem; color: var(--ibz-muted); margin-bottom: .6rem; }
.ibz-post-card__meta a { color: var(--ibz-red-600); text-decoration: none; font-weight: 600; }
.ibz-post-card h3 { font-size: 1.16rem; margin-bottom: .5rem; line-height: 1.25; }
.ibz-post-card h3 a { color: var(--ibz-ink); text-decoration: none; }
.ibz-post-card h3 a:hover { color: var(--ibz-red-600); }
.ibz-post-card p { font-size: .95rem; margin-bottom: 1rem; }
.ibz-post-card .ibz-link-arrow { margin-top: auto; align-self: flex-start; }

.ibz-page-head {
	position: relative;
	background: var(--ibz-cream);
	border-bottom: 1px solid var(--ibz-line-warm);
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	overflow: hidden;
}
.ibz-page-head::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("assets/images/sections/belgian-signal-pattern.svg");
	background-size: cover;
	background-position: center;
	opacity: .85;
	pointer-events: none;
}
.ibz-page-head > .ibz-container { position: relative; z-index: 1; }
.ibz-page-head h1 { margin-bottom: .55rem; max-width: 24ch; }
.ibz-page-head__lead { font-size: 1.1rem; color: var(--ibz-ink-3); max-width: 62ch; margin-bottom: 0; }
.ibz-page-head__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: center; }
@media (max-width: 899px) { .ibz-page-head__grid { grid-template-columns: minmax(0, 1fr); } }
.ibz-page-head--photo { background: var(--ibz-ink); border-bottom: 0; }
.ibz-page-head--photo::before { display: none; }
.ibz-page-head--photo h1 { color: #fff; }
.ibz-page-head--photo .ibz-page-head__lead { color: #c8cfda; }
.ibz-page-head__bg { position: absolute; inset: 0; z-index: 0; }
.ibz-page-head__bg img { width: 100%; height: 100%; object-fit: cover; }
.ibz-page-head__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(15, 17, 21, .94) 0%, rgba(15, 17, 21, .8) 44%, rgba(15, 17, 21, .34) 100%);
}
@media (max-width: 767px) {
	.ibz-page-head__bg::after { background: linear-gradient(180deg, rgba(15, 17, 21, .9) 28%, rgba(15, 17, 21, .74) 100%); }
}

.ibz-breadcrumb { font-size: .87rem; color: var(--ibz-muted); margin-bottom: 1rem; }
.ibz-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem .55rem; margin: 0; padding: 0; }
.ibz-breadcrumb li { margin: 0; display: inline-flex; align-items: center; gap: .55rem; }
.ibz-breadcrumb li + li::before { content: "/"; color: #c8ccd4; }
.ibz-breadcrumb a { color: var(--ibz-muted); text-decoration: none; }
.ibz-breadcrumb a:hover { color: var(--ibz-red-600); text-decoration: underline; }
.ibz-page-head--photo .ibz-breadcrumb,
.ibz-page-head--photo .ibz-breadcrumb a { color: #a7b0be; }
.ibz-page-head--photo .ibz-breadcrumb li + li::before { color: #55606f; }

.ibz-prose { font-size: 1.06rem; color: var(--ibz-ink-3); }
.ibz-prose > * + * { margin-top: 1.2em; }
.ibz-prose h2 { margin-top: 2.2em; margin-bottom: .6em; }
.ibz-prose h3 { margin-top: 1.8em; margin-bottom: .5em; }
.ibz-prose h2:first-child, .ibz-prose h3:first-child { margin-top: 0; }
.ibz-prose ul, .ibz-prose ol { padding-left: 1.35rem; }
.ibz-prose li { margin-bottom: .5em; }
.ibz-prose img { border-radius: var(--ibz-r-lg); box-shadow: var(--ibz-sh-2); }
.ibz-prose figure { margin: 2rem 0; }
.ibz-prose figcaption { font-size: .88rem; color: var(--ibz-muted); margin-top: .6rem; }
.ibz-prose a { font-weight: 600; }
.ibz-prose table { margin: 1.5rem 0; font-size: .97rem; }
.ibz-prose th, .ibz-prose td { border: 1px solid var(--ibz-line); padding: .7rem .9rem; text-align: left; }
.ibz-prose th { background: var(--ibz-mist); font-family: var(--ibz-font-title); }

.ibz-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; font-size: .92rem; color: var(--ibz-muted); margin-bottom: 1.5rem; }
.ibz-article__meta a { color: var(--ibz-ink-2); font-weight: 600; text-decoration: none; }
.ibz-article__meta a:hover { color: var(--ibz-red-600); }
.ibz-article__avatar { border-radius: 50%; width: 34px; height: 34px; }
.ibz-article__author { display: inline-flex; align-items: center; gap: .5rem; }

.ibz-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(1.75rem, 4vw, 3.25rem); align-items: start; }
@media (max-width: 979px) { .ibz-article-layout { grid-template-columns: minmax(0, 1fr); } }
.ibz-sidebar { position: sticky; top: calc(var(--ibz-header-h) + 24px); display: grid; gap: 1rem; }
@media (max-width: 979px) { .ibz-sidebar { position: static; } }

.ibz-widget { background: #fff; border: 1px solid var(--ibz-line); border-radius: var(--ibz-r-lg); padding: 1.25rem 1.35rem; box-shadow: var(--ibz-sh-1); }
.ibz-widget h2, .ibz-widget h3, .ibz-widget .widget-title {
	font-size: 1.02rem;
	margin-bottom: .9rem;
	padding-bottom: .7rem;
	border-bottom: 1px solid var(--ibz-line);
}
.ibz-widget ul { list-style: none; margin: 0; padding: 0; font-size: .96rem; }
.ibz-widget li { margin-bottom: .55rem; }
.ibz-widget a { color: var(--ibz-ink-2); text-decoration: none; }
.ibz-widget a:hover { color: var(--ibz-red-600); }
.ibz-widget--cta { background: var(--ibz-ink); border-color: var(--ibz-ink); color: #c3cad6; }
.ibz-widget--cta h3, .ibz-widget--cta h2 { color: #fff; border-color: rgba(255, 255, 255, .14); }
.ibz-widget--cta p { font-size: .96rem; }

.ibz-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 2rem; }
.ibz-tags a {
	display: inline-block;
	padding: .3rem .7rem;
	border-radius: var(--ibz-r-pill);
	background: var(--ibz-mist);
	border: 1px solid var(--ibz-line);
	font-size: .85rem;
	color: var(--ibz-ink-2);
	text-decoration: none;
}
.ibz-tags a:hover { border-color: var(--ibz-ink); }

.ibz-post-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--ibz-line); }
@media (max-width: 639px) { .ibz-post-nav { grid-template-columns: minmax(0, 1fr); } }
.ibz-post-nav a { display: block; padding: 1rem 1.15rem; border: 1px solid var(--ibz-line); border-radius: var(--ibz-r-md); text-decoration: none; color: var(--ibz-ink); transition: border-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast); }
.ibz-post-nav a:hover { border-color: var(--ibz-ink); box-shadow: var(--ibz-sh-2); }
.ibz-post-nav span { display: block; font-size: .8rem; color: var(--ibz-muted); text-transform: uppercase; letter-spacing: .1em; margin-bottom: .3rem; }
.ibz-post-nav strong { font-family: var(--ibz-font-title); font-size: 1rem; line-height: 1.35; }
.ibz-post-nav .is-next { text-align: right; }

/* ==========================================================================
   24. FORMULAIRES
   ========================================================================== */
.ibz-form { display: grid; gap: 1rem; }
.ibz-field { display: grid; gap: .4rem; }
.ibz-field label { font-family: var(--ibz-font-title); font-weight: 600; font-size: .95rem; color: var(--ibz-ink); }
.ibz-field .ibz-hint { font-size: .85rem; color: var(--ibz-muted); }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="search"], input[type="number"], input[type="password"], select, textarea {
	width: 100%;
	min-height: 50px;
	padding: .75rem .95rem;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-md);
	background: #fff;
	color: var(--ibz-ink);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color var(--ibz-t-fast), box-shadow var(--ibz-t-fast);
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ibz-ink); box-shadow: 0 0 0 3px rgba(247, 190, 0, .3); }
input::placeholder, textarea::placeholder { color: #9aa2ae; }
.ibz-form__consent { display: flex; gap: .65rem; align-items: flex-start; font-size: .92rem; }
.ibz-form__consent input { width: 20px; height: 20px; min-height: 0; margin-top: .2em; flex: none; }
.ibz-search-form { display: flex; gap: .5rem; }
.ibz-search-form input[type="search"] { flex: 1; }

/* ==========================================================================
   25. PAGINATION, 404, DIVERS
   ========================================================================== */
.ibz-pagination { margin-top: 2.5rem; }
.ibz-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.ibz-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 .8rem;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-sm);
	background: #fff;
	color: var(--ibz-ink);
	font-family: var(--ibz-font-title);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--ibz-t-fast), background-color var(--ibz-t-fast);
}
.ibz-pagination .page-numbers:hover { border-color: var(--ibz-ink); }
.ibz-pagination .page-numbers.current { background: var(--ibz-ink); border-color: var(--ibz-ink); color: #fff; }
.ibz-pagination .dots { border: 0; background: none; }

.ibz-empty { background: var(--ibz-mist); border: 1px dashed var(--ibz-line); border-radius: var(--ibz-r-lg); padding: clamp(1.5rem, 3vw, 2.5rem); }

.ibz-404__code {
	font-family: var(--ibz-font-title);
	font-size: clamp(4rem, 12vw, 8rem);
	font-weight: 700;
	line-height: 1;
	color: var(--ibz-ink);
	letter-spacing: -.04em;
}
.ibz-404__code span { color: var(--ibz-red); }

.ibz-quicklinks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 767px) { .ibz-quicklinks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 439px) { .ibz-quicklinks { grid-template-columns: minmax(0, 1fr); } }
.ibz-quicklink {
	display: flex;
	align-items: center;
	gap: .65rem;
	padding: .9rem 1rem;
	background: #fff;
	border: 1px solid var(--ibz-line);
	border-radius: var(--ibz-r-md);
	text-decoration: none;
	color: var(--ibz-ink);
	font-family: var(--ibz-font-title);
	font-weight: 600;
	font-size: .97rem;
	transition: border-color var(--ibz-t-fast), transform var(--ibz-t-fast);
}
.ibz-quicklink:hover { border-color: var(--ibz-ink); transform: translateY(-2px); color: var(--ibz-ink); }
.ibz-quicklink svg { width: 22px; height: 22px; color: var(--ibz-red-600); flex: none; }

.ibz-notice {
	border: 1px solid var(--ibz-line);
	border-left: 4px solid var(--ibz-gold);
	background: var(--ibz-cream);
	border-radius: 0 var(--ibz-r-md) var(--ibz-r-md) 0;
	padding: 1.1rem 1.3rem;
	font-size: .97rem;
}
.ibz-notice strong { color: var(--ibz-ink); }
.ibz-notice--info { border-left-color: var(--ibz-blue); background: var(--ibz-blue-soft); }
.ibz-notice--warn { border-left-color: var(--ibz-red); background: var(--ibz-red-soft); }

.ibz-updated {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem .9rem;
	border-radius: var(--ibz-r-pill);
	background: var(--ibz-mist);
	border: 1px solid var(--ibz-line);
	font-size: .88rem;
	color: var(--ibz-ink-2);
	font-family: var(--ibz-font-title);
	font-weight: 600;
}
.ibz-updated svg { width: 16px; height: 16px; color: var(--ibz-muted); }

.ibz-toc { background: var(--ibz-mist); border: 1px solid var(--ibz-line); border-radius: var(--ibz-r-lg); padding: 1.25rem 1.4rem; }
.ibz-toc h2 { font-size: .95rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .75rem; }
.ibz-toc ol { margin: 0; padding-left: 1.2rem; font-size: .96rem; }
.ibz-toc a { color: var(--ibz-ink-2); text-decoration: none; }
.ibz-toc a:hover { color: var(--ibz-red-600); text-decoration: underline; }

.ibz-comments { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--ibz-line); }
.ibz-comments ol { list-style: none; padding: 0; margin: 0; }
.ibz-comments .children { list-style: none; padding-left: clamp(1rem, 4vw, 2.5rem); }
.ibz-comments .comment-body { background: #fff; border: 1px solid var(--ibz-line); border-radius: var(--ibz-r-md); padding: 1.15rem 1.25rem; margin-bottom: 1rem; }
.ibz-comments .comment-meta { font-size: .88rem; color: var(--ibz-muted); margin-bottom: .6rem; }
.ibz-comments .comment-author img { border-radius: 50%; margin-right: .5rem; vertical-align: middle; }
.ibz-comments .reply a { font-family: var(--ibz-font-title); font-weight: 600; font-size: .9rem; text-decoration: none; }

.ibz-reveal { opacity: 0; transform: translateY(18px); transition: opacity 520ms ease, transform 520ms cubic-bezier(.22, .61, .36, 1); }
.ibz-reveal.is-visible { opacity: 1; transform: none; }
.no-js .ibz-reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.ibz-reveal { opacity: 1 !important; transform: none !important; }
}

.ibz-mt-0 { margin-top: 0 !important; }
.ibz-mt-1 { margin-top: .75rem; }
.ibz-mt-2 { margin-top: 1.5rem; }
.ibz-mt-3 { margin-top: 2.25rem; }
.ibz-mb-0 { margin-bottom: 0 !important; }
.ibz-mb-2 { margin-bottom: 1.5rem; }
.ibz-text-center { text-align: center; }
.ibz-stack { display: grid; gap: 1rem; }
.ibz-stack--lg { gap: 1.75rem; }
.ibz-flow > * + * { margin-top: 1.15rem; }
.ibz-nowrap { white-space: nowrap; }

.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { max-width: min(1100px, 96vw); margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .88rem; color: var(--ibz-muted); }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.sticky, .gallery-caption, .bypostauthor { display: block; }

/* ==========================================================================
   26. ICONES EN LIGNE — taille par defaut et accents de marque
   ========================================================================== */
.ibz-icon { width: 24px; height: 24px; flex: none; display: inline-block; vertical-align: middle; }
.ibz-icon .ibz-accent { stroke: var(--ibz-red); }
.ibz-icon .ibz-accent-fill { fill: var(--ibz-gold); stroke: none; }
.ibz-section--ink .ibz-icon .ibz-accent,
.ibz-tech .ibz-icon .ibz-accent,
.ibz-footer .ibz-icon .ibz-accent { stroke: var(--ibz-gold); }
.ibz-btn .ibz-icon,
.ibz-link-arrow .ibz-icon { width: 18px; height: 18px; }
.ibz-checks .ibz-icon,
.ibz-plans-note .ibz-icon { width: 17px; height: 17px; }
.ibz-diag__label .ibz-icon { width: 14px; height: 14px; }

/* Direction artistique du hero : la variante mobile est en portrait 3/4 */
@media (max-width: 599px) {
	.ibz-hero__frame img { aspect-ratio: 3 / 4; object-fit: cover; }
}

/* Colonne annexe d'un titre de section */
.ibz-sec-head__aside { font-size: .98rem; color: var(--ibz-body); }
.ibz-sec-head__aside p:last-child { margin-bottom: 0; }
.ibz-section--ink .ibz-sec-head__aside { color: #b9c0cc; }

/* Icone dans les cartes de contenu */
.ibz-content-card__body .ibz-card__icon { width: 42px; height: 42px; margin-bottom: .8rem; }
.ibz-content-card__body .ibz-card__icon .ibz-icon { width: 22px; height: 22px; }

/* ==========================================================================
   27. ONGLETS, CARTES CLIQUABLES ET FINITIONS
   ========================================================================== */
[role="tab"].ibz-btn { transition: background-color var(--ibz-t-fast), color var(--ibz-t-fast), border-color var(--ibz-t-fast); }
[role="tab"][aria-selected="true"].ibz-btn {
	background: var(--ibz-ink);
	border-color: var(--ibz-ink);
	color: #fff;
	box-shadow: var(--ibz-sh-2);
}
[role="tab"][aria-selected="false"].ibz-btn {
	background: #fff;
	border-color: var(--ibz-line);
	color: var(--ibz-ink);
	box-shadow: none;
}
[role="tab"][aria-selected="false"].ibz-btn:hover { border-color: var(--ibz-ink); }
[role="tabpanel"]:focus-visible { outline: 3px solid var(--ibz-gold); outline-offset: 4px; }

a.ibz-card { display: block; text-decoration: none; color: inherit; }
a.ibz-card:hover { color: inherit; }
a.ibz-card p { color: var(--ibz-body); }

.ibz-scenario h3 { margin-bottom: .45rem; }
.ibz-faq__q > span:last-child { flex: 1; }
.ibz-table caption { text-align: left; }
.ibz-toc ol li { margin-bottom: .35rem; }

/* Le titre d'une carte reste lisible quand la carte entiere est un lien */
a.ibz-card h2, a.ibz-card h3 { color: var(--ibz-ink); }
a.ibz-card:hover h2, a.ibz-card:hover h3 { color: var(--ibz-red-600); }

/* Impression : documents juridiques lisibles sur papier */
@media print {
	.ibz-header, .ibz-topbar, .ibz-mobile, .ibz-wa-float, .ibz-footer__support,
	.ibz-cta-band, .ibz-btn-row, .ibz-skip-link { display: none !important; }
	body { font-size: 11pt; color: #000; background: #fff; }
	.ibz-section { padding-block: 1rem; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; color: #555; }
}

/* ==========================================================================
   28. CORRECTIONS DE CONTRASTE SUR FONDS SOMBRES
   (bande technique et bandeau d'appel a l'action)
   ========================================================================== */
.ibz-tech .ibz-sec-head p,
.ibz-tech > .ibz-container > p,
.ibz-tech .ibz-media-note { color: #b0b9c7; }

.ibz-tech .ibz-eyebrow,
.ibz-cta-band .ibz-eyebrow { color: var(--ibz-gold); }

.ibz-tech .ibz-signal span:nth-child(1),
.ibz-cta-band .ibz-signal span:nth-child(1) { background: #fff; }

.ibz-tech .ibz-checks li,
.ibz-cta-band .ibz-checks li { color: #cfd6e1; }

.ibz-tech .ibz-checks li::before,
.ibz-cta-band .ibz-checks li::before {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .2);
}
.ibz-tech .ibz-checks li::after,
.ibz-cta-band .ibz-checks li::after { border-color: var(--ibz-gold); }

.ibz-tech a:not(.ibz-btn),
.ibz-cta-band a:not(.ibz-btn) { color: var(--ibz-gold); }
.ibz-tech a:not(.ibz-btn):hover,
.ibz-cta-band a:not(.ibz-btn):hover { color: #fff; }

/* ==========================================================================
   29. HERO — AJUSTEMENTS TABLETTE
   Sous 1100 px, la photo passe en pleine largeur et le panneau d'indicateurs
   se place sous l'image : le visuel n'est jamais recouvert.
   ========================================================================== */
@media (max-width: 1099px) {
	.ibz-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.ibz-hero__media { margin-bottom: 0; }
	.ibz-hero__panel {
		position: static;
		width: 100%;
		min-width: 0;
		margin-top: 1rem;
		box-shadow: var(--ibz-sh-2);
		backdrop-filter: none;
		background: #fff;
	}
	.ibz-hero__lead { max-width: 62ch; }
}

@media (min-width: 1100px) {
	.ibz-hero__panel { left: -20px; min-width: min(360px, 78%); bottom: -30px; }
}
