/*
Theme Name: Sadec Akelys Carrières
Theme URI: https://www.sadec-akelys.fr/
Author: Unique Design
Author URI: https://www.uniquedesign.fr/
Description: Thème WordPress pour le site de Sadec Akelys.
Template: hello-elementor
Version: 1.0.1
*/

:root {
	--teal: #256165;
	--teal-90: rgb(from var(--teal) r g b / .9);
}

/* --------------------------------------------------------------
Reset
------------------------------------------------------------- */
html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,legend,hr,h1,h2,h3 {
	margin: 0;
	padding: 0
}
*,*:before,*:after {
	box-sizing: border-box
}
img,video,svg {
	display: block;
	height: auto;
	max-width: 100%;
	border: 0
}

/* --------------------------------------------------------------
Global styles
------------------------------------------------------------- */
html {
	overflow-x: hidden;
}

body {
	margin: 0;
	overflow: clip;
	color: var(--blue);
	font-size: 1.125rem;
	line-height: 1.5;
}

ol,
ul {
	padding-inline-start: 1.5em;
}

h1,h2,h3 {
	color:var(--blue);
}
h1 {
	font-size: 1.625rem;
	line-height: 1.3;
	font-weight: 700;
	text-transform: uppercase;
}

h2 {
	font-size: 1.875rem;
	line-height: 1.2;
	font-weight: 700;
	text-transform: none;
	text-wrap: balance;
}

h3 {
	font-size: 1.375rem;
	line-height: 1.37;
	font-weight: 700;
	text-transform: uppercase;
}

.title {
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: 400;
}
a{
	color: var(--blue-1);
}

@media (min-width: 1025px) {
	h1 {
		font-size: 1.875rem;
		line-height: 1.2;
	}

	h2 {
		font-size: 2.5rem;
	}

	.title {
		font-size: 1.875rem;
		line-height: 1.2;
	}
}
.elementor .title + h2, .elementor h2 + .title {
	margin-top: -20px;
}

/* Blockquote */
.elementor .elementor-widget-blockquote blockquote {
	padding-left: 2rem;
	position: relative;
}
.elementor .elementor-widget-blockquote .elementor-blockquote__content {
	font-style: italic;
}
.elementor .elementor-widget-blockquote blockquote:before {
	position: absolute;
	left:0;
	top:-1rem;
	color: var(--blue);
}

/* --------------------------------------------------------------
e-con content width fix
------------------------------------------------------------- */
.e-con {
	--content-width: min(100vw,var(--container-max-width,1140px)) !important;
}
@media (max-width: 1480px) {
	.elementor .e-con {
		--container-max-width: 1240px;
	}
}

/* --------------------------------------------------------------
Paragraphs
------------------------------------------------------------- */

p.border-left, div.border-left {
	border-left: 1px solid currentColor;
	padding-left: 20px;
}
.page-description.border-left {
	border-left: 3px solid currentColor;
}
p.border-bottom, div.border-bottom {
	border-bottom: 1px solid currentColor;
	padding-bottom: 20px;
}
p.border-top, div.border-top {
	border-top: 1px solid currentColor;
	padding-top: 20px;
}
p.max-width, div.max-width {
	max-width: 49rem;
}

/* --------------------------------------------------------------
Container
------------------------------------------------------------- */
.container {
	display: grid;
	align-items: center;
	margin-inline: auto;
	padding: 15px 20px;
	width: min(100%, 1620px);
}

/* --------------------------------------------------------------
Decoration
------------------------------------------------------------- */
.has-deco {
	--deco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' viewBox='0 0 601 850'%3E%3Cpath stroke='%23fbb937' d='M103 4s29 74 4 175c-13 67-19 130 1 228 20 97 27 132 29 215s0 223 0 223'/%3E%3Cpath stroke='%23eb5c68' d='M70 5s12 95 57 192c8 23 55 103 20 265-10 69-16 89-16 180v202'/%3E%3Cpath stroke='%23e52629' d='M232 4s-40 111-11 230c10 62 27 96-30 212-23 49-49 81-46 188v211'/%3E%3Cpath stroke='%23d55929' d='M307 2S150 262 151 572v274'/%3E%3Cpath stroke='%23019683' d='M491 3s-41 69-177 159c-22 14-135 64-148 312-2 125 0 372 0 372'/%3E%3Cpath stroke='%237fa882' d='M596 12S304 228 216 432c-24 56-51 118-45 235v179'/%3E%3Cpath stroke='%234aa147' d='M598 46S418 169 297 322c-29 41-135 161-119 333v190'/%3E%3Cpath stroke='%23f59d22' d='M186 846V593s-6-94 75-206c36-44 118-150 337-247'/%3E%3Cpath stroke='%234aa147' d='M448 4s-28 147-73 257c-26 49-35 64-105 130-13 13-99 98-113 217 2 40 0 240 0 240m-53-3V586S95 413 3 289'/%3E%3Cpath stroke='%230872a3' d='M2 227s81 122 107 357c2 56 0 261 0 261'/%3E%3Cpath stroke='%23d55929' d='M119 844V545s9-166-28-294C74 202 40 119 4 91'/%3E%3Cpath stroke='%23bed137' d='M3 246s98 103 120 332c3 43 2 267 2 267'/%3E%3C/svg%3E");
}
.e-con.has-deco {
	position: relative;
}
.e-con.has-deco > * {
	position: relative;
	z-index: 1;
}
.e-con.has-deco:before {
	content:"";
	position: absolute;
	aspect-ratio: 601/850;
	background-image: var(--deco);
	background-position: top left;
	background-size: 100% auto;
	background-repeat: no-repeat;
	z-index: 0;
	height: auto;
	left: -5%;
	width: 55%;
}

/* Deco 1 */
.e-con.deco-1:before {
	top: 12rem;
	width: 50%;
	aspect-ratio: 1/.8;
	bottom: -20rem;
	top: auto;
}
@media (max-width: 1024px) {
	.e-con.deco-1:before {
		width: 100%;
		bottom: -15rem;
	}
}

/* Deco 2 */
.e-con.deco-2:before {
	top: 100%;
	aspect-ratio: 1/.5;
	transform: rotate(180deg);
}
@media (max-width: 767px) {
	.e-con.deco-2:before {
		width: 90%;
	}
}

/* Deco 3 */
.e-con.deco-3:before {
	top: 5rem;
	right: -30%;
	left: auto;
	width: 40%;
	aspect-ratio: 601/850;
	transform: rotate(-45deg);
}
@media (max-width: 767px) {
	.e-con.deco-3:before {
		width: 90%;
		right: -80%;
	}
}
/* Deco 3 - implantations */
.e-con.deco-implantations:before {
	right: -6%;
	width: 26%;
	aspect-ratio: 1/.7;
}
@media (max-width: 767px) {
	.e-con.deco-implantations:before {
		width: 90%;
		right: -60%;
	}
}

/* Deco 4 */
.e-con.deco-4:before {
	width: 50%;
	left: -20%;
	aspect-ratio: 1/.9;
	bottom: -20rem;
	top: auto;
	transform: scaleX(-1);
}
@media (max-width: 767px) {
	.e-con.deco-4:before {
		bottom: -5rem;
		left: -50%;
		width: 90%;
	}
}

/* --------------------------------------------------------------
Main header
------------------------------------------------------------- */
.main-header {
	background: var(--teal-90);
	color: var(--white);
	backdrop-filter: blur(20px);
	position: relative;
	z-index: 99;
	/*transition: all .3s ease;*/
}

.main-header.is-sticky {
	position: sticky;
	top: 0;
	z-index: 999;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.main-header > .container {
	display: grid;
	align-items: center;
	grid-template-columns: 1.875rem 1fr 2.1875rem;
}

.main-header .logo {
	margin-inline: auto;
}

.main-header .logo svg {
	height: 5.875rem;
	width: auto;
	transition: height .3s ease;
}
.main-header.is-sticky .logo svg {
	height: 3rem;
}

.primary-nav,
.secondary-nav,
.submenu ul,
.main-header li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	list-style: none;
	padding: 0;
	margin: 0;
}

.main-header a,
.main-header button {
	color: var(--white);
	text-decoration: none;
}

.main-header button {
	background: transparent;
	border: none;
	cursor: pointer;
}

/* Menu toggle */
.menu-toggle svg {
	fill: var(--white);
}

.menu-toggle path {
	transition: opacity .2s, transform .2s;
}

.menu-toggle[aria-expanded=true] path:nth-child(1) {
	transform: rotate(-45deg) translateX(-11px) translateY(-5px);
}

.menu-toggle[aria-expanded=true] path:nth-child(2) {
	opacity: 0;
}

.menu-toggle[aria-expanded=true] path:nth-child(3) {
	transform: rotate(45deg) translateX(4px) translateY(-6px);
}

/* Top nav */
.header-top-nav {
	display: none;
}

/* Main nav */
.main-navigation {
	position: absolute;
	z-index: 99;
	inset: 100% 0 auto 0;
	min-height: calc(100svh - 5.875rem - 30px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: var(--teal);
	opacity: 0;
	transform: scaleY(0);
	transform-origin: top;
	pointer-events: none;
	transition: transform .3s ease, opacity .1s ease;
	padding: 1rem;
}

.main-navigation.active {
	opacity: 1;
	transform: scaleY(1);
	pointer-events: auto;
}

.main-navigation a,
.main-navigation button {
	display: flex;
	padding: 0;
	font-size: 1rem;
	font-weight: 400;
	gap: .5rem;
	margin: .625rem;
	line-height: 1;
	position: relative;
}
.main-navigation a:after,
.main-navigation button:after {
	content: '';
	position: absolute;
	bottom: -10px;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--white);
	transform: scaleX(0);
	transition: transform .3s ease;
}

.main-navigation a:hover:after,
.main-navigation a:focus-visible:after,
.main-navigation button:hover:after,
.main-navigation button:focus-visible:after,
.main-navigation button[aria-expanded="true"]:after {
	transform: scaleX(1);
}

.main-navigation button svg {
	width: 1rem;
	height: 1rem;
	transition: transform .3s ease;
}

.main-navigation button[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

.main-navigation .menu-link-alt a {
	color: var(--green-3);
}
.main-navigation .menu-link-alt a:after {
	background: var(--green-3);
}

.submenu {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .3s ease;
	padding-left: 1.5rem;
}

.submenu.active {
	grid-template-rows: 1fr;
}
.submenu ul {
	overflow: hidden;
	display:flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	/*margin-block: 1rem 1.5rem;*/
	padding-left: 2rem;
	list-style: disc;
}
.submenu li {
	display: list-item;
	list-style: disc;
}
.submenu li:first-child {
	margin-top: 1rem;
}
.submenu li:last-child {
	margin-bottom: 1.5rem;
}
.submenu a {
	margin: 0;
}
.submenu a:after {
	display:none;
}
.submenu a:hover, .submenu a:focus, .submenu a:active {
	filter: brightness(.75);
}

.secondary-nav {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .625rem;
	margin-top: 1.25rem;
	padding: 1.25rem 0 .25rem;
	border-top: 1px dashed var(--cream-p);
}

.header-top-nav .btn,
.secondary-nav .btn {
	padding: .625rem;
	font-size: .875rem;
	font-weight: 700;
	text-transform: uppercase;
	border: 2px solid transparent;
	border-radius: 8px 0 8px 8px;
	background: var(--blue-1);
	transition: all .3s ease;
}
.header-top-nav .btn:hover,
.header-top-nav .btn:focus,
.secondary-nav .btn:hover,
.secondary-nav .btn:focus {
	background: transparent;
	border-color: var(--cream-p) !important;
}

.header-top-nav .btn-blue-green, .secondary-nav .btn-blue-green {
	background: var(--blue-green);
	border-color: var(--blue-green);
}
.header-top-nav .btn-green-1, .secondary-nav .btn-green-1 {
	background: var(--green-1);
	border-color: var(--green-1);
}
.header-top-nav .btn-green-2, .secondary-nav .btn-green-2 {
	background: var(--green-2);
	border-color: var(--green-2);
}
.header-top-nav .btn-green-3, .secondary-nav .btn-green-3 {
	background: var(--green-3);
	border-color: var(--green-3);
}
.header-top-nav .btn-green-4, .secondary-nav .btn-green-4 {
	background: var(--green-4);
	border-color: var(--green-4);
}
.header-top-nav .btn-orange-1, .secondary-nav .btn-orange-1 {
	background: var(--orange-1);
	border-color: var(--orange-1);
}
.header-top-nav .btn-orange-2, .secondary-nav .btn-orange-2 {
	background: var(--orange-2);
	border-color: var(--orange-2);
}
.header-top-nav .btn-orange-3, .secondary-nav .btn-orange-3 {
	background: var(--orange-3);
	border-color: var(--orange-3);
}
.header-top-nav .btn-yellow-1, .secondary-nav .btn-yellow-1 {
	background: var(--yellow-1);
	border-color: var(--yellow-1);
}
.header-top-nav .btn-pink, .secondary-nav .btn-pink {
	background: var(--pink);
	border-color: var(--pink);
}
.header-top-nav .btn-red, .secondary-nav .btn-red {
	background: var(--red);
	border-color: var(--red);
}

@media (min-width: 1025px) {
	.hidden-desktop {
		display: none;
	}

	.container {
		padding: 20px 20px 0;
		max-width: var(--content-width);
	}

	.main-header {
		background: var(--teal);
	}

	.main-header .logo svg {
		height: 7.1875rem;
	}

	.main-header > .container {
		grid-template-columns: auto  1fr;
		align-items: end;
	}

	.header-top-nav {
		position: absolute;
		right: 35px;
		top: 35px;
		display: flex;
		align-items: center;
		gap: 2rem;
		transition: top .3s ease;
	}
	.main-header.is-sticky .header-top-nav {
		top: 10px;
	}
	.main-header.is-sticky .header-top-nav .btn {
		padding: 0 .625rem;
	}

	.main-navigation {
		position: relative;
		padding: 0;
		inset: auto;
		background: transparent;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		margin-top: 1.25rem;
		display: flex;
		min-height: auto;
		align-items: center;
	}

	.primary-nav {
		max-width: 100%;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 1rem;
		position: relative;
	}

	.submenu {
		position: absolute;
		grid-template-rows: 1fr;
		left: 0;
		top: 100%;
		width: 100%;
		padding: .625rem;
		background: var(--teal);
		transform: scaleY(0);
		transform-origin: top;
		transition: transform .3s ease;
	}
	.submenu:before, .submenu:after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		bottom: 0;
		right: 100%;
		width: 50vw;
		background: var(--teal);
	}
	.submenu:after {
		right: auto;
		left: 100%;
	}
	.submenu.active {
		opacity: 1;
		transform: scaleY(1);
	}

	.submenu ul {
		margin-top: 1rem;
		margin-bottom: 2rem;
		padding: 0;
		display: grid;
		width: 100%;
		gap: 1rem;
	}
	.submenu li {
		list-style-type: none;
	}
	.submenu li:first-child {
		margin-top: 0;
	}
	.submenu li:last-child {
		margin-bottom: 0;
	}
	.grid-2 .submenu ul {
		grid-template-columns: 1fr 1fr;
	}
	.grid-3 .submenu ul {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.submenu a {
		line-height: 1.5;
	}
}

/* --------------------------------------------------------------
Main footer
------------------------------------------------------------- */
.main-footer {
	background-color: var(--teal);
	color: var(--white);
	padding: 3.125rem;
	text-align: center;
	position:relative;
	z-index: 1;
}

.footer-logo {
	width: 8.5rem;
	margin: 0 auto;
}

.main-footer .container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
}

.main-footer ul,
.main-footer li {
	list-style: none;
	padding: 0;
	margin: 0;
}

.main-footer a {
	display: block;
	padding: .625rem;
	font-size: .875rem;
	color: var(--white);
	text-decoration: none;
	text-transform: uppercase;
}

.main-footer .footer-nav ul {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.main-footer .footer-nav a:hover,
.main-footer .footer-nav a:focus {
	background: var(--green-4);
	color: var(--teal);
}

.main-footer .social ul {
	display: flex;
	justify-content: center;
	gap: 1rem;
}

.main-footer .social a {
	padding: 0;
	width: 2rem;
	height: 2rem;
}

/* --------------------------------------------------------------
Containers backgrounds and shapes
------------------------------------------------------------- */
.e-con.cc-has-shape {
	padding-block: 1rem;
}
.e-con.cc-has-shape * {
	position: relative;
	z-index: 1;
}
.e-con.cc-has-shape {
	position: relative;
	margin-block: 10rem;
	--shape-height: 6rem;
}
@media (min-width: 768px) {
	.e-con.cc-has-shape {
		margin-block: 16rem;
		--shape-height: 12rem;
		padding-block: 3rem;
	}
}

.e-con.cc-has-shape::before {
	content: '';
	position: absolute;
	inset: 0;
	height: calc(100% + 2 * var(--shape-height));
	margin-top: calc(-1 * var(--shape-height));
	z-index: 0;
	background-color: var(--cc-bg-color, transparent);
	pointer-events: none;
}

.e-con.cc-has-shape>.elementor-widget-wrap,
.e-con.cc-has-shape>.elementor-container {
	position: relative;
	z-index: 1;
}

/* Trapèze (petit côté à gauche) */
.e-con.cc-shape-trapeze-small-left::before {
	clip-path: polygon(0 var(--shape-height), 100% 0, 100% 100%, 0 calc(100% - var(--shape-height)));
}

/* Trapèze (petit côté à droite) */
.e-con.cc-shape-trapeze-small-right::before {
	clip-path: polygon(0 0, 100% var(--shape-height), 100% calc(100% - var(--shape-height)), 0 100%);
}

/* Parallélogramme (incliné vers la droite) */
.e-con.cc-shape-parallelogram-bottom-right::before {
	clip-path: polygon(0 0, 100% var(--shape-height), 100% 100%, 0 calc(100% - var(--shape-height)));
}

/* Parallélogramme (incliné vers la gauche) */
.e-con.cc-shape-parallelogram-bottom-left::before {
	clip-path: polygon(0 var(--shape-height), 100% 0, 100% calc(100% - var(--shape-height)), 0 100%);
}

.cc-bg-blue {
	--cc-bg-color: var(--blue);
}
.cc-bg-blue-1 {
	--cc-bg-color: var(--blue-1-section);
}

.cc-bg-blue-green {
	--cc-bg-color: var(--blue-green-section);
}

.cc-bg-green-1 {
	--cc-bg-color: var(--green-1-section);
}

.cc-bg-green-2 {
	--cc-bg-color: var(--green-2-section);
}

.cc-bg-green-3 {
	--cc-bg-color: var(--green-3-section);
}

.cc-bg-green-4 {
	--cc-bg-color: var(--green-4-section);
}

.cc-bg-orange-1 {
	--cc-bg-color: var(--orange-1-section);
}

.cc-bg-orange-2 {
	--cc-bg-color: var(--orange-2-section);
}

.cc-bg-orange-3 {
	--cc-bg-color: var(--orange-3-section);
}

.cc-bg-yellow-1 {
	--cc-bg-color: var(--yellow-1-section);
}

.cc-bg-pink {
	--cc-bg-color: var(--pink-section);
}

.cc-bg-red {
	--cc-bg-color: var(--red-section);
}
.elementor .cc-bg-blue-1 h2 {
	color: var(--blue-1);
}
.elementor .cc-bg-blue-green h2 {
	color: var(--blue-green);
}
.elementor .cc-bg-green-1 h2 {
	color: var(--green-1);
}
.elementor .cc-bg-green-2 h2 {
	color: var(--green-2);
}
.elementor .cc-bg-green-3 h2 {
	color: var(--green-3);
}
.elementor .cc-bg-green-4 h2 {
	color: var(--green-4);
}
.elementor .cc-bg-orange-1 h2 {
	color: var(--orange-1);
}
.elementor .cc-bg-orange-2 h2 {
	color: var(--orange-2);
}
.elementor .cc-bg-orange-3 h2 {
	color: var(--orange-3);
}
.elementor .cc-bg-yellow-1 h2 {
	color: var(--yellow-1);
}
.elementor .cc-bg-pink h2 {
	color: var(--pink);
}
.elementor .cc-bg-red h2 {
	color: var(--red);
}
.elementor .cc-has-shape h2 strong {
	color: var(--blue);
	font-weight: 700;
}

/**
 * Animation des fonds au scroll (fade + slide)
 */
.cc-has-shape.cc-animate:before {
	opacity: 0;
	will-change: opacity, transform;
	transition:
		opacity var(--cc-anim-duration, 0.2s) var(--cc-anim-easing, cubic-bezier(0.22, 1, 0.36, 1)),
		transform var(--cc-anim-duration, 0.7s) var(--cc-anim-easing, cubic-bezier(0.22, 1, 0.36, 1));
}

.cc-has-shape.cc-animate.cc-from-left::before {
	transform: translateX(-100vw);
}

.cc-has-shape.cc-animate.cc-from-right::before {
	transform: translateX(100vw);
}

.cc-has-shape.cc-animate.is-visible:before {
	opacity: 1;
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {

	.cc-has-shape.cc-animate:before {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

/* --------------------------------------------------------------
Blocks overflows
------------------------------------------------------------- */
.elementor img.full-right, .elementor img.full-left {
	border-radius: 10px;
}
@media (min-width: 1025px) {
	.elementor img.full-right {
		margin-right: calc(-10px - (100vw - var(--content-width)) / 2);
		max-width: none;
		width: calc(100% + 10px + (100vw - var(--content-width)) / 2);
		border-radius: 30px 0 0 30px;
	}
	
	.elementor img.full-left {
		margin-left: calc(-10px - (100vw - var(--content-width)) / 2);
		max-width: none;
		width: calc(100% + 10px + (100vw - var(--content-width)) / 2);
		border-radius: 0 30px 30px 0;
	}
}

/* --------------------------------------------------------------
Accents
------------------------------------------------------------- */
.accent {
	position: relative;
}
.accent.accent-blue-1 {--accent-color: var(--blue-1);}
.accent.accent-blue-green {--accent-color: var(--blue-green);}
.accent.accent-green-1 {--accent-color: var(--green-1);}
.accent.accent-green-2 {--accent-color: var(--green-2);}
.accent.accent-green-3 {--accent-color: var(--green-3);}
.accent.accent-green-4 {--accent-color: var(--green-4);}
.accent.accent-orange-1 {--accent-color: var(--orange-1);}
.accent.accent-orange-2 {--accent-color: var(--orange-2);}
.accent.accent-orange-3 {--accent-color: var(--orange-3);}
.accent.accent-yellow-1 {--accent-color: var(--yellow-1);}
.accent.accent-pink {--accent-color: var(--pink);}
.accent.accent-red {--accent-color: var(--red);}

.accent:before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: -2.25rem;
	width: 5rem;
	height: 6rem;
	background: var(--accent-color, var(--blue-1));
	z-index: 0;
	opacity: 0;
	clip-path: polygon(0 0, 55% 0, 100% 100%, 45% 100%);
	transform: translateY(-10rem);
	transition: opacity .3s ease, transform .5s ease;
}
.accent-right:before {
	left: auto;
	right: -1.8rem;
	width: 4rem;
	height: 6rem;
	clip-path: polygon(0 100%, 45% 0, 100% 0, 55% 100%);
}

.accent-padding-left {padding-left: 10rem;}
.accent-padding-right {padding-right: 10rem;}

/* Animation au scroll */
.accent.is-visible:before {
	opacity: 1;
	transform: translateY(0);
}
@media (min-width: 768px) {
	.accent-inside.accent-left {padding-inline: 10rem 0;}
	.accent-inside.accent-right {padding-inline: 0 10rem;}

	.accent:before {
		bottom: -1rem;
		left: -16rem;
		width: 15rem;
		height: 18rem;
	}
	.accent-right:before {
		left: auto;
		right: -13rem;
		width: 14rem;
		height: 12rem;
		clip-path: polygon(0 100%, 45% 0, 100% 0, 55% 100%);
	}
	.accent-inside.accent-left:before {
		left: -7rem;
	}
	.accent-inside.accent-right:before {
		right: -6rem;
	}
}

/* --------------------------------------------------------------
Steps list
------------------------------------------------------------- */
.elementor .e-con.steps-list {
	gap: 80px;
}
.elementor .e-con.steps-list > * + *{
	position: relative;
}
.elementor .e-con.steps-list > * + *:before {
	content: '';
	position: absolute;
	top: 0;
	left: -70px;
	width: 60px;
	height: 60px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='%231f2645'%3E%3Cpath d='M10 22.5v15h20v12.1L49.6 30 30 10.4v12.1z'/%3E%3C/svg%3E");
}
.elementor .e-con.steps-list.steps-list-center > * + *:before {
	top: 50%;
	transform: translateY(-50%);
}

/* --------------------------------------------------------------
Counters widget
------------------------------------------------------------- */

.counters-grid {
	margin: 3em auto;
	padding: 0 1em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 20px;
}

.counter-card {
	text-align: center;
	font-size: .875rem;
	max-width: 8em;
}

.counter-card > * {
	display: block;
	margin: 0;
}

.counter-card strong {
	text-transform: none;
	font-size: 2.25rem;
	color: var(--blue);
	line-height: 1;
	padding-bottom:.25em;
	border-bottom: 1px solid currentColor;
}

.counter-card p {
	text-transform: uppercase;
	margin-block-start: 1rem;
}

@media (min-width: 768px) {
	.counter-card {
		font-size: 1.2rem;
	}

	.counter-card strong {
		font-size: 3rem;
	}
}

@media (min-width: 1025px) {
	.counter-card {
		font-size: 1.5rem;
	}

	.counter-card strong {
		font-size: 5rem;
	}
}

/* --------------------------------------------------------------
Horizontal scroll widget
------------------------------------------------------------- */
.horizontal-scroll-grid-wrapper {
	margin-right: calc(0px - (100vw - var(--content-width)) / 2);
}
.horizontal-scroll-grid {
	width: fit-content;
	display: flex;
	flex-wrap: nowrap;
	gap: 3.75rem;
	will-change: transform;
}
.horizontal-scroll-grid .card {
	width: min(26rem, 75vw);
}

/* --------------------------------------------------------------
Reviews
------------------------------------------------------------- */
.elementor .review {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	border-radius: 30px;
	background: var(--white);
	padding: 50px 60px;
	width: min(80vw, 620px);
}
.review svg {
	width: 90px;
	height: auto;
}
.review .review-date {
	color: var(--orange-1);
	font-style: italic;
}
.review .review-content {
	font-style: italic;
	color: rgb(from var(--blue) r g b / .5);
}

/* --------------------------------------------------------------
Cards
------------------------------------------------------------- */
.elementor .card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	text-align: center;
	background: #fff;
	padding: .625rem;
	border-radius: .625rem;
	box-shadow: 0 0 10px rgba(0, 0, 0, .4);
}

.elementor .card .card-btn {
	margin-top: auto;
	text-align: right;
	transform: translate(1.25rem, 1.5rem);
}

.elementor .card .btn {
	display: inline-block;
}

.elementor .taxonomy-color-blue-1 .btn {
	background: var(--blue-1);
}
.elementor .taxonomy-color-blue-1 .btn:hover,
.elementor .taxonomy-color-blue-1 .btn:focus {
	background: var(--blue-1-hover);
}
.elementor .taxonomy-color-blue-green .btn {
	background: var(--blue-green);
}
.elementor .taxonomy-color-blue-green .btn:hover,
.elementor .taxonomy-color-blue-green .btn:focus {
	background: var(--blue-green-hover);
}
.elementor .taxonomy-color-green-1 .btn {
	background: var(--green-1);
}
.elementor .taxonomy-color-green-1 .btn:hover,
.elementor .taxonomy-color-green-1 .btn:focus {
	background: var(--green-1-hover);
}
.elementor .taxonomy-color-green-2 .btn {
	background: var(--green-2);
}
.elementor .taxonomy-color-green-2 .btn:hover,
.elementor .taxonomy-color-green-2 .btn:focus {
	background: var(--green-2-hover);
}
.elementor .taxonomy-color-green-3 .btn {
	background: var(--green-3);
}
.elementor .taxonomy-color-green-3 .btn:hover,
.elementor .taxonomy-color-green-3 .btn:focus {
	background: var(--green-3-hover);
}
.elementor .taxonomy-color-green-4 .btn {
	background: var(--green-4);
}
.elementor .taxonomy-color-green-4 .btn:hover,
.elementor .taxonomy-color-green-4 .btn:focus {
	background: var(--green-4-hover);
}
.elementor .taxonomy-color-orange-1 .btn {
	background: var(--orange-1);
}
.elementor .taxonomy-color-orange-1 .btn:hover,
.elementor .taxonomy-color-orange-1 .btn:focus {
	background: var(--orange-1-hover);
}
.elementor .taxonomy-color-orange-2 .btn {
	background: var(--orange-2);
}
.elementor .taxonomy-color-orange-2 .btn:hover,
.elementor .taxonomy-color-orange-2 .btn:focus {
	background: var(--orange-2-hover);
}
.elementor .taxonomy-color-orange-3 .btn {
	background: var(--orange-3);
}
.elementor .taxonomy-color-orange-3 .btn:hover,
.elementor .taxonomy-color-orange-3 .btn:focus {
	background: var(--orange-3-hover);
}
.elementor .taxonomy-color-yellow-1 .btn {
	background: var(--yellow-1);
}
.elementor .taxonomy-color-yellow-1 .btn:hover,
.elementor .taxonomy-color-yellow-1 .btn:focus {
	background: var(--yellow-1-hover);
}
.elementor .taxonomy-color-pink .btn {
	background: var(--pink);
}
.elementor .taxonomy-color-pink .btn:hover,
.elementor .taxonomy-color-pink .btn:focus {
	background: var(--pink-hover);
}
.elementor .taxonomy-color-red .btn {
	background: var(--red);
}
.elementor .taxonomy-color-red .btn:hover,
.elementor .taxonomy-color-red .btn:focus {
	background: var(--red-hover);
}

@media (max-width: 767px) {
	.btn-card + .btn-read-more {
		order: -1;
	}
}

/* --------------------------------------------------------------
Page intro
------------------------------------------------------------- */
.e-con.page-intro {
	background: #fff;
	position: relative;
	padding: 3.125rem;
	border-radius: 3.125rem 0 0 3.125rem;
}

.e-con.page-intro:before {
	content: '';
	background: #fff;
	position: absolute;
	inset: 0 auto 0 50%;
	width: 50vw;
	z-index: 0;
}

@media (max-width: 1024px) {
	.e-con.page-intro {
		padding: 1.25rem;
	}

	.e-con.page-intro {
		margin-inline: -10px;
		width: calc(100% + 20px);
	}
}

/* --------------------------------------------------------------
Page headers
------------------------------------------------------------- */
.elementor .page-header {
	padding-block: 3rem 8rem;
	margin-top:0;
}
.elementor .page-header + * {
	margin-top:-18rem;
}
.elementor .page-header h1 {
	position: relative;
	z-index: 2;
	position: relative;
	border-radius: 20px 20px 0 20px;
	padding: 1.5rem 3rem;
	margin: 0 3rem -2rem;
}
@media (min-width: 768px) {
	.elementor .page-header h1 {
		margin-right: -8rem;
		margin-left: 0;
		padding: 3.125rem 5rem;
		max-width: 50rem;
		border-radius: 60px 60px 0 60px;
	}
}

/* --------------------------------------------------------------
Accueil
------------------------------------------------------------- */
.e-con.home-skewed-container {
	transform: translateY(4rem);
}
.e-con.home-skewed-container:before {
	content: '';
	position: absolute;
	z-index:-1;
	top: 50%;
	left: 50%;
	background: var(--teal);
	height: 120%;
	width: 120vw;
	transform:translate(-50%, -50%) rotate(2deg);
	transform-origin: 50% 50%;
}
.e-con.home-skewed-container:after {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 6rem;
	height: 6rem;
	transform: translate(-50%, -3rem);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath fill='%23fff' d='M18.53 9.27A9.27 9.27 0 1 1 0 9.27a9.27 9.27 0 0 1 18.53 0'/%3E%3Cpath fill='%23256165' d='M6.16 5.25a1.04 1.04 0 1 1 0 2.07 1.04 1.04 0 0 1 0-2.07m.82 6.9-.12.6c-.11.47-.39.77-.7.77s-.58-.3-.7-.75l-.34-1.73a.34.34 0 0 0-.34-.27c-.34 0-.34 0-.34-.67.1-1.3.41-1.77.9-2.17l.06-.06.03-.03.21.08.3.43-.47 1.15.7.92.68-.92-.46-1.15.3-.43.2-.08q.02 0 .03.03l.06.06c.4.31.67.68.81 1.46h.7a3 3 0 0 0-1.04-1.97 1.71 1.71 0 0 0-1.29-2.86 1.72 1.72 0 0 0-1.28 2.86c-.7.58-1.02 1.32-1.13 2.66 0 .58 0 1.23.75 1.35l.3 1.49c.2.79.73 1.3 1.36 1.3s1.18-.51 1.38-1.32l.15-.75zm5.39-4.83a1.04 1.04 0 1 1 0-2.08 1.04 1.04 0 0 1 0 2.08m-1.52 4.83.15.77c.2.79.74 1.3 1.37 1.3s1.17-.51 1.37-1.32l.3-1.47c.75-.12.75-.78.74-1.38-.1-1.31-.42-2.05-1.12-2.63a1.71 1.71 0 0 0-1.29-2.86 1.72 1.72 0 0 0-1.28 2.86 3 3 0 0 0-1.05 1.97h.7c.15-.78.42-1.15.81-1.46l.06-.06.03-.03.21.08.3.43-.47 1.15.7.92.68-.92-.46-1.15.29-.43.22-.08.02.03.06.06c.5.4.8.88.9 2.15 0 .69 0 .69-.34.69-.16 0-.3.11-.34.27l-.34 1.71c-.12.47-.4.77-.7.77s-.58-.3-.7-.75l-.12-.62z'/%3E%3Cpath fill='%23256165' d='m11.58 11.01.02-.02a.3.3 0 0 0 .08-.18v-.07a.3.3 0 0 0-.1-.21l-.69-.7a.35.35 0 0 0-.49.49l.1.1H8.03l.1-.1a.34.34 0 0 0-.49-.49l-.69.7a.3.3 0 0 0-.1.21v.07q.02.1.09.18l.02.02.68.69a.34.34 0 0 0 .5 0 .34.34 0 0 0 0-.49l-.1-.1h2.46l-.1.1a.34.34 0 0 0 .5.49z'/%3E%3C/svg%3E");
	background-size: cover;
}

/* --------------------------------------------------------------
Page secteurs
------------------------------------------------------------- */
@media (min-width: 1025px) {
	.elementor .sector-content-left {
		padding-right: 480px;
	}
	.elementor .sector-content-right {
		padding-left: 480px;
	}
}

/* --------------------------------------------------------------
Page offres d'emploi
------------------------------------------------------------- */

.jobs-filters select, .jobs-filters .jobs-filters__input {
	padding: .625rem;
	background: var(--white);
	border: 1px solid var(--blue);
}
.jobs-filters .btn {
	border: none;
	font-size: 1rem;
	align-self: flex-end !important;
	cursor: pointer;
}
.jobs-header__count {margin-top:1.5rem}

.jobs-filters__grid{
	display: flex;
	align-items:flex-end;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 20px;
}
.jobs-filters__tag + .jobs-filters__tag:before {
	content: " | ";
}

.jobs-list {
	width:100%;
	overflow-x: auto;
	border-collapse: collapse;
	margin-block: 5rem;
}
.jobs-list th {
	font-weight: 700;
	text-align: left;
}
.jobs-list td, .jobs-list th {
	padding: 10px 20px;
}
.jobs-list tbody tr:nth-child(odd) td {
	background: rgba(0 0 0 / .05);
}
.jobs-list tbody tr:hover td {
	background: rgba(0 0 0 / .15);
}
.jobs-list td, .jobs-list th {
	border: 1px solid #000;
}
.jobs-list th {
	border-top:none;
}
.jobs-list td:first-child, .jobs-list th:first-child {
	border-left: none;
}
.jobs-list td:last-child, .jobs-list th:last-child {
	border-right: none;
}
.jobs-list .company-logo {
	width: 180px;
}

/* --------------------------------------------------------------
Offre d'emploi
------------------------------------------------------------- */

.job-header .job-header-intro, .job-header .job-header-intro:before {
	background: var(--orange-1-section);
}
.job-header .job-header-intro{
	display:flex;
	height: 100%;
	align-items: center;
	position: relative;
	color: var(--cream);
	padding:20px 10px;
	border-radius: 0 0 30px 0;
}
.job-header .job-header-intro:before {
	content: '';
	position: absolute;
	inset: auto 0 100% 0;
	height: 100vh;
	z-index: -1;
}
.job-header .job-header-logo {
	position:relative;
	background: var(--white);
	border-radius: 10px;
	margin: 2rem;
	order: -1;
}
.job-header .job-header-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left;
}

@media (min-width: 1025px) {
	.job-header .job-header-intro{
		margin-right:-200px;
		padding:20px 240px 20px 20px;
	}
	.job-header .job-header-intro:before {
		inset: 0 100% 0 auto;
		width: 50vw;
		height: auto;
	}
	.job-header .job-header-logo {
		order: 1;
		height:100%;
		max-width: 600px;
		max-height: 400px;
		padding: 50px 20px;
		border-radius: 60px;
		margin: 4rem 0 !important;
	}
}

.job-content h2 {
	color: var(--orange-1);
	margin-block: 3rem 1rem;
}
.job-content h3 {
	margin-block: 1.75rem 1rem;
}
.job-content p, .job-content ul {
	margin-top: 1rem;
}

.job-share {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
