/*
Theme Name: Neuro Équilibre Thème
Theme URI: https://neuroequilibre.example
Author: Clinique NeuroÉquilibre
Author URI: https://neuroequilibre.example
Description: Thème WordPress sur mesure pour la Clinique NeuroÉquilibre — approche neuroscientifique et bien-être. CSS natif, bilingue FR/EN (Polylang).
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: neuro-quilibre-theme
Domain Path: /languages
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	/* Couleurs (palette Material du design original) */
	--neuro-primary: #000d22;
	--neuro-primary-container: #0d2340;
	--neuro-secondary: #7d5801;
	--neuro-secondary-container: #fdca6f;
	--neuro-on-secondary-container: #775300;
	--neuro-secondary-fixed: #ffdea9;
	--neuro-error: #ba1a1a;
	--neuro-error-container: #ffdad6;
	--neuro-on-error-container: #93000a;
	--neuro-background: #faf9f7;      /* = surface */
	--neuro-on-background: #1a1c1b;   /* = on-surface */
	--neuro-on-surface-variant: #44474d;
	--neuro-surface-container-low: #f4f3f1;
	--neuro-surface-container-lowest: #ffffff;
	--neuro-outline-variant: #c4c6ce;

	/* Typographies */
	--neuro-font-body: Inter;
	--neuro-font-display: "Playfair Display";

	/* Espacements / layout */
	--neuro-margin-mobile: 24px;
	--neuro-margin-desktop: 80px;
	--neuro-gutter: 32px;
	--neuro-section-gap: 120px;
	--neuro-container-max: 1280px;

	/* Ombres */
	--neuro-shadow-ambient: 0 20px 40px -10px rgba(13, 35, 64, 0.05);
	--neuro-shadow-ambient-hover: 0 24px 48px -12px rgba(13, 35, 64, 0.08);
	--neuro-shadow-card: 0 20px 40px -10px rgba(13, 35, 64, 0.06);
	--neuro-shadow-card-hover: 0 24px 48px -12px rgba(13, 35, 64, 0.1);

	/* Transitions */
	--neuro-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   2. Reset / base
   ========================================================================== */

*,
:after,
:before {
	box-sizing: border-box;
	border: 0 solid #e5e7eb;
}

html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	-moz-tab-size: 4;
	tab-size: 4;
	font-family: ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
	font-feature-settings: normal;
	font-variation-settings: normal;
	-webkit-tap-highlight-color: transparent;
}

body {
	margin: 0;
	line-height: inherit;
}

hr {
	height: 0;
	color: inherit;
	border-top-width: 1px;
}

abbr:where([title]) {
	-webkit-text-decoration: underline dotted;
	text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit;
}

a {
	color: inherit;
	text-decoration: inherit;
}

b,
strong {
	font-weight: bolder;
}

code,
kbd,
pre,
samp {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
	font-feature-settings: normal;
	font-variation-settings: normal;
	font-size: 1em;
}

small {
	font-size: 80%;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

table {
	text-indent: 0;
	border-color: inherit;
	border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-feature-settings: inherit;
	font-variation-settings: inherit;
	font-size: 100%;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
}

button,
select {
	text-transform: none;
}

button,
input:where([type="button"]),
input:where([type="reset"]),
input:where([type="submit"]) {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
}

:-moz-focusring {
	outline: auto;
}

:-moz-ui-invalid {
	box-shadow: none;
}

progress {
	vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

summary {
	display: list-item;
}

blockquote,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
pre {
	margin: 0;
}

fieldset {
	margin: 0;
}

fieldset,
legend {
	padding: 0;
}

menu,
ol,
ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

dialog {
	padding: 0;
}

textarea {
	resize: vertical;
}

[role="button"],
button {
	cursor: pointer;
}

:disabled {
	cursor: default;
}

audio,
canvas,
embed,
iframe,
img,
object,
svg,
video {
	display: block;
	vertical-align: middle;
}

img,
video {
	max-width: 100%;
	height: auto;
}

[hidden]:where(:not([hidden="until-found"])) {
	display: none;
}

/* --- Base formulaires, champs utilisés --- */

input:where(:not([type])),
input:where([type="email"]),
input:where([type="tel"]),
input:where([type="text"]),
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: #fff;
	border-color: #6b7280;
	border-width: 1px;
	border-radius: 0;
	padding: 0.5rem 0.75rem;
	font-size: 1rem;
	line-height: 1.5rem;
}

input:where(:not([type])):focus,
input:where([type="email"]):focus,
input:where([type="tel"]):focus,
input:where([type="text"]):focus,
select:focus,
textarea:focus {
	outline: 2px solid transparent;
	outline-offset: 2px;
	box-shadow: 0 0 0 0 #fff, 0 0 0 1px #2563eb, 0 0 #0000;
	border-color: #2563eb;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
	color: #6b7280;
	opacity: 1;
}

input::placeholder,
textarea::placeholder {
	color: #6b7280;
	opacity: 1;
}

select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
	background-position: right 0.5rem center;
	background-repeat: no-repeat;
	background-size: 1.5em 1.5em;
	padding-right: 2.5rem;
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

select:where([multiple]),
select:where([size]:not([size="1"])) {
	background-image: none;
	background-position: 0 0;
	background-repeat: unset;
	background-size: initial;
	padding-right: 0.75rem;
	-webkit-print-color-adjust: unset;
	print-color-adjust: unset;
}

/* --- Base du thème --- */

.scroll-smooth {
	scroll-behavior: smooth;
}

body {
	background-color: var(--neuro-background);
	color: var(--neuro-on-background);
	font-family: var(--neuro-font-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection {
	background-color: var(--neuro-secondary);
	color: #fff;
}

.material-symbols-outlined {
	font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
}

.material-symbols-outlined.fill {
	font-variation-settings: "FILL" 1, "wght" 300, "GRAD" 0, "opsz" 24;
}

/* ==========================================================================
   3. Typographie (tokens du design system)
   ========================================================================== */

/* Display : 32px mobile → 64px desktop (page d'accueil) */
.neuro-type-display {
	font-family: var(--neuro-font-display);
	font-size: 32px;
	line-height: 1.2;
	font-weight: 600;
}

/* H1 de page : 32px mobile → 48px desktop */
.neuro-type-h1 {
	font-family: var(--neuro-font-display);
	font-size: 32px;
	line-height: 1.2;
	font-weight: 600;
}

.neuro-type-h2 {
	font-family: var(--neuro-font-display);
	font-size: 32px;
	line-height: 1.3;
	font-weight: 500;
}

.neuro-type-h3 {
	font-family: var(--neuro-font-display);
	font-size: 24px;
	line-height: 1.4;
	font-weight: 500;
}

/* Famille display seule (taille héritée — utilisé tel quel sur À propos) */
.neuro-font-display {
	font-family: var(--neuro-font-display);
}

.neuro-type-body-lg {
	font-family: var(--neuro-font-body);
	font-size: 18px;
	line-height: 1.6;
	font-weight: 400;
}

.neuro-type-body {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
}

.neuro-type-label-lg {
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
}

.neuro-type-label {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
}

/* Sur-titre : label 12px majuscules espacées (motif récurrent) */
.neuro-overline {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Couleurs de texte récurrentes au niveau contenu */
.neuro-text-primary {
	color: var(--neuro-primary);
}

.neuro-text-secondary {
	color: var(--neuro-secondary);
}

.neuro-text-muted {
	color: var(--neuro-on-surface-variant);
}

@media (min-width: 768px) {
	.neuro-type-display {
		font-size: 64px;
		line-height: 1.1;
		letter-spacing: -0.02em;
		font-weight: 700;
	}

	.neuro-type-h1 {
		font-size: 48px;
		line-height: 1.2;
		font-weight: 600;
	}
}

/* ==========================================================================
   4. Layout global
   ========================================================================== */

.neuro-main {
	padding-top: 100px;
}

.neuro-section {
	padding-left: var(--neuro-margin-mobile);
	padding-right: var(--neuro-margin-mobile);
}

.neuro-section--bg-base {
	background-color: var(--neuro-background);
}

.neuro-section--bg-soft {
	background-color: var(--neuro-surface-container-low);
}

.neuro-section--gap-top {
	padding-top: var(--neuro-section-gap);
}

.neuro-section--gap-bottom {
	padding-bottom: var(--neuro-section-gap);
}

.neuro-section--pb-sm {
	padding-bottom: 4rem;
}

.neuro-section--clip {
	overflow: hidden;
}

.neuro-section--center {
	text-align: center;
}

.neuro-container {
	max-width: var(--neuro-container-max);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.neuro-container--gap-top {
	padding-top: var(--neuro-section-gap);
}

.neuro-container--center {
	text-align: center;
}

/* Deux colonnes égales, centrées verticalement (héros internes) */
.neuro-split {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: var(--neuro-gutter);
	align-items: center;
}

/* Grille 12 colonnes */
.neuro-grid-12 {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: var(--neuro-gutter);
}

.neuro-grid-12--gap-24 {
	gap: 1.5rem;
}

.neuro-grid-12--center {
	align-items: center;
}

/* Grille de cartes 3 colonnes */
.neuro-cards-3 {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 2rem;
}

.neuro-cards-3--gap-tight {
	gap: 1.5rem;
}

/* Accueil : 24px mobile, 32px desktop */
.neuro-cards-3--gap-resp {
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.neuro-section {
		padding-left: var(--neuro-margin-desktop);
		padding-right: var(--neuro-margin-desktop);
	}

	.neuro-split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.neuro-grid-12 {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.neuro-cards-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.neuro-cards-3--gap-resp {
		gap: 2rem;
	}

	.neuro-cards-3--rows-220 {
		grid-auto-rows: 220px;
	}

	.neuro-cards-3--rows-240 {
		grid-auto-rows: 240px;
	}

	.neuro-col-2 {
		grid-column: span 2 / span 2;
	}

	.neuro-col-3 {
		grid-column: span 3 / span 3;
	}

	.neuro-col-4 {
		grid-column: span 4 / span 4;
	}

	.neuro-col-5 {
		grid-column: span 5 / span 5;
	}

	.neuro-col-7 {
		grid-column: span 7 / span 7;
	}

	.neuro-col-8 {
		grid-column: span 8 / span 8;
	}

	.neuro-col-9 {
		grid-column: span 9 / span 9;
	}

	.neuro-row-2 {
		grid-row: span 2 / span 2;
	}
}

/* ==========================================================================
   5. Header / navigation
   ========================================================================== */

.neuro-header {
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 50;
	background-color: hsla(40, 23%, 97%, 0.9);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.neuro-header__bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem var(--neuro-margin-mobile);
	max-width: var(--neuro-container-max);
	margin-left: auto;
	margin-right: auto;
}

.neuro-brand {
	display: flex;
	flex-direction: column;
	font-family: var(--neuro-font-display);
	font-size: 24px;
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--neuro-primary);
	transition: opacity 0.3s var(--neuro-ease);
}

.neuro-brand:hover {
	opacity: 0.8;
}

.neuro-brand:active {
	transform: scale(0.95);
}

.neuro-brand__eyebrow {
	display: block;
	font-size: 10px;
	letter-spacing: 0.3em;
	font-weight: 500;
	color: var(--neuro-secondary);
	margin-bottom: 0.25rem;
}

.neuro-nav {
	display: none;
}

.neuro-nav__list {
	display: flex;
	align-items: center;
	gap: var(--neuro-gutter);
}

.neuro-nav__item {
	position: relative;
}

.neuro-nav__link {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
}

.neuro-nav__link:hover {
	color: var(--neuro-primary);
	opacity: 0.8;
}

.neuro-nav__caret {
	font-size: 18px;
}

.neuro-nav__submenu {
	position: absolute;
	left: 0;
	top: 100%;
	margin-top: 0.5rem;
	min-width: 200px;
	background-color: var(--neuro-surface-container-lowest);
	border-radius: 0.5rem;
	box-shadow: var(--neuro-shadow-ambient-hover);
	border: 1px solid hsla(228, 9%, 79%, 0.4);
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.25rem);
	transition: all 0.2s var(--neuro-ease);
	z-index: 50;
}

.neuro-nav__item:hover > .neuro-nav__submenu,
.neuro-nav__item.is-open > .neuro-nav__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.neuro-nav__sublink {
	display: block;
	padding: 0.5rem 1rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	white-space: nowrap;
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.2s;
}

.neuro-nav__sublink:hover {
	color: var(--neuro-primary);
	background-color: var(--neuro-surface-container-low);
}

/* Sélecteur de langue */
.neuro-lang {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.025em;
}

.neuro-lang--desktop {
	display: none;
}

.neuro-lang--mobile {
	margin-top: 1rem;
}

.neuro-lang__sep {
	color: rgba(68, 71, 77, 0.4);
}

.neuro-lang__current {
	color: var(--neuro-primary);
	font-weight: 600;
}

.neuro-lang__link {
	color: var(--neuro-on-surface-variant);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
}

.neuro-lang__link:hover {
	color: var(--neuro-primary);
}

/* CTA de l'en-tête (desktop seulement) */
.neuro-header__cta {
	display: none;
	align-items: center;
	justify-content: center;
	background-color: var(--neuro-primary);
	color: #fff;
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
	padding: 0.75rem 1.5rem;
	border-radius: 0.5rem;
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.neuro-header__cta:hover {
	background-color: rgba(0, 13, 34, 0.9);
}

.neuro-header__cta:active {
	transform: scale(0.95);
}

/* Bouton hamburger */
.neuro-mobile-toggle {
	color: var(--neuro-primary);
	padding: 0.5rem;
}

/* Menu mobile */
.neuro-mobile-menu {
	display: none;
	flex-direction: column;
	gap: 0.25rem;
	padding-left: var(--neuro-margin-mobile);
	padding-right: var(--neuro-margin-mobile);
	padding-bottom: 1.5rem;
	background-color: hsla(40, 23%, 97%, 0.95);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.neuro-mobile-menu.is-open {
	display: flex;
}

.neuro-mobile-menu__heading {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-secondary);
	padding-top: 0.5rem;
	padding-bottom: 0.25rem;
}

.neuro-mobile-menu__link {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

.neuro-mobile-menu__link:hover {
	color: var(--neuro-primary);
}

.neuro-mobile-menu__link--divided {
	margin-top: 0.5rem;
	border-top: 1px solid hsla(228, 9%, 79%, 0.4);
	padding-top: 1rem;
}

.neuro-mobile-menu__cta {
	margin-top: 1rem;
	width: 100%;
}

@media (min-width: 768px) {
	.neuro-nav {
		display: flex;
		align-items: center;
		gap: var(--neuro-gutter);
	}

	.neuro-lang--desktop {
		display: flex;
	}

	.neuro-header__cta {
		display: inline-flex;
	}

	.neuro-mobile-toggle {
		display: none;
	}

	.neuro-mobile-menu,
	.neuro-mobile-menu.is-open {
		display: none;
	}

	.neuro-header__bar {
		padding-left: var(--neuro-margin-desktop);
		padding-right: var(--neuro-margin-desktop);
	}
}

/* ==========================================================================
   6. Boutons / CTA
   ========================================================================== */

.neuro-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
	padding: 1rem 2rem;
	border-radius: 0.5rem;
	transition: all 0.3s var(--neuro-ease);
}

.neuro-btn--primary {
	background-color: var(--neuro-primary);
	color: #fff;
}

.neuro-btn--primary:hover {
	background-color: rgba(0, 13, 34, 0.9);
}

.neuro-btn--outline {
	background-color: transparent;
	border: 1px solid var(--neuro-secondary);
	color: var(--neuro-secondary);
}

.neuro-btn--outline:hover {
	background-color: rgba(125, 88, 1, 0.05);
}

.neuro-btn--white {
	background-color: #fff;
	color: var(--neuro-primary);
}

.neuro-btn--white:hover {
	background-color: hsla(0, 0%, 100%, 0.9);
}

.neuro-btn--outline-white {
	background-color: transparent;
	border: 1px solid #fff;
	color: #fff;
}

.neuro-btn--outline-white:hover {
	background-color: hsla(0, 0%, 100%, 0.1);
}

.neuro-btn--shadow {
	box-shadow: var(--neuro-shadow-ambient);
}

.neuro-btn--shadow:hover {
	box-shadow: var(--neuro-shadow-ambient-hover);
}

.neuro-btn--lift:hover {
	transform: translateY(-0.125rem);
}

/* Classe historique (formulaire de contact, CTA menu mobile) */
.btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.5rem;
	background-color: var(--neuro-primary);
	padding: 1rem 2rem;
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
	color: #fff;
	transition: all 0.3s var(--neuro-ease);
}

.btn-primary:hover {
	background-color: rgba(0, 13, 34, 0.9);
}

/* Rangée de boutons (héros / bandeaux CTA) */
.neuro-cta-row {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

@media (min-width: 640px) {
	.neuro-cta-row {
		flex-direction: row;
	}
}

/* ==========================================================================
   7. Composants partagés
   ========================================================================== */

/* Pastille de sur-titre des héros internes */
.neuro-pill {
	display: inline-block;
	background-color: var(--neuro-surface-container-low);
	color: var(--neuro-primary);
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 1.5rem;
}

/* Étiquette compacte des cartes (accueil) */
.neuro-chip {
	display: inline-block;
	background-color: var(--neuro-surface-container-low);
	color: var(--neuro-primary);
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 1rem;
}

/* Badge translucide (panneau carte contact) */
.neuro-badge {
	display: inline-block;
	background-color: hsla(0, 0%, 100%, 0.15);
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Cercle d'icône */
.neuro-icon-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border-radius: 9999px;
	background-color: var(--neuro-surface-container-low);
	color: var(--neuro-primary);
}

.neuro-icon-circle--sm {
	width: 2.5rem;
	height: 2.5rem;
}

.neuro-icon-circle--md {
	width: 3rem;
	height: 3rem;
}

.neuro-icon-circle--lg {
	width: 3.5rem;
	height: 3.5rem;
}

.neuro-icon-circle--dark {
	background-color: var(--neuro-primary);
	color: #fff;
}

/* En-tête de section centré */
.neuro-section-head {
	text-align: center;
	margin-bottom: 4rem;
}

.neuro-section-head__title {
	color: var(--neuro-primary);
	margin-bottom: 1rem;
}

.neuro-section-head__sub {
	color: var(--neuro-on-surface-variant);
}

.neuro-section-head__sub--narrow {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

/* Titre de section seul, centré (Ados / Enfants) */
.neuro-section-title {
	color: var(--neuro-primary);
	margin-bottom: 3rem;
	text-align: center;
}

/* Héros des pages internes */
.neuro-page-hero__title {
	color: var(--neuro-primary);
	margin-bottom: 1.5rem;
}

.neuro-page-hero__lead {
	color: var(--neuro-on-surface-variant);
}

.neuro-page-hero__lead--spaced {
	margin-bottom: 2.5rem;
}

.neuro-page-hero__lead--narrow {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

/* Image de héros interne */
.neuro-hero-media {
	width: 100%;
	height: auto;
	border-radius: 24px;
	box-shadow: var(--neuro-shadow-ambient-hover);
}

/* Photo avec halo décoratif (Adultes) */
.neuro-photo {
	position: relative;
}

.neuro-photo__halo {
	position: absolute;
	inset: -1rem;
	background-color: rgba(125, 88, 1, 0.1);
	border-radius: 24px;
	z-index: -10;
	display: none;
}

@media (min-width: 768px) {
	.neuro-photo__halo {
		display: block;
	}
}

/* Photo avec voile teinté (Ados) */
.neuro-photo__tint {
	position: absolute;
	inset: 0;
	background-color: var(--neuro-primary);
	mix-blend-mode: overlay;
	border-radius: 24px;
	opacity: 0.2;
}

/* Effets historiques (déjà sémantiques) */
.soft-outline {
	outline: 1px solid rgba(13, 35, 64, 0.05);
	outline-offset: -1px;
}

.soft-shadow {
	box-shadow: var(--neuro-shadow-card);
}

.hover-lift {
	transition: transform 300ms ease, box-shadow 300ms ease;
}

.hover-lift:hover {
	transform: translateY(-4px);
	box-shadow: var(--neuro-shadow-card-hover);
}

.ambient-shadow {
	box-shadow: var(--neuro-shadow-card);
}

.card-border {
	border: 1px solid rgba(13, 35, 64, 0.06);
}

.ambient-card {
	background-color: var(--neuro-surface-container-lowest);
	border: 1px solid rgba(13, 35, 64, 0.06);
	box-shadow: var(--neuro-shadow-card);
	transition: transform 300ms ease, box-shadow 300ms ease;
}

.ambient-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--neuro-shadow-card-hover);
}

.border-subtle {
	border: 1px solid rgba(13, 35, 64, 0.06);
}

/* ==========================================================================
   8. Formulaires
   ========================================================================== */

.input-minimal {
	width: 100%;
	border-width: 0 0 1px;
	border-color: var(--neuro-outline-variant);
	background-color: transparent;
	padding: 0.75rem 0.25rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-background);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
}

.input-minimal::-moz-placeholder {
	color: rgba(68, 71, 77, 0.6);
}

.input-minimal::placeholder {
	color: rgba(68, 71, 77, 0.6);
}

.input-minimal:focus {
	border-color: var(--neuro-primary);
	outline: 2px solid transparent;
	outline-offset: 2px;
	box-shadow: none;
}

/* Formulaire de contact : espacement vertical entre blocs */
.neuro-form > * + * {
	margin-top: 2rem;
}

.neuro-form__grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.neuro-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.neuro-field__label {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-on-surface-variant);
}

.neuro-field__error {
	color: var(--neuro-error);
	font-size: 0.875rem;
	line-height: 1.25rem;
	margin-top: 0.25rem;
}

.neuro-form__privacy {
	font-family: var(--neuro-font-body);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: rgba(68, 71, 77, 0.7);
}

.neuro-alert {
	margin-bottom: 2rem;
	padding: 1rem;
	border-radius: 0.5rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
}

.neuro-alert--success {
	background-color: var(--neuro-secondary-container);
	color: var(--neuro-on-secondary-container);
}

.neuro-alert--error {
	background-color: var(--neuro-error-container);
	color: var(--neuro-on-error-container);
}

/* ==========================================================================
   9. Pied de page
   ========================================================================== */

.neuro-footer {
	width: 100%;
	padding-top: var(--neuro-section-gap);
	padding-bottom: 2rem;
	background-color: var(--neuro-surface-container-lowest);
	margin-top: auto;
	border-top: 1px solid hsla(40, 6%, 91%, 0.5);
}

.neuro-footer__grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: var(--neuro-gutter);
	padding-left: var(--neuro-margin-mobile);
	padding-right: var(--neuro-margin-mobile);
	max-width: var(--neuro-container-max);
	margin-left: auto;
	margin-right: auto;
}

.neuro-footer__brand-col {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.neuro-footer__brand {
	font-family: var(--neuro-font-display);
	font-size: 24px;
	line-height: 1.25;
	font-weight: 500;
	color: var(--neuro-primary);
}

.neuro-footer__tagline {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

.neuro-footer__col {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.neuro-footer__heading {
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
	color: var(--neuro-primary);
	text-transform: uppercase;
}

.neuro-footer__list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.neuro-footer__link {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.15s;
}

.neuro-footer__link:hover {
	color: var(--neuro-secondary);
}

.neuro-footer__bottom {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid hsla(40, 6%, 91%, 0.3);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	justify-content: space-between;
	align-items: center;
	color: var(--neuro-on-surface-variant);
	font-family: var(--neuro-font-body);
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.neuro-footer__bottom-link {
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.15s;
}

.neuro-footer__bottom-link:hover {
	color: var(--neuro-secondary);
}

@media (min-width: 640px) {
	.neuro-footer__bottom {
		flex-direction: row;
	}
}

@media (min-width: 768px) {
	.neuro-footer__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		padding-left: var(--neuro-margin-desktop);
		padding-right: var(--neuro-margin-desktop);
	}

	.neuro-footer__bottom {
		grid-column: span 4 / span 4;
	}
}

/* ==========================================================================
   10. Page d'accueil
   ========================================================================== */

.neuro-hero {
	position: relative;
	width: 100%;
	min-height: 870px;
	display: flex;
	align-items: center;
	background-color: var(--neuro-surface-container-low);
	padding: var(--neuro-section-gap) var(--neuro-margin-mobile);
	overflow: hidden;
}

.neuro-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	opacity: 0.4;
	mix-blend-mode: multiply;
	background-image: url("assets/img/accueil-1.jpg");
	background-size: cover;
	background-position: center;
}

.neuro-hero__scrim {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to right, #faf9f7, hsla(40, 23%, 97%, 0.8), transparent);
	z-index: 10;
	width: 75%;
}

.neuro-hero__content {
	position: relative;
	z-index: 20;
	max-width: var(--neuro-container-max);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: var(--neuro-gutter);
}

.neuro-hero__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}

.neuro-hero__kicker {
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.1em;
	font-weight: 600;
	color: var(--neuro-secondary);
	text-transform: uppercase;
	margin-bottom: 1.5rem;
}

.neuro-hero__title {
	color: var(--neuro-primary);
	margin-bottom: 2rem;
	max-width: 56rem;
}

.neuro-hero__lead {
	color: var(--neuro-on-surface-variant);
	margin-bottom: 3rem;
	max-width: 42rem;
}

@media (min-width: 768px) {
	.neuro-hero {
		padding-left: var(--neuro-margin-desktop);
		padding-right: var(--neuro-margin-desktop);
	}

	.neuro-hero__content {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.neuro-hero__text {
		grid-column: span 8 / span 8;
	}
}

/* Cartes de profils (accueil) */
.neuro-feature-card {
	border-radius: 24px;
	padding: 2rem;
	box-shadow: var(--neuro-shadow-ambient);
	transition: all 0.5s var(--neuro-ease);
	cursor: pointer;
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 320px;
}

.neuro-feature-card:hover {
	box-shadow: var(--neuro-shadow-ambient-hover);
}

.neuro-feature-card--wide {
	background-color: var(--neuro-surface-container-lowest);
	justify-content: flex-end;
}

.neuro-feature-card--soft {
	background-color: var(--neuro-surface-container-low);
}

.neuro-feature-card--dark {
	background-color: var(--neuro-primary);
	color: #fff;
}

.neuro-feature-card__watermark {
	position: absolute;
	top: 0;
	right: 0;
	padding: 2rem;
	color: var(--neuro-primary);
	opacity: 0.2;
	transition: all 0.5s var(--neuro-ease);
}

.neuro-feature-card:hover .neuro-feature-card__watermark {
	opacity: 1;
	transform: scale(1.1);
}

.neuro-feature-card__watermark .material-symbols-outlined {
	font-size: 80px;
}

.neuro-feature-card__icon {
	color: var(--neuro-secondary);
	margin-bottom: 1.5rem;
}

.neuro-feature-card__icon--fixed {
	color: var(--neuro-secondary-fixed);
}

.neuro-feature-card__icon .material-symbols-outlined {
	font-size: 48px;
}

.neuro-feature-card__body {
	position: relative;
	z-index: 10;
}

.neuro-feature-card__title {
	color: var(--neuro-primary);
	margin-bottom: 0.5rem;
}

.neuro-feature-card--dark .neuro-feature-card__title {
	color: #fff;
}

.neuro-feature-card__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

.neuro-feature-card__text--constrained {
	max-width: 28rem;
}

.neuro-feature-card--dark .neuro-feature-card__text {
	color: hsla(0, 0%, 100%, 0.8);
}

@media (min-width: 768px) {
	.neuro-feature-card--wide {
		grid-column: span 2 / span 2;
		padding: 2.5rem;
	}
}

/* ==========================================================================
   11. Sections spécifiques aux pages
   ========================================================================== */

/* --- Approche : cartes d'étapes --- */
.neuro-step-card {
	background-color: var(--neuro-surface-container-lowest);
	border-radius: 24px;
	padding: 2rem;
}

.neuro-step-card__icon {
	margin-bottom: 1.5rem;
}

.neuro-step-card__title {
	color: var(--neuro-primary);
	margin-bottom: 0.75rem;
}

.neuro-step-card__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

/* --- À propos : contenu centré --- */
.neuro-statement__title {
	color: var(--neuro-primary);
	margin-bottom: 1.5rem;
}

.neuro-statement__text {
	color: var(--neuro-on-surface-variant);
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
}

.neuro-statement__heading {
	color: var(--neuro-primary);
	margin-bottom: 4rem;
	text-align: center;
}

/* --- À propos : ligne du temps --- */
.neuro-timeline {
	position: relative;
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 2rem;
}

.neuro-timeline__line {
	position: absolute;
	left: 0.5rem;
	top: 0;
	bottom: 0;
	width: 1px;
	background-color: var(--neuro-outline-variant);
}

.neuro-timeline__row {
	position: relative;
	display: flex;
	align-items: flex-start;
	margin-bottom: 3rem;
}

.neuro-timeline__row:last-child {
	margin-bottom: 0;
}

.neuro-timeline__dot {
	display: flex;
	width: 1rem;
	height: 1rem;
	border-radius: 9999px;
	background-color: var(--neuro-secondary);
	border: 4px solid var(--neuro-background);
	position: absolute;
	left: -2rem;
	transform: translateX(-50%);
	z-index: 10;
}

.neuro-timeline__cell {
	max-width: 42rem;
	text-align: left;
}

.neuro-timeline__title {
	color: var(--neuro-primary);
	margin-bottom: 0.25rem;
}

.neuro-timeline__sub {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-on-surface-variant);
}

@media (min-width: 768px) {
	.neuro-timeline {
		max-width: 40rem;
		padding-left: 3rem;
	}

	.neuro-timeline__line {
		left: 0.5rem;
	}

	.neuro-timeline__dot {
		left: -2.5rem;
	}
}

/* --- Ados / Enfants : tuiles --- */
.neuro-tile {
	border-radius: 24px;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	position: relative;
	overflow: hidden;
}

.neuro-tile--light {
	background-color: var(--neuro-surface-container-lowest);
}

.neuro-tile--soft {
	background-color: var(--neuro-surface-container-low);
}

.neuro-tile--dark {
	background-color: var(--neuro-primary);
	color: #fff;
}

.neuro-tile--top {
	justify-content: flex-start;
}

.neuro-tile__icon {
	font-size: 32px;
	margin-bottom: 1rem;
	display: block;
}

.neuro-tile__icon--primary {
	color: var(--neuro-primary);
}

.neuro-tile__title {
	margin-bottom: 0.5rem;
}

.neuro-tile__title--primary {
	color: var(--neuro-primary);
}

.neuro-tile__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
}

.neuro-tile__text--muted {
	color: var(--neuro-on-surface-variant);
}

.neuro-tile__text--inverse {
	color: hsla(0, 0%, 100%, 0.8);
}

.neuro-tile__bg {
	position: absolute;
	inset: 0;
	opacity: 0.15;
	background-image: var(--neuro-tile-bg);
	background-size: cover;
	background-position: center;
}

.neuro-tile__body {
	position: relative;
	z-index: 10;
}

/* --- Enfants : étapes d'approche --- */
.neuro-approach__title {
	color: var(--neuro-primary);
	margin-bottom: 2rem;
}

.neuro-approach__list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.neuro-approach__row {
	display: flex;
	gap: 1rem;
}

.neuro-approach__row .neuro-icon-circle--sm .material-symbols-outlined {
	font-size: 20px;
}

.neuro-approach__row-title {
	color: var(--neuro-primary);
	margin-bottom: 0.25rem;
}

.neuro-approach__row-text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

/* Colonnes inversées mobile/desktop (Enfants, section approche) */
.neuro-split__media--swap {
	order: 2;
}

.neuro-split__text--swap {
	order: 1;
}

@media (min-width: 768px) {
	.neuro-split__media--swap {
		order: 1;
	}

	.neuro-split__text--swap {
		order: 2;
	}
}

/* --- Programmes : cartes --- */
.neuro-program-card {
	background-color: var(--neuro-surface-container-lowest);
	border-radius: 24px;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	position: relative;
	overflow: hidden;
}

.neuro-program-card__watermark {
	position: absolute;
	top: 0;
	right: 0;
	padding: 1.5rem;
	color: var(--neuro-primary);
	opacity: 0.1;
}

.neuro-program-card__watermark .material-symbols-outlined {
	font-size: 72px;
}

.neuro-program-card__body {
	position: relative;
	z-index: 10;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.neuro-program-card__icon {
	margin-bottom: 1.5rem;
}

.neuro-program-card__title {
	color: var(--neuro-primary);
	margin-bottom: 0.75rem;
}

.neuro-program-card__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	margin-bottom: 1.5rem;
}

.neuro-program-card__list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 2rem;
}

.neuro-program-card__item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

.neuro-program-card__bullet {
	color: var(--neuro-secondary);
	font-size: 18px;
}

.neuro-program-card__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--neuro-font-body);
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	font-weight: 600;
	color: var(--neuro-secondary);
	transition: opacity 0.3s var(--neuro-ease);
}

.neuro-program-card__link:hover {
	opacity: 0.8;
}

/* --- Programmes : bandeau CTA --- */
.neuro-cta-band {
	background-color: var(--neuro-primary);
	color: #fff;
	border-radius: 24px;
	padding: 2.5rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.neuro-cta-band__title {
	margin-bottom: 1rem;
}

.neuro-cta-band__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: hsla(0, 0%, 100%, 0.8);
	max-width: 36rem;
	margin-bottom: 2rem;
}

.neuro-cta-band-wrap {
	margin-top: 4rem;
}

@media (min-width: 768px) {
	.neuro-cta-band {
		padding: 4rem;
	}
}

/* --- Rendez-vous : barre d'étapes --- */
.neuro-steps {
	display: none;
}

.neuro-steps__track {
	position: sticky;
	top: 120px;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.neuro-steps__line {
	position: absolute;
	left: 15px;
	top: 0.5rem;
	bottom: 0.5rem;
	width: 1px;
	background-color: var(--neuro-outline-variant);
}

.neuro-steps__row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	z-index: 10;
}

.neuro-steps__num {
	width: 2rem;
	height: 2rem;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	background-color: var(--neuro-surface-container-low);
	color: var(--neuro-on-surface-variant);
}

.neuro-steps__num.is-active {
	background-color: var(--neuro-primary);
	color: #fff;
}

.neuro-steps__eyebrow {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-on-surface-variant);
}

.neuro-steps__label {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

.neuro-steps__label.is-active {
	color: var(--neuro-primary);
	font-weight: 600;
}

@media (min-width: 768px) {
	.neuro-steps {
		display: block;
	}
}

/* --- Rendez-vous : cartes de services --- */
.neuro-services {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.neuro-service-card {
	border-radius: 24px;
	padding: 2rem;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.neuro-service-card__icon .material-symbols-outlined {
	font-size: 28px;
}

.neuro-service-card__content {
	flex: 1 1 0%;
}

.neuro-service-card__title {
	color: var(--neuro-primary);
	margin-bottom: 0.25rem;
}

.neuro-service-card__text {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	margin-bottom: 0.5rem;
}

.neuro-service-card__duration {
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-secondary);
}

.neuro-service-card__arrow {
	color: var(--neuro-primary);
}

/* --- Contact : onglets de cliniques --- */
.neuro-clinic-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.neuro-clinic-tab {
	border-radius: 9999px;
	border: 1px solid var(--neuro-outline-variant);
	padding: 0.5rem 1rem;
	font-family: var(--neuro-font-body);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--neuro-on-surface-variant);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
}

.neuro-clinic-tab.is-active {
	border-color: var(--neuro-primary);
	background-color: var(--neuro-primary);
	color: #fff;
}

.neuro-clinic-tab:hover:not(.is-active) {
	border-color: var(--neuro-primary);
	color: var(--neuro-primary);
}

/* --- Contact : carte Leaflet --- */
.neuro-map-card {
	border-radius: 24px;
	overflow: hidden;
	position: relative;
	min-height: 280px;
}

.neuro-map-canvas {
	isolation: isolate;
	width: 100%;
	height: 280px;
}

#neuro-clinic-map {
	background-color: var(--neuro-surface-container-low);
}

#neuro-clinic-map .leaflet-control-attribution {
	font-size: 10px;
}

.neuro-map-pin-dot {
	position: relative;
	display: block;
	width: 28px;
	height: 28px;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	background: var(--neuro-primary);
	border: 2px solid #ffffff;
	box-shadow: 0 6px 16px rgba(13, 35, 64, 0.35);
}

.neuro-map-pin-dot::after {
	content: "";
	position: absolute;
	top: 7px;
	left: 7px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #ffffff;
}

.neuro-map-overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(0, 13, 34, 0.9);
	color: #fff;
	padding: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem;
	pointer-events: none;
}

.neuro-map-overlay__title {
	margin-bottom: 0.25rem;
}

.neuro-map-overlay__address {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: hsla(0, 0%, 100%, 0.8);
}

@media (min-width: 768px) {
	.neuro-map-canvas {
		height: 100%;
		position: absolute;
		inset: 0;
	}
}

/* --- Contact : cartes d'infos --- */
.neuro-contact-card {
	background-color: var(--neuro-surface-container-lowest);
	border-radius: 24px;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.neuro-contact-panel {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.neuro-contact-row {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.neuro-contact-row__value {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-primary);
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.15s;
}

a.neuro-contact-row__value:hover {
	color: var(--neuro-secondary);
}

@media (min-width: 768px) and (max-width: 900px) {
	.neuro-contact-row {
		gap: 0.625rem;
	}
}

.neuro-contact-row__value--muted {
	color: var(--neuro-on-surface-variant);
}

.neuro-hours-card {
	background-color: var(--neuro-primary-container);
	color: #fff;
	border-radius: 24px;
	padding: 2rem;
}

.neuro-hours-card__title {
	margin-bottom: 1rem;
}

.neuro-hours-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: hsla(0, 0%, 100%, 0.85);
}

.neuro-hours-list__row {
	display: flex;
	justify-content: space-between;
}

/* --- Contact : carte du formulaire --- */
.neuro-form-card {
	background-color: var(--neuro-surface-container-lowest);
	border-radius: 24px;
	padding: 2rem;
}

.neuro-form-card__title {
	color: var(--neuro-primary);
	margin-bottom: 0.5rem;
}

.neuro-form-card__sub {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
	margin-bottom: 2rem;
}

@media (min-width: 768px) {
	.neuro-form-card {
		padding: 3rem;
	}
}

/* --- Gabarits génériques (page.php / index.php) --- */
.neuro-page__title {
	color: var(--neuro-primary);
	margin-bottom: 2rem;
}

.neuro-page__content {
	color: var(--neuro-on-surface-variant);
}

.neuro-archive {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.neuro-archive__title {
	color: var(--neuro-primary);
	margin-bottom: 1rem;
}

.neuro-archive__link {
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.15s;
}

.neuro-archive__link:hover {
	color: var(--neuro-secondary);
}

.neuro-archive__excerpt {
	font-family: var(--neuro-font-body);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--neuro-on-surface-variant);
}

/* --- Fil d'Ariane (invisible, lecteurs d'écran) --- */
.neuro-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem;
}

.neuro-breadcrumbs__item {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.neuro-breadcrumbs__sep {
	color: rgba(68, 71, 77, 0.4);
}

.neuro-breadcrumbs__link {
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-timing-function: var(--neuro-ease);
	transition-duration: 0.3s;
}

.neuro-breadcrumbs__link:hover {
	color: var(--neuro-primary);
}

.neuro-breadcrumbs__current {
	color: var(--neuro-primary);
	font-weight: 500;
}

/* ==========================================================================
   12. Animations
   ========================================================================== */

.fade-in-up {
	animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	opacity: 0;
	transform: translateY(20px);
}

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.delay-100 {
	animation-delay: 100ms;
}

.delay-200 {
	animation-delay: 200ms;
}

.delay-300 {
	animation-delay: 300ms;
}

/* ==========================================================================
   13. Utilitaires indispensables (accroches JavaScript / accessibilité)
   ========================================================================== */

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/* Basculé par clinic-map.js et utilisé par le champ anti-spam ;
   volontairement en fin de feuille pour primer sur les display des composants. */
.hidden {
	display: none;
}
