/*!
Theme Name: Zylway
Theme URI: https://them.es/starter
Author: Valentin Laubacher
Author URI: https://www.studiovitamine.com
Description: 
Version: 3.6.2
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.2
License: GPL version 2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0
Tags: custom-background, custom-colors, featured-images, flexible-header, microformats, post-formats, rtl-language-support, theme-options, translation-ready, accessibility-ready
Text Domain: zylway
*/

/* Styles personnalisés du thème (build = core, non modifié). */
/* Chargé APRÈS build/main.css pour surcharger Bootstrap. */
/* Base typo & boutons : maquette Figma Zylway (node 165-1140). */

/* ----- Polices BetaSans (assets/fonts) ----- */
@font-face {
	font-family: "BetaSansBold";
	src: url("assets/fonts/betasans_bold-webfont.woff2") format("woff2"),
	     url("assets/fonts/betasans_bold-webfont.woff") format("woff");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "BetaSemi";
	src: url("assets/fonts/betasansnorm_regular-webfont.woff2") format("woff2"),
	     url("assets/fonts/betasansnorm_regular-webfont.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

/* ----- Variables design (Figma) ----- */
:root {
	--zylway-grey: #505050;
	--zylway-white: #ffffff;
	--zylway-blue: #445aac;
	--zylway-blue-dark: #3a4a8f;
	--zylway-red: #c2185b;
	/* Titres : BetaSemi (h2), BetaSansBold (h1) */
	--font-heading: "BetaSemi", "BetaSansBold", sans-serif;
	--font-body: "Poppins", sans-serif;
	/* Sous-titre: Poppins 20px, line-height 1.4 */
	--text-soustitre-size: 20px;
	--text-soustitre-lh: 1.4;
	/* Courant / body: Poppins 16px, line-height 1.4 */
	--text-courant-size: 16px;
	--text-courant-lh: 1.4;
	/* Gradient H2 (maquette : texte avec dégradé) */
	--zylway-h2-gradient: linear-gradient(180deg, #E77437 0%, #DD306B 56.75%, #6603E6 141.88%);
 
}

/* ----- Typo globale : titres = BetaSans, reste = Poppins ----- */
body,
#wrapper,
#main {
	font-family: var(--font-body);
}
body {
	overflow-x: hidden;
}

/* ----- Hero animation (home, full width, ACF images_de_lanimation) ----- */
.hero-animation {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	background: transparent;
}
.hero-animation__inner {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 85vh;
}
.hero-animation__slide {
	position: absolute;
	inset: 0;
	width: 100%;
	min-width: 100%;
	height: 100%;
	opacity: 0;
}
img.hero-animation__slide {
	object-fit: cover;
	object-position: center;
}
picture.hero-animation__slide {
	display: block;
}
picture.hero-animation__slide > img {
	display: block;
	width: 100%;
	min-width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* Image 1 : toujours visible. 2+ : keyframes générées en PHP selon le nombre d'images. */
.hero-animation__slide[data-hero-index="1"] {
	opacity: 1;
}
.hero-animation__overlay {
	position: absolute;
	inset: 0;
	background: #000;
	opacity: 0.3;
	pointer-events: none;
}
.hero-animation__title-wrap {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.hero-animation__title-wrap .container h1 {
	color: var(--white, var(--zylway-white, #fff)) !important;
	font-family: BetaSansBold, var(--font-heading) !important;
	font-size: 52px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: normal !important;
	margin: 0 !important;
}
/* 2, 3, … : affichées par-dessus puis cachées dans l’ordre inverse. Pas de fondu noir. */


/* ----- Points clés homepage (ACF options, rendu type PJ) ----- */
/* Wrapper pour biseau + superposition du bas (Figma node 165-1140) */
.points-cles {
	position: relative;
}
.points-cles-hero {
	position: relative;
	z-index: 1;
	width: 100%;
	color: var(--zylway-white);
	overflow: visible;
	/* Biseau haut droite + diagonale bas qui s’étend jusqu’à gauche */
	padding: 60px 0 100px;
}
.points-cles-hero::before {
	content: '';
	position: absolute;
	left: 10%;
	right: 10%;
	top: 90%;
	bottom: -140px;
	background: #e8e8e8;
	z-index: 0;
	clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%);
}
.points-cles-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--zylway-blue-dark);
	clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% calc(100% - 90px), 0 100%);
	z-index: 1;
}
.points-cles-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 35px;
}
.points-cles-hero__header {
	text-align: center;
	margin-bottom: 48px;
}
.points-cles-hero__header h1,
.points-cles-hero__header h2,
.points-cles-hero__header h3 {
	color: var(--zylway-white) !important;
	font-family: var(--font-heading) !important;
	margin-bottom: 0.5em !important;
}
.points-cles-hero__header p {
	color: var(--zylway-white);
	font-family: var(--font-body);
	margin-bottom: 0.25em;
}
.points-cles-hero__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 24px;
	padding: 35px 35px;
}
.points-cles-hero__item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.points-cles-hero__picto {
	display: block;
	margin-bottom: 16px;
	max-width: 100%;
	height: auto;
}
/* Spécificité renforcée pour battre #main h3 et #main .content p */
#main .points-cles-hero__item-title,
.points-cles-hero .points-cles-hero__item-title {
	color: var(--white, var(--zylway-white, #fff)) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	font-style: normal !important;
	font-weight: 700 !important;
	line-height: 140% !important;
	margin: 0 0 8px !important;
}
#main .points-cles-hero__item-desc,
.points-cles-hero .points-cles-hero__item-desc {
	color: var(--white, var(--zylway-white, #fff)) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: 140% !important;
}
#main .points-cles-hero__item-desc p,
.points-cles-hero .points-cles-hero__item-desc p {
	margin: 0 0 0.5em !important;
	color: var(--white, var(--zylway-white, #fff)) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 140% !important;
}
.points-cles-hero__item-desc p:last-child {
	margin-bottom: 0;
}

/* Blocs du bas : le gris vient du ::before du hero (passe sous le bleu) */
.points-cles-bottom {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	position: relative;
	z-index: 2;
	margin-top: -80px;
	padding-left: 10%;
	padding-right: 10%;
	box-sizing: border-box;
	min-height: 140px;
}
.points-cles-encadre {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	min-width: 280px;
	max-width: 280px;
	background: #557bc3;
	padding: 32px 28px;
}
.points-cles-encadre__icon {
	margin: 0 0 20px;
}
.points-cles-encadre__icon svg {
	display: block;
	width: 45px;
	height: 46px;
}
.points-cles-encadre__content {
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 160%;
	color: var(--white, #fff) !important;
}
.points-cles-encadre__content p {
	margin: 0 0 0.4em;
	color: var(--white, #fff) !important;
}
.points-cles-encadre__content p:last-child {
	margin-bottom: 0;
}

/* Bloc drapeau : transparent, le gris vient du ::before de .points-cles-bottom */
.points-cles-origine {
	position: relative;
	z-index: 1;
	flex: 1;
	min-width: 280px;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 32px;
}
.points-cles-origine__text {
	display: flex;
	align-items: center;
	gap: 16px;
}
.points-cles-origine__flag {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	overflow: hidden;
}
.points-cles-origine__flag svg {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
}
.points-cles-origine__wysiwyg {
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.4;
	color: var(--zylway-grey);
}
.points-cles-origine__wysiwyg p:first-of-type {
	font-size: 16px;
	font-weight: 700;
	color: var(--zylway-grey);
	margin-bottom: 0.25em;
}
.points-cles-origine__wysiwyg p {
	margin: 0 0 0.25em;
}
body #wrapper #main .points-cles-origine__wysiwyg p {
	margin-bottom: 0 !important;
}
.points-cles-origine__wysiwyg p:last-child {
	margin-bottom: 0;
}
.points-cles-origine__wysiwyg h1,
.points-cles-origine__wysiwyg h2,
.points-cles-origine__wysiwyg h3 {
	color: var(--zylway-grey) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
}

@media (max-width: 992px) {
	.points-cles-hero__inner {
		padding: 0 35px;
	}
	.points-cles-hero__grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 991px) {
	.points-cles-bottom {
		flex-direction: column;
	}
	.points-cles-encadre {
		max-width: 100%;
	}
	.points-cles-origine {
		flex-direction: column;
	}
}
@media (max-width: 575px) {
	.points-cles-hero {
		padding: 40px 0 100px;
	}
	.points-cles-hero::after {
		clip-path: polygon(0 0, 100% 0, 100% 50px, 100% 88%, 0 100%);
	}
	.points-cles-hero::before {
		bottom: -180px;
		clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%);
	}
	.points-cles-hero__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	
	.points-cles-origine {
		padding: 24px 16px;
	}
}
@media (max-width: 568px) {
	.points-cles-hero::before {
		display: none;
	}
	.points-cles-hero::after {
		clip-path: none;
	}
}

/* ----- Formulaire contact Zylway (Figma 165-1281, CF7) ----- */
/* Cible le formulaire avec ou sans html_class (fallback .wpcf7) */
.zylway-contact-form .zylway-contact-form-fields,
.wpcf7-form .zylway-contact-form-fields {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	max-width: 100%;
}
/* Ligne des 4 champs : flex horizontal, 21px d'écart, champs 202px (maquette) */
.zylway-contact-form .zylway-contact-fields-row,
.wpcf7-form .zylway-contact-fields-row {
	display: flex;
	flex-wrap: wrap;
	gap: 21px;
	align-items: flex-start;
	width: 100%;
	max-width: 871px;
	justify-content: center;
}
/* Tous les enfants directs (CF7 peut générer p ou br) */
.zylway-contact-form .zylway-contact-fields-row > *,
.wpcf7-form .zylway-contact-fields-row > * {
	margin: 0 !important;
	flex: 0 0 202px;
}
.zylway-contact-form .zylway-contact-fields-row > p,
.wpcf7-form .zylway-contact-fields-row > p {
	margin: 0 !important;
	flex: 0 0 202px;
}
.zylway-contact-form .zylway-contact-fields-row > br,
.wpcf7-form .zylway-contact-fields-row > br {
	display: none;
}
.zylway-contact-form .zylway-contact-fields-row .wpcf7-form-control-wrap,
.wpcf7-form .zylway-contact-fields-row .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}
.zylway-contact-form .zylway-contact-fields-row input[type="text"],
.zylway-contact-form .zylway-contact-fields-row input[type="email"],
.zylway-contact-form .zylway-contact-fields-row input[type="tel"],
.zylway-contact-form .zylway-contact-fields-row select,
.wpcf7-form .zylway-contact-fields-row input[type="text"],
.wpcf7-form .zylway-contact-fields-row input[type="email"],
.wpcf7-form .zylway-contact-fields-row input[type="tel"],
.wpcf7-form .zylway-contact-fields-row select {
	width: 100%;
	min-width: 0;
	height: 40px;
	padding: 6px 12px;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid var(--zylway-blue, #445aac);
	border-radius: 4px;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	color: #000;
}
/* Flèche du select : 10px de marge à droite en plus (moins collée au bord) */
.zylway-contact-form .zylway-contact-fields-row select,
.wpcf7-form .zylway-contact-fields-row select {
	padding-right: 22px;
}
.zylway-contact-form .zylway-contact-fields-row input::placeholder,
.zylway-contact-form .zylway-contact-fields-row select option[value=""],
.wpcf7-form .zylway-contact-fields-row input::placeholder {
	opacity: 0.5;
}
/* Bloc checkbox + texte accord : même ligne (CF7 avec [/acceptance] = texte dans le label) */
#main .zylway-contact-form .zylway-contact-agreement,
#main .wpcf7-form .zylway-contact-agreement,
.zylway-contact-form .zylway-contact-agreement,
.wpcf7-form .zylway-contact-agreement {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	width: 100%;
	max-width: 460px;
}
/* wrap = ne pas prendre toute la largeur si le texte est en frère ; sinon taille du contenu */
#main .zylway-contact-form .zylway-contact-agreement .wpcf7-form-control-wrap,
#main .wpcf7-form .zylway-contact-agreement .wpcf7-form-control-wrap,
.zylway-contact-form .zylway-contact-agreement .wpcf7-form-control-wrap,
.wpcf7-form .zylway-contact-agreement .wpcf7-form-control-wrap {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	flex: 0 1 auto !important;
	min-width: 0;
}
#main .zylway-contact-form .zylway-contact-agreement .wpcf7-list-item,
#main .wpcf7-form .zylway-contact-agreement .wpcf7-list-item,
.zylway-contact-form .zylway-contact-agreement .wpcf7-list-item,
.wpcf7-form .zylway-contact-agreement .wpcf7-list-item {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	margin: 0 !important;
	flex: 0 1 auto !important;
}
/* label = flex row pour garder input et span.wpcf7-list-item-label côte à côte (bat #main .content label) */
#main .zylway-contact-form .zylway-contact-agreement .wpcf7-list-item label,
#main .wpcf7-form .zylway-contact-agreement .wpcf7-list-item label,
.zylway-contact-form .zylway-contact-agreement .wpcf7-list-item label,
.wpcf7-form .zylway-contact-agreement .wpcf7-list-item label {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	margin: 0 !important;
	cursor: pointer;
	flex: 1 1 auto !important;
	min-width: 0;
	width: auto !important;
	max-width: none !important;
}
#main .zylway-contact-form .zylway-contact-agreement input[type="checkbox"],
#main .wpcf7-form .zylway-contact-agreement input[type="checkbox"],
.zylway-contact-form .zylway-contact-agreement input[type="checkbox"],
.wpcf7-form .zylway-contact-agreement input[type="checkbox"] {
	display: inline-block !important;
	flex-shrink: 0 !important;
	width: 15px !important;
	min-width: 15px !important;
	height: 15px !important;
	margin: 0 !important;
	accent-color: var(--zylway-blue);
	border: 1px solid var(--zylway-blue, #445aac);
	border-radius: 2px;
	background: #fff;
	float: none !important;
}
#main .zylway-contact-form .zylway-contact-agreement .wpcf7-list-item-label,
#main .wpcf7-form .zylway-contact-agreement .wpcf7-list-item-label,
.zylway-contact-form .zylway-contact-agreement .wpcf7-list-item-label,
.wpcf7-form .zylway-contact-agreement .wpcf7-list-item-label {
	display: inline-block !important;
	font-family: var(--font-body);
	font-size: 12px;
	line-height: 1.4;
	color: #000;
	flex: 1 1 auto !important;
	min-width: 0;
}
#main .zylway-contact-form .zylway-contact-agreement label,
#main .wpcf7-form .zylway-contact-agreement label,
.zylway-contact-form .zylway-contact-agreement label,
.wpcf7-form .zylway-contact-agreement label {
	font-family: var(--font-body);
	font-size: 12px;
	line-height: 1.4;
	color: #000;
}
/* Si CF7 enveloppe dans un p */
#main .zylway-contact-form .zylway-contact-agreement > p,
#main .wpcf7-form .zylway-contact-agreement > p,
.zylway-contact-form .zylway-contact-agreement > p,
.wpcf7-form .zylway-contact-agreement > p {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	margin: 0 !important;
	width: 100%;
}
.zylway-contact-form .zylway-contact-submit,
.wpcf7-form .zylway-contact-submit {
	margin: 0;
}
.zylway-contact-form .zylway-contact-submit-btn,
.zylway-contact-form input[type="submit"],
.wpcf7-form .zylway-contact-submit-btn,
.wpcf7-form .zylway-contact-submit input[type="submit"] {
	display: inline-block;
	padding: 6px 12px;
	background: var(--zylway-blue, #445aac) !important;
	border: none !important;
	border-radius: 4px;
	transition: background 0.25s ease;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: normal !important;
	color: var(--zylway-white, #fff) !important;
	cursor: pointer;
}
.zylway-contact-form .zylway-contact-submit-btn:hover,
.zylway-contact-form input[type="submit"]:hover,
.wpcf7-form .zylway-contact-submit-btn:hover,
.wpcf7-form input[type="submit"]:hover {
	background: var(--gradient, linear-gradient(180deg, #E77437 0%, #DD306B 56.75%, #6603E6 141.88%)) !important;
	transition: background 0.25s ease;
}
.zylway-contact-form .wpcf7-not-valid-tip,
.wpcf7-form .wpcf7-not-valid-tip {
	font-size: 12px;
	margin-top: 4px;
}
/* Annuler marges #main .content p sur les blocs du formulaire */
#main .zylway-contact-form-fields p,
#main .wpcf7-form .zylway-contact-form-fields p {
	margin: 0 0 0.25em 0 !important;
}
#main .zylway-contact-fields-row p,
#main .wpcf7-form .zylway-contact-fields-row p {
	margin: 0 !important;
}
@media (max-width: 900px) {
	.zylway-contact-form .zylway-contact-fields-row,
	.wpcf7-form .zylway-contact-fields-row {
		flex-direction: column;
		align-items: stretch;
		max-width: none;
	}
	.zylway-contact-form .zylway-contact-fields-row > *,
	.zylway-contact-form .zylway-contact-fields-row > p,
	.wpcf7-form .zylway-contact-fields-row > *,
	.wpcf7-form .zylway-contact-fields-row > p {
		flex: 0 0 auto;
	}
}

/* ----- Blocs .imgLink (liens + icône doc à droite) ----- */
.imgLink a,
.wpb_text_column.imgLink a {
	color: var(--blue, var(--zylway-blue, #445AAC)) !important;
	font-family: var(--font-body);
	font-size: 16px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: 140% !important;
	text-decoration: none;
}
.imgLink a:hover,
.wpb_text_column.imgLink a:hover {
	color: transparent !important;
	background: var(--zylway-h2-gradient) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
}
.imgLink a::after,
.wpb_text_column.imgLink a::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 20px;
	margin-left: 20px;
	vertical-align: middle;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='20' viewBox='0 0 16 20' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_189_736' x1='8' y1='20.1942' x2='8' y2='0.0211522' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%236603E6'/%3E%3Cstop offset='0.41' stop-color='%23DA1A7C'/%3E%3Cstop offset='1' stop-color='%23E77437'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear_189_736' x1='7.83585' y1='7.26172' x2='7.83585' y2='19.9493' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23E77437'/%3E%3Cstop offset='0.4' stop-color='%23DD306B'/%3E%3Cstop offset='1' stop-color='%236603E6'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint2_linear_189_736' x1='12.9564' y1='20.1946' x2='12.9564' y2='0.0215318' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%236603E6'/%3E%3Cstop offset='0.41' stop-color='%23DA1A7C'/%3E%3Cstop offset='1' stop-color='%23E77437'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M14.2317 20.0004H1.76829C0.793543 20.0004 0 19.2393 0 18.3043V1.69924C0 0.764307 0.793543 0.00317383 1.76829 0.00317383H10.4598V4.18042C10.4598 4.36821 10.6181 4.52003 10.8138 4.52003H16V18.3043C16 19.2393 15.2065 20.0004 14.2317 20.0004ZM1.76829 0.802264C1.25176 0.802264 0.833116 1.2058 0.833116 1.69924V18.3043C0.833116 18.7998 1.25384 19.2013 1.76829 19.2013H14.2317C14.7482 19.2013 15.1669 18.7978 15.1669 18.3043V5.31912H10.8138C10.1599 5.31912 9.62666 4.80771 9.62666 4.18042V0.802264H1.76829Z' fill='url(%23paint0_linear_189_736)'/%3E%3Cpath d='M10.0721 12.6551V7.26172H6.15001V12.6551H4.52185L8.0001 16.2042L11.4783 12.6551H10.0721Z' fill='url(%23paint1_linear_189_736)'/%3E%3Cpath d='M10.4522 0.000114454L9.91309 0.609375L15.46 5.12457L15.9991 4.51531L10.4522 0.000114454Z' fill='url(%23paint2_linear_189_736)'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* ----- Titres HN (texte courant) — spécificité #wrapper/#main pour battre main.css ----- */
#wrapper h1,
#wrapper h2,
#wrapper h3,
#wrapper h4,
#wrapper h5,
#wrapper h6,
#main h1,
#main h2,
#main h3,
#main h4,
#main h5,
#main h6 {
	font-family: var(--font-heading) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin-top: 0 !important;
	margin-bottom: 0.5em !important;
	color: inherit;
}

#wrapper h1,
#main h1 {
	font-size: 52px !important;
	letter-spacing: 0;
	text-transform:uppercase;
}
#wrapper h2,
#main h2 {
	font-size: 32px !important;
	line-height: 1 !important;
	letter-spacing: 0;
	background: var(--zylway-h2-gradient) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
}
#wrapper h3,
#main h3 { font-size: 32px !important; }
#wrapper h4,
#main h4 {
	font-size: 26px !important;
	font-family: var(--font-heading) !important;
	font-weight: 700 !important;
	line-height: var(--text-soustitre-lh) !important;
}
#wrapper h5,
#main h5 { font-size: 16px !important; }
#wrapper h6,
#main h6 { font-size: 16px !important; }

/* Contexte fond sombre (hero, bandeaux) : titres en blanc, H2 sans gradient */
#wrapper .bg-dark h1,
#wrapper .bg-dark h3,
#wrapper .bg-dark h4,
#wrapper .bg-dark h5,
#wrapper .bg-dark h6,
#main .bg-dark h1,
#main .bg-dark h3,
#main .bg-dark h4,
#main .bg-dark h5,
#main .bg-dark h6 {
	color: var(--zylway-white) !important;
}
#wrapper .bg-dark h2,
#main .bg-dark h2 {
	background: none !important;
	background-clip: unset !important;
	-webkit-background-clip: unset !important;
	color: var(--zylway-white) !important;
}

/* ----- Texte courant / paragraphes — #wrapper/#main pour battre main.css ----- */
#wrapper p,
#wrapper .content p,
#wrapper .entry-content p,
#main p,
#main .content p,
#main .entry-content p {
	font-family: var(--font-body) !important;
	font-size: var(--text-courant-size) !important;
	font-weight: 400 !important;
	line-height: var(--text-courant-lh) !important;
	letter-spacing: 0;
	color: var(--zylway-grey) !important;
	margin-top: 0 !important;
	margin-bottom: 1em !important;
}

#wrapper .bg-dark p,
#wrapper .bg-dark .content p,
#wrapper .bg-dark .entry-content p,
#main .bg-dark p,
#main .bg-dark .content p,
#main .bg-dark .entry-content p {
	color: var(--zylway-white) !important;
}

/* Points clés : titre et texte en blanc (après #main .content p pour gagner la cascade) */
#main .points-cles-hero .points-cles-hero__item-title,
#main .points-cles-hero .points-cles-hero__item-desc,
#main .points-cles-hero .points-cles-hero__item-desc p {
	color: var(--white, var(--zylway-white, #fff)) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 140% !important;
}
#main .points-cles-hero .points-cles-hero__item-desc,
#main .points-cles-hero .points-cles-hero__item-desc p {
	font-weight: 400 !important;
}

/* Encadré bleu (bloc de gauche) : texte blanc, Poppins 16px, line-height 160% */
#main .points-cles-encadre .points-cles-encadre__content,
#main .points-cles-encadre .points-cles-encadre__content p {
	color: var(--white, #fff) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	line-height: 160% !important;
}

/* Sous-titre / lead (style maquette "Innovating for peace of mind.") */
#wrapper .lead,
#wrapper .content .lead,
#wrapper .entry-content .lead,
#main .lead,
#main .content .lead,
#main .entry-content .lead {
	font-family: var(--font-body) !important;
	font-size: var(--text-soustitre-size) !important;
	font-weight: 700 !important;
	line-height: var(--text-soustitre-lh) !important;
	color: var(--zylway-grey) !important;
}

#wrapper .bg-dark .lead,
#main .bg-dark .lead { color: var(--zylway-white) !important; }

/* ----- Boutons (style maquette) — #wrapper pour battre main.css ----- */
#wrapper .btn,
#wrapper button.btn,
#wrapper a.btn,
#wrapper input[type="submit"],
#wrapper .button,
#main .btn,
#main button.btn,
#main a.btn,
#main input[type="submit"],
#main .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: normal;
	text-decoration: none !important;
	padding: 6px 12px !important;
	border-radius: 4px !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Primaire (bleu) */
#wrapper .btn-primary,
#wrapper button.btn-primary,
#wrapper a.btn-primary,
#wrapper input[type="submit"],
#main .btn-primary,
#main button.btn-primary,
#main a.btn-primary,
#main input[type="submit"] {
	background-color: var(--zylway-blue) !important;
	color: var(--zylway-white) !important;
	border-color: var(--zylway-blue) !important;
}
#wrapper .btn-primary:hover,
#wrapper a.btn-primary:hover,
#wrapper button.btn-primary:hover,
#wrapper input[type="submit"]:hover,
#main .btn-primary:hover,
#main a.btn-primary:hover,
#main button.btn-primary:hover,
#main input[type="submit"]:hover {
	background-color: var(--zylway-blue-dark) !important;
	color: var(--zylway-white) !important;
	border-color: var(--zylway-blue-dark) !important;
}

/* Secondaire / outline */
#wrapper .btn-outline-primary,
#wrapper .btn-secondary,
#main .btn-outline-primary,
#main .btn-secondary {
	background-color: transparent !important;
	color: var(--zylway-blue) !important;
	border: 1px solid var(--zylway-blue) !important;
}
#wrapper .btn-outline-primary:hover,
#wrapper .btn-secondary:hover,
#main .btn-outline-primary:hover,
#main .btn-secondary:hover {
	background-color: var(--zylway-blue) !important;
	color: var(--zylway-white) !important;
	border-color: var(--zylway-blue) !important;
}

/* ----- Header : fond blanc, padding, logo 60px ----- */
#header {
	background-color: var(--zylway-white) !important;
	padding-top: 25px;
	padding-bottom: 25px;
}
#header .navbar-brand img {
	height: 60px;
	width: auto;
	display: block;
}

/* Burger caché à 992px et au-dessus (visible uniquement en dessous) */
@media (min-width: 992px) {
	#header #navbar-toggler-hamburger,
	#header .hamburger {
		display: none !important;
	}
}

/* Burger Hamburgers (jonsuh) – couleur thème, pas de bordure Bootstrap */
#header .hamburger {
	padding: 15px;
	border: none;
	background: none;
}
#header .hamburger-inner,
#header .hamburger-inner::before,
#header .hamburger-inner::after {
	background-color: var(--zylway-blue, #445AAC);
}

/* ----- Header : logo à gauche, menu + langues alignés à droite ----- */
#header .container {
	flex-wrap: nowrap;
}
/* À partir de 992px : burger visible, menu + langue s'ouvrent sous la barre (logo + burger) */
@media (max-width: 991.98px) {
	#header {
		overflow: visible;
	}
	#header .navbar {
		flex-wrap: wrap;
		align-items: center;
	}
	#header .container {
		flex-wrap: wrap;
		position: relative;
		overflow: visible;
	}
	/* Premier rang : logo à gauche, burger à droite (ordre explicite pour éviter menu au milieu) */
	#header .navbar-brand {
		order: 1;
	}
	#header #navbar-toggler-hamburger,
	#header .hamburger {
		order: 2;
	}
	/* Menu en panneau en dessous, ne pousse pas la barre */
	#header #navbar {
		order: 3;
		flex-basis: 100%;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 1020;
		margin: 0;
		padding: 1rem 0;
		background: var(--zylway-white);
		box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
		border-top: 1px solid rgba(0, 0, 0, 0.08);
		max-height: min(80vh, 400px);
		overflow-y: auto;
	}
	#header #navbar .d-flex {
		flex-direction: column;
		align-items: stretch !important;
		gap: 0.75rem;
		padding: 0 1rem;
	}
	#header #navbar .navbar-nav {
		flex-direction: column;
		align-items: stretch;
	}
}
#header #navbar {
	justify-content: flex-end;
}
#header #navbar .d-flex {
	justify-content: flex-end !important;
}
#header .header-lang-switcher {
	display: flex;
	align-items: center;
}
#header .header-lang-switcher .wpml-ls,
#header .header-lang-switcher > div {
	display: flex;
	align-items: center;
}
/* Surcharge WPML : pas de largeur imposée sur le dropdown */
#header .header-lang-switcher .wpml-ls-legacy-dropdown,
#header .wpml-ls-legacy-dropdown {
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
}

/* Surcharge WPML : pas de bordure, typo bleue Inter, chevron Font Awesome */
#header .header-lang-switcher .wpml-ls-legacy-dropdown,
#header .header-lang-switcher .wpml-ls-legacy-dropdown a,
#header .header-lang-switcher .wpml-ls a,
#header .header-lang-switcher .wpml-ls-item-toggle,
#header .header-lang-switcher .wpml-ls-native {
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}
#header .header-lang-switcher .wpml-ls a,
#header .header-lang-switcher .wpml-ls-item-toggle,
#header .header-lang-switcher .wpml-ls-native,
#header .header-lang-switcher a[class*="wpml-ls"] {
	color: var(--zylway-blue, #445AAC) !important;
	font-family: "Inter", sans-serif !important;
	font-size: 11.2px !important;
	font-style: normal !important;
	font-weight: 700 !important;
	line-height: normal !important;
}
/* Espace 5px entre drapeau, label, chevron — ordre affichage : label puis drapeau puis chevron */
#header .header-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle,
#header .header-lang-switcher .wpml-ls-native .wpml-ls-native-toggle {
	display: inline-flex !important;
	align-items: center;
	gap: 5px;
	padding-right: 0 !important;
}
#header .header-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle:hover,
#header .header-lang-switcher .wpml-ls-native .wpml-ls-native-toggle:hover {
	background: none !important;
	background-color: transparent !important;
}
/* Surcharge WPML : pas de #eee ni couleur noire au hover/focus */
#header .header-lang-switcher .wpml-ls-legacy-dropdown .wpml-ls-current-language:hover > a,
#header .header-lang-switcher .wpml-ls-legacy-dropdown a:focus,
#header .header-lang-switcher .wpml-ls-legacy-dropdown a:hover {
	background: none !important;
	background-color: transparent !important;
	color: var(--zylway-blue, #445AAC) !important;
}
#header .header-lang-switcher .wpml-ls-legacy-dropdown .wpml-ls-flag,
#header .header-lang-switcher .wpml-ls-native .wpml-ls-flag {
	order: 2;
}
#header .header-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle::after,
#header .header-lang-switcher .wpml-ls-native .wpml-ls-native-toggle::after {
	order: 3;
	margin-left: 0;
}
/* Cacher ::after/::before sur tous les liens WPML (évite flèche par défaut) */
#header .header-lang-switcher .wpml-ls a::after,
#header .header-lang-switcher .wpml-ls a::before {
	display: none !important;
	content: none !important;
}
/* Surcharge du triangle WPML (border-based) sur le toggle : tout annuler avant notre chevron */
#header .header-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle::after {
	border: none !important;
	border-top: none !important;
	position: static !important;
	right: auto !important;
	top: auto !important;
}
/* Pas de chevron sur les items du dropdown */
#header .header-lang-switcher .wpml-ls-sub-menu a::after,
#header .header-lang-switcher .wpml-ls-sub-menu a::before {
	display: none !important;
	content: none !important;
	background: none !important;
}
/* Même ordre (label puis drapeau) et espace 5px dans les autres langues du dropdown */
#header .header-lang-switcher .wpml-ls-sub-menu a {
	display: inline-flex !important;
	align-items: center;
	gap: 5px;
}
#header .header-lang-switcher .wpml-ls-sub-menu .wpml-ls-flag {
	order: 2;
}
#header .header-lang-switcher .wpml-ls-sub-menu a:hover {
	background: none !important;
	background-color: transparent !important;
}
/* Chevron (SVG) uniquement sur le toggle — fichier pour rendu fiable */
#header .header-lang-switcher .wpml-ls-legacy-dropdown > ul > li:first-child > a::after,
#header .header-lang-switcher .wpml-ls-legacy-dropdown .wpml-ls-item-toggle::after {
	display: inline-block !important;
	content: "" !important;
	width: 11px;
	height: 6px;
	vertical-align: middle;
	background: url("assets/images/chevron-lang.svg") no-repeat center;
	background-size: 11px 6px;
}
#header .header-lang-switcher .wpml-ls-native .wpml-ls-native-toggle::after {
	display: inline-block !important;
	content: "" !important;
	width: 11px;
	height: 6px;
	vertical-align: middle;
	background: url("assets/images/chevron-lang.svg") no-repeat center;
	background-size: 11px 6px;
}
/* Cacher SVG/icône flèche WPML */
#header .header-lang-switcher .wpml-ls-legacy-dropdown svg,
#header .header-lang-switcher .wpml-ls-dropdown svg,
#header .header-lang-switcher .wpml-ls .wpml-ls-flag + svg {
	display: none !important;
}

/* ----- Back to top (Figma 366-568) : 40px du bas et de la droite ----- */
.back-to-top {
	position: fixed;
	bottom: 40px;
	right: 40px;
	z-index: 9999;
	width: 52px;
	height: 52px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.2s ease;
}
.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
}
.back-to-top:hover {
	transform: scale(1.05);
}
.back-to-top:focus {
	outline: 2px solid var(--zylway-white);
	outline-offset: 2px;
}
.back-to-top__circle {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--gradient, linear-gradient(180deg, #E77437 0%, #DD306B 56.75%, #6603E6 141.88%));
	box-shadow: 0 4px 20px rgba(102, 3, 230, 0.35);
}
.back-to-top__arrow {
	position: relative;
	z-index: 1;
	color: var(--zylway-white);
	pointer-events: none;
}

/* ----- Footer ----- */
:root {
	--gradient: linear-gradient(180deg, #E77437 0%, #DD306B 56.75%, #6603E6 141.88%);
}
#footer {
	padding-top: 80px;
	padding-bottom: 80px;
	background: var(--gradient);
	color: var(--zylway-white);
}
#footer a {
	color: inherit;
	text-decoration: none;
}
#footer a:hover {
	text-decoration: underline;
}
#footer .footer-left .footer-logo {
	display: block;
	margin-bottom: 1rem;
}
#footer .footer-left .footer-text {
	font-family: var(--font-body);
	font-size: var(--text-courant-size);
	line-height: var(--text-courant-lh);
	color: var(--zylway-white) !important;
}
/* Surcharge #wrapper p / #main p pour le footer : texte en blanc */
#footer p,
#footer .footer-text p,
#footer .content p,
#footer .entry-content p,
#footer .footer-left .footer-text p,
#footer .footer-left .footer-text a {
	color: var(--zylway-white) !important;
}
#footer .footer-left .footer-text p:last-child {
	margin-bottom: 0;
}
#footer .footer-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	text-align: right;
}
#footer .footer-pages {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.25rem 0;
}
#footer .footer-pages li {
	display: inline;
}
#footer .footer-pages li + li::before {
	content: " \007c ";
	margin-left: 0.35em;
	margin-right: 0.35em;
	opacity: 0.9;
}

/* ----- Navigation : style maquette (boutons bleus CTA + hover) ----- */
#header .navbar-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
#header .navbar-nav .nav-item {
	list-style: none;
	margin: 0;
}
#header .navbar-nav .nav-link,
#header .navbar-nav .dropdown-toggle {
	position: relative;
	overflow: hidden;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: normal !important;
	color: var(--zylway-white) !important;
	background: var(--zylway-blue) !important;
	padding: 6px 12px !important;
	border-radius: 4px !important;
	text-decoration: none !important;
	border: none !important;
}
/* Couche gradient en ::before : transition en opacity (fluide, pas de clignotement) */
#header .navbar-nav .nav-link::before,
#header .navbar-nav .dropdown-toggle::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--gradient, linear-gradient(180deg, #E77437 0%, #DD306B 56.75%, #6603E6 141.88%));
	border-radius: inherit;
	opacity: 0;
	transition: opacity 0.25s ease;
	z-index: 0;
}
/* Lien actif : pas de gradient au repos (avant :hover pour que le survol garde le même effet que les autres) */
#header .navbar-nav .nav-link.active::before,
#header .navbar-nav .dropdown-toggle.active::before {
	opacity: 0;
}
#header .navbar-nav .nav-link:hover::before,
#header .navbar-nav .nav-link:focus::before,
#header .navbar-nav .dropdown-toggle:hover::before,
#header .navbar-nav .dropdown-toggle:focus::before {
	opacity: 1;
}
/* Texte au-dessus du ::before (span.nav-link-inner dans le walker) */
#header .navbar-nav .nav-link-inner,
#header .navbar-nav .nav-link .nav-link-inner,
#header .navbar-nav .dropdown-toggle .nav-link-inner {
	position: relative;
	z-index: 1;
}
#header .navbar-nav .dropdown-toggle::after {
	vertical-align: middle;
	margin-left: 0.25em;
}
body .wpml-ls-legacy-dropdown .wpml-ls-sub-menu{
	background: #fff;
}
/* Sous-menu : style liste, pas bouton */
#header .navbar .dropdown .dropdown-menu {
	display: none;
	min-width: 12rem;
	padding: 0.5rem 0;
	background: var(--zylway-white);
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	border: 1px solid rgba(0, 0, 0, 0.06);
}
#header .navbar .dropdown:hover .dropdown-menu {
	display: block;
}
#header .navbar .dropdown .dropdown-item {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--zylway-grey);
	padding: 6px 12px;
}
#header .navbar .dropdown .dropdown-item:hover {
	background-color: rgba(68, 90, 172, 0.08);
	color: var(--zylway-blue);
}

/* From http://codex.wordpress.org/CSS */

.alignnone {
	margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
	display: block;
	margin: 5px auto 5px auto;
}

.alignright {
	float: right;
	margin: 5px 0 20px 20px;
}

.alignleft {
	float: left;
	margin: 5px 20px 20px 0;
}

a img.alignright {
	float: right;
	margin: 5px 0 20px 20px;
}

a img.alignnone {
	margin: 5px 20px 20px 0;
}

a img.alignleft {
	float: left;
	margin: 5px 20px 20px 0;
}

a img.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption {
	max-width: 96%; /* Image does not overflow the content area */
	padding: 5px 3px 10px;
	text-align: center;
}
.wp-caption.alignnone {
	margin: 5px 20px 20px 0;
}
.wp-caption.alignleft {
	margin: 5px 20px 20px 0;
}
.wp-caption.alignright {
	margin: 5px 0 20px 20px;
}
.wp-caption img {
	border: 0 none;
	height: auto;
	margin: 0;
	max-width: 98.5%;
	padding: 0;
	width: auto;
}
.wp-caption p.wp-caption-text {
	font-size: 11px;
	line-height: 17px;
	margin: 0;
	padding: 0 4px 5px;
}

.gallery-item {
	display: inline-block;
	text-align: left;
	vertical-align: top;
	width: 50%;
}

.gallery-item a,
.gallery-item a:hover,
.gallery-item a:focus {
	-webkit-box-shadow: none;
	box-shadow: none;
	background: none;
	display: inline-block;
	max-width: 100%;
}

.gallery-item a img {
	display: block;
	-webkit-transition: -webkit-filter 0.2s ease-in;
	transition: -webkit-filter 0.2s ease-in;
	transition: filter 0.2s ease-in;
	transition:
		filter 0.2s ease-in,
		-webkit-filter 0.2s ease-in;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.gallery-item a:hover img,
.gallery-item a:focus img {
	-webkit-filter: opacity(60%);
	filter: opacity(60%);
}

.gallery-caption {
	display: block;
	text-align: left;
	padding: 0 10px 0 0;
	margin-bottom: 0;
}

.gallery-columns-1 .gallery-item {
	max-width: 100%;
}

.gallery-columns-2 .gallery-item {
	max-width: 50%;
}

.gallery-columns-3 .gallery-item {
	max-width: 33%;
}

.gallery-columns-4 .gallery-item {
	max-width: 25%;
}

.gallery-columns-5 .gallery-item {
	max-width: 20%;
}

.gallery-columns-6 .gallery-item {
	max-width: 16.66%;
}

.gallery-columns-7 .gallery-item {
	max-width: 14.28%;
}

.gallery-columns-8 .gallery-item {
	max-width: 12.5%;
}

.gallery-columns-9 .gallery-item {
	max-width: 11.11%;
}

.gallery-columns-6 .gallery-caption,
.gallery-columns-7 .gallery-caption,
.gallery-columns-8 .gallery-caption,
.gallery-columns-9 .gallery-caption {
	display: none;
}

.bypostauthor {
	font-weight: bold;
}

/* Text meant only for screen readers. */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	color: #21759b;
	display: block;
	font-size: 14px;
	font-size: 0.875rem;
	font-weight: bold;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000; /* Above WP toolbar. */
}
