/* ==========================================================================
   Louis Design — base commune aux deux sites
   Ne touche qu'à la présentation. Les couleurs et polices sont définies
   dans site.css via les variables --ld-*.
   ========================================================================== */

:root {
	--ld-radius: 14px;
	--ld-radius-sm: 8px;
	--ld-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .07);
	--ld-shadow-lg: 0 2px 4px rgba(16, 24, 40, .06), 0 18px 40px rgba(16, 24, 40, .12);
	--ld-ease: cubic-bezier(.2, .7, .2, 1);
	--ld-section: clamp(3.5rem, 7vw, 6rem);

	/* Variables utilisées par le thème Varia/Exford */
	--font-base: var(--ld-font-body);
	--font-headings: var(--ld-font-head);
}

/* ---------- Socle typographique ---------- */

html { scroll-behavior: smooth; }

body {
	background: var(--ld-bg);
	color: var(--ld-text);
	font-family: var(--ld-font-body);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body p,
body li,
body ul,
body ol,
body dd,
body .entry-content,
body .wp-block-quote p {
	font-family: var(--ld-font-body);
}

body h1, body h2, body h3, body h4, body h5, body h6,
body .site-title {
	font-family: var(--ld-font-head);
	text-wrap: balance;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: manual;
}

.entry-content h2 {
	font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem) !important;
	line-height: 1.2 !important;
	margin-bottom: 1.25rem;
}

.entry-content h3 {
	font-size: clamp(1.3rem, 1.05rem + .9vw, 1.7rem);
	line-height: 1.25;
}

.entry-content p {
	text-wrap: pretty;
}

/* Les liens inline gardent un soulignement discret */
.entry-content p a:not(.wp-block-button__link) {
	color: var(--ld-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	transition: color .2s, text-decoration-color .2s;
}

.entry-content p a:not(.wp-block-button__link):hover {
	color: var(--ld-link-hover);
	text-decoration-color: currentColor;
}

::selection {
	background: color-mix(in srgb, var(--ld-primary) 22%, transparent);
}

/* ---------- En-tête ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: .9rem clamp(1rem, 4vw, 3rem) !important;
	background: color-mix(in srgb, var(--ld-surface) 90%, transparent);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--ld-border);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .5rem 2rem;
	text-align: center;
}

.admin-bar .site-header { top: 32px; }

@media only screen and (max-width: 1023px) {
	.site-header { position: relative; }
}

.site-header > * { margin: 0 !important; }

.site-branding { color: var(--ld-muted); }

body:not(.fse-enabled) .site-title {
	font-size: clamp(1.05rem, .9rem + .6vw, 1.35rem);
	line-height: 1.2;
	letter-spacing: .01em;
}

.site-title a,
.site-title a:link,
.site-title a:visited { color: var(--ld-ink); }

.site-title a:hover { color: var(--ld-primary); }

body:not(.fse-enabled) .site-description {
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-top: .3rem;
	color: var(--ld-muted);
}

/* Navigation principale */
.main-navigation a,
.main-navigation a:link,
.main-navigation a:visited,
.main-navigation > div > ul > li > a,
.main-navigation > div > ul > li > .sub-menu a {
	color: var(--ld-ink) !important;
	font-family: var(--ld-font-body);
	font-size: var(--ld-nav-size, 15px) !important;
	font-weight: 500;
	letter-spacing: .01em;
	transition: color .2s;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: var(--ld-primary) !important;
}

@media only screen and (min-width: 560px) {
	.main-navigation > div > ul {
		justify-content: center;
		gap: 0 .25rem;
	}

	.main-navigation > div > ul > li > a {
		position: relative;
		padding: 12px 12px !important;
	}

	.main-navigation > div > ul > li > a > span,
	.main-navigation > div > ul > li > a { background-repeat: no-repeat; }

	/* Soulignement animé */
	.main-navigation > div > ul > li > a::before {
		content: '' !important;
		position: absolute;
		left: 12px;
		right: 12px;
		bottom: 4px;
		height: 2px !important;
		width: auto !important;
		margin: 0 !important;
		background: var(--ld-primary);
		border-radius: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .25s var(--ld-ease);
	}

	.main-navigation > div > ul > li > a:hover::before,
	.main-navigation > div > ul > .current-menu-item > a::before {
		transform: scaleX(1);
	}

	.main-navigation > div > ul > .menu-item-has-children > a::after {
		content: '' !important;
		display: inline-block;
		width: .4em !important;
		height: .4em !important;
		margin: 0 0 .2em .45em !important;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		vertical-align: middle;
		opacity: .6;
	}

	/* Sous-menus */
	.main-navigation > div > ul > li > .sub-menu {
		top: calc(100% + 6px);
		padding: .5rem;
		background: var(--ld-surface);
		border: 1px solid var(--ld-border);
		border-radius: var(--ld-radius);
		box-shadow: var(--ld-shadow-lg);
		text-align: left;
		transform: translateY(6px);
		transition: opacity .2s, transform .2s var(--ld-ease), visibility .2s;
	}

	.main-navigation > div > ul > li:hover > .sub-menu,
	.main-navigation > div > ul > li:focus-within > .sub-menu {
		transform: translateY(0);
	}

	/* pont invisible pour ne pas perdre le survol */
	.main-navigation > div > ul > li > .sub-menu::before {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		top: -10px;
		height: 10px;
	}

	.main-navigation .sub-menu .menu-item a {
		padding: .55rem .85rem !important;
		border-radius: var(--ld-radius-sm);
		font-size: 14px !important;
	}

	.main-navigation .sub-menu .menu-item a:hover {
		background: var(--ld-tint);
	}
}

.main-navigation .sub-menu .menu-item a::before { content: none !important; }

/* Bouton menu mobile */
.main-navigation #toggle-menu {
	background: var(--ld-ink) !important;
	color: #fff !important;
	border-radius: 999px;
	padding: .55rem 1.2rem;
	font-size: .9rem;
	font-weight: 600;
}

@media only screen and (max-width: 559px) {
	.site-header { padding: .75rem 1rem !important; gap: .5rem; }

	.main-navigation { width: 100%; }

	.main-navigation #toggle:checked ~ div {
		margin-top: .75rem;
		padding: .5rem 0;
		border-top: 1px solid var(--ld-border);
		text-align: left;
	}

	.main-navigation > div > ul li a { padding: .6rem .25rem !important; }

	.main-navigation .sub-menu { padding-left: 1rem !important; }
}

/* Réseaux sociaux dans l'en-tête */
.social-navigation a { color: var(--ld-muted) !important; transition: color .2s, transform .2s; }
.social-navigation a:hover { color: var(--ld-primary) !important; transform: translateY(-1px); }

/* ---------- Contenu ---------- */

.site-content { padding-top: 0; }

.site-main > article { margin-top: 0; }

.entry-content > h2:first-child,
.entry-content > .wp-block-spacer:first-child + h2,
.entry-content > link + h2,
.entry-content > :is(h2, h3, p, .wp-block-columns:not(.alignfull)):first-child { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Diaporama Smart Slider en tête de page : collé à l'en-tête */
.entry-content > :is(.n2_clear, .n2-section-smartslider):first-child { margin-top: 0 !important; }
.entry-content:has(> :is(.n2_clear, .n2-section-smartslider):first-child) { margin-top: 0 !important; }

/* L'en-tête de page est vidé par le CSS d'origine (titre masqué) : pas de marges fantômes */
article:not(.tag-blog) > .entry-header { margin: 0 !important; }

/* Titres de section : couleur unifiée + petit filet d'accent */
.entry-content h2.has-text-color:not(.has-background-color),
.entry-content h2.has-text-color:not(.has-background-color) a,
.entry-content h2.has-text-color:not(.has-background-color) mark,
.entry-content h2.has-text-color:not(.has-background-color) .tadv-color,
.entry-content h2[style*="color"]:not(.wp-block-cover h2):not(.has-background-color),
.entry-content h2:not(.wp-block-cover h2):not(.has-background-color) :is(mark, .tadv-color, span[style*="color"]) {
	color: var(--ld-heading) !important;
	text-decoration: none;
}

.entry-content > h2.has-text-align-center {
	margin-top: var(--ld-section);
	position: relative;
	padding-bottom: 1.1rem;
}

.entry-content > h2.has-text-align-center::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 56px;
	height: 3px;
	border-radius: 3px;
	transform: translateX(-50%);
	background: var(--ld-accent-bar, var(--ld-primary));
}

.wp-block-separator {
	border: 0 !important;
	height: 1px !important;
	background: var(--ld-border) !important;
	opacity: 1 !important;
	margin: 1rem 0 1.25rem !important;
	max-width: none;
}

/* ---------- Boutons ---------- */

.wp-block-button__link,
.button,
button,
input[type="submit"],
.wp-block-file__button,
.a8c-posts-list__view-all {
	font-family: var(--ld-font-body) !important;
	font-weight: 600 !important;
	letter-spacing: .01em;
	border-radius: 999px !important;
	padding: .8rem 1.6rem !important;
	line-height: 1.3 !important;
	transition: transform .2s var(--ld-ease), box-shadow .2s, background-color .2s, color .2s, border-color .2s !important;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link,
button:not(.has-background),
input[type="submit"] {
	background-color: var(--ld-primary) !important;
	color: #fff !important;
	box-shadow: 0 6px 16px color-mix(in srgb, var(--ld-primary) 30%, transparent);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
button:not(.has-background):hover,
input[type="submit"]:hover {
	background-color: var(--ld-primary-dark) !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px color-mix(in srgb, var(--ld-primary) 35%, transparent);
}

.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) {
	background: transparent !important;
	color: var(--ld-primary) !important;
	border: 1.5px solid currentColor !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--ld-primary) !important;
	border-color: var(--ld-primary) !important;
	color: #fff !important;
	transform: translateY(-2px);
}

/* ---------- Bandeaux (blocs Couverture) ---------- */

.wp-block-cover {
	padding-top: var(--ld-section) !important;
	padding-bottom: var(--ld-section) !important;
}

/* Couverture avec image : voile dégradé pour la lisibilité */
.wp-block-cover:has(.wp-block-cover__image-background) > .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(10, 14, 22, .35) 0%, rgba(10, 14, 22, .55) 60%, rgba(10, 14, 22, .7) 100%) !important;
	opacity: 1 !important;
}

.wp-block-cover:has(.wp-block-cover__image-background) .wp-block-cover__inner-container {
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

/* Bouton contour sur fond photo : blanc */
.wp-block-cover:has(.wp-block-cover__image-background) .wp-block-button.is-style-outline .wp-block-button__link {
	color: #fff !important;
	border-color: rgba(255, 255, 255, .85) !important;
	background: rgba(255, 255, 255, .08) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	padding: .95rem 2rem !important;
}

.wp-block-cover:has(.wp-block-cover__image-background) .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #fff !important;
	color: var(--ld-ink) !important;
	border-color: #fff !important;
	text-shadow: none;
}

/* Titres limités en largeur par le thème : toujours centrés dans les bandeaux */
.wp-block-cover__inner-container > h2.has-text-align-center,
.wp-block-cover__inner-container > h3.has-text-align-center,
.wp-block-cover__inner-container > p.has-text-align-center {
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (max-width: 559px) {
	.wp-block-cover {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}

/* Couverture couleur sombre */
.wp-block-cover > .has-foreground-background-color {
	background: var(--ld-dark-gradient) !important;
	opacity: 1 !important;
}

.has-foreground-background-color:not(.wp-block-cover__background):not(.has-background-background-color) {
	background: var(--ld-dark) !important;
}

/* Rien ne doit dépasser de l'écran */
.wp-block-cover .wp-block-columns { max-width: 100%; }
.wp-block-cover__inner-container > .wp-block-columns {
	width: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.entry-content img, .entry-content iframe, .entry-content figure { max-width: 100% !important; }
.entry-content figure.is-resized img { height: auto !important; }
.entry-content figure.aligncenter { display: block; }
.entry-content figure.aligncenter > img { display: block; margin-left: auto; margin-right: auto; }
.calendly-inline-widget { min-width: 0 !important; max-width: 100%; }

/* Colonnes vides laissées dans l'éditeur */
.wp-block-columns:has(> .wp-block-column:only-child:empty) { display: none !important; }

/* Images « arrondies » : coins doux plutôt qu'ovales */
.wp-block-image.is-style-rounded img,
.is-style-rounded img {
	border-radius: var(--ld-radius) !important;
	object-fit: cover;
	box-shadow: var(--ld-shadow-lg);
}

.wp-block-columns { gap: clamp(1.25rem, 3vw, 2.5rem); }

/* ---------- Citations / témoignages ---------- */

.entry-content .wp-block-quote {
	position: relative;
	background: var(--ld-surface);
	border: 1px solid var(--ld-border) !important;
	border-left: 1px solid var(--ld-border) !important;
	border-radius: var(--ld-radius);
	box-shadow: var(--ld-shadow);
	padding: 2.4rem 1.5rem 1.4rem !important;
	margin: 0 0 1.5rem !important;
	transition: transform .25s var(--ld-ease), box-shadow .25s;
}

.entry-content .wp-block-quote:hover {
	transform: translateY(-3px);
	box-shadow: var(--ld-shadow-lg);
}

.entry-content .wp-block-quote::before {
	content: '\201C';
	position: absolute;
	top: .35rem;
	left: 1.25rem;
	font-family: Georgia, serif;
	font-size: 3.5rem;
	line-height: 1;
	color: var(--ld-primary);
	opacity: .25;
}

.entry-content .wp-block-quote p {
	font-size: .98rem !important;
	line-height: 1.65 !important;
	color: var(--ld-text);
}

.entry-content .wp-block-quote cite {
	display: block;
	margin-top: .9rem;
	padding-top: .8rem;
	border-top: 1px solid var(--ld-border);
	font-size: .8rem;
	font-style: normal;
	color: var(--ld-muted);
}

/* ---------- Articles récents ---------- */

.wp-block-latest-posts.is-grid {
	display: grid !important;
	width: auto !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
	gap: 1.75rem;
	max-width: 1200px;
	margin: 2rem auto 0 !important;
	padding: 0 clamp(1rem, 4vw, 2rem) !important;
}

.wp-block-latest-posts.is-grid > li {
	width: auto !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	background: var(--ld-surface);
	border: 1px solid var(--ld-border);
	border-radius: var(--ld-radius);
	box-shadow: var(--ld-shadow);
	overflow: hidden;
	padding: 0 0 1.4rem;
	transition: transform .25s var(--ld-ease), box-shadow .25s;
}

.wp-block-latest-posts.is-grid > li:hover {
	transform: translateY(-4px);
	box-shadow: var(--ld-shadow-lg);
}

.wp-block-latest-posts__featured-image {
	margin: 0 0 1.1rem !important;
	background: var(--ld-tint);
}

.wp-block-latest-posts__featured-image img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	aspect-ratio: 750 / 228;
	object-fit: cover;
}

.wp-block-latest-posts.is-grid > li > *:not(.wp-block-latest-posts__featured-image) {
	margin-left: 1.4rem !important;
	margin-right: 1.4rem !important;
}

.wp-block-latest-posts__post-title {
	font-family: var(--ld-font-head) !important;
	font-size: 1.15rem !important;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ld-ink) !important;
	text-decoration: none;
}

.wp-block-latest-posts__post-title:hover { color: var(--ld-primary) !important; }

.wp-block-latest-posts__post-author {
	font-size: .78rem !important;
	color: var(--ld-muted);
	margin-top: .35rem !important;
}

.wp-block-latest-posts__post-excerpt {
	font-size: .92rem !important;
	line-height: 1.6;
	color: var(--ld-text);
	margin-top: .6rem !important;
	flex: 1;
}

.wp-block-latest-posts__post-excerpt a {
	display: inline-block;
	margin-top: .5rem;
	font-weight: 600;
	color: var(--ld-primary) !important;
	text-decoration: none;
}

/* ---------- Formulaires ---------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
textarea,
select {
	font-family: var(--ld-font-body) !important;
	background: var(--ld-surface) !important;
	color: var(--ld-text) !important;
	border: 1px solid var(--ld-border-strong) !important;
	border-radius: var(--ld-radius-sm) !important;
	padding: .75rem .9rem !important;
	transition: border-color .2s, box-shadow .2s;
}

input:focus,
textarea:focus,
select:focus {
	outline: none !important;
	border-color: var(--ld-primary) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--ld-primary) 18%, transparent) !important;
}

/* Formulaires Jetpack : champs pleine largeur */
.wp-block-jetpack-contact-form {
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-jetpack-contact-form > div,
.wp-block-jetpack-contact-form .grunion-field-wrap {
	flex-basis: 100% !important;
	width: 100% !important;
}

.wp-block-jetpack-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wp-block-jetpack-contact-form textarea,
.wp-block-jetpack-contact-form select {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

.contact-form label,
.grunion-field-label {
	font-weight: 600;
	font-size: .9rem;
}

/* Formulaires Jetpack (ancien format) */
.jetpack-contact-form-container {
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.jetpack-contact-form-container form.contact-form { width: 100%; }

.jetpack-contact-form-container form.contact-form > div { flex-basis: 100% !important; width: 100% !important; }

.jetpack-contact-form-container input[type="text"],
.jetpack-contact-form-container input[type="email"],
.jetpack-contact-form-container input[type="tel"],
.jetpack-contact-form-container input[type="url"],
.jetpack-contact-form-container textarea {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

.jetpack-contact-form-container textarea { min-height: 160px; height: 180px; }

/* Formulaire posé directement sur la page : carte */
.entry-content > .jetpack-contact-form-container,
.entry-content > .wp-block-jetpack-contact-form {
	background: var(--ld-surface);
	border: 1px solid var(--ld-border);
	border-radius: calc(var(--ld-radius) + 4px);
	box-shadow: var(--ld-shadow);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}

/* Champ téléphone Jetpack : sélecteur d'indicatif neutre */
.jetpack-field__input-phone-wrapper {
	display: flex !important;
	align-items: center;
	gap: .5rem;
}

.jetpack-field__input-phone-wrapper input {
	flex: 1;
	min-width: 0;
	width: auto !important;
}

.jetpack-field__input-prefix button,
.jetpack-field__input-prefix .jetpack-combobox-trigger {
	background: transparent !important;
	color: var(--ld-text) !important;
	box-shadow: none !important;
	border: 1px solid var(--ld-border-strong) !important;
	border-radius: var(--ld-radius-sm) !important;
	padding: .55rem .7rem !important;
	transform: none !important;
}

/* ---------- Pied de page ---------- */

.site-footer {
	width: auto !important;
	max-width: none !important;
	margin: var(--ld-section) 0 0 !important;
	padding: 2.5rem clamp(1rem, 4vw, 3rem) !important;
	background: var(--ld-dark);
	color: rgba(255, 255, 255, .7);
	text-align: center;
	font-size: .85rem;
}

.site-footer a,
.site-footer a:link,
.site-footer a:visited,
.footer-navigation .footer-menu a {
	color: rgba(255, 255, 255, .78) !important;
	font-family: var(--ld-font-body);
	font-weight: 500;
	transition: color .2s;
}

.site-footer a:hover,
.footer-navigation .footer-menu a:hover { color: #fff !important; }

.footer-navigation .footer-menu {
	justify-content: center;
	gap: .25rem 1.25rem;
}

.footer-navigation .footer-menu a { padding: .25rem 0; font-size: .85rem; }

/* ---------- Accessibilité ---------- */

a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--ld-primary) !important;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
