/* Prototype accueil 2027. */
.sr-only {
	position:absolute !important;
	width:1px !important;
	height:1px !important;
	padding:0 !important;
	margin:-1px !important;
	overflow:hidden !important;
	clip:rect(0, 0, 0, 0) !important;
	white-space:nowrap !important;
	border:0 !important;
}

.home-2027-page {
	position:relative;
	display:flex;
	flex-direction:column;
	background:#181818;
	color:#fff;
	height:100%;
	min-height:0;
	overflow:hidden;
}

body.home-2027-body {
	overflow:hidden;
}

.home-2027-body #wrapper {
	overflow:hidden;
}

.home-2027-body .left-header {
	bottom:0 !important;
}

.home-2027-body .left-header:after {
	bottom:28px;
}

.home-2027-body .loader {
	z-index:1000;
}

.home-2027-share {
	position:fixed;
	left:0;
	bottom:0;
	z-index:31;
	display:flex;
	width:80px;
	height:112px;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:9px;
	background:#00abe9;
	color:#fff;
	font-family:'Mukta Vaani', sans-serif;
	font-size:11px;
	font-weight:900;
	line-height:1;
	letter-spacing:2px;
	text-transform:uppercase;
	text-decoration:none;
	transition:background 260ms ease, color 260ms ease;
}

.home-2027-share i {
	display:flex;
	width:28px;
	height:28px;
	align-items:center;
	justify-content:center;
	border:1px solid rgba(255,255,255,0.72);
	border-radius:50%;
	font-size:13px;
}

.home-2027-share:hover,
.home-2027-share:focus {
	background:#0797d0;
	color:#fff;
}

.home-2027-body:before {
	content:'';
	position:fixed;
	right:0;
	top:80px;
	bottom:0;
	width:80px;
	background:
		radial-gradient(circle, #fff 0 3px, transparent 4px) center bottom / 80px 96px no-repeat,
		radial-gradient(circle, transparent 0 20px, rgba(255,255,255,0.94) 21px 23px, transparent 24px) center bottom / 80px 96px no-repeat,
		linear-gradient(#00abe9, #00abe9) center bottom / 80px 96px no-repeat,
		radial-gradient(circle, #00abe9 0 6px, transparent 7px) center bottom 269px / 14px 14px no-repeat,
		linear-gradient(rgba(255,255,255,0.24), rgba(255,255,255,0.24)) center bottom 96px / 1px 180px no-repeat,
		linear-gradient(#00abe9, #00abe9) center top / 80px 150px no-repeat,
		#313131;
	z-index:19;
	pointer-events:none;
}

.home-2027-body:after {
	content:none;
}

.home-2027-body.home-2027-projects-active:before {
	background:
		radial-gradient(circle, #fff 0 3px, transparent 4px) center bottom / 80px 96px no-repeat,
		radial-gradient(circle, transparent 0 20px, rgba(255,255,255,0.94) 21px 23px, transparent 24px) center bottom / 80px 96px no-repeat,
		linear-gradient(#00abe9, #00abe9) center bottom / 80px 96px no-repeat,
		radial-gradient(circle, #00abe9 0 6px, transparent 7px) center bottom 269px / 14px 14px no-repeat,
		linear-gradient(rgba(255,255,255,0.24), rgba(255,255,255,0.24)) center bottom 96px / 1px 180px no-repeat,
		linear-gradient(#00abe9, #00abe9) center top / 80px 150px no-repeat,
		#313131;
}

.home-2027-body .hc_dec_color:after {
	top:80px !important;
	bottom:auto !important;
	height:150px !important;
}

.home-2027-body .hc_dec_color:before {
	top:230px !important;
	bottom:auto !important;
	height:170px !important;
}

.home-2027-body .hc_dec_color {
	z-index:60;
	pointer-events:none;
}

.home-2027-page:before {
	content:'';
	position:fixed;
	inset:0;
	z-index:0;
	background-image:url('../images/accueil/accueil-tableau-01.jpg');
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
}

.home-2027-page:after {
	content:'';
	position:fixed;
	inset:0;
	z-index:1;
	background:rgba(10,10,10,0.46);
	pointer-events:none;
}

.home-2027-showcase {
	position:relative;
	z-index:5;
	height:calc(100vh - 80px);
	min-height:0;
	overflow:hidden;
	background:#111;
}

.home-2027-slide {
	position:absolute;
	inset:0;
	z-index:1;
	display:flex;
	flex-direction:column;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity 900ms ease, visibility 900ms ease;
}

.home-2027-slide.is-active {
	z-index:2;
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}

.home-2027-body .page-subtitle span:before {
	display:none !important;
}

.home-2027-showcase-state {
	position:fixed;
	right:23px;
	top:50%;
	z-index:22;
	display:flex;
	width:34px;
	flex-direction:column;
	gap:16px;
	padding:13px 0;
	align-items:center;
	justify-content:center;
	background:rgba(40,40,40,0.72);
	pointer-events:auto;
	transform:translateY(-50%);
}

.home-2027-showcase-state button {
	display:block;
	width:10px;
	height:10px;
	padding:0;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,0.82);
	cursor:pointer;
	opacity:1;
	transition:background 280ms ease, box-shadow 280ms ease;
}

.home-2027-showcase-state button.is-active {
	background:#00abe9;
	box-shadow:0 0 0 13px rgba(0,171,233,0.22);
}

.home-2027-hero {
	position:relative;
	display:flex;
	align-items:center;
	flex:1 1 auto;
	min-height:100%;
	padding:120px clamp(34px, 7vw, 110px) 228px;
	overflow:hidden;
	box-sizing:border-box;
}

.home-2027-bg {
	position:absolute;
	inset:0;
	z-index:1;
	background-image:url('../images/accueil/accueil-tableau-01.jpg');
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	filter:none;
	transform:scale(1.01);
}

.home-2027-slide--references .home-2027-bg {
	background-image:url('../images/accueil/accueil-tableau-02.jpg');
}

.home-2027-slide--news .home-2027-bg {
	background-image:url('../images/accueil/accueil-tableau-03.jpg');
}

.home-2027-overlay {
	position:absolute;
	inset:0;
	z-index:2;
	background:
		linear-gradient(90deg, rgba(14,14,14,0.88) 0%, rgba(14,14,14,0.62) 43%, rgba(14,14,14,0.18) 100%),
		linear-gradient(180deg, rgba(0,0,0,0.2), rgba(0,0,0,0.52));
}

.home-2027-hero__content {
	position:relative;
	z-index:4;
	width:min(680px, 72%);
}

.home-2027-kicker {
	margin:0 0 18px;
	color:#00abe9;
	font-family:'Mukta Vaani', sans-serif;
	font-size:12px;
	font-weight:800;
	letter-spacing:3px;
	line-height:1.4;
	text-align:left;
	text-transform:uppercase;
}

.home-2027-hero h2 {
	margin:0 0 24px;
	color:#fff;
	font-family:'Oswald', sans-serif;
	font-size:clamp(58px, 8vw, 118px);
	font-weight:900;
	line-height:0.92;
	text-align:left;
	letter-spacing:0;
}

.home-2027-brand,
.home-2027-brand__s {
	display:inline-block;
}

.home-2027-brand__s {
	transform:scaleX(-1);
	transform-origin:center;
}

.home-2027-lead {
	max-width:620px;
	margin:0;
	color:rgba(255,255,255,0.86);
	font-size:20px;
	font-weight:700;
	line-height:1.45;
	text-align:left;
}

.home-2027-actions {
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:34px;
}

.home-2027-actions a {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:0 18px;
	background:#00abe9;
	color:#111;
	font-family:'Mukta Vaani', sans-serif;
	font-size:11px;
	font-weight:900;
	letter-spacing:0;
	line-height:1;
	text-transform:uppercase;
	text-decoration:none;
	transition:background 260ms ease, color 260ms ease, transform 260ms ease;
}

.home-2027-actions a + a {
	background:transparent;
	color:#fff;
	border:1px solid rgba(255,255,255,0.42);
}

.home-2027-actions a:hover,
.home-2027-actions a:focus {
	transform:translateY(-2px);
}

.home-2027-actions a + a:hover,
.home-2027-actions a + a:focus {
	border-color:#00abe9;
	color:#00abe9;
}

.home-2027-side {
	position:absolute;
	right:clamp(30px, 5vw, 76px);
	bottom:230px;
	z-index:4;
	display:grid;
	gap:10px;
	min-width:210px;
	padding-left:24px;
	border-left:2px solid #00abe9;
}

.home-2027-side span {
	display:block;
	color:rgba(255,255,255,0.78);
	font-size:12px;
	font-weight:800;
	letter-spacing:2px;
	line-height:1.35;
	text-transform:uppercase;
}

.home-2027-entries {
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	z-index:9;
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:1px;
	background:rgba(255,255,255,0.1);
	padding:0 0 0 0;
	backdrop-filter:blur(4px);
}

.home-2027-entries a {
	position:relative;
	display:block;
	min-height:170px;
	padding:30px 34px 32px;
	background:rgba(24,24,24,0.26);
	color:#fff;
	text-decoration:none;
	overflow:hidden;
	backdrop-filter:blur(3px);
	transition:background 260ms ease, color 260ms ease;
}

.home-2027-entries a:after {
	content:'';
	position:absolute;
	left:34px;
	right:34px;
	bottom:24px;
	height:2px;
	background:#00abe9;
	opacity:0;
	transform:scaleX(0);
	transform-origin:left center;
	transition:opacity 260ms ease, transform 260ms ease;
}

.home-2027-entries span {
	display:block;
	margin:0 0 20px;
	color:#00abe9;
	font-family:'Oswald', sans-serif;
	font-size:18px;
	font-weight:800;
}

.home-2027-entries h3 {
	margin:0 0 10px;
	color:#fff;
	font-family:Georgia, serif;
	font-size:25px;
	font-weight:400;
	line-height:1.15;
}

.home-2027-entries p {
	max-width:320px;
	margin:0;
	color:rgba(255,255,255,0.62);
	font-size:13px;
	line-height:1.55;
	text-align:left;
}

.home-2027-entries a:hover,
.home-2027-entries a:focus {
	background:rgba(12,12,12,0.48);
}

.home-2027-entries a:hover:after,
.home-2027-entries a:focus:after {
	opacity:1;
	transform:scaleX(1);
}

.home-2027-entries a:hover h3,
.home-2027-entries a:focus h3 {
	color:#00abe9;
}

.home-2027-project-stage {
	position:absolute;
	top:-112px;
	left:0;
	right:0;
	bottom:0;
	z-index:5;
	display:grid;
	grid-template-columns:1fr 1.08fr 1fr;
	height:auto;
	min-height:0;
	background:#111;
	color:#fff;
	overflow:hidden;
}

.home-2027-projects-heading {
	position:absolute;
	left:clamp(44px, 5.5vw, 82px);
	top:38px;
	z-index:8;
	max-width:min(760px, calc(100% - 180px));
	pointer-events:none;
}

.home-2027-projects-heading p {
	margin:0;
	color:#fff;
	font-family:'Oswald', sans-serif;
	font-size:clamp(28px, 3.6vw, 54px);
	font-weight:900;
	line-height:1;
	text-align:left;
	letter-spacing:0;
	text-shadow:0 12px 30px rgba(0,0,0,0.52);
}

.home-2027-stage-card {
	position:relative;
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	min-height:100%;
	padding:clamp(44px, 5.5vw, 82px) clamp(44px, 5.5vw, 82px) 282px;
	overflow:hidden;
	color:#fff;
	text-decoration:none;
	border-right:1px solid rgba(255,255,255,0.1);
	box-sizing:border-box;
}

.home-2027-stage-card:before {
	content:'';
	position:absolute;
	inset:0;
	z-index:2;
	background:linear-gradient(180deg, rgba(12,12,12,0.06), rgba(12,12,12,0.9));
	transition:background 360ms ease;
}

.home-2027-stage-card:after {
	display:none;
}

.home-2027-stage-card picture,
.home-2027-stage-card img {
	position:absolute;
	inset:0;
	z-index:1;
	width:100%;
	height:100%;
}

.home-2027-stage-card picture {
	display:block;
	overflow:hidden;
}

.home-2027-stage-card img {
	object-fit:cover;
	opacity:0.76;
	filter:grayscale(1);
	transform:scale(1.02);
	animation:homeStageImage 16s ease-in-out infinite alternate;
	transition:opacity 420ms ease, filter 420ms ease, transform 640ms ease;
}

.home-2027-slide--projects .home-2027-stage-card img {
	top:0;
	bottom:0;
	height:100%;
	transform-origin:center top;
}

.home-2027-stage-card--main img {
	opacity:0.88;
	animation-delay:-5s;
}

.home-2027-stage-card--side:nth-child(3) img {
	animation-delay:-9s;
}

.home-2027-stage-card h3,
.home-2027-stage-card p,
.home-2027-stage-card strong {
	position:relative;
	z-index:4;
}

.home-2027-stage-card h3 {
	margin:0 0 12px;
	color:#fff;
	font-family:'Oswald', sans-serif;
	font-size:clamp(32px, 4.4vw, 60px);
	font-weight:900;
	line-height:1;
	text-align:left;
	text-transform:uppercase;
	transition:color 280ms ease;
}

.home-2027-stage-card--main h3 {
	font-size:clamp(38px, 5vw, 72px);
}

.home-2027-stage-card p {
	max-width:430px;
	margin:0 0 24px;
	color:rgba(255,255,255,0.8);
	font-size:clamp(15px, 1.55vw, 22px);
	font-weight:800;
	line-height:1.32;
	text-align:left;
}

.home-2027-stage-card strong {
	align-self:flex-start;
	padding:13px 28px 12px;
	background:#00abe9;
	color:#111;
	font-family:'Mukta Vaani', sans-serif;
	font-size:11px;
	font-weight:900;
	line-height:1;
	text-transform:uppercase;
	letter-spacing:1px;
	opacity:0;
	transform:translateY(10px);
	transition:opacity 280ms ease, transform 280ms ease, background 280ms ease;
}

.home-2027-stage-card:hover:before,
.home-2027-stage-card:focus:before {
	background:linear-gradient(180deg, rgba(0,171,233,0.08), rgba(12,12,12,0.84));
}

.home-2027-stage-card:hover:after,
.home-2027-stage-card:focus:after {
	width:110px;
}

.home-2027-stage-card:hover img,
.home-2027-stage-card:focus img {
	opacity:0.96;
	filter:grayscale(0);
	transform:scale(1.07);
}

.home-2027-stage-card:hover h3,
.home-2027-stage-card:focus h3 {
	color:#00abe9;
}

.home-2027-stage-card:hover strong,
.home-2027-stage-card:focus strong {
	opacity:1;
	transform:translateY(0);
}

.home-2027-arrow {
	position:fixed !important;
	top:50% !important;
	z-index:22 !important;
	display:flex !important;
	width:42px !important;
	height:42px !important;
	opacity:1 !important;
	visibility:visible !important;
	align-items:center;
	justify-content:center;
	padding:0;
	border:1px solid rgba(255,255,255,0.2);
	border-radius:50%;
	background:rgba(28,28,28,0.58);
	color:#00abe9;
	font-family:Arial, sans-serif;
	font-size:30px;
	line-height:1;
	cursor:pointer;
	pointer-events:auto;
	transform:translateY(-50%);
	transition:background 260ms ease, border-color 260ms ease, color 260ms ease, transform 260ms ease;
}

.home-2027-arrow--prev {
	left:96px !important;
}

.home-2027-arrow--next {
	right:96px !important;
}

.home-2027-arrow span {
	display:block;
	margin-top:-4px;
}

.home-2027-arrow:hover,
.home-2027-arrow:focus {
	background:rgba(0,171,233,0.82);
	border-color:#00abe9;
	color:#111;
	transform:translateY(-50%) scale(1.04);
}

@keyframes homeStageImage {
	from {
		transform:scale(1.02) translate3d(0, 0, 0);
	}
	to {
		transform:scale(1.08) translate3d(-1.5%, 0, 0);
	}
}

@media only screen and (max-width: 1180px) {
	.home-2027-side {
		display:none;
	}

	.home-2027-hero__content {
		width:min(720px, 88%);
	}

	.home-2027-stage-card {
		padding:42px 32px 260px;
	}

	.home-2027-stage-card h3,
	.home-2027-stage-card--main h3 {
		font-size:clamp(30px, 3.8vw, 48px);
	}

	.home-2027-stage-card p {
		font-size:clamp(14px, 1.55vw, 18px);
	}
}

@media only screen and (max-width: 900px) {
	.home-2027-hero {
		min-height:60vh;
		padding:112px 32px 54px;
	}

	.home-2027-overlay {
		background:linear-gradient(180deg, rgba(14,14,14,0.72), rgba(14,14,14,0.7));
	}

	.home-2027-hero__content {
		width:100%;
	}

	.home-2027-lead {
		font-size:18px;
	}

	.home-2027-entries {
		grid-template-columns:1fr;
	}

	.home-2027-entries a {
		min-height:0;
		padding:25px 32px 28px;
	}

	.home-2027-project-stage {
		grid-template-columns:1fr;
		grid-template-rows:repeat(3, minmax(0, 1fr));
		min-height:100%;
	}

	.home-2027-stage-card {
		min-height:0;
		padding:48px 32px 42px;
	}

	.home-2027-stage-card:after {
		bottom:114px;
	}

	.home-2027-stage-card h3,
	.home-2027-stage-card--main h3 {
		font-size:30px;
	}

	.home-2027-stage-card p {
		margin-bottom:16px;
		font-size:15px;
	}

	.home-2027-stage-card strong {
		padding:10px 18px 9px;
	}
}

@media only screen and (max-width: 564px) {
	.home-2027-body:before,
	.home-2027-share,
	.home-2027-showcase-state,
	.home-2027-arrow,
	.home-2027-entries {
		display:none !important;
	}

	.home-2027-body #wrapper {
		overflow-x:hidden;
		overflow-y:auto;
		-webkit-overflow-scrolling:touch;
	}

	.home-2027-page,
	.home-2027-showcase {
		height:auto;
		min-height:calc(100svh - 80px);
		overflow:visible;
	}

	.home-2027-slide {
		position:absolute;
		inset:0;
	}

	.home-2027-slide:not(.home-2027-slide--intro) {
		display:none !important;
	}

	.home-2027-slide--intro {
		position:relative;
		inset:auto;
		z-index:2;
		display:flex !important;
		opacity:1 !important;
		visibility:visible !important;
		pointer-events:auto !important;
	}

	.home-2027-slide.is-active {
		position:relative;
		inset:auto;
	}

	.home-2027-hero {
		min-height:calc(100svh - 80px);
		padding:92px 22px 44px;
	}

	.home-2027-hero__content {
		width:100%;
		max-width:calc(100vw - 44px);
	}

	.home-2027-hero h2 {
		font-size:42px;
	}

	.home-2027-kicker {
		font-size:11px;
		letter-spacing:2px;
	}

	.home-2027-lead {
		max-width:100%;
		font-size:15px;
	}

	.home-2027-actions {
		flex-direction:column;
		align-items:flex-start;
	}

	.home-2027-entries a {
		padding-left:22px;
		padding-right:22px;
	}

	.home-2027-entries {
		position:relative;
		left:auto;
		right:auto;
		bottom:auto;
	}

	.home-2027-projects-heading {
		position:relative;
		left:auto;
		top:auto;
		max-width:none;
		padding:34px 22px 18px;
		background:#111;
	}

	.home-2027-projects-heading p {
		font-size:30px;
		line-height:1.06;
	}

	.home-2027-project-stage {
		position:relative;
		top:auto;
		left:auto;
		right:auto;
		bottom:auto;
		min-height:auto;
	}

	.home-2027-stage-card {
		min-height:260px;
		padding:42px 22px 36px;
	}

	.home-2027-stage-card:after {
		left:22px;
		bottom:128px;
	}

	.home-2027-stage-card span {
		top:32px;
		right:22px;
	}

	.home-2027-stage-card h3,
	.home-2027-stage-card--main h3 {
		font-size:28px;
	}

	.home-2027-stage-card p {
		font-size:13px;
	}

}
