/*
Theme Name: Divi GIV
Theme URI: https://www.imagerievoiron.fr/
Description: Thème enfant Divi du Groupement d'Imagerie du Voironnais (reprise à l'identique de l'ancien thème « Groupement Imagerie Voironnais »).
Author: Aestivo
Author URI: https://www.aestivo.com/
Template: Divi
Version: 1.0.0
Text Domain: divi-giv
*/

/*--------------------------------------------------------------
>>> SOMMAIRE
----------------------------------------------------------------
# Police et variables
# Base (typographie, liens, listes, formulaires)
# Grille (sections, lignes, colonnes façon WPBakery)
# En-tête et menu
# Accueil (diaporama, raccourcis, tuiles)
# Pré-pied de page et pied de page
# Contenus (boutons, images, carrousels, accordéons)
# Praticiens
# Espace pro
# Actualités et articles
# Responsive
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Police et variables
--------------------------------------------------------------*/
/*
 * Graisses limitées à 100–700 : l'ancien site ne chargeait que le 400 et le 700,
 * les textes en 900 (menu, boutons, raccourcis) s'affichaient donc en 700.
 */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 700;
	font-display: swap;
	src: url("fonts/montserrat-latin.woff2") format("woff2");
}

@font-face {
	font-family: "Montserrat";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("fonts/montserrat-latin-italic.woff2") format("woff2");
}

:root {
	--giv-blue: #1786a8;
	--giv-pink: #e31182;
	--giv-yellow: #f1c330;
	--giv-green: #a5d6cd;
	--giv-text: #404040;
	--giv-grey: #f6f6f6;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
body,
button,
input,
select,
optgroup,
textarea {
	color: var(--giv-text);
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

/* Les modules héritent de la typographie de la page (comme les blocs WPBakery) */
body .et_pb_module,
body .et_pb_text,
.et_pb_bg_layout_light .et_pb_text,
.et_pb_bg_layout_dark .et_pb_text {
	font-family: "Montserrat", sans-serif;
	color: inherit;
}

body {
	background: #fff;
	font-weight: 400;
}

#page-container,
#et-main-area,
#main-content {
	background: #fff;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	line-height: 1.5;
	color: var(--giv-text);
	padding-bottom: 0;
}

h1,
h2,
h3,
h4 {
	margin: 0 !important;
}

h1 {
	font-size: 4em !important;
}

h2 {
	font-size: 3.5em !important;
}

h3 {
	font-size: 2.5em !important;
}

#page-container h4 {
	font-size: 1.5em;
}

#page-container h5 {
	font-size: 0.83em;
	margin: 1.67em 0;
	line-height: 1.5;
}

#page-container h6 {
	font-size: 0.67em;
	margin: 2.33em 0;
	line-height: 1.5;
}

/* Marges des paragraphes identiques à l'ancien thème (marge haute par défaut du navigateur conservée) */
p,
.et_pb_text p,
.et_pb_text p:last-of-type {
	margin: 1em 0 1.5em;
	padding-bottom: 0;
	font-size: 1.1rem;
	line-height: 1.8;
}

/* Comme WPBakery : pas de marge basse sur le dernier élément d'un bloc de texte */
.et_pb_text .et_pb_text_inner :last-child,
.et_pb_text .et_pb_text_inner p:last-child {
	margin-bottom: 0;
}

strong,
b {
	font-weight: 700;
}

em,
i {
	font-style: italic;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
	padding: 0;
	line-height: 1.5;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

img {
	height: auto;
	max-width: 100%;
}

/* Listes à puces « coche » des blocs de texte */
.et_pb_text h3 + ul,
.et_pb_text h4 + ul,
.et_pb_text h5 + ul {
	margin-top: 10px;
}

.et_pb_text ul {
	list-style: none;
	margin: 0;
	padding: 0 0 0 40px;
	line-height: 1.5;
}

.et_pb_text ol {
	padding: 0 0 0 40px;
	line-height: 1.5;
}

.et_pb_text ul li {
	margin-bottom: 12px;
	padding-left: 40px;
	padding-top: 1px;
	position: relative;
	font-size: 1.1rem;
	line-height: 1.5;
}

.et_pb_text ul > li::before {
	content: url("svg/checked.svg");
	width: 24px;
	height: 24px;
	display: inline-block;
	position: absolute;
	left: 0;
	top: 0;
}

.et_pb_text ul > ul {
	list-style: disc;
	margin-left: 16px;
}

.parent-pageid-496 .et_pb_text ul {
	list-style: disc;
	margin-left: 3px;
}

.et_pb_text ul > ul li,
.parent-pageid-496 .et_pb_text ul > li {
	padding: 0;
}

.et_pb_text ul > ul li::before,
.parent-pageid-496 .et_pb_text ul > li::before {
	display: none;
}


/* Liens */
a {
	color: var(--giv-pink);
	text-decoration: none;
}

a:hover,
a:focus,
a:active {
	color: #fff;
	outline: 0;
}

#main-content .et_pb_text a {
	position: relative;
	transition: all 0.3s ease-in-out;
	z-index: 0;
}

#main-content .et_pb_text a::after {
	content: "";
	position: absolute;
	z-index: -1;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: scale3d(0, 1, 1);
	transform-origin: 0% 0%;
	transition: transform 0.5s;
	transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
	background: var(--giv-pink);
}

#main-content .et_pb_text a:hover::after {
	transform: scale3d(1, 1, 1);
}

#raccourcis a::after,
.overlaytext a::after,
.giv-custom-menu a::after {
	display: none !important;
}

#menu-site-map-menu a:hover {
	color: var(--giv-pink);
}

/* Formulaires */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.giv-telemis-button {
	display: inline-block;
	border-radius: 50px;
	background: var(--giv-blue);
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	line-height: 1;
	padding: 1em 1.6em;
	border: 0;
	cursor: pointer;
}

.giv-telemis-button:hover {
	color: #fff;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: var(--giv-blue);
	border: 2px solid var(--giv-blue);
	border-radius: 5px;
	padding: 5px 7px;
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	background: #fff;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
textarea:focus {
	color: var(--giv-pink);
	outline-color: var(--giv-pink);
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

.wpcf7-form p {
	color: var(--giv-blue);
}

/*--------------------------------------------------------------
# Grille : comportement WPBakery (pleine largeur, sans gouttière, sans marge entre modules)
--------------------------------------------------------------*/
#main-content .container::before {
	display: none;
}

.et_pb_section {
	padding: 0;
}

.et_pb_row,
.et_pb_row_inner {
	padding: 0;
}

#main-content .et_pb_module,
#main-content .et_pb_column > .et_pb_module:not(:last-child),
#main-content .et_pb_row_inner:not(:last-child) {
	margin-bottom: 0;
}

.et_pb_column {
	min-height: 1px;
}

/*
 * Largeurs de colonnes de la grille WPBakery (classes giv-w-a-b posées par la migration).
 * Comme avant, les colonnes restent côte à côte dès 768 px et s'empilent en dessous.
 */
@media (min-width: 768px) {
	.et_pb_row > .et_pb_column[class*="giv-w-"],
	.et_pb_row_inner > .et_pb_column[class*="giv-w-"] {
		float: left;
		margin-right: 0 !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-12,
	.et_pb_row_inner > .et_pb_column.giv-w-1-12 {
		width: 8.3333% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-6,
	.et_pb_row_inner > .et_pb_column.giv-w-1-6 {
		width: 16.6667% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-5,
	.et_pb_row_inner > .et_pb_column.giv-w-1-5 {
		width: 20% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-4,
	.et_pb_row_inner > .et_pb_column.giv-w-1-4 {
		width: 25% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-3,
	.et_pb_row_inner > .et_pb_column.giv-w-1-3 {
		width: 33.3333% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-2-5,
	.et_pb_row_inner > .et_pb_column.giv-w-2-5 {
		width: 40% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-5-12,
	.et_pb_row_inner > .et_pb_column.giv-w-5-12 {
		width: 41.6667% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-1-2,
	.et_pb_row_inner > .et_pb_column.giv-w-1-2 {
		width: 50% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-3-5,
	.et_pb_row_inner > .et_pb_column.giv-w-3-5 {
		width: 60% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-2-3,
	.et_pb_row_inner > .et_pb_column.giv-w-2-3 {
		width: 66.6667% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-3-4,
	.et_pb_row_inner > .et_pb_column.giv-w-3-4 {
		width: 75% !important;
	}

	.et_pb_row > .et_pb_column.giv-w-11-12,
	.et_pb_row_inner > .et_pb_column.giv-w-11-12 {
		width: 91.6667% !important;
	}
}

@media (max-width: 767px) {
	.et_pb_row > .et_pb_column[class*="giv-w-"],
	.et_pb_row_inner > .et_pb_column[class*="giv-w-"] {
		width: 100% !important;
	}
}

/* Alignement vertical au centre (content_placement="middle") */
.giv-vmiddle {
	display: flex;
	align-items: center;
}

/*
 * Gouttières des lignes internes (paramètre « gap » WPBakery) : demi-gouttière autour de chaque colonne.
 * Bordure transparente (et fond limité à l'intérieur) pour conserver l'espacement propre de la colonne.
 */
.giv-gap-20 > .et_pb_column,
.giv-gap-25 > .et_pb_column,
.giv-gap-30 > .et_pb_column {
	box-sizing: border-box;
	border-style: solid !important;
	border-color: transparent !important;
	background-clip: padding-box !important;
}

.giv-gap-20 > .et_pb_column {
	border-width: 10px !important;
}

.giv-gap-25 > .et_pb_column {
	border-width: 12.5px !important;
}

.giv-gap-30 > .et_pb_column {
	border-width: 15px !important;
}

/* Espaceurs (vc_empty_space) */
.et_pb_divider.giv-space {
	margin: 0 !important;
}

.et_pb_divider.giv-space::before {
	display: none;
}

/*--------------------------------------------------------------
# En-tête et menu principal (module Menu du Theme Builder)
--------------------------------------------------------------*/
.giv-header {
	background: #fff;
}

.giv-main-menu {
	background: #fff !important;
}

.giv-main-menu .et_pb_menu_inner_container {
	display: flex;
	align-items: center;
	min-height: 10em;
}

.giv-main-menu .et_pb_menu__logo-wrap {
	flex: 0 0 auto !important;
	margin: 2em !important;
	max-width: none !important;
	width: auto !important;
}

.giv-main-menu .et_pb_menu__logo {
	max-width: none !important;
	width: auto !important;
	margin: 0 !important;
}

.giv-main-menu .et_pb_menu__logo img {
	display: block;
	height: 82px !important;
	max-height: 82px !important;
	width: auto !important;
	max-width: none !important;
}

.giv-main-menu .et_pb_menu__wrap {
	flex: 1 1 auto !important;
	justify-content: flex-end !important;
	margin: 0 !important;
}

.giv-main-menu .et-menu li {
	font-size: 16px;
}

.giv-main-menu .et_pb_menu__menu,
.giv-main-menu .et-menu-nav,
.giv-main-menu .et-menu-nav > ul {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: nowrap;
	margin: 0;
	padding: 0;
}

.giv-main-menu .et-menu {
	font-size: 16px;
}

.giv-main-menu .et-menu > li {
	display: flex;
	position: relative;
	padding: 0 !important;
	margin: 0;
}

.giv-main-menu .et-menu > li > a {
	display: inline-flex;
	align-items: center;
	color: var(--giv-blue) !important;
	font-family: "Montserrat", sans-serif;
	font-weight: 900;
	font-size: 1em;
	line-height: 1.5;
	border: solid 3px var(--giv-blue);
	border-radius: 5em;
	background-color: #fff;
	margin: 1.5em 1.2em;
	padding: 0.5em 0.75em !important;
	opacity: 1 !important;
	transition: all 0.2s ease-in-out;
}

.giv-main-menu .et-menu > li > a:hover {
	color: #fff !important;
	background-color: var(--giv-blue);
}

/* Pas de flèche Divi sur les éléments parents */
.giv-main-menu .et-menu > li.menu-item-has-children > a::after {
	display: none;
}

/* Icônes des éléments du menu (mêmes ID qu'avant la migration) */
.giv-main-menu .et-menu > .menu-item-object-page > a::before {
	content: "";
	flex: 0 0 auto;
	margin-right: 1em;
	height: 34px;
	width: 34px;
	transition: all 0.2s ease-in-out;
}

.giv-main-menu .et-menu .menu-item-31 > a::before {
	background: url("svg/cross.svg") no-repeat center / 100% auto;
}

.giv-main-menu .et-menu .menu-item-31 > a:hover::before {
	background-image: url("svg/crosswhite.svg");
}

.giv-main-menu .et-menu .menu-item-30 > a::before {
	background: url("svg/group.svg") no-repeat center / 100% auto;
}

.giv-main-menu .et-menu .menu-item-30 > a:hover::before {
	background-image: url("svg/groupwhite.svg");
}

.giv-main-menu .et-menu .menu-item-29 > a::before {
	background: url("svg/document.svg") no-repeat center / 100% auto;
}

.giv-main-menu .et-menu .menu-item-29 > a:hover::before {
	background-image: url("svg/documentwhite.svg");
}

.giv-main-menu .et-menu .menu-item-28 > a::before {
	background: url("svg/info.svg") no-repeat center / 100% auto;
}

.giv-main-menu .et-menu .menu-item-28 > a:hover::before {
	background-image: url("svg/infowhite.svg");
}

.giv-main-menu .et-menu .menu-item-27 > a::before {
	background: url("svg/email.svg") no-repeat center / 100% auto;
}

.giv-main-menu .et-menu .menu-item-27 > a:hover::before {
	background-image: url("svg/emailwhite.svg");
}

/* Accueil : icône maison au-dessus du libellé */
.giv-main-menu .et-menu .menu-item-509 > a {
	position: relative;
	border: 0;
	font-size: 14px;
	align-items: flex-end;
	padding: 0.5em !important;
	height: 76px;
	max-height: 76px;
}

.giv-main-menu .et-menu .menu-item-509 > a:hover {
	background: none;
	color: var(--giv-blue) !important;
}

.giv-main-menu .et-menu .menu-item-509 > a::before {
	background: url("svg/home.svg") no-repeat center / 100% auto;
	height: 36px;
	width: 36px;
	margin: 0;
	position: absolute;
	top: 6px;
	left: 50%;
	transform: translateX(-50%);
}

.giv-main-menu .et-menu .menu-item-509 > a:hover::before {
	transform: translateX(-50%) scale(1.1);
}

/* RDV par téléphone */
.giv-main-menu .et-menu .menu-item-860 > a {
	background: var(--giv-pink) !important;
	color: #fff !important;
	text-align: center;
	border-color: var(--giv-pink);
}

.giv-main-menu .et-menu .menu-item-860 > a:hover {
	transform: scale(1.1);
}

/* Sous-menus : collés sous l'élément, de la même largeur, liens blancs en 16 px empilés */
.giv-main-menu .et-menu .sub-menu {
	top: 100% !important;
	left: 0 !important;
	width: 100% !important;
	min-width: 0;
	margin: 0 !important;
	padding: 15px 0 !important;
	background-color: var(--giv-blue) !important;
	border: 0 !important;
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	z-index: 99999;
}

.giv-main-menu .et-menu .sub-menu li {
	display: flex !important; /* pas de fusion des marges entre liens, comme avant */
	width: 100%;
	padding: 0 !important;
	margin: 0;
	float: none;
	line-height: 1.5;
}

.giv-main-menu .et-menu .sub-menu li a {
	display: flex;
	flex: 1 1 auto;
	width: auto !important;
	margin: 8px;
	padding: 10px 15px 10px 30px !important;
	color: #fff !important;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	background: transparent;
	opacity: 1 !important;
	transition: all 0.2s ease-in-out;
}

/* Décalage vers la droite au survol, à largeur de texte constante (pas de retour à la ligne) */
.giv-main-menu .et-menu .sub-menu li a:hover {
	padding-left: 38px !important;
	padding-right: 7px !important;
	background: transparent;
}

/* Menu mobile (bascule à 1080 px comme l'ancien site) : bouton rond, panneau latéral bleu */
.giv-main-menu .mobile_nav {
	position: relative;
	display: block;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--giv-blue);
	margin-right: 5vw;
	cursor: pointer;
	z-index: 100001;
}

.giv-main-menu .mobile_menu_bar {
	position: absolute;
	inset: 0;
	padding: 0;
}

/* Trois traits blancs (24 x 3 px, espacés de 5 px) */
.giv-main-menu .mobile_nav .mobile_menu_bar::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 3px;
	margin: -1.5px 0 0 -12px;
	background: #fff;
	box-shadow: 0 -8px 0 #fff, 0 8px 0 #fff;
	font-size: 0;
	transition: all 0.2s ease-in-out;
}

/* Menu ouvert : deux traits, comme l'ancien bouton */
.giv-main-menu .mobile_nav.opened .mobile_menu_bar::before {
	box-shadow: 0 -5px 0 #fff;
	margin-top: 1px;
}

.giv-main-menu .et_mobile_menu {
	position: fixed !important;
	top: 0 !important;
	left: 0;
	right: auto;
	width: 66vw;
	max-width: none;
	height: 100vh;
	overflow-y: auto;
	padding: 0 !important;
	margin: 0;
	border: 0;
	background-color: var(--giv-blue) !important;
	box-shadow: none;
	z-index: 100000;
}

.giv-main-menu .et_mobile_menu li {
	position: relative;
	padding: 0;
}

.giv-main-menu .et_mobile_menu li a,
.giv-main-menu .et_mobile_menu .menu-item-has-children > a {
	display: flex;
	align-items: center;
	min-height: 88px;
	padding: 0 60px 0 24px;
	border-bottom: 0;
	background: transparent;
	color: #fff !important;
	font-size: 22px;
	font-weight: 400;
	line-height: 1.3;
	opacity: 1;
}

.giv-main-menu .et_mobile_menu li.current-menu-item > a {
	background: rgba(0, 0, 0, 0.15);
}

.giv-main-menu .et_mobile_menu li a:hover {
	background: rgba(0, 0, 0, 0.15);
	opacity: 1;
}

.giv-main-menu .et_mobile_menu .sub-menu {
	display: none !important;
	padding: 0;
	background: rgba(0, 0, 0, 0.08);
}

.giv-main-menu .et_mobile_menu li.giv-open > .sub-menu {
	display: block !important;
}

.giv-main-menu .et_mobile_menu li li a {
	min-height: 66px;
	font-size: 18px;
	padding-left: 40px;
}

/* Flèche d'ouverture des sous-menus */
.giv-main-menu .et_mobile_menu .giv-subarrow {
	position: absolute;
	top: 0;
	right: 0;
	width: 60px;
	height: 88px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 22px;
	cursor: pointer;
	transition: transform 0.2s ease-in-out;
}

.giv-main-menu .et_mobile_menu li.giv-open > .giv-subarrow {
	transform: rotate(180deg);
}

/* L'élément « RDV par téléphone » n'apparaît pas dans le menu mobile */
.giv-main-menu .et_mobile_menu .menu-item-860 {
	display: none;
}

@media (max-width: 1080px) {
	.giv-main-menu .et_pb_menu__logo img {
		height: 96px !important;
		max-height: 96px !important;
	}
}

@media (min-width: 1081px) {
	.giv-main-menu .et_mobile_nav_menu {
		display: none !important;
	}

	.giv-main-menu .et_pb_menu__menu {
		display: flex !important;
	}
}

@media (max-width: 1080px) {
	.giv-main-menu .et_pb_menu__menu {
		display: none !important;
	}

	.giv-main-menu .et_mobile_nav_menu {
		display: flex !important;
		align-items: center;
		margin: 0;
	}

	.giv-main-menu .et_pb_menu_inner_container {
		position: relative;
		justify-content: space-between;
	}
}

/*--------------------------------------------------------------
# Pied de page (Theme Builder)
--------------------------------------------------------------*/
.giv-footer {
	background: #fff;
	padding: 0 !important;
}

#footer-nav {
	margin-left: 4em !important;
}

#footer-nav ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

#footer-nav li {
	list-style: none;
	margin: 0;
	padding: 0;
}

#footer-nav li::before {
	display: none;
}

#footer-nav li a {
	display: block;
	padding: 0 18px;
	line-height: 42px;
	text-decoration: none;
	color: var(--giv-blue) !important;
	font-weight: 700;
	font-size: 15px;
}

#footer-nav li a:hover {
	background-color: transparent !important;
	color: var(--giv-pink) !important;
}

.giv-footer .et_pb_button_module_wrapper {
	display: flex;
	justify-content: flex-end;
}

.giv-footer-logo,
.giv-footer-logo .et_pb_image_wrap {
	display: block;
	max-width: none !important;
	width: 100%;
}

.giv-footer-logo img {
	display: block;
	width: 100%;
}

@media (max-width: 980px) {
	#footer-nav {
		margin-left: 0 !important;
	}

	#footer-nav ul {
		justify-content: center;
	}

	.giv-footer .et_pb_button_module_wrapper {
		justify-content: center;
		margin: 25px 0 !important;
	}
}

@media (max-width: 1440px) {
	.giv-main-menu .et-menu > li > a {
		font-size: 0.75em;
		height: 54px;
	}

	.giv-main-menu .et-menu > .menu-item-object-page > a::before {
		height: 28px;
		width: 28px;
	}

	.giv-main-menu .et-menu .menu-item-509 > a {
		margin: 0 6px;
	}

	.giv-main-menu .et-menu .menu-item-509 > a::before {
		height: 32px;
		width: 32px;
	}
}

@media (max-width: 1260px) {
	.giv-main-menu .et-menu .menu-item-860 {
		display: none;
	}
}

/*--------------------------------------------------------------
# Titres (vc_custom_heading)
--------------------------------------------------------------*/
.giv-heading h1,
.giv-heading h2,
.giv-heading h3,
.giv-heading h4,
.giv-heading h5,
.giv-heading h6,
.giv-heading .et_pb_module_header {
	text-transform: uppercase;
	padding-bottom: 0;
}

/*--------------------------------------------------------------
# Accueil : diaporama + raccourcis
--------------------------------------------------------------*/
.giv-home-slider,
.giv-home-slider .et_pb_slide {
	height: 560px;
	min-height: 560px;
}

.giv-home-slider .et_pb_slide {
	padding: 0;
	background-color: #c2e0e8;
}

.giv-home-slider .et_pb_slide_description {
	padding: 0 30px;
	text-shadow: none;
}

.giv-home-slider .et_pb_slide_title,
.giv-home-slider .et_pb_slide_title a {
	color: #fff !important;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 64px !important;
	line-height: 1.5 !important;
}

.giv-home-slider .et_pb_slide_content,
.giv-home-slider .post-meta,
.giv-home-slider .et_pb_more_button {
	display: none !important;
}

#raccourcis:has(> .acces) {
	display: flex;
	flex-direction: column;
}

#raccourcis > .acces {
	flex: 1 1 33.33%;
}

.acces {
	margin-bottom: 0 !important;
	width: 100%;
	align-items: center;
}

.acces div p {
	margin: 0;
}

/* Icône à gauche du libellé : le conteneur interne ne crée pas de boîte (comme .wpb_wrapper avant) */
#raccourcis .acces .et_pb_text_inner {
	display: contents;
}

.acces div p a {
	color: #fff;
	text-decoration: none;
}

#bold {
	font-weight: 900;
}

#rdv,
#result,
#pro,
#horaires {
	display: flex;
	align-items: center;
	color: #fff;
	font-size: 2.25rem;
	font-weight: 400;
	padding: 1em;
}

#rdv {
	background-color: var(--giv-yellow);
}

#result {
	background-color: var(--giv-pink);
}

#pro,
#horaires {
	background-color: var(--giv-green);
}

#rdv div p,
#result div p,
#pro div p,
#horaires div p {
	display: contents;
}

#rdv div p::before,
#result div p::before,
#pro div p::before,
#horaires div p::before {
	box-sizing: border-box;
	padding-right: 3.5em;
	content: "";
	display: inline-block;
	flex: 0 0 auto;
	height: 100px;
	width: 100px;
	background-size: 100px 100px;
	background-repeat: no-repeat;
}

#rdv div p::before {
	background-image: url("svg/calendar.svg");
}

#result div p::before {
	background-image: url("svg/result.svg");
}

#pro div p::before {
	background-image: url("svg/pro.svg");
}

#horaires div p::before {
	background-image: url("svg/clock.svg");
}

#result p,
#rdv p,
#pro p,
#horaires p {
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
}

/* Tuiles d'accès aux examens */
#firstrow,
#secondrow {
	position: relative;
	top: -3em;
}

#colfantom {
	width: 10% !important;
}

.choice {
	position: relative;
	padding: 20px !important;
	cursor: pointer;
}

.choice .et_pb_image .et_pb_image_wrap {
	display: block;
	background: #000;
}

.choice .et_pb_image img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0.9;
}

.choice .overlay {
	position: absolute !important;
	top: 20px;
	bottom: 0;
	left: 20px;
	right: 0;
	height: calc(100% - 40px);
	width: calc(100% - 40px);
	opacity: 0;
	transition: 0.5s ease;
	background-color: rgba(23, 134, 168, 0.5);
}

/* Le titre se centre sur la vignette entière (et non sur le bloc de texte, qui n'a pas de hauteur) */
.choice .overlaytext,
.choice .overlaytext .et_pb_text_inner {
	position: static !important;
}

#main-content .choice .overlaytext p {
	color: #fff;
	font-size: 20px;
	line-height: 36px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	white-space: nowrap;
	margin: 0 !important;
	z-index: 1;
}

/* Flèche affichée au survol : même position que l'ancien vc_icon (bas 20 px + marge 35 px) */
#main-content .choice .overlay2 {
	position: absolute !important;
	bottom: 55px;
	left: 20px;
	right: 0;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	opacity: 0;
	transition: 0.5s ease;
	z-index: 1;
}

.choice .overlay2 .et_pb_icon_wrap,
.choice .overlay2 .et-pb-icon {
	font-size: 30px !important;
	line-height: 30px;
}

.choice:hover .overlay,
.choice:hover .overlay2 {
	opacity: 1;
}

#textaccueil {
	font-size: 2rem;
	margin-bottom: 2em;
}

/*--------------------------------------------------------------
# Pré-pied de page et pied de page
--------------------------------------------------------------*/
#prefooter {
	padding-top: 3em !important;
	padding-bottom: 3em !important;
}

#prefooter h1 {
	font-size: 2.5em !important;
}

#prefooter h3 {
	font-size: 1.5em !important;
}

#prefooter p {
	margin: 0;
}

/*--------------------------------------------------------------
# Boutons (vc_btn) : variantes WPBakery reproduites à l'identique
--------------------------------------------------------------*/
.et_pb_button_module_wrapper {
	margin-bottom: 0 !important;
}

/* Base : style « modern », couleur grise, taille md, forme arrondie */
body #page-container .et_pb_button.giv-btn {
	display: inline-block;
	position: relative;
	font-family: "Montserrat", sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.42857;
	letter-spacing: 0;
	text-transform: none;
	padding: 14px 20px;
	border: 1px solid #ebebeb;
	border-radius: 5px;
	background-color: #ebebeb;
	color: #666;
	text-decoration: none;
	transition: all 0.2s ease-in-out;
}

body #page-container .et_pb_button.giv-btn::after,
body #page-container .et_pb_button.giv-btn::before {
	display: none;
}

body #page-container .et_pb_button.giv-btn:hover {
	padding: 14px 20px;
	background-color: #dcdcdc;
	border-color: #dcdcdc;
	color: #5e5e5e;
}

body #page-container .et_pb_button.giv-btn-style-modern {
	background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
}

/* Tailles */
body #page-container .et_pb_button.giv-btn-lg,
body #page-container .et_pb_button.giv-btn-lg:hover {
	font-size: 16px;
	padding: 18px 25px;
}

/* Formes */
body #page-container .et_pb_button.giv-btn-shape-round {
	border-radius: 2em;
}

body #page-container .et_pb_button.giv-btn-shape-square {
	border-radius: 0;
}

/* Couleurs */
body #page-container .et_pb_button.giv-btn-white {
	background-color: #fff;
	border-color: #fff;
	color: #5e5e5e;
}

body #page-container .et_pb_button.giv-btn-primary {
	background-color: #08c;
	border-color: #08c;
	color: #fff;
}

body #page-container .et_pb_button.giv-btn-bg-ffffff {
	background-color: #fff;
	border-color: transparent;
	background-image: none;
}

body #page-container .et_pb_button.giv-btn-tx-1786a8 {
	color: var(--giv-blue);
}

/* Icône à gauche (flèche de retour des fiches praticiens) */
body #page-container .et_pb_button.giv-btn-icon,
body #page-container .et_pb_button.giv-btn-icon:hover {
	padding-left: 60px;
}

body #page-container .et_pb_button.giv-btn-icon::before {
	display: block;
	position: absolute;
	left: 25px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	opacity: 1;
	font-family: "ETmodules";
	font-size: 20px;
	line-height: 1;
	color: inherit;
}

body #page-container .et_pb_button.giv-btn-icon-arrow-left::before {
	content: "\23";
}

/* Boutons pilules de la charte (pré-pied de page, actualités, retour) */
body #page-container .et_pb_button#boutonrdv,
body #page-container .et_pb_button#boutonactus,
body #page-container .et_pb_button#retour {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: solid 3px #fff;
	border-radius: 100px;
	background-color: transparent;
	background-image: none;
	color: #fff;
	font-weight: 900;
	font-size: 20px;
	line-height: 1.42857;
	padding: 14px 20px;
}

body #page-container .et_pb_button#boutonactus,
body #page-container .et_pb_button#retour {
	border-color: var(--giv-blue);
	background-color: var(--giv-blue);
}

body #page-container .et_pb_button#boutonrdv::before,
body #page-container .et_pb_button#boutonactus::before {
	content: "";
	display: inline-block;
	position: static;
	opacity: 1;
	margin: 0 1em 0 0;
	width: 36px;
	height: 36px;
	background: url("svg/calendarwhite.svg") no-repeat center / contain;
}

body #page-container .et_pb_button#boutonactus::before {
	background-image: url("svg/shout.svg");
}

/* CSS propre à certaines pages (repris de WPBakery) */
.page-id-16 .arrondi {
	transition: all 0.3s ease-in-out;
	max-height: 586px;
	border-radius: 52.5px;
}

.page-id-16 .arrondi:hover .et_pb_button.giv-btn {
	padding: 20px 27px;
}

.page-id-18 .remarque p {
	border: 2px solid var(--giv-pink);
	padding: 8px 15px;
	display: inline-block;
}

p.justice {
	text-align: justify !important;
}

.page-id-226 .aide img {
	width: 300px;
}

.page-id-278 .infoimp ul {
	margin: 0;
	padding-left: 15px;
}

/*--------------------------------------------------------------
# Contenus
--------------------------------------------------------------*/
#equipe img {
	width: 100%;
	padding: 20px;
}

.text {
	color: var(--giv-blue);
}

.giv-image .et_pb_image_wrap {
	display: block;
}

/* Images des lignes internes : pleine largeur de la colonne (comme .vc_inner img) */
.giv-fill,
.giv-fill .et_pb_image_wrap,
.giv-fill img {
	width: 100% !important;
	max-width: none !important;
}

/* Vignette WPBakery (150 x 150 recadrée) : carré centré */
.giv-crop-square img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.giv-rounded img {
	border-radius: 4px;
}

.giv-crop-300x300 img {
	width: 300px;
	height: 300px;
	object-fit: cover;
}

/* Carrousels d'images (vc_images_carousel) */
.giv-carousel {
	margin-bottom: 0 !important;
	width: 100% !important;
	height: 100%;
}

/* Images à leur proportion d'origine, comme dans le carrousel WPBakery */
.giv-carousel .et_pb_gallery_image img {
	width: 100%;
	height: auto;
}

.giv-carousel .et-pb-arrow-prev,
.giv-carousel .et-pb-arrow-next {
	opacity: 1;
	color: #fff;
	font-size: 50px;
}

.giv-carousel.giv-no-arrows .et-pb-slider-arrows {
	display: none;
}

/* Accordéons (vc_tta_accordion) */
#main-content .giv-toggle {
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	margin-bottom: 35px !important;
}

.giv-toggle .et_pb_toggle_title,
#main-content .giv-toggle h5.et_pb_toggle_title {
	position: relative;
	margin: 0;
	padding: 14px 20px 14px 46px;
	background: #f8f8f8 linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
	border: 1px solid #f0f0f0;
	color: #666;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;
	text-transform: none;
}

.giv-toggle .et_pb_toggle_title::before {
	left: 20px;
	right: auto;
	color: #666;
	font-size: 16px;
}

.giv-toggle .et_pb_toggle_content {
	padding: 14px 20px;
	border: 1px solid #f0f0f0;
	border-top: 0;
	background: #f8f8f8;
}

/* Séparateurs (vc_separator : trait de 1 px suivi d'une marge de 35 px) */
#main-content .giv-separator {
	height: 1px !important;
	min-height: 1px;
	margin: 0 auto 35px !important;
	padding: 0;
}

#main-content .giv-separator::before {
	top: 0;
	border-top-width: 1px;
}

/* Carte (vc_gmaps : marge de 35 px, cadre intérieur de 5 px) */
#main-content .giv-map {
	margin-bottom: 35px !important;
}

.giv-map .et_pb_code_inner {
	padding: 5px;
}

.giv-map iframe {
	width: 100%;
}

/*--------------------------------------------------------------
# Praticiens
--------------------------------------------------------------*/
.praticien ul {
	margin-left: 0.5em;
}

.praticien .giv-heading h1,
.praticien .giv-heading h2,
.praticien .giv-heading h3,
.praticien .giv-heading h4,
.praticien .giv-heading h5 {
	text-transform: none;
}

/*--------------------------------------------------------------
# Espace pro (Login With Ajax)
--------------------------------------------------------------*/
/* Tableau du formulaire : sans les bordures ni marges des tableaux Divi */
.lwa table,
.lwa table tr,
.lwa table td {
	border: 0 !important;
	padding: 0 !important;
	background: transparent;
}

.lwa table {
	margin: 0;
	width: auto;
}

.lwa-username .lwa-username-label,
.lwa-password .lwa-password-label {
	text-align: right;
	font-weight: 900;
	width: 200px;
	color: var(--giv-blue);
	padding-right: 10px !important;
}

a.lwa-links-remember {
	display: none;
}

.lwa-submit-links {
	float: right;
	color: var(--giv-blue);
}

.lwa-submit-links label {
	margin-right: 15px;
}

.new_compte {
	font-weight: 900;
	color: var(--giv-blue) !important;
	text-decoration: none;
}

.new_compte::after {
	display: none !important;
}

.lwa-password input,
.lwa-username input,
.lwa-email input,
.lwa-remember-email input {
	width: 100% !important;
}

.lwa-submit-button {
	float: right;
	margin-top: 1em;
}

/* Champ piège anti-spam (extension Honeypot) : invisible pour les visiteurs */
.altEmail_container {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.profil {
	margin-top: 40px;
}

.profil h4 {
	margin-bottom: 15px;
}

/*--------------------------------------------------------------
# Actualités et articles
--------------------------------------------------------------*/
.single-post h1 {
	padding: 0 30px;
}

/* Articles : contenu et navigation en pleine largeur, comme l'ancien thème */
.single-post #main-content .container {
	width: 100%;
	max-width: 100%;
	padding-top: 0;
}

.single-post #left-area {
	width: 100%;
	padding: 0 !important;
}

.single-post #main-content .container,
.single-post article.et_pb_post {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

.single-post .et_post_meta_wrapper {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.single-post .post-navigation {
	margin: 0 0 18px;
	font-size: 14px;
}

.single-post #main-content .container::before {
	display: none;
}

/* Navigation entre articles */
.single-post .post-navigation .nav-links {
	display: flex;
}

.single-post .post-navigation .nav-previous,
.single-post .post-navigation .nav-next {
	flex: 1 0 50%;
	margin-top: 4em;
}

.single-post .post-navigation .nav-next {
	text-align: end;
}

.single-post .post-navigation .nav-title {
	display: none;
}

.single-post .post-navigation a {
	display: inline-block;
	border: solid 1.5px var(--giv-blue);
	border-radius: 5em;
	background-color: var(--giv-blue);
	color: #fff;
	text-decoration: none;
	padding: 0.5em 0.75em;
	line-height: 1.5;
}

.single-post .post-navigation .nav-previous a {
	margin-left: 2em;
}

.single-post .post-navigation .nav-next a {
	margin-right: 2em;
}

/* Grille des actualités (reprise de la grille WPBakery : 3 colonnes, carte grise) */
.giv-posts .et_pb_blog_posts {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 19px !important;
	align-items: start;
}

.giv-posts .et_pb_blog_posts > .et_pb_post {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
}

.giv-posts .et_pb_post {
	margin: 0 !important;
	padding: 0;
	border: 0;
	background: #f4f4f4;
	overflow: hidden;
}

.giv-posts .et_pb_image_container {
	margin: 0;
}

.giv-posts .et_pb_image_container a,
.giv-posts .entry-featured-image-url {
	display: block;
	margin: 0;
}

.giv-posts .et_pb_image_container img {
	display: block;
	width: 100%;
	aspect-ratio: 297 / 222;
	object-fit: cover;
	min-height: 0;
}

.giv-posts .entry-title {
	margin: 0 !important;
	padding: 10px 10px 0;
	font-size: 24px !important;
	line-height: 1.5;
	font-weight: 700;
	text-transform: uppercase;
}

.giv-posts .entry-title a {
	color: var(--giv-text);
}

.giv-posts .post-content {
	padding: 0 10px 10px;
	text-transform: uppercase;
}

.giv-posts .post-content-inner p {
	margin: 1em 0;
	font-size: 16px;
	line-height: 1.5;
}

.giv-posts .more-link {
	display: inline-block;
	margin: 0 0 10px;
	padding: 14px 20px;
	border-radius: 5px;
	background: var(--giv-blue);
	color: #fff !important;
	font-size: 14px;
	line-height: 1.42857;
	text-transform: none;
}

@media (max-width: 767px) {
	.giv-posts .et_pb_blog_posts {
		grid-template-columns: 1fr !important;
	}
}

/* Plan du site */
.giv-custom-menu ul {
	margin: 0 0 1.5em 3em;
	padding: 0 0 0 40px;
	list-style: disc;
	line-height: 1.5;
}

.giv-custom-menu ul ul {
	margin: 0 0 0 1.5em;
}

.giv-custom-menu ul li {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 24px;
}

.giv-custom-menu ul li::before {
	display: none;
}

.page-id-127 .menu-site-map-menu-container ul li a:hover {
	color: rgba(227, 17, 130, 0.7);
}

/* Page 404 */
.error404 #main-content .container {
	padding: 2.5em 3.5em 3.5em;
	background-color: #efefef;
}

/*--------------------------------------------------------------
# Visibilité : palier « md » WPBakery (992 à 1199 px)
--------------------------------------------------------------*/
@media (min-width: 981px) and (max-width: 1199px) {
	.giv-hide-md {
		display: none !important;
	}
}

/*--------------------------------------------------------------
# Responsive
--------------------------------------------------------------*/
@media screen and (max-width: 1558px) {
	#rdv {
		font-size: 2rem;
	}
}

@media screen and (max-width: 1440px) {
	.acces div p {
		font-size: 0.75em;
	}

	#rdv,
	#result,
	#pro,
	#horaires {
		font-size: 2.25rem;
	}

	#rdv div p::before,
	#result div p::before,
	#pro div p::before,
	#horaires div p::before {
		height: 66px;
		width: 66px;
		background-size: 66px 66px;
	}
}

@media screen and (max-width: 1200px) {
	.choice {
		width: 33% !important;
	}

	#colfantom {
		width: 17% !important;
	}
}

@media screen and (max-width: 1100px) {
	#pro,
	#result {
		word-break: break-word;
		hyphens: auto;
	}
}

@media screen and (max-width: 1080px) {
	.acces div p {
		font-size: 0.6em;
	}

	#diapo,
	#raccourcis {
		width: 100% !important;
	}
}

@media screen and (max-width: 980px) {
	.giv-vmiddle {
		display: block;
	}
}

@media screen and (max-width: 768px) {
	.choice {
		width: 100% !important;
	}

	#textaccueil {
		padding: 20px;
	}

	body #page-container #boutonrdv {
		margin-top: 30px;
	}

	#maintitle h1,
	#maintitle .et_pb_module_header {
		font-size: 2em !important;
	}

	h1 {
		font-size: 2em !important;
	}

	h2 {
		font-size: 1.75em !important;
	}

	h3 {
		font-size: 1.5em !important;
	}

	h4 {
		font-size: 1.25em;
	}

	.giv-home-slider .et_pb_slide_title,
	.giv-home-slider .et_pb_slide_title a {
		font-size: 48px !important;
	}

	#prefooter .et_pb_module {
		margin-top: 35px !important;
	}

	.page-id-496 h3 {
		padding: 0 25px;
	}

	.new_compte {
		display: block;
		padding-left: 0;
	}
}

@media screen and (max-width: 767px) {
	.lwa-form label {
		text-align: left !important;
	}

	.lwa-username td,
	.lwa-password td,
	.lwa-username input,
	.lwa-password input {
		display: block;
		width: 100%;
		text-align: left !important;
	}

	.lwa-submit > td:first-child {
		display: none;
	}

	.lwa-submit,
	.lwa-submit .lwa-submit-links {
		width: 100%;
	}
}

@media screen and (max-width: 425px) {
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="password"],
	input[type="search"],
	input[type="number"],
	input[type="tel"],
	input[type="range"],
	input[type="date"],
	textarea {
		width: 100% !important;
	}
}
