/*
Theme Name: SoHappy Theme Astra Gutenberg
Theme URI: https://www.sohappy-studio.com
Author: Agence So'Happy
Author URI: hhttps://www.sohappy-studio.com
Description: Astra child theme
Template: astra
License: GNU General Public License v3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Version: 1.0.0
*/
/******************************/
/********** Variables CSS *****/
/******************************/
:root {
	--main-color: var(--ast-global-color-0, #40CAE5);
	--sub-color: var(--ast-global-color-1, #2A205E);
	--red: var(--ast-global-color-2);
	--yellow: var(--ast-global-color-3);
	--blue: var(--ast-global-color-4);
	--brown: var(--ast-global-color-7);
    --white : #fff;
	--grey: #C7C6C6;
	--black : #000;
    
	--arial : "Arial Narrow", Arial, sans-serif;
	--raleway:'Raleway', var(--arial);
	--manrope:'Manrope', var(--raleway);
	--instrument:'Instrument Serif', var(--raleway);
}

/* --------------- GENERAL ---------------- */
html {
	font-size: 62.5%;
	margin: 0!important;
	padding: 0;
	width: 100%;
	height: unset;
}
body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
	font-size: 1.5rem;
	font-family: var(--manrope);
	color: var(--main-color);;

}
#wpadminbar {
	opacity: .7;
}

h1, .entry-content h1, body *:is(.is-h1) {
	font-family: var(--manrope);
	font-size: 6rem;
	line-height: 1;
	font-weight: 700;
	color: var(--white);
	margin-bottom: .6lh;
	text-wrap: balance;
}

h1 strong, .entry-content h1 strong, body *:is(.is-h1) strong {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 8rem;
	color: var(--yellow);
}
body h1 strong, body .entry-content h1 strong, body .entry-content *:is(.is-h1) strong {
	opacity: 0; /*ANIMATION GSAP*/
}

h2, .entry-content h2, body .entry-content *:is(.is-h2) {
	font-family: var(--manrope);
	font-size: 5rem;
	line-height: 1;
	font-weight: 700;
	margin-bottom: .5lh;
	margin-top: 0;
}
h2 strong, .entry-content h2 strong, body *:is(.is-h2) strong {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 6rem;
	color: var(--yellow);
}
h3, .entry-content h3, body .entry-content *:is(.is-h3) {
	font-family: var(--manrope);
	font-size: 4rem;
	line-height: 1.1;
	font-weight: 700;
	margin-bottom: .5lh;
	margin-top: 0;
}
h3 strong, .entry-content h3 strong, body *:is(.is-h3) strong {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 5rem;
	color: var(--sub-color);
}
h4, .entry-content h4, body .entry-content *:is(.is-h4) {
	font-family: var(--manrope);
	font-size: 3rem;
	line-height: 1.1;
	font-weight: 700;
	margin-bottom: .5lh;
	margin-top: 0;
}
h4 strong, .entry-content h4 strong, body *:is(.is-h4) strong {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 4rem;
	color: var(--sub-color);
}
h5, .entry-content h5, body .entry-content *:is(.is-h5) {
	font-family: var(--manrope);
	font-size: 2rem;
	line-height: 1.1;
	font-weight: 700;
	margin-bottom: .5lh;
	margin-top: 0;
}
h5 strong, .entry-content h5 strong, body *:is(.is-h5) strong {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 3rem;
	color: var(--main-color);
}
body .pretitle {
	--line-size: 35px;
	font-size: 2.5rem;
	position: relative;
	font-weight: 700;
	text-transform: uppercase;
	padding-left: calc(var(--line-size) + 15px);
	color: var(--blue);
}
body .pretitle::before {
	position: absolute;
	display: block;
	content: '';
	width: var(--line-size);
	height: 2px;
	background-color: currentColor;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
body .big-text {
	font-family: var(--instrument);
	font-style: italic;
	font-size: 10rem;
	line-height: 1;
}
body .is-sans {
	font-family: var(--manrope);
}
body .is-serif {
	font-family: var(--instrument);
	font-style: italic;
	font-size: calc(100% + 1rem);
}

/* définit un style commun pour les paragraphes */
p, ul li {
	font-family: var(--manrope);
	font-weight: 400;
	line-height: 1.3;
	font-size: 1.8rem;
}
p, .entry-content p {
	margin-top: 0;
	margin-bottom: .7lh;
}
p a, .entry-content li a {
	padding-bottom: 2px;
	border-bottom: var(--sub-color) dotted 1px;
	text-decoration: none!important;
	color: inherit;
	font-weight: inherit;
	font-size: inherit;
	line-height: inherit;
	font-family: inherit;
}
.entry-content p a, .entry-content li a {
	color: var(--sub-color);
	
}
.entry-content p a:hover, .entry-content li a:hover, .entry-content h4 a:hover{
	color: var(--yellow);
	border-bottom-color: var(--yellow);
}

p a:hover {
	color: var(--yellow);
}

strong {
	font-weight: 700;
}
em {
    font-style: italic;
}
.color-black {
	color: var(--black);
}
.color-white {
	color: var(--white);
}

/*********BOUTON**********/
.wp-block-buttons {
	flex-shrink: 0;
}
.wp-block-button .wp-element-button, #masthead .ast-custom-button-link .ast-custom-button {
	--ico-size : 40px;
	--ico-gap: 10px;
	position: relative;
	display: block;
	padding: 10px calc(var(--ico-size) + var(--ico-gap)) 10px 0;
	background-color: transparent;
	border: none;
	border-radius: 0;
	box-sizing: border-box;
	line-height: 1.2;
	font-size: 1.6rem;
	color: var(--main-color);
	font-family: var(--manrope);
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none!important;
	
	transition: all .3s ease-out;
}
.wp-block-button .wp-element-button:hover, #masthead .ast-custom-button-link .ast-custom-button:hover {
	color: var(--yellow);
	background-color: transparent;
	border: none;
	border-radius: 0;
}
.wp-block-button .wp-element-button::before {
	position: absolute;
	display: block;
	content: "";
	bottom: 5px;
	left: 0;
	width: calc(100% - var(--ico-size) - var(--ico-gap));
	height: 2px;
	background-color: currentColor;
	transition: inherit;
}
.wp-block-button .wp-element-button::after, #masthead .ast-custom-button-link .ast-custom-button::after {
	position: absolute;
	display: block;
	content: "";
	top: 50%;
	transform: translate(0, -50%);
	right: 0;
	width: var(--ico-size);
	height: var(--ico-size);
	background-color: currentColor;
	mask: url(./assets/svg/picto_arrow.svg) center left / contain no-repeat;
	-webkit-mask: url(./assets/svg/picto_arrow.svg) center left / contain no-repeat;
	transition: inherit;
}
.wp-block-button.download-btn .wp-element-button::after {
	mask-image: url(./assets/svg/picto_download.svg);
	-webkit-mask-image: url(./assets/svg/picto_download.svg);
}
.wp-block-button .wp-element-button:hover::after, #masthead .ast-custom-button-link .ast-custom-button:hover::after {
	right: -5px;
}
.wp-block-button.big-btn .wp-element-button {
	--ico-size: 40px;
	--ico-gap: 15px;
	display: flex;
	align-items: center;
	height: 100%;
	color: var(--white);
	background-color: var(--red);
	padding: 20px calc(var(--ico-size) + var(--ico-gap) + 15px) 20px 25px;
	border-radius: 50px!important;
}
.wp-block-button.big-btn .wp-element-button:hover {
	background-color: var(--yellow);
	color: var(--main-color);
}
.wp-block-button.big-btn .wp-element-button::before {
	display: none;
}
.wp-block-button.big-btn .wp-element-button::after {
	right: 10px;
	height: 100%;
	color: var(--main-color);
}
.wp-block-button.big-btn .wp-element-button:hover::after {
	right: 10px;
}

.cat-btns .wp-block-button .wp-element-button {
	border-radius: 50px;
	background-color: var(--brown);
	padding: 10px 20px;
}
.cat-btns .wp-block-button .wp-element-button:hover {
	background-color: var(--yellow);
	color: var(--main-color);
}
.cat-btns .wp-block-button .wp-element-button::after, .cat-btns .wp-block-button .wp-element-button::before {
	display: none;
}
/****************************/
/**********SPECIFIC**********/
/****************************/
.FlexContainer {
	display: flex!important;
	flex-flow: row wrap;
}
.ContainerFlex {
	display: flex;
	flex-flow: column;
}
.center-row {
	display: flex!important;
	flex-flow: row wrap;
	align-items: center;
}
.align-start-row {
	align-items: start;
}
.justify-start-row {
	justify-content: start;
}
.align-center-row {
	align-items: center;
}
.justify-center-row {
	justify-content: center;
}
.align-end-row {
	align-items: flex-end!important;
}
.justify-end-row {
	justify-content: end;
}
.justify-between-row {
	justify-content: space-between;
}
.justify-around-row {
	justify-content: space-around;
}
/* enlève la marge interne*/
.no-padding {
	padding: 0!important;
}
/* enlève la marge externe*/
.no-margin {
	margin: 0!important;
}
/* bouton non cliquable */
.no-click {
	pointer-events: none;
	cursor: none;
}
/* sections en fullwidth */
.fullwidth {
	width: 100%!important;
	max-width: 100%!important;
}
.fullheight {
	height: 100%!important;
	max-height: 100%!important;
}
/* Centre le background et remplit la div */
.full-background-fit {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
/* cache le after et le before */
.no-after:after {
	visibility: hidden!important;
}
.no-before:before {
	visibility: hidden!important;
}
.no-desktop {
	display: none!important;
}
@media (max-width: 980px) {
	.no-desktop {
		display: unset!important;
	}
	.no-tablet {
		display: none!important;
	}
}
@media (max-width: 768px) {
	.no-tablet {
		display: unset!important;
	}
	.no-mobile {
		display: none!important;
	}
}
.min-width {
	width: 60%!important;
	margin: auto;
}
.no-text-wrap {
	text-wrap: nowrap;
}

.text_image {
	height: 2.5rem;
	padding: 0 10px;
}
.img-zoom, .img-zoom * {
	overflow: hidden;
}
.img-zoom img {
	transition: all .5s ease-out;
}
.img-zoom:hover img {
	transform: scale(1.1);
}
.is-instrument {
	font-family: var(--instrument)!important;
}
.is-manrope {
	font-family: var(--manrope)!important;
}
/****************************/
/********** HEADER **********/
/****************************/
#masthead {
	position: fixed!important;
	width: 100%;
	top: 0;
	left: 0;
}
#masthead .site-primary-header-wrap {
	position: relative;
	padding-left: 10px;
	padding-right: 10px;
}
#masthead .site-primary-header-wrap::before {
	position: absolute;
	display: block;
	content: "";
	width: 100%;
	height: 105%;
	transform: translateY(-100%);
	left: 0;
	top: 0;
	border-radius: 0 0 40px 40px;
	background-color: var(--white);
	transition: all .2s ease-out;
	-webkit-box-shadow: 0px 10px 13px -7px rgba(0,0,0,0), 5px 5px 15px 5px rgba(0,0,0,0); 
	box-shadow: 0px 10px 13px -7px rgba(0,0,0,0), 5px 5px 15px 5px rgba(0,0,0,0);
}
body:is(.scroll0, .mob_scroll0) #masthead .site-primary-header-wrap::before {
	transform: none;
	-webkit-box-shadow: 0px 10px 13px -7px rgba(0,0,0,.2), 5px 5px 15px 5px rgba(0,0,0,0); 
	box-shadow: 0px 10px 13px -7px rgba(0,0,0,.2), 5px 5px 15px 5px rgba(0,0,0,0);
}
#masthead .site-primary-header-wrap > * {
	position: relative;
	z-index: 1;
}
#masthead .site-header-primary-section-left {
	background-color: var(--main-color);
	padding: 3px 20px;
	border-radius: 50px;
	max-width: max-content;
}
#masthead .site-header-primary-section-right {
	/* gap: 20px; */
}
#masthead .site-header-primary-section-right > div, #masthead .site-header-primary-section-right > div > div {
	display: block;
	height: 100%;
}
#masthead .main-header-menu li a.menu-link {
	--spacing: 10px;
	position: relative;
	font-size: 1.6rem;
	font-weight: 700;
	text-transform: uppercase;
	font-family: var(--manrope);
	color: var(--white);
	padding: 5px var(--spacing);
	line-height: 1;

	transition: all .2s ease-in-out;
}
#masthead .main-header-menu li a.menu-link::after  {
	position: absolute;
	display: block;
	content: '';

	background-color: var(--yellow);
	width: 0;
	height: 2px;

	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
	transition: inherit;
}
#masthead .main-header-menu li a.menu-link:hover::after, #masthead .main-header-menu li.current-menu-item a.menu-link::after  {
	width: calc(100% - var(--spacing) * 2);
}

/* header btn */
#masthead .ast-custom-button-link {
	display: block;
	height: 100%;
}
#masthead .ast-custom-button-link .ast-custom-button {
	--ico-size: 40px;
	--ico-gap: 15px;
	display: flex;
	align-items: center;
	height: 100%;
	color: var(--white);
	background-color: var(--red);
	padding: 15px calc(var(--ico-size) + var(--ico-gap) + 15px) 15px 25px;
	border-radius: 50px!important;
}
#masthead .ast-custom-button-link .ast-custom-button:hover {
	background-color: var(--yellow);
	color: var(--main-color);
}
#masthead .ast-custom-button-link .ast-custom-button::after {
	right: 10px;
	height: calc(100% - 30px);
	color: var(--main-color);
}
#masthead .ast-custom-button-link .ast-custom-button:hover::after {
	right: 10px;
}
/* search btn */
#masthead .ast-search-icon {
	height: 100%;
	display: block;
}
#masthead .ast-search-icon > a {
	--icon-color: var(--main-color);
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	background-color: var(--icon-color);
	border-radius: 50px;
	aspect-ratio: 1 / 1;
	transition: all .2s ease-out;
}
#masthead .ast-search-icon > a svg {
	fill: var(--white);
	height: 25px;
	width: unset;
	aspect-ratio: 1/1;
	stroke-width: 7px;
	stroke: var(--icon-color);
	transition: inherit;
}
#masthead .ast-search-icon > a:hover {
	--icon-color: var(--yellow)
}

#masthead .search-form {
	right: 0;
	height: 100%;
	border-radius: 50px;
}
#masthead .search-form label, #masthead .search-form input  {
	border-radius: inherit;
	height: 100%;
}
#masthead .ast-dropdown-active .search-form label, #masthead .ast-dropdown-active .search-form input  {
	width: 400px;
	max-width: 70vw;
}


#main-header {
	--header-min-height: 100vh;
	position: relative;
	padding: calc(var(--masthead-height) + 20px) 0 40px 0;
	overflow: hidden;
	min-height: var(--header-min-height);
	background-color: var(--main-color);
} 
#main-header.header-page {
	--header-min-height: 75vh;
	--thumb-width : 60%;
} 
#main-header.header-prestation {
	--header-min-height: 50vh;
	--thumb-width : 40%;
}
#main-header.header-single {
	--header-min-height: 50vh;
	--thumb-width : 60%;
} 
#main-header .header-thumb {
	--offset: 150px;
	position: absolute;
	object-fit: cover;
	top: 50%;
	left: 50%;
	width: calc(100% + var(--offset));
	height: calc(100% + var(--offset));
	max-width: unset;
	max-height: unset ;
	transform: translate(-50%, -50%);
}
#main-header.header-page .header-thumb {
	--offset: 50px;
	left: calc(100% - var(--thumb-width));
	width: calc(var(--thumb-width) + var(--offset));
	height: calc(100% + var(--offset));
	transform: translate(0, -50%);
}
#main-header .animation-content {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	padding-top: var(--masthead-height);
}

/* ANIMATION */
#main-header .animation-content img {
	opacity: 0; /*GSAP*/
	position: relative; /*GSAP*/

	width: 100%;
	height: 100%;
	object-fit: contain;
}

#main-header .animation-content .animation-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: min(80%, 800px);
	height: min(50%, 450px);
}
#main-header .animation-content .animation-chara {
	position: absolute;
	bottom: 0;
	right: 0;
	transform: translate(0,50%);
	width: min(90%, 1600px);
	height: min(60%, 800px);
}
#main-header .animation-content .animation-chara img {
	object-position: center bottom;
}

#main-header .header-wrapper {
	position: relative;
	gap: 50px;
	z-index: 5;
	min-height: calc(var(--header-min-height) - ( var(--masthead-height) + 60px ) );
}
#main-header.header-page .header-wrapper {
	margin: 0;
	width: calc(100% - var(--thumb-width));
}
#main-header .header-data {
	opacity: 0; /*ANIMATION GSAP*/
	max-width: 1100px;
	margin: 0 auto;
}
#main-header.header-page .header-data {
	max-width: 550px;
}
#main-header.header-prestation .header-data {
	max-width: 875px;
}
#main-header .header-pretitle {
	width: max-content;
	max-width: 100%;
}
#main-header .header-subtitle, #main-header .header-subtitle * {
	display: block;
	font-size: 2rem;
	color: var(--white);
	max-width: 800px;
	text-wrap: balance;
	margin: 0 auto;	
}
#main-header.header-page .header-subtitle, #main-header.header-page .header-subtitle * {
	margin: 0;
	max-width: unset;
}

#main-header .header-menu-wrapper {
	width: 100%;
}
#main-header .header-menu {
	opacity: 0; /*ANIMATION GSAP*/
	padding: 30px 40px;
	max-width: min(700px, 50%);
	width: fit-content;
	border-radius: 25px;
	background-color: oklch(from var(--main-color) l c h / calc(alpha - 0.5));
}
#main-header .header-menu .menu-title strong {
	font-size: 5rem;
	margin-bottom: 20px;
	display: block;
}
#main-header .header-menu ul {
	--cols: 2;
	position: relative;
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(var(--cols), 1fr);
	gap: 20px;
}
#main-header .header-menu ul::after {
	position: absolute;
	display: block;
	content: '';
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);

	height: 100%;
	width: 1px;
	background-color: var(--yellow);
}
#main-header .header-menu ul li a {
	position: relative;
	display: block;
	--ico-size : 27px;
	background-color: var(--main-color);
	padding: 10px 20px 10px calc(var(--ico-size) + 20px);
	border-radius: 50px;
	box-sizing: border-box;
	color: var(--white);
	font-weight: 600;
	width: 100%;
}
#main-header .header-menu ul li a::before {
	position: absolute;
	display: block;
	content: '';

	width: var(--ico-size);
	aspect-ratio: 1 / 1;
	top: 50%;
	left: 10px;
	background: url(./assets/svg/picto_arrow_full.svg) center left / contain no-repeat;
	transform: translate(0, -50%);
}
#main-header .header-menu ul li a:hover {
	background-color: var(--yellow);
	color: var(--main-color);
}
.ast-container.ariane-container {
	width: 100%;
	padding: 20px;
}

/****************************/
/********** CONTENT *********/
/****************************/
.slide_up, .slide_down, .slide_right, .slide_left {
	opacity: 0; /*ANIMATION GSAP*/
}

body .slick-slider .slick-arrow {
	width: 35px;
	height: 35px;
	right: -50px;
	box-shadow: none;
}
body .slick-slider .slick-prev {
	right: unset;
	left: -50px;
}
body .slick-slider .slick-arrow::before,  body .slick-slider .slick-arrow:focus::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--sub-color);
	mask: url(./assets/svg/picto_arrow_min.svg) center center / contain no-repeat;
	-webkit-mask: url(./assets/svg/picto_arrow_min.svg) center center / contain no-repeat;
	transition: all .2s ease-out;
}
body .slick-slider .slick-arrow:hover::before {
	background-color: var(--main-color);
}
body .slick-slider .slick-prev::before {
	transform: rotate(180deg);
}

body .slider-documents, body [class*='slider-cols-'] {
	display: block;
}
body .slider-documents .slide, body [class*='slider-cols-'] .slide {
	padding: 0 10px;
	box-sizing: border-box;
}

body .forme-flottante {
	position: relative;
	z-index: 10;
}
body .forme-flottante > * {
	position: absolute;
	top: 0;
	transform:translateY(-50%) rotate(0.1deg);
}


.entry-content ul.wp-block-list {
	list-style: none;
}
.entry-content ul.wp-block-list li {
	position: relative;
	margin-bottom: 0.3lh;
}
.entry-content ul.wp-block-list li::before {
	position: absolute;
	display: block;
	content: "";
	width: .5lh;
	height: .5lh;
	background-color: var(--sub-color);
	left: 0;
	top: 0;
	transform: translate(-140%, .25lh);
}
body *:is(.has-background) ul.wp-block-list li:before {
	background-color: var(--white);
}

body .eb-counter-wrapper .eb-counter-number * {
	font-family: var(--instrument);
	font-style: italic;
	font-size: 6rem!important;
	line-height: 1;
}
body .eb-counter-wrapper .eb-counter {
	font-size: 12rem!important;
}
body .eb-counter-wrapper .eb-counter-title {
	margin-top: 10px!important;
	font-weight: 700;
	font-size: 2rem!important;
}
body .light-counter .eb-counter-wrapper .eb-counter {
	font-size: 10rem!important;
}
body .light-counter .eb-counter-wrapper .eb-counter-title {
	font-weight: 400;
	font-size: 3rem!important;
	font-family: var(--instrument);
	font-style: italic;
}
.infinite-scroll {
	width: 100%;
	overflow: hidden;
}
.infinite-scroll .scroll-container {
	display: flex;
	will-change: transform;
	width: max-content!important;
}
body.jq-init .infinite-scroll .scroll-container {
	animation: scroll-left 40s linear infinite;
}
.infinite-scroll.scroll-right .scroll-container {
	animation-direction: reverse;
}
.infinite-scroll .scroll-container > * {
	opacity: 0;
	transition: all .2s ease-out;
}
body.jq-init .infinite-scroll .scroll-container > * {
	opacity: 1;
	transition: none;
}
.infinite-scroll .scroll-container figure img {
	transform: translateZ(0); /*swaps rendering to GPU, preventing jittering*/
}

@keyframes scroll-left {
	0% {
    	transform: translate3d(0, 0, 0);
	}
	100% {
		transform: translate3d(-50%, 0, 0);
	}
}

.wp-block-sohappy-linked-group-block {
	text-decoration: unset!important;
}
.resize-target {
	transition: all .2s ease-out;
}
/* POSTS GRID */
.posts-grid {
	display: grid;
	grid-template-columns: repeat(var(--grid-col, 3), 1fr);
	gap: 25px;
}
.posts-grid:not(.grid-full) .grid-item:first-child {
	grid-area: 1 / 1 / 3 / 2;
}
.posts-grid .grid-item {
	position: relative;
}
.posts-grid .grid-item * {
	transition: all .2s ease-out;
}
/* .posts-grid .grid-item:hover > * {
	transform: translateX(10px);
} */
.posts-grid .grid-item-cats {
	--spacing : 10px;
	position: absolute;
	padding: var(--spacing);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	gap: var(--spacing);
	z-index: 2;
}
.posts-grid .grid-item-cats .grid-item-cat {
	background-color: var(--white);
	color: var(--main-color);
	padding: 5px 20px;
	font-size: 1.6rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	border-radius: 50px;
	
}
.posts-grid .grid-item-cats .grid-item-cat:hover {
	background-color: var(--yellow);
	color: var(--main-color);
}

.posts-grid .grid-item .grid-item-wrapper {
	text-decoration: none;
}
.posts-grid .grid-item .grid-item-thumb {
	border-radius: 25px;
	flex-grow: 2;
	overflow: hidden;
}
.posts-grid .grid-item .grid-item-thumb img {
	position: relative;
	--movement : 10px;
	width: calc(100% + var(--movement));
	max-width: unset;
	height: 100%;
	left: 0;
	transform: translateX(calc(var(--movement) * -1));
	object-fit: cover;
	transition-duration: .6s;
	aspect-ratio: 5/3;
}
.posts-grid .grid-item:hover .grid-item-thumb img {
	transform: translateX(0);
}
.posts-grid .grid-item .grid-item-data {
	padding: 20px 20px 0 0;
	box-sizing: border-box;
}
.posts-grid .grid-item:hover .grid-item-data {
	padding: 20px 0 0 20px;
}
.posts-grid .grid-item .grid-item-title {
	margin-bottom: .2lh;
	margin-top: 0;
}
.posts-grid .grid-item .grid-item-title strong {
	color: var(--main-color);
}
.posts-grid .grid-item .grid-item-date {
	color: var(--blue);
	font-weight: 700;
	font-size: 1.5rem;
	text-transform: uppercase;
}

.prestations-container {
	display: grid;
	grid-template-columns: 350px 1fr;
	gap: 25px;
}
.prestations-container .prestations-filters {
	background-color: var(--brown);
	padding: 20px;
	border-radius: 30px;
	position: relative;
}
.prestations-container .prestations-filters-wrapper {
	gap: 25px;
	position: sticky;
	top: calc(var(--masthead-height) + 30px);
}
.prestations-container #prestation-search {
	border-radius: 10px;
	border: none;
}
.prestations-container .custom-filter {
	padding: 5px 20px;
	border-radius: 50px;
	background: var(--main-color);
	color: var(--white);
	display: inline-flex;
	cursor: pointer;
	transition: all .2s ease-out;
}
.prestations-container .custom-filter .remove {
	position: relative;
	transform: translateX(8px);
	opacity: 0;
	transition: inherit;
}
.prestations-container .custom-filter:hover {
	background: var(--red);
}
.prestations-container .custom-filter:hover .remove {
	opacity: 1;
}
.prestations-container .filter-list {
	gap: 15px;
	max-width: 80vh;
	overflow: scroll;
}
.prestations-container .filter-list > * {
	font-weight: 700;
	font-size: 2rem;
	line-height: 1;
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	transition: all .2s ease-in-out;
}
.prestations-container .filter-list .text {
	position: relative;
	transition: inherit;
}
.prestations-container .filter-list .text:after {
	position: absolute;
	display: block;
	content: '';
	width: 0;
	height: 2px;
	left: 0;
	bottom: -5px;

	background-color: var(--yellow);
	transition: inherit;
}
.prestations-container .filter-list > *:is(.active, :hover) .text:after {
	width: 100%;
}
.prestations-container .filter-list .count {
	padding: 5px;
	border-radius: 50px;
	background-color: var(--white);
	color: oklch(from var(--brown) .6 .03 h / 1);
	min-width: calc(1lh + 10px);
	text-align: center;
	width: max-content;
	flex-shrink: 0;
	transition: inherit;
}
.prestations-container .filter-list > *:is(.active, :hover) .count {
	background-color: var(--yellow);
	color: var(--white);
}


.prestations-container .prestation {
	width: calc(100% / 3);
	text-decoration: none!important;
	padding: 10px;
}
.prestations-container .prestation-wrapper {
	border: 2px solid var(--brown);
	background-color: var(--white);
	border-radius: 30px;
	box-sizing: border-box;
	overflow: hidden;
}
.prestations-container .prestation-data {
	gap: 20px; 
	padding: 20px;
	border-bottom: 2px solid var(--brown);
	flex-wrap: nowrap;
}
.prestations-container .prestation-image {
	width: clamp(50px, 25%, 120px);
	aspect-ratio: 1/1;
	height: auto;
	flex-shrink: 0;
}
.prestations-container .prestation-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}
body .prestations-container .prestation-title strong {
	font-size: 3.5rem;
}
body .prestations-container .prestation-category {
	text-transform: uppercase;
	font-size: 1.5rem;
}
.prestations-container .prestation-link {
	padding: 20px;
	line-height: 1;
	position: relative;
	transition: all .3s ease-in-out;
}
.prestations-container .prestation-link::before {
	position: absolute;
	display: block;
	content: '';
	width: 0;
	height: 100%;
	top: 0;
	left: 0;
	background-color: var(--brown);
	transition: inherit;
}

.prestations-container .prestation-link span {
	display: inline-block;
	position: relative;
	left: 0;
	transform: none;
	text-transform: uppercase;
	font-size: 1.6rem;
	font-weight: 700;
	transition: inherit;
}
.prestations-container .prestation:hover .prestation-link::before {
	width: 100%;
}
.prestations-container .prestation:hover .prestation-link span {
	left: 100%;
	transform: translateX(-100%);
}

/* CONTACT FORM 7 */
.CForm {
	width: 100%;
	gap: 20px;
}
.CForm .CF-full {
	width: 100%;
}
.CForm .CF-half { width: calc(50% - 10px); }
.CForm .CF-onethird { width: calc(33% - 10px); }
.CForm .CF-twothird { width: calc(66% - 10px); }
.CForm .CF-onequarter {	width: calc(25% - 10px); }
.CForm .CF-threequarter { width: calc(75% - 10px); }

.CForm input, .CForm textarea {
	font-size: 1.5rem;
}
.CForm input:focus, .CForm textarea:focus {
	border: 1px solid var(--grey)!important;
}
.CForm .CF-highlight {
	color: var(--sub-color);
	font-weight: 800;
}

.CForm .CF-checkbox .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
}
.CForm .CF-checkbox .wpcf7-list-item {
	margin: 0 0 5px 1%;
	width: 32%;
	min-width: 250px;
}
.CForm .CF-radio .wpcf7-radio {
	display: block;
}
.CForm .CF-radio .wpcf7-list-item {
	margin: 0 0 5px 1%;
	width: 99%;
}
.CForm .wpcf7-not-valid {
	border: 1px solid #dc3232;
}
.CForm .wpcf7-not-valid-tip {
	position: absolute;
	font-size: 1rem;
	bottom: 0;
	transform: translate(0,80%);
}
.CForm .CF-number label > span {
	width: 150px;
	display: block;
}
.CForm .CF-textarea .wpcf7-textarea  {
	resize: vertical;
}

.CForm .CF-hr {
	position: relative;
}
.CForm .CF-hr h3 {
	display: inline-block;
	padding-right: 20px;
	margin: 0;
	background-color: var(--white);
}
.CForm .CF-hr::before {
	position: absolute;
	content: "";
	display: block;

	width: 100%;
	height: 2px;
	background-color: var(--main-color);

	top: 50%;
	left: 0;
	transform: translate(0, -50%);
	z-index: -1;
}

/****************************/
/***********FOOTER***********/
/****************************/
#main-footer .get-menu.footer-big-menu {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
#main-footer .get-menu.footer-big-menu > li > a.menu-link {
	font-family: var(--instrument);
	font-style: italic;
	font-weight: 400;
	font-size: 3rem;
	color: var(--sub-color);
}
#main-footer .get-menu.footer-big-menu .sub-menu {
	list-style: none;
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0;
}


/****************************/
/********DESKTOP ONLY********/
/****************************/
@media (min-width: 981px) {
	
	
}
/****************************/
/**********TABLETTE**********/
/****************************/
@media (max-width: 980px) {
	h1, .entry-content h1, body *:is(.is-h1) {
		font-size: 5rem;
	}
	h1 strong, .entry-content h1 strong, body *:is(.is-h1) strong {
		font-size: 6rem;
	}
	h2, .entry-content h2, body .entry-content *:is(.is-h2) {
		font-size: 4.2rem;
	}
	h2 strong, .entry-content h2 strong, body *:is(.is-h2) strong {
		font-size: 5.1rem;
	}
	h3, .entry-content h3, body .entry-content *:is(.is-h3) {

	}
	h4, .entry-content h4, body .entry-content *:is(.is-h4) {

	}
	h5, .entry-content h5, body .entry-content *:is(.is-h5) {

	}

	/*#######################################*/

	#main-header .header-menu ul {
		--cols: 1;
	}
	#main-header .header-menu ul::after {
		display: none;
	}
	
}
/****************************/
/*********SMARTPHONE*********/
/****************************/
@media (max-width: 768px) { 
	/**********SPECIFIC**********/
	.is-mobile-center, .is-mobile-center * {
		text-align: center;
    }
    .is-mobile-left, .is-mobile-left * {
		text-align: left;
    }
    .is-mobile-fullwidth {
		width: 100%!important;
    }.is-mobile-fullheight {
		height: 100%!important;
    }
	.no-mobile-border {
		border: none;
    }
    .no-mobile-margin {
		margin: 0!important;
    }
    .no-mobile-padding {
		padding: 0!important;
    }
    .is-mobile-reverted {
		flex-direction: column-reverse;
        flex-wrap: nowrap !important;
    }
	.is-mobile-justify-center {
		justify-content: center !important;
	}
	.is-mobile-align-center {
		align-items: center !important;
	}
	/****************************/
	h1, .entry-content h1, body *:is(.is-h1) {
		font-size: 4rem;
	}
	h1 strong, .entry-content h1 strong, body *:is(.is-h1) strong {
		font-size: 5rem;
	}
	h2, .entry-content h2, body .entry-content *:is(.is-h2) {
		font-size: 3.5rem;
	}
	h2 strong, .entry-content h2 strong, body *:is(.is-h2) strong {
		font-size: 4.3rem;
	}
	h3, .entry-content h3, body .entry-content *:is(.is-h3) {

	}
	h4, .entry-content h4, body .entry-content *:is(.is-h4) {

	}
	h5, .entry-content h5, body .entry-content *:is(.is-h5) {

	}
	/****************************/

	#main-header .header-menu {
		width: 100%;
	}
	#main-header .header-subtitle, #main-header .header-subtitle * {
		font-size: 1.6rem;
	}

	/* CONTACT FORM 7 */
	.CForm .CF-half, .CForm .CF-onethird, .CForm .CF-twothird, .CForm .CF-onequarter, .CForm .CF-threequarter  {
		width: calc(100% - 10px);
	}

	.CForm .CF-checkbox .wpcf7-list-item {
		width: 99%;
	}
}
@media (max-width: 480px) {
	

}
/****************/
/** KEYFRAMES ***/
/****************/