/* =============================================================================
 * GAIGI Harmonization Layer — front-end stylesheet (CONSOLIDATED, brand-standard)
 * -----------------------------------------------------------------------------
 * EVERYTHING here is scoped to `body.gaigi-harmonized`, a class added by the
 * companion MU-plugin ONLY on public HTML renders where our header/footer are
 * actually injected. Nothing leaks into wp-admin, the block editor, login, etc.
 *
 * This file supersedes the stacked 1.0.2 / 1.0.6 / GAIGI-HC override blocks that
 * had accumulated at the tail of the previous stylesheet. Those rules have been
 * folded into their proper sections below and the contradictory duplicates
 * removed, so there is now ONE coherent source per selector (no !important
 * ping-pong on header size / nav font / logo).
 *
 * Brand tokens (official GAIGI typography guide):
 *   accent #E8423A (hover #C5322A), text #15151A, muted #54545E, faint #8A8A93,
 *   cream #F7F6F3, sand #EFEDE8, white #FFFFFF, thin 0.5px filets, square corners.
 *   Playfair Display headings (h1-h3), Inter body/interface.
 *   nav 13px/500/.10em · buttons 13px/600/.04em · labels 11-12px/600 uppercase/.18em.
 *   Fonts are enqueued by the companion plugin (Inter 400/500/600/700 + Playfair 400/500/700).
 *
 * Structure:
 *   1. Tokens
 *   2. Hide legacy Astra / Elementor chrome (header + footer only)
 *   3. Injected GAIGI header (logo, nav, lang, CTA, hamburger)
 *   4. Injected GAIGI footer
 *   5. Global typography + links harmonization
 *   6. Buttons (Astra / Elementor / Gutenberg / WooCommerce / forms)
 *   7. Forms & inputs
 *   8. Tables, cards, blocks
 *   9. WooCommerce
 *  10. LearnDash
 *  11. 404
 *  12. Cookie banner (light touch)
 *  13. Responsive nav (hamburger, usable at 320px)
 * ========================================================================== */

/* ---------- 1. Tokens ---------- */
body.gaigi-harmonized {
	--gh-rouge:       #E8423A;
	--gh-rouge-fonce: #C5322A;
	--gh-encre:       #15151A;
	--gh-gris:        #54545E;
	--gh-etiquette:   #8A8A93;
	--gh-ecru:        #F7F6F3;
	--gh-sable:       #EFEDE8;
	--gh-filet:       #E9E7E1;
	--gh-filet-ecru:  #DBD9D0;
	--gh-sombre:      #161616;
	--gh-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--gh-sans:  'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--gh-max: 1120px;
	--gh-header-h: 92px;
	--gh-logo-w: 104px;
	--gh-logo-h: 57px;
	--gh-mobile-logo-w: 84px;
	--gh-mobile-logo-h: 46px;
	--gh-logo-url: url(https://www.gaigi.org/wp-content/uploads/2026/06/gaigi-logo-transparent.png);
}

/* ---------- 2. Hide legacy Astra / Elementor header & footer ----------
 * Scoped to body.gaigi-harmonized so it can NEVER hide legacy chrome unless our
 * replacement is present (the body class and the injected markup are added by
 * the same guard in the plugin). Site content, forms, WooCommerce and LearnDash
 * are untouched — only site-wide header/footer chrome is replaced. The
 * WordPress admin bar (#wpadminbar) is intentionally left alone.
 */
body.gaigi-harmonized #masthead,
body.gaigi-harmonized .site-header,
body.gaigi-harmonized .ast-primary-header-bar,
body.gaigi-harmonized .ast-above-header,
body.gaigi-harmonized .ast-below-header,
body.gaigi-harmonized .ast-header-break-point .main-header-bar,
body.gaigi-harmonized [data-elementor-type="header"],
body.gaigi-harmonized .elementor-location-header,
body.gaigi-harmonized .elementor header:not(.gaigi-h-header),
body.gaigi-harmonized > header:not(.gaigi-h-header),
body.gaigi-harmonized > footer:not(.gaigi-h-footer),
body.gaigi-harmonized #colophon,
body.gaigi-harmonized .site-footer,
body.gaigi-harmonized footer.site-footer,
body.gaigi-harmonized [data-elementor-type="footer"],
body.gaigi-harmonized .elementor-location-footer,
body.gaigi-harmonized .ekit-template-content-markup[data-elementor-type="footer"],
body.gaigi-harmonized .elementor-location-footer .elementor,
body.gaigi-harmonized .elementskit-footer,
body.gaigi-harmonized .ekit-footer,
body.gaigi-harmonized .footer-widgets,
body.gaigi-harmonized .elementor footer:not(.gaigi-h-footer),
body.gaigi-harmonized #page > footer:not(.gaigi-h-footer),
body.gaigi-harmonized .site > footer:not(.gaigi-h-footer),
body.gaigi-harmonized #content ~ footer:not(.gaigi-h-footer) {
	display: none !important;
}

/* Astra sometimes reserves top spacing for a sticky header; reclaim it. */
body.gaigi-harmonized #page,
body.gaigi-harmonized .site,
body.gaigi-harmonized #content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* ---------- 3. Injected GAIGI header ---------- */
body.gaigi-harmonized .gaigi-h-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--gh-encre);
	color: #fff;
	padding: 10px 16px;
	font-family: var(--gh-sans);
	font-size: 14px;
}
body.gaigi-harmonized .gaigi-h-skip:focus {
	left: 8px;
	top: 8px;
}

body.gaigi-harmonized .gaigi-h-header {
	background: #fff;
	border-bottom: 0.5px solid var(--gh-filet);
	font-family: var(--gh-sans);
	position: relative;
	z-index: 999;
	isolation: isolate;
}
body.gaigi-harmonized .gaigi-h-bar {
	max-width: var(--gh-max);
	min-height: var(--gh-header-h);
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	box-sizing: border-box;
}

/* Brand: official GAIGI logo image (the injected <a> text is replaced by the
   logo mark; text kept in markup for accessibility but visually hidden). */
body.gaigi-harmonized .gaigi-h-brand {
	display: block;
	width: var(--gh-logo-w);
	height: var(--gh-logo-h);
	flex: 0 0 var(--gh-logo-w);
	margin-right: auto;
	background: var(--gh-logo-url) left center / contain no-repeat;
	font-size: 0;
	line-height: 0;
	letter-spacing: 0;
	color: transparent;
	text-decoration: none;
	overflow: hidden;
}

body.gaigi-harmonized .gaigi-h-nav {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
}
body.gaigi-harmonized .gaigi-h-links {
	display: flex;
	align-items: center;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
body.gaigi-harmonized .gaigi-h-links a {
	font-family: var(--gh-sans) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.10em !important;
	color: var(--gh-gris);
	text-decoration: none;
	white-space: nowrap;
	padding-bottom: 2px;
}
body.gaigi-harmonized .gaigi-h-links a:hover,
body.gaigi-harmonized .gaigi-h-links a:focus-visible {
	color: var(--gh-encre);
	border-bottom: 1px solid var(--gh-encre);
}
body.gaigi-harmonized .gaigi-h-actions {
	display: flex;
	align-items: center;
	gap: 18px;
}
body.gaigi-harmonized .gaigi-h-lang {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--gh-etiquette);
}
body.gaigi-harmonized .gaigi-h-lang a {
	color: var(--gh-etiquette);
	text-decoration: none;
}
body.gaigi-harmonized .gaigi-h-lang a:hover,
body.gaigi-harmonized .gaigi-h-lang a:focus-visible {
	color: var(--gh-encre);
}
body.gaigi-harmonized .gaigi-h-lang a[aria-current="true"] {
	color: var(--gh-encre);
	font-weight: 600;
}
body.gaigi-harmonized .gaigi-h-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	background: var(--gh-rouge) !important;
	color: #fff !important;
	font-family: var(--gh-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	padding: 0 28px;
	text-decoration: none;
	border: 0;
}
body.gaigi-harmonized .gaigi-h-cta:hover,
body.gaigi-harmonized .gaigi-h-cta:focus-visible {
	background: var(--gh-rouge-fonce);
	color: #fff;
}

/* Hamburger — hidden on desktop, shown at the breakpoint (section 13). */
body.gaigi-harmonized .gaigi-h-burger {
	display: none;
	background: none;
	border: 0;
	padding: 10px;
	margin: -10px -10px -10px 0;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--gh-encre);
}
body.gaigi-harmonized .gaigi-h-burger-box {
	display: inline-flex;
	width: 22px;
	height: 16px;
	position: relative;
}
body.gaigi-harmonized .gaigi-h-burger-line,
body.gaigi-harmonized .gaigi-h-burger-line::before,
body.gaigi-harmonized .gaigi-h-burger-line::after {
	content: "";
	position: absolute;
	left: 0;
	width: 22px;
	height: 2px;
	background: var(--gh-encre);
	transition: transform 0.2s ease, opacity 0.2s ease;
}
body.gaigi-harmonized .gaigi-h-burger-line { top: 7px; }
body.gaigi-harmonized .gaigi-h-burger-line::before { top: -6px; }
body.gaigi-harmonized .gaigi-h-burger-line::after  { top: 6px; }
body.gaigi-harmonized .gaigi-h-burger[aria-expanded="true"] .gaigi-h-burger-line {
	background: transparent;
}
body.gaigi-harmonized .gaigi-h-burger[aria-expanded="true"] .gaigi-h-burger-line::before {
	transform: translateY(6px) rotate(45deg);
}
body.gaigi-harmonized .gaigi-h-burger[aria-expanded="true"] .gaigi-h-burger-line::after {
	transform: translateY(-6px) rotate(-45deg);
}

/* ---------- 4. Injected GAIGI footer (full canonical footer) ----------
 * Structurally + visually identical to the footer validated on the static
 * gaigi-connect.html / homepage: mission line, brand/identity column, four link
 * columns (Institut/Institute · Travail/Work · Documents · Contact — including the
 * Équipe & conseil / Team & board link) and a legal row. Forced visible so it can
 * never be suppressed by a leftover theme rule (see the footerVisible=false QA on
 * /evenements/ and /contact/). */
body.gaigi-harmonized .gaigi-h-footer {
	display: block !important;
	visibility: visible !important;
	background: var(--gh-ecru);
	border-top: 0.5px solid var(--gh-filet-ecru);
	font-family: var(--gh-sans);
	color: var(--gh-gris);
	margin-top: 48px;
}
body.gaigi-harmonized .gaigi-h-foot-int {
	max-width: var(--gh-max);
	margin: 0 auto;
	padding: clamp(52px, 6vw, 80px) 24px clamp(22px, 3vw, 30px);
	box-sizing: border-box;
}
body.gaigi-harmonized .gaigi-h-foot-mission {
	max-width: 70ch;
	margin-bottom: clamp(36px, 5vw, 54px);
}
body.gaigi-harmonized .gaigi-h-foot-mission p {
	font-size: 15px;
	line-height: 1.65;
	color: var(--gh-encre);
	margin: 0;
}
body.gaigi-harmonized .gaigi-h-foot-sub {
	font-size: 12px !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gh-etiquette) !important;
	margin-top: 12px !important;
}
body.gaigi-harmonized .gaigi-h-foot-grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(4, 1fr);
	gap: clamp(26px, 3vw, 42px);
	padding-top: clamp(36px, 4vw, 52px);
	border-top: 0.5px solid var(--gh-filet-ecru);
}
body.gaigi-harmonized .gaigi-h-foot-brand img.gaigi-h-foot-logo {
	height: 52px;
	width: auto;
	margin-bottom: 18px;
	filter: none;
}
body.gaigi-harmonized .gaigi-h-foot-brand img.gaigi-h-foot-itu {
	height: 36px;
	width: auto;
	margin-top: 16px;
	filter: none;
	opacity: 0.85;
}
body.gaigi-harmonized .gaigi-h-foot-brand p {
	font-size: 12.5px;
	color: var(--gh-gris);
	line-height: 1.7;
	margin: 0;
}
body.gaigi-harmonized .gaigi-h-foot-col h4 {
	font-family: var(--gh-sans);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gh-encre);
	margin: 0 0 15px;
	font-weight: 600;
	line-height: 1.3;
}
body.gaigi-harmonized .gaigi-h-foot-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
body.gaigi-harmonized .gaigi-h-foot-col li {
	margin-bottom: 9px;
}
body.gaigi-harmonized .gaigi-h-foot-col a {
	color: var(--gh-gris);
	font-size: 13px;
	text-decoration: none;
	transition: color 0.18s;
}
body.gaigi-harmonized .gaigi-h-foot-col a:hover,
body.gaigi-harmonized .gaigi-h-foot-col a:focus-visible {
	color: var(--gh-rouge);
}
body.gaigi-harmonized .gaigi-h-foot-legal {
	margin-top: clamp(36px, 5vw, 54px);
	padding-top: 22px;
	border-top: 0.5px solid var(--gh-filet-ecru);
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 11.5px;
	color: var(--gh-etiquette);
	letter-spacing: 0.03em;
}
body.gaigi-harmonized .gaigi-h-foot-legal a {
	color: var(--gh-etiquette);
	text-decoration: none;
}
body.gaigi-harmonized .gaigi-h-foot-legal a:hover,
body.gaigi-harmonized .gaigi-h-foot-legal a:focus-visible {
	color: var(--gh-rouge);
}
@media (max-width: 900px) {
	body.gaigi-harmonized .gaigi-h-foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
	body.gaigi-harmonized .gaigi-h-foot-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
	body.gaigi-harmonized .gaigi-h-foot-col li { margin-bottom: 0; }
	body.gaigi-harmonized .gaigi-h-foot-col a,
	body.gaigi-harmonized .gaigi-h-foot-legal a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ---------- 5. Global typography + links ---------- */
body.gaigi-harmonized {
	font-family: var(--gh-sans);
	font-size: 16px;
	color: var(--gh-encre);
	line-height: 1.6;
}
body.gaigi-harmonized .entry-content,
body.gaigi-harmonized .site-content,
body.gaigi-harmonized #content {
	font-family: var(--gh-sans);
}
body.gaigi-harmonized h1,
body.gaigi-harmonized h2,
body.gaigi-harmonized h3,
body.gaigi-harmonized .entry-title,
body.gaigi-harmonized .elementor-heading-title {
	font-family: var(--gh-serif);
	font-weight: 700;
	color: var(--gh-encre);
	line-height: 1.3;
}
body.gaigi-harmonized .entry-content a,
body.gaigi-harmonized .site-content a {
	color: var(--gh-encre);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}
body.gaigi-harmonized .entry-content a:hover,
body.gaigi-harmonized .site-content a:hover {
	color: var(--gh-rouge);
}
body.gaigi-harmonized a:focus-visible,
body.gaigi-harmonized button:focus-visible,
body.gaigi-harmonized input:focus-visible,
body.gaigi-harmonized select:focus-visible,
body.gaigi-harmonized textarea:focus-visible {
	outline: 2px solid var(--gh-rouge);
	outline-offset: 3px;
}

/* ---------- 6. Buttons ---------- */
body.gaigi-harmonized .ast-button,
body.gaigi-harmonized .wp-block-button__link,
body.gaigi-harmonized .elementor-button,
body.gaigi-harmonized .button,
body.gaigi-harmonized button:not(.gaigi-h-burger),
body.gaigi-harmonized input[type="submit"],
body.gaigi-harmonized input[type="button"],
body.gaigi-harmonized .woocommerce a.button,
body.gaigi-harmonized .woocommerce button.button,
body.gaigi-harmonized .learndash-wrapper .ld-button {
	background: var(--gh-rouge) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--gh-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em;
	padding: 11px 22px !important;
	text-decoration: none !important;
	box-shadow: none !important;
	text-transform: none !important;
	transition: background 0.15s ease;
}
body.gaigi-harmonized .ast-button:hover,
body.gaigi-harmonized .wp-block-button__link:hover,
body.gaigi-harmonized .elementor-button:hover,
body.gaigi-harmonized .button:hover,
body.gaigi-harmonized button:not(.gaigi-h-burger):hover,
body.gaigi-harmonized input[type="submit"]:hover,
body.gaigi-harmonized .woocommerce a.button:hover,
body.gaigi-harmonized .woocommerce button.button:hover,
body.gaigi-harmonized .learndash-wrapper .ld-button:hover {
	background: var(--gh-rouge-fonce) !important;
	color: #fff !important;
}

/* ---------- 7. Forms & inputs ---------- */
body.gaigi-harmonized input[type="text"],
body.gaigi-harmonized input[type="email"],
body.gaigi-harmonized input[type="tel"],
body.gaigi-harmonized input[type="url"],
body.gaigi-harmonized input[type="number"],
body.gaigi-harmonized input[type="password"],
body.gaigi-harmonized input[type="search"],
body.gaigi-harmonized select,
body.gaigi-harmonized textarea {
	font-family: var(--gh-sans);
	font-size: 15px;
	color: var(--gh-encre);
	background: #fff;
	border: 0.5px solid var(--gh-filet);
	border-radius: 0;
	padding: 10px 12px;
	box-shadow: none;
}
body.gaigi-harmonized input:focus,
body.gaigi-harmonized select:focus,
body.gaigi-harmonized textarea:focus {
	border-color: var(--gh-encre);
	outline: none;
}
body.gaigi-harmonized label {
	font-size: 13px;
	color: var(--gh-gris);
}

/* ---------- 8. Tables, cards, blocks ---------- */
body.gaigi-harmonized table {
	border-collapse: collapse;
	width: 100%;
	font-size: 14px;
}
body.gaigi-harmonized th,
body.gaigi-harmonized td {
	border: 0.5px solid var(--gh-filet);
	padding: 10px 12px;
	text-align: left;
}
body.gaigi-harmonized th {
	background: var(--gh-ecru);
	font-weight: 600;
}
body.gaigi-harmonized blockquote {
	border-left: 2px solid var(--gh-rouge);
	margin: 0;
	padding-left: 18px;
	font-family: var(--gh-serif);
	color: var(--gh-gris);
}
body.gaigi-harmonized hr {
	border: 0;
	border-top: 0.5px solid var(--gh-filet);
}

/* ---------- 9. WooCommerce ---------- */
body.gaigi-harmonized .woocommerce ul.products li.product,
body.gaigi-harmonized .woocommerce div.product,
body.gaigi-harmonized .woocommerce .cart_totals,
body.gaigi-harmonized .woocommerce-checkout #payment {
	border-radius: 0;
}
body.gaigi-harmonized .woocommerce span.price,
body.gaigi-harmonized .woocommerce div.product p.price {
	color: var(--gh-encre);
	font-weight: 600;
}
body.gaigi-harmonized .woocommerce-message,
body.gaigi-harmonized .woocommerce-info {
	border-top-color: var(--gh-rouge);
}
body.gaigi-harmonized .woocommerce-message::before,
body.gaigi-harmonized .woocommerce-info::before {
	color: var(--gh-rouge);
}

/* ---------- 10. LearnDash ---------- */
body.gaigi-harmonized .learndash-wrapper .ld-item-list-item,
body.gaigi-harmonized .learndash-wrapper .ld-course-status {
	border-radius: 0;
}
body.gaigi-harmonized .learndash-wrapper .ld-progress-bar .ld-progress-bar-percentage {
	background: var(--gh-rouge);
}

/* ---------- 11. 404 ---------- */
body.gaigi-harmonized.error404 .site-content,
body.gaigi-harmonized.error404 #content {
	max-width: var(--gh-max);
	margin: 0 auto;
	padding: 60px 24px;
}
body.gaigi-harmonized.error404 .page-title {
	font-family: var(--gh-serif);
}

/* ---------- 12. Cookie banner (light touch) ---------- */
body.gaigi-harmonized .cli-modal-content,
body.gaigi-harmonized #cookie-law-info-bar,
body.gaigi-harmonized .cky-consent-container {
	font-family: var(--gh-sans) !important;
	border-radius: 0 !important;
}
body.gaigi-harmonized #cookie-law-info-bar {
	border-top: 0.5px solid var(--gh-filet) !important;
}

/* ---------- 13. Responsive nav (hamburger; usable at 320px) ---------- */
@media (max-width: 860px) {
	body.gaigi-harmonized .gaigi-h-bar {
		min-height: 76px;
		padding: 13px 20px;
		gap: 16px;
	}
	body.gaigi-harmonized .gaigi-h-brand {
		width: var(--gh-mobile-logo-w);
		height: var(--gh-mobile-logo-h);
		flex-basis: var(--gh-mobile-logo-w);
	}
	body.gaigi-harmonized .gaigi-h-burger {
		display: inline-flex;
		order: 2;
	}
	body.gaigi-harmonized .gaigi-h-nav {
		order: 3;
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		/* Collapsed by default; opened by JS toggling [data-open]. If JS is
		   unavailable the nav simply stays visible (progressive enhancement):
		   the :not([data-open]) rule only hides it once JS has initialised. */
	}
	body.gaigi-harmonized .gaigi-h-nav[data-collapsible="true"]:not([data-open="true"]) {
		display: none;
	}
	body.gaigi-harmonized .gaigi-h-links {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		border-top: 0.5px solid var(--gh-filet);
		margin-top: 14px;
	}
	body.gaigi-harmonized .gaigi-h-links a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;      /* ~44px touch target */
		font-size: 13px !important;       /* brand nav size (touch target held by min-height) */
		padding: 11px 2px;
		border-bottom: 0.5px solid var(--gh-filet);
	}
	body.gaigi-harmonized .gaigi-h-links a:hover,
	body.gaigi-harmonized .gaigi-h-links a:focus-visible {
		border-bottom: 0.5px solid var(--gh-filet);
	}
	body.gaigi-harmonized .gaigi-h-actions {
		width: 100%;
		justify-content: space-between;
		padding: 14px 0 4px;
		gap: 16px;
	}
	body.gaigi-harmonized .gaigi-h-lang {
		font-size: 14px;
		gap: 8px;
	}
	body.gaigi-harmonized .gaigi-h-lang a {
		padding: 11px 6px;
	}
	body.gaigi-harmonized .gaigi-h-cta {
		min-height: 48px;
		padding: 0 20px;
	}
	body.gaigi-harmonized .gaigi-h-foot-int {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Extra-tight phones: keep everything inside 320px with no overflow. */
@media (max-width: 360px) {
	body.gaigi-harmonized .gaigi-h-bar {
		padding: 16px 16px;
		gap: 14px;
	}
	body.gaigi-harmonized .gaigi-h-foot-int {
		padding: 22px 16px;
	}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	body.gaigi-harmonized .gaigi-h-burger-line,
	body.gaigi-harmonized .gaigi-h-burger-line::before,
	body.gaigi-harmonized .gaigi-h-burger-line::after {
		transition: none;
	}
}

/* ====== GAIGI v1.0.15 RESILIENCE PATCH — NE JAMAIS SUPPRIMER CE BLOC ======
 * R1: footer/header ElementsKit legacy (masquage par classe, sans data-elementor-type)
 * R2: footer collé dans le contenu des FAQ (12494/12495) · R3: overflow mobile (11647/11651) */
body.gaigi-harmonized .ekit-template-content-header,
body.gaigi-harmonized .ekit-template-content-markup.ekit-template-content-header,
body.gaigi-harmonized .ekit-template-content-footer,
body.gaigi-harmonized .ekit-template-content-markup.ekit-template-content-footer,
body.gaigi-harmonized #page > .ekit-template-content-footer,
body.gaigi-harmonized #page > .ekit-template-content-header {
	display: none !important;
}
body.gaigi-harmonized.page-id-12494 main > footer:not(.gaigi-h-footer),
body.gaigi-harmonized.page-id-12495 .entry-content main > footer:not(.gaigi-h-footer),
body.gaigi-harmonized.page-id-12495 .entry-content > header:empty {
	display: none !important;
}
body.gaigi-harmonized.page-id-11647,
body.gaigi-harmonized.page-id-11651 {
	overflow-wrap: anywhere;
	word-break: break-word;
}