:root{
	--spide-blue:#0000FF;
	--spide-black:#2D2D2D;
	--spide-white:#F1F1F1;
	--spide-foot:#F9F9F9;
}

.spide-footer,
.spide-footer *,
.spide-footer *::before,
.spide-footer *::after{ box-sizing:border-box; }

.spide-footer{
	background:var(--spide-black);
	font-family:"Montserrat",sans-serif;
	color:var(--spide-foot);
	position:relative;
}

/* ============ CARTE + ÉPINGLE ============ */
.spide-map{
	position:relative;
	line-height:0;
}
.spide-map__img{
	width:100%;
	aspect-ratio:1440 / 442;  /* hauteur bornée (maquette) ; le crop cover est proportionnel */
	object-fit:cover;
	object-position:center;
	display:block;
	filter:grayscale(1) contrast(.98);
}
.spide-map__pin{
	position:absolute;
	left:52.5%;              /* centré sur le marqueur dessiné dans la carte (Nancy) */
	top:37%;                 /* recalculé pour le crop cover de l'aspect-ratio ci-dessus */
	transform:translate(-50%,-50%);
	width:55px;
	height:55px;
	border-radius:9999px;
	background:var(--spide-blue);
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.spide-map__pin img{
	width:26px;
	height:auto;
	display:block;
}

/* ============ BLOC CONTACT (bleu) ============ */
.spide-contact{
	position:relative;
	padding:0 clamp(16px,5.5vw,80px);
}
.spide-contact__panel{
	max-width:1440px;
	margin:clamp(-72px,-5vw,-48px) auto 0;
	position:relative;
	z-index:2;
	color:var(--spide-white);
	background:
		radial-gradient(rgba(241,241,241,.14) 1.1px, transparent 1.2px) 0 0 / 22px 22px,
		var(--spide-blue);
	padding:clamp(32px,4vw,53px) clamp(24px,5vw,89px);
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,440px);
	gap:clamp(36px,6vw,90px);
	align-items:start;
}

/* --- Colonne gauche --- */
.spide-contact__overline{
	display:block;
	font-size:14px;
	font-weight:600;
}
.spide-contact__title{
	margin:24px 0 0;
	font-size:clamp(22px,2.1vw,30px);
	font-weight:700;
	line-height:1.2;
	text-transform:uppercase;
}
.spide-contact__lead{
	margin:24px 0 0;
	font-size:16px;
	font-weight:500;
	line-height:1.4;
}
.spide-contact__coords{
	margin-top:clamp(30px,5vw,64px);
	padding-top:clamp(20px,3vw,30px);
	border-top:1px solid rgba(241,241,241,.64);
	display:flex;
	flex-wrap:wrap;
	gap:clamp(24px,7vw,90px);
}
.spide-contact__addr{
	font-style:normal;
	font-size:16px;
	font-weight:600;
	line-height:1.4;
}
.spide-contact__reach{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.spide-contact__phone{
	font-size:18px;
	font-weight:600;
	text-transform:uppercase;
}
.spide-contact__mail{
	font-size:16px;
	font-weight:600;
}

/* --- Formulaire (colonne droite) --- */
.spide-contact__form-wrap{ width:100%; }
.spide-contact__form{
	display:flex;
	flex-direction:column;
	gap:20px;
}
.spide-contact__row{
	display:flex;
	gap:20px;
}
.spide-field{
	flex:1 1 0;
	min-width:0;
	width:100%;
	background:transparent;
	border:1px solid var(--spide-white);
	border-radius:0;
	color:var(--spide-white);
	font-family:inherit;
	font-size:14px;
	line-height:1.36;
	padding:11px 21px;
	transition:border-color .15s ease, background .15s ease;
}
.spide-field--area{
	min-height:130px;
	resize:vertical;
}
.spide-field::placeholder{
	color:#DCDCDC;
	font-style:italic;
	opacity:1;
}
.spide-field:focus{
	outline:none;
	border-color:var(--spide-white);
	background:rgba(255,255,255,.07);
}
.spide-contact__submit{
	margin-top:2px;
	width:100%;
	background:var(--spide-black);
	color:var(--spide-white);
	border:0;
	font-family:inherit;
	font-size:14px;
	font-weight:600;
	letter-spacing:.02em;
	padding:18px 33px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	cursor:pointer;
	transition:background .15s ease;
}
.spide-contact__submit svg{ display:block; }

/* honeypot */
.spide-hp{
	position:absolute !important;
	left:-9999px !important;
	width:1px;
	height:1px;
	overflow:hidden;
}

/* notices */
.spide-contact__notice{
	margin:0 0 18px;
	padding:13px 18px;
	font-size:14px;
	font-weight:600;
	line-height:1.4;
}
.spide-contact__notice--ok{ background:rgba(255,255,255,.16); }
.spide-contact__notice--err{ background:rgba(0,0,0,.28); }

/* ============ NAVIGATION DE PIED DE PAGE ============ */
.spide-foot{
	padding:clamp(44px,6vw,64px) clamp(16px,5.5vw,80px) 0;
}
.spide-foot__inner{
	max-width:1440px;
	margin:0 auto;
	display:flex;
	gap:clamp(40px,6vw,79px);
	align-items:flex-start;
}
.spide-foot__logo{ flex:0 0 auto; }
.spide-foot__logo img{
	width:clamp(190px,18vw,286px);
	height:auto;
	display:block;
}
.spide-foot__cols{
	flex:1 1 auto;
	min-width:0;
}
.spide-foot__top{
	display:flex;
	gap:clamp(40px,7vw,84px);
	flex-wrap:wrap;
	padding-bottom:24px;
	border-bottom:1px solid rgba(241,241,241,.26);
}
.spide-foot__heading{
	display:block;
	margin:0 0 24px;
	font-size:16px;
	font-weight:600;
	line-height:1.4;
	color:var(--spide-foot);
}
.spide-foot__list{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.spide-foot__list a{
	font-size:16px;
	font-weight:500;
	line-height:1.4;
	color:var(--spide-foot);
	text-decoration:none;
}
.spide-foot__list a:hover{ text-decoration:underline; }
.spide-foot__secteurs-grid{
	display:flex;
	gap:clamp(20px,3vw,24px);
}
.spide-foot__secteurs-grid .spide-foot__list{ min-width:190px; }
.spide-foot__bottom-nav{
	display:flex;
	gap:clamp(40px,7vw,84px);
	padding-top:24px;
}
.spide-foot__heading--link{
	margin:0;
	text-decoration:none;
}
.spide-foot__heading--link:hover{ text-decoration:underline; }

/* ============ BAS DE PAGE — légal + partenaires ============ */
.spide-legal{
	padding:clamp(30px,4vw,40px) clamp(16px,5.5vw,80px) clamp(44px,5vw,60px);
}
.spide-legal__inner{
	max-width:1440px;
	margin:0 auto;
	padding-top:clamp(28px,3vw,38px);
	border-top:1px solid rgba(241,241,241,.26);
	display:flex;
	flex-wrap:wrap;
	gap:clamp(40px,8vw,128px);
	align-items:flex-start;
}
.spide-legal__brand{
	display:flex;
	flex-direction:column;
	gap:24px;
	max-width:340px;
}
.spide-legal__copy{
	margin:0;
	font-size:16px;
	font-weight:600;
	line-height:1.4;
}
.spide-legal__copy a{ color:inherit; text-decoration:underline; }
.spide-legal__links{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.spide-legal__links a{
	font-size:16px;
	font-weight:500;
	line-height:1.4;
	color:var(--spide-foot);
	text-decoration:none;
}
.spide-legal__links a:hover{ text-decoration:underline; }
.spide-legal__heading{
	margin:0 0 24px;
	font-size:16px;
	font-weight:600;
	line-height:1.4;
}
.spide-legal__partners{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	gap:24px;
}
.spide-legal__partners a{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:16px;
	font-weight:600;
	line-height:1.4;
	color:var(--spide-foot);
	text-decoration:underline;
}
.spide-legal__partners svg{ flex:0 0 auto; }

/* ============ Neutralisation du reset hello-elementor (#c36) ============ */
.spide-footer a,
.spide-footer a:hover,
.spide-footer a:focus{ color:var(--spide-foot); }
.spide-contact__panel a,
.spide-contact__panel a:hover,
.spide-contact__panel a:focus{ color:var(--spide-white); }


/* ============ RESPONSIVE ============ */
@media (max-width:980px){
	.spide-contact__panel{
		grid-template-columns:1fr;
		gap:clamp(28px,5vw,40px);
	}
}
@media (max-width:860px){
	.spide-foot__inner{
		flex-direction:column;
		gap:36px;
	}
	.spide-foot__top{ gap:32px; }
}
@media (max-width:640px){
	.spide-contact__row{
		flex-direction:column;
		gap:20px;
	}
	.spide-contact__coords{
		flex-direction:column;
		gap:24px;
	}
	.spide-foot__top{
		flex-direction:column;
		gap:32px;
	}
	.spide-foot__secteurs-grid{
		flex-direction:column;
		gap:8px;
	}
	.spide-foot__bottom-nav{ gap:32px; }
	.spide-legal__inner{ gap:40px; }
	.spide-legal__partners{ gap:16px 24px; }
	/* Mobile : carte plus haute (ratio portrait) — on zoome, on rogne les bords */
	.spide-map__img{
		aspect-ratio:1 / 1.15;   /* crop horizontal : le vertical est exact, le marqueur reste à sa hauteur */
	}
	.spide-map__pin{
		left:55.3%;              /* recalculé pour le crop horizontal de l'aspect-ratio mobile */
		top:40.5%;
		width:46px;
		height:46px;
	}
	.spide-map__pin img{ width:22px; }
}
