/*
 * Think2Make — composants. Référence : prototype/source/v2.py (constante CSS).
 * Couleurs, tailles et espacements : variables issues de theme.json (--wp--preset--*, --wp--custom--*).
 * Points de rupture de la maquette : 1100, 980, 640 px.
 */

/* ---------------------------------------------------------------- base */
/* Comme la maquette : dimensions bordures et marges internes comprises. */
*,
*::before,
*::after {
	box-sizing: border-box;
}
body {
	-webkit-font-smoothing: antialiased;
}
.wp-site-blocks {
	overflow-x: clip;
}
h1, h2, h3, h4 {
	text-wrap: balance;
}
.screen-reader-text:not(:focus) {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ---------------------------------------------------------------- boutons */
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	border: 1.5px solid var(--wp--preset--color--ink);
	padding: 12px 22px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

/* Icônes (tracés de la maquette, prototype/source/v2.py « IC ») : masques SVG, couleur = couleur du texte. */
:root {
	--t2m-i-cal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
	--t2m-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--t2m-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 6l-10 7L2 6'/%3E%3C/svg%3E");
	--t2m-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--t2m-i-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E");
	--t2m-i-chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	--t2m-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
	--t2m-i-dl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E");
	--t2m-i-ext: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7M10 14L21 3M21 14v7H3V3h7'/%3E%3C/svg%3E");
	--t2m-i-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.7 12.4a1 1 0 0 0 1 .8h9.6a1 1 0 0 0 1-.8L21 7H6'/%3E%3C/svg%3E");
}

/* Icône de bouton : classe « t2m-ico-<nom> » posée dans les modèles, avant le texte ; « t2m-ico-after » la place après. */
[class*="t2m-ico-"] > .wp-block-button__link::before,
.t2m-ico-after > .wp-block-button__link::after {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--t2m-ico) center / contain no-repeat;
	mask: var(--t2m-ico) center / contain no-repeat;
}
.t2m-ico-after > .wp-block-button__link::before {
	content: none;
}
.t2m-ico-after > .wp-block-button__link::after {
	width: 16px;
	height: 16px;
}
.t2m-ico-cal { --t2m-ico: var(--t2m-i-cal); }
.t2m-ico-phone { --t2m-ico: var(--t2m-i-phone); }
.t2m-ico-mail { --t2m-ico: var(--t2m-i-mail); }
.t2m-ico-arrow { --t2m-ico: var(--t2m-i-arrow); }
.t2m-ico-down { --t2m-ico: var(--t2m-i-down); }
.t2m-ico-chev { --t2m-ico: var(--t2m-i-chev); }
.t2m-ico-check { --t2m-ico: var(--t2m-i-check); }
.t2m-ico-dl { --t2m-ico: var(--t2m-i-dl); }
.t2m-ico-ext { --t2m-ico: var(--t2m-i-ext); }
.t2m-ico-cart { --t2m-ico: var(--t2m-i-cart); }

/* Liste sans puces (style de bloc « Sans puces ») */
.wp-block-list.is-style-plain {
	list-style: none;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* ---------------------------------------------------------------- logo (bloc t2m/logo) */
.t2m-logo {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.05;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}
.t2m-logo b {
	font-size: 25px;
	font-weight: 800;
	letter-spacing: -.5px;
	color: var(--wp--preset--color--ink);
}
.t2m-logo b span {
	color: var(--wp--preset--color--red);
}
.t2m-logo small {
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}
a.t2m-logo:hover b {
	color: var(--wp--preset--color--ink);
}
.t2m-logo.is-style-footer b {
	font-size: 22px;
	letter-spacing: 0;
	color: var(--wp--preset--color--white);
}
.t2m-logo.is-style-footer b span {
	color: var(--wp--preset--color--red-on-dark);
}

/* ---------------------------------------------------------------- en-tête */
.t2m-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
@media (max-width: 600px) {
	.admin-bar .t2m-header { top: 0; }
}

/* Liens (le bloc Navigation leur impose color: inherit) */
.t2m-nav .wp-block-navigation-item > .wp-block-navigation-item__content {
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}
.t2m-nav .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.t2m-nav .wp-block-navigation-item.is-current-section > .wp-block-navigation-item__content,
.t2m-nav .has-child > .wp-block-navigation-item__content:hover + .wp-block-navigation__submenu-icon,
.t2m-nav .has-child.is-current-section > .wp-block-navigation__submenu-icon {
	color: var(--wp--preset--color--red);
}

/* Sélecteur de langue (bloc t2m/lang-switch) */
.t2m-lang {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}
.t2m-lang strong {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}
.t2m-lang a {
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}
.t2m-lang a:hover {
	color: var(--wp--preset--color--red);
}

/* Menu déroulant « Services » (maquette : .dd / .ddp) */
.t2m-nav .wp-block-navigation-submenu {
	gap: 4px;
}
.t2m-nav .wp-block-navigation__submenu-icon {
	width: 14px;
	height: 14px;
	margin-left: 0;
	padding: 0;
}
.t2m-nav .wp-block-navigation__submenu-icon svg {
	width: 14px;
	height: 14px;
	stroke-width: 2px;
}
.t2m-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	top: calc(100% + 12px);
	left: -16px;
	padding: 8px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--m);
	box-shadow: var(--wp--custom--shadow--panel);
	transform: translateY(6px);
	transition: opacity .2s, transform .2s, visibility .2s;
}
.t2m-nav .wp-block-navigation__submenu-container::before {
	/* Pont invisible entre le lien et le panneau : le survol ne se perd pas. */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -13px;
	height: 13px;
}
.wp-block-navigation.t2m-nav .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
.wp-block-navigation.t2m-nav .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
.wp-block-navigation.t2m-nav .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	width: 320px;
	min-width: 320px;
	transform: none;
}
.t2m-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item {
	width: 100%;
}
.t2m-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	padding: 10px 12px;
	border-radius: var(--wp--custom--radius--s);
	font-weight: 600;
	line-height: 1.6;
}
.t2m-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--soft);
}
.t2m-nav .wp-block-navigation-item__description {
	display: block;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}
.t2m-nav .t2m-nav__compare {
	border-top: 1px solid var(--wp--preset--color--line);
	margin-top: 4px;
}

/* Bouton du menu mobile (maquette : .mnav summary) */
.t2m-nav .wp-block-navigation__responsive-container-open,
.t2m-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--m);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}
.t2m-nav .wp-block-navigation__submenu-icon:focus-visible,
.t2m-nav .wp-block-navigation__responsive-container-open:focus-visible,
.t2m-nav .wp-block-navigation__responsive-container-close:focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}
.t2m-nav .wp-block-navigation__responsive-container-open svg,
.t2m-nav .wp-block-navigation__responsive-container-close svg {
	width: 22px;
	height: 22px;
}

/* Éléments réservés au menu mobile (« English », bouton de rendez-vous) */
.t2m-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .t2m-nav__mobile-only {
	display: none;
}

@media (max-width: 1100px) {
	.t2m-hd .t2m-hd__cta { display: none; }
	.t2m-hd__nav,
	.t2m-nav .wp-block-navigation__container { gap: 18px; }
	.t2m-nav { font-size: var(--wp--preset--font-size--small); }
}

/* Menu mobile dès 980 px (le bloc Navigation bascule par défaut à 600 px). */
@media (max-width: 980px) {
	.t2m-lang { display: none; }
	.t2m-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.t2m-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Panneau du menu mobile : sous l'en-tête, pleine largeur (maquette : .mnav .panel). */
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--wp--custom--header-height));
	left: 0;
	right: 0;
	bottom: auto;
	max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - var(--wp--custom--header-height));
	padding: 8px var(--wp--custom--gutter) 20px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	border-bottom: 1px solid var(--wp--preset--color--line);
	box-shadow: 0 20px 30px -20px rgba(22, 24, 29, .35);
	animation: none;
	font-size: 18px;
}
@media (max-width: 600px) {
	.admin-bar .t2m-nav .wp-block-navigation__responsive-container.is-menu-open { top: calc(46px + var(--wp--custom--header-height)); }
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	/* Le bouton de fermeture prend la place du bouton d'ouverture, dans l'en-tête. */
	position: fixed;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + (var(--wp--custom--header-height) - 44px) / 2);
	right: var(--wp--custom--gutter);
	display: flex;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 0;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	gap: 0 !important;
	width: 100% !important;
	align-items: stretch !important;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	align-items: stretch;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.6;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding: 0 !important;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding-left: 16px !important;
	font-size: 16px;
	font-weight: 500;
	color: var(--wp--preset--color--body);
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__description,
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .t2m-nav__compare,
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-buttons {
	width: 100%;
	padding-top: 16px;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-button,
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-button__link {
	width: 100%;
}
.t2m-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-button__link {
	font-size: 16px;
	border-bottom: 0;
	padding: 12px 22px !important;
}

/* ---------------------------------------------------------------- pied de page */
.t2m-ft a {
	color: var(--wp--preset--color--on-dark);
	text-decoration: none;
}
.t2m-ft a:hover {
	color: var(--wp--preset--color--white);
}
.t2m-ft .t2m-ft__cols {
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
}
.t2m-ft .t2m-ft__title {
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0;
}
.t2m-ft .t2m-logo b {
	line-height: 1.6;
}
@media (max-width: 980px) {
	.t2m-ft .t2m-ft__cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.t2m-ft .t2m-ft__cols { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- choix en pilules (maquette : .chip) — filtres, formulaires */
.t2m-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.t2m-chip {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--wp--custom--color--field-border);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s;
}
.t2m-chip:hover {
	border-color: var(--wp--preset--color--ink);
}
a.t2m-chip {
	text-decoration: none;
}
.t2m-chip[aria-pressed="true"],
.t2m-chip[aria-current="page"] {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}
.t2m-chip:focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

/* ---------------------------------------------------------------- boutons et champs des formulaires (blocs t2m/rdv, t2m/book-form) */
.t2m-btn:focus-visible { outline: 3px solid var(--wp--custom--color--focus); outline-offset: 3px; }
.t2m-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 22px;
	border: 1.5px solid transparent;
	border-radius: var(--wp--custom--radius--s);
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--ui);
	font-weight: 600;
	line-height: 1.6;
	cursor: pointer;
	transition: background-color .2s;
}
.t2m-btn:hover { background: var(--wp--preset--color--red-dark); }
.t2m-btn[aria-disabled="true"] { opacity: .35; cursor: not-allowed; }

.t2m-field { display: flex; flex-direction: column; gap: 6px; }
.t2m-field label { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--ink); }
.t2m-field__opt { font-weight: 400; color: var(--wp--preset--color--muted); }
.t2m-field input, .t2m-field textarea {
	width: 100%;
	padding: 13px 14px;
	border: 1px solid var(--wp--custom--color--field-border);
	border-radius: var(--wp--custom--radius--s);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 16px;
}
.t2m-field input:focus, .t2m-field textarea:focus { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 1px; }
.t2m-field input[aria-invalid="true"] { border-color: var(--wp--preset--color--red); }
.t2m-field__error, .t2m-ms__error { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--red-dark); }
.t2m-consent { display: flex; gap: 10px; align-items: flex-start; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.t2m-consent input { margin-top: 4px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--wp--preset--color--ink); }
.t2m-ok { display: flex; gap: 12px; align-items: flex-start; padding: 18px 20px; border-radius: var(--wp--custom--radius--s); background: #E8F3EC; color: #1F5A37; font-weight: 500; }
.t2m-ok .t2m-i { flex: 0 0 auto; }
/* Champ piège des formulaires (rendez-vous, livre) : hors écran, ignoré des lecteurs d'écran. */
.t2m-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
