:root{
	--blue:#18a7cf;
	--blue-dark:#0f88ad;
	--orange:#f2b233;
	--text:#2b2f33;
	--muted:#6c7a86;
	--bg:#ffffff;
	--soft:#f5f9fb;
	--card:#ffffff;
	--border:rgba(16, 32, 44, .10);
	--shadow:0 14px 34px rgba(16, 32, 44, .08);
	--radius:18px;
	--max:1180px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }
img{ max-width:100%; display:block; }

.page{ width:100%; }
.container{ width:100%; max-width:var(--max); margin:0 auto; padding:0 18px; }

.center{ display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap; }
.mt-20{ margin-top:20px; }
.mt-28{ margin-top:28px; }
.mt-32{ margin-top:32px; }

.h2-center{
	text-align: center;
    color: var(--blue);
    font-size: 25px;
    line-height: 1.15;
    margin: 0 0 30px 0;
    letter-spacing: .2px;
    text-transform: uppercase !important;
}
.h3-center{
	text-align:center;
	color:#4a555e;
	font-size:20px;
	margin:18px 0 12px;
}
.p-center{
	text-align:center;
	margin:0 0 14px 0;
}
.muted{ color:var(--muted); }

.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	border-radius:12px;
	padding:12px 18px;
	font-weight:800;
	text-decoration:none;
	border:1px solid transparent;
	cursor:pointer;
	transition:transform .05s ease, filter .15s ease, background .15s ease, border-color .15s ease;
	user-select:none;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{
	background:var(--blue);
	color:#fff;
	box-shadow:0 10px 22px rgba(24,167,207,.20);
	text-transform: uppercase;
}
.btn-primary:hover{ filter:brightness(0.98); background:var(--blue-dark); }
.btn-orange{
	background:var(--orange);
	color:#fff;
	box-shadow:0 10px 22px rgba(242,178,51,.22);
	text-transform: uppercase;
}
.btn-orange:hover{ filter:brightness(.98); }
.btn-lg{ padding:14px 22px; border-radius:14px; font-size:16px;     text-transform: uppercase;}

.btn-pill{
	background:var(--orange);
	color:#fff;
	border-radius:12px;
	padding:12px 18px;
	min-width:170px;
	text-transform: uppercase;
}
.btn-pill:hover{ filter:brightness(.98); }

.select{
	width:min(520px, 100%);
	height:38px;
	border-radius:8px;
	border:1px solid var(--border);
	background:#fff;
	padding:0 12px;
	color:#4a555e;
	outline:none;
}

.block{
	padding:54px 0;
}
.block-map{
	padding:44px 0 54px;
}

/* HERO */
.hero{
	position:relative;
	min-height:190px;
	overflow:hidden;
	background:linear-gradient(180deg, rgba(10,25,35,.05), rgba(10,25,35,0));
}
.hero-bg{
	position:absolute;
	inset:0;
	z-index:0;
}
.hero-bg-img{
	width:100%;
	height:100%;
	object-fit:cover;
	filter:saturate(1.02);
	opacity:.35;
}
.hero-inner{
	position:relative;
	z-index:1;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:22px;
	padding:26px 18px;
}
.hero-left{ flex:1; min-width:280px; }
.hero-right{ width:min(380px, 40%); display:flex; justify-content:flex-end; }
.hero-illustration{ width:100%; max-width:360px; height:auto; }

.hero-title{
	margin:0 0 14px 0;
	font-size:40px;
	line-height:1.05;
	letter-spacing:.2px;
	color:#3b434a;
}
h1.hero-title{
	text-align: left !important;
}
.hero-title-accent{
	color:var(--orange);
	font-weight:900;
}

/* MAP */
.map-controls{
	display:flex;
	justify-content:center;
	margin:14px 0 18px;
}
.map-card{
	background:var(--card);
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:18px;
}
.map-surface{
	position:relative;
	border-radius:18px;
	overflow:hidden;
	background:#fff;
	min-height:330px;
	border:1px solid rgba(16,32,44,.10);
}
.ct-map{
	width:100%;
	height:330px;
}
.map-overlay{
	position:absolute;
	inset:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:10px;
	background:rgba(255,255,255,.88);
	backdrop-filter: blur(2px);
}
.map-overlay.hidden{ display:none; }
.map-loading-text{
	color:#8a98a3;
	font-weight:700;
	font-size:14px;
}
.spinner{
	width:28px; height:28px;
	border-radius:50%;
	border:3px solid rgba(24,167,207,.25);
	border-top-color: var(--blue);
	animation:spin 1s linear infinite;
}
@keyframes spin { to{ transform:rotate(360deg); } }

.map-actions{
	display:flex;
	justify-content:center;
	margin-top:16px;
}

/* HOW TO */
.howto{ margin-top:28px; }
.checklist{
	list-style:none;
	padding:0;
	margin:14px auto 0;
	max-width:640px;
	color:#4a555e;
}
.checklist li{
	position:relative;
	padding-left:34px;
	margin:10px 0;
	line-height:1.5;
}
.checklist li:before{
	content:"";
	position:absolute;
	left:0;
	top:4px;
	width:18px;
	height:18px;
	border-radius:4px;
	background:rgba(24,167,207,.12);
	border:2px solid rgba(24,167,207,.35);
}
.checklist li:after{
	content:"✓";
	position:absolute;
	left:4px;
	top:0px;
	color:var(--blue);
	font-weight:900;
	font-size:16px;
}

/* PROFILES + TRUST */
.block-profiles{
	background:
		radial-gradient(circle at 15% 20%, rgba(24,167,207,.10), transparent 40%),
		radial-gradient(circle at 80% 30%, rgba(242,178,51,.10), transparent 40%),
		linear-gradient(180deg, #fff, #fff);
}
.profile-buttons{
	display:flex;
	justify-content:center;
	gap:14px;
	flex-wrap:wrap;
    margin: 30px 0 30px;
}

.trust-cards{
	margin-top:18px;
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:18px;
}
.trust-card{
	background:rgba(255,255,255,.92);
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:20px 18px;
	text-align:center;
	min-height:190px;
}
.trust-icon{
	width:70px;
	height:70px;
	border-radius:999px;
	margin:0 auto 10px;
	display:grid;
	place-items:center;
	/*background:rgba(242,178,51,.22);
	border:1px solid rgba(242,178,51,.35);*/
}
.trust-icon img{ width:70px; height:70px; object-fit:contain; }
.trust-card h3{
	margin:8px 0 10px;
	font-size:18px;
	color:#47525a;
}
.trust-card p{
	margin:0;
	color:#6b7883;
	line-height:1.5;
	font-size:14px;
}

/* ENGAGEMENT */
.block-engagement{
	background:#fff;
	position:relative;
	overflow:hidden;
}
.engagement{
	display:grid;
	grid-template-columns: 1.35fr .65fr;
	gap:18px;
	align-items:stretch;
}
.engagement-left{
	display:flex;
	flex-direction:column;
	gap:40px;
}
.engagement-item{
	display:flex;
	gap:14px;
	align-items:flex-start;
}
.engagement-badge{
	width:80px;
	height:80px;
	border-radius:999px;
	/*background:rgba(24,167,207,.15);
	border:2px solid rgba(24,167,207,.25);*/
	display:grid;
	place-items:center;
	flex:0 0 auto;
}
.engagement-badge img{
	width:80px;
	height:80px;
	object-fit:contain;
}
.engagement-text h3{
	margin:0 0 6px;
	color:#4a555e;
	font-size:20px;
}
.engagement-text p{
	margin:0;
	color:#6b7883;
	line-height:1.55;
}

.assurance{ margin-top:10px; }
.assurance-title{
	font-weight:900;
	color:#4a555e;
	margin-bottom:8px;
}
.assurance-list{
	margin:0;
	padding-left:20px;
	color:#4a555e;
}
.assurance-list li{
	margin:6px 0;
}
.engagement-right{
	position:relative;
	display:flex;
	justify-content:flex-end;
	align-items:center;
}
.blob{
	width:100%;
	max-width:420px;
	opacity:1;
}

/* ABOUT */
.block-about{
	background:linear-gradient(180deg, #fff, var(--soft));
}
.about-top{
	background:#fff;
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:22px 20px;
}
.about-title{
	margin:0;
	font-size:30px;
	color:#3b434a;
	line-height:1.12;
}
.about-sub{
	color:var(--orange);
	font-weight:900;
	font-size:18px;
}
.about-lead{
	margin:12px 0 0;
	color:#4a555e;
	line-height:1.55;
}
.about-bullets{
	margin-top:14px;
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:10px 14px;
}
.bullet{
	background:rgba(24,167,207,.08);
	border:1px solid rgba(24,167,207,.18);
	border-radius:14px;
	padding:12px 12px;
	color:#4a555e;
	font-weight:700;
	line-height:1.45;
}

.about-split{
	margin-top:18px;
	display:grid;
	grid-template-columns:1.2fr .8fr;
	gap:18px;
	align-items:stretch;
}
.about-card{
	background:#fff;
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:20px 18px;
}
.about-card h3{
	margin:0 0 10px;
	color:var(--blue);
	font-size:22px;
}
.about-card h4{
	margin:14px 0 8px;
	color:#4a555e;
	font-size:16px;
}
.about-card p{
	margin:8px 0;
	color:#6b7883;
	line-height:1.6;
}
.about-card-visual{
	padding:0;
	overflow:hidden;
}
.about-photo{
	width:100%;
	height:100%;
	min-height:320px;
	object-fit:cover;
}

.about-atouts{
	margin-top:18px;
	background:#fff;
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:22px 20px;
}
.about-atouts h3{
	margin:0 0 8px;
	color:var(--blue);
	font-size:22px;
}
.atouts-grid{
	margin-top:14px;
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:14px;
}
.atout{
	border:1px solid rgba(16,32,44,.10);
	border-radius:18px;
	padding:14px 14px;
	background:rgba(245,249,251,.55);
}
.atout-title{
	color:#4a555e;
	font-weight:900;
	margin-bottom:8px;
}
.atout-text{
	color:#6b7883;
	line-height:1.55;
	font-size:14px;
}

/* RESPONSIVE */
@media (max-width: 980px){
	.hero-title{ font-size:34px; }
	.trust-cards{ grid-template-columns:1fr; }
	.engagement{ grid-template-columns:1fr; }
	.engagement-right{ display:none; }
	.about-bullets{ grid-template-columns:1fr; }
	.about-split{ grid-template-columns:1fr; }
	.atouts-grid{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
	.hero-inner{ flex-direction:column; align-items:flex-start; }
	.hero-right{ width:100%; justify-content:flex-start; }
	.hero-title{ font-size:30px; }
	.btn-pill{ min-width: unset; width:100%; }
	.profile-buttons{ width:100%; }
}


.map-card.map-card-bleed{
	width: 100vw;
	margin-left: calc(50% - 50vw);
	border-radius: 0;
	padding-left: 18px;
	padding-right: 18px;
}

.map-card.map-card-bleed .map-surface{
	width: 100vw;
	margin-left: calc(50% - 50vw);
	border-radius: 0;
	max-width: none;
}

.map-card.map-card-bleed .map-actions{
	max-width: var(--max);
	margin-left: auto;
	margin-right: auto;
}

.logo-strip{
	width: 100%;
	background: linear-gradient(180deg, rgba(24,167,207,.08), rgba(255,255,255,0));
	border-top: 1px solid rgba(16,32,44,.08);
	border-bottom: 1px solid rgba(16,32,44,.08);
	padding: 16px 0;
	overflow: hidden;
}

.logo-strip-inner{
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

.logo-track{
	display: flex;
	gap: 22px;
	align-items: center;
	width: max-content;
	padding: 6px 18px;
	animation: ct-marquee 28s linear infinite;
}

.logo-item{
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,.9);
	border: 1px solid rgba(16,32,44,.10);
	box-shadow: 0 10px 22px rgba(16,32,44,.06);
}

.logo-item img{
	height: 30px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
}

@keyframes ct-marquee{
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce){
	.logo-track{ animation: none; }
}

/* ===== FIX: La carte doit prendre la hauteur de la page ===== */

/* hauteur plein écran pour la map (desktop) */
:root{
	--map-vh: 72vh; /* ajuste à 80vh si tu veux encore plus grand */
}

/* la section map prend plus de place */
.block-map{
	padding: 20px 0 54px;
}

/* on force le cartouche map à pouvoir grandir */
.map-card{
	padding: 18px;
}

/* surface + container Leaflet prennent la hauteur voulue */
.map-surface{
	min-height: var(--map-vh) !important;
}

.ct-map{
	height: var(--map-vh) !important;
}

/* si tu veux VRAIMENT plein écran (sans limite) :
   décommente ces 2 lignes et commente --map-vh plus haut */
/*
.map-surface{ min-height: calc(100vh - 220px) !important; }
.ct-map{ height: calc(100vh - 220px) !important; }
*/

/* sur mobile, on réduit un peu pour éviter que ça soit trop “écran plein” */
@media (max-width: 980px){
	:root{ --map-vh: 58vh; }
}
@media (max-width: 560px){
	:root{ --map-vh: 52vh; }
}

.logo-item{
	height: 56px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,.9);
	border: 1px solid rgba(16,32,44,.10);
	box-shadow: 0 10px 22px rgba(16,32,44,.06);
}

.logo-item img{
	height: 34px;
	max-width: 150px;
	width:auto;
	object-fit: contain;
	display:block;
}

.logo-strip{
	width: 100%;
	background: linear-gradient(180deg, rgba(24,167,207,.08), rgba(255,255,255,0));
	border-top: 1px solid rgba(16,32,44,.08);
	border-bottom: 1px solid rgba(16,32,44,.08);
	padding: 28px 0 22px;
	overflow: hidden;
}

.logo-strip-title{
	text-align:center;
	color: var(--blue);
	font-size: 25px;
	line-height: 1.1;
	margin: 0 0 14px 0;
	letter-spacing: .6px;
	text-transform: uppercase;
	font-weight: 900;
}

.logo-strip-inner{
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

.logo-viewport{
	width: 100vw;
	overflow: hidden;
}

.logo-track{
	display:flex;
	gap: 30px;
	align-items:center;
	width: max-content;
	/* IMPORTANT : padding gauche = “apparition au centre” au chargement */
	padding: 10px 18px 10px 50vw;
	animation: ct-marquee 32s linear infinite;
	will-change: transform;
}

.logo-item{
	height: 88px;              /* + grand */
	display:flex;
	align-items:center;
	justify-content:center;
	padding: 14px 22px;        /* + grand */
	border-radius: 999px;
	background: rgba(255,255,255,.95);
	border: 1px solid rgba(16,32,44,.10);
	box-shadow: 0 10px 22px rgba(16,32,44,.06);
}

.logo-item img{
	height: 58px;              /* + grand */
	width:auto;
	max-width: 260px;          /* + grand */
	object-fit: contain;
	display:block;
}

@keyframes ct-marquee{
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce){
	.logo-track{ animation: none; }
}

/* Mobile : on réduit un peu */
@media (max-width: 560px){
	.logo-strip-title{ font-size: 22px; }
	.logo-item{ height: 74px; padding: 12px 18px; }
	.logo-item img{ height: 48px; max-width: 220px; }
	.logo-track{ padding-left: 35vw; }
}

.logo-track{ animation: ct-marquee 45s linear infinite; }

.logo-track{ gap: 40px; }



.logo-viewport{
	width: 100vw;
	overflow: hidden;
	position: relative;
}

.logo-track{
	display:flex;
	gap: 40px;
	align-items:center;
	width: max-content;
	padding: 10px 18px;     /* plus de padding-left 50vw ici */
	will-change: transform;
	transform: translateX(0);
}

/* Pas d’animation CSS */
.logo-track{ animation: none !important; }

@media (prefers-reduced-motion: reduce){
	.logo-track{ transform: none !important; }
}


.logo-strip{
	padding: 46px 0 40px; /* + de hauteur pour respirer */
}

.logo-track{
	gap: 80px;            /* + d'espace entre logos */
	padding: 18px 28px;   /* + padding horizontal/vertical */
}

.logo-item{
	height: 180px;        /* environ x4 à x5 vs 74/88 */
	padding: 36px 52px;   /* + grand “pill” */
	border-radius: 999px;
}

.logo-item img{
	height: 120px;        /* environ x5 vs 48 */
	max-width: 900px;     /* autorise les logos larges */
	width: auto;
	object-fit: contain;
}

/* Mobile : un peu moins énorme sinon ça casse */
@media (max-width: 560px){
	.logo-track{ gap: 46px; padding: 16px 18px; }
	.logo-item{ height: 220px; padding: 26px 34px; }
	.logo-item img{ height: 160px; max-width: 720px; }
}

/* ✅ Bouton "cible" (relocaliser) en bas à droite de la carte */
.map-locate-btn{
	position:absolute;
	right:14px;
	bottom:14px;
	z-index: 500; /* au-dessus des tuiles */
	width:46px;
	height:46px;
	border-radius:999px;
	border:1px solid rgba(16,32,44,.12);
	background: rgba(255,255,255,.95);
	box-shadow: 0 10px 22px rgba(16,32,44,.10);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition: transform .05s ease, filter .15s ease, background .15s ease;
}

.map-locate-btn:hover{
	filter: brightness(.98);
}

.map-locate-btn:active{
	transform: translateY(1px);
}

.map-locate-btn svg{
	width:22px;
	height:22px;
	fill: var(--blue);
}

/* HERO */
.hero{
	position:relative;
	min-height:240px; /* un peu plus haut pour laisser respirer */
	overflow:hidden;
	background:linear-gradient(180deg, rgba(10,25,35,.05), rgba(10,25,35,0));
}

.hero-bg{
	position:absolute;
	inset:0;
	z-index:0;
}

.hero-bg-img{
	width:100%;
	height:100%;
	object-fit:cover;

	/* ✅ IMPORTANT : on accroche l'image en bas */
	object-position: center bottom;

	filter:saturate(1.02);
	opacity:.35;
}

/* Pour que le contenu reste bien au-dessus */
.hero-inner{
	position:relative;
	z-index:1;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:22px;
	padding:26px 18px;
}
.hero-left{ flex:1; min-width:280px; }
.hero-right{ width:min(380px, 40%); display:flex; justify-content:flex-end; }
.hero-illustration{ width:100%; max-width:360px; height:auto; }

/* =========================
   ✅ MAP HEIGHT FIX (plus basse)
   ========================= */

/* Hauteur carte par défaut (desktop) */
:root{
	--map-vh: 46vh; /* <- baisse ici : 40 à 52vh selon ton goût */
}

/* section map plus compacte */
.block-map{
	padding: 0px 0 0px !important;
}

/* surface Leaflet */
.map-surface{
	min-height: var(--map-vh) !important;
}

/* container Leaflet */
.ct-map{
	height: var(--map-vh) !important;
}

/* Mobile : encore plus compact */
@media (max-width: 980px){
	:root{ --map-vh: 42vh; }
}
@media (max-width: 560px){
	:root{ --map-vh: 38vh; }
}

/* 🛈 Hint Ctrl pour zoom */
.map-ctrl-hint{
	position:absolute;
	left:50%;
	bottom:18px;
	transform:translateX(-50%);
	background:rgba(0,0,0,.72);
	color:#fff;
	padding:8px 14px;
	border-radius:999px;
	font-size:13px;
	font-weight:600;
	white-space:nowrap;
	pointer-events:none;
	opacity:0;
	transition:opacity .2s ease, transform .2s ease;
	z-index:600;
	box-shadow:0 8px 18px rgba(0,0,0,.25);
}

/* visible */
.map-ctrl-hint.is-visible{
	opacity:1;
	transform:translateX(-50%) translateY(-4px);
}

/* mobile : inutile */
@media (max-width: 980px){
	.map-ctrl-hint{ display:none; }
}

.hero-copy{
	max-width: 720px;
}

.hero-kicker{
	margin: 0 0 8px 0;
	font-size: 18px;
	line-height: 1.45;
	color: #3b434a;
	font-weight: 700;
}

.hero-subline{
	margin: 0 0 18px 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--muted);
	font-weight: 600;
}

.block-intro{
	padding: 34px 0 18px; /* moins de blanc */
}

.intro-head{
	text-align: center;
	max-width: 820px;
	margin: 0 auto;
}

.intro-sub{
	margin: -12px auto 0;
	color: var(--muted);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.5;
}

@media (max-width: 980px){
	.steps{
		grid-template-columns: 1fr; /* 1 par ligne */
	}
}

@media (max-width: 768px){
	.steps{ grid-template-columns: 1fr; }
}

@media (max-width: 768px){
	.steps{ grid-template-columns: 1fr; }
	.step{ padding: 18px 16px; }
	.step h3{ font-size: 16px; }
	.step p{ font-size: 14px; }
}

.legal{
	margin-top:18px;
	background:#fff;
	border:1px solid var(--border);
	border-radius:22px;
	box-shadow:var(--shadow);
	padding:18px 18px;
	color:#6b7883;
	line-height:1.65;
}
.legal h3{
	margin:0 0 8px 0;
	color:#4a555e;
	font-size:16px;
	font-weight:900;
	text-transform:uppercase;
	letter-spacing:.2px;
}

.block-reasons .p-center.muted{
	margin-top: 56px;
	padding: 28px 24px;
	background: #f5f9fb;
	border-radius: 18px;
	font-size: 16px;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
}

/* Espacement et mise en valeur du bloc contact */
.block-reasons .p-center.muted{
	margin-top: 48px;           /* espace au-dessus */
	padding-top: 32px;          /* respiration interne */
	border-top: 1px solid rgba(0,0,0,.06);
	font-size: 16px;
	opacity: .9;
}

.block-reasons .p-center.muted{
	margin-top: 56px;
	padding: 28px 24px;
	background: #f5f9fb;
	border-radius: 18px;
	font-size: 16px;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 768px){
	.block-reasons .p-center.muted{
		margin-top: 40px;
		padding: 22px 18px;
		font-size: 15px;
	}
}



section.colored{
	background: #f0f0f3 !important;
}

.offres-hero, .block-profiles {

padding: 46px 0 28px 0;
background:
    radial-gradient(circle at 18% 18%, rgba(31, 163, 207, .32), transparent 50%),
    radial-gradient(circle at 86% 22%, rgba(242, 185, 75, .35), transparent 55%),
    linear-gradient(180deg, rgba(31, 163, 207, .16), rgba(255, 255, 255, 0)) !important;
}

.cta-adhesion{
    margin: 70px auto 40px;
    padding: 48px 28px;
    max-width: 720px;
    text-align: center;

    background: #ffffff;
    border-radius: 28px;
    box-shadow: 0 18px 48px rgba(16,32,44,.08);
    border: 1px solid rgba(16,32,44,.06);
}

.cta-adhesion .btn{
    margin-bottom: 22px;
    font-size: 17px;
    padding: 16px 30px;
    border-radius: 16px;
}

.cta-sub{
    margin: 0;
    font-size: 17px;
    color: #6f7a84;
    line-height: 1.6;
}

.cta-sub a{
    color: var(--blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(24,167,207,.25);
    transition: all .2s ease;
}

.cta-sub a:hover{
    border-bottom-color: var(--blue);
}
