/**
 * Composants éditoriaux et structurels du site.
 *
 * Breakpoints de référence :
 * - 1180 px : header compact / grands écrans intermédiaires ;
 * - 1024 px : tablette portrait, colonnes principales empilées ;
 * - 680 px  : mobile, actions et cartes sur une colonne.
 */

/* --------------------------------------------------------------------------
 * En-tête
 * ----------------------------------------------------------------------- */
.ans-site-header {
	position: relative;
	z-index: 100;
	background: var(--ans-white);
	box-shadow: 0 0.2rem 1.4rem rgba(52, 56, 82, 0.08);
}

.ans-topbar {
	min-height: 36px;
	background: var(--ans-navy);
	color: var(--ans-white);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	line-height: 1;
	text-transform: uppercase;
}

.ans-topbar-inner {
	min-width: 0;
	min-height: 36px;
	gap: 1rem !important;
}

.ans-product-nav {
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.ans-product-nav .wp-block-navigation__container {
	width: max-content;
	flex-wrap: nowrap !important;
}

.ans-product-nav .wp-block-navigation-item__content {
	white-space: nowrap;
}

.ans-user-greeting {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.65rem 0;
	white-space: nowrap;
}

.ans-topbar > .wp-block-group {
	min-height: 36px;
}

.ans-topbar .wp-block-navigation,
.ans-topbar .wp-block-navigation__container {
	gap: 0 !important;
}

.ans-topbar .wp-block-navigation-item__content {
	padding: 0.78rem 1rem;
	color: var(--ans-white) !important;
}

.ans-topbar .wp-block-navigation-item__content:hover,
.ans-topbar .wp-block-navigation-item__content:focus-visible {
	background: rgba(255, 255, 255, 0.08);
}

.ans-topbar .ans-top-active > .wp-block-navigation-item__content,
.ans-topbar .current-menu-item > .wp-block-navigation-item__content,
.ans-topbar .current_page_item > .wp-block-navigation-item__content,
.ans-topbar .ans-navigation-current > .wp-block-navigation-item__content,
.ans-topbar .wp-block-navigation-item__content[aria-current="page"] {
	background: var(--ans-blue);
	color: var(--ans-white) !important;
}

.ans-main-header,
.ans-site-header {
	min-height: 86px;
}

.ans-site-header-inner,
.ans-main-header > .wp-block-group {
	min-height: inherit;
}

.ans-branding {
	gap: clamp(1rem, 2vw, 2rem) !important;
	min-width: 0;
}

.ans-branding .wp-block-image {
	flex: 0 0 auto;
	margin: 0;
}

.ans-branding img {
	display: block;
	width: auto;
	height: auto;
}

.ans-ministere img {
	max-height: 62px;
}

.ans-logo img {
	max-height: 54px;
}

.ans-site-title-wrap {
	min-width: 12rem;
	padding-inline-start: 1.6rem;
	border-inline-start: 1px solid var(--ans-border);
}

.ans-site-title-wrap .wp-block-site-title,
.ans-site-title-wrap .wp-block-site-title a {
	margin: 0;
	color: var(--ans-navy) !important;
	font-size: clamp(1rem, 0.95rem + 0.35vw, 1.2rem);
	font-weight: 800;
	line-height: 1.15;
}

.ans-main-nav > .wp-block-navigation__container {
	gap: clamp(1rem, 2vw, 2.1rem) !important;
}

.ans-main-nav .wp-block-navigation-item__content {
	padding: 1.3rem 0 1rem;
	border-bottom: 3px solid transparent;
	color: var(--ans-navy) !important;
	font-size: 0.98rem;
	font-weight: 600;
}

.ans-main-nav .wp-block-navigation-item__content:hover,
.ans-main-nav .wp-block-navigation-item__content:focus-visible,
.ans-main-nav .current-menu-item > .wp-block-navigation-item__content,
.ans-main-nav .current_page_item > .wp-block-navigation-item__content,
.ans-main-nav .ans-navigation-current > .wp-block-navigation-item__content,
.ans-main-nav .wp-block-navigation-item__content[aria-current="page"],
.ans-main-nav .ans-main-active > .wp-block-navigation-item__content {
	border-bottom-color: var(--ans-blue);
	color: var(--ans-blue) !important;
}

.ans-header-icons,
.ans-header-actions {
	gap: 0.8rem !important;
	color: var(--ans-navy);
	font-size: 1.45rem;
	white-space: nowrap;
}

/* Bouton natif Connexion / Déconnexion. */
.bouton-connexion-wordpress {
	margin: 0;
	list-style: none;
	border-radius: var(--ans-radius-pill) !important;
}

.bouton-connexion-wordpress a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.5rem 1.5rem;
	border-radius: var(--ans-radius-pill) !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--ans-transition-fast), color var(--ans-transition-fast);
}

.bouton-connexion-wordpress a:hover,
.bouton-connexion-wordpress a:focus-visible {
	border-radius: var(--ans-radius-pill) !important;
	background: var(--ans-blue-dark);
	color: var(--ans-white);
	text-decoration: none;
}

/* Sous-menu imbriqué : ouverture vers l'intérieur de l'écran. */
.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	inset-block-start: 0 !important;
	inset-inline-start: auto !important;
	inset-inline-end: 100% !important;
	max-width: min(22rem, calc(100vw - 2rem));
}

.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	white-space: normal;
}

/* --------------------------------------------------------------------------
 * Hero principal – composant du thème
 * ----------------------------------------------------------------------- */
.ans-du-hero {
	position: relative;
	overflow: hidden;
	background: var(--ans-white);
}

.ans-du-hero::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: min(34vw, 520px);
	background:
		radial-gradient(circle at 0% 0%, rgba(237, 238, 243, 0.95) 0 35%, transparent 36%),
		radial-gradient(circle at 58% 42%, rgba(237, 238, 243, 0.95) 0 20%, transparent 21%),
		radial-gradient(circle at 23% 72%, rgba(237, 238, 243, 0.95) 0 25%, transparent 26%);
	content: "";
	opacity: 0.78;
	pointer-events: none;
}

.ans-du-hero > * {
	position: relative;
	z-index: 1;
}

.ans-breadcrumb {
	margin-bottom: clamp(2rem, 5vw, 5rem);
	color: var(--ans-text);
	font-size: var(--wp--preset--font-size--small, 0.9375rem);
}

.ans-breadcrumb a {
	color: #65709b;
}

.ans-breadcrumb strong {
	color: var(--ans-blue);
}

.ans-du-hero h1 {
	margin-bottom: 1.3rem;
	font-size: var(--wp--preset--font-size--display, clamp(2.75rem, 2.2rem + 2.75vw, 4.125rem));
	line-height: 1.05;
}

.ans-du-hero p {
	color: #55608a;
	font-size: var(--wp--preset--font-size--large, clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem));
	line-height: 1.6;
}

.ans-du-hero-image {
	position: relative;
	min-width: 0;
}

.ans-du-hero-image img {
	width: 100%;
	aspect-ratio: 1.45 / 1;
	clip-path: ellipse(72% 74% at 62% 21%);
	object-fit: cover;
}

.ans-du-hero-image::before,
.ans-du-hero-image::after {
	position: absolute;
	z-index: 2;
	border-radius: 42% 58% 50% 50%;
	content: "";
	pointer-events: none;
}

.ans-du-hero-image::before {
	top: 22%;
	left: -1rem;
	width: clamp(4.8rem, 7vw, 7.2rem);
	height: clamp(4.8rem, 7vw, 7.2rem);
	background: var(--ans-blue);
}

.ans-du-hero-image::after {
	right: 15%;
	bottom: 9%;
	width: clamp(7rem, 10vw, 10rem);
	height: clamp(7rem, 10vw, 10rem);
	background: var(--ans-pink);
}

/*
 * Bandeau historique de la page d'accueil.
 * Maintenu pendant la migration afin de préserver le contenu enregistré en base.
 */
.bandeau-ans {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 450px;
	padding: 30px clamp(25px, 5vw, 80px);
	background: #f3f5f9;
}

.bandeau-ans::before {
	position: absolute;
	z-index: -1;
	top: -180px;
	left: -170px;
	width: 650px;
	height: 650px;
	border: 65px solid rgba(105, 112, 151, 0.07);
	border-radius: 50%;
	content: "";
}

.bandeau-ans::after {
	position: absolute;
	z-index: 2;
	right: -45px;
	bottom: -20px;
	width: 145px;
	height: 145px;
	border-radius: 70% 0 70% 70%;
	background: var(--ans-pink);
	content: "";
}

.bandeau-ans-interieur {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 360px;
	gap: clamp(2rem, 4vw, 3.125rem);
}

:where(
	.wp-block-group.bandeau-ans-contenu,
	div.bandeau-ans-contenu,
	section.bandeau-ans-contenu
) {
	position: relative;
	z-index: 3;
	flex: 0 1 48%;
	max-width: 620px;
}

.bandeau-ans p.bandeau-ans-contenu,
:where(
	.wp-block-group.bandeau-ans-contenu,
	div.bandeau-ans-contenu,
	section.bandeau-ans-contenu
) p {
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	line-height: 1.5;
}

.bandeau-ans-image {
	position: absolute;
	z-index: 1;
	top: -30px;
	right: -80px;
	width: 58%;
	height: calc(100% + 60px);
	margin: 0 !important;
	overflow: hidden;
	border-bottom-left-radius: 65% 85%;
}

.bandeau-ans-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.bandeau-ans-image::before {
	position: absolute;
	z-index: 3;
	top: 100px;
	left: -25px;
	width: 90px;
	height: 90px;
	border-radius: 0 70% 70% 70%;
	background: var(--ans-blue);
	content: "";
}


/*
 * Compatibilité avec le bandeau actuellement enregistré dans WordPress.
 *
 * Le POC ne porte pas toujours les classes historiques
 * .bandeau-ans-interieur et .bandeau-ans-contenu. L'Éditeur de site produit
 * actuellement un groupe Grid directement sous .bandeau-ans. Ces sélecteurs
 * permettent au thème de prendre en charge les deux structures pendant la
 * migration.
 */
.bandeau-ans > .wp-block-group.is-layout-grid,
.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid {
	position: static;
	width: 100%;
	z-index: auto;
}

.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child,
.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child {
	position: relative;
	z-index: 3;
	min-width: 0;
}

.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > p:empty,
.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > p:empty,
.bandeau-ans > p:empty {
	display: none !important;
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
 * Sections, cartes et boutons
 * ----------------------------------------------------------------------- */
.ans-section-title {
	font-size: var(--wp--preset--font-size--x-large, clamp(1.75rem, 1.45rem + 1.5vw, 2.5rem));
	font-weight: 800;
	line-height: 1.15;
	text-align: center;
}

.ans-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
}

.ans-product-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 15.5rem;
	padding: clamp(1.5rem, 3vw, 2.2rem) clamp(1.25rem, 2.5vw, 1.8rem);
	border-radius: var(--ans-radius-xl);
	background: #65709b;
	box-shadow: var(--ans-shadow-elevated);
	color: var(--ans-white);
	text-align: center;
}

.ans-product-card h2,
.ans-product-card h3,
.ans-product-card p,
.ans-product-card a {
	color: var(--ans-white) !important;
}

.ans-product-card h3 {
	margin-top: 0;
	font-size: 1.25rem;
	line-height: 1.2;
}

.ans-product-card ul {
	display: inline-block;
	margin: 0.5rem auto 0;
	padding-inline-start: 1.1rem;
	text-align: start;
}

.ans-product-card li::marker {
	color: var(--ans-white);
}

.wp-block-button__link,
.llms-button-primary,
.llms-button-action,
.llms-button-secondary,
.llms-button {
	border-radius: var(--ans-radius-pill) !important;
	font-weight: 800 !important;
	padding: 0.95rem 1.55rem !important;
}

.wp-block-button__link,
.llms-button-primary,
.llms-button-action {
	border: 2px solid var(--ans-blue) !important;
	background: var(--ans-blue) !important;
	color: var(--ans-white) !important;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.llms-button-primary:hover,
.llms-button-primary:focus-visible,
.llms-button-action:hover,
.llms-button-action:focus-visible {
	border-color: var(--ans-blue-dark) !important;
	background: var(--ans-blue-dark) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--ans-blue) !important;
	background: transparent !important;
	color: var(--ans-blue) !important;
}


/* --------------------------------------------------------------------------
 * Modèles, listes de contenus et colonne latérale
 * ----------------------------------------------------------------------- */
.ans-site-header-inner {
	gap: clamp(1rem, 2vw, 2rem) !important;
	min-width: 0;
	padding-block: 0.65rem;
}

.ans-header-search {
	flex: 0 0 auto;
}

/*
 * Recherche du header.
 *
 * Le bloc Search place nativement le champ et le bouton bord à bord. Ils sont
 * transformés en deux contrôles distincts pour reproduire la charte et éviter
 * l'impression d'un composant fusionné.
 */
.ans-header-search .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0;
	border: 0;
	background: transparent;
}

.ans-header-search .wp-block-search__input {
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--ans-border);
	border-radius: var(--ans-radius-pill) !important;
	background: var(--ans-white);
	color: var(--ans-navy);
	font-family: inherit;
	font-size: 0.95rem;
}

.ans-header-search .wp-block-search__input:focus {
	border-color: var(--ans-blue);
	box-shadow: 0 0 0 2px rgba(29, 113, 184, 0.18);
	outline: 0;
}

.ans-header-search .wp-block-search__button {
	flex: 0 0 auto;
	min-width: 54px;
	min-height: 48px;
	margin: 0 !important;
	padding: 0.65rem 1rem;
	border: 2px solid var(--ans-blue);
	border-radius: var(--ans-radius-pill) !important;
	background: var(--ans-pink);
	color: var(--ans-white);
}

.ans-header-search .wp-block-search__button:hover,
.ans-header-search .wp-block-search__button:focus-visible {
	border-color: var(--ans-blue-dark);
	background: var(--ans-blue-dark);
	color: var(--ans-white);
}

.ans-breadcrumbs-wrap {
	padding-block: 0.65rem;
	border-bottom: 1px solid var(--ans-border);
	font-size: var(--wp--preset--font-size--small);
}

.ans-post-meta {
	gap: 0.5rem 1rem !important;
	margin-block: -0.4rem 1.5rem;
	color: var(--ans-text);
}

.ans-post-meta a,
.ans-post-tags a {
	color: var(--ans-blue);
}

.ans-query-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

.ans-query-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.25rem;
	border: 1px solid var(--ans-border);
	border-radius: var(--ans-radius-lg);
	background: var(--ans-white);
	box-shadow: var(--ans-shadow-card);
}

.ans-query-card .wp-block-post-featured-image {
	margin: -1.25rem -1.25rem 1rem;
	overflow: hidden;
	border-radius: var(--ans-radius-lg) var(--ans-radius-lg) 0 0;
}

.ans-query-card .wp-block-post-title {
	margin-block: 0.35rem 0.65rem;
}

.ans-query-card .wp-block-post-excerpt {
	margin-top: auto;
}

.ans-sidebar {
	position: sticky;
	top: 2rem;
	padding: 1.5rem;
	border: 1px solid var(--ans-border);
	border-radius: var(--ans-radius-lg);
	background: var(--ans-light);
}

.ans-sidebar > * + * {
	margin-block-start: 1.25rem;
}

.ans-sidebar .wp-block-latest-posts,
.ans-sidebar .wp-block-categories-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ans-sidebar li + li {
	margin-block-start: 0.75rem;
}

.ans-error-page {
	text-align: center;
}

/* --------------------------------------------------------------------------
 * Pied de page
 * ----------------------------------------------------------------------- */
.ans-footer {
	position: relative;
	border-top: 1px solid var(--ans-border);
	background: var(--ans-white);
	color: #58618a;
}

.ans-partners {
	padding: clamp(2.2rem, 5vw, 4rem) 1rem;
	background: var(--ans-white);
	text-align: center;
}

.ans-partners h2 {
	margin-bottom: 2rem;
}

.ans-partner-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
	gap: 1.5rem;
	max-width: 900px;
	margin-inline: auto;
}

.ans-partner-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 1.5rem;
	border-radius: 2rem;
	background: var(--ans-white);
	box-shadow: var(--ans-shadow-elevated);
}

.ans-partner-card img {
	width: auto;
	max-height: 64px;
	object-fit: contain;
}

.ans-footer-main {
	padding: clamp(2rem, 5vw, 4rem) 1rem 2rem;
	border-top: 1px solid var(--ans-border);
}

.ans-footer-main a,
.ans-footer-bottom .wp-block-navigation-item__content {
	color: #59628a !important;
}

.ans-footer-logos {
	gap: 1.5rem !important;
}

.ans-footer-address {
	color: var(--ans-navy);
	font-weight: 800;
	line-height: 1.45;
}

.ans-footer-links ul,
.ans-footer-bottom ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ans-footer-links li {
	margin: 0.55rem 0;
}

.ans-footer-links a::before {
	color: var(--ans-blue);
	content: "› ";
	font-weight: 800;
}

.ans-footer-bottom {
	margin-top: 2.5rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--ans-border);
	font-size: 0.9rem;
}

.ans-footer-bottom .wp-block-navigation__container {
	justify-content: center;
	gap: 1.3rem !important;
}

/* Orienteur flottant, lorsqu'il est utilisé. */
.ans-orienteur {
	position: fixed;
	z-index: 200;
	right: 2rem;
	bottom: 2rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 380px;
	padding: 0.9rem 1rem 0.9rem 1.5rem;
	border-radius: var(--ans-radius-pill);
	background: var(--ans-blue);
	box-shadow: 0 0.9rem 2rem rgba(52, 56, 82, 0.25);
	color: var(--ans-white);
}

.ans-orienteur p {
	margin: 0;
	color: var(--ans-white);
	line-height: 1.2;
}

.ans-orienteur span {
	display: block;
	font-size: 0.9rem;
}

.ans-orienteur__icon {
	display: flex;
	flex: 0 0 54px;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: var(--ans-radius-pill);
	background: var(--ans-white);
	color: var(--ans-blue) !important;
	font-size: 1.7rem;
}

/* --------------------------------------------------------------------------
 * Responsive
 * ----------------------------------------------------------------------- */
@media (max-width: 1180px) {
	.ans-site-header-inner,
	.ans-main-header > .wp-block-group {
		flex-wrap: wrap !important;
		gap: 0.75rem 1.5rem !important;
		padding-block: 0.75rem;
	}

	.ans-branding {
		flex: 1 1 28rem;
		min-width: 0;
	}

	.ans-header-actions {
		flex: 0 1 auto;
		margin-inline-start: auto;
	}

	.ans-main-nav > .wp-block-navigation__container {
		gap: 1rem !important;
	}
}

@media (max-width: 1024px) {
	.ans-site-header-inner,
	.ans-main-header > .wp-block-group {
		align-items: stretch !important;
	}

	.ans-branding {
		flex: 1 1 100%;
		width: 100%;
	}

	.ans-header-actions {
		margin-inline-start: 0;
	}

	.ans-topbar-inner {
		align-items: stretch !important;
		flex-direction: column;
		gap: 0 !important;
	}

	.ans-user-greeting {
		padding-inline: 1rem;
	}

	.ans-topbar {
		text-transform: none;
	}

	.ans-topbar > .wp-block-group,
	.ans-topbar.alignfull {
		flex-wrap: wrap !important;
	}

	.ans-du-hero .wp-block-columns,
	.bandeau-ans-interieur,
	.bandeau-ans > .wp-block-group.is-layout-grid,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid {
		display: flex !important;
		align-items: stretch !important;
		flex-direction: column !important;
		grid-template-columns: none !important;
		gap: 1.5rem !important;
		min-height: 0 !important;
	}

	.ans-du-hero .wp-block-column,
	.ans-du-hero-image,
	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	),
	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child {
		flex: 0 0 auto !important;
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: none !important;
	}

	.ans-du-hero::before {
		width: 65%;
	}

	.ans-du-hero-image img {
		aspect-ratio: 16 / 9;
		clip-path: ellipse(75% 75% at 58% 24%);
	}

	.bandeau-ans {
		min-height: 0 !important;
		padding: 25px 20px 40px;
	}

	.bandeau-ans-interieur {
		display: flex;
		min-height: auto;
	}

	.bandeau-ans-image {
		position: relative !important;
		inset: auto !important;
		order: 2;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 16 / 9;
		margin: 1.5rem 0 0 !important;
		border-radius: var(--ans-radius-lg);
	}

	.ans-sidebar-layout {
		flex-wrap: wrap !important;
	}

	.ans-sidebar-layout > .wp-block-column {
		flex-basis: 100% !important;
	}

	.ans-sidebar {
		position: static;
	}

	.ans-footer-main .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.ans-footer-main .wp-block-column {
		flex-basis: calc(50% - 1rem) !important;
	}
}

@media (max-width: 680px) {
	/* Barre des produits : défilement horizontal conservé sans élargir la page. */
	.ans-product-nav {
		margin-inline: -1rem;
		padding-inline: 1rem;
	}

	.ans-topbar .wp-block-navigation-item__content {
		padding-inline: 0.75rem;
	}

	/* Header principal compact sur deux lignes : identité puis actions. */
	.ans-site-header,
	.ans-main-header {
		width: 100%;
		min-height: 0;
		overflow: clip;
	}

	.ans-site-header-inner {
		display: flex !important;
		align-items: stretch !important;
		flex-direction: column;
		flex-wrap: nowrap !important;
		gap: 0.75rem !important;
		min-height: 0 !important;
		padding: 0.7rem 1rem 0.9rem;
	}

	.ans-branding {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center !important;
		flex: 0 0 auto !important;
		flex-basis: auto !important;
		width: 100%;
		min-height: 0 !important;
		gap: 0.45rem 0.75rem !important;
	}

	.ans-ministere,
	.ans-logo {
		min-width: 0;
	}

	.ans-ministere img {
		max-width: 74px;
		max-height: 43px;
	}

	.ans-logo img {
		max-width: 122px;
		max-height: 38px;
	}

	.ans-site-title-wrap {
		grid-column: 1 / -1;
		flex-basis: auto;
		min-width: 0;
		overflow-wrap: anywhere;
		padding-block-start: 0.6rem;
		padding-inline-start: 0;
		border-block-start: 1px solid var(--ans-border);
		border-inline-start: 0;
	}

	.ans-site-title-wrap .wp-block-site-title,
	.ans-site-title-wrap .wp-block-site-title a {
		font-size: clamp(1rem, 4.7vw, 1.15rem);
		line-height: 1.25;
	}

	.ans-header-actions {
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		width: 100%;
		gap: 0.5rem !important;
		margin: 0;
	}

	.ans-main-nav,
	.ans-header-search,
	.bouton-connexion-wordpress {
		flex: 0 0 auto;
		width: auto;
		min-width: 0;
		margin: 0;
	}

	/* Bouton d'ouverture du menu mobile. */
	.ans-main-nav .wp-block-navigation__responsive-container-open {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		padding: 0;
		border: 1px solid var(--ans-border);
		border-radius: var(--ans-radius-pill);
		background: var(--ans-white);
		color: var(--ans-navy);
	}

	/* Recherche compacte : icône carrée et champ limité lorsqu'il est ouvert. */
	.ans-header-search .wp-block-search__inside-wrapper {
		gap: 0.45rem;
	}

	.ans-header-search .wp-block-search__input {
		width: min(38vw, 11rem);
		min-height: 46px;
	}

	.ans-header-search .wp-block-search__button {
		width: 48px;
		min-width: 48px;
		min-height: 48px;
		padding: 0.65rem;
	}

	/* Connexion à largeur intrinsèque, et non plus sur toute la ligne. */
	.bouton-connexion-wordpress {
		margin-inline-start: auto;
	}

	.bouton-connexion-wordpress a {
		width: auto;
		min-height: 48px;
		padding: 0.65rem 1.15rem;
		font-size: 0.95rem;
	}

	.wp-block-navigation__responsive-container.is-menu-open {
		padding: 1.25rem;
	}

	.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
		inset: auto !important;
		max-width: none;
	}

	/* Bandeau d'accueil : une seule colonne réelle. */
	.bandeau-ans {
		min-height: 0 !important;
		padding: 1.5rem 1rem 2rem;
	}

	.bandeau-ans-interieur,
	.bandeau-ans > .wp-block-group.is-layout-grid,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid {
		display: flex !important;
		align-items: stretch !important;
		flex-direction: column !important;
		grid-template-columns: none !important;
		gap: 1.25rem !important;
		width: 100% !important;
		min-height: 0 !important;
	}

	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	),
	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child {
		display: flex !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		flex-direction: column !important;
		order: 1;
		width: 100% !important;
		max-width: none !important;
		gap: 0.9rem !important;
	}

	/* Structure historique avec un véritable groupe de contenu. */
	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	) .bonjour-utilisateur {
		order: 1;
		margin: 0 !important;
	}

	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	) :is(h1, h2, .wp-block-heading) {
		order: 2;
		margin: 0 !important;
		font-size: clamp(2rem, 9vw, 2.65rem) !important;
		line-height: 1.08 !important;
	}

	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	) p:not(.bonjour-utilisateur) {
		order: 3;
		max-width: none;
		margin: 0;
		font-size: 1rem;
		line-height: 1.55;
	}

	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	) .wp-block-buttons {
		order: 4;
	}

	/* Structure réellement enregistrée dans la page d'accueil. */
	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > p:first-child,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > p:first-child {
		order: 1;
		margin: 0 !important;
	}

	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > :is(h1, h2, .wp-block-heading),
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > :is(h1, h2, .wp-block-heading) {
		order: 2;
		margin: 0 !important;
		font-size: clamp(2rem, 9vw, 2.65rem) !important;
		line-height: 1.08 !important;
	}

	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > p.bandeau-ans-contenu,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > p.bandeau-ans-contenu {
		order: 3;
		max-width: none;
		margin: 0;
		font-size: 1rem;
		line-height: 1.55;
	}

	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > .wp-block-buttons,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > .wp-block-buttons {
		order: 4;
	}

	.bandeau-ans-image,
	.bandeau-ans > .wp-block-group.is-layout-grid > .bandeau-ans-image,
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .bandeau-ans-image {
		position: relative !important;
		inset: auto !important;
		order: 2;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 16 / 9;
		margin: 0 !important;
		overflow: hidden;
		border-radius: var(--ans-radius-lg);
	}

	.bandeau-ans-image img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.bandeau-ans-image::before {
		top: 18%;
		left: -0.4rem;
		width: 62px;
		height: 62px;
	}

	.bandeau-ans::after {
		right: -24px;
		bottom: -16px;
		width: 92px;
		height: 92px;
	}

	.bandeau-ans .wp-block-buttons,
	.bandeau-ans .wp-block-button {
		width: 100%;
	}

	.bandeau-ans .wp-block-button__link {
		width: auto;
		max-width: 100%;
	}

	.ans-du-hero::before {
		width: 100%;
	}

	.ans-du-hero-image::before {
		left: 0.5rem;
	}

	.ans-du-hero-image::after {
		right: 5%;
		bottom: 4%;
	}

	.ans-product-card {
		min-height: auto;
	}

	.ans-footer-main .wp-block-column {
		flex-basis: 100% !important;
	}

	.ans-footer-logos {
		align-items: flex-start !important;
		flex-direction: column;
	}

	.ans-footer-bottom .wp-block-navigation__container {
		align-items: flex-start;
		flex-direction: column;
		width: 100%;
	}

	.ans-footer-bottom .wp-block-navigation-item,
	.ans-footer-bottom .wp-block-navigation-item__content {
		max-width: 100%;
		white-space: normal;
	}

	.ans-orienteur {
		right: 1rem;
		bottom: 1rem;
		left: 1rem;
		max-width: none;
	}
}

@media (max-width: 420px) {
	.ans-site-header-inner {
		padding-inline: 0.75rem;
	}

	.ans-ministere img {
		max-width: 64px;
	}

	.ans-logo img {
		max-width: 108px;
	}

	.ans-header-actions {
		gap: 0.4rem !important;
	}

	.ans-main-nav .wp-block-navigation__responsive-container-open,
	.ans-header-search .wp-block-search__button {
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
	}

	.bouton-connexion-wordpress a {
		min-height: 44px;
		padding-inline: 0.95rem;
		font-size: 0.9rem;
	}

	.bandeau-ans {
		padding-inline: 0.85rem;
	}

	:where(
		.wp-block-group.bandeau-ans-contenu,
		div.bandeau-ans-contenu,
		section.bandeau-ans-contenu
	) :is(h1, h2, .wp-block-heading),
	.bandeau-ans > .wp-block-group.is-layout-grid > .wp-block-group:first-child > :is(h1, h2, .wp-block-heading),
	.bandeau-ans > .wp-block-group.wp-block-group-is-layout-grid > .wp-block-group:first-child > :is(h1, h2, .wp-block-heading) {
		font-size: clamp(1.85rem, 9.5vw, 2.25rem) !important;
	}
}
