/* ==========================================================================
   AIG Création — feuille de style applicative
   Les valeurs vivent dans tokens.css ; ici, uniquement des règles.
   Mobile d'abord : le site se comporte comme une application (tab bar basse,
   sheets, snap horizontal), puis s'élargit en site classique dès 1024px.
   ========================================================================== */

/* --------------------------------------------------------------- 1. Base */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: var(--aig-scroll-pad);
}

body {
	margin: 0;
	background: var(--aig-bg);
	color: var(--aig-text);
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-body);
	line-height: var(--aig-lh-body);
	font-weight: var(--aig-fw-regular);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	/* laisse la place à la tab bar : aucun contenu ne passe dessous */
	padding-bottom: var(--aig-tabbar-total);
}

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

h1, h2, h3, h4 {
	font-family: var(--aig-font-display);
	font-weight: var(--aig-fw-display-light);
	color: var(--aig-text);
	margin: 0 0 var(--aig-space-sm);
	text-wrap: balance;
}

h1 { font-size: var(--aig-fs-h1); line-height: var(--aig-lh-h1); letter-spacing: var(--aig-ls-h1); }
h2 { font-size: var(--aig-fs-h2); line-height: var(--aig-lh-h2); letter-spacing: var(--aig-ls-h2); }
h3 { font-size: var(--aig-fs-h3); line-height: var(--aig-lh-h3); letter-spacing: var(--aig-ls-h3); }
h4 { font-size: var(--aig-fs-h4); line-height: var(--aig-lh-h4); letter-spacing: var(--aig-ls-h4); font-family: var(--aig-font-sans); font-weight: var(--aig-fw-semibold); }

p { margin: 0 0 var(--aig-space-md); max-width: var(--aig-measure); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a { color: var(--aig-palme); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--aig-ravine); }

strong { font-weight: var(--aig-fw-semibold); color: var(--aig-text); }

ul, ol { margin: 0 0 var(--aig-space-md); padding-left: 1.25em; }
li { margin-bottom: var(--aig-space-2xs); }

:focus-visible {
	outline: 2px solid var(--aig-focus);
	outline-offset: 3px;
	border-radius: var(--aig-radius-xs);
}

::selection { background: var(--aig-lagon-pale); color: var(--aig-ravine-fonce); }

.aig-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}

.aig-skip {
	position: absolute; left: var(--aig-space-sm); top: -100px;
	z-index: var(--aig-z-toast);
	background: var(--aig-ravine); color: var(--aig-sable);
	padding: var(--aig-space-xs) var(--aig-space-md);
	border-radius: var(--aig-radius-pill);
	font-size: var(--aig-fs-small); font-weight: var(--aig-fw-semibold);
	text-decoration: none;
	transition: top var(--aig-dur-fast) var(--aig-ease-standard);
}
.aig-skip:focus { top: calc(var(--aig-safe-top) + var(--aig-space-sm)); color: var(--aig-sable); }

/* ------------------------------------------------------ 2. Mise en page */

.aig-shell { min-height: 100svh; display: flex; flex-direction: column; }
main { flex: 1; }

.aig-wrap {
	width: 100%;
	max-width: var(--aig-container);
	margin-inline: auto;
	padding-inline: var(--aig-gutter);
}
.aig-wrap--narrow { max-width: var(--aig-container-narrow); }
.aig-wrap--wide { max-width: var(--aig-container-wide); }

.aig-section {
	padding-block: var(--aig-section-y);
	position: relative;
	/* les filigranes décoratifs débordent volontairement : on les rogne ici,
	   « clip » plutôt que « hidden » pour ne pas créer de conteneur de défilement */
	overflow-x: clip;
}
.aig-section--tight { padding-block: calc(var(--aig-section-y) * 0.6); }
.aig-section--alt { background: var(--aig-bg-alt); }
.aig-section--inverse { background: var(--aig-bg-inverse); color: var(--aig-text-on-dark); }
.aig-section--inverse h1,
.aig-section--inverse h2,
.aig-section--inverse h3,
.aig-section--inverse h4 { color: var(--aig-text-on-dark); }
.aig-section--inverse p { color: color-mix(in srgb, var(--aig-text-on-dark) 88%, transparent); }
.aig-section[hidden] { display: none; }

.aig-stack > * + * { margin-top: var(--aig-stack); }

/* En-tête de section : surtitre / titre / chapô */

.aig-head { max-width: 62ch; margin-bottom: var(--aig-space-xl); }
.aig-head--center { margin-inline: auto; text-align: center; }

.aig-overline {
	display: block;
	font-size: var(--aig-fs-micro);
	font-weight: var(--aig-fw-semibold);
	letter-spacing: var(--aig-ls-overline);
	text-transform: uppercase;
	color: var(--aig-or-texte);
	margin-bottom: var(--aig-space-xs);
}
.aig-section--inverse .aig-overline { color: var(--aig-or-clair); }

.aig-lead {
	font-size: var(--aig-fs-lead);
	line-height: var(--aig-lh-lead);
	color: var(--aig-text-muted);
	max-width: 58ch;
}
.aig-head--center .aig-lead { margin-inline: auto; }
.aig-section--inverse .aig-lead { color: color-mix(in srgb, var(--aig-text-on-dark) 84%, transparent); }

/* Ornement : filet + motif végétal, sous les titres centrés */

.aig-ornement {
	display: flex; align-items: center; justify-content: center;
	gap: var(--aig-space-xs);
	color: var(--aig-lagon);
	margin: var(--aig-space-sm) auto var(--aig-space-md);
	max-width: 180px;
}
.aig-ornement::before,
.aig-ornement::after {
	content: ""; flex: 1; height: 1px;
	background: currentColor; opacity: 0.55;
}
.aig-ornement svg { width: 22px; height: 22px; flex: none; }
.aig-ornement .aig-mask { width: 22px; height: 22px; flex: none; }
.aig-section--inverse .aig-ornement { color: var(--aig-or-clair); }

/* Séparateurs de section (ligne d'horizon, vague) */

/* (voir « masques » plus bas pour .aig-divider) */

/* Filigrane végétal en fond de section */

.aig-filigrane {
	position: absolute; pointer-events: none; z-index: 0;
	color: var(--aig-lagon);
	opacity: 0.10;
	width: clamp(140px, 26vw, 320px);
}
.aig-filigrane--tr { top: -2%; right: -4%; transform: rotate(12deg); }
.aig-filigrane--bl { bottom: -4%; left: -5%; transform: rotate(-160deg); }
.aig-section > .aig-wrap { position: relative; z-index: 1; }

/* ------------------------------------------------------- 3. Boutons */

.aig-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: var(--aig-space-2xs);
	min-height: var(--aig-tap-min);
	padding: 0.85em 1.6em;
	border: 1px solid transparent;
	border-radius: var(--aig-radius-pill);
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-small);
	font-weight: var(--aig-fw-semibold);
	letter-spacing: var(--aig-ls-bouton);
	text-decoration: none;
	cursor: pointer;
	text-align: center;
	transition:
		background-color var(--aig-dur-fast) var(--aig-ease-standard),
		color var(--aig-dur-fast) var(--aig-ease-standard),
		border-color var(--aig-dur-fast) var(--aig-ease-standard),
		box-shadow var(--aig-dur-fast) var(--aig-ease-standard),
		transform var(--aig-dur-instant) var(--aig-ease-standard);
}
.aig-btn:active { transform: scale(var(--aig-press-scale)); }
.aig-btn svg { width: 1.15em; height: 1.15em; flex: none; }

.aig-btn--primary { background: var(--aig-ravine); color: var(--aig-sable); box-shadow: var(--aig-shadow-sm); }
.aig-btn--primary:hover { background: var(--aig-ravine-fonce); color: var(--aig-sable); box-shadow: var(--aig-shadow-md); }

.aig-btn--secondary { background: var(--aig-surface); color: var(--aig-ravine); border-color: var(--aig-trait-fort); }
.aig-btn--secondary:hover { background: var(--aig-lagon-pale); color: var(--aig-ravine-fonce); border-color: var(--aig-lagon); }

.aig-btn--ghost { background: transparent; color: var(--aig-ravine); border-color: currentColor; }
.aig-btn--ghost:hover { background: var(--aig-lagon-pale); color: var(--aig-ravine-fonce); }

.aig-btn--or { background: var(--aig-or); color: #FFF; }
.aig-btn--or:hover { background: var(--aig-or-texte); color: #FFF; }

.aig-section--inverse .aig-btn--secondary,
.aig-hero .aig-btn--secondary {
	background: rgba(255, 255, 255, 0.14);
	color: #FFF;
	border-color: rgba(255, 255, 255, 0.55);
	backdrop-filter: blur(6px);
}
.aig-section--inverse .aig-btn--secondary:hover,
.aig-hero .aig-btn--secondary:hover { background: rgba(255, 255, 255, 0.26); color: #FFF; }

.aig-btns {
	display: flex; flex-wrap: wrap; gap: var(--aig-space-xs);
	/* ces boutons vivent souvent dans un <p> : sans cette ligne ils héritent de
	   la largeur de lecture (68ch) et ne peuvent pas se centrer dans la section */
	max-width: none;
}
.aig-head--center .aig-btns { justify-content: center; }

/* Lien fléché */

.aig-link {
	display: inline-flex; align-items: center; gap: 0.4em;
	font-weight: var(--aig-fw-semibold);
	font-size: var(--aig-fs-small);
	color: var(--aig-ravine);
	text-decoration: none;
	min-height: var(--aig-tap-min);
}
.aig-link::after {
	content: "→";
	transition: transform var(--aig-dur-fast) var(--aig-ease-out);
}
.aig-link:hover::after { transform: translateX(3px); }

/* ---------------------------------------------------------- 4. Chips */

.aig-chip {
	display: inline-flex; align-items: center; gap: 0.4em;
	padding: 0.35em 0.85em;
	border-radius: var(--aig-radius-pill);
	background: var(--aig-lagon-pale);
	color: var(--aig-ravine);
	font-size: var(--aig-fs-micro);
	font-weight: var(--aig-fw-semibold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.aig-chip--or { background: var(--aig-or-pale); color: var(--aig-or-texte); }
.aig-chip--rose { background: var(--aig-frangipanier); color: #7A3F45; }

/* ----------------------------------------------------- 5. En-tête */

.aig-header {
	position: sticky; top: 0; z-index: var(--aig-z-header);
	height: calc(var(--aig-header-h) + var(--aig-safe-top));
	padding-top: var(--aig-safe-top);
	background: var(--aig-bar-bg);
	backdrop-filter: var(--aig-blur-bar);
	-webkit-backdrop-filter: var(--aig-blur-bar);
	border-bottom: 1px solid transparent;
	transition: border-color var(--aig-dur-base) var(--aig-ease-standard),
	            box-shadow var(--aig-dur-base) var(--aig-ease-standard);
}
.aig-header.is-scrolled { border-bottom-color: var(--aig-trait); box-shadow: var(--aig-shadow-xs); }

.aig-header__in {
	height: var(--aig-header-h);
	display: flex; align-items: center; justify-content: space-between;
	gap: var(--aig-space-sm);
	max-width: var(--aig-container-wide);
	margin-inline: auto;
	padding-inline: var(--aig-gutter);
}

.aig-logo {
	display: inline-flex; align-items: center; gap: var(--aig-space-2xs);
	min-height: var(--aig-tap-min);
	color: var(--aig-rose-fonce);
	text-decoration: none;
	flex: none;
}
.aig-logo svg { width: auto; height: 30px; }
.aig-logo__txt {
	font-family: var(--aig-font-display);
	font-size: 1rem; line-height: 1;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--aig-basalte);
}

.aig-nav { display: none; }

.aig-header__cta { display: flex; align-items: center; gap: var(--aig-space-2xs); }

/* Bouton d'appel compact dans l'en-tête mobile */
.aig-callbtn {
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--aig-tap-min); height: var(--aig-tap-min);
	border-radius: var(--aig-radius-circle);
	background: var(--aig-ravine); color: var(--aig-sable);
	text-decoration: none;
	transition: transform var(--aig-dur-instant) var(--aig-ease-standard), background-color var(--aig-dur-fast);
}
.aig-callbtn:active { transform: scale(var(--aig-press-scale)); }
.aig-callbtn:hover { background: var(--aig-ravine-fonce); color: var(--aig-sable); }
.aig-callbtn svg { width: 20px; height: 20px; }

/* ------------------------------------------------- 6. Tab bar mobile */

.aig-tabbar {
	position: fixed; inset-inline: 0; bottom: 0;
	z-index: var(--aig-z-tabbar);
	height: var(--aig-tabbar-total);
	padding-bottom: var(--aig-safe-bottom);
	display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
	background: var(--aig-bar-bg);
	backdrop-filter: var(--aig-blur-bar);
	-webkit-backdrop-filter: var(--aig-blur-bar);
	border-top: 1px solid var(--aig-trait);
	box-shadow: var(--aig-shadow-tabbar);
}

.aig-tab {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 3px;
	min-width: 0;
	padding-inline: 2px;
	overflow: hidden;
	text-decoration: none;
	color: var(--aig-gris);
	font-size: 11px; font-weight: var(--aig-fw-semibold);
	letter-spacing: 0.01em;
	-webkit-tap-highlight-color: transparent;
	transition: color var(--aig-dur-fast) var(--aig-ease-standard);
	position: relative;
}
.aig-tab svg { width: 22px; height: 22px; stroke-width: 1.6; flex: none; }
.aig-tab span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aig-tab:active { color: var(--aig-ravine); }
.aig-tab:active svg { transform: scale(0.9); }
.aig-tab svg { transition: transform var(--aig-dur-instant) var(--aig-ease-spring); }
.aig-tab.is-active { color: var(--aig-ravine); }
.aig-tab.is-active::before {
	content: ""; position: absolute; top: 6px;
	width: 22px; height: 3px; border-radius: 3px;
	background: var(--aig-ravine);
}
.aig-tab--accent { color: var(--aig-or-texte); }
.aig-tab--accent.is-active { color: var(--aig-or-texte); }

/* Sans flou d'arrière-plan (navigateur ancien, capture, économie d'énergie),
   les barres deviennent opaques : le contenu ne doit jamais transparaître. */
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
	.aig-header,
	.aig-tabbar { background: var(--aig-sable); }
}

/* ------------------------------------------------------- 8. Hero */

.aig-hero {
	position: relative;
	display: grid;
	min-height: min(88svh, 720px);
	isolation: isolate;
	overflow: hidden;
	border-bottom-left-radius: var(--aig-radius-2xl);
	border-bottom-right-radius: var(--aig-radius-2xl);
}
.aig-hero__media { position: absolute; inset: 0; z-index: -2; }
.aig-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.aig-hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--aig-voile-bas);
}
.aig-hero__in {
	position: relative;
	align-self: end;
	width: 100%; max-width: var(--aig-container);
	margin-inline: auto;
	padding: var(--aig-space-2xl) var(--aig-gutter) var(--aig-space-xl);
	color: #FFF;
}
/* Panneau derrière le texte : c'est lui qui garantit la lisibilité, quelle que
   soit la photo choisie par la cliente. Il déborde vers le haut en fondu. */
.aig-hero__in::before {
	content: "";
	position: absolute;
	inset: -14% calc(-1 * max(0px, (100vw - var(--aig-container)) / 2)) 0;
	z-index: -1;
	background: var(--aig-voile-texte);
	pointer-events: none;
}
.aig-hero__in > * { color: inherit; }
/* Le surtitre se place tout en haut du bandeau, là où le panneau est encore
   transparent : il porte donc son propre fond, sinon il devient illisible sur
   une photo claire. Le fond suit les lignes grâce à box-decoration-break. */
.aig-hero .aig-overline {
	display: inline;
	color: #FFF;
	background: rgba(15, 46, 40, 0.74);
	box-shadow: 0 0 0 5px rgba(15, 46, 40, 0.74);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	border-radius: 2px;
	line-height: 1.9;
	text-shadow: none;
}
.aig-hero h1 {
	color: #FFF;
	font-size: var(--aig-fs-display);
	line-height: var(--aig-lh-display);
	letter-spacing: var(--aig-ls-display);
	max-width: 18ch;
	text-shadow: 0 1px 2px rgba(15, 46, 40, 0.45), 0 2px 24px rgba(15, 46, 40, 0.5);
}
.aig-hero__lead {
	font-size: var(--aig-fs-lead);
	line-height: var(--aig-lh-lead);
	color: rgba(255, 255, 255, 0.94);
	max-width: 46ch;
	margin-top: var(--aig-space-md);
	text-shadow: 0 1px 2px rgba(15, 46, 40, 0.4), 0 2px 16px rgba(15, 46, 40, 0.5);
}
.aig-hero .aig-btns { margin-top: var(--aig-space-lg); }

/* Hero secondaire (pages intérieures) : plus court, image en fond */
.aig-hero--page { min-height: min(62svh, 480px); }
.aig-hero--page h1 { font-size: var(--aig-fs-h1); max-width: 22ch; }

/* Bandeau de réassurance sous le hero */
.aig-hero__facts {
	display: flex; flex-wrap: wrap; gap: var(--aig-space-xs) var(--aig-space-md);
	margin-top: var(--aig-space-lg);
	padding-top: var(--aig-space-md);
	border-top: 1px solid rgba(255, 255, 255, 0.28);
	font-size: var(--aig-fs-small);
	color: rgba(255, 255, 255, 0.92);
}
.aig-hero__facts li { display: flex; align-items: center; gap: 0.45em; margin: 0; }
.aig-hero__facts { list-style: none; padding-left: 0; }
.aig-hero__facts svg { width: 16px; height: 16px; flex: none; opacity: 0.9; }

/* --------------------------------------------------- 9. Bloc texte */

.aig-prose { max-width: var(--aig-measure); }
.aig-prose h3 {
	margin-top: var(--aig-space-xl);
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-h4);
	font-weight: var(--aig-fw-semibold);
	letter-spacing: 0;
}
.aig-prose h3:first-child { margin-top: 0; }
.aig-prose ul { list-style: none; padding-left: 0; }
.aig-prose ul li {
	position: relative; padding-left: 1.6em; margin-bottom: var(--aig-space-xs);
}
.aig-prose ul li::before {
	content: ""; position: absolute; left: 0; top: 0.62em;
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--aig-lagon);
}

/* Texte + image côte à côte */
.aig-split { display: grid; gap: var(--aig-space-xl); align-items: center; }
.aig-split__media { position: relative; }
.aig-split__media img {
	width: 100%; border-radius: var(--aig-radius-xl);
	box-shadow: var(--aig-shadow-md);
	aspect-ratio: 4 / 5; object-fit: cover;
}
.aig-split--wide .aig-split__media img { aspect-ratio: 3 / 2; }

/* Citation */
.aig-quote {
	position: relative;
	font-family: var(--aig-font-display);
	font-size: var(--aig-fs-h3);
	line-height: 1.38;
	color: var(--aig-ravine);
	max-width: var(--aig-measure-narrow);
	padding-left: var(--aig-space-md);
	border-left: 2px solid var(--aig-or-clair);
	margin: var(--aig-space-lg) 0;
}
.aig-quote cite {
	display: block; margin-top: var(--aig-space-xs);
	font-family: var(--aig-font-sans); font-style: normal;
	font-size: var(--aig-fs-small); color: var(--aig-text-subtle);
	letter-spacing: 0.04em;
}

/* --------------------------------------------------- 10. Cartes */

/* Flex plutôt que grid : une dernière rangée incomplète (5 cartes sur 3
   colonnes, par exemple) reste alors centrée sous les précédentes. */
.aig-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--aig-space-md);
	--aig-cols: 1;
	list-style: none;
	padding: 0;
	margin: 0;
}
.aig-grid > * {
	flex: 0 1 calc((100% - (var(--aig-cols) - 1) * var(--aig-space-md)) / var(--aig-cols));
	min-width: 0;
	margin: 0;
}
.aig-grid--4 { --aig-cols: 2; }

.aig-card {
	position: relative;
	display: flex; flex-direction: column;
	gap: var(--aig-space-xs);
	padding: var(--aig-space-md);
	background: var(--aig-surface);
	border: 1px solid var(--aig-trait);
	border-radius: var(--aig-radius-lg);
	box-shadow: var(--aig-shadow-xs);
	transition: box-shadow var(--aig-dur-base) var(--aig-ease-standard),
	            transform var(--aig-dur-base) var(--aig-ease-standard),
	            border-color var(--aig-dur-base) var(--aig-ease-standard);
}
.aig-card h3 {
	font-family: var(--aig-font-display);
	font-size: var(--aig-fs-h3);
	font-weight: var(--aig-fw-display-medium);
	margin: 0;
}
.aig-card p { font-size: var(--aig-fs-small); color: var(--aig-text-muted); margin: 0; }
.aig-card__icon {
	width: 40px; height: 40px;
	color: var(--aig-or);
	margin-bottom: var(--aig-space-2xs);
}
.aig-card__icon svg { width: 100%; height: 100%; stroke-width: 1.4; }
.aig-card__price {
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-small);
	font-weight: var(--aig-fw-semibold);
	color: var(--aig-or-texte);
	letter-spacing: 0.02em;
}
.aig-card__foot { margin-top: auto; padding-top: var(--aig-space-xs); }

/* Carte cliquable : toute la surface est une cible */
.aig-card--link:hover { box-shadow: var(--aig-shadow-md); border-color: var(--aig-lagon); }
.aig-card--link:has(a:active) { transform: scale(var(--aig-press-scale-card)); }
.aig-card--link a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* Carte dont le titre est un lien (page introuvable) : la cible tactile doit
   rester confortable, le texte seul ne fait que 22 px. */
.aig-card__lien {
	font-size: var(--aig-fs-h4);
	margin: 0;
}
.aig-card__lien a {
	display: flex; align-items: center;
	min-height: var(--aig-tap-min);
	text-decoration: none;
	color: var(--aig-ravine);
}
.aig-card__lien a:hover { color: var(--aig-ravine-fonce); text-decoration: underline; }

/* Carte numérotée (étapes) */
.aig-card--step { padding-top: var(--aig-space-lg); }
.aig-card__num {
	position: absolute; top: calc(-1 * var(--aig-space-sm)); left: var(--aig-space-md);
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px;
	border-radius: var(--aig-radius-circle);
	background: var(--aig-ravine); color: var(--aig-sable);
	font-family: var(--aig-font-display);
	font-size: 1.125rem; font-weight: var(--aig-fw-display-medium);
	box-shadow: var(--aig-shadow-sm);
}

/* Carte avec photo */
.aig-card--media { padding: 0; overflow: hidden; }
.aig-card--media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.aig-card--media .aig-card__body { padding: var(--aig-space-md); display: flex; flex-direction: column; gap: var(--aig-space-2xs); }

/* --------------------------------------------------- 11. Galerie */

.aig-gallery {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 78%;
	gap: var(--aig-space-sm);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-inline: var(--aig-gutter);
	margin-inline: calc(-1 * var(--aig-gutter));
	padding-bottom: var(--aig-space-2xs);
}
.aig-gallery::-webkit-scrollbar { display: none; }
.aig-gallery figure { margin: 0; scroll-snap-align: center; }
.aig-gallery img {
	width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
	border-radius: var(--aig-radius-xl);
	box-shadow: var(--aig-shadow-sm);
}
.aig-gallery figcaption {
	margin-top: var(--aig-space-2xs);
	font-size: var(--aig-fs-micro);
	color: var(--aig-text-subtle);
	letter-spacing: 0.04em;
}

.aig-gallery__hint {
	display: flex; align-items: center; gap: 0.4em;
	margin-top: var(--aig-space-xs);
	font-size: var(--aig-fs-micro);
	color: var(--aig-text-subtle);
	letter-spacing: 0.06em; text-transform: uppercase;
}

/* Mosaïque (desktop, et mobile pour les grandes galeries) */
.aig-mosaic {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--aig-space-2xs);
}
.aig-mosaic figure { margin: 0; }
.aig-mosaic img {
	width: 100%; height: 100%; object-fit: cover;
	border-radius: var(--aig-radius-md);
	aspect-ratio: 1;
}
.aig-mosaic figure:nth-child(6n + 1) { grid-column: span 2; }
.aig-mosaic figure:nth-child(6n + 1) img { aspect-ratio: 16 / 10; }

/* Liens de maillage en bas de section */

.aig-inlinks {
	display: flex;
	flex-wrap: wrap;
	gap: var(--aig-space-xs) var(--aig-space-md);
	margin-top: var(--aig-space-lg);
	max-width: none;
}
.aig-section--center .aig-inlinks,
.aig-section--center .aig-btns { justify-content: center; }
.aig-section--center .aig-prose { margin-inline: auto; }

/* ------------------------------------------------------- 12. FAQ */

.aig-faq { max-width: var(--aig-measure); }
.aig-faq__item {
	border-bottom: 1px solid var(--aig-trait);
}
.aig-faq__item summary {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: var(--aig-space-sm);
	padding: var(--aig-space-md) 0;
	min-height: var(--aig-tap-min);
	cursor: pointer;
	list-style: none;
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-body);
	font-weight: var(--aig-fw-semibold);
	color: var(--aig-text);
}
.aig-faq__item summary::-webkit-details-marker { display: none; }
.aig-faq__item summary::after {
	content: ""; flex: none;
	width: 12px; height: 12px; margin-top: 0.42em;
	border-right: 1.5px solid var(--aig-ravine);
	border-bottom: 1.5px solid var(--aig-ravine);
	transform: rotate(45deg);
	transition: transform var(--aig-dur-base) var(--aig-ease-standard);
}
.aig-faq__item[open] summary::after { transform: rotate(-135deg); margin-top: 0.7em; }
.aig-faq__answer { padding-bottom: var(--aig-space-md); color: var(--aig-text-muted); }
.aig-faq__answer p { font-size: var(--aig-fs-small); }

/* --------------------------------------------------- 13. Tableau */

.aig-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--aig-radius-lg);
	border: 1px solid var(--aig-trait);
	background: var(--aig-surface);
}
.aig-table { width: 100%; border-collapse: collapse; font-size: var(--aig-fs-small); }
.aig-table th,
.aig-table td { padding: var(--aig-space-xs) var(--aig-space-sm); text-align: left; vertical-align: top; }
.aig-table thead th {
	background: var(--aig-ivoire);
	font-size: var(--aig-fs-micro);
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--aig-text-subtle);
	font-weight: var(--aig-fw-semibold);
	white-space: nowrap;
}
.aig-table tbody tr + tr { border-top: 1px solid var(--aig-trait); }
.aig-table tbody th { font-weight: var(--aig-fw-semibold); color: var(--aig-text); }
.aig-table td:nth-child(2) { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--aig-or-texte); font-weight: var(--aig-fw-semibold); }

/* Version cartes en dessous de 560px : le tableau reste lisible sans scroll */
@media (max-width: 559px) {
	.aig-table,
	.aig-table tbody,
	.aig-table tr { display: block; }
	.aig-table thead { display: none; }
	.aig-table tbody tr {
		padding: var(--aig-space-sm);
		border-top: 1px solid var(--aig-trait);
	}
	.aig-table tbody tr:first-child { border-top: 0; }
	.aig-table th,
	.aig-table td { display: block; padding: 0; }
	.aig-table tbody th { margin-bottom: 0.2em; }
	.aig-table td::before {
		content: attr(data-label);
		display: block;
		font-size: var(--aig-fs-micro);
		letter-spacing: 0.08em; text-transform: uppercase;
		color: var(--aig-text-subtle);
		margin-top: var(--aig-space-2xs);
	}
	.aig-table-wrap { overflow-x: visible; }
}

/* ------------------------------------------------- 14. Encadré */

.aig-note {
	padding: var(--aig-space-md);
	border-radius: var(--aig-radius-lg);
	background: var(--aig-lagon-pale);
	border-left: 3px solid var(--aig-palme);
	max-width: var(--aig-measure);
}
.aig-note h3 { font-family: var(--aig-font-sans); font-size: var(--aig-fs-h4); font-weight: var(--aig-fw-semibold); }
.aig-note p { font-size: var(--aig-fs-small); color: var(--aig-encre); }
.aig-note--or { background: var(--aig-or-pale); border-left-color: var(--aig-or); }

/* ------------------------------------------------------ 15. CTA */

.aig-cta {
	position: relative;
	overflow: hidden;
	background: var(--aig-ravine);
	color: var(--aig-text-on-dark);
	border-radius: var(--aig-radius-2xl);
	padding: var(--aig-space-xl) var(--aig-space-md);
	text-align: center;
	isolation: isolate;
}
.aig-cta::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: var(--aig-cta-motif, none);
	background-size: 260px;
	opacity: 0.07;
}
.aig-cta h2 { color: #FFF; max-width: 22ch; margin-inline: auto; }
.aig-cta p { color: rgba(255, 255, 255, 0.88); max-width: 48ch; margin-inline: auto; }
.aig-cta .aig-btns { justify-content: center; margin-top: var(--aig-space-lg); }
.aig-cta__media { position: absolute; inset: 0; z-index: -2; }
.aig-cta__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.22; }

/* Bandeau de contact direct (téléphone / mail) */
.aig-contactbar {
	display: grid; gap: var(--aig-space-xs);
	margin-top: var(--aig-space-lg);
}
.aig-contactbar a {
	display: flex; align-items: center; justify-content: center; gap: 0.5em;
	min-height: var(--aig-tap-min);
	padding: var(--aig-space-xs) var(--aig-space-md);
	border-radius: var(--aig-radius-pill);
	border: 1px solid rgba(255, 255, 255, 0.35);
	color: #FFF; text-decoration: none;
	font-size: var(--aig-fs-small); font-weight: var(--aig-fw-semibold);
	transition: background-color var(--aig-dur-fast) var(--aig-ease-standard);
}
.aig-contactbar a:hover { background: rgba(255, 255, 255, 0.14); color: #FFF; }
.aig-contactbar svg { width: 18px; height: 18px; }

/* --------------------------------------------- 16. Coordonnées */

.aig-contact-grid { display: grid; gap: var(--aig-space-lg); }

.aig-coord { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--aig-space-xs); }
.aig-coord li { margin: 0; }
.aig-coord a,
.aig-coord__item {
	display: flex; align-items: center; gap: var(--aig-space-sm);
	min-height: var(--aig-tap-min);
	padding: var(--aig-space-sm);
	border-radius: var(--aig-radius-lg);
	background: var(--aig-surface);
	border: 1px solid var(--aig-trait);
	color: var(--aig-text); text-decoration: none;
	transition: border-color var(--aig-dur-fast), box-shadow var(--aig-dur-fast), transform var(--aig-dur-instant);
}
.aig-coord a:hover { border-color: var(--aig-lagon); box-shadow: var(--aig-shadow-sm); color: var(--aig-text); }
.aig-coord a:active { transform: scale(var(--aig-press-scale-card)); }
.aig-coord__ico {
	flex: none; width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--aig-radius-circle);
	background: var(--aig-lagon-pale); color: var(--aig-ravine);
}
.aig-coord__ico svg { width: 19px; height: 19px; }
.aig-coord__txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.aig-coord__label { font-size: var(--aig-fs-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--aig-text-subtle); }
.aig-coord__val { font-weight: var(--aig-fw-semibold); font-size: var(--aig-fs-small); overflow-wrap: anywhere; }

/* ---------------------------------------------- 17. Formulaire */

.aig-form { display: grid; gap: var(--aig-space-md); }
.aig-form__row { display: grid; gap: var(--aig-space-md); }
.aig-field { display: grid; gap: var(--aig-space-3xs); }
.aig-field label {
	font-size: var(--aig-fs-small);
	font-weight: var(--aig-fw-semibold);
	color: var(--aig-encre);
}
.aig-field .req { color: var(--aig-erreur); }
.aig-field input,
.aig-field select,
.aig-field textarea {
	width: 100%;
	min-height: var(--aig-tap-min);
	padding: 0.75em 0.9em;
	font-family: inherit;
	font-size: max(16px, var(--aig-fs-small)); /* 16px : empêche le zoom iOS */
	color: var(--aig-text);
	background: var(--aig-surface);
	border: 1px solid var(--aig-border-control);
	border-radius: var(--aig-radius-md);
	transition: border-color var(--aig-dur-fast), box-shadow var(--aig-dur-fast);
	appearance: none;
}
.aig-field textarea { min-height: 8em; resize: vertical; line-height: 1.55; }
.aig-field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236F6760' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9em center;
	background-size: 12px;
	padding-right: 2.4em;
}
.aig-field input:focus,
.aig-field select:focus,
.aig-field textarea:focus {
	outline: none;
	border-color: var(--aig-ravine);
	box-shadow: var(--aig-focus-ring);
}
.aig-field__hint { font-size: var(--aig-fs-micro); color: var(--aig-text-subtle); }

.aig-consent { display: flex; align-items: flex-start; gap: var(--aig-space-xs); }
.aig-consent input { width: 24px; height: 24px; min-height: 0; margin-top: 1px; flex: none; accent-color: var(--aig-ravine); }
.aig-consent label { font-size: var(--aig-fs-micro); font-weight: var(--aig-fw-regular); color: var(--aig-text-subtle); line-height: 1.7; }
.aig-consent label a { text-underline-offset: 0.2em; }

/* ---------------------------------------------- 18. Pied de page */

.aig-footer {
	background: var(--aig-ravine-fonce);
	color: rgba(246, 241, 234, 0.82);
	padding-block: var(--aig-space-2xl) var(--aig-space-lg);
	font-size: var(--aig-fs-small);
}
.aig-footer a { color: rgba(246, 241, 234, 0.9); text-decoration: none; }
.aig-footer a:hover { color: #FFF; text-decoration: underline; }
.aig-footer__grid { display: grid; gap: var(--aig-space-xl); }
.aig-footer h2,
.aig-footer h3 {
	font-family: var(--aig-font-sans);
	font-size: var(--aig-fs-micro);
	font-weight: var(--aig-fw-semibold);
	letter-spacing: var(--aig-ls-overline);
	text-transform: uppercase;
	color: var(--aig-or-clair);
	margin-bottom: var(--aig-space-sm);
}
.aig-footer ul { list-style: none; padding: 0; margin: 0; display: grid; }
.aig-footer li { margin: 0; }
/* cible tactile confortable : 44 px de haut, même pour un lien d'une ligne */
.aig-footer li > a,
.aig-footer li > span,
.aig-footer__bottom a {
	display: inline-flex; align-items: center;
	min-height: var(--aig-tap-min);
	padding-block: var(--aig-space-3xs);
}
.aig-footer__logo { color: var(--aig-rose-logo); display: block; margin-bottom: var(--aig-space-sm); }
.aig-footer__logo svg { height: 40px; width: auto; }
.aig-footer__bottom {
	margin-top: var(--aig-space-xl);
	padding-top: var(--aig-space-md);
	border-top: 1px solid rgba(246, 241, 234, 0.16);
	display: flex; flex-wrap: wrap; gap: var(--aig-space-xs) var(--aig-space-md);
	justify-content: space-between;
	font-size: var(--aig-fs-micro);
	color: rgba(246, 241, 234, 0.6);
}
.aig-footer__social { display: flex; gap: var(--aig-space-xs); margin-top: var(--aig-space-sm); }
.aig-footer__social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--aig-tap-min); height: var(--aig-tap-min);
	border-radius: var(--aig-radius-circle);
	border: 1px solid rgba(246, 241, 234, 0.28);
}
.aig-footer__social svg { width: 18px; height: 18px; }

/* --------------------------------------------- 19. Fil d'Ariane */

.aig-crumbs {
	padding-block: var(--aig-space-sm);
	font-size: var(--aig-fs-micro);
	color: var(--aig-text-subtle);
}
.aig-crumbs ol {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.4em;
}
.aig-crumbs li { margin: 0; display: flex; align-items: center; gap: 0.4em; }
.aig-crumbs li + li::before { content: "/"; color: var(--aig-trait-fort); }
.aig-crumbs a,
.aig-crumbs [aria-current] {
	color: var(--aig-text-subtle); text-decoration: none;
	/* cible tactile d'au moins 24 px de haut (WCAG 2.5.8) */
	display: inline-flex; align-items: center;
	min-height: 26px; padding-block: 2px;
}
.aig-crumbs a:hover { color: var(--aig-ravine); text-decoration: underline; }
.aig-crumbs [aria-current] { color: var(--aig-text); }

/* ------------------------------------- 20. Sheet de contact (mobile) */

.aig-sheet {
	position: fixed; inset: 0; z-index: var(--aig-z-sheet);
	display: grid; align-items: end;
	border: 0; padding: 0; margin: 0;
	width: 100%; max-width: none; height: 100%; max-height: none;
	background: transparent;
	overflow: hidden;
}
.aig-sheet::backdrop { background: rgba(15, 46, 40, 0.48); backdrop-filter: blur(3px); }
.aig-sheet__panel {
	background: var(--aig-surface);
	border-radius: var(--aig-radius-xl) var(--aig-radius-xl) 0 0;
	box-shadow: var(--aig-shadow-sheet);
	padding: var(--aig-space-sm) var(--aig-gutter) calc(var(--aig-space-lg) + var(--aig-safe-bottom));
	max-height: 88svh; overflow-y: auto;
	animation: aig-sheet-up var(--aig-dur-sheet) var(--aig-ease-sheet);
}
.aig-sheet[open] { display: grid; }
@keyframes aig-sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
.aig-sheet__grab {
	width: 40px; height: 4px; border-radius: 4px;
	background: var(--aig-trait-fort);
	margin: 0 auto var(--aig-space-md);
}
.aig-sheet__close {
	position: absolute; top: var(--aig-space-sm); right: var(--aig-gutter);
	width: var(--aig-tap-min); height: var(--aig-tap-min);
	display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: var(--aig-radius-circle);
	background: var(--aig-ivoire); color: var(--aig-encre);
	cursor: pointer;
}
.aig-sheet h2 { font-size: var(--aig-fs-h3); margin-bottom: var(--aig-space-2xs); }

/* ------------------------------------------ 21. Apparition au scroll */

/* Le contenu est visible par défaut : sans JavaScript, rien n'est masqué.
   La classe aig-js n'est posée que si le script a pu s'exécuter. */
.aig-js .aig-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity var(--aig-dur-reveal) var(--aig-ease-out),
	            transform var(--aig-dur-reveal) var(--aig-ease-out);
	will-change: opacity, transform;
}
.aig-js .aig-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.aig-js .aig-reveal { opacity: 1; transform: none; transition: none; }
}

/* ------------------------------------------------- 22. Messages */

.aig-alert {
	padding: var(--aig-space-sm) var(--aig-space-md);
	border-radius: var(--aig-radius-md);
	font-size: var(--aig-fs-small);
	margin-bottom: var(--aig-space-md);
}
.aig-alert--ok { background: var(--aig-succes-bg); color: var(--aig-succes); }
.aig-alert--err { background: var(--aig-erreur-bg); color: var(--aig-erreur); }


/* Élément décoratif peint par masque : la forme vient d'un fichier SVG mis en
   cache, la couleur vient du texte. Évite de répéter de gros SVG dans le HTML. */

.aig-mask {
	display: inline-block;
	background-color: currentColor;
	-webkit-mask-image: var(--aig-m);
	mask-image: var(--aig-m);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* Repli si les masques CSS ne sont pas gérés : on peint un aplat discret
   plutôt qu'un rectangle plein. */
@supports not ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
	.aig-mask { background-color: transparent; }
}

.aig-logo__m { width: 104px; height: 34px; }
.aig-footer__logo .aig-logo__m { width: 128px; height: 42px; }
.aig-ornement__m { width: 22px; height: 22px; flex: none; }
.aig-filigrane { display: block; aspect-ratio: 1; height: auto; }
.aig-divider { display: block; width: 100%; height: clamp(26px, 3.4vw, 44px); color: var(--aig-ravine-fonce); opacity: .22; }

/* ======================================================================
   23. Élargissements — le site quitte le mode « application »
   ====================================================================== */

@media (min-width: 600px) {
	.aig-grid--2,
	.aig-grid--3 { --aig-cols: 2; }
	.aig-gallery { grid-auto-columns: 46%; }
	.aig-contactbar { grid-auto-flow: column; justify-content: center; }
	.aig-form__row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.aig-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.aig-mosaic figure:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
	.aig-mosaic figure:nth-child(6n + 1) img { aspect-ratio: 1; }
}

@media (min-width: 1024px) {
	body { padding-bottom: 0; }

	.aig-tabbar { display: none; }

	.aig-nav { display: flex; align-items: center; gap: var(--aig-space-md); }
	.aig-nav > ul {
		list-style: none; margin: 0; padding: 0;
		display: flex; align-items: center; gap: var(--aig-space-md);
	}
	.aig-nav li { margin: 0; position: relative; }
	.aig-nav a {
		display: inline-flex; align-items: center; gap: 0.3em;
		padding: 0.4em 0;
		font-size: var(--aig-fs-small);
		font-weight: var(--aig-fw-semibold);
		color: var(--aig-encre);
		text-decoration: none;
		white-space: nowrap;
	}
	.aig-nav a:hover { color: var(--aig-ravine); }
	.aig-nav a[aria-current] { color: var(--aig-ravine); }
	.aig-nav a[aria-current]::after {
		content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
		height: 2px; background: var(--aig-ravine); border-radius: 2px;
	}

	/* Sous-menu */
	.aig-nav__sub {
		position: absolute; top: calc(100% + 10px); left: 50%;
		transform: translateX(-50%) translateY(-6px);
		min-width: 250px;
		background: var(--aig-surface);
		border: 1px solid var(--aig-trait);
		border-radius: var(--aig-radius-lg);
		box-shadow: var(--aig-shadow-lg);
		padding: var(--aig-space-2xs);
		display: grid; gap: 2px;
		opacity: 0; visibility: hidden;
		transition: opacity var(--aig-dur-fast) var(--aig-ease-standard),
		            transform var(--aig-dur-fast) var(--aig-ease-out),
		            visibility var(--aig-dur-fast);
		list-style: none; margin: 0;
	}
	.aig-nav li:hover > .aig-nav__sub,
	.aig-nav li:focus-within > .aig-nav__sub {
		opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
	}
	.aig-nav__sub a {
		display: block; padding: var(--aig-space-2xs) var(--aig-space-xs);
		border-radius: var(--aig-radius-sm);
		font-weight: var(--aig-fw-regular);
		white-space: normal;
	}
	.aig-nav__sub a:hover { background: var(--aig-lagon-pale); }

	.aig-callbtn { width: auto; height: auto; border-radius: var(--aig-radius-pill); padding: 0.7em 1.2em; gap: 0.5em; font-size: var(--aig-fs-small); font-weight: var(--aig-fw-semibold); }
	.aig-callbtn .aig-callbtn__txt { display: inline; }

	.aig-hero { border-radius: 0; min-height: min(84svh, 760px); }
	.aig-hero__in { padding-block: var(--aig-space-3xl) var(--aig-space-2xl); }

	/* Sur grand écran le texte occupe la moitié gauche et remonte dans l'image :
	   un dégradé latéral assombrit ce côté, la photographie reste lisible à droite. */
	.aig-hero::after {
		background:
			linear-gradient(90deg, rgba(15,46,40,0.78) 0%, rgba(15,46,40,0.62) 34%, rgba(15,46,40,0.18) 62%, rgba(15,46,40,0) 78%),
			var(--aig-voile-bas);
	}
	/* Sur grand écran, le dégradé latéral ci-dessus suffit : le panneau, limité
	   à la largeur du conteneur, dessinerait un rectangle visible. */
	.aig-hero__in::before { display: none; }

	.aig-grid--3 { --aig-cols: 3; }
	.aig-grid--4 { --aig-cols: 4; }
	.aig-grid { gap: var(--aig-space-lg); }
	.aig-grid > * {
		flex-basis: calc((100% - (var(--aig-cols) - 1) * var(--aig-space-lg)) / var(--aig-cols));
	}

	.aig-split { grid-template-columns: 1fr 1fr; gap: var(--aig-space-2xl); }
	.aig-split--reverse .aig-split__media { order: 2; }
	.aig-split--wide { grid-template-columns: 1.15fr 1fr; }

	.aig-gallery {
		grid-auto-flow: row;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		overflow: visible;
		margin-inline: 0; padding-inline: 0;
	}
	.aig-gallery__hint { display: none; }

	.aig-cta { padding: var(--aig-space-3xl) var(--aig-space-2xl); }
	.aig-contact-grid { grid-template-columns: 0.85fr 1.15fr; gap: var(--aig-space-2xl); align-items: start; }
	.aig-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.1fr; }
	.aig-form__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.aig-sheet { display: none; }
}

@media (min-width: 1280px) {
	.aig-hero h1 { max-width: 16ch; }
}

/* Écrans très étroits (≤ 360px) : on resserre sans jamais déborder */
@media (max-width: 360px) {
	.aig-logo__txt { display: none; }
	.aig-tab { font-size: 10px; letter-spacing: 0; }
	.aig-gallery { grid-auto-columns: 86%; }
}

/* Impression */
@media print {
	.aig-header, .aig-tabbar, .aig-sheet, .aig-cta, .aig-skip { display: none !important; }
	body { padding-bottom: 0; background: #fff; }
	.aig-hero { min-height: auto; }
}

/* --------------------------------------- 24. Cohabitation avec CookieAdmin

   Le plugin de consentement pose son bouton de réglages en bas à gauche, à
   l'endroit exact de la barre d'onglets : on le remonte au-dessus d'elle. */

.cookieadmin_law_container.cookieadmin_bottom,
.cookieadmin_re_consent {
	bottom: calc(var(--aig-tabbar-total) + var(--aig-space-xs)) !important;
	/* les boutons d'appel à l'action sont alignés à gauche : on passe à droite */
	left: auto !important;
	right: var(--aig-space-sm) !important;
}
@media (min-width: 1024px) {
	.cookieadmin_law_container.cookieadmin_bottom,
	.cookieadmin_re_consent { bottom: var(--aig-space-md) !important; }
}
