/*
Theme Name:        Alliance Santé
Theme URI:         https://alliancesanteafrique.net
Description:       Thème léger et accessible pour Alliance Santé Afrique. Fonctionne avec le plugin Alliance Santé Core.
Version:           0.15.59
Requires at least: 6.5
Requires PHP:      8.1
Author:            Alliance Santé Afrique
Text Domain:       alliance-sante
License:           GPL-2.0-or-later
*/

/* ==========================================================================
   1. Variables (charte graphique)
   Vert #1E8E5A et or #D4A94F : contraste insuffisant pour du petit texte sur
   blanc → réservés aux grands éléments, pictogrammes et fonds.
   ========================================================================== */
:root {
	--asa-blue: #1D5FA7;
	--asa-blue-dark: #164B85;
	--asa-blue-50: #EEF4FB;
	--asa-green: #1E8E5A;
	--asa-green-text: #17724A;
	--asa-green-50: #E8F5EE;
	--asa-gold: #D4A94F;
	--asa-gold-dark: #B88C33;
	--asa-gold-50: #FBF5E8;
	--asa-ink: #0F2F55;
	--asa-text: #26374D;
	--asa-muted: #56677D;
	--asa-line: #DCE4EE;
	--asa-bg: #FFFFFF;
	--asa-bg-soft: #F6F9FC;

	--asa-font-head: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--asa-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--asa-radius: 14px;
	--asa-radius-lg: 22px;
	--asa-shadow: 0 1px 2px rgba(15, 47, 85, .06), 0 8px 24px rgba(15, 47, 85, .07);
	--asa-shadow-lg: 0 18px 50px rgba(15, 47, 85, .14);
	--asa-container: 1200px;
	--asa-gutter: clamp(16px, 4vw, 32px);
	--asa-header-h: 76px;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--asa-header-h) + 16px); }

body {
	margin: 0;
	font-family: var(--asa-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--asa-text);
	background: var(--asa-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4 {
	font-family: var(--asa-font-head);
	color: var(--asa-ink);
	line-height: 1.2;
	margin: 0 0 .6em;
	letter-spacing: -.01em;
}
h1 { font-size: clamp(2rem, 4.5vw, 3.1rem); font-weight: 700; }
h2 { font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 700; }
h3 { font-size: 1.2rem; font-weight: 600; }

p, ul, ol, dl, figure { margin: 0 0 1.1em; }
img, svg, video, iframe { max-width: 100%; height: auto; }
img { display: block; }

a { color: var(--asa-blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--asa-blue-dark); text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--asa-gold-dark);
	outline-offset: 3px;
	border-radius: 4px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; margin: 0;
	position: fixed !important; top: 12px; left: 12px; z-index: 1000;
	padding: 12px 18px; background: var(--asa-ink); color: #fff; border-radius: 8px;
}

.container { width: 100%; max-width: var(--asa-container); margin-inline: auto; padding-inline: var(--asa-gutter); }
.section { padding-block: clamp(40px, 7vw, 88px); }
.section--tint { background: var(--asa-bg-soft); }
.section__title { text-align: center; }
.site-main:focus { outline: none; }

.asa-icon { width: 1.25em; height: 1.25em; flex: none; }

/* ==========================================================================
   3. Boutons
   ========================================================================== */
.asa-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 48px;
	padding: .75em 1.4em;
	border: 2px solid transparent;
	border-radius: 999px;
	font-family: var(--asa-font-head);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.asa-button:hover, .wp-block-button__link:hover { text-decoration: none; transform: translateY(-1px); }

.asa-button--primary, .wp-block-button__link { background: var(--asa-blue); color: #fff; }
.asa-button--primary:hover, .wp-block-button__link:hover { background: var(--asa-blue-dark); color: #fff; }

.asa-button--accent { background: var(--asa-gold); color: var(--asa-ink); box-shadow: 0 6px 18px rgba(212, 169, 79, .35); }
.asa-button--accent:hover { background: #E0B85F; color: var(--asa-ink); }

.asa-button--outline, .is-style-outline .wp-block-button__link { background: transparent; border-color: var(--asa-blue); color: var(--asa-blue); }
.asa-button--outline:hover, .is-style-outline .wp-block-button__link:hover { background: var(--asa-blue); color: #fff; }

.asa-button--ghost { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .7); color: #fff; }
.asa-button--ghost:hover { background: #fff; color: var(--asa-blue); }

.asa-button--block { width: 100%; }
.asa-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.asa-more { text-align: center; margin-top: 32px; }

/* ==========================================================================
   4. En-tête
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid transparent;
	transition: box-shadow .2s, border-color .2s;
}
.admin-bar .site-header { top: 32px; }
.site-header.is-scrolled { border-color: var(--asa-line); box-shadow: 0 4px 20px rgba(15, 47, 85, .06); }

.site-header__inner { display: flex; align-items: center; gap: 16px; min-height: var(--asa-header-h); }
.site-header__brand { flex: none; display: flex; align-items: center; } /* centré sur les boutons, sans espace sous l'image */

.site-logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: var(--asa-ink); }
.site-logo:hover { text-decoration: none; }
.site-logo__mark img { width: 68px; height: 68px; object-fit: contain; display: block; }
/* Espace professionnel (ASA Pro) : pastille « PRO » sous le logo, comme sur l'icône installée sur le téléphone. */
.site-logo--pro .site-logo__mark { position: relative; }
.site-logo__pro { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); padding: 1px 8px; border-radius: 999px; background: var(--asa-ink); color: var(--asa-gold); font-family: var(--asa-font-head); font-size: .68rem; font-weight: 800; letter-spacing: .08em; line-height: 1.4; box-shadow: 0 0 0 2px #fff; }
@media (max-width: 1199px) { .site-logo__mark img { width: 58px; height: 58px; } }
.site-logo__text { display: flex; flex-direction: column; line-height: 1.05; font-family: var(--asa-font-head); }
.site-logo__name { font-weight: 700; font-size: 1.42rem; color: var(--asa-blue); }
.site-logo__sub { font-weight: 600; font-size: .96rem; letter-spacing: .32em; text-transform: uppercase; color: var(--asa-green-text); }

.site-nav { display: flex; align-items: center; gap: 16px; margin-left: auto; }
.primary-nav .menu { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.primary-nav .menu a {
	display: block;
	white-space: nowrap;
	padding: .55em .8em;
	border-radius: 8px;
	font-weight: 500;
	font-size: .98rem;
	color: var(--asa-ink);
	text-decoration: none;
}
.primary-nav .menu a:hover { background: var(--asa-blue-50); color: var(--asa-blue); }
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a,
.primary-nav .current-menu-ancestor > a { color: var(--asa-blue); box-shadow: inset 0 -2px 0 var(--asa-gold); border-radius: 8px 8px 0 0; }
.primary-nav .sub-menu { display: none; }

.site-nav__actions { display: flex; align-items: center; gap: 16px; white-space: nowrap; }

.lang-switch ul { display: flex; list-style: none; margin: 0; padding: 3px; gap: 2px; background: var(--asa-bg-soft); border: 1px solid var(--asa-line); border-radius: 999px; }
.lang-switch a { display: block; min-width: 40px; padding: .3em .7em; border-radius: 999px; text-align: center; font-size: .85rem; font-weight: 600; color: var(--asa-muted); text-decoration: none; }
.lang-switch a:hover { color: var(--asa-blue); }
.lang-switch a[aria-current] { background: var(--asa-blue); color: #fff; }

.site-header__account, .site-header__quote { white-space: nowrap; }
.site-nav__actions { gap: 10px; }
.site-header__account .asa-icon { width: 1.1em; height: 1.1em; }

.nav-toggle { display: none; }

/* Barre supérieure (ordinateur) : slogan, téléphone, espace patient, langue */
.topbar { background: var(--asa-ink); color: #C9D6E6; font-size: .86rem; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.topbar__slogan { margin: 0; display: flex; align-items: center; gap: 20px; letter-spacing: .02em; }
.topbar__phone { display: inline-flex; align-items: center; gap: .35em; color: #fff; text-decoration: none; font-weight: 600; }
.topbar__phone .asa-icon { width: 1em; height: 1em; color: var(--asa-gold); }
.topbar__actions { display: flex; align-items: center; gap: 18px; }
.topbar .lang-switch ul { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); }
.topbar .lang-switch a { color: #C9D6E6; padding: .15em .6em; font-size: .8rem; }
.topbar .lang-switch a:hover { color: #fff; }
.topbar .lang-switch a[aria-current] { background: #fff; color: var(--asa-ink); }
.topbar a:focus-visible { outline-color: var(--asa-gold); }
.site-nav__mobile-only { display: none; }

@media (max-width: 1199px) {
	:root { --asa-header-h: 66px; }
	.site-header__inner { justify-content: space-between; }
	.nav-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		width: 48px; height: 48px; margin-left: auto;
		border: 1px solid var(--asa-line); border-radius: 12px; background: #fff; cursor: pointer;
	}
	.nav-toggle__bars { position: relative; width: 22px; height: 16px; }
	.nav-toggle__bars span { position: absolute; left: 0; width: 100%; height: 2px; background: var(--asa-ink); border-radius: 2px; transition: transform .2s, opacity .2s, top .2s; }
	.nav-toggle__bars span:nth-child(1) { top: 0; }
	.nav-toggle__bars span:nth-child(2) { top: 7px; }
	.nav-toggle__bars span:nth-child(3) { top: 14px; }
	.nav-open .nav-toggle__bars span:nth-child(1) { top: 7px; transform: rotate(45deg); }
	.nav-open .nav-toggle__bars span:nth-child(2) { opacity: 0; }
	.nav-open .nav-toggle__bars span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

	.site-nav {
		position: fixed;
		inset: var(--asa-header-h) 0 0 0;
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
		margin: 0;
		padding: 24px var(--asa-gutter) 32px;
		background: #fff;
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		transform: translateY(-8px);
		transition: opacity .2s, transform .2s, visibility 0s .2s;
	}
	.admin-bar .site-nav { top: calc(var(--asa-header-h) + 46px); }
	.nav-open .site-nav { visibility: visible; opacity: 1; transform: none; transition: opacity .2s, transform .2s; }
	.nav-open { overflow: hidden; }
	.primary-nav .menu { flex-direction: column; gap: 0; }
	.primary-nav .menu a { padding: .9em .25em; border-bottom: 1px solid var(--asa-line); border-radius: 0; font-size: 1.1rem; }
	.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a { box-shadow: inset 4px 0 0 var(--asa-gold); padding-left: .8em; border-radius: 0; }
	.topbar { display: none; }
	.site-nav__mobile-only { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
	.site-nav__actions { flex-direction: column; align-items: stretch; }
	.site-nav__actions .lang-switch ul { justify-content: center; }
	.site-header__cta, .site-nav__actions .site-header__account, .site-nav__actions .site-header__quote { width: 100%; }
	.site-header__cta, .site-nav__actions { white-space: normal; }
}
/* Ordinateur : en-tête sur deux rangées (logo + boutons, puis menu) pour loger 7 entrées + 2 boutons. */
@media (min-width: 1200px) {
	:root { --asa-header-h: 152px; }
	.site-header__inner {
		display: grid;
		grid-template-columns: auto 1fr;
		grid-template-areas: "brand actions" "nav nav";
		column-gap: 24px;
		min-height: 0;
		padding-top: 6px; /* logo agrandi : même hauteur d'en-tête */
	}
	.site-header__brand { grid-area: brand; }
	.site-nav { display: contents; }
	.site-nav__actions { grid-area: actions; justify-self: end; }
	.primary-nav { grid-area: nav; margin-top: 8px; border-top: 1px solid var(--asa-line); }
	.primary-nav .menu { gap: 0; padding: 4px 0; justify-content: space-between; } /* menu réparti sur toute la largeur, sans dépasser */
	.primary-nav .menu a { padding: .6em .5em; }
	.primary-nav .current-menu-item > a,
	.primary-nav .current_page_item > a { box-shadow: inset 0 -3px 0 var(--asa-gold); border-radius: 0; }
}

@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

/* ==========================================================================
   5. Bandeau d'accueil (hero) et en-têtes de page
   ========================================================================== */
.asa-hero {
	position: relative;
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(circle at 85% 20%, rgba(212, 169, 79, .28) 0, transparent 38%),
		radial-gradient(circle at 10% 110%, rgba(30, 142, 90, .55) 0, transparent 45%),
		linear-gradient(135deg, #1D5FA7 0%, #164B85 55%, #123E6E 100%);
}
.asa-hero::after {
	content: "";
	position: absolute;
	right: -60px; bottom: -80px;
	width: 380px; height: 380px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white' opacity='.07'%3E%3Cpath d='M9 2h6v7h7v6h-7v7H9v-7H2V9h7z'/%3E%3C/svg%3E") no-repeat center / contain;
	pointer-events: none;
}
.asa-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--asa-container);
	margin-inline: auto;
	padding: clamp(64px, 11vw, 140px) var(--asa-gutter) clamp(72px, 12vw, 150px);
}
.asa-hero__eyebrow {
	display: inline-block;
	margin-bottom: 20px;
	padding: .35em 1em;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	font-size: .88rem;
	font-weight: 500;
	letter-spacing: .04em;
	background: rgba(255, 255, 255, .08);
}
.asa-hero__title { color: #fff; font-size: clamp(2.1rem, 4.3vw, 3.2rem); text-wrap: balance; }
.asa-hero__subtitle { max-width: 58ch; font-size: clamp(1.05rem, 2vw, 1.25rem); color: rgba(255, 255, 255, .9); margin-bottom: 32px; }
.asa-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }

.page-hero {
	padding: clamp(28px, 5vw, 56px) 0 clamp(28px, 5vw, 48px);
	background: linear-gradient(180deg, var(--asa-blue-50) 0%, #fff 100%);
	border-bottom: 1px solid var(--asa-line);
}
.page-hero__title { margin-bottom: .3em; }
.page-hero__intro { max-width: 90ch; font-size: 1.15rem; color: var(--asa-muted); margin: 0; }
.page-hero__row { display: flex; gap: 20px; align-items: flex-start; }
.page-hero__icon {
	display: grid; place-items: center; flex: none;
	width: 64px; height: 64px; border-radius: 18px;
	background: var(--asa-blue); color: #fff;
}
.page-hero__icon .asa-icon { width: 32px; height: 32px; }

.breadcrumbs { font-size: .9rem; color: var(--asa-muted); margin-bottom: 14px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.breadcrumbs li:not(:last-child)::after { content: "›"; margin: 0 .5em; color: var(--asa-muted); }
.breadcrumbs p { margin: 0; }
.breadcrumbs a { color: var(--asa-muted); }

/* ==========================================================================
   6. Contenu éditorial (Gutenberg)
   ========================================================================== */
.entry-content > * { max-width: 760px; }
.entry-content > .alignwide { max-width: var(--asa-container); }
.entry-content > .alignfull { max-width: none; }
.page .entry-content > *,
.front-content > * { margin-inline: auto; }
.front-content > :not(.alignfull):not(.alignwide) { padding-inline: var(--asa-gutter); }
.front-content > .alignfull { width: 100%; }
.front-content > .alignwide { width: 100%; max-width: var(--asa-container); padding-inline: var(--asa-gutter); }
.entry-content h2 { margin-top: 1.6em; }
.entry-content ul li::marker { color: var(--asa-green); }
.entry-image img { border-radius: var(--asa-radius-lg); }
.entry-meta { color: var(--asa-muted); font-size: .92rem; }

.front-content > .wp-block-group.alignfull { padding-block: clamp(48px, 8vw, 100px); }
.front-content .wp-block-group.alignfull > * { max-width: var(--asa-container); margin-inline: auto; padding-inline: var(--asa-gutter); }
.front-content .wp-block-group.alignfull > .asa-cards { padding-inline: var(--asa-gutter); }
.front-content .has-text-align-center { text-align: center; }

.is-style-asa-eyebrow, .asa-eyebrow {
	font-family: var(--asa-font-head);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--asa-green-text);
	margin-bottom: .6em;
}
.asa-lead { font-size: 1.15rem; color: var(--asa-muted); max-width: 62ch; margin-inline: auto; }

/* Colonnes « Pourquoi nous » */
.asa-pillars.wp-block-columns { gap: 20px; flex-wrap: wrap !important; }
.asa-pillars > .wp-block-column {
	flex: 1 1 280px !important;
	padding: 28px;
	border-radius: var(--asa-radius);
	background: #fff;
	border: 1px solid var(--asa-line);
	border-top: 4px solid var(--asa-green);
}
.asa-pillars > .wp-block-column:nth-child(3n+2) { border-top-color: var(--asa-blue); }
.asa-pillars > .wp-block-column:nth-child(3n) { border-top-color: var(--asa-gold); }
.asa-pillars h3 { margin-bottom: .35em; }
.asa-pillars p { margin: 0; color: var(--asa-muted); }

/* Bloc « À propos » sur fond teinté */
.has-asa-bg-soft-background-color { background-color: var(--asa-bg-soft); }
.has-asa-blue-50-background-color { background-color: var(--asa-blue-50); }
.has-asa-green-50-background-color { background-color: var(--asa-green-50); }

.asa-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; padding: 0; list-style: none; }
.asa-values li { padding: 18px 20px; border-radius: var(--asa-radius); background: var(--asa-bg-soft); border-left: 4px solid var(--asa-gold); }
.entry-content .asa-values li::marker { content: ""; }

/* ==========================================================================
   7. Cartes (services, équipe, articles)
   ========================================================================== */
.asa-cards { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }
.asa-cards--services { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.asa-cards--team { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.asa-cards--posts { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.entry-content > .asa-cards { max-width: var(--asa-container); }

.asa-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--asa-line);
	border-radius: var(--asa-radius);
	box-shadow: var(--asa-shadow);
	transition: transform .2s, box-shadow .2s, border-color .2s;
	overflow: hidden;
}
.asa-card:hover, .asa-card:focus-within { transform: translateY(-3px); box-shadow: var(--asa-shadow-lg); border-color: #C8D6E6; }
.asa-card__title { margin: 0 0 .4em; font-size: 1.12rem; }
.asa-card__link { color: var(--asa-ink); text-decoration: none; }
.asa-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.asa-card__link:hover { color: var(--asa-blue); text-decoration: none; }
.asa-card__link:focus-visible { outline: none; }
.asa-card:has(.asa-card__link:focus-visible) { outline: 3px solid var(--asa-gold-dark); outline-offset: 3px; }
.asa-card__text { color: var(--asa-muted); font-size: .98rem; margin: 0; }
.asa-card__meta { color: var(--asa-green-text); font-size: .9rem; font-weight: 600; margin: 0 0 .3em; }
.asa-card__body { padding: 20px 22px 24px; }

.asa-card--service { padding: 26px 24px 24px; }
.asa-card__icon {
	display: grid; place-items: center;
	width: 52px; height: 52px; margin-bottom: 18px;
	border-radius: 14px;
	background: var(--asa-green-50);
	color: var(--asa-green);
}
.asa-card__icon .asa-icon { width: 28px; height: 28px; }
.asa-cards--services .asa-card:nth-child(3n+2) .asa-card__icon { background: var(--asa-blue-50); color: var(--asa-blue); }
.asa-cards--services .asa-card:nth-child(3n) .asa-card__icon { background: var(--asa-gold-50); color: var(--asa-gold-dark); }
.asa-card__tag { display: inline-block; margin: 10px 0 0; padding: .15em .7em; border-radius: 999px; background: var(--asa-gold-50); color: #6B4E12; font-size: .8rem; font-weight: 600; }
.asa-cards--pillars { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.asa-card__more { display: inline-flex; align-items: center; gap: .35em; margin-top: auto; padding-top: 16px; font-weight: 600; font-size: .92rem; color: var(--asa-blue); }
.asa-card__more .asa-icon { width: 1em; height: 1em; transition: transform .2s; }
.asa-card:hover .asa-card__more .asa-icon { transform: translateX(3px); }
/* Téléphone : sur les cartes de services seulement (pas les piliers « Une plateforme de santé intégrée »), le titre se place à la hauteur de l'icône, le texte en dessous. */
@media (max-width: 640px) {
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; align-content: start; }
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__icon { margin-bottom: 0; }
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__title { align-self: center; margin: 0; text-wrap: balance; }
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > :not(.asa-card__icon):not(.asa-card__title) { grid-column: 1 / -1; }
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__title + * { margin-top: 14px; }
	.asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__more { justify-self: start; }
}
/* Accueil, rangée « Des professionnels vérifiés pour chaque besoin » : sur ordinateur aussi, titre à la hauteur de l'icône (seulement ici). */
@media (min-width: 641px) {
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) { display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 16px; }
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__icon { margin-bottom: 0; }
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__title { align-self: center; margin: 0; text-wrap: balance; }
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > :not(.asa-card__icon):not(.asa-card__title) { grid-column: 1 / -1; }
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__title + * { margin-top: 14px; }
	body.home .asa-cards--services > li.asa-card--service:has(> .asa-card__icon) > .asa-card__more { justify-self: start; align-self: end; }
}

.asa-card__photo { aspect-ratio: 4 / 5; background: linear-gradient(160deg, var(--asa-blue-50), var(--asa-green-50)); }
.asa-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.asa-card__initials {
	display: grid; place-items: center; width: 100%; height: 100%;
	font-family: var(--asa-font-head); font-size: 2.6rem; font-weight: 700; color: var(--asa-blue);
}
.asa-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

/* ==========================================================================
   8. Bandeau d'appel à l'action
   ========================================================================== */
.asa-cta { background: var(--asa-bg-soft); padding: clamp(32px, 6vw, 64px) 0; }
.asa-cta__inner {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	max-width: var(--asa-container);
	margin-inline: auto;
	padding: clamp(28px, 5vw, 48px);
	border-radius: var(--asa-radius-lg);
	background: linear-gradient(120deg, var(--asa-green) 0%, #17724A 100%);
	color: #fff;
	box-shadow: var(--asa-shadow-lg);
	width: calc(100% - 2 * var(--asa-gutter));
}
.asa-cta__title { color: #fff; margin: 0 0 .25em; }
.asa-cta__text { margin: 0; color: rgba(255, 255, 255, .92); }

/* ==========================================================================
   9. Formulaire de rendez-vous
   ========================================================================== */
.asa-form-wrap { max-width: 760px; }
.asa-form {
	padding: clamp(20px, 4vw, 36px);
	border: 1px solid var(--asa-line);
	border-radius: var(--asa-radius-lg);
	background: #fff;
	box-shadow: var(--asa-shadow);
}
.asa-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 20px; }
.asa-form__required-note { font-size: .92rem; color: var(--asa-muted); }
.asa-field { margin: 0 0 18px; }
.asa-field > label, .asa-field legend { display: block; margin-bottom: 6px; font-weight: 600; color: var(--asa-ink); }
.asa-field input[type="text"],
.asa-field input[type="tel"],
.asa-field input[type="email"],
.asa-field input[type="password"],
.asa-field input[type="number"],
.asa-field input[type="date"],
.asa-field input[type="search"],
.asa-field select,
.asa-field textarea {
	width: 100%;
	min-height: 48px;
	padding: .65em .85em;
	border: 1.5px solid #B9C7D8;
	border-radius: 10px;
	background: #fff;
	font: inherit;
	color: var(--asa-text);
}
.asa-field textarea { min-height: 120px; resize: vertical; }
.asa-field input:focus, .asa-field select:focus, .asa-field textarea:focus { border-color: var(--asa-blue); outline: 3px solid rgba(29, 95, 167, .25); outline-offset: 0; }
.asa-field--choices { border: 0; padding: 0; margin: 0 0 18px; }
.asa-field--choices label { display: inline-flex; align-items: center; gap: .4em; margin: 0 18px 8px 0; font-weight: 400; min-height: 32px; }
/* Case + texte (avec lien éventuel) : le texte s'écoule normalement à droite de la case. */
.asa-field--consent label { display: block; position: relative; padding-left: 2em; font-weight: 400; font-size: .95rem; }
.asa-field--consent label > input { position: absolute; left: 0; top: 0; margin: .15em 0 0; }
.asa-field--consent input, .asa-field--choices input { width: 20px; height: 20px; accent-color: var(--asa-blue); flex: none; margin-top: .2em; }
.asa-field--hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* Pièces jointes (CV, preuves, mandat…) : grande zone cliquable et bouton bien visible, sur téléphone comme sur ordinateur. */
.asa-field input[type="file"], .asa-docs__upload input[type="file"] { display: block; width: 100%; max-width: 100%; min-height: 64px; padding: 10px 12px; border: 1.5px dashed #9FB3CB; border-radius: 12px; background: var(--asa-blue-50); font: inherit; font-size: 1rem; color: var(--asa-text); cursor: pointer; }
.asa-field input[type="file"]::file-selector-button, .asa-docs__upload input[type="file"]::file-selector-button { margin-right: 14px; padding: .75em 1.4em; border: 0; border-radius: 999px; background: var(--asa-blue); color: #fff; font: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; }
.asa-field input[type="file"]:hover::file-selector-button, .asa-docs__upload input[type="file"]:hover::file-selector-button { background: var(--asa-ink); }
.asa-field input[type="file"]:focus-visible { outline: 3px solid rgba(29, 95, 167, .25); border-color: var(--asa-blue); }
/* Version traduite (assets/js/nav.js) : notre bouton et le nom du fichier ; le champ natif reste là mais invisible. */
.asa-file { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; width: 100%; min-height: 64px; padding: 10px 12px; border: 1.5px dashed #9FB3CB; border-radius: 12px; background: var(--asa-blue-50); }
.asa-file__input { position: absolute; inset: 0; width: 100% !important; height: 100% !important; min-height: 0 !important; opacity: 0; cursor: pointer; }
.asa-file__button { position: relative; z-index: 1; display: inline-flex; align-items: center; padding: .75em 1.4em; border-radius: 999px; background: var(--asa-blue); color: #fff; font-weight: 600; cursor: pointer; pointer-events: none; }
.asa-file:hover .asa-file__button { background: var(--asa-ink); }
.asa-file:focus-within { border-color: var(--asa-blue); outline: 3px solid rgba(29, 95, 167, .25); }
.asa-file__name { position: relative; min-width: 0; overflow-wrap: anywhere; color: var(--asa-muted); pointer-events: none; }
.asa-file--chosen { border-style: solid; border-color: var(--asa-green); }
.asa-file--chosen .asa-file__name { color: var(--asa-ink); font-weight: 600; }
.asa-warning, .asa-emergency {
	padding: 14px 16px;
	border-left: 4px solid var(--asa-gold);
	border-radius: 8px;
	background: var(--asa-gold-50);
	font-size: .95rem;
	color: var(--asa-ink);
}
.asa-alert { padding: 16px 18px; border-radius: 10px; margin-bottom: 20px; font-weight: 500; }
.asa-alert--success { background: var(--asa-green-50); border: 1px solid #A9D8BF; color: #0F5A38; }
.asa-alert--error { background: #FDECEC; border: 1px solid #F2B8B5; color: #8A1C1C; }
.cf-turnstile { margin-bottom: 18px; }
.asa-notice { padding: 18px; border-radius: var(--asa-radius); background: var(--asa-bg-soft); color: var(--asa-muted); }
.asa-disclaimer { margin-top: 2em; font-size: .92rem; color: var(--asa-muted); border-top: 1px solid var(--asa-line); padding-top: 1em; }
.asa-placeholder { display: inline-block; padding: 0 .4em; border-radius: 4px; background: #FFF3CD; color: #664D03; font-size: .9em; }

/* ==========================================================================
   9 bis. Espace patient
   ========================================================================== */
.asa-account { max-width: var(--asa-container); }
.entry-content > .asa-account, .entry-content > .asa-form-wrap { max-width: var(--asa-container); }
.asa-account__hello { font-size: 1.15rem; }
.asa-account__grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: start; }
.asa-panel { padding: clamp(20px, 4vw, 32px); border: 1px solid var(--asa-line); border-radius: var(--asa-radius-lg); background: #fff; box-shadow: var(--asa-shadow); }
.asa-panel--tint { background: var(--asa-blue-50); border-color: #D3E2F3; box-shadow: none; }
.asa-panel h2, .asa-panel h3 { margin-top: 0; }
.asa-form--plain { padding: 0; border: 0; box-shadow: none; background: transparent; }
.asa-help { display: block; margin-top: 6px; font-size: .88rem; color: var(--asa-muted); }
.asa-small { font-size: .92rem; color: var(--asa-muted); }
.asa-account__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
@media (min-width: 900px) { .asa-account__layout { grid-template-columns: 240px minmax(0, 1fr); align-items: start; } }
.asa-account__nav ul { list-style: none; margin: 0; padding: 8px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: var(--asa-bg-soft); display: grid; gap: 2px; }
.asa-account__nav a { display: block; padding: .7em .9em; border-radius: 10px; color: var(--asa-ink); font-weight: 500; text-decoration: none; }
.asa-account__nav a:hover { background: #fff; color: var(--asa-blue); }
.asa-account__nav a[aria-current] { background: var(--asa-blue); color: #fff; }
@media (max-width: 899px) {
	.asa-account__nav ul { display: flex; overflow-x: auto; padding: 6px; }
	.asa-account__nav a { white-space: nowrap; }
}
.asa-account__content > h2 { margin-top: 0; }
.asa-appointments { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 14px; }
.entry-content .asa-appointments li::marker { content: ""; }
.asa-appointment { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding: 18px 20px; border: 1px solid var(--asa-line); border-left: 4px solid var(--asa-gold); border-radius: var(--asa-radius); background: #fff; }
.asa-appointment--confirmed { border-left-color: var(--asa-green); }
.asa-appointment--cancelled_patient, .asa-appointment--cancelled_clinic, .asa-appointment--done { border-left-color: var(--asa-line); opacity: .85; }
.asa-appointment p { margin: 0 0 .3em; }
.asa-appointment__service { font-family: var(--asa-font-head); font-weight: 600; color: var(--asa-ink); }
.asa-appointment__when { display: flex; align-items: center; gap: .4em; color: var(--asa-muted); }
.asa-appointment__note { font-size: .95rem; }
.asa-appointment__side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.asa-badge { display: inline-block; padding: .25em .8em; border-radius: 999px; font-size: .85rem; font-weight: 600; background: var(--asa-gold-50); color: #6B4E12; }
.asa-badge--confirmed { background: var(--asa-green-50); color: #0F5A38; }
.asa-badge--cancelled_patient, .asa-badge--cancelled_clinic { background: #FDECEC; color: #8A1C1C; }
.asa-badge--done { background: var(--asa-bg-soft); color: var(--asa-muted); }
.asa-link-button { background: none; border: 0; padding: 4px 0; font: inherit; font-size: .92rem; color: #A12626; text-decoration: underline; cursor: pointer; min-height: 32px; }
.asa-form__identity { padding: 12px 14px; border-radius: 10px; background: var(--asa-bg-soft); }

/* ==========================================================================
   9 ter. Réseau médical : annuaire, badge, fiche professionnel
   ========================================================================== */
.asa-directory { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.entry-content > .asa-directory,
.entry-content > .asa-guide,
.entry-content > .asa-guide + script + p,
.entry-content > .asa-guide + script + p + p, /* « Vous cherchez un laboratoire… » : une ligne, aligné sur le reste */
.entry-content > .asa-directory__intro { max-width: var(--asa-container); } /* orientation, vérification et recherche alignées sur la liste */
@media (min-width: 1000px) { .asa-directory { grid-template-columns: 290px minmax(0, 1fr); align-items: start; } }
.asa-directory__filters {
	padding: 22px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius-lg); background: var(--asa-bg-soft);
}
@media (min-width: 1000px) { .asa-directory__filters { position: sticky; top: calc(var(--asa-header-h) + 20px); } }
.asa-directory__filters .asa-field { margin-bottom: 14px; }
.asa-directory__filters input[type="search"] { width: 100%; min-height: 48px; padding: .65em .85em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; background: #fff; }
.asa-directory__filters input[type="search"]:focus { border-color: var(--asa-blue); outline: 3px solid rgba(29, 95, 167, .25); outline-offset: 0; }
.asa-directory__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin: 6px 0 0; }
.asa-directory__count { font-size: 1.2rem; margin: 0 0 16px; }
/* Recherche directe, distincte de l'orientation guidée (au-dessus). */
.asa-directory__intro { margin: 28px 0 16px; padding-top: 22px; border-top: 1px solid var(--asa-line); }
.asa-directory__intro .asa-directory__intro-title { margin: 0 0 4px; font-size: 1.3rem; }
.asa-directory__intro p { margin: 0; color: var(--asa-muted); }
.asa-directory .asa-notice p:last-child { margin-bottom: 0; }

.asa-finder {
	display: grid; gap: 12px 16px; align-items: end;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	max-width: 900px; margin: 0 auto; padding: 22px;
	border-radius: var(--asa-radius-lg); background: #fff; box-shadow: var(--asa-shadow-lg);
}
.asa-finder .asa-field, .asa-finder__submit { margin: 0; }
.asa-finder__submit .asa-button { width: 100%; }
.front-content > .wp-block-group.asa-home-finder { padding-block: clamp(40px, 6vw, 72px); background: var(--asa-blue-50); }
.asa-home-finder .asa-finder { max-width: 960px; }
/* Deux recherches symétriques (revue du 19/10/2026) : titre, phrase d'introduction, puis
   Spécialité ou Type | Ville | case « à domicile » | Rechercher ; séparateur léger entre les deux. */
.asa-home-finder h2 { margin-bottom: 8px; }
.asa-home-finder__lead { margin: 0 auto 24px; color: var(--asa-muted); }
.asa-home-finder__est { margin-top: clamp(32px, 5vw, 48px); padding-top: clamp(28px, 4vw, 40px); border-top: 1px solid rgba(29, 95, 167, .14); }
.asa-home-finder__est h2 { margin-top: 0; }
/* Même largeur et mêmes marges intérieures que la première grille (règle « .wp-block-group.alignfull > * »). */
.front-content .wp-block-group.alignfull > .asa-home-finder__est { padding-inline: 0; }
.asa-home-finder .asa-finder--est { max-width: none; width: 100%; box-sizing: border-box; padding-inline: var(--asa-gutter); }
.asa-home-finder .asa-finder--home { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 15.5em minmax(160px, auto); } /* case de largeur fixe : listes alignées d'un bloc à l'autre */
.asa-finder--home .asa-finder__home { align-self: end; padding-bottom: 12px; }
.asa-finder--home .asa-finder__home label { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; white-space: nowrap; }
@media (max-width: 1100px) {
	.asa-home-finder .asa-finder--home { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.asa-finder--home .asa-finder__home { align-self: center; padding-bottom: 0; }
}
/* Version B (19/10/2026) : les deux recherches côte à côte à partir de la tablette, chacune dans sa colonne
   (titre, phrase, carte), titres, phrases et cartes alignés d'une colonne à l'autre (sous-grille) ; dans chaque carte,
   les champs l'un sous l'autre et le bouton en bas, mêmes hauteurs. Une seule recherche (moins d'établissements que le
   seuil) : pleine largeur, comme avant. Téléphone : les deux cartes l'une sous l'autre. */
@media (min-width: 768px) {
	.front-content > .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) {
		display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto 1fr;
		column-gap: clamp(20px, 3vw, 36px);
		padding-inline: max(var(--asa-gutter), calc((100% - var(--asa-container)) / 2 + var(--asa-gutter)));
	}
	.front-content .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) > * { grid-column: 1; max-width: none; margin-inline: 0; padding-inline: 0; }
	.front-content .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) > h2 { grid-row: 1; }
	.front-content .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) > .asa-home-finder__lead { grid-row: 2; }
	.front-content .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) > .asa-finder { grid-row: 3; }
	.front-content .wp-block-group.asa-home-finder > .asa-home-finder__est {
		grid-column: 2; grid-row: 1 / 4; display: grid; grid-template-rows: subgrid;
		margin: 0; padding: 0; border-top: 0;
	}
	.asa-home-finder:has(> .asa-home-finder__est) h2 { font-size: clamp(1.55rem, 2.6vw, 2.1rem); margin: 0 0 8px; }
	.asa-home-finder:has(> .asa-home-finder__est) .asa-home-finder__lead { margin: 0 0 32px; }
	.front-content .wp-block-group.asa-home-finder:has(> .asa-home-finder__est) .asa-finder--home {
		display: flex; flex-direction: column; align-items: stretch; gap: 18px;
		max-width: none; width: 100%; margin: 0; padding: 28px 30px; box-sizing: border-box;
	}
	.asa-home-finder:has(> .asa-home-finder__est) .asa-finder__home { align-self: flex-start; padding-bottom: 0; }
	.asa-home-finder:has(> .asa-home-finder__est) .asa-finder__submit { margin-top: auto; }
	.asa-home-finder:has(> .asa-home-finder__est) .asa-finder__submit .asa-button { justify-content: center; }
}
@media (max-width: 767px) {
	.asa-home-finder__est { margin-top: 36px; padding-top: 28px; }
}
@media (max-width: 600px) {
	.asa-home-finder .asa-finder, .asa-home-finder .asa-finder--home { grid-template-columns: 1fr; padding: 18px; }
	.asa-home-finder .asa-finder__submit .asa-button { white-space: nowrap; justify-content: center; }
}
.asa-empty-results { padding: clamp(22px, 3vw, 32px); border-radius: var(--asa-radius-lg); background: #fff; box-shadow: var(--asa-shadow); text-align: center; }
.asa-empty-results__title { margin: 0 0 6px; font-family: var(--asa-font-head); font-weight: 700; font-size: 1.2rem; color: var(--asa-ink); text-wrap: balance; }
.asa-empty-results__text { margin: 0 0 18px; color: var(--asa-muted); }
.asa-empty-results__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 18px; }
.asa-empty-results__links { list-style: none; margin: 0; padding: 16px 0 0; border-top: 1px solid var(--asa-line); display: grid; gap: 8px; }
.asa-empty-results__links a { font-weight: 600; }
.asa-pro-band { background: linear-gradient(120deg, var(--asa-ink) 0%, var(--asa-blue-dark) 100%); color: #fff; }
.front-content > .wp-block-group.asa-pro-band { padding-block: clamp(48px, 7vw, 88px); }
.asa-pro-band h2, .asa-pro-band .asa-eyebrow { color: #fff; }
.asa-pro-band .asa-eyebrow { color: var(--asa-gold); }
.asa-pro-band p { color: rgba(255, 255, 255, .9); }
.asa-pro-band .wp-block-button__link { background: var(--asa-gold); color: var(--asa-ink); }
.asa-pro-band .wp-block-button__link:hover { background: #E0B85F; color: var(--asa-ink); }

.asa-verified { position: relative; display: inline-block; margin: 4px 0 12px; }
.asa-verified__label {
	display: inline-flex; align-items: center; gap: .4em;
	padding: .3em .8em; border-radius: 999px;
	background: var(--asa-green-50); color: #0F5A38; font-size: .88rem; font-weight: 600;
	cursor: help;
}
.asa-verified__label .asa-icon { width: 1.1em; height: 1.1em; color: var(--asa-green); }
.asa-verified__tip {
	position: absolute; left: 0; top: calc(100% + 8px); z-index: 20;
	width: min(340px, 80vw); padding: 12px 14px; border-radius: 10px;
	background: var(--asa-ink); color: #fff; font-size: .85rem; font-weight: 400; line-height: 1.5;
	box-shadow: var(--asa-shadow-lg);
	visibility: hidden; opacity: 0; transition: opacity .15s, visibility 0s .15s;
}
.asa-verified:hover .asa-verified__tip,
.asa-verified__label:focus + .asa-verified__tip,
.asa-verified__label:focus-visible + .asa-verified__tip { visibility: visible; opacity: 1; transition: opacity .15s; }
.asa-verified--compact { margin: 8px 0 0; position: relative; z-index: 2; }
.asa-verified--compact .asa-verified__label { font-size: .78rem; padding: .25em .65em; }
.asa-card--doctor .asa-card__text { display: flex; align-items: center; gap: .35em; margin-top: .25em; }
.asa-card--doctor .asa-card__text .asa-icon { width: 1em; height: 1em; color: var(--asa-muted); }
.asa-card__langs { font-size: .9rem; }

.doctor__aside { display: grid; gap: 16px; align-content: start; }
@media (min-width: 800px) { .doctor__aside { position: sticky; top: calc(var(--asa-header-h) + 24px); } }
.doctor__cta { display: grid; gap: 10px; }
.doctor__bio, .doctor__availability { margin-top: 32px; }
.asa-availability { border-collapse: collapse; width: 100%; max-width: 480px; margin-bottom: 10px; }
.asa-availability th, .asa-availability td { padding: 10px 12px; border-bottom: 1px solid var(--asa-line); text-align: left; }
.asa-availability thead th { font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; color: var(--asa-muted); }
.asa-yes { color: #0F5A38; font-weight: 600; }
.asa-no { color: var(--asa-muted); }

.asa-form__doctor {
	display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
	margin-bottom: 20px; padding: 14px 16px; border-radius: 12px;
	background: var(--asa-blue-50); border: 1px solid #D3E2F3;
}
.asa-form__doctor img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.asa-form__doctor p { margin: 0; flex: 1 1 200px; }
.asa-slots, .asa-fieldset {
	margin: 0 0 20px; padding: 16px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius);
	background: var(--asa-bg-soft);
}
.asa-slots legend, .asa-fieldset legend { padding: 0 6px; font-weight: 600; color: var(--asa-ink); }
.asa-fieldset .asa-field:last-child { margin-bottom: 0; }
.asa-slots__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.asa-slots__nav .asa-button { padding: 8px 14px; font-size: .9rem; }
.asa-slots__range { font-size: .9rem; color: var(--asa-muted); text-align: center; flex: 1 1 160px; }
.asa-slots__days { display: grid; gap: 14px; min-height: 2.5em; color: var(--asa-muted); }
.asa-slots__day-title { margin: 0 0 6px; font-weight: 600; color: var(--asa-ink); }
.asa-slots__day-title::first-letter { text-transform: uppercase; }
.asa-slots__times { display: flex; flex-wrap: wrap; gap: 8px; }
.asa-slot {
	min-width: 72px; padding: 8px 12px; border: 1px solid #C9D8EA; border-radius: 10px;
	background: var(--asa-bg); color: var(--asa-blue-dark); font: inherit; font-weight: 600; cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.asa-slot:hover { border-color: var(--asa-blue-dark); background: var(--asa-blue-50); }
.asa-slot[aria-pressed="true"] { background: var(--asa-blue-dark); border-color: var(--asa-blue-dark); color: #fff; }
.asa-slot:focus-visible { outline: 3px solid var(--asa-gold); outline-offset: 2px; }
@media (max-width: 600px) {
	.asa-slots { padding: 12px; }
	.asa-slots__range { order: -1; flex-basis: 100%; }
	.asa-slots__nav .asa-button { flex: 1 1 0; }
	.asa-slot { min-width: 64px; padding: 8px 10px; }
}
.asa-slots__chosen { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--asa-green-50); color: var(--asa-green-text); font-weight: 600; }
.asa-slots__other { margin: 12px 0 0; }
.asa-link-button { padding: 0; border: 0; background: none; color: var(--asa-blue-dark); font: inherit; text-decoration: underline; cursor: pointer; text-align: left; }
.asa-appointment__doctor { display: flex; align-items: center; gap: .4em; color: var(--asa-muted); }
.asa-badge--requested, .asa-badge--to_confirm { background: var(--asa-gold-50); color: #6B4E12; }
.asa-badge--rescheduled { background: var(--asa-blue-50); color: var(--asa-blue-dark); }
.asa-badge--cancelled { background: #FDECEC; color: #8A1C1C; }
.asa-appointment--rescheduled { border-left-color: var(--asa-blue); }
.asa-appointment--cancelled { border-left-color: var(--asa-line); opacity: .85; }

/* Espace professionnel */
.asa-status-card { padding: 20px 22px; margin-bottom: 24px; border-radius: var(--asa-radius-lg); border: 1px solid var(--asa-line); border-left: 5px solid var(--asa-gold); background: #fff; }
.asa-status-card--verified { border-left-color: var(--asa-green); }
.asa-status-card--rejected, .asa-status-card--suspended { border-left-color: #C0392B; }
.asa-status-card--pending_verification { border-left-color: var(--asa-blue); }
.asa-status-card__label { font-size: 1.05rem; margin-bottom: .4em; }
.asa-status-card p:last-child, .asa-status-card form { margin-bottom: 0; }
.asa-pro-form__section { margin: 0 0 20px; }
.asa-pro-form__section legend { font-family: var(--asa-font-head); font-weight: 700; font-size: 1.1rem; color: var(--asa-ink); padding: 0 6px; }
.asa-field--wide { grid-column: 1 / -1; }
.asa-field--choices.asa-field--wide label { min-width: 160px; }
.asa-docs { margin-top: 24px; }
.asa-docs__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.entry-content .asa-docs__list li::marker { content: ""; }
.asa-docs__item { padding: 14px 16px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: var(--asa-bg-soft); }
.asa-docs__item.is-done { background: #fff; border-color: #A9D8BF; }
.asa-docs__head { display: flex; gap: 12px; align-items: flex-start; }
.asa-docs__state { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--asa-gold-50); color: #6B4E12; font-weight: 700; }
.is-done .asa-docs__state { background: var(--asa-green-50); color: #0F5A38; }
.asa-docs__file { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 10px 0 0 40px; font-size: .92rem; }
.asa-docs__file form { margin: 0; }
.asa-docs__item { scroll-margin-top: 140px; }
.asa-docs__howto { margin: 12px 0 16px; }
.asa-docs__result { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; background: var(--asa-blue-50); color: var(--asa-blue); font-size: .92rem; font-weight: 600; }
.asa-docs__result--ok { background: var(--asa-green-50); color: #0F5A38; }
.asa-docs__result--error { background: #FDECEC; color: #8A1C1C; }
.asa-docs__pending { flex-basis: 100%; margin: 4px 0 0; color: #8A5A00; font-size: .88rem; font-weight: 600; }
.asa-docs__upload.is-pending .asa-button { background: var(--asa-gold); border-color: var(--asa-gold); color: var(--asa-ink); }
.asa-docs__upload { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0 0 40px; }
.asa-docs__upload .asa-button { min-height: 40px; padding: .5em 1.1em; }
.asa-submit-panel { margin-top: 24px; }
.asa-missing { color: #8A1C1C; }
.asa-summary { display: grid; gap: 10px; margin: 0; }
.asa-summary div { display: grid; grid-template-columns: minmax(160px, 38%) 1fr; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--asa-line); }
.asa-summary dt { font-weight: 600; color: var(--asa-ink); }
.asa-summary dd { margin: 0; }
.asa-table { width: 100%; border-collapse: collapse; }
.asa-table th, .asa-table td { padding: 10px 12px; border-bottom: 1px solid var(--asa-line); text-align: left; vertical-align: top; }
.asa-table thead th { font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--asa-muted); }
.asa-availability-grid { border-collapse: collapse; margin-bottom: 12px; }
.asa-availability-grid th, .asa-availability-grid td { padding: 8px 14px; border-bottom: 1px solid var(--asa-line); text-align: left; }
.asa-availability-grid input { width: 20px; height: 20px; accent-color: var(--asa-blue); }
@media (max-width: 600px) {
	.asa-summary div { grid-template-columns: 1fr; gap: 2px; }
	.asa-docs__file, .asa-docs__upload { margin-left: 0; }
	.asa-table thead { display: none; }
	.asa-table tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--asa-line); }
	.asa-table td { display: block; border: 0; padding: 2px 0; }
}

/* Paiements, tarifs, revenus */
.asa-payment { max-width: 720px; }
.entry-content > .asa-payment { max-width: 720px; }
.asa-amounts { max-width: 480px; margin: 16px 0; }
.asa-amounts th { font-weight: 500; }
.asa-amounts td { text-align: right; font-variant-numeric: tabular-nums; }
/* Conditions d'annulation rappelées et acceptées avant le paiement. */
.asa-payment__terms { margin: 18px 0 16px; padding: 16px 18px; border-radius: var(--asa-radius); background: var(--asa-gold-50); border: 1px solid #F0E2BF; }
.asa-payment__terms-title { margin: 0 0 6px; font-weight: 700; color: var(--asa-ink); }
.asa-payment__terms ul { margin: 0 0 12px; padding-left: 1.2em; display: grid; gap: 4px; font-size: .94rem; }
.asa-payment__accept { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; color: var(--asa-ink); cursor: pointer; }
.asa-payment__accept input { flex: none; width: 22px; height: 22px; margin-top: 1px; accent-color: var(--asa-blue); }
/* Montants : libellé et montant restent sur la même ligne, y compris sur téléphone. */
.asa-table.asa-amounts tr { display: table-row; padding: 0; }
.asa-table.asa-amounts th, .asa-table.asa-amounts td { display: table-cell; padding: 10px 12px; border-bottom: 1px solid var(--asa-line); }
.asa-amounts--total tr:last-child th, .asa-amounts--total tr:last-child td { font-weight: 700; color: var(--asa-ink); border-bottom: 0; border-top: 2px solid var(--asa-ink); }
.asa-fee-hint { padding: 12px 14px; border-radius: 10px; background: var(--asa-green-50); color: #0F5A38; font-weight: 500; }
.asa-fees-services__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 8px 0; border-bottom: 1px solid var(--asa-line); margin: 0; }
.asa-fees-services__row input { width: 160px; min-height: 44px; padding: .5em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; }
.asa-field input[type="month"] { min-height: 44px; padding: .5em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; }
.asa-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px; }
.asa-inline-form input[type="month"], .asa-inline-form select { width: auto; flex: 0 1 220px; min-width: 0; min-height: 44px; padding: .4em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; }
.asa-inline-form select { flex: 0 1 140px; background: #fff; color: var(--asa-text); }
.asa-earnings__export { margin: -4px 0 22px; }
.asa-payouts__title { margin: 40px 0 14px; }
.asa-earnings-year { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--asa-line); }
.asa-earnings-year h3 { margin: 0 0 4px; }
.asa-earnings-year > .asa-small { margin: 0 0 16px; }
.asa-earnings-year .asa-earnings__export { margin: 20px 0 14px; }
.asa-earnings-year > .asa-small:last-child { margin: 0; }
.asa-table--compact td, .asa-table--compact tfoot th { font-variant-numeric: tabular-nums; }
.asa-table--compact tfoot th, .asa-table--compact tfoot td { border-top: 2px solid var(--asa-ink); border-bottom: 0; font-weight: 700; color: var(--asa-ink); }
@media (max-width: 600px) {
	/* Relevé annuel : 4 colonnes courtes, le tableau reste lisible sur téléphone. */
	.asa-table--compact thead { display: table-header-group; }
	.asa-table--compact tr { display: table-row; padding: 0; }
	.asa-table--compact th, .asa-table--compact td { display: table-cell; padding: 8px 6px; border-bottom: 1px solid var(--asa-line); font-size: .9rem; }
	.asa-table--compact thead th { font-size: .72rem; letter-spacing: .02em; }
}
.asa-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 20px; }
.asa-kpis p { margin: 0; padding: 14px 16px; border-radius: var(--asa-radius); background: var(--asa-bg-soft); border: 1px solid var(--asa-line); display: grid; gap: 4px; }
.asa-kpis span { font-size: .85rem; color: var(--asa-muted); }
.asa-kpis strong { font-family: var(--asa-font-head); font-size: 1.2rem; color: var(--asa-ink); }
.asa-appointment__pay { margin-top: 8px !important; }
.asa-appointment__pay .asa-button { min-height: 40px; padding: .5em 1.1em; font-size: .92rem; }
.doctor__fees { margin-top: 32px; }
.asa-receipt__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 2px solid var(--asa-blue); }
.asa-receipt__number { text-align: right; }
@media print {
	.page-hero, .asa-receipt button, .topbar { display: none !important; }
	.asa-receipt { border: 0; box-shadow: none; padding: 0; }
}

/* ==========================================================================
   10. Contact, carte, fiche service et fiche médecin
   ========================================================================== */
.asa-contact { list-style: none; padding: 0; display: grid; gap: 18px; }
.asa-contact__item { display: flex; gap: 14px; align-items: flex-start; }
.asa-contact__icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 12px; background: var(--asa-blue-50); color: var(--asa-blue); }
.asa-contact__label { color: var(--asa-ink); }
.asa-contact__soon { color: var(--asa-muted); font-style: italic; }
.asa-social { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0 0; }
.asa-social a { display: inline-block; padding: .35em .9em; border: 1px solid currentColor; border-radius: 999px; font-size: .9rem; text-decoration: none; }
.asa-map { border-radius: var(--asa-radius-lg); overflow: hidden; border: 1px solid var(--asa-line); aspect-ratio: 16 / 9; }
.asa-map iframe { width: 100%; height: 100%; border: 0; display: block; }

.layout-aside { display: grid; gap: 40px; }
@media (min-width: 960px) { .layout-aside { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } }
.aside-card {
	position: sticky;
	top: calc(var(--asa-header-h) + 24px);
	padding: 28px;
	border-radius: var(--asa-radius-lg);
	background: var(--asa-blue-50);
	border: 1px solid #D3E2F3;
}
.aside-card__title { font-size: 1.3rem; }
.aside-card__phone { display: flex; gap: .5em; align-items: center; margin-top: 18px; font-weight: 600; }
.related { margin-top: 48px; }

.doctor { display: grid; gap: 40px; }
@media (min-width: 800px) { .doctor { grid-template-columns: 320px minmax(0, 1fr); align-items: start; } }
.doctor__photo { border-radius: var(--asa-radius-lg); overflow: hidden; aspect-ratio: 4 / 5; background: linear-gradient(160deg, var(--asa-blue-50), var(--asa-green-50)); }
.doctor__photo img { width: 100%; height: 100%; object-fit: cover; }
.doctor__name { margin-bottom: .15em; }
.doctor__role { font-size: 1.15rem; font-weight: 600; color: var(--asa-green-text); }
.doctor__facts { display: grid; gap: 14px; padding: 22px; border-radius: var(--asa-radius); background: var(--asa-bg-soft); }
.doctor__facts dt { font-weight: 700; color: var(--asa-ink); font-size: .9rem; text-transform: uppercase; letter-spacing: .06em; }
.doctor__facts dd { margin: 0; }
.doctor__facts ul { margin: 0; padding-left: 1.2em; }

/* Pagination */
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; }
.pagination .page-numbers { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--asa-line); border-radius: 10px; text-decoration: none; }
.pagination .current { background: var(--asa-blue); color: #fff; border-color: var(--asa-blue); }

/* ==========================================================================
   11. Pied de page
   ========================================================================== */
.site-footer { background: var(--asa-ink); color: #C9D6E6; font-size: .96rem; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; color: #fff; }
.site-footer__grid { display: grid; gap: 36px; padding-block: 64px 48px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.site-footer__about { grid-column: span 1; }
@media (min-width: 960px) { .site-footer__grid { grid-template-columns: 1.2fr .9fr 1fr 1.6fr; } }
/* Contact sur toute la largeur sous 960 px : les adresses e-mail tiennent sur une ligne sans rapetisser. */
@media (max-width: 959px) { .site-footer__col--contact { grid-column: 1 / -1; } }
.site-footer__brand { color: #fff; font-size: 1.3rem; margin-bottom: .2em; }
.site-footer__slogan { color: var(--asa-gold); font-weight: 600; font-family: var(--asa-font-head); font-size: .92rem; letter-spacing: .02em; }
.site-footer__title { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 1em; }
.site-footer .menu { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.site-footer__contact { list-style: none; padding: 0; display: grid; gap: 12px; }
.site-footer__contact li { display: flex; gap: 10px; align-items: flex-start; }
.site-footer__contact .asa-icon { color: var(--asa-gold); margin-top: .2em; }
.site-footer .asa-social a { color: #fff; border-color: rgba(255, 255, 255, .35); }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); }
.site-footer__bottom-inner { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; align-items: center; padding-block: 20px; font-size: .88rem; }
.site-footer__bottom p { margin: 0; }
/* Ordinateur : bloc « Alliance Santé Afrique » décalé vers le coin gauche (dans la marge libre quand l'écran est large),
   séparé des colonnes de liens par un filet et centré verticalement dans son coin (il ne se lit pas comme les colonnes de liens). */
@media (min-width: 960px) {
	.site-footer__about { align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin-left: calc(-1 * clamp(0px, (100vw - var(--asa-container)) / 2 - 24px, 96px)); padding-right: 32px; border-right: 1px solid rgba(255, 255, 255, .12); }
	.site-footer__brand, .site-footer__title { margin-top: 0; line-height: 1.25; }
	.site-footer__about > :first-child { margin-top: 0; }
	.site-footer__about > :last-child { margin-bottom: 0; }
	.site-footer__brand { font-size: 1.3rem; }
	.site-footer__title { min-height: 1.6rem; display: flex; align-items: center; }
}
.site-footer__bottom .menu { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* ==========================================================================
   12. Préférences utilisateur et impression
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.asa-card:hover, .asa-button:hover { transform: none; }
}

@media print {
	.site-header, .site-footer, .asa-cta, .nav-toggle, .aside-card { display: none !important; }
	body { color: #000; }
}

/* ---------------------------------------------------------------------------
 * Catalogue Équipements & devis (V3-3)
 * ------------------------------------------------------------------------ */
.asa-card__media--contain { background: var(--asa-bg-soft); display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; }
.asa-card__media--contain img { object-fit: contain; padding: 12px; height: 100%; }
.asa-card__placeholder { color: var(--asa-blue); opacity: .55; }
.asa-card__placeholder svg { width: 56px; height: 56px; }
.asa-card--equipment { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.asa-card--equipment .asa-card__body { padding: 18px 20px 22px; }
.asa-card__price { font-family: var(--asa-font-head); font-weight: 700; color: var(--asa-ink); margin: 8px 0 0; }
.asa-stock--in_stock { background: var(--asa-green-50); color: #0F5A38; }
.asa-stock--on_order { background: var(--asa-blue-50); color: var(--asa-blue-dark); }
.asa-stock--on_quote { background: var(--asa-gold-50); color: #6B4E12; }
.asa-stock--unavailable { background: #F1F3F6; color: var(--asa-muted); }
.asa-alert--info { background: var(--asa-blue-50); border: 1px solid #BCD3EE; color: var(--asa-blue-dark); }
.entry-image--product img { width: 100%; max-height: 460px; object-fit: contain; background: var(--asa-bg-soft); border-radius: var(--asa-radius); }
.asa-gallery { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; }
.asa-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; border: 1px solid var(--asa-line); }
.asa-doc-list { list-style: none; margin: 0; padding: 0; }
.asa-doc-list li { border-bottom: 1px solid var(--asa-line); }
.asa-doc-list a { display: flex; align-items: center; gap: 10px; padding: 12px 0; font-weight: 600; }
.asa-doc-list svg { width: 20px; height: 20px; flex: none; color: var(--asa-blue); }
.asa-doc-list__type { color: var(--asa-muted); font-weight: 400; }
.asa-specs { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; margin: 0 0 20px; }
.asa-specs dt { color: var(--asa-muted); font-size: .9rem; }
.asa-specs dd { margin: 0; font-weight: 600; }
.asa-specs .asa-card__tag { margin: 0; }
.aside-card__note { font-size: .9rem; color: var(--asa-muted); margin: 12px 0 0; }
.asa-quote-item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) 110px; gap: 0 16px; align-items: end; border-bottom: 1px dashed var(--asa-line); margin-bottom: 12px; }
.asa-quote-item[hidden] { display: none; }

/* Liste de référence des matériels (page Équipements) */
.asa-eqtypes { margin: 8px 0 32px; }
.asa-eqtypes__search { max-width: 560px; }
.asa-eqtypes__family { border: 1px solid var(--asa-line); border-radius: 14px; margin-bottom: 10px; background: #fff; }
.asa-eqtypes__family[hidden] { display: none; }
.asa-eqtypes__family summary { cursor: pointer; padding: 14px 18px; font-weight: 700; color: var(--asa-ink); display: flex; justify-content: space-between; align-items: center; gap: 12px; list-style: none; }
.asa-eqtypes__family summary::-webkit-details-marker { display: none; }
.asa-eqtypes__family summary::after { content: "+"; font-size: 1.3em; line-height: 1; color: var(--asa-blue); margin-left: auto; }
.asa-eqtypes__family[open] summary::after { content: "–"; }
.asa-eqtypes__count { font-size: .8rem; font-weight: 600; color: var(--asa-muted); background: var(--asa-bg-soft); border-radius: 999px; padding: .15em .7em; }
.asa-eqtypes__family ul { list-style: none; margin: 0; padding: 0 18px 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.asa-eqtypes__family li[hidden] { display: none; }
.asa-eqtypes__family li a { display: inline-block; padding: .4em .9em; border-radius: 999px; background: var(--asa-blue-50); color: var(--asa-blue-dark); text-decoration: none; font-size: .95rem; }
.asa-eqtypes__family li a:hover, .asa-eqtypes__family li a:focus-visible { background: var(--asa-blue); color: #fff; }
.asa-eqtypes__note { color: var(--asa-muted); font-size: .95rem; }
@media (max-width: 720px) {
	.asa-quote-item { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
 * Recherche (V3-4)
 * ------------------------------------------------------------------------ */
.asa-field__help { display: block; margin-top: 6px; font-size: .9rem; color: var(--asa-muted); }
.asa-cards--domains { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.asa-card--domain .asa-card__title { font-size: 1.02rem; }
.asa-card--project { display: flex; flex-direction: column; }
.asa-card--project .asa-card__tag { align-self: flex-start; margin-top: auto; }
.asa-project--ongoing { background: var(--asa-green-50); color: #0F5A38; }
.asa-project--planned { background: var(--asa-blue-50); color: var(--asa-blue-dark); }
.asa-project--completed { background: #F1F3F6; color: var(--asa-muted); }
.asa-research-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: clamp(24px, 4vw, 36px) 24px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius-lg); background: linear-gradient(180deg, var(--asa-blue-50), #fff); color: var(--asa-muted); text-align: center; }
.asa-research-empty p { max-width: 46ch; margin: 0; font-size: 1rem; line-height: 1.55; text-wrap: balance; }
.asa-research-empty__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #fff; color: var(--asa-blue); box-shadow: var(--asa-shadow); }
.asa-research-empty__icon .asa-icon { width: 26px; height: 26px; }
/* Page Recherche : projets, publications et partenaires en deux colonnes (une sur téléphone). */
.asa-research-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 32px); margin-block: 2.75rem 2rem; }
.asa-research-grid__item { display: flex; flex-direction: column; min-width: 0; }
.asa-research-grid__item > h2 { margin-top: 0; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.asa-research-grid__item > .asa-research-empty { flex: 1; justify-content: center; }
.asa-research-grid .asa-cards { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 781px) { .asa-research-grid { grid-template-columns: minmax(0, 1fr); } }
.asa-publications { list-style: none; margin: 0; padding: 0; }
.asa-publication { padding: 18px 0; border-bottom: 1px solid var(--asa-line); }
.asa-publication:first-child { padding-top: 0; }
.asa-publication__type { margin: 0 0 4px; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asa-green-text); }
.asa-publication__title { margin: 0 0 4px; font-size: 1.08rem; }
.asa-publication__meta { margin: 0; color: var(--asa-muted); font-size: .95rem; }
.asa-publication__text { margin: 8px 0 0; }
.asa-publication__pdf { margin: 6px 0 0; font-weight: 600; }
.asa-partners { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.asa-partners__item, .asa-partners__item > a { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; text-decoration: none; color: inherit; }
.asa-partners__item { padding: 18px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: var(--asa-bg); }
.asa-partners__item > a { width: 100%; }
.asa-partners__item img { max-height: 64px; width: auto; object-fit: contain; }
.asa-partners__initials { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--asa-blue-50); color: var(--asa-blue); font-family: var(--asa-font-head); font-weight: 700; font-size: 1.2rem; }
.asa-partners__name { font-weight: 600; color: var(--asa-ink); }
.asa-partners__type { font-size: .85rem; color: var(--asa-muted); }
.asa-research-ethics { margin-top: 32px; color: var(--asa-muted); font-size: .95rem; }

/* ---------------------------------------------------------------------------
 * Abonnements (V3-5)
 * ------------------------------------------------------------------------ */
.asa-plans__switch { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 24px; border: 1px solid var(--asa-line); border-radius: 999px; background: var(--asa-bg-soft); }
.asa-plans__switch label { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px; cursor: pointer; font-weight: 600; color: var(--asa-muted); }
.asa-plans__switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.asa-plans__switch label:has(input:checked) { background: var(--asa-blue); color: #fff; }
.asa-plans__switch label:has(input:focus-visible) { outline: 3px solid rgba(29, 95, 167, .35); }
.asa-plans__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; align-items: stretch; }
.asa-plan { position: relative; display: flex; flex-direction: column; padding: 28px 24px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius-lg); background: var(--asa-bg); box-shadow: var(--asa-shadow); }
.asa-plan--highlight { border: 2px solid var(--asa-gold); }
.asa-plan__flag { position: absolute; top: -14px; left: 24px; margin: 0; padding: 3px 12px; border-radius: 999px; background: var(--asa-gold); color: var(--asa-ink); font-size: .8rem; font-weight: 700; }
/* Le badge « Recommandée » dépasse au-dessus de la carte : on laisse de l'air sous le titre qui précède la grille. */
.asa-plans__list:has(.asa-plan__flag) { padding-top: 26px; }
.asa-plan__name { margin: 0 0 6px; font-size: 1.35rem; }
.asa-plan__tagline { margin: 0 0 16px; color: var(--asa-muted); font-size: .95rem; min-height: 3em; }
.asa-plan__price { margin: 0 0 16px; }
.asa-plan__price strong { font-family: var(--asa-font-head); font-size: 1.7rem; color: var(--asa-ink); }
.asa-plan__price span { color: var(--asa-muted); }
.asa-plan__saving { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--asa-green-50); color: #0F5A38; font-style: normal; font-size: .8rem; font-weight: 700; }
.asa-plans[data-period="monthly"] .asa-plan__price--yearly, .asa-plans[data-period="yearly"] .asa-plan__price--monthly { display: none; }
.asa-plan { position: relative; }
.asa-plan__from { display: block; color: var(--asa-muted); font-size: .82rem; font-weight: 600; margin-bottom: 2px; }
.asa-plan__price del { color: var(--asa-muted); font-size: 1rem; margin-right: 4px; }
.asa-plan__promo { display: inline-block; margin: 6px 6px 0 0; padding: 2px 8px; border-radius: 999px; background: var(--asa-gold-50, #FBF3E2); color: #7A5A12; font-style: normal; font-size: .8rem; font-weight: 700; }
.asa-plan__note { display: block; margin-top: 4px; color: var(--asa-muted); font-size: .8rem; }
.asa-plan__benefits { margin: 0 0 22px; padding: 0; list-style: none; flex: 1; }
.asa-plan__benefits li { position: relative; padding: 5px 0 5px 26px; font-size: .95rem; }
.asa-plan__benefits li::before { content: ""; position: absolute; left: 2px; top: .75em; width: 12px; height: 7px; border-left: 2.5px solid var(--asa-green); border-bottom: 2.5px solid var(--asa-green); transform: rotate(-45deg); }
.asa-plan-badge { display: inline-flex; align-items: center; gap: 4px; margin: 8px 0 0; padding: .2em .75em; border-radius: 999px; background: linear-gradient(135deg, #E9C874, var(--asa-gold)); color: var(--asa-ink); font-size: .85rem; font-weight: 700; }
.asa-plan-badge--compact { font-size: .75rem; margin-left: 4px; }
.asa-sub-plan { display: flex !important; align-items: flex-start; gap: .6em; padding: 12px 14px; margin: 0 0 10px !important; border: 1px solid var(--asa-line); border-radius: 10px; width: 100%; }
.asa-sub-plan:has(input:checked) { border-color: var(--asa-blue); background: var(--asa-blue-50); }
.asa-sub-compare { margin: 28px 0; }
.asa-sub-compare summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); margin-bottom: 20px; }
.asa-stats th, .asa-stats td { white-space: nowrap; }
/* Espace professionnel : statistiques (chiffres du mois, graphique, détail par mois, prestations). */
.asa-stats-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 0 0 28px; }
.asa-stats-kpi { display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 14px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: #fff; box-shadow: var(--asa-shadow); }
.asa-stats-kpi__label { font-size: .85rem; color: var(--asa-muted); line-height: 1.3; }
.asa-stats-kpi__value { font-family: var(--asa-font-head); font-size: 1.9rem; font-weight: 700; line-height: 1.1; color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.asa-stats-kpi__trend { font-size: .8rem; color: var(--asa-muted); }
.asa-stats-kpi__trend.is-up { color: var(--asa-green-text, #1E7B4A); }
.asa-stats-kpi__trend.is-down { color: #A23B2A; }
.asa-stats-title { margin: 0 0 12px; font-size: 1.05rem; }
.asa-stats-chart { display: grid; grid-template-columns: repeat(var(--asa-cols), minmax(0, 1fr)); gap: 6px; align-items: end; height: 170px; padding: 12px 12px 8px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: var(--asa-bg-soft, #F5F8FC); }
.asa-stats-chart__col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; min-width: 0; }
.asa-stats-chart__value { font-size: .78rem; font-weight: 600; color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.asa-stats-chart__bar { position: relative; display: block; width: min(100%, 34px); height: max(var(--asa-h), 3px); border-radius: 6px 6px 2px 2px; background: #BFD3EA; overflow: hidden; }
.asa-stats-chart__done { position: absolute; left: 0; right: 0; bottom: 0; height: var(--asa-h); background: var(--asa-blue); }
.asa-stats-chart__month { font-size: .72rem; color: var(--asa-muted); white-space: nowrap; }
.asa-stats-legend { display: flex; gap: 16px; margin: 8px 0 28px; font-size: .82rem; color: var(--asa-muted); }
.asa-stats-legend span::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 3px; vertical-align: -1px; }
.asa-stats-legend__req::before { background: #BFD3EA; }
.asa-stats-legend__done::before { background: var(--asa-blue); }
.asa-stats-months { display: grid; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none; }
.asa-stats-month { padding: 14px 16px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: #fff; }
.asa-stats-month__name { margin: 0 0 10px; font-weight: 700; color: var(--asa-ink); }
.asa-stats-month__name::first-letter { text-transform: uppercase; }
.asa-stats-month__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px 14px; margin: 0; }
.asa-stats-month__grid div { display: flex; flex-direction: column; gap: 2px; }
.asa-stats-month__grid dt { font-size: .78rem; color: var(--asa-muted); }
.asa-stats-month__grid dd { margin: 0; font-weight: 700; font-size: 1.05rem; color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.asa-stats-month--empty { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; background: var(--asa-bg-soft, #F5F8FC); color: var(--asa-muted); font-size: .9rem; }
.asa-stats-month--empty .asa-stats-month__name { margin: 0; font-weight: 600; color: var(--asa-text); }
.asa-stats-services { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.asa-stats-services li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name n" "bar bar"; gap: 4px 10px; align-items: center; }
.asa-stats-services__name { grid-area: name; min-width: 0; overflow-wrap: anywhere; }
.asa-stats-services li strong { grid-area: n; font-variant-numeric: tabular-nums; }
.asa-stats-services__bar { grid-area: bar; display: block; width: var(--asa-w); min-width: 4px; height: 8px; border-radius: 999px; background: var(--asa-blue); }
.asa-plans__note { margin-top: 18px; }
.asa-table-scroll { overflow-x: auto; }

/* ---------------------------------------------------------------------------
 * Research Collaboration Hub
 * ------------------------------------------------------------------------ */
.asa-card--researcher { display: flex; gap: 14px; align-items: flex-start; }
.asa-card--researcher .asa-card__initials { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--asa-blue-50); color: var(--asa-blue); font-family: var(--asa-font-head); font-weight: 700; }
/* Photos des profils (maquette validée le 19/10/2026) : chercheurs en rond, initiales en couleur sans photo. */
.asa-rphoto { flex: none; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--asa-blue-50); box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(15, 47, 85, .14); }
.asa-rphoto img { width: 100%; height: 100%; object-fit: cover; }
.asa-rphoto--initials { background: linear-gradient(150deg, var(--asa-green), #0F5A38); color: #fff; font-family: var(--asa-font-head); font-weight: 800; font-size: 1.4rem; }
.asa-rphoto--lg { width: 96px; height: 96px; }
.asa-rphoto--hero { width: 132px; height: 132px; box-shadow: 0 0 0 4px #fff, 0 12px 28px rgba(15, 47, 85, .2); }
.asa-rphoto--hero.asa-rphoto--initials, .asa-rphoto--lg.asa-rphoto--initials { font-size: 2.4rem; }
.asa-rphoto-edit { display: flex; gap: 18px; align-items: center; margin: 0 0 12px; }
.page-hero__row--person { align-items: center; }
@media (max-width: 560px) { .page-hero__row--person { flex-direction: column; align-items: flex-start; } .asa-rphoto--hero { width: 108px; height: 108px; } }
.asa-chips { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.asa-chips li { padding: 4px 11px; border-radius: 999px; background: #fff; border: 1px solid #C9DAEE; color: var(--asa-blue); font-size: .82rem; font-weight: 600; }
.asa-chips--soft { margin: 4px 0 0; }
.asa-chips--soft li { background: #fff; border-color: #D6E2F0; color: var(--asa-ink); font-weight: 500; }
.asa-specs--stacked { grid-template-columns: 1fr; gap: 2px; }
.asa-specs--stacked dt { margin-top: 10px; }
.asa-specs--stacked dt:first-child { margin-top: 0; }
/* Professionnels sans photo validée : initiales blanches sur fond bleu, jamais un cadre pâle vide. */
.asa-card__photo:has(.asa-card__initials), .doctor__photo:has(.asa-card__initials) { background: linear-gradient(150deg, var(--asa-blue), var(--asa-ink)); }
.asa-card__photo .asa-card__initials, .doctor__photo .asa-card__initials { color: #fff; }
/* Établissements : photo des lieux en bandeau, logo en médaillon blanc. */
.asa-cover { position: relative; aspect-ratio: 16 / 9; max-width: 100%; background: linear-gradient(150deg, var(--asa-blue), var(--asa-ink)); }
.asa-cover > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.asa-cover__empty { display: grid; place-items: center; width: 100%; height: 100%; color: rgba(255, 255, 255, .55); }
.asa-cover__empty .asa-icon { width: 64px; height: 64px; }
.asa-medal { position: absolute; left: 16px; bottom: -30px; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: #fff; box-shadow: 0 0 0 3px #fff, 0 8px 18px rgba(15, 47, 85, .22); }
.asa-medal img { width: 82%; height: 82%; object-fit: contain; }
.asa-medal--icon { color: var(--asa-green); }
.asa-medal--icon .asa-icon { width: 32px; height: 32px; }
.asa-card--facility .asa-card__body { padding-top: 40px; }
.est-banner { margin-top: clamp(20px, 3vw, 32px); }
.asa-cover--banner { aspect-ratio: 21 / 8; border-radius: var(--asa-radius-lg); }
.asa-cover--banner > img, .asa-cover--banner .asa-cover__empty { border-radius: var(--asa-radius-lg); }
.asa-medal--lg { left: clamp(16px, 3vw, 32px); bottom: -46px; width: 104px; height: 104px; box-shadow: 0 0 0 4px #fff, 0 12px 26px rgba(15, 47, 85, .22); }
.asa-medal--lg.asa-medal--icon .asa-icon { width: 48px; height: 48px; }
.doctor--facility { padding-top: clamp(56px, 6vw, 72px); }
@media (max-width: 560px) { .asa-cover--banner { aspect-ratio: 16 / 9; } .asa-medal--lg { width: 84px; height: 84px; bottom: -38px; } }
.asa-card--opportunity { display: flex; flex-direction: column; }
.asa-opp--open { background: var(--asa-green-50); color: #0F5A38; }
.asa-opp--filled, .asa-opp--closed { background: #F1F3F6; color: var(--asa-muted); }
.asa-hub-list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 16px; }
.asa-hub-list > li > .asa-cards, .asa-hub-app__head .asa-cards { grid-template-columns: 1fr; margin: 0; }
.asa-hub-app__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.asa-hub-match { margin: 8px 0 0; color: var(--asa-green-text); }
.asa-hub-candidate { margin: 10px 0; }
.asa-hub-candidate summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); }
.asa-hub-list blockquote { margin: 10px 0; padding: 10px 14px; border-left: 3px solid var(--asa-line); background: var(--asa-bg-soft); white-space: pre-wrap; }
.asa-hub-pub { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) 100px minmax(0, 2fr); gap: 0 12px; align-items: end; border-bottom: 1px dashed var(--asa-line); margin-bottom: 10px; }
.asa-hub-pub[hidden] { display: none; }
.asa-inline-form--text { display: inline; } /* bouton-lien dans une phrase (recherche) ; les autres formulaires en ligne gardent leur espacement */
.asa-link-button { background: none; border: 0; padding: 0; color: var(--asa-blue); text-decoration: underline; cursor: pointer; font: inherit; }
.asa-program-lead { margin-top: 24px; }
@media (max-width: 720px) {
	.asa-hub-pub, .asa-hub-app__head { grid-template-columns: 1fr; }
}

/* ==========================================================================
   20. Modernisation « épurée et douce » (même langage visuel que l'application)
   Couche ajoutée en fin de feuille : ombres diffuses plutôt que bordures, coins
   plus arrondis, champs remplis, en-tête translucide compact au défilement,
   apparitions discrètes (désactivées si l'utilisateur réduit les animations).
   ========================================================================== */
:root {
	--asa-radius: 16px;
	--asa-radius-lg: 24px;
	--asa-bg-soft: #F5F8FC;
	--asa-field: #F0F4F9;
	--asa-shadow: 0 1px 3px rgba(15, 47, 85, .05), 0 10px 30px rgba(15, 47, 85, .07);
	--asa-shadow-lg: 0 24px 60px rgba(15, 47, 85, .14);
	--asa-ease: cubic-bezier(.22, 1, .36, 1);
}

body { font-size: 1.05rem; text-rendering: optimizeLegibility; }
h1, h2 { letter-spacing: -.025em; font-weight: 800; }
h3 { letter-spacing: -.01em; }
::selection { background: rgba(29, 95, 167, .16); }

/* Boutons : relief doux, pression visible */
.asa-button, .wp-block-button__link { transition: background-color .25s var(--asa-ease), color .25s, border-color .25s, transform .25s var(--asa-ease), box-shadow .25s var(--asa-ease); }
.asa-button--primary, .wp-block-button__link { box-shadow: 0 8px 20px rgba(29, 95, 167, .22); }
.asa-button--primary:hover, .wp-block-button__link:hover { box-shadow: 0 12px 28px rgba(29, 95, 167, .3); }
.asa-button--accent:hover { box-shadow: 0 12px 28px rgba(212, 169, 79, .45); }
.asa-button:active, .wp-block-button__link:active { transform: translateY(0) scale(.98); }
.asa-button--outline, .is-style-outline .wp-block-button__link { border-color: #C9DAEE; box-shadow: none; }
.asa-button--outline:hover, .is-style-outline .wp-block-button__link:hover { background: var(--asa-blue-50); color: var(--asa-blue); border-color: var(--asa-blue); }

/* En-tête : translucide, flou d'arrière-plan, plus compact après défilement */
/* Le flou est porté par un calque derrière l'en-tête : un backdrop-filter sur l'en-tête lui-même enfermerait le menu mobile
   (position: fixed) dans la hauteur de l'en-tête. */
.site-header { background: transparent; }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px); }
.site-header.is-scrolled { box-shadow: 0 8px 30px rgba(15, 47, 85, .08); border-color: transparent; }
.primary-nav .menu a { border-radius: 10px; transition: background-color .2s, color .2s; }
@media (min-width: 1200px) {
	.site-header__inner { transition: padding .3s var(--asa-ease); }
	.site-logo__mark img { transition: width .3s var(--asa-ease), height .3s var(--asa-ease); }
	.site-header.is-scrolled .site-header__inner { padding-top: 4px; }
	.site-header.is-scrolled .site-logo__mark img { width: 52px; height: 52px; }
	.site-header.is-scrolled .primary-nav { margin-top: 4px; }
	.primary-nav { border-top-color: rgba(220, 228, 238, .7); }
}
@media (max-width: 1199px) {
	.site-nav { background: #fff; }
	.nav-toggle { border-color: transparent; background: var(--asa-bg-soft); }
}

/* Bandeau d'accueil : profondeur et lumière */
.asa-hero { background:
		radial-gradient(900px 500px at 88% 10%, rgba(212, 169, 79, .22) 0, transparent 60%),
		radial-gradient(700px 500px at 0% 100%, rgba(30, 142, 90, .45) 0, transparent 60%),
		linear-gradient(135deg, #1D5FA7 0%, #164B85 55%, #0F3A6B 100%); }
.asa-hero::before {
	content: ""; position: absolute; inset: auto -120px -160px auto; width: 520px; height: 520px; border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, .09), transparent 70%); pointer-events: none;
}
.asa-hero__eyebrow { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .25); font-weight: 600; }
.asa-hero__title { letter-spacing: -.03em; line-height: 1.1; }

/* En-têtes de page : fond doux et discret */
.page-hero { background:
		radial-gradient(600px 240px at 90% 0%, rgba(29, 95, 167, .08), transparent 70%),
		linear-gradient(180deg, var(--asa-blue-50) 0%, var(--asa-bg-soft) 100%);
	border-bottom: 0; }
.page-hero__icon { border-radius: 20px; background: linear-gradient(135deg, var(--asa-blue), #0F3A6B); box-shadow: 0 12px 28px rgba(29, 95, 167, .28); }

/* Cartes : sans bordure, ombre diffuse, élévation au survol */
.asa-card { border-color: transparent; box-shadow: var(--asa-shadow); transition: transform .35s var(--asa-ease), box-shadow .35s var(--asa-ease); }
.asa-card:hover, .asa-card:focus-within { transform: translateY(-4px); box-shadow: var(--asa-shadow-lg); border-color: transparent; }
.asa-card__icon { border-radius: 16px; transition: transform .35s var(--asa-ease); }
.asa-card:hover .asa-card__icon { transform: scale(1.06) rotate(-3deg); }
.asa-card__photo { background: linear-gradient(160deg, var(--asa-blue-50), #DCE8F6); }
.asa-card__tag { font-weight: 700; }
.asa-pillars > .wp-block-column { border: 0; border-top: 0; box-shadow: var(--asa-shadow); position: relative; overflow: hidden; }
.asa-pillars > .wp-block-column::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--asa-green); }
.asa-pillars > .wp-block-column:nth-child(3n+2)::before { background: var(--asa-blue); }
.asa-pillars > .wp-block-column:nth-child(3n)::before { background: var(--asa-gold); }
.asa-values li { border-left: 0; background: #fff; box-shadow: var(--asa-shadow); position: relative; padding-left: 26px; }
.asa-values li::before { content: ""; position: absolute; left: 12px; top: 22px; width: 6px; height: 6px; border-radius: 50%; background: var(--asa-gold); }

/* Panneaux, formulaires, rendez-vous, fiches */
.asa-panel, .asa-form, .asa-status-card { border-color: transparent; box-shadow: var(--asa-shadow); }
.asa-panel--tint { box-shadow: none; }
.asa-field input[type="text"], .asa-field input[type="tel"], .asa-field input[type="email"], .asa-field input[type="password"],
.asa-field input[type="number"], .asa-field input[type="date"], .asa-field select, .asa-field textarea {
	min-height: 52px; border: 1.5px solid transparent; border-radius: 14px; background: var(--asa-field);
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.asa-field input:hover, .asa-field select:hover, .asa-field textarea:hover { background: #E9EFF7; }
.asa-field input:focus, .asa-field select:focus, .asa-field textarea:focus { background: #fff; border-color: var(--asa-blue); outline: 0; box-shadow: 0 0 0 4px rgba(29, 95, 167, .14); }
.asa-appointment { border: 0; border-left: 0; box-shadow: var(--asa-shadow); position: relative; overflow: hidden; }
.asa-appointment::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--asa-gold); }
.asa-appointment--confirmed::before { background: var(--asa-green); }
.asa-appointment--rescheduled::before { background: var(--asa-blue); }
.asa-appointment--cancelled::before { background: var(--asa-line); }
.asa-docs__item { border-color: transparent; background: #fff; box-shadow: var(--asa-shadow); }
.asa-alert { border-radius: 14px; border: 0; }
.asa-notice { border-radius: 16px; }
.asa-badge { font-weight: 700; }

/* Bandeau d'appel à l'action */
.asa-cta__inner { position: relative; overflow: hidden; background: linear-gradient(120deg, #1E8E5A 0%, #0F5A38 100%); }
.asa-cta__inner::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none; }

/* Apparition au défilement (activée par nav.js ; rien n'est masqué sans JavaScript) */
.asa-reveal-ready .asa-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--asa-ease), transform .7s var(--asa-ease); transition-delay: var(--asa-delay, 0ms); }
.asa-reveal-ready .asa-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
	.asa-reveal-ready .asa-reveal { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Avis des patients */
.asa-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: 6px 0 12px; }
.asa-rating__stars { color: var(--asa-gold); letter-spacing: .08em; font-size: 1.1rem; }
.asa-review { margin-top: 10px; }
.asa-review summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); }
.asa-stars label { font-size: 1rem; color: var(--asa-gold-dark); }

/* ==========================================================================
   21. Espace Professionnel sur téléphone (PWA) — décision V1 du 01/10/2026
   ========================================================================== */
.asa-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #C62828; color: #fff; font-size: .72rem; font-weight: 700; line-height: 1; vertical-align: middle; }
.asa-pro-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.asa-pro-top h2 { margin: 0; }
.asa-pro-bell { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--asa-bg-soft); color: var(--asa-ink); flex: none; }
.asa-pro-bell .asa-count { position: absolute; top: -2px; right: -2px; }
.asa-pro-h { display: flex; align-items: center; gap: 8px; margin: 26px 0 10px; font-size: 1.1rem; }
.asa-pro-day { margin: 18px 0 8px; font-weight: 700; color: var(--asa-muted); font-size: .9rem; text-transform: capitalize; }
.asa-pro-empty { text-align: center; padding: 28px 18px; }
.asa-pro-history summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); margin-top: 22px; }

.asa-appt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.asa-appt-card { display: flex; gap: 14px; padding: 14px; background: #fff; border-radius: 16px; box-shadow: var(--asa-shadow); }
.asa-appt-card__date { flex: none; width: 66px; display: grid; align-content: center; justify-items: center; gap: 2px; padding: 10px 4px; border-radius: 12px; background: var(--asa-blue-50); color: var(--asa-blue); text-align: center; }
.asa-appt-card__date strong { font-family: var(--asa-font-head); font-size: 1.15rem; }
.asa-appt-card__date span { font-size: .75rem; font-weight: 600; text-transform: capitalize; }
.asa-appt-card--requested .asa-appt-card__date, .asa-appt-card--to_confirm .asa-appt-card__date { background: var(--asa-gold-50); color: #6B4E12; }
.asa-appt-card__body { min-width: 0; flex: 1; }
.asa-appt-card__name { margin: 0; font-weight: 700; color: var(--asa-ink); }
.asa-appt-card__meta { margin: 2px 0 6px; color: var(--asa-muted); font-size: .9rem; }
.asa-appt-card__tags { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.asa-appt-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; align-items: flex-start; }
.asa-appt-card__actions form { margin: 0; }
.asa-appt-card__actions .asa-button { min-height: 44px; }
.asa-appt-card__decline summary { list-style: none; }
.asa-appt-card__decline summary::-webkit-details-marker { display: none; }
.asa-appt-card__decline[open] { flex-basis: 100%; }
.asa-appt-card__decline form { display: grid; gap: 8px; margin-top: 8px; }
.asa-appt-card__decline textarea { width: 100%; min-height: 70px; padding: .6em .8em; border-radius: 12px; border: 1.5px solid transparent; background: var(--asa-field, #F0F4F9); font: inherit; }

.asa-schedule__rows { display: grid; gap: 10px; }
.asa-schedule__row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.6fr; gap: 8px; margin: 0; padding: 10px; border: 0; border-radius: 14px; background: #fff; box-shadow: var(--asa-shadow); }
.asa-schedule__row:not(:has(.asa-schedule__place)) { grid-template-columns: 1.4fr 1fr 1fr; }
.asa-schedule__row select, .asa-schedule__row input { width: 100%; min-height: 46px; padding: .5em .7em; border-radius: 10px; border: 1.5px solid transparent; background: var(--asa-field, #F0F4F9); font: inherit; color: var(--asa-text); }
.asa-absence { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #fff; border-radius: 14px; box-shadow: var(--asa-shadow); }
.asa-absence form { margin: 0; }
.asa-absence-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 12px; align-items: end; margin-top: 12px; }

.asa-notif-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.asa-notif { padding: 14px 16px; background: #fff; border-radius: 14px; box-shadow: var(--asa-shadow); }
.asa-notif.is-unread { border-left: 4px solid var(--asa-blue); }
.asa-notif__title { margin: 0; font-weight: 700; color: var(--asa-ink); }
.asa-notif__body { margin: 2px 0 4px; }
.asa-notif__date { margin: 0; font-size: .8rem; color: var(--asa-muted); }

.asa-more-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.asa-more-list a { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 16px; border-radius: 14px; background: #fff; box-shadow: var(--asa-shadow); color: var(--asa-ink); font-weight: 600; text-decoration: none; }

.asa-pro-tabs { display: none; }
@media (max-width: 899px) {
	.asa-pro:has(.asa-pro-tabs) .asa-account__nav { display: none; }
	.asa-pro:has(.asa-pro-tabs) { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
	/* Barre d'onglets fixe : le bas du footer ne passe jamais dessous. */
	body:has(.asa-pro-tabs) .site-footer { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
	.asa-pro-tabs {
		display: grid; grid-template-columns: repeat(5, 1fr);
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
		background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
		box-shadow: 0 -6px 24px rgba(15, 47, 85, .1);
	}
	.asa-pro-tabs a { position: relative; display: grid; justify-items: center; gap: 2px; padding: 6px 2px; border-radius: 12px; color: var(--asa-muted); font-size: .7rem; font-weight: 600; text-decoration: none; }
	.asa-pro-tabs a .asa-icon { width: 24px; height: 24px; }
	.asa-pro-tabs a[aria-current] { color: var(--asa-blue); background: var(--asa-blue-50); }
	.asa-pro-tabs a .asa-count { position: absolute; top: 0; right: calc(50% - 22px); }
	.asa-schedule__row, .asa-schedule__row:not(:has(.asa-schedule__place)) { grid-template-columns: 1fr 1fr; }
	.asa-schedule__row .asa-schedule__day, .asa-schedule__row .asa-schedule__place { grid-column: 1 / -1; }
	.asa-appt-card__actions > form, .asa-appt-card__actions > details { flex: 1 1 auto; }
	.asa-appt-card__actions .asa-button { width: 100%; }
}
/* Installée sur l'écran d'accueil : allure d'application (en-tête réduit, sans pied de page). */
@media (display-mode: standalone) {
	.topbar, .site-footer, .site-header__cta, .site-header__quote, .breadcrumbs, .page-hero__intro { display: none !important; }
	.page-hero { padding: 12px 0 8px; }
	.page-hero__title { font-size: 1.3rem; margin: 0; }
}
.asa-install { position: fixed; left: 12px; right: 12px; bottom: calc(86px + env(safe-area-inset-bottom, 0px)); z-index: 95; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; background: #fff; box-shadow: 0 18px 50px rgba(15, 47, 85, .2); }
.asa-install[hidden] { display: none; }
.asa-install [hidden] { display: none !important; } /* « Installer » : seulement si le navigateur propose l'installation (jamais sur iPhone). */
.asa-install p a { display: inline-block; margin-top: 2px; color: var(--asa-blue); font-weight: 600; }

/* Guide « Installer l'application » */
.asa-install-guide__lead { max-width: 62ch; color: var(--asa-text); }
.asa-install-guide__tabs { display: none; }
.asa-install-guide.is-tabbed .asa-install-guide__tabs { display: inline-flex; gap: 4px; padding: 4px; margin: 6px 0 22px; border-radius: 999px; background: var(--asa-bg-soft); border: 1px solid var(--asa-line); }
.asa-install-guide__tabs button { min-height: 40px; padding: 0 22px; border: 0; border-radius: 999px; background: transparent; color: var(--asa-muted); font: inherit; font-weight: 600; cursor: pointer; transition: background .2s var(--asa-ease), color .2s var(--asa-ease); }
.asa-install-guide__tabs button[aria-selected="true"] { background: #fff; color: var(--asa-blue); box-shadow: 0 1px 4px rgba(15, 47, 85, .12); }
.asa-install-guide.is-tabbed .asa-install-guide__device { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.asa-install-guide__panel[hidden] { display: none; }
.asa-install-guide__steps { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 14px; }
.asa-install-guide__step { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 20px; align-items: center; padding: 16px 20px; border-radius: var(--asa-radius); background: #fff; border: 1px solid var(--asa-line); box-shadow: var(--asa-shadow); }
.asa-install-guide__phone { width: 132px; height: auto; display: block; }
.asa-install-guide__num { margin: 0 0 2px; color: var(--asa-gold-dark); font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.asa-install-guide__step h4 { margin: 0 0 6px; color: var(--asa-ink); font-size: 1.05rem; }
.asa-install-guide__step p { margin: 0; }
.asa-install-guide__address { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px !important; }
.asa-install-guide__address code { flex: 1 1 220px; min-width: 0; max-width: 100%; padding: 8px 12px; border-radius: 8px; background: var(--asa-bg-soft); color: var(--asa-ink); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.asa-install-guide__address .asa-button { min-height: 38px; padding: .35em 1em; font-size: .88rem; }
.asa-install-guide { max-width: 860px; }
.asa-install-guide__main { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; align-items: center; margin-bottom: 22px; padding: 28px; border-radius: var(--asa-radius-lg); background: #fff; border: 1px solid var(--asa-line); box-shadow: var(--asa-shadow); }
.asa-install-guide__player { position: relative; max-width: 280px; }
.asa-install-guide__video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; border-radius: 22px; background: var(--asa-ink); box-shadow: var(--asa-shadow-lg); }
/* 2. Bouton Lecture aux couleurs de la marque, dans la zone libre de l'image d'ouverture. */
.asa-install-guide__play { position: absolute; left: 50%; top: 63%; width: 84px; height: 84px; margin: -42px 0 0 -42px; display: grid; place-items: center; border: 4px solid var(--asa-gold); border-radius: 50%; background: #fff; color: var(--asa-blue); box-shadow: 0 10px 30px rgba(15, 47, 85, .35); cursor: pointer; transition: transform .2s var(--asa-ease), box-shadow .2s var(--asa-ease); }
.asa-install-guide__play:hover, .asa-install-guide__play:focus-visible { transform: scale(1.06); box-shadow: 0 14px 36px rgba(15, 47, 85, .45); }
.asa-install-guide__play svg { width: 34px; height: 34px; margin-left: 5px; }
.asa-install-guide__play[hidden] { display: none; }
.asa-install-guide__short { margin: 0 0 16px; padding-left: 1.4em; display: grid; gap: 10px; font-size: 1.08rem; font-weight: 600; color: var(--asa-ink); }
.asa-install-guide__short li::marker { color: var(--asa-gold-dark); font-weight: 700; }
.asa-install-guide__details { margin: 4px 0 26px; }
.asa-install-guide__details summary { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px; border: 1.5px solid #C9DAEE; border-radius: 999px; background: #fff; color: var(--asa-blue); font-weight: 600; cursor: pointer; list-style: none; transition: background .2s var(--asa-ease), border-color .2s var(--asa-ease); }
.asa-install-guide__details summary::-webkit-details-marker { display: none; }
.asa-install-guide__details summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s var(--asa-ease); }
.asa-install-guide__details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.asa-install-guide__details summary:hover { background: var(--asa-blue-50); border-color: var(--asa-blue); }
.asa-install-guide__details[open] summary { margin-bottom: 16px; }
/* 4. Conseil sous les gestes : taille normale. */
.asa-install-guide__tip { margin: 0; font-size: .98rem; color: var(--asa-text); }
@media (max-width: 700px) {
	.asa-install-guide__main { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 18px; }
	.asa-install-guide__player { max-width: 220px; justify-self: center; width: 100%; } /* 1. carte vidéo moins haute */
	.asa-install-guide__details summary { min-height: 38px; padding: 0 14px; font-size: .92rem; } /* 5. bouton secondaire compact */
	.asa-install-guide__address .asa-button { flex: 1 1 100%; justify-content: center; }
}
.asa-install-guide { overflow-wrap: break-word; }
@media (max-width: 600px) {
	.asa-install-guide__step { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 14px; align-items: start; }
	.asa-install-guide__phone { width: 88px; }
	.asa-install-guide.is-tabbed .asa-install-guide__tabs { display: flex; }
	.asa-install-guide__tabs button { flex: 1; }
}
.asa-install img { border-radius: 10px; flex: none; }
.asa-install p { margin: 0; flex: 1; font-size: .88rem; line-height: 1.35; }
.asa-install p strong { display: block; color: var(--asa-ink); }
.asa-install .asa-button { min-height: 40px; padding: .5em 1em; }
.asa-install__close { border: 0; background: none; font-size: 1.5rem; line-height: 1; color: var(--asa-muted); padding: 4px 6px; cursor: pointer; }

/* ---------------------------------------------------------------------------
   22. Domaines d'expertise (recherche) et grille des formules
   ------------------------------------------------------------------------ */
/* Domaines d'expertise : grille régulière (3 / 2 / 1 colonnes), cartes de même hauteur,
   une seule couleur d'accent, dernière carte centrée quand la rangée est incomplète.
   Descriptions longues (3 à 4 phrases) : la grille déborde la colonne de texte (1120 px), titre et introduction restent dans la colonne.
   Sélecteurs préfixés par .entry-content .asa-cards--domains : ils doivent passer devant
   les listes de cartes éditoriales (.entry-content .asa-cards li), définies plus bas. */
.entry-content > .asa-section-lead { margin-block: -.3em 28px; color: var(--asa-muted); font-size: 1.02rem; line-height: 1.6; }
.entry-content .asa-cards.asa-cards--domains { grid-template-columns: minmax(0, 1fr); gap: 20px; width: 100%; max-width: 1120px; margin: 0 auto clamp(40px, 6vw, 64px); }
.entry-content .asa-cards--domains > .asa-card--domain { padding: 24px 22px; border: 1px solid var(--asa-line); border-top: 0; border-radius: var(--asa-radius-lg); background: #fff; box-shadow: var(--asa-shadow); }
.entry-content .asa-cards--domains > .asa-card--domain::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--asa-blue); }
.entry-content .asa-cards--domains .asa-card__icon { width: 56px; height: 56px; margin-bottom: 16px; border-radius: 16px; background: var(--asa-blue-50); color: var(--asa-blue); }
.entry-content .asa-cards--domains .asa-card__icon .asa-icon { width: 28px; height: 28px; }
.entry-content .asa-cards--domains .asa-card__title { margin: 0 0 6px; font-size: 1.04rem; line-height: 1.3; }
.entry-content .asa-cards--domains .asa-card__text { font-size: .93rem; line-height: 1.6; }
/* Cartes informatives (pas des liens) : pas d'élévation au survol, qui laisserait croire à une carte décalée */
.entry-content .asa-cards--domains > .asa-card--domain:hover,
.entry-content .asa-cards--domains > .asa-card--domain:focus-within { transform: none; box-shadow: var(--asa-shadow); border-color: var(--asa-line); }
.entry-content .asa-cards--domains > .asa-card--domain:hover .asa-card__icon { transform: none; }
@media (min-width: 600px) and (max-width: 899px) {
	.entry-content .asa-cards.asa-cards--domains { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 22px 20px; }
	.entry-content .asa-cards--domains > .asa-card--domain { grid-column: span 2; }
	.entry-content .asa-cards--domains > .asa-card--domain:last-child:nth-child(2n+1) { grid-column: 2 / span 2; }
}
@media (min-width: 900px) {
	.entry-content .asa-cards.asa-cards--domains { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 24px 20px; }
	.entry-content .asa-cards--domains > .asa-card--domain { grid-column: span 2; }
	.entry-content .asa-cards--domains > .asa-card--domain:last-child:nth-child(3n+1) { grid-column: 3 / span 2; }
	.entry-content .asa-cards--domains > .asa-card--domain:nth-last-child(2):nth-child(3n+1) { grid-column: 2 / span 2; }
}
@media (max-width: 599px) {
	.entry-content .asa-cards--domains > .asa-card--domain { padding: 20px 18px; }
	.entry-content .asa-cards--domains .asa-card__icon { width: 48px; height: 48px; margin-bottom: 12px; }
	.entry-content .asa-cards--domains .asa-card__icon .asa-icon { width: 24px; height: 24px; }
}

/* Formules : les offres côte à côte sur grand écran, même dans une page de texte étroite */
.entry-content > .asa-plans { width: 100%; max-width: 1120px; }
@media (min-width: 900px) {
	.asa-plans__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
	.asa-plans__list:has(> li:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	/* Cinq formules (établissements) : 3 puis 2 cartes centrées. */
	.asa-plans__list:has(> li:nth-child(5)) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.asa-plans__list:has(> li:nth-child(5)) > li { grid-column: span 2; }
	.asa-plans__list:has(> li:nth-child(5)):not(:has(> li:nth-child(6))) > li:nth-child(4) { grid-column: 2 / span 2; }
	.asa-plan { padding: 30px 24px 26px; }
	.asa-plan--highlight { transform: translateY(-8px); box-shadow: var(--asa-shadow-lg); }
}

/* Alertes sur téléphone (Web Push) dans l'Espace Professionnel */
.asa-push { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 18px; padding: 16px 18px; border-radius: var(--asa-radius); background: var(--asa-blue-50); }
.asa-push__text { flex: 1 1 240px; margin: 0; font-size: .95rem; color: var(--asa-ink); }
.asa-push .asa-button { min-height: 42px; }

/* Orientation « Je ne sais pas quel professionnel consulter » */
.asa-guide { margin: 8px 0 20px; padding: clamp(16px, 3vw, 24px); border-radius: var(--asa-radius-lg); background: linear-gradient(180deg, var(--asa-blue-50), #fff); box-shadow: var(--asa-shadow); }
.asa-guide .asa-guide__title { margin: 0 0 6px; font-size: 1.4rem; } /* plus fort que les titres du contenu */
.asa-guide__lead { max-width: 80ch; margin: 0 0 12px; color: var(--asa-muted); }
.asa-guide__draft { margin: 0 0 12px; padding: 8px 12px; border-radius: 10px; background: var(--asa-gold-50); color: var(--asa-goldDark, #6B4E12); font-size: .9rem; font-weight: 600; }
.asa-guide__q { margin: 12px 0 8px; font-size: 1.05rem; }
.asa-guide__choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.asa-guide__choices--small { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
/* Choix du parcours : cartes bien visibles (demande du 19/10/2026 : « trop plat »), icône par tranche d'âge. */
.asa-guide__choice {
	display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 12px 16px;
	border: 2px solid #C9DAEE; border-radius: 16px; background: #fff; color: var(--asa-ink);
	font: inherit; font-size: 1.02rem; font-weight: 700; line-height: 1.3; text-align: left; cursor: pointer;
	box-shadow: 0 2px 6px rgba(15, 47, 85, .08);
	transition: border-color .2s, box-shadow .2s, transform .2s, background-color .2s;
}
.asa-guide__label { flex: 1; min-width: 0; }
.asa-guide__sub { display: block; margin-top: 2px; font-size: .86rem; font-weight: 500; color: var(--asa-muted); }
.asa-guide__choice:hover .asa-guide__sub { color: var(--asa-ink); }
.asa-guide__choices--icons .asa-guide__label { font-size: 1.1rem; }
.asa-guide__chev { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--asa-blue-50); color: var(--asa-blue); font-size: 1.3rem; line-height: 1; transition: background-color .2s, color .2s, transform .2s; }
.asa-guide__choice:hover, .asa-guide__choice:focus-visible { border-color: var(--asa-blue); background: var(--asa-blue-50); box-shadow: 0 6px 18px rgba(29, 95, 167, .18); transform: translateY(-2px); outline: none; }
.asa-guide__choice:hover .asa-guide__chev, .asa-guide__choice:focus-visible .asa-guide__chev { background: var(--asa-blue); color: #fff; transform: translateX(2px); }
.asa-guide__choice:focus-visible { box-shadow: 0 0 0 4px rgba(29, 95, 167, .3); }
.asa-guide__choice[aria-pressed="true"] { border-color: var(--asa-blue); background: var(--asa-blue); color: #fff; }
.asa-guide__choices--icons .asa-guide__choice { min-height: 76px; }
.asa-guide__icon { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; }
.asa-guide__svg { width: 28px; height: 28px; }
.asa-guide__icon--infant { background: #FDECEF; color: #B83B5E; }
.asa-guide__icon--child { background: var(--asa-green-50); color: #17724A; }
.asa-guide__icon--adult { background: var(--asa-blue-50); color: var(--asa-blue); }
.asa-guide__icon--senior { background: #FBF3E2; color: #8A6417; }
@media (max-width: 600px) { .asa-guide__choices--icons { grid-template-columns: 1fr; } .asa-guide__choices--icons .asa-guide__choice { min-height: 68px; } }
@media (prefers-reduced-motion: reduce) { .asa-guide__choice, .asa-guide__chev { transition: none; } .asa-guide__choice:hover { transform: none; } }
.asa-guide__flags { margin: 0 0 16px; padding: 14px 18px 14px 34px; border-radius: 14px; background: #fff; border: 1px solid var(--asa-line); }
.asa-guide__flags li { margin: 4px 0; }
.asa-guide__row { display: flex; flex-wrap: wrap; gap: 10px; }
.asa-guide__yes { background: #fff; color: var(--asa-danger, #B3261E); border: 2px solid var(--asa-danger, #B3261E); }
.asa-guide__back { display: inline-block; margin-top: 16px; padding: 6px 0; border: 0; background: none; color: var(--asa-blue); font: inherit; font-weight: 600; cursor: pointer; }
.asa-guide__emergency { padding: 18px 20px; border-radius: 14px; background: #FDECEC; border-left: 5px solid #B3261E; color: #5A1410; }
.asa-guide__emergency h3 { margin: 0 0 6px; color: #B3261E; }
.asa-guide__numbers { font-weight: 700; }
.asa-guide__soon { padding: 12px 16px; border-radius: 12px; background: var(--asa-gold-50); font-weight: 600; }
.asa-guide__results { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.asa-guide__result { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--asa-line); color: var(--asa-ink); font-weight: 700; text-decoration: none; }
.asa-guide__result span { color: var(--asa-blue); font-weight: 600; font-size: .92rem; }
.asa-guide__result:hover { border-color: var(--asa-blue); text-decoration: none; }
.asa-guide__disclaimer { margin: 12px 0 0; color: var(--asa-muted); font-size: .88rem; }
.asa-guide__error { color: #B3261E; }

/* Secrétariat du professionnel */
.asa-pro-delegate { margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: var(--asa-blue-50); color: var(--asa-ink); font-weight: 600; font-size: .95rem; }
.asa-team-list { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.asa-team-member { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.asa-team-member form { margin: 0; }

/* Bande « Urgence ? » sous le bandeau d'accueil : visible sans alarmer */

/* Bandeau d'accueil (maquette 2026-10) : bleu profond, croix en verre, carte « Urgence ? » */
.asa-hero { background:
		radial-gradient(620px 420px at 0% 105%, rgba(26, 178, 170, .55) 0, transparent 65%),
		radial-gradient(900px 620px at 92% 25%, rgba(66, 160, 245, .45) 0, transparent 60%),
		linear-gradient(120deg, #0E3A8C 0%, #1452B8 50%, #1C6FD1 100%); }
.asa-hero::before, .asa-hero::after { display: none; }
.asa-hero__inner { padding-block: clamp(40px, 6vw, 80px) clamp(44px, 6vw, 76px); }
.asa-hero__title { max-width: 12.6em; text-wrap: pretty; font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 800; line-height: 1.04; letter-spacing: -.035em; margin-bottom: .4em; text-shadow: 0 2px 18px rgba(8, 30, 80, .25); }
.asa-hero__subtitle { max-width: 48ch; margin-bottom: 26px; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.6; color: rgba(255, 255, 255, .92); }
.asa-hero__actions .asa-button { min-height: 50px; padding-inline: 1.9em; border-radius: 999px; font-size: 1rem; font-weight: 700; }
.asa-hero__actions .asa-button--accent { background: #F4BE4F; box-shadow: 0 10px 30px rgba(244, 190, 79, .45); }
.asa-hero__actions .asa-button--ghost { background: transparent; border: 2px solid rgba(255, 255, 255, .85); min-width: 210px; justify-content: center; }
.asa-hero__actions .asa-button--ghost:hover { background: #fff; color: #1452B8; }

.asa-emergency-strip { display: flex; align-items: center; gap: 20px; max-width: 640px; margin: 26px 0 0; padding: 14px 22px 14px 18px; border-radius: 20px;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .28); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 18px 40px rgba(8, 30, 80, .18); color: #fff; }
.asa-emergency-strip__icon { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 2px solid rgba(255, 120, 110, .75); background: rgba(255, 110, 100, .16); color: #FF8F86; position: relative; margin-right: 20px; }
.asa-emergency-strip__icon::after { content: ""; position: absolute; right: -21px; top: -4px; bottom: -4px; width: 1px; background: rgba(255, 140, 130, .55); }
.asa-emergency-strip__icon .asa-icon { width: 22px; height: 22px; }
.asa-emergency-strip__body { min-width: 0; }
.asa-emergency-strip__body p { margin: 0; font-size: .93rem; line-height: 1.45; color: rgba(255, 255, 255, .9); }
.asa-emergency-strip__body > p:first-child strong { color: #FF8F86; font-size: 1.1rem; font-weight: 800; margin-right: .15em; }
.asa-emergency-strip__numbers { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin-top: 8px !important; }
.asa-emergency-strip__numbers a { white-space: nowrap; display: inline-flex; align-items: baseline; gap: .5em; color: #fff; text-decoration: none; font-weight: 600; font-size: .98rem; padding-right: 22px; margin-right: 22px; border-right: 1px solid rgba(255, 255, 255, .4); }
.asa-emergency-strip__numbers a:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.asa-emergency-strip__numbers a strong { font-size: 1.2rem; font-weight: 800; }
.asa-emergency-strip__numbers a:hover span { text-decoration: underline; }

.asa-hero__art { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.asa-hero__ring { position: absolute; top: 50%; right: -14%; width: min(54vw, 720px); aspect-ratio: 1; transform: translateY(-48%); border-radius: 50%; border: 1.5px solid rgba(130, 200, 255, .5); }
.asa-hero__ring--inner { right: -6%; width: min(36vw, 480px); border-color: rgba(130, 200, 255, .35); background: radial-gradient(circle, rgba(255, 255, 255, .06), transparent 70%); }
.asa-hero__cross { position: absolute; top: 50%; right: 2%; width: min(24vw, 340px); aspect-ratio: 1; transform: translateY(-46%);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%2368B8FF' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%231E6FD6' stop-opacity='.35'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M38 6h24a5 5 0 0 1 5 5v22h22a5 5 0 0 1 5 5v24a5 5 0 0 1-5 5H67v22a5 5 0 0 1-5 5H38a5 5 0 0 1-5-5V67H11a5 5 0 0 1-5-5V38a5 5 0 0 1 5-5h22V11a5 5 0 0 1 5-5z' fill='url(%23g)' stroke='%2390CCFF' stroke-opacity='.7' stroke-width='.6'/%3E%3C/svg%3E") no-repeat center / contain;
	filter: drop-shadow(0 20px 40px rgba(8, 30, 80, .35)); }
.asa-hero__dots { position: absolute; top: 8%; right: 4%; width: 130px; height: 100px; background: radial-gradient(circle, rgba(255, 255, 255, .45) 2px, transparent 2.5px) 0 0 / 26px 26px; }
.asa-hero__dots--low { top: auto; bottom: 18%; right: auto; left: 61%; width: 140px; height: 120px; background-size: 30px 30px; opacity: .8; }
@media (max-width: 1100px) {
	.asa-hero__cross { right: -10%; opacity: .55; }
	.asa-hero__dots--low { display: none; }
}
@media (max-width: 760px) {
	.asa-hero__ring, .asa-hero__dots { display: none; }
	.asa-hero__cross { top: 6%; right: -22%; width: 70vw; transform: none; opacity: .22; }
	.asa-hero__actions .asa-button { width: 100%; justify-content: center; }
	.asa-emergency-strip { gap: 14px; padding: 14px 16px; }
	.asa-emergency-strip__icon { width: 46px; height: 46px; margin-right: 0; }
	.asa-emergency-strip__icon::after { display: none; }
	.asa-emergency-strip { align-items: flex-start; }
	.asa-emergency-strip__body p { font-size: .95rem; }
	.asa-emergency-strip__numbers { flex-direction: column; align-items: flex-start; }
	.asa-emergency-strip__numbers a { border-right: 0; padding-right: 0; margin-right: 0; font-size: .98rem; }
}
.asa-plan__fee { margin: -6px 0 16px; padding: 8px 12px; border-radius: 10px; background: var(--asa-blue-50); color: var(--asa-blue); font-size: .88rem; font-weight: 600; }

/* Offres d'emploi santé */
.asa-job-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.asa-card--featured { border-color: var(--asa-gold); box-shadow: 0 0 0 2px var(--asa-gold-50); }
.asa-jobs__recruit { margin-top: 28px; }

/* Accueil : dernières offres d'emploi */
.asa-latest-jobs { margin-top: 28px; }
.asa-latest-jobs__more { margin: 24px 0 0; text-align: center; }

/* Bannière de consentement aux cookies */
.asa-consent { position: fixed; inset: auto 16px 16px 16px; z-index: 9999; display: flex; justify-content: center; pointer-events: none; }
.asa-consent[hidden] { display: none; }
.asa-consent__box { pointer-events: auto; width: 100%; max-width: 720px; background: #fff; color: var(--asa-ink); border: 1px solid var(--asa-line); border-radius: var(--asa-radius); box-shadow: 0 18px 50px rgba(15, 47, 85, .22); padding: 20px 22px; animation: asa-consent-in .35s ease-out; }
.asa-consent__title { margin: 0 0 6px; font-weight: 700; font-size: 1.05rem; }
.asa-consent__text { margin: 0; font-size: .95rem; line-height: 1.55; }
.asa-consent__text a { white-space: nowrap; }
.asa-consent__details { margin: 14px 0 0; display: grid; gap: 10px; padding: 12px 14px; background: var(--asa-blue-50, #EEF4FB); border-radius: 10px; }
.asa-consent__details[hidden] { display: none; }
.asa-consent__option { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.45; cursor: pointer; }
.asa-consent__option input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--asa-blue); }
.asa-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.asa-consent__actions .asa-button { flex: 1 1 auto; justify-content: center; }
.asa-consent__actions .asa-button[hidden] { display: none; }
@media (max-width: 600px) {
	.asa-consent { inset: auto 10px 10px 10px; }
	.asa-consent__box { max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); overflow-y: auto; padding: 16px; }
	.asa-consent__text, .asa-consent__option { font-size: .88rem; }
	.asa-consent__actions { gap: 8px; }
	.asa-consent__actions .asa-button { flex-basis: calc(50% - 4px); padding-inline: 10px; }
	.asa-consent__actions [data-consent="accept"], .asa-consent__actions [data-consent="save"] { flex-basis: 100%; }
}
@keyframes asa-consent-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .asa-consent__box { animation: none; } }

/* Menu principal : espacement régulier, centrage vertical, état actif discret, « Rejoindre l'Alliance » mis en valeur */
.primary-nav .menu-item--highlight > a { font-weight: 600; color: var(--asa-blue-dark); }
.primary-nav .menu-item--highlight > a::before { content: ""; flex: none; width: 6px; height: 6px; margin-right: .5em; border-radius: 50%; background: var(--asa-gold); }
.primary-nav .menu-item--highlight > a { display: flex; align-items: center; }
.site-header:not(.is-scrolled) { border-bottom-color: rgba(15, 47, 85, .08); box-shadow: 0 6px 16px -14px rgba(15, 47, 85, .35); }
@media (min-width: 1200px) {
	.primary-nav { --asa-nav-pad: .75em; }
	.primary-nav .menu { justify-content: space-between; gap: 0; padding: 4px 0 7px; } /* espace sous l'entrée active, avant le hero */
	.primary-nav .menu > li:first-child { margin-left: calc(-1 * var(--asa-nav-pad)); }
	.primary-nav .menu > li:last-child { margin-right: calc(-1 * var(--asa-nav-pad)); }
	.primary-nav .menu > li > a { position: relative; display: flex; align-items: center; min-height: 40px; padding: 0 var(--asa-nav-pad); line-height: 1.2; }
	/* État actif : trait doré arrondi qui épouse les coins de l'entrée (forme appréciée, conservée). */
	.primary-nav .current-menu-item > a,
	.primary-nav .current_page_item > a,
	.primary-nav .current-menu-ancestor > a { box-shadow: inset 0 -3px 0 var(--asa-gold); border-radius: 10px; color: var(--asa-blue); }
}
@media (min-width: 1200px) {
	/* 9 entrées (dont « Rejoindre l'Alliance » et « Alliance Établissements ») sur une seule ligne. */
	.primary-nav { --asa-nav-pad: .42em; }
	.primary-nav .menu > li > a { font-size: .93rem; }
}

/* Vidéo de présentation du projet (page « À propos ») */
.asa-presentation-video { margin: 8px 0 32px; }
.asa-presentation-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--asa-radius); background: #0f2f55; box-shadow: var(--asa-shadow); }
.asa-presentation-video figcaption { margin-top: 10px; font-size: .92rem; color: var(--asa-muted, #5b6b80); text-align: center; }

/* Photo professionnelle : exigences affichées sous le champ d'envoi */
.asa-docs__rules { margin: 10px 0 4px 36px; padding: 12px 14px; border-radius: 12px; background: #FBF6EA; border: 1px solid #EAD9AE; font-size: .92rem; }
.asa-docs__rules p { margin: 0 0 6px; }
.asa-docs__rules ul { margin: 0; padding-left: 18px; }
.asa-docs__rules li { margin: 2px 0; }
@media (max-width: 600px) { .asa-docs__rules { margin-left: 0; } }

/* Titre tenu sur une seule ligne (titre de la vidéo de la page « À propos ») : la taille suit la largeur de la colonne. */
.entry-content:has(> .asa-heading-one-line) { container-type: inline-size; }
.asa-heading-one-line { white-space: nowrap; font-size: min(clamp(1.55rem, 3vw, 2.15rem), 100cqi / 23, 760px / 23); }
.entry-content > .asa-eyebrow { margin-top: 2.4em; margin-bottom: .3em; }
.entry-content > .asa-eyebrow + h2 { margin-top: 0; }

/* Cartes « titre + description » (page « À propos » : objectifs numérotés, valeurs) */
.entry-content .asa-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 760px; padding: 0; margin: 1.2em auto 0; list-style: none; counter-reset: asa-card; }
.entry-content .asa-cards li { position: relative; display: flex; flex-direction: column; margin: 0; padding: 24px 24px 22px; background: #fff; border: 1px solid var(--asa-line); border-radius: 18px; box-shadow: 0 1px 2px rgba(15, 47, 85, .04), 0 10px 28px rgba(15, 47, 85, .06); transition: transform .25s var(--asa-ease, ease), box-shadow .25s var(--asa-ease, ease), border-color .25s; }
.entry-content .asa-cards li::marker { content: ""; }
.entry-content .asa-cards li:hover { transform: translateY(-3px); border-color: #C9D7E8; box-shadow: 0 2px 4px rgba(15, 47, 85, .05), 0 16px 36px rgba(15, 47, 85, .10); }
.entry-content .asa-cards strong { display: block; margin-bottom: 8px; font-family: var(--asa-font-head); font-size: 1.06rem; font-weight: 700; line-height: 1.35; color: var(--asa-ink); }
.entry-content .asa-cards li > span { color: var(--asa-muted); font-size: .97rem; line-height: 1.6; }
/* Objectifs : une carte par ligne, numéro à gauche, texte à droite (chaque carte suit son propre contenu). */
.entry-content .asa-cards--numbered { grid-template-columns: minmax(0, 1fr); gap: 14px; }
.entry-content .asa-cards--numbered li { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 20px; align-items: start; padding: 22px 26px; }
.entry-content .asa-cards--numbered li::before { counter-increment: asa-card; content: counter(asa-card, decimal-leading-zero); grid-row: 1 / span 2; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #EAF1FA; color: var(--asa-blue); font-family: var(--asa-font-head); font-weight: 800; font-size: 1rem; letter-spacing: .02em; }
.entry-content .asa-cards--numbered strong { margin-bottom: 4px; }
/* Valeurs : deux colonnes, toutes les cartes à la même hauteur. */
.entry-content .asa-cards--accent { grid-auto-rows: 1fr; }
.entry-content .asa-cards--accent li::before { content: ""; display: block; width: 36px; height: 4px; margin-bottom: 18px; border-radius: 2px; background: var(--asa-gold); }
@media (max-width: 640px) {
	.entry-content .asa-cards { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.entry-content .asa-cards li { padding: 20px 20px 18px; }
	.entry-content .asa-cards--numbered li { grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; padding: 18px; }
	.entry-content .asa-cards--numbered li::before { width: 40px; height: 40px; border-radius: 12px; font-size: .92rem; }
	.entry-content .asa-cards--accent { grid-auto-rows: auto; }
}
@media (prefers-reduced-motion: reduce) { .entry-content .asa-cards li, .entry-content .asa-cards li:hover { transition: none; transform: none; } }
.entry-content > .asa-cards + .wp-block-buttons { margin-top: 48px; }
/* Pied de page et page Contact : une adresse e-mail reste toujours sur une seule ligne ; dans une colonne étroite,
   sa taille diminue juste assez pour tenir (la plus longue, rendezvous@…, mesure environ 17,8 em en Inter). */
.site-footer__grid > * { min-width: 0; }
.site-footer__contact li > span, .asa-contact__item > span:last-child { flex: 1 1 0; min-width: 0; container-type: inline-size; overflow-wrap: break-word; }
.site-footer__contact a[href^="mailto:"], .asa-contact__item a[href^="mailto:"] { white-space: nowrap; font-size: min(1em, 100cqi / 18.5); }
/* Titre de la vidéo : sur téléphone, version courte (« Découvrez le projet ASA ») en taille normale. */
@media (max-width: 640px) {
	.asa-heading-one-line .asa-title-more { display: none; }
	.asa-heading-one-line { font-size: min(clamp(1.55rem, 3vw, 2.15rem), 100cqi / 13); }
}

/* Espace équipe (/espace-equipe/) : file des dossiers, fiche, grille, décision */
.asa-team-login { max-width: 560px; }
.asa-team-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.asa-team-tabs a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--asa-line); border-radius: 999px; background: #fff; color: var(--asa-ink); font-weight: 600; font-size: .92rem; text-decoration: none; }
.asa-team-tabs a[aria-current="page"] { background: var(--asa-blue); border-color: var(--asa-blue); color: #fff; }
.asa-team-tabs__n { min-width: 22px; padding: 0 6px; border-radius: 999px; background: rgba(15, 47, 85, .08); font-size: .8rem; text-align: center; font-variant-numeric: tabular-nums; }
.asa-team-tabs a[aria-current="page"] .asa-team-tabs__n { background: rgba(255, 255, 255, .22); }
.asa-team-empty { padding: 22px; border: 1px dashed var(--asa-line); border-radius: var(--asa-radius); color: var(--asa-muted); background: #fff; }
.asa-team-queue { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.asa-team-queue__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name pill" "meta pill"; gap: 2px 14px; align-items: center; padding: 14px 18px; border: 1px solid var(--asa-line); border-radius: 14px; background: #fff; color: var(--asa-text); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.asa-team-queue__item:hover, .asa-team-queue__item:focus-visible { border-color: var(--asa-blue); box-shadow: var(--asa-shadow); }
.asa-team-queue__name { grid-area: name; font-family: var(--asa-font-head); font-weight: 700; color: var(--asa-ink); }
.asa-team-queue__meta { grid-area: meta; font-size: .88rem; color: var(--asa-muted); }
.asa-team-queue__item .asa-team-pill { grid-area: pill; }
.asa-team-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; background: #EEF2F7; color: var(--asa-ink); white-space: nowrap; }
.asa-team-pill--pending_verification, .asa-team-pill--verification_review_due { background: #FCF0D4; color: #7A5410; }
.asa-team-pill--additional_information_required { background: #FDE3C4; color: #8A4B0F; }
.asa-team-pill--verified { background: #D8F0E2; color: var(--asa-green-text); }
.asa-team-pill--rejected, .asa-team-pill--suspended { background: #F8DCDC; color: #8A1C1C; }
.asa-team-back { font-size: .92rem; }
.asa-team-head { display: grid; gap: 6px; margin-bottom: 18px; }
.asa-team-head h2 { margin: 0; }
.asa-team-head p { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.asa-team-block { margin-bottom: 16px; }
.asa-team-block > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; }
.asa-team-block > summary::-webkit-details-marker { display: none; }
.asa-team-block > summary::after { content: "+"; font-size: 1.4rem; color: var(--asa-muted); }
.asa-team-block[open] > summary::after { content: "–"; }
.asa-team-block h3 { margin: 0; font-size: 1.08rem; }
.asa-team-block > h3 { margin-bottom: 10px; }
.asa-team-block h4 { margin: 18px 0 8px; font-size: .95rem; color: var(--asa-muted); text-transform: uppercase; letter-spacing: .05em; }
.asa-team-facts { display: grid; grid-template-columns: minmax(140px, 34%) minmax(0, 1fr); gap: 6px 16px; margin: 0; }
.asa-team-facts dt { color: var(--asa-muted); font-size: .92rem; }
.asa-team-facts dd { margin: 0; color: var(--asa-ink); font-weight: 600; overflow-wrap: anywhere; }
.asa-team-declarations { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: .94rem; }
.asa-team-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.asa-team-docs li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; padding: 10px 14px; border: 1px solid var(--asa-line); border-radius: 12px; background: var(--asa-bg-soft); }
.asa-team-docs li.is-done { background: #fff; border-color: #A9D8BF; }
.asa-team-docs li.is-missing { border-color: #F2B8B5; }
.asa-team-docs__label { font-weight: 600; color: var(--asa-ink); min-width: 0; }
.asa-team-docs__files { display: flex; flex-wrap: wrap; gap: 10px; }
.asa-team-docs__files a { font-weight: 600; }
.asa-team-step { padding: 12px 14px; border: 1px solid var(--asa-line); border-radius: 12px; margin-bottom: 10px; background: #fff; }
.asa-team-step__check { display: flex; gap: 10px; align-items: center; color: var(--asa-ink); }
.asa-team-step__check input { width: 20px; height: 20px; }
.asa-team-step p.asa-small { margin: 6px 0 8px; }
.asa-team-step input[type="text"] { width: 100%; min-height: 42px; padding: .5em .75em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; }
.asa-team-step .asa-field { margin: 0 0 8px; }
.asa-team-choices { border: 0; padding: 0; margin: 0 0 16px; display: grid; gap: 8px; }
.asa-team-choices label { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--asa-line); border-radius: 10px; background: #fff; font-weight: 600; color: var(--asa-ink); }
.asa-team-choices label:has(input:checked) { border-color: var(--asa-blue); background: #EEF4FB; }
.asa-team-choice--verified:has(input:checked) { border-color: var(--asa-green); background: #EAF6EF; }
.asa-team-choice--rejected:has(input:checked), .asa-team-choice--suspended:has(input:checked) { border-color: #C0392B; background: #FBECEA; }
.asa-team-audit { overflow-x: auto; margin-top: 10px; }
.asa-team-audit table { width: 100%; border-collapse: collapse; font-size: .88rem; min-width: 520px; }
.asa-team-audit th, .asa-team-audit td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--asa-line); vertical-align: top; }
@media (max-width: 640px) {
	.asa-team-queue__item { grid-template-columns: minmax(0, 1fr); grid-template-areas: "name" "meta" "pill"; }
	.asa-team-queue__item .asa-team-pill { justify-self: start; margin-top: 6px; }
	.asa-team-facts { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.asa-team-facts dd { margin-bottom: 8px; }
}

/* Espace équipe : écrans repris de l'administration, mis aux couleurs du site */
.asa-team-embed .wrap { margin: 0; }
.asa-team-embed .wrap > h1 { display: none; }
.asa-team-embed h2 { font-size: 1.15rem; margin: 22px 0 10px; }
.asa-team-embed h3 { font-size: 1.02rem; margin: 0 0 8px; }
.asa-team-embed p.description, .asa-team-embed .description { color: var(--asa-muted); font-size: .9rem; }
.asa-team-embed table.widefat, .asa-team-embed table.form-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--asa-line); border-radius: 12px; overflow: hidden; font-size: .92rem; }
.asa-team-embed .widefat th, .asa-team-embed .widefat td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--asa-line); vertical-align: top; }
.asa-team-embed .widefat thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--asa-muted); background: var(--asa-bg-soft); }
.asa-team-embed .widefat.striped tbody tr:nth-child(odd) { background: #FAFCFE; }
.asa-team-embed .form-table th, .asa-team-embed .form-table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--asa-line); }
.asa-team-embed .form-table th { width: 32%; color: var(--asa-ink); font-weight: 600; }
.asa-team-embed .form-table h3 { margin: 6px 0 0; color: var(--asa-blue); }
.asa-team-embed input[type="text"], .asa-team-embed input[type="email"], .asa-team-embed input[type="tel"], .asa-team-embed input[type="number"], .asa-team-embed input[type="date"], .asa-team-embed input[type="month"], .asa-team-embed input[type="datetime-local"], .asa-team-embed select, .asa-team-embed textarea { max-width: 100%; min-height: 40px; padding: .45em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; background: #fff; font: inherit; color: var(--asa-text); }
.asa-team-embed .regular-text, .asa-team-embed .large-text, .asa-team-embed textarea { width: 100%; }
.asa-team-embed .small-text { width: 90px; }
.asa-team-embed .button, .asa-team-embed input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 16px; border: 1.5px solid var(--asa-blue); border-radius: 999px; background: #fff; color: var(--asa-blue); font: inherit; font-weight: 700; font-size: .9rem; text-decoration: none; cursor: pointer; }
.asa-team-embed .button-primary, .asa-team-embed input[type="submit"].button-primary { background: var(--asa-blue); color: #fff; }
.asa-team-embed .button:hover, .asa-team-embed input[type="submit"]:hover { box-shadow: var(--asa-shadow); }
.asa-team-embed .notice { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; border-left: 4px solid var(--asa-blue); background: #EEF4FB; }
.asa-team-embed .notice-success { border-left-color: var(--asa-green); background: #EAF6EF; }
.asa-team-embed .notice-error, .asa-team-embed .notice-warning { border-left-color: #C0392B; background: #FBECEA; }
.asa-team-embed .notice p { margin: 0; }
.asa-team-embed .card, .asa-team-embed .postbox { max-width: none; margin: 0 0 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--asa-line); border-radius: 14px; }
.asa-team-embed .subsubsub { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px 12px; }
.asa-team-embed .tablenav, .asa-team-embed form[method="get"], .asa-team-embed form:not([method]) { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.asa-team-embed .awaiting-mod { display: none; }
.asa-team-embed .widefat-wrap, .asa-team-embed > div:has(> table.widefat) { overflow-x: auto; }
/* Finances → Transactions : numéro, type et date dans la 1re colonne ; professionnel, patient et note dans la 2e ; montants sur une ligne ; le tableau défile de côté si l'écran est étroit */
.asa-team-embed .asa-finance-tx th, .asa-team-embed .asa-finance-tx td { white-space: nowrap; }
.asa-team-embed .asa-finance-tx td:nth-child(2) { white-space: normal; min-width: 11em; }
.asa-team-embed .asa-finance-tx td small { color: var(--asa-muted); }
.asa-team-embed .asa-finance-tx .asa-finance-note { display: inline-block; margin-top: 6px; padding: 2px 10px; border: 1px solid var(--asa-line); border-radius: 999px; background: #fff; font-size: .8rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.asa-team-embed .asa-finance-tx .asa-finance-note:hover { border-color: var(--asa-blue); }
.asa-team-pill--appt-requested, .asa-team-pill--appt-to_confirm { background: #FCF0D4; color: #7A5410; }
.asa-team-pill--appt-confirmed, .asa-team-pill--appt-rescheduled, .asa-team-pill--appt-done { background: #D8F0E2; color: var(--asa-green-text); }
.asa-team-pill--appt-cancelled, .asa-team-pill--appt-no_show { background: #F8DCDC; color: #8A1C1C; }
@media (max-width: 640px) {
	.asa-team-embed table.widefat { display: block; overflow-x: auto; }
	.asa-team-embed .form-table, .asa-team-embed .form-table tbody, .asa-team-embed .form-table tr, .asa-team-embed .form-table th, .asa-team-embed .form-table td { display: block; width: 100%; }
	.asa-team-embed .form-table th { border-bottom: 0; padding-bottom: 0; }
}

/* Espace équipe : paiement d'un rendez-vous (accueil) et paiement reçu par transfert (finances) */
.asa-team-pay { margin: 18px 0; padding: 16px 18px; border: 1px solid var(--asa-line); border-radius: 14px; background: var(--asa-bg-soft); }
.asa-team-pay h3 { margin: 0 0 8px; font-size: 1.05rem; }
.asa-team-pay p { margin: 0 0 10px; }
.asa-team-pay__ok { color: var(--asa-green-text); font-weight: 600; }
.asa-team-pay__send { display: flex; gap: 10px; align-items: center; font-weight: 600; color: var(--asa-ink); }
.asa-team-copy { display: flex; flex-wrap: wrap; gap: 8px; }
.asa-team-copy input { flex: 1 1 260px; min-width: 0; min-height: 44px; padding: .5em .75em; border: 1.5px solid #B9C7D8; border-radius: 10px; background: #fff; font: inherit; font-size: .9rem; }
.asa-team-embed .asa-finance-received { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; }
.asa-team-embed .asa-finance-received select, .asa-team-embed .asa-finance-received input { min-height: 34px; font-size: .85rem; }

/* Espace équipe : mode test de la direction (voir l'espace comme un poste). */
.asa-team-viewas { margin: 0 0 20px; padding: 14px 16px; border-radius: var(--asa-radius); background: var(--asa-cream, #FBF6EA); border: 1px dashed #D9B66A; display: grid; gap: 8px; }
.asa-team-viewas.is-active { background: #FFF4D6; border-style: solid; }
.asa-team-viewas p { margin: 0; }
.asa-team-viewas__choices { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.asa-team-viewas__choices a { display: inline-block; padding: 5px 12px; border-radius: 999px; border: 1px solid #D6E0EB; background: #fff; color: var(--asa-ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.asa-team-viewas__choices a:hover, .asa-team-viewas__choices a:focus-visible { border-color: var(--asa-blue, #1D5FA7); color: var(--asa-blue, #1D5FA7); }
.asa-team-viewas__choices a[aria-current="true"] { background: var(--asa-blue, #1D5FA7); border-color: var(--asa-blue, #1D5FA7); color: #fff; }

/* Espace équipe : notes internes et transmissions entre postes. */
.asa-team-notes__list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.asa-team-note { padding: 12px 14px; border-radius: 12px; background: #F6F9FC; border: 1px solid #E1E8F0; }
.asa-team-note.is-open { background: #FFF8E6; border-color: #EAD9AE; }
.asa-team-note p { margin: 0 0 6px; }
.asa-team-note p:last-child { margin-bottom: 0; }
.asa-team-note__meta { font-size: .86rem; color: var(--asa-muted, #5b6b80); display: flex; flex-wrap: wrap; gap: 4px; align-items: baseline; }
.asa-team-note__meta strong { color: var(--asa-ink); }
.asa-team-note__to { margin-left: 4px; padding: 1px 8px; border-radius: 999px; background: var(--asa-blue, #1D5FA7); color: #fff; font-weight: 600; font-size: .78rem; }
.asa-team-note__ref { font-weight: 600; }
.asa-team-note__text { white-space: normal; overflow-wrap: anywhere; }
.asa-team-note form { margin-top: 8px; }
.asa-button--small { padding: 6px 14px; font-size: .88rem; }
.asa-team-notes__form label { display: block; font-weight: 600; margin-bottom: 4px; }
.asa-team-notes__form textarea, .asa-team-notes__form select { width: 100%; padding: 10px 12px; border: 1px solid #D6E0EB; border-radius: 10px; background: #fff; font: inherit; color: var(--asa-ink); }
.asa-team-note__reply { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #EAD9AE; display: grid; gap: 6px; }
.asa-team-note__reply .asa-check { display: flex; gap: 6px; align-items: center; font-weight: 400; font-size: .9rem; }
.asa-team-note__reply .asa-check input { width: auto; }
.asa-team-note__reply button { justify-self: start; }
.asa-team-notes h3 .asa-small { display: block; font-weight: 400; margin-top: 2px; }
.asa-finance-note { font-size: .85rem; }

/* Conseil « présentez-vous N minutes avant » (formulaire, paiement, espace patient). */
.asa-arrival { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; padding: 10px 14px; border-radius: 12px; background: #FBF6EA; border: 1px solid #EAD9AE; color: var(--asa-ink); font-size: .95rem; line-height: 1.5; }
.asa-arrival--plain { padding: 0; background: none; border: 0; color: var(--asa-muted); }
.asa-arrival .asa-icon { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; color: var(--asa-gold); }

/* Espace professionnel : « Un imprévu ? » (fermer son agenda pour la journée). */
.asa-quick-off { margin: 0 0 20px; padding: 14px 16px; border-radius: 14px; background: #FBF6EA; border: 1px solid #EAD9AE; display: grid; gap: 10px; }
.asa-quick-off__title { margin: 0; font-size: .95rem; line-height: 1.5; }
.asa-quick-off__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.asa-quick-off__actions form { margin: 0; }
.asa-quick-off__done { padding: 8px 12px; border-radius: 999px; background: #fff; border: 1px solid #EAD9AE; }

/* Accueil des patients (Espace équipe) : rouge = urgent, orange = contestation ou anomalie, bleu = information,
   vert = terminé ou payé. */
.asa-desk-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin: 0 0 14px; }
.asa-desk-head h2 { margin: 0; }
.asa-desk-muted { color: var(--asa-muted); font-size: .9rem; margin: 0; }
.asa-desk-empty { color: var(--asa-muted); margin: 0; }
.asa-desk-search { display: flex; gap: 8px; margin: 0 0 20px; }
.asa-desk-search input[type="search"] { flex: 1 1 auto; min-width: 0; border-radius: 999px; padding: 12px 18px; border: 1px solid var(--asa-line); background: var(--asa-bg-soft); font: inherit; }
.asa-desk-search input[type="search"]:focus { border-color: var(--asa-blue); background: #fff; }
.asa-desk-card { background: #fff; border-radius: var(--asa-radius-lg); box-shadow: var(--asa-shadow); padding: 20px 22px; margin: 0 0 20px; display: grid; gap: 14px; }
.asa-desk-card h3 { margin: 0; font-size: 1.1rem; }
.asa-desk-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.asa-desk-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .82rem; color: var(--asa-text); }
.asa-desk-legend li { display: flex; align-items: center; gap: 6px; }
.asa-desk-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.asa-desk-dot--urgent { background: #C0352B; } .asa-desk-dot--anomaly { background: #D9822B; } .asa-desk-dot--info { background: var(--asa-blue); } .asa-desk-dot--ok { background: var(--asa-green-text); }
.asa-desk-todo { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.asa-desk-todo__item { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; border-radius: 16px; padding: 14px 16px; border: 1px solid #D3E2F3; background: #F5F9FE; }
.asa-desk-todo__item--urgent { border-color: #F1C9C5; background: #FDF3F2; }
.asa-desk-todo__item--anomaly { border-color: #F3CFA3; background: #FFF6EC; }
.asa-desk-todo__body { flex: 1 1 260px; min-width: 0; display: grid; gap: 2px; }
.asa-desk-todo__body span { color: var(--asa-muted); font-size: .92rem; }
.asa-desk-todo__delay { display: grid; justify-items: end; gap: 2px; font-size: .82rem; color: var(--asa-muted); font-variant-numeric: tabular-nums; text-align: right; }
.asa-desk-todo__btn { white-space: nowrap; }
.asa-desk-tag { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-radius: 999px; padding: 4px 10px; color: #164A82; background: #E3EDF8; white-space: nowrap; }
.asa-desk-tag--urgent { color: #9A1F18; background: #FBE1DE; }
.asa-desk-tag--anomaly { color: #8A4100; background: #FCE3C6; }
.asa-desk-due--urgent { color: #9A1F18; } .asa-desk-due--anomaly { color: #8A4100; } .asa-desk-due--info { color: #164A82; }
.asa-desk-switch { display: flex; gap: 6px; }
.asa-desk-switch a { text-decoration: none; font-size: .88rem; font-weight: 600; border-radius: 999px; padding: 6px 14px; background: var(--asa-blue-50); color: var(--asa-ink); }
.asa-desk-switch a[aria-current="page"] { background: var(--asa-ink); color: #fff; }
.asa-desk-scroll { overflow-x: auto; }
.asa-desk-table { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; }
.asa-desk-table th { text-align: left; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--asa-muted); font-weight: 600; padding: 8px 10px; }
.asa-desk-table td { padding: 11px 10px; border-top: 1px solid #EDF1F6; vertical-align: middle; }
.asa-desk-time { font-weight: 700; }
.asa-desk-pill { display: inline-block; border-radius: 999px; padding: 3px 10px; font-size: .82rem; font-weight: 600; white-space: nowrap; background: #EEF1F5; color: var(--asa-ink); }
.asa-desk-pill--ok { background: var(--asa-green-50); color: var(--asa-green-text); }
.asa-desk-pill--anomaly { background: #FCE3C6; color: #8A4100; }
.asa-desk-pill--info { background: #E3EDF8; color: #164A82; }
.asa-desk-pill--urgent { background: #FBE1DE; color: #9A1F18; }
.asa-desk-status { font-size: .9rem; color: var(--asa-muted); }
.asa-desk-status--ok { color: var(--asa-green-text); font-weight: 600; } .asa-desk-status--urgent { color: #9A1F18; font-weight: 600; } .asa-desk-status--anomaly { color: #8A4100; font-weight: 600; }
.asa-desk-results { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.asa-desk-results a { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; text-decoration: none; color: var(--asa-ink); background: #fff; border: 1px solid var(--asa-line); border-radius: 14px; padding: 12px 16px; font-variant-numeric: tabular-nums; }
.asa-desk-results a:hover { border-color: var(--asa-blue); }
.asa-desk-results strong { flex: 1 1 180px; }
.asa-desk-patient { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.asa-desk-patient__id { display: grid; gap: 6px; min-width: 0; }
.asa-desk-patient__id p { margin: 0; }
.asa-desk-patient h3 { font-size: 1.4rem; }
.asa-desk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.asa-desk-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.asa-desk-actions form { margin: 0; }
.asa-desk-wa { background: var(--asa-green-text); color: #fff; border-color: var(--asa-green-text); }
.asa-desk-wa:hover { background: #125C3B; color: #fff; }
.asa-desk-rdv { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.asa-desk-rdv__item { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; text-decoration: none; color: var(--asa-ink); border: 1px solid var(--asa-line); border-radius: 14px; padding: 11px 14px; font-variant-numeric: tabular-nums; }
.asa-desk-rdv__item strong { flex: 0 0 150px; }
.asa-desk-rdv__item > span:nth-of-type(1) { flex: 1 1 200px; }
.asa-desk-rdv__item--urgent { border-color: #F1C9C5; background: #FDF3F2; }
.asa-desk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 20px; align-items: start; }
.asa-desk-dl { margin: 0; display: grid; gap: 8px; font-size: .9rem; font-variant-numeric: tabular-nums; }
.asa-desk-dl div { display: flex; justify-content: space-between; gap: 12px; }
.asa-desk-dl dd { margin: 0; font-weight: 600; text-align: right; }
.asa-desk-notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: .9rem; }
.asa-desk-action { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; border: 2px solid #D3E2F3; background: #F5F9FE; border-radius: var(--asa-radius-lg); padding: 18px 20px; margin: 0 0 20px; }
.asa-desk-action--urgent { border-color: #C0352B; background: #FDF3F2; }
.asa-desk-action--anomaly { border-color: #D9822B; background: #FFF6EC; }
.asa-desk-action__text { flex: 1 1 340px; min-width: 0; display: grid; gap: 6px; }
.asa-desk-action h3 { margin: 0; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #164A82; }
.asa-desk-action--urgent h3 { color: #9A1F18; } .asa-desk-action--anomaly h3 { color: #8A4100; }
.asa-desk-action__what { margin: 0; font-family: var(--asa-font-head); font-weight: 700; font-size: 1.15rem; line-height: 1.35; color: var(--asa-ink); }
.asa-desk-action__side { display: grid; gap: 10px; justify-items: start; }
.asa-desk-action__side p { margin: 0; font-size: .9rem; font-variant-numeric: tabular-nums; }
.asa-desk-summary__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; }
.asa-desk-summary__head h2 { margin: 2px 0; font-size: 1.5rem; }
.asa-desk-summary__head h2 a { color: var(--asa-ink); text-decoration: none; }
.asa-desk-summary__head p { margin: 0; font-variant-numeric: tabular-nums; }
.asa-desk-facts { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.asa-desk-facts > div { background: var(--asa-bg-soft); border-radius: var(--asa-radius); padding: 12px 14px; display: grid; gap: 3px; align-content: start; }
.asa-desk-facts dt { font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asa-muted); }
.asa-desk-facts dd { margin: 0; font-size: .85rem; color: var(--asa-muted); }
.asa-desk-facts .asa-desk-facts__main { font-size: 1rem; font-weight: 700; color: var(--asa-ink); }
.asa-desk-cancel { position: relative; }
.asa-desk-cancel > summary { list-style: none; cursor: pointer; }
.asa-desk-cancel > summary::-webkit-details-marker { display: none; }
.asa-desk-cancel__btn { color: #9A1F18; background: #FDF3F2; border: 1px solid #F1C9C5; }
.asa-desk-cancel__form { margin-top: 10px; display: grid; gap: 8px; padding: 14px; border: 1px solid #F1C9C5; border-radius: var(--asa-radius); background: #fff; max-width: 460px; }
.asa-desk-cancel__form textarea { width: 100%; box-sizing: border-box; }
.asa-desk-cancel__confirm { background: #B3261E; border-color: #B3261E; color: #fff; justify-self: start; }
.asa-desk-detail { margin: 0 0 20px; }
.asa-desk-detail > summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); }
.asa-desk-detail[open] > summary { margin-bottom: 14px; }
.asa-desk-privacy { display: flex; gap: 8px; align-items: center; margin: 24px 0 0; font-size: .85rem; color: var(--asa-muted); }
.asa-desk-privacy .asa-icon { width: 16px; height: 16px; flex: 0 0 auto; }
.asa-actor { display: inline-block; border-radius: 999px; padding: 1px 8px; font-size: .75rem; font-weight: 600; background: #EEF1F5; color: #3E4C5E; }
.asa-actor--reception { background: #E3EDF8; color: #164A82; }
.asa-actor--professional { background: #EFEAFB; color: #5B3E99; }
.asa-actor--finance { background: #E2F3F4; color: #0E6670; }
.asa-actor--direction { background: var(--asa-gold-50); color: #6B4E0E; }
.asa-actor--patient { background: #fff; color: var(--asa-ink); border: 1px solid var(--asa-line); }
@media (max-width: 640px) {
	.asa-desk-patient { grid-template-columns: 1fr; }
	.asa-desk-todo__delay { justify-items: start; text-align: left; }
	.asa-desk-search { flex-wrap: wrap; }
}
/* Pages patient sans connexion (contestation d'absence, « Votre consultation a-t-elle bien eu lieu ? »). */
.asa-contest fieldset { border: 0; padding: 0; margin: 0 0 14px; display: grid; gap: 8px; }
.asa-contest legend { font-weight: 700; color: var(--asa-ink); margin-bottom: 6px; padding: 0; }
.asa-contest .asa-check { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.asa-contest .asa-check input { margin-top: 3px; flex: 0 0 auto; }
.asa-contest textarea { width: 100%; box-sizing: border-box; min-height: 90px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); padding: 10px 12px; font: inherit; }
.asa-contest label[for] { display: block; margin-bottom: 6px; font-weight: 600; }
.asa-desk-dl dd { white-space: nowrap; }
.asa-desk-dl dt { min-width: 0; }
/* Mes lieux d'exercice (espace professionnel). */
.asa-sites__list { border: 0; padding: 0; margin: 0 0 14px; display: grid; gap: 8px; }
.asa-sites__list legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.asa-sites__item { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); padding: 12px 14px; background: #fff; }
.asa-sites__item.is-open { border-color: var(--asa-green-text); background: var(--asa-green-50); }
.asa-sites__label { flex: 1 1 200px; font-weight: 600; color: var(--asa-ink); }
.asa-sites__status { font-size: .85rem; color: var(--asa-muted); }
.asa-sites__item.is-open .asa-sites__status { color: var(--asa-green-text); font-weight: 600; }
/* Rattachement praticiens ↔ établissements (lot 3 A) */
.asa-tag { display: inline-block; font-size: .75rem; font-weight: 600; color: var(--asa-blue, #1d4f91); background: var(--asa-blue-50, #eef4fb); border-radius: 999px; padding: 2px 8px; vertical-align: middle; }
.asa-attach, .asa-est-prac { display: grid; gap: 14px; margin-top: 18px; }
.asa-est-prac { margin-top: 0; }
.asa-attach h3, .asa-attach h4, .asa-est-prac h3 { margin: 0; }
.asa-attach__invite { border: 1px solid var(--asa-line); border-left: 4px solid var(--asa-green-text); border-radius: var(--asa-radius); padding: 12px 14px; background: var(--asa-green-50); }
.asa-attach__invite p { margin: 0 0 10px; }
.asa-attach__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.asa-attach__actions form, .asa-attach__list form { margin: 0; }
.asa-attach__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.asa-attach__list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); padding: 12px 14px; background: #fff; }
.asa-attach__list > li > span:first-child { flex: 1 1 220px; min-width: 0; }
.asa-attach__link { display: block; width: 100%; margin-top: 8px; font-family: ui-monospace, Menlo, monospace; font-size: .85rem; }
.asa-est-code { font-size: 1.25rem; letter-spacing: .06em; color: var(--asa-ink); font-variant-numeric: tabular-nums; }
.asa-est-prac__code p { margin: 0 0 8px; }
.asa-est-team ul { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.asa-levels { margin: 0 0 6px; padding-left: 1.2em; display: grid; gap: 4px; }
.asa-review__est { margin: 14px 0 6px; padding-top: 12px; border-top: 1px dashed var(--asa-line); display: grid; gap: 6px; }
.asa-review__est p { margin: 0; }
.asa-est-days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.asa-est-days li { display: flex; justify-content: space-between; align-items: center; gap: 8px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); padding: 8px 12px; background: #fff; font-variant-numeric: tabular-nums; }
.asa-team-member .asa-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; }

/* Contenu juste sous le titre de page : espace réduit (l'en-tête de page a déjà sa propre marge basse). */
.page-hero + .section { padding-top: clamp(24px, 3vw, 40px); }

/* Retard annoncé par le professionnel (rendez-vous du patient ; formulaire de l'agenda et de l'accueil). */
.asa-delay-note { margin: 8px 0; padding: 8px 12px; border-radius: 10px; background: #FDF1E3; border: 1px solid #F0CFA4; color: #7A4A10; font-size: .92rem; }
.asa-delay-box { margin: 0 0 20px; padding: 14px 16px; border-radius: 14px; background: #F3F7FC; border: 1px solid var(--asa-line); display: grid; gap: 10px; }
.asa-delay-box__title, .asa-delay-box__now { margin: 0; font-size: .95rem; line-height: 1.5; }
.asa-delay-box__now { color: #7A4A10; font-weight: 600; }
.asa-delay-box__form { display: grid; gap: 10px; margin: 0; }
.asa-delay-box__patients { margin: 0; padding: 0; border: 0; display: grid; gap: 6px; min-width: 0; }
.asa-delay-patient { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--asa-line); cursor: pointer; font-size: .95rem; }
.asa-delay-patient input { width: 20px; height: 20px; margin: 0; accent-color: var(--asa-blue, #1D5FA7); }
.asa-delay-patient__time { font-weight: 700; font-variant-numeric: tabular-nums; }
.asa-delay-patient__name { min-width: 0; overflow-wrap: anywhere; }
.asa-delay-patient__late { margin-left: auto; padding: 2px 8px; border-radius: 999px; background: #FDF1E3; color: #7A4A10; font-size: .85rem; font-weight: 600; }
.asa-delay-box__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.asa-delay-box__form select { min-height: 44px; padding: .4em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; background: #fff; font: inherit; }
.asa-delay-doctor { margin: 12px 0 6px; }

/* Rendez-vous pour un proche ; « Mes proches ». */
.asa-booking-for { grid-column: 1 / -1; }
.asa-booking-for label { display: inline-flex; align-items: center; gap: 6px; margin: 0 14px 6px 0; }
.asa-appointment__for, .asa-appt-card__for { margin: 2px 0 6px; color: var(--asa-muted); font-size: .9rem; }
.asa-relatives { list-style: none; margin: 12px 0 20px; padding: 0; display: grid; gap: 8px; }
.asa-relative { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; padding: 10px 14px; border: 1px solid var(--asa-line); border-radius: 12px; background: #fff; }
.asa-relative form { margin: 0; }

/* Alerte « créneau plus tôt ». */
.asa-waitlist { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 0; font-size: .92rem; }
.asa-waitlist__on { display: inline-flex; gap: 6px; align-items: center; color: var(--asa-green-text); font-weight: 600; }
.asa-waitlist .asa-icon { width: 18px; height: 18px; }

/* Visites à domicile (home-visits.php) */
.asa-home-visit { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #EEF5EF; border: 1px solid #CFE3D4; color: var(--asa-text); font-size: .93rem; line-height: 1.5; overflow-wrap: anywhere; }
.asa-where { margin-top: 4px; }
.asa-home-fields { display: grid; gap: 4px; padding: 12px 14px; margin: 0 0 16px; border-radius: 14px; background: #F3F7FC; border: 1px solid var(--asa-line); }
.asa-home-fields textarea, .asa-home-fields select { width: 100%; }
.asa-home-fields__note { margin: 0; }
.asa-home-zones__rows { display: grid; gap: 8px; }
.asa-home-zones__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.asa-home-zones__row input { width: 100%; min-height: 44px; padding: .45em .7em; border: 1.5px solid #B9C7D8; border-radius: 10px; font: inherit; background: #fff; }
.asa-card__home { color: #1E7A4F; font-weight: 600; }
.asa-directory__home { align-self: end; }

/* Laboratoires (laboratories.php) */
.asa-lab-note { margin: 8px 0; padding: 8px 12px; border-radius: 10px; background: #F3F7FC; border: 1px solid var(--asa-line); font-size: .92rem; line-height: 1.5; }
.asa-lab-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.asa-lab-item label { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--asa-line); cursor: pointer; }
.asa-lab-item input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--asa-blue, #1D5FA7); }
.asa-lab-item__name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.asa-lab-item__price { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.asa-lab-exams .asa-home-zones__row { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.asa-lab-total { margin: 10px 0 4px; padding: 10px 12px; border-radius: 10px; background: #EEF5EF; border: 1px solid #CFE3D4; font-weight: 700; }

/* Aide sous un champ (ex. avertissement sous « Message » du formulaire de rendez-vous) */
.asa-field__hint { display: block; margin-top: 6px; color: var(--asa-muted, #5B6B80); font-size: .88rem; line-height: 1.45; }

/* Un élément masqué (attribut hidden) l'est toujours, même si sa classe lui donne display: flex ou grid. */
[hidden] { display: none !important; }

.asa-home-definition { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--asa-green, #1E8E5A); background: #F4F9F5; border-radius: 0 10px 10px 0; font-size: .92rem; line-height: 1.5; }
.asa-home-zones__title { margin: 0 0 4px; }

/* Rubrique « Établissements » (establishments-growth.php) */
.asa-est-hero { margin: 0 0 40px; padding: clamp(24px, 5vw, 48px); border-radius: var(--asa-radius-lg); background: linear-gradient(135deg, #DCE8F6, #EEF4FB 60%, #F7FAFD); border: 1px solid #D3E1F1; box-shadow: var(--asa-shadow); text-align: center; }
.asa-est-hero .asa-est-hero__title { margin: 0 auto 10px; max-width: 22ch; font-size: clamp(1.6rem, 4vw, 2.3rem); text-wrap: balance; }
.asa-est-hero__lead { margin: 0 auto 22px; max-width: 60ch; color: var(--asa-muted); }
.asa-est-hero__form { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; max-width: 560px; margin: 0 auto; }
.asa-est-hero__form input { flex: 1 1 260px; min-height: 54px; padding: 0 20px; border: 2px solid #9DB8D9; border-radius: 999px; font: inherit; font-size: 1.02rem; color: var(--asa-ink); background: #fff; box-shadow: 0 6px 18px -8px rgba(15, 47, 85, .35); transition: border-color .2s, box-shadow .2s; }
.asa-est-hero__form input::placeholder { color: #5B6B80; opacity: 1; }
.asa-est-hero__form input:hover { border-color: var(--asa-blue); }
.asa-est-hero__form input:focus { outline: none; border-color: var(--asa-blue); box-shadow: 0 0 0 4px rgba(29, 95, 167, .2), 0 6px 18px -8px rgba(15, 47, 85, .35); }
.asa-est-hero__form .asa-button { min-height: 54px; border-radius: 999px; padding-inline: 26px; }
.asa-est-hero__groups { margin: 16px auto 0; color: var(--asa-muted); font-size: .95rem; }
.entry-content > .asa-est-hero { max-width: var(--asa-container); }
.asa-cta-box { margin: 40px auto 0; padding: clamp(20px, 4vw, 32px); border-radius: var(--asa-radius-lg); background: var(--asa-bg-soft); border: 1px solid var(--asa-line); }
.entry-content > .asa-cta-box { max-width: var(--asa-container); }
.asa-cta-box h2 { margin-top: 0; }

.asa-est-section { margin: 48px auto 0; }
.entry-content > .asa-est-section, .entry-content > .asa-est-solo { max-width: var(--asa-container); }
.asa-est-section > h2 { margin: 0 0 8px; text-wrap: balance; }
.asa-est-section__lead { margin: 0 0 18px; color: var(--asa-muted); }
.asa-est-grid { display: grid; gap: 16px; margin-top: 18px; }
@media (min-width: 720px) { .asa-est-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .asa-est-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .asa-est-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.asa-est-card { padding: 22px; border-radius: var(--asa-radius-lg); background: #fff; border: 1px solid var(--asa-line); box-shadow: var(--asa-shadow); }
.asa-est-card--plain { box-shadow: none; background: var(--asa-bg-soft); }
.asa-est-card h3 { margin: 10px 0 6px; font-size: 1.08rem; }
.asa-est-card p { margin: 0 0 8px; color: var(--asa-muted); }
.asa-est-card__icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--asa-blue-50); font-size: 1.3rem; }
/* Carte avec icône : le titre se place à côté de l'icône, le texte en dessous sur toute la largeur. */
.asa-est-card:has(> .asa-est-card__icon) { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; grid-template-rows: auto 1fr auto; }
/* Le lien « Demander une présentation » reste aligné en bas de toutes les cartes d'une même rangée. */
.asa-est-card:has(> .asa-est-card__icon) > p:last-child:has(> a:only-child) { align-self: end; margin-bottom: 0; }
.asa-est-card:has(> .asa-est-card__icon) > p:last-child > a:only-child { font-size: .95rem; white-space: nowrap; } /* « Demander une présentation → » sur une seule ligne */
.asa-est-card:has(> .asa-est-card__icon) > :not(.asa-est-card__icon):not(h3) { grid-column: 1 / -1; }
.asa-est-card:has(> .asa-est-card__icon) > h3 { align-self: center; margin: 0; text-wrap: balance; }
.asa-est-card:has(> .asa-est-card__icon) > h3 + * { margin-top: 12px; }
.asa-est-tools { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
@media (min-width: 720px) { .asa-est-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.asa-est-tools li { padding: 12px 16px 12px 42px; border-radius: 12px; background: var(--asa-bg-soft); position: relative; }
.asa-est-tools li::before { content: "✓"; position: absolute; left: 16px; color: var(--asa-green); font-weight: 700; }
.asa-est-final { padding: clamp(22px, 4vw, 36px); border-radius: var(--asa-radius-lg); background: linear-gradient(135deg, var(--asa-blue-50), #fff); border: 1px solid var(--asa-line); text-align: center; }
.asa-est-steps { display: inline-block; text-align: left; margin: 10px auto 18px; }
.asa-est-solo { margin: 28px auto; color: var(--asa-muted); }
.asa-est-hero__eyebrow { margin: 0 0 8px; color: var(--asa-gold-dark, #8a6a1f); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.entry-content > .asa-plans--discreet,
.entry-content > h2:has(+ .asa-plans--discreet),
.entry-content > h2:has(+ #asa-est-contact),
.entry-content > #asa-est-contact { max-width: var(--asa-container); }
.asa-plan__price--on-request strong { color: var(--asa-blue); }
.asa-est-card ul { margin: 6px 0 0; padding-left: 18px; color: var(--asa-muted); }
.asa-est-card li { margin: 4px 0; }

/* Menus déroulants (navigation hiérarchisée, 18/10/2026) : survol, clavier ou flèche sur ordinateur ; accordéon sur téléphone. */
.primary-nav .menu-item-has-children { position: relative; }
.primary-nav .submenu-toggle { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-left: -4px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.primary-nav .submenu-toggle::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.primary-nav .menu-item-has-children.is-open > .submenu-toggle::before { transform: translateY(2px) rotate(-135deg); }
.primary-nav .submenu-toggle:focus-visible { outline: 3px solid rgba(29, 95, 167, .35); }
.primary-nav .sub-menu a { display: block; white-space: normal; }
.menu-item__desc { display: block; margin-top: 2px; color: var(--asa-muted); font-size: .82rem; font-weight: 400; line-height: 1.35; }
@media (min-width: 1200px) {
	.primary-nav .menu > li.menu-item-has-children { display: flex; align-items: center; }
	.primary-nav .sub-menu { position: absolute; top: 100%; left: 0; z-index: 60; display: block; min-width: 260px; margin: 0; padding: 8px; list-style: none; border: 1px solid var(--asa-line); border-radius: 14px; background: #fff; box-shadow: 0 18px 40px -12px rgba(15, 47, 85, .25); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility 0s .18s; }
	.primary-nav .menu > li:last-child .sub-menu, .primary-nav .menu > li:nth-last-child(2) .sub-menu { left: auto; right: 0; }
	.primary-nav .menu-item-has-children:hover > .sub-menu,
	.primary-nav .menu-item-has-children:focus-within > .sub-menu,
	.primary-nav .menu-item-has-children.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s; }
	.primary-nav .sub-menu a { padding: 10px 12px; border-radius: 10px; font-size: .95rem; box-shadow: none !important; }
	.primary-nav .sub-menu a:hover, .primary-nav .sub-menu a:focus-visible { background: var(--asa-bg-soft); text-decoration: none; }
}
@media (max-width: 1199px) {
	.primary-nav .menu > li.menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
	.primary-nav .menu > li.menu-item-has-children { border-bottom: 1px solid var(--asa-line); }
	.primary-nav .menu > li.menu-item-has-children > a { flex: 1; border-bottom: 0; }
	.primary-nav .submenu-toggle { width: 44px; height: 44px; }
	.primary-nav .sub-menu { flex-basis: 100%; margin: 0 0 8px; padding: 0 0 0 14px; list-style: none; border-left: 2px solid var(--asa-line); }
	.primary-nav .menu-item-has-children.is-open > .sub-menu { display: block; }
	.primary-nav .sub-menu a { padding: .7em .25em; border-bottom: 0; font-size: 1rem; }
}


/* Inscription chercheurs : catégories de profil (13, plusieurs choix) */
.asa-hub-type { margin: 0 0 14px; padding: 0; border: 0; }
.asa-hub-type legend { margin-bottom: 6px; padding: 0; font-weight: 600; color: var(--asa-ink); }
.asa-hub-type label { display: flex; align-items: center; gap: 8px; margin: 4px 0; font-weight: 400; }
.asa-hub-type__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0 16px; }

/* Missions & Expertise : formulaire de demande */
.asa-mission-types { margin: 0 0 16px; padding-left: 18px; color: var(--asa-muted); }
.asa-mission-types li { margin: 3px 0; }
.asa-mission-types strong { color: var(--asa-ink); }

/* Missions & Expertise : espace du client (lien personnel) */
.entry-content > .asa-mc { max-width: 900px; }
.asa-mc { display: grid; gap: 28px; }
.asa-mc__head { display: grid; gap: 10px; }
.asa-mc__ref { margin: 0; color: var(--asa-muted); font-size: .92rem; font-weight: 600; letter-spacing: .02em; }
.asa-mc__status { margin: 0; font-size: 1.5rem; }
.asa-mc__steps { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; padding: 0; list-style: none; counter-reset: asa-step; }
.asa-mc__steps li { counter-increment: asa-step; display: flex; align-items: center; gap: 6px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--asa-bg-soft); color: var(--asa-muted); font-size: .88rem; font-weight: 600; }
.asa-mc__steps li::before { content: counter(asa-step); display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; font-size: .78rem; }
.asa-mc__steps li.is-done { color: var(--asa-green-text, #17724A); }
.asa-mc__steps li.is-done::before { content: "✓"; background: var(--asa-green-50); }
.asa-mc__steps li.is-current { background: var(--asa-blue); color: #fff; }
.asa-mc__steps li.is-current::before { color: var(--asa-blue); }
.asa-mc__request summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); }
.asa-mc__request dl { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 8px 16px; margin: 12px 0 0; }
.asa-mc__request dt { font-weight: 600; color: var(--asa-ink); }
.asa-mc__request dd { margin: 0; color: var(--asa-muted); }
.asa-mc__section > h2 { margin: 0 0 8px; }
.asa-mc__profiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 14px 0 0; padding: 0; list-style: none; }
.asa-mc__profile { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--asa-line); border-radius: var(--asa-radius-lg); background: #fff; box-shadow: var(--asa-shadow); }
.asa-mc__profile.is-selected { border: 2px solid var(--asa-blue); padding: 19px; }
.asa-mc__profile h3 { margin: 0; font-size: 1.08rem; }
.asa-mc__profile p { margin: 0; }
.asa-mc__profile form { margin-top: auto; padding-top: 8px; }
.asa-mc__role { color: var(--asa-ink); font-weight: 600; font-size: .94rem; }
.asa-mc__verified { color: var(--asa-green-text, #17724A); font-weight: 600; }
.asa-mc__bio { color: var(--asa-muted); font-size: .93rem; line-height: 1.55; }
.asa-mc__rate { font-weight: 700; color: var(--asa-ink); }
.asa-mc__chosen { padding: 10px 14px; border-radius: 12px; background: var(--asa-green-50); color: var(--asa-green-text, #17724A); font-weight: 600; }
.asa-mc__table { overflow-x: auto; border: 1px solid var(--asa-line); border-radius: var(--asa-radius); background: #fff; }
.asa-mc__table table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: .95rem; }
.asa-mc__table th, .asa-mc__table td { padding: 10px 14px; border-bottom: 1px solid var(--asa-line); text-align: left; vertical-align: top; }
.asa-mc__table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.asa-mc__table .asa-mc__group th, .asa-mc__table .asa-mc__group td { background: var(--asa-bg-soft); color: var(--asa-ink); }
.asa-mc__table tfoot th, .asa-mc__table tfoot td { border-bottom: 0; font-size: 1.08rem; font-weight: 800; color: var(--asa-ink); }
.asa-mc__accept { margin-top: 14px; padding: 18px; border-radius: var(--asa-radius); background: var(--asa-blue-50); }
.asa-mc__due { font-size: 1.15rem; font-weight: 700; color: var(--asa-ink); }
.asa-mc__bank { margin-top: 10px; padding: 16px 18px; border-radius: var(--asa-radius); background: var(--asa-bg-soft); }
.asa-mc__bank h3 { margin: 0 0 6px; font-size: 1rem; }
.asa-mc__payments { margin: 12px 0 0; padding-left: 18px; color: var(--asa-muted); }
@media (max-width: 599px) { .asa-mc__request dl { grid-template-columns: 1fr; gap: 2px; } .asa-mc__request dd { margin-bottom: 8px; } }
.asa-mc__accept input[type="text"] { background: #fff; border: 1px solid #9DB8D9; }
.asa-mc > * { min-width: 0; } /* le tableau du devis défile dans son cadre, jamais la page */

/* Missions : Espace chercheurs (Mes missions) et suivi client (réalisation) */
.asa-hub-mission { display: grid; gap: 10px; margin: 0 0 20px; }
.asa-hub-mission h3 { margin: 0; font-size: 1.15rem; }
.asa-hub-mission h4 { margin: 12px 0 6px; font-size: 1rem; }
.asa-hub-mission p { margin: 0; }
.asa-hub-mission__facts { display: grid; grid-template-columns: minmax(140px, 200px) minmax(0, 1fr); gap: 6px 16px; margin: 4px 0; }
.asa-hub-mission__facts dt { font-weight: 600; color: var(--asa-ink); }
.asa-hub-mission__facts dd { margin: 0; color: var(--asa-muted); }
.asa-hub-mission details summary, .asa-mc__more summary { cursor: pointer; font-weight: 600; color: var(--asa-blue); margin: 8px 0; }
.asa-mc__stars { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.asa-mc__stars label { display: flex; align-items: center; gap: 6px; font-weight: 400; }
@media (max-width: 599px) { .asa-hub-mission__facts { grid-template-columns: 1fr; gap: 2px; } .asa-hub-mission__facts dd { margin-bottom: 8px; } }

/* Accueil allégé (maquette « après » validée le 19/10/2026) : moins d'espace entre les sections, services sur 3 colonnes,
   « Pourquoi nous choisir » en 4 points, « Nos pôles » en bande compacte (icône + titre), encadrés « professionnel » et
   « établissement » côte à côte. Même style qu'avant. */
.front-content > .wp-block-group.alignfull { padding-block: clamp(36px, 5vw, 64px); }
.front-content > .wp-block-group.asa-home-finder { padding-block: clamp(36px, 5vw, 60px); }
@media (min-width: 900px) {
	.front-content .asa-cards--services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asa-pillars--four.wp-block-columns { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 600px) and (max-width: 899px) {
	.front-content .asa-cards--services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asa-pillars--four.wp-block-columns { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.asa-pillars--four > .wp-block-column { flex-basis: auto !important; }
.asa-pillars-band--compact .asa-cards--pillars { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.asa-pillars-band--compact .asa-card { padding: 16px 12px; text-align: center; align-items: center; }
.asa-pillars-band--compact .asa-card p, .asa-pillars-band--compact .asa-card .asa-card__more { display: none; }
.asa-pillars-band--compact .asa-card__icon { margin: 0 auto 8px; }
.asa-pillars-band--compact .asa-card__title { font-size: .95rem; margin: 0; }
@media (max-width: 1099px) { .asa-pillars-band--compact .asa-cards--pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .asa-pillars-band--compact .asa-cards--pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.asa-duo-band .asa-duo-band__grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0 auto; }
.asa-duo-band .asa-duo-band__card { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .18); border-radius: var(--asa-radius-lg); padding: clamp(24px, 3vw, 32px); flex-basis: auto !important; }
.asa-duo-band .asa-duo-band__card h2 { color: #fff; font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin: 6px 0 10px; text-align: left; }
.asa-duo-band .asa-duo-band__card p { color: rgba(255, 255, 255, .88); margin: 0 0 18px; text-align: left; }
.asa-duo-band .asa-duo-band__card .asa-eyebrow { color: var(--asa-gold); margin: 0; }
.asa-duo-band .asa-duo-band__card .wp-block-buttons { justify-content: flex-start; }
@media (max-width: 767px) { .asa-duo-band .asa-duo-band__grid { grid-template-columns: 1fr; } }
/* Téléphone : les cartes de recherche gardent la marge latérale des autres blocs (elles touchaient les bords). */
@media (max-width: 767px) {
	.front-content .wp-block-group.asa-home-finder .asa-finder { margin-inline: var(--asa-gutter); width: auto; max-width: none; padding: 18px; box-sizing: border-box; }
}
/* Domaines d'expertise brefs (19/10/2026) : cartes compactes, icône et titre sur une ligne, une phrase courte. */
.entry-content .asa-cards--domains > .asa-card--domain { padding: 18px 20px; }
.entry-content .asa-cards--domains .asa-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.entry-content .asa-cards--domains .asa-card__head .asa-card__icon { width: 42px; height: 42px; margin: 0; flex: 0 0 42px; border-radius: 12px; }
.entry-content .asa-cards--domains .asa-card__head .asa-card__icon .asa-icon { width: 22px; height: 22px; }
.entry-content .asa-cards--domains .asa-card__title { margin: 0; font-size: 1rem; line-height: 1.3; }
.entry-content .asa-cards--domains .asa-card__text { margin: 0; font-size: .92rem; line-height: 1.5; color: var(--asa-muted); }
.entry-content .asa-cards.asa-cards--domains { grid-auto-rows: auto; gap: 16px; }
