/*
Theme Name:   Gwyneth Child Theme
Template:     gwyneth
Version:      1.0.0

Theme URI:    https://github.com/webmandesign/child-theme/
Author:       WebMan Design
Author URI:   https://www.webmandesign.eu/
License:      GPL-3.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-3.0-standalone.html

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

IMPORTANT:
Read the instructions in https://github.com/webmandesign/child-theme/blob/master/readme.md

Child theme CSS styles:
*/

:root {
	--wp--style--global--content-size: 860px;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-BoldItalic.eot");
	src: url("./fonts/Nunito-BoldItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-BoldItalic.woff2") format("woff2"), url("./fonts/Nunito-BoldItalic.woff") format("woff");
	font-weight: bold;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-SemiBoldItalic.eot");
	src: url("./fonts/Nunito-SemiBoldItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-SemiBoldItalic.woff2") format("woff2"), url("./fonts/Nunito-SemiBoldItalic.woff") format("woff");
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-ExtraBold.eot");
	src: url("./fonts/Nunito-ExtraBold.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-ExtraBold.woff2") format("woff2"), url("./fonts/Nunito-ExtraBold.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-BlackItalic.eot");
	src: url("./fonts/Nunito-BlackItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-BlackItalic.woff2") format("woff2"), url("./fonts/Nunito-BlackItalic.woff") format("woff");
	font-weight: 900;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-SemiBold.eot");
	src: url("./fonts/Nunito-SemiBold.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-SemiBold.woff2") format("woff2"), url("./fonts/Nunito-SemiBold.woff") format("woff");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-ExtraBoldItalic.eot");
	src: url("./fonts/Nunito-ExtraBoldItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-ExtraBoldItalic.woff2") format("woff2"), url("./fonts/Nunito-ExtraBoldItalic.woff") format("woff");
	font-weight: bold;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Black.eot");
	src: url("./fonts/Nunito-Black.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Black.woff2") format("woff2"), url("./fonts/Nunito-Black.woff") format("woff");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-ExtraLightItalic.eot");
	src: url("./fonts/Nunito-ExtraLightItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-ExtraLightItalic.woff2") format("woff2"), url("./fonts/Nunito-ExtraLightItalic.woff") format("woff");
	font-weight: 200;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Light.eot");
	src: url("./fonts/Nunito-Light.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Light.woff2") format("woff2"), url("./fonts/Nunito-Light.woff") format("woff");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-ExtraLight.eot");
	src: url("./fonts/Nunito-ExtraLight.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-ExtraLight.woff2") format("woff2"), url("./fonts/Nunito-ExtraLight.woff") format("woff");
	font-weight: 200;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Medium.eot");
	src: url("./fonts/Nunito-Medium.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Medium.woff2") format("woff2"), url("./fonts/Nunito-Medium.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Italic.eot");
	src: url("./fonts/Nunito-Italic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Italic.woff2") format("woff2"), url("./fonts/Nunito-Italic.woff") format("woff");
	font-weight: normal;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Regular.eot");
	src: url("./fonts/Nunito-Regular.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Regular.woff2") format("woff2"), url("./fonts/Nunito-Regular.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-Bold.eot");
	src: url("./fonts/Nunito-Bold.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Bold.woff2") format("woff2"), url("./fonts/Nunito-Bold.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Nunito";
	src: url("./fonts/Nunito-LightItalic.eot");
	src: url("./fonts/Nunito-LightItalic.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-LightItalic.woff2") format("woff2"), url("./fonts/Nunito-LightItalic.woff") format("woff");
	font-weight: 300;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter-Condensed.eot");
	src: url("./fonts/AmericanTypewriter-Condensed.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter-Condensed.woff2") format("woff2"), url("./fonts/AmericanTypewriter-Condensed.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter-CondensedBold.eot");
	src: url("./fonts/AmericanTypewriter-CondensedBold.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter-CondensedBold.woff2") format("woff2"), url("./fonts/AmericanTypewriter-CondensedBold.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter-CondensedLight.eot");
	src: url("./fonts/AmericanTypewriter-CondensedLight.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter-CondensedLight.woff2") format("woff2"), url("./fonts/AmericanTypewriter-CondensedLight.woff") format("woff");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter.eot");
	src: url("./fonts/AmericanTypewriter.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter.woff2") format("woff2"), url("./fonts/AmericanTypewriter.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter-Light.eot");
	src: url("./fonts/AmericanTypewriter-Light.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter-Light.woff2") format("woff2"), url("./fonts/AmericanTypewriter-Light.woff") format("woff");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "American Typewriter";
	src: url("./fonts/AmericanTypewriter-Bold.eot");
	src: url("./fonts/AmericanTypewriter-Bold.eot?#iefix") format("embedded-opentype"), url("./fonts/AmericanTypewriter-Bold.woff2") format("woff2"), url("./fonts/AmericanTypewriter-Bold.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

body {
	font-family: "Nunito", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "American Typewriter", serif;
}

/* HEADER */
.wp-block-search__label {
	display: none;
}

.post-type-archive-projets .project-nav-link a {
	position: relative;
}

.single-post .bloglink a {
	position: relative;
}

/* .single-post .bloglink a::before,
.post-type-archive-projets .project-nav-link a::before,
.single-projets .project-nav-link a::before,
.tax-projet-categorie .project-nav-link a::before {
	width: 1em;
	height: 0.618rem;
	margin: 0;
	inset-inline-start: 0;
	inset-block-start: -1rem;
	border-radius: var(--wp--custom--border-radius--global);
	border-end-start-radius: 0;
	border-end-end-radius: 0;
	content: "";
	position: absolute;
	top: 0;
	margin-block: -0.5em;
	background: var(--wp--preset--color--primary) !important;
} */

.single-post .bloglink a::before,
.single-projets .project-nav-link a::before {
	background: #fff !important;
}

/* .wp-block-navigation .current-menu-ancestor.wp-block-navigation-item__content::before,
.wp-block-navigation .current-menu-item.has-child > .wp-block-navigation-item__content::before,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content .wp-block-navigation-item__label::before {
	background: var(--wp--preset--color--primary) !important;
}
 */
.wp-block-navigation__submenu-container .wp-block-navigation-item__label::before {
	display: none !important;
}

.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container a {
	color: var(--wp--preset--color--primary-mixed) !important;
}

.custom-logo,
.nav-wrapper {
	transition: all ease 0.4s;
}

.has-scrolled .custom-logo {
	width: 80px;
}

.nav-wrapper {
	background: transparent !important;
}

.wp-block-navigation-item__content {
	color: #fff !important;
}

.has-scrolled .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary) !important;
}

.wp-block-search__button-only .wp-block-search__button svg {
	fill: #fff !important;
}

.has-scrolled .wp-block-search__button-only .wp-block-search__button svg {
	fill: var(--wp--preset--color--primary) !important;
}

.blog.has-site-header-sticky .is-style-site-header:not(.ignore-theme-options),
.archive.has-site-header-sticky .is-style-site-header:not(.ignore-theme-options),
.is-singular.has-site-header-sticky .is-style-site-header:not(.ignore-theme-options) {
	position: fixed;
}

footer .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content .wp-block-navigation-item__label::before {
	display: none;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg {
	/* opacity: 0;
	transition: all ease 0.4s; */
	transition: all ease 0.4s;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st0 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st1 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st2 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st3 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st4 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st5 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st7 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st8 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st9 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st10 {
	fill: #fff;
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st11 {
	fill: #fff;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st0 {
	fill: #c9de61;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st1 {
	fill: #82ad3d;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st2 {
	fill: #bab22e;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st3 {
	fill: #a6cc5c;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st4 {
	fill: #bfd933;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st5 {
	fill: #4a9e42;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st6 {
	fill: none;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st7 {
	fill: #a19433;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st8 {
	fill: #528273;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st9 {
	fill: #a8782b;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st10 {
	fill: #d9cf26;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st11 {
	fill: #002e4e;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner svg .st12 {
	clip-path: url(#clippath);
}

.is-style-site-header .wp-block-boldblocks-svg-block__inner {
	width: 130px !important;
	transition: all ease 0.4s;
}

.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner {
	width: 80px !important;
}

.has-scrolled .nav-wrapper {
	background: #fff !important;
}

.has-scrolled .nav-wrapper {
	/* `padding: 0.5rem 0` mettait aussi le padding HORIZONTAL à zéro,
	   d'où un contenu collé aux bords de l'écran au défilement.
	   On ne touche donc qu'aux paddings verticaux. */
	padding-block: 0.5rem !important;
	border-width: 0px !important;
}

.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	background: #fff;
	border: none;
	color: var(--wp--preset--color--primary);
}

.wp-block-search__button-only .wp-block-search__button svg {
	width: 2em;
}

.wpml-language-switcher-block,
.wp-block-search__button-only {
	flex: 1;
}

.wp-block-navigation-item__label {
	font-weight: 700;
}

/* Règles de sous-menu au survol : desktop uniquement.
   Ces règles mettaient le fond du sous-menu en blanc dès aria-expanded="true"
   ou au :hover — donc aussi au tap dans le menu mobile. */
@media (min-width: 1100px) {
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
.has-scrolled .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.has-scrolled .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
.has-scrolled .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container {
	/* width: auto; */
	background-color: #fff !important;
	/* padding: 0 1rem !important;
	transform: translateX(-50%);
	left: 50%; */
}

.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container {
	background: none !important;
}

.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container a {
	background: #fff !important;
	color: var(--wp--preset--color--primary) !important;
}

.wp-block-navigation .wp-block-navigation__container .has-child.has-child.open-on-hover-click .wp-block-navigation__submenu-icon {
	color: #fff;
}

.has-scrolled .wp-block-navigation .wp-block-navigation__container .has-child.has-child.open-on-hover-click .wp-block-navigation__submenu-icon {
	color: var(--wp--preset--color--primary);
}
}

.wp-block-navigation .current-menu-item.has-child > .wp-block-navigation-item__content::before,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content .wp-block-navigation-item__label::before {
	background: #c6d54c;
}

.wp-block-navigation .wp-block-navigation__responsive-container:not(.has-modal-open) .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::before,
.wp-block-navigation .wp-block-navigation__responsive-container:not(.has-modal-open) .wp-block-navigation__container > .wp-block-navigation-item > .current-menu-ancestor.wp-block-navigation-item__content::before,
.wp-block-navigation:not(.is-vertical):not(.has-overlay-menu) .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::before,
.wp-block-navigation:not(.is-vertical):not(.has-overlay-menu) .wp-block-navigation__container > .wp-block-navigation-item > .current-menu-ancestor.wp-block-navigation-item__content::before {
	display: none;
}

/* .current-menu-ancestor > a > span::before,
.post-type-archive-projets .project-nav-link span::before {
	content: "";
	position: absolute;
	inset-inline-start: -1rem;
	inset-block-start: 50%;
	width: 0.618rem;
	height: 1em;
	margin-block: -0.5em;
	background: #c6d54c;
	border-radius: var(--wp--custom--border-radius--global);
	border-start-end-radius: 0;
	border-end-end-radius: 0;
} */

.rudr-taxonomy-filter--buttons {
	gap: 0.72rem;
}

/* BUTTONS */

.wp-element-button.has-primary-background-color:hover,
.is-style-buttons-inline a:hover,
.is-style-buttons-inline .current-cat a {
	background: var(--wp--preset--color--primary-mixed) !important;
}

.is-style-buttons-inline a {
	background: var(--wp--preset--color--primary);
}

/* actions */

.hovered {
	transform: scale(1);
	transition: all ease 0.4s;
}

.hovered:hover {
	transform: scale(1.08);
}

.backdrop-blur {
	backdrop-filter: blur(var(--wp--custom--filter--blur--backdrop));
}

.d-flex {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1rem;
}

.d-flex .col {
	flex: 1;
	width: 50%;
	padding: 0 1rem;
	margin-bottom: 1rem;
}

@media (max-width: 768px) {
	.d-flex .col {
		width: 100%;
	}
}

textarea {
	width: 100%;
}

form {
	--wp--style--block-gap: 0;
}

h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
	text-decoration: none;
}

.slick-list,
.slick-slider,
.slick-track,
.wp-block-cb-carousel .slick-slide {
	display: flex;
}

.slick-next::before,
.slick-prev::before {
	font-size: 40px;
}

.slick-next {
	right: -25px;
}

.slick-prev {
	left: -45px;
}

.framed {
	position: relative;
}

.framed::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url("./assets/img/framed.png") no-repeat center center / 100% auto;
	transform: scale(1.25);
}

.list-ecores {
	padding-left: 2rem !important;
}

.list-ecores li {
	position: relative;
}

.list-ecores li::before {
	content: "";
	position: absolute;
	top: 0.34rem;
	left: -1.7rem;
	width: 0.7rem;
	height: 1rem;
	display: block;
	background: red;
	border-radius: 0.33rem 0 0 0.33rem;
	background: var(--wp--preset--color--primary);
}

.noshrink {
	flex-shrink: 0 !important;
}

.scalehover {
	transition: all ease 0.4s;
	transform: scale(1);
}

.scalehover:hover {
	transform: scale(1.1);
}

.wp-block-mfb-meta-field-block .value ul {
	list-style: none;
	padding: 0;
}

.noclick,
.noclick a {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}

.rudr-taxonomy-filter--dropdown select {
	padding: 1.25em 3em 1.25em 2em;
	background: var(--wp--preset--color--primary);
	border-radius: 0.33rem;
	color: #fff;
	border-color: transparent;
	font-family: var(--wp--custom--button--font-family);
	text-transform: uppercase;
	font-weight: 700;
	line-height: 1.25;
	cursor: pointer;
	box-shadow: inset 0 calc(-1 * var(--wp--custom--shadow--button--size)) 0 var(--theme--css--button--color--shadow), var(--wp--preset--shadow--s);
	appearance: none;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 16px 12px;
}

.rudr-taxonomy-filter--buttons .service {
	background: var(--wp--preset--color--secondary) !important;
}

.rudr-taxonomy-filter--buttons .service:hover {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
}

.rudr-taxonomy-filter--buttons .expertise {
	background: #c6d54c !important;
	color: var(--wp--preset--color--primary);
}

.rudr-taxonomy-filter--buttons .expertise:hover {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
}

.rudr-taxonomy-filter--buttons .expertise.rudr-filter-current,
.rudr-taxonomy-filter--buttons .service.rudr-filter-current {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
}


/* =========================================================
   NAVIGATION — refonte responsive
   Ajouté le 26/08/2026. Tout est regroupé ici volontairement.
   Breakpoint unique : 1100px.
   ========================================================= */

/* ---------------------------------------------------------
   1. Bascule en menu hamburger sous 1100px
   Le core WordPress bascule à 600px (block-library/style.css).
   On annule cette règle pour repousser le seuil à 1100px.
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
		position: fixed;
		inset: 0;
		width: auto;
		z-index: auto;
	}

	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

/* ---------------------------------------------------------
   2. Bouton hamburger dans la barre de nav
   Le thème parent (.is-style-fixed-mobile-toggle) le place en
   position fixed, en bas et centré. On le remet dans le flux.
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	.wp-block-navigation.is-style-fixed-mobile-toggle:not(.block-editor-block-list__block) .wp-block-navigation__responsive-container-open {
		position: static;
		transform: none;
		inset: auto;
		margin: 0;
		padding: 0.35em;
		background: transparent;
		color: inherit;
		border: none;
		box-shadow: none;
	}

	/* Le bouton de fermeture reste en haut à droite de l'overlay. */
	.wp-block-navigation.is-style-fixed-mobile-toggle:not(.block-editor-block-list__block) .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: 1rem;
		right: 1rem;
		bottom: auto;
		left: auto;
		transform: none;
		margin: 0;
		padding: 0.35em;
		background: transparent;
		color: #fff;
		border: none;
		box-shadow: none;
	}

	/* Icône burger : blanche en haut de page, bleue une fois scrollé,
	   pour rester lisible sur les deux fonds de la barre. */
	.wp-block-navigation__responsive-container-open svg {
		fill: #fff;
		width: 2em;
		height: 2em;
	}

	.has-scrolled .wp-block-navigation__responsive-container-open svg {
		fill: var(--wp--preset--color--primary);
	}
}

/* ---------------------------------------------------------
   3. Lisibilité du menu ouvert
   Le bloc est configuré avec overlayTextColor = overlayBackgroundColor
   = primary (texte bleu sur fond bleu). En plus, les règles desktop
   `.has-scrolled ... color: primary !important` s'appliquaient aussi
   dans l'overlay. On force le blanc dans le menu ouvert.
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	.wp-block-navigation__responsive-container.is-menu-open,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open {
		background-color: var(--wp--preset--color--primary) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
		color: #fff !important;
	}

	/* Neutralise les fonds blancs des sous-menus desktop (règles hover). */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a {
		background: transparent !important;
		color: #fff !important;
	}

	/* Chevrons d'ouverture des sous-menus. */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon,
	.has-scrolled .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		color: #fff !important;
		fill: #fff !important;
	}
}

/* ---------------------------------------------------------
   4. Densité et débordement du menu ouvert
   15 entrées (5 rubriques + 10 sous-rubriques) avec un blockGap
   de 4rem et une taille h3 : le menu débordait de l'écran.
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	/* Le thème parent impose, via theme.json :
	     padding-top    : max( 4em, 40vh )
	     padding-bottom : max( 2.5em, 25vh )
	   soit jusqu'à 65% de la hauteur d'écran perdue en marges.
	   Sélecteurs doublés pour passer devant `.is-menu-open.is-menu-open`. */
	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-container-content,
	.wp-block-navigation.is-style-fixed-mobile-toggle:not(.block-editor-block-list__block) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		width: 100%;
		padding-block-start: 4.5rem;
		padding-block-end: 2rem;
	}

	/* Le scroll est porté par le conteneur plein écran.
	   100dvh et pas 100vh, sinon la barre d'URL mobile tronque le bas. */
	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open {
		height: 100dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__responsive-dialog {
		margin-block-start: 0;
	}

	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__container {
		gap: 0.25rem;
	}

	/* Rubriques de premier niveau. */
	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		padding-block: 0.4em;
		font-size: 1.25rem;
		line-height: 1.3;
		letter-spacing: 0.02em;
	}

	/* Sous-rubriques : plus petites, légèrement en retrait. */
	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding-block: 0.3em;
		font-size: 0.95rem;
		line-height: 1.3;
		font-weight: 400;
		text-transform: none;
		letter-spacing: 0;
	}

	.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.is-menu-open .wp-block-navigation__submenu-container[class] {
		margin-block-start: 0.25em;
		padding-inline-start: 1em;
	}

	/* Recherche et sélecteur de langue : sur leur propre ligne. */
	.wp-block-navigation__responsive-container.is-menu-open .wpml-language-switcher-block,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-search__button-only {
		flex: none;
	}
}

/* ---------------------------------------------------------
   5. Sélecteur de langue — desktop
   Plus d'air dans le panneau déroulant.
   --------------------------------------------------------- */
@media (min-width: 1100px) {

	.wpml-language-switcher-block .wp-block-navigation__submenu-container {
		padding: 0.85rem 1.35rem;
	}

	.wpml-language-switcher-block .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding-block: 0.3em;
	}
}

/* ---------------------------------------------------------
   6. Logo — voir le bloc 10 en fin de fichier.
   (Les valeurs de cette 1re passe ont été retirées : elles
   faisaient doublon avec le bloc 10, qui fait autorité.)
   --------------------------------------------------------- */


/* ---------------------------------------------------------
   7. Ajustements barre de nav mobile — 26/08/2026 (2e passe)
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	/* Burger tout à droite.
	   Structure réelle du motif :
	     .alignwide (flex, space-between)
	       ├── groupe A ── [ logo, <nav> ]
	       └── groupe B ── [ sélecteur de langue, recherche ]
	   Le <nav> est enfermé dans le groupe A : un simple `order` ne le
	   sortait pas de ce groupe, d'où un burger qui restait au milieu.
	   `display: contents` retire le groupe A de la mise en page — ses
	   enfants deviennent items flex du conteneur principal et `order`
	   peut alors les réordonner. */
	.nav-wrapper .wp-block-group.is-layout-flex:has(> nav.wp-block-navigation) {
		display: contents;
	}

	.nav-wrapper .wp-block-group.is-layout-flex:has(> .wp-block-boldblocks-svg-block) {
		order: 1;
	}

	.nav-wrapper .wp-block-group.is-layout-flex:has(> .wpml-language-switcher-block) {
		order: 2;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.25rem;
	}

	.nav-wrapper nav.wp-block-navigation {
		order: 3;
	}

	/* Le CSS du plugin WPML impose `width: 100% !important` au sélecteur,
	   ce qui poussait la loupe sur la ligne suivante. */
	.nav-wrapper .wpml-language-switcher-block,
	.nav-wrapper .wpml-language-switcher-block > .wp-block-navigation-item,
	.nav-wrapper .wpml-language-switcher-block > .wp-block-navigation-item > div {
		width: auto !important;
	}

	/* Loupe et sélecteur de langue : ils avaient `flex: 1` (règle desktop),
	   ce qui les étirait et poussait la barre hors de l'écran. */
	.wpml-language-switcher-block,
	.wp-block-search__button-only {
		flex: 0 0 auto;
	}

	.wp-block-search__button-only .wp-block-search__button svg {
		width: 1.5em;
		height: 1.5em;
	}

	.wp-block-search__button-only .wp-block-search__button {
		padding: 0;
	}

	/* Garde-fou contre le débordement horizontal.
	   `clip` et pas `hidden` : ne crée pas de contexte de défilement,
	   donc ne casse pas le header sticky. */
	.nav-wrapper,
	.is-style-site-header {
		max-width: 100vw;
		overflow-x: clip;
	}

	/* Logo un cran plus petit (remplace les 100px/70px de la 1re passe). */
	.is-style-site-header .wp-block-boldblocks-svg-block__inner {
		width: 90px !important;
	}

	.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner {
		width: 65px !important;
	}

	.custom-logo {
		width: 90px;
	}

	.has-scrolled .custom-logo {
		width: 65px;
	}
}

/* ---------------------------------------------------------
   8. Sélecteur de langue — padding du panneau
   Le sélecteur WPML rend un <ul class="...submenu-container isHorizontal">
   contenant des <li data-wpml="language-item">.
   Le plugin impose `.wpml-language-switcher-block ul { padding: 0 !important }`,
   d'où le `!important` ici.
   Hors media query : le panneau doit respirer aussi dans le menu mobile.
   --------------------------------------------------------- */
.wpml-language-switcher-block .wp-block-navigation__submenu-container,
.wp-block-navigation__submenu-container.isHorizontal,
.wp-block-navigation__submenu-container:has([data-wpml="language-item"]) {
	padding: 0.85rem 1.35rem !important;
}

.wpml-language-switcher-block .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.wp-block-navigation__submenu-container.isHorizontal .wp-block-navigation-item__content,
.wp-block-navigation__submenu-container:has([data-wpml="language-item"]) .wp-block-navigation-item__content {
	padding: 0.25rem 0.5rem;
}

/* ---------------------------------------------------------
   9. Header allégé au défilement (desktop) + bordure supérieure
   --------------------------------------------------------- */

/* Le motif pose `border-top-width: 0.62rem` en style inline sur
   .nav-wrapper — d'où le `!important` pour le neutraliser. */
.nav-wrapper {
	border-top-width: 0 !important;
}

@media (min-width: 1100px) {

	/* Logo : 130px au repos, nettement réduit une fois scrollé. */
	.has-scrolled .is-style-site-header .wp-block-boldblocks-svg-block__inner {
		width: 62px !important;
	}

	.has-scrolled .custom-logo {
		width: 62px;
	}

	/* Barre resserrée : le padding inline du motif est de 1rem
	   en haut et en bas, on le réduit au défilement. */
	.has-scrolled .nav-wrapper {
		padding-top: 0.25rem !important;
		padding-bottom: 0.25rem !important;
	}

	/* Interligne des entrées ramené de 2 à 1.2 : c'est lui qui
	   donnait le plus de hauteur à la barre. */
	.has-scrolled .wp-block-navigation .wp-block-navigation-item__content {
		line-height: 1.2;
		padding-block: 0.2em;
	}
}


/* ---------------------------------------------------------
   11. Finitions nav — 26/08/2026
   Aucune règle de mise en page ici : ni display, ni order,
   ni flex. Uniquement apparence et comportement d'ouverture.
   --------------------------------------------------------- */

/* --- (1) Menu mobile ouvert : angles droits ---------------- */
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	border-radius: 0 !important;
}

/* --- (2) Contour pointillé au clic ------------------------
   Retiré à la souris seulement. `:focus-visible` reste intact :
   la navigation au clavier garde son indicateur de focus.
   Le survol souligné pointillé n'est pas touché. */
.wp-block-navigation a:focus:not(:focus-visible),
.wp-block-navigation button:focus:not(:focus-visible),
.wp-block-navigation-item__content:focus:not(:focus-visible),
.wpml-language-switcher-block a:focus:not(:focus-visible),
.wp-block-search__button:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

/* --- (4) Sélecteur de langue en mobile --------------------- */
@media (max-width: 1099px) {

	/* Le panneau déroulant a `background-color: unset !important`
	   dans la feuille du plugin WPML, d'où un fond transparent.
	   Le sélecteur est préfixé par `.nav-wrapper` pour passer devant
	   (le <style> de WPML est injecté après notre feuille). */
	.nav-wrapper .wpml-language-switcher-block ul.wp-block-navigation__submenu-container {
		background-color: var(--wp--preset--color--primary) !important;
		border: none !important;
	}

	/* Le vert vient de la couleur de lien héritée du groupe
	   (`has-link-color` / `wp-elements-1`). */
	.nav-wrapper .wpml-language-switcher-block ul.wp-block-navigation__submenu-container a,
	.nav-wrapper .wpml-language-switcher-block ul.wp-block-navigation__submenu-container span {
		color: #fff !important;
	}

	/* Ouverture au clic : la classe est posée par assets/js/nav.js.
	   Le plugin s'appuie sur `:hover`, peu fiable au tactile. */
	.nav-wrapper .wpml-language-switcher-block .wpml-ls-dropdown.is-open .wp-block-navigation__submenu-container {
		visibility: visible !important;
		opacity: 1 !important;
	}

	/* Zone de tap confortable sur le déclencheur. */
	.nav-wrapper .wpml-language-switcher-block .wp-block-navigation-submenu__toggle {
		cursor: pointer;
		padding-block: 0.35em;
	}
}


/* ---------------------------------------------------------
   12. Recherche en mobile — 26/08/2026
   --------------------------------------------------------- */
@media (max-width: 1099px) {

	/* Loupe masquée pendant que le menu plein écran est ouvert.
	   WordPress pose `has-modal-open` sur <html> à l'ouverture, ce qui
	   permet d'atteindre la loupe alors qu'elle est hors du <nav>. */
	html.has-modal-open .nav-wrapper .wp-block-search__button-only {
		visibility: hidden;
		pointer-events: none;
	}

	/* Champ de recherche déplié sous la loupe plutôt qu'à sa gauche :
	   sorti du flux, il ne pousse plus la barre hors de l'écran. */
	.nav-wrapper .wp-block-search__button-only .wp-block-search__inside-wrapper {
		position: relative;
		overflow: visible;
	}

	.nav-wrapper .wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
		position: absolute;
		top: calc(100% + 0.75rem);
		right: 0;
		left: auto;
		z-index: 20;
		width: min(70vw, 260px);
		max-width: none;
		padding: 0.6rem 0.8rem;
		background: #fff;
		border: none;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
	}

	/* Le conteneur ne doit pas rogner le champ une fois déplié. */
	.nav-wrapper .wp-block-search__button-only {
		overflow: visible;
	}

	/* Le garde-fou `overflow-x: clip` du bloc 7 pourrait rogner le champ
	   une fois déplié : on le lève, mais seulement pendant l'ouverture. */
	.nav-wrapper:has(.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden)),
	.is-style-site-header:has(.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden)) {
		overflow: visible;
	}
}


/* =========================================================
   13. Utilitaires responsive — 26/08/2026
   À appliquer bloc par bloc dans l'éditeur, via
   « Avancé › Classe(s) CSS additionnelle(s) ».
   Rappel : les icônes bureau/tablette/mobile de l'éditeur ne
   sont qu'un aperçu, elles ne créent aucun réglage par écran.
   Point de rupture : 781px, celui où WordPress empile déjà
   les colonnes — les comportements restent cohérents.
   ========================================================= */

.w-50,
.w-60,
.w-70,
.w-80 {
	margin-inline: 0;
}

.w-50 { max-width: 50%; }
.w-60 { max-width: 60%; }
.w-70 { max-width: 70%; }
.w-80 { max-width: 80%; }

/* Les enfants `alignwide` d'un groupe restreint ne doivent pas
   ressortir de leur parent. */
.w-50 > .alignwide,
.w-60 > .alignwide,
.w-70 > .alignwide,
.w-80 > .alignwide {
	max-width: 100%;
}

@media (max-width: 781px) {

	.w-50,
	.w-60,
	.w-70,
	.w-80 {
		max-width: 100%;
	}
}

/* ---------------------------------------------------------
   Bandeau d'accueil : titre et accroche
   Le <h1> porte `font-size: 5rem` en style inline (80px fixes
   sur tous les écrans) : d'où le `!important`, seule façon de
   passer devant un style inline. La valeur devient fluide.
   Le paragraphe utilise le preset `xxxl`, lui-même fluide mais
   avec un plancher à 3rem (48px) — trop haut sur un téléphone.
   Les classes de preset WordPress portent déjà `!important`.
   --------------------------------------------------------- */
.hero-intro h1,
.hero-intro .wp-block-heading {
	font-size: clamp(2.75rem, 10vw, 5rem) !important;
	line-height: 1.1;
}

.hero-intro p.has-xxxl-font-size {
	font-size: clamp(1.6rem, 5.5vw, 3rem) !important;
}


/* =========================================================
   14. Modèle « Page légale » — 26/08/2026
   Voir templates/custom-legal.html et theme.json.
   Colonne de lecture à 80%, centrée, sans intro ni sidebar.
   ========================================================= */

/* 80% de la largeur, centré. Le plafond garde des lignes
   lisibles sur grand écran : au-delà d'environ 90 caractères,
   l'œil perd la ligne suivante. Retirer `min()` pour un 80%
   strict à toutes les tailles. */
.legal-page > .wp-block-post-title,
.legal-page > .entry-content,
.legal-page > .wp-block-post-content,
.legal-page > * {
	width: min(80%, 900px);
	max-width: 100%;
	margin-inline: auto;
}

/* Le contenu interne suit la même colonne. */
.legal-page .wp-block-post-content > *:not(.alignwide):not(.alignfull) {
	max-width: 100%;
	margin-inline: auto;
}

.legal-page .wp-block-post-title {
	margin-bottom: var(--wp--preset--spacing--l, 2.5rem);
}

/* Hiérarchie des titres, resserrée pour du texte long. */
.legal-page h2 {
	margin-top: var(--wp--preset--spacing--l, 2.5rem);
	margin-bottom: var(--wp--preset--spacing--s, 0.75rem);
}

.legal-page h3 {
	margin-top: var(--wp--preset--spacing--m, 1.5rem);
	margin-bottom: var(--wp--preset--spacing--xs, 0.5rem);
}

/* Confort de lecture sur les paragraphes et les listes. */
.legal-page p,
.legal-page li {
	line-height: 1.7;
}

.legal-page li + li {
	margin-top: 0.4em;
}

.legal-page a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

@media (max-width: 781px) {

	.legal-page > * {
		width: 100%;
	}
}
