/* ==========================================================
   ACT2ECO Elementor Blocks — styles partagés
   ========================================================== */

/* --- Bloc : Choisissez votre profil (a2e_profile_cards) --- */

.a2e-profile-cards { width: 100%; font-family: inherit; }
.a2e-profile-cards *, .a2e-profile-cards *::before, .a2e-profile-cards *::after { box-sizing: border-box; }

.a2e-pc-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 56px; }
.a2e-pc-eyebrow { margin-bottom: 28px; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: #0E1730; }
.a2e-pc-heading { font-size: clamp(34px, 4.6vw, 60px); font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; margin: 0; color: #0E1730; }
.a2e-pc-intro { max-width: 330px; font-size: 16px; line-height: 1.5; margin: 0 0 8px; color: #6A7283; }

.a2e-pc-cards { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #DFE4EB; }
.a2e-pc-card { position: relative; display: flex; flex-direction: column; padding: 40px 24px; border-left: 1px solid #DFE4EB; transition: background-color 0.25s ease; }
.a2e-pc-card:first-child { padding-left: 0; border-left: none; }

.a2e-pc-icon { display: flex; align-items: center; font-size: 36px; line-height: 1; margin-bottom: 44px; color: #192BCD; }
.a2e-pc-icon svg { display: block; width: 36px; height: 36px; flex-shrink: 0; }
.a2e-pc-icon .a2e-pc-svg { fill: none; stroke: currentColor; }
.a2e-pc-icon--custom svg { fill: currentColor; }

.a2e-pc-title { font-size: 26px; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 16px; color: #0E1730; }
.a2e-pc-description { max-width: 240px; font-size: 15px; line-height: 1.55; margin: 0 0 48px; color: #6A7283; }

.a2e-pc-arrow { display: inline-flex; margin-top: auto; width: 26px; color: #0E1730; text-decoration: none; transition: color 0.25s ease; }
.a2e-pc-arrow-svg { display: block; width: 26px; height: 26px; }
a.a2e-pc-arrow::after { content: ""; position: absolute; inset: 0; }
.a2e-pc-card.has-link { cursor: pointer; }
.a2e-pc-card:hover, .a2e-pc-card:focus-within { background-color: #F6F8FB; }
.a2e-pc-card:hover .a2e-pc-arrow, .a2e-pc-card:focus-within .a2e-pc-arrow { color: #192BCD; }
/* Hover avec image : image + voile bleu, texte blanc, icône verte, ombre */
.a2e-pc-card { isolation: isolate; transition: background-color 0.25s ease, padding-left 0.3s ease, box-shadow 0.3s ease; }
.a2e-pc-title, .a2e-pc-description, .a2e-pc-icon, .a2e-pc-arrow { transition: color 0.3s ease; }
.a2e-pc-bg { position: absolute; inset: 0; z-index: -1; background-size: cover; background-position: center; opacity: 0; transition: opacity 0.35s ease; }
.a2e-pc-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--a2e-ov-from, rgba(14,23,80,0.88)), var(--a2e-ov-to, rgba(25,43,205,0.8))); }
.a2e-profile-cards .a2e-pc-card.has-bg:hover, .a2e-profile-cards .a2e-pc-card.has-bg:focus-within { z-index: 2; box-shadow: 0 18px 48px rgba(14,23,48,0.22); }
.a2e-profile-cards .a2e-pc-card.has-bg:first-child:hover { padding-left: 24px; }
.a2e-profile-cards .a2e-pc-card.has-bg:hover .a2e-pc-bg, .a2e-profile-cards .a2e-pc-card.has-bg:focus-within .a2e-pc-bg { opacity: 1; }
.a2e-profile-cards .a2e-pc-card.has-bg:hover .a2e-pc-title, .a2e-profile-cards .a2e-pc-card.has-bg:hover .a2e-pc-description, .a2e-profile-cards .a2e-pc-card.has-bg:hover .a2e-pc-arrow { color: #FFFFFF; }
.a2e-profile-cards .a2e-pc-card.has-bg:hover .a2e-pc-icon { color: #BCE94C; }

@media (max-width: 1024px) {
	.a2e-pc-header { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 40px; }
	.a2e-pc-cards { grid-template-columns: repeat(2, 1fr); }
	.a2e-pc-card:nth-child(3) { padding-left: 0; border-left: none; }
	.a2e-profile-cards .a2e-pc-card.has-bg:nth-child(3):hover { padding-left: 24px; }
	.a2e-pc-card:nth-child(n+3) { border-top: 1px solid #DFE4EB; }
}
@media (max-width: 600px) {
	.a2e-pc-cards { grid-template-columns: 1fr; }
	.a2e-pc-card, .a2e-pc-card:nth-child(3) { padding: 32px 0; border-left: none; }
	.a2e-pc-card:nth-child(n+2) { border-top: 1px solid #DFE4EB; }
	.a2e-pc-icon { margin-bottom: 28px; }
	.a2e-profile-cards .a2e-pc-card.has-bg:hover { padding-left: 24px; padding-right: 24px; }
	.a2e-pc-description { margin-bottom: 32px; }
}

/* --- Bloc : Engagement image + texte (a2e_engagement_split) ---
   CORRIGÉ : l'image est en position absolue (top/bottom à 0) sur
   le panneau de gauche, ancrée au bloc parent (position: relative).
   Elle couvre donc TOUJOURS 100% de la hauteur réelle du bloc,
   même quand le texte à droite le fait grandir au-delà de la
   hauteur minimale — sans dépendre d'un stretch flexbox que
   certains styles globaux d'Elementor (img { height:auto }) peuvent
   neutraliser. --- */

.a2e-engagement-split {
	position: relative;
	overflow: hidden;
	min-height: 545px;
	width: 100%;
	font-family: inherit;
}

.a2e-engagement-split *, .a2e-engagement-split *::before, .a2e-engagement-split *::after { box-sizing: border-box; }

.a2e-es-media {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 50%;
	overflow: hidden;
}

.a2e-es-media img {
	position: absolute !important;
	inset: 0 !important;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	object-position: center center;
}

.a2e-es-badge {
	position: absolute;
	left: 30px;
	bottom: 8px;
	padding: 14px 16px;
	background-color: #1F2F56;
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	z-index: 1;
}

.a2e-es-content {
	margin-left: 50%;
	width: 50%;
	min-height: 545px;
	display: flex;
	align-items: center;
	background-color: #F6F8FB;
	padding: 72px 64px 60px;
}

.a2e-es-inner { width: 100%; }

.a2e-es-eyebrow { margin-bottom: 30px; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: #0E1730; }
.a2e-es-heading { margin: 0 0 28px; font-size: clamp(30px, 3.4vw, 44px); font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; }
.a2e-es-heading-1, .a2e-es-heading-2 { display: block; }
.a2e-es-heading-1 { color: #0C1D46; }
.a2e-es-heading-2 { color: #192BCD; }
.a2e-es-description { max-width: 500px; margin: 0 0 40px; font-size: 16px; line-height: 1.5; color: #6A7283; }

.a2e-es-features { display: flex; flex-direction: column; gap: 12px; margin: 0 0 42px; padding: 0; list-style: none; }
.a2e-es-feature { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; }
.a2e-es-check { display: inline-flex; flex-shrink: 0; color: #192BCD; }
.a2e-es-check-svg { display: block; width: 15px; height: 15px; }
.a2e-es-feature-text { font-size: 16px; line-height: 1.5; color: #0E1730; }

.a2e-es-btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; min-width: 205px; height: 49px; padding: 0 24px 0 20px; background-color: #192BCD; color: #FFFFFF; font-size: 15px; font-weight: 700; line-height: 1; text-decoration: none; transition: background-color 0.25s ease; }
a.a2e-es-btn { cursor: pointer; }
a.a2e-es-btn:hover, a.a2e-es-btn:focus-visible { background-color: #0F1F9E; color: #FFFFFF; }
.a2e-es-arrow-svg { display: block; flex-shrink: 0; transition: transform 0.25s ease; }
a.a2e-es-btn:hover .a2e-es-arrow-svg { transform: translate(2px, -2px); }

@media (max-width: 900px) {
	.a2e-engagement-split { min-height: 0; }
	.a2e-es-media { position: static; width: 100%; height: 320px; }
	.a2e-es-content { margin-left: 0; width: 100%; min-height: 0; padding: 48px 24px 44px; }
}

/* --- Bloc : Nos solutions par besoin (a2e_solutions_grid) --- */

.a2e-solutions-grid { width: 100%; font-family: inherit; }
.a2e-solutions-grid *, .a2e-solutions-grid *::before, .a2e-solutions-grid *::after { box-sizing: border-box; }

.a2e-sg-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px; }
.a2e-sg-eyebrow { margin-bottom: 36px; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: #0E1730; }
.a2e-sg-heading { margin: 0; font-size: clamp(34px, 4.6vw, 60px); font-weight: 700; line-height: 1.05; letter-spacing: -0.035em; color: #0C1D46; }

.a2e-sg-top-link, .a2e-sg-footer-link, .a2e-sg-item-link { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.a2e-sg-arrow { display: block; flex-shrink: 0; transition: transform 0.2s ease; }
a.a2e-sg-top-link:hover .a2e-sg-arrow, a.a2e-sg-footer-link:hover .a2e-sg-arrow, a.a2e-sg-item-link:hover .a2e-sg-arrow { transform: translate(2px, -2px); }
.a2e-sg-top-link { flex-shrink: 0; margin-bottom: 10px; padding-bottom: 12px; border-bottom: 2px solid #0E1730; font-size: 16px; font-weight: 700; color: #0E1730; }

.a2e-sg-cards { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #DFE4EB; }
.a2e-sg-card { display: flex; flex-direction: column; align-items: flex-start; padding: 32px 24px 28px; border-left: 1px solid #DFE4EB; }
.a2e-sg-card:first-child { padding-left: 0; border-left: none; }
.a2e-sg-number { margin-bottom: 24px; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; color: #192BCD; }
.a2e-sg-title { min-height: 2.3em; margin: 0 0 24px; font-size: 22px; font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; color: #0E1730; }
.a2e-sg-description { margin: 0 0 28px; font-size: 15px; line-height: 1.5; color: #6A7283; }
.a2e-sg-item-link { margin-top: auto; font-size: 15px; font-weight: 700; color: #192BCD; }

.a2e-sg-footer { margin-top: 36px; }
.a2e-sg-footer-link { padding-bottom: 2px; border-bottom: 1px solid #0E1730; font-size: 16px; font-weight: 400; color: #0E1730; }

@media (max-width: 1024px) {
	.a2e-sg-cards { grid-template-columns: repeat(2, 1fr); }
	.a2e-sg-card:nth-child(3) { padding-left: 0; border-left: none; }
	.a2e-sg-card:nth-child(n+3) { border-top: 1px solid #DFE4EB; }
}
@media (max-width: 600px) {
	.a2e-sg-header { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 32px; }
	.a2e-sg-top-link { margin-bottom: 0; }
	.a2e-sg-cards { grid-template-columns: 1fr; }
	.a2e-sg-card, .a2e-sg-card:nth-child(3) { padding: 28px 0; border-left: none; }
	.a2e-sg-card:nth-child(n+2) { border-top: 1px solid #DFE4EB; }
	.a2e-sg-title { min-height: 0; }
}

/* --- Nouveaux blocs : styles ajoutés ci-dessous à chaque mise à jour --- */
