/*
Theme Name:  ControlH Divi Child
Template:    Divi
Version:     1.21.0
Text Domain: controlh
*/

/* ==========================================================================
   Tokens (maquette Figma « Control H webdesign »)
   ========================================================================== */

:root {
	/* Reliés aux couleurs / variables globales de Divi, valeur Figma en secours. */
	--ch-violet: var(--gcid-primary-color, #ab00ff);
	--ch-cyan: var(--gcid-secondary-color, #02f1ff);
	--ch-ink: var(--gcid-ch-ink, #0f0036);
	--ch-black: var(--gcid-ch-black, #000);
	--ch-grey: var(--gcid-body-color, #888);
	--ch-grey-light: var(--gcid-ch-grey-light, #c6c6c6);
	--ch-grey-hero: var(--gcid-ch-grey-hero, #818384);
	--ch-border: var(--gcid-ch-border, #666);
	--ch-gradient: var(--gvid-ch-gradient, linear-gradient(90deg, #ab00ff, #02f1ff));
	--ch-tile: var(--gvid-ch-gradient-tile, linear-gradient(104deg, #0f0036 4%, #161616 104%));
	--ch-font: var(--et_global_body_font, 'Poppins'), sans-serif;
	--ch-gutter: 68px;
}

body:has(.ch-section),
body:has(.ch-section) #page-container,
body:has(.ch-section) #main-content {
	background: var(--ch-black);
}

/* ==========================================================================
   Base des sections
   ========================================================================== */

.et_pb_section.ch-section {
	position: relative;
	padding: 0;
	background: var(--ch-black);
	color: #fff;
	font-family: var(--ch-font);
	font-size: 19px;
	line-height: 1.3;
}

.ch-section .et_pb_row {
	width: calc(100% - 2 * var(--ch-gutter));
	max-width: 1376px;
	padding: 0;
}

.ch-section .et_pb_row.ch-row--wide {
	max-width: none;
	width: 100%;
}

.ch-section .et_pb_row.ch-row--xwide {
	width: calc(100% - 60px);
	max-width: 1452px;
}

.ch-section .et_pb_row.ch-row--bleed {
	width: 100%;
	max-width: none;
}

.ch-section .et_pb_module {
	margin-bottom: 0;
}

.ch-section .et_pb_text {
	color: inherit;
	font-family: var(--ch-font);
	font-size: inherit;
	line-height: inherit;
}

.ch-section p {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
	padding-bottom: 0;
}

.ch-section h1,
.ch-section h2,
.ch-section h3 {
	color: #fff;
	font-family: var(--ch-font);
	padding-bottom: 0;
	margin: 0;
}

.ch-section h2 {
	font-size: clamp(36px, 3.8vw, 57px);
	font-weight: 600;
	line-height: 1.14;
	letter-spacing: -0.06em;
}

.ch-section a {
	color: inherit;
}

.is-violet,
.ch-section .is-violet { color: var(--ch-violet); }
.is-cyan,
.ch-section .is-cyan { color: var(--ch-cyan); }

.ch-gradient-text {
	background: var(--ch-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ch-section .ch-eyebrow {
	color: var(--ch-cyan);
	font-size: 22px;
	letter-spacing: -0.03em;
	text-transform: uppercase;
}

.ch-section .ch-muted {
	color: var(--ch-grey-light);
	letter-spacing: -0.03em;
}

/* ==========================================================================
   Boutons (module Bouton Divi + classes ch-btn)
   ========================================================================== */

.ch-section .et_pb_button.ch-btn,
.ch-section .ch-btn .et_pb_button {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 16px;
	min-height: 61px;
	padding: 0 16px 0 30px;
	border: 0;
	border-radius: 50px;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 500;
	line-height: 1 !important;
	letter-spacing: -0.03em;
	transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.ch-section .et_pb_button.ch-btn:hover,
.ch-section .ch-btn .et_pb_button:hover {
	padding: 0 16px 0 30px;
	border: 0;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(171, 0, 255, 0.35);
}

/* Remplace l'icône Divi par les flèches de la maquette */
.ch-section .et_pb_button.ch-btn::after,
.ch-section .ch-btn .et_pb_button::after {
	content: '';
	position: static !important;
	display: block;
	flex: none;
	width: 29px;
	height: 29px;
	margin: 0 !important;
	opacity: 1 !important;
	transform: none;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	font-size: 0;
}

.ch-section .et_pb_button.ch-btn--small,
.ch-section .ch-btn--small .et_pb_button,
.ch-section .et_pb_button.ch-btn--small:hover,
.ch-section .ch-btn--small .et_pb_button:hover {
	min-height: 61px;
	padding: 0 28px;
	font-size: 15px;
}

.ch-section .et_pb_button.ch-btn--small::after,
.ch-section .ch-btn--small .et_pb_button::after {
	display: none;
}

.ch-section .et_pb_button.ch-btn--white,
.ch-section .ch-btn--white .et_pb_button,
.ch-section .et_pb_button.ch-btn--white:hover,
.ch-section .ch-btn--white .et_pb_button:hover {
	background: #fff;
	color: #000 !important;
}

.ch-section .et_pb_button.ch-btn--ink,
.ch-section .ch-btn--ink .et_pb_button,
.ch-section .et_pb_button.ch-btn--ink:hover,
.ch-section .ch-btn--ink .et_pb_button:hover {
	color: var(--ch-ink) !important;
}

.ch-section .et_pb_button.ch-btn--ink-gradient,
.ch-section .ch-btn--ink-gradient .et_pb_button,
.ch-section .et_pb_button.ch-btn--ink-gradient:hover,
.ch-section .ch-btn--ink-gradient .et_pb_button:hover {
	color: var(--ch-ink) !important;
}

.ch-section .et_pb_button.ch-btn--gradient,
.ch-section .ch-btn--gradient .et_pb_button,
.ch-section .et_pb_button.ch-btn--gradient:hover,
.ch-section .ch-btn--gradient .et_pb_button:hover {
	background: var(--ch-gradient);
	color: #fff !important;
}

.ch-section .et_pb_button.ch-btn--black,
.ch-section .ch-btn--black .et_pb_button,
.ch-section .et_pb_button.ch-btn--black:hover,
.ch-section .ch-btn--black .et_pb_button:hover {
	background: #000;
	color: #fff !important;
}

/* Bouton bas (42 px) avec petite icône : cartes produit */
.ch-section .et_pb_button.ch-btn--compact,
.ch-section .ch-btn--compact .et_pb_button,
.ch-section .et_pb_button.ch-btn--compact:hover,
.ch-section .ch-btn--compact .et_pb_button:hover {
	gap: 14px;
	min-height: 42px;
	padding: 0 12px 0 19px;
	font-size: 15px;
}

.ch-section .et_pb_button.ch-btn--compact::after,
.ch-section .ch-btn--compact .et_pb_button::after {
	width: 19px;
	height: 19px;
}

/* Bouton moyen (46 px) avec icône de 22 px : page Technologie */
.ch-section .et_pb_button.ch-btn--medium,
.ch-section .et_pb_button.ch-btn--medium:hover {
	gap: 22px;
	min-height: 46px;
	padding: 0 25px;
	font-size: 15px;
}

.ch-section .et_pb_button.ch-btn--medium::after {
	width: 22px;
	height: 22px;
}

/* Bouton large (padding 41 / 40 px) : bandeau du Blog */
.ch-section .et_pb_button.ch-btn--roomy,
.ch-section .et_pb_button.ch-btn--roomy:hover {
	gap: 18px;
	padding: 0 40px 0 41px;
}

.ch-section .et_pb_button.ch-ico-right-dark::after { background-image: url(assets/img/arrow-right-dark.svg); }
.ch-section .et_pb_button.ch-ico-down-light::after { background-image: url(assets/img/arrow-white.svg); }
.ch-section .et_pb_button.ch-ico-down-ink::after { background-image: url(assets/img/arrow-2.svg); }
.ch-section .et_pb_button.ch-ico-right-gradient::after { background-image: url(assets/img/arrow-dark.svg); }
.ch-section .et_pb_button.ch-ico-down-dark::after { background-image: url(assets/img/arrow-4.svg); }
.ch-section .et_pb_button.ch-ico-right-ink::after { background-image: url(assets/img/arrow-right-ink.svg); }
.ch-section .et_pb_button.ch-ico-right-light::after { background-image: url(assets/img/arrow-right-white.svg); }
.ch-section .et_pb_button.ch-ico-upright-dark::after { width: 10px; height: 10px; background-image: url(assets/img/arrow-up-right-dark.svg); }

/* ==========================================================================
   Hero
   ========================================================================== */

.et_pb_section.ch-hero {
	overflow: hidden;
	min-height: 838px;
	padding: 90px 0 140px;
	background:
		radial-gradient(ellipse 70% 60% at 25% 15%, rgba(12, 12, 12, 0.95) 35%, transparent 70%),
		linear-gradient(171deg, rgba(12, 12, 12, 0.76) 27.8%, var(--ch-violet) 61.4%, var(--ch-cyan) 93.3%);
}

/* Courbe noire en bas du hero (Accueil et pages intérieures) */
.et_pb_section.ch-hero::after,
.et_pb_section.ch-pagehero::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -74px;
	width: 125%;
	height: 148px;
	transform: translateX(-50%);
	border-radius: 50%;
	background: var(--ch-black);
	filter: blur(30px);
	pointer-events: none;
}

.ch-hero .et_pb_row {
	position: relative;
	z-index: 1;
	align-items: center;
}

.ch-hero__logo {
	max-width: 224px;
	margin-bottom: 40px !important;
}

.ch-section .ch-hero__title h1 {
	max-width: 725px;
	font-size: clamp(42px, 4.65vw, 70px);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.ch-section .ch-hero__lead {
	max-width: 496px;
	margin: 32px 0 40px !important;
	color: var(--ch-grey-hero);
	font-size: 20px;
	letter-spacing: -0.05em;
}

/* Carte « État du réseau » : groupe Divi (en-tête, statistiques, preuves).
   Sélecteurs .ch-section .et_pb_module.… : passer avant la mise en page flex des groupes Divi
   et avant .ch-section .et_pb_module { margin-bottom: 0 }. */
.ch-section .et_pb_module.ch-netcard {
	display: block;
	width: 100%;
}

.ch-netcard {
	max-width: 499px;
	margin-left: auto;
	padding: 28px 21px 33px;
	border: 0.75px solid #fff;
	border-radius: 15px;
	background: linear-gradient(112deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12));
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
	-webkit-backdrop-filter: blur(7.4px);
	backdrop-filter: blur(7.4px);
	font-size: 22.6px;
	font-weight: 700;
	letter-spacing: -0.05em;
	line-height: 1.4;
}

.ch-section .et_pb_module.ch-netcard__head {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 0;
	padding: 0 8px 14px;
	margin-bottom: 26px !important; /* Divi : .et_flex_group > .et_pb_module { margin-bottom: 0 } en (0,4,0) */
	border-bottom: 1px solid #fff;
}

.ch-netcard__title {
	text-transform: uppercase;
}

.ch-section .ch-live {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 8px;
	color: #000;
	font-weight: 600;
	text-transform: uppercase;
}

.ch-live::before {
	content: '';
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ch-cyan);
	box-shadow: 0 0 8px var(--ch-cyan);
	animation: ch-pulse 1.6s ease-in-out infinite;
}

@keyframes ch-pulse {
	50% { opacity: 0.35; }
}

.ch-section .et_pb_module.ch-netcard__stats {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 12px;
	margin-bottom: 28px !important;
}

.ch-tile,
.ch-tile .et_pb_text_inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ch-tile {
	padding: 12px 22px;
	border-radius: 20px;
	background: var(--ch-tile);
	white-space: nowrap;
}

.ch-netcard__proofs em {
	font-style: normal;
}

.ch-section .ch-netcard__proofs ul {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	font-weight: 400;
}

.ch-netcard__proofs li {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 4px 0;
}

/* ==========================================================================
   Intro
   ========================================================================== */

.et_pb_section.ch-intro {
	padding: 46px 0 110px;
	text-align: center;
}

.ch-section.ch-intro h2 {
	max-width: 854px;
	margin: 0 auto;
	font-size: clamp(26px, 2.65vw, 40px);
	line-height: 1.35;
	letter-spacing: -0.05em;
}

.ch-intro em {
	font-style: italic;
	background-image: linear-gradient(90deg, var(--ch-cyan), var(--ch-violet));
}

/* ==========================================================================
   Notre expertise
   ========================================================================== */

.et_pb_section.ch-expertise {
	padding: 0 0 142px;
}

.ch-expertise .et_pb_row {
	align-items: flex-start;
	gap: 27px;
}

.ch-expertise .ch-eyebrow {
	margin-bottom: 28px;
}

.ch-expertise h2 {
	max-width: 551px;
}

.ch-expertise .ch-muted {
	max-width: 551px;
	margin: 36px 0 40px;
}

.ch-card {
	position: relative;
	display: block;
	min-height: 528px;
	padding: 34px 20px 0 20px;
	overflow: hidden;
	border-radius: 40px;
	background: linear-gradient(180deg, var(--ch-violet), #000);
	color: #fff;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ch-section .et_pb_module.ch-card {
	width: 100%;
	gap: 0;
	align-items: stretch;
}

/* Le lien du titre et le numéro se placent par rapport à la carte, pas à leur module. */
.ch-section .ch-card .et_pb_module,
.ch-section .ch-card .et_pb_text_inner {
	position: static;
}

.ch-card__link::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ch-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(171, 0, 255, 0.35);
}

.ch-card-col--offset {
	margin-top: 114px;
}

.ch-card-col--offset .ch-card {
	min-height: 414px;
}

.ch-section .ch-card h3 {
	max-width: 300px;
	font-size: 40px;
	font-weight: 400;
	line-height: 45px;
	letter-spacing: -0.05em;
}

.ch-section .ch-card__text p {
	max-width: 301px;
	margin-top: 40px;
	color: var(--ch-grey-light);
	letter-spacing: -0.05em;
}

.ch-section .ch-card .et_pb_module.ch-card__num {
	position: absolute;
	right: -10px;
	bottom: -38px;
	font-size: 150px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
}

/* ==========================================================================
   Bandeau logos
   ========================================================================== */

.et_pb_section.ch-logos {
	padding: 0 0 87px;
}

/* Groupe Divi : les logos sont une fois dans le builder ; la piste est répétée au rendu. */
.ch-section .et_pb_module.ch-marquee {
	display: block;
	width: 100%;
	overflow: hidden;
}

.ch-section .et_pb_module.ch-marquee__track,
.ch-marquee__dup {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 118px;
	width: max-content;
}

.ch-marquee__track {
	animation: ch-marquee 40s linear infinite;
}

.ch-marquee__dup {
	padding-left: 118px;
}

.ch-section .ch-marquee .et_pb_image {
	flex: none;
	width: auto;
	margin: 0;
}

.ch-marquee .et_pb_image_wrap {
	display: block;
}

.ch-section .ch-marquee img {
	display: block;
	height: 127px;
	width: auto;
	max-width: none;
}

.ch-section .ch-marquee .ch-logos__yci img {
	width: 123px;
	object-fit: cover;
	object-position: 50% 0;
}

@keyframes ch-marquee {
	to { transform: translateX(-50%); }
}

/* Visual Builder : sans le filtre PHP, la piste ne contient qu'une série de logos. */
.et-fb .ch-section .et_pb_module.ch-marquee__track {
	animation: none;
	flex-wrap: wrap;
	width: auto;
}
/*
@media (prefers-reduced-motion: reduce) {
	.ch-marquee__track,
	.ch-live::before {
		animation: none;
	}
}*/

/* ==========================================================================
   Chiffres
   ========================================================================== */

.et_pb_section.ch-chiffres {
	padding: 0 0 190px;
	text-align: center;
}

.ch-chiffres .et_pb_row {
	gap: 0;
}

.ch-chiffres .et_pb_image {
	margin-bottom: 44px;
}

.ch-chiffres .et_pb_image img {
	width: 100%;
	aspect-ratio: 484 / 270;
	object-fit: cover;
}

.ch-section .ch-stat {
	color: var(--ch-grey);
	text-transform: uppercase;
	letter-spacing: -0.03em;
	line-height: 1;
}

.ch-stat strong {
	color: var(--ch-cyan);
	font-size: clamp(64px, 6.6vw, 100px);
	font-weight: 400;
	text-transform: none;
}

.ch-section .ch-stat__desc {
	max-width: 256px;
	margin: 20px auto 0;
	color: var(--ch-grey);
	letter-spacing: -0.03em;
}

/* ==========================================================================
   Cas d'usage
   ========================================================================== */

.et_pb_section.ch-usecases {
	padding: 0 0 120px;
}

.ch-usecases .et_pb_row {
	align-items: center;
	gap: 70px;
}

.ch-usecases h2 {
	margin: 20px 0 30px !important;
	letter-spacing: -0.05em;
}

.ch-usecases .ch-muted {
	max-width: 541px;
	margin-bottom: 40px;
	color: var(--ch-grey);
	letter-spacing: -0.05em;
}

.ch-yci {
	position: relative;
	overflow: hidden;
	padding: 75px 33px 28px 52px;
	border-radius: 40px;
	background: #005736;
}

.ch-yci::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url(assets/img/youcheckinn-bg.jpg) center / cover no-repeat;
	opacity: 0.3;
	pointer-events: none;
}

.ch-yci > * {
	position: relative;
}

.ch-section .ch-yci h3 {
	font-size: clamp(36px, 3.3vw, 50px);
	font-weight: 700;
	letter-spacing: -0.05em;
}

.ch-section .ch-yci p {
	max-width: 570px;
	margin: 24px 0 30px;
	font-size: 20px;
	letter-spacing: -0.05em;
}

/* ==========================================================================
   CTA
   ========================================================================== */

.et_pb_section.ch-cta {
	padding: 0 0 120px;
}

.ch-section .et_pb_row.ch-cta__box {
	max-width: 1360px;
	padding: 52px 30px 58px;
	border: 6px solid var(--ch-violet);
	border-radius: 50px;
	text-align: center;
}

.ch-section .ch-cta__box h2 {
	max-width: 609px;
	margin: 0 auto 50px;
	font-size: clamp(32px, 3.3vw, 50px);
	font-weight: 500;
	letter-spacing: -0.05em;
}

/* ==========================================================================
   Page Solutions — hero de page intérieure
   ========================================================================== */

.et_pb_section.ch-pagehero {
	overflow: hidden;
	min-height: 570px;
	padding: 155px 0 160px;
	text-align: center;
	background:
		radial-gradient(ellipse 62% 75% at 28% 8%, var(--ch-black) 40%, transparent 72%),
		radial-gradient(ellipse 45% 50% at 78% 0%, var(--ch-black) 35%, transparent 75%),
		linear-gradient(174deg, rgba(0, 0, 0, 0.76) 27.8%, var(--ch-violet) 61.4%, var(--ch-cyan) 93.3%) !important; /* passe avant le fond noir Divi posé pour l'aperçu du Theme Builder */
}

.ch-pagehero .et_pb_row {
	position: relative;
	z-index: 1;
}

.ch-section .ch-pagehero__title h1 {
	max-width: 893px;
	text-align: center;
	margin: 0 auto;
	font-size: clamp(38px, 4vw, 60px);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.01em;
}

.ch-section .ch-pagehero__lead {
	max-width: 551px;
	margin: 24px auto 0 !important;
	text-align: center;
	color: var(--ch-grey-hero);
	letter-spacing: -0.03em;
}

/* ==========================================================================
   Page Solutions — cartes produit
   ========================================================================== */

.et_pb_section.ch-products {
	padding: 61px 0 0;
	row-gap: 83px;
}

.ch-section .et_pb_row.ch-product {
	position: relative;
	overflow: hidden;
	max-width: 1360px;
	align-items: center;
	padding: 47px 80px 58px 70px;
	border: 0.75px solid #fff;
	border-radius: 15px;
	/* Verre translucide au-dessus du bandeau lumineux (Figma « Frame 17/18 ») */
	background:
		linear-gradient(130deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12)),
		url(assets/img/card-glow.svg) bottom / 100% 152px no-repeat,
		var(--ch-black);
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
	-webkit-backdrop-filter: blur(7.4px);
	backdrop-filter: blur(7.4px);
}

/* Les modules flex de Divi prennent la largeur de leur contenu : on les étire,
   et Divi impose text-align sur les modules Texte : on recentre explicitement. */
.ch-pagehero .et_pb_text,
.ch-features__head .et_pb_text,
.ch-product .et_pb_module {
	width: 100%;
}

.ch-section .ch-features__head h2 {
	text-align: center;
}

.ch-section .ch-product__text {
	margin-bottom: 40px;
}

.ch-section .ch-product h2 {
	font-size: clamp(36px, 3.3vw, 50px);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.05em;
}

.ch-section .ch-product h3 {
	margin-top: 40px;
	font-size: clamp(24px, 2vw, 30px);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.05em;
}

.ch-section .ch-product p {
	max-width: 577px;
	margin-top: 14px;
	color: var(--ch-grey);
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: -0.03em;
}

.ch-section .ch-product .ch-product__small {
	font-size: 14px;
}

/* Visuel : panneau sombre arrondi, téléphone recadré comme dans la maquette */
.ch-section .ch-product__visual {
	position: relative;
	overflow: hidden;
	max-width: 494px;
	aspect-ratio: 494 / 452;
	margin-left: auto;
	border: 1px solid var(--ch-border);
	border-radius: 50px;
	background: linear-gradient(-47.5deg, #111, #222);
}

.ch-product--reverse .ch-product__visual {
	margin-left: 0;
	margin-right: auto;
}

.ch-product__visual .et_pb_image_wrap {
	position: static;
	display: block;
}

.ch-product__visual img {
	position: absolute;
	top: -8.5%;
	left: -21%;
	width: 142%;
	max-width: none;
	height: auto;
}

/* ==========================================================================
   Page Solutions — fonctionnalités clés
   ========================================================================== */

.et_pb_section.ch-features {
	padding: 118px 0 0;
	row-gap: 58px;
}

.ch-section .et_pb_row.ch-features__head {
	max-width: 1360px;
	padding-bottom: 40px;
	border-bottom: 1px solid #d8d8da;
	text-align: center;
}

.ch-features__list {
	justify-content: space-between;
}

.ch-section.ch-features h3 {
	max-width: 240px;
	font-size: clamp(32px, 2.65vw, 40px);
	font-weight: 400;
	line-height: 1.125;
	letter-spacing: -0.05em;
}

.ch-features__slash {
	font-size: 0.85em;
}

.ch-section.ch-features p {
	max-width: 351px;
	margin-top: 45px;
	color: var(--ch-grey);
	line-height: 1.5;
	letter-spacing: -0.05em;
}

/* ==========================================================================
   Page Solutions — intégration B2B & API
   ========================================================================== */

.et_pb_section.ch-api {
	padding: 130px 0 120px;
}

.ch-section .et_pb_row.ch-api__box {
	max-width: 1360px;
	align-items: center;
	padding: 46px 78px 58px 70px;
	border: 3px solid transparent;
	border-radius: 50px;
	background:
		linear-gradient(var(--ch-black), var(--ch-black)) padding-box,
		var(--ch-gradient) border-box;
}

.ch-section.ch-api h2 {
	font-size: clamp(36px, 3.3vw, 50px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.05em;
}

.ch-section.ch-api .ch-muted {
	max-width: 577px;
	margin-top: 20px;
	color: var(--ch-grey);
	font-size: 15px;
	line-height: 1.5;
}

/* Texte et pastilles sont deux modules : l'espace entre eux vient de la marge de la liste, pas de l'écart de colonne Divi (30 px). */
.ch-section .ch-api__box .et_pb_column {
	row-gap: 0;
}

.ch-section .ch-tags ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch-tags li {
	display: inline-flex;
	align-items: center;
	height: 42px;
	padding: 0 18px;
	border-radius: 50px;
	background: var(--ch-cyan);
	color: #000;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.03em;
	list-style: none;
}

.ch-section .ch-code {
	max-width: 494px;
	margin: 0 0 0 auto;
	padding: 48px 56px;
	overflow-x: auto;
	border: 1px solid var(--ch-border);
	border-radius: 50px;
	background: linear-gradient(-29deg, #111, #222);
	color: var(--ch-cyan);
	font-family: var(--ch-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -0.03em;
	white-space: pre;
}

.ch-code code {
	padding: 0;
	background: none;
	color: inherit;
	font: inherit;
}

/* ==========================================================================
   Page Technologie
   Typographie : réglages Divi des modules.
   Ici seulement la mise en page et le décor.
   ========================================================================== */

.ch-pagehero--wide .ch-pagehero__lead,
.ch-techhero .ch-pagehero__lead {
	max-width: 665px;
	margin-top: 0 !important; /* l'écart de colonne Divi (30 px) suffit */
}

/* Pourquoi Tezos */
.et_pb_section.ch-tezos {
	padding: 50px 0 0;
}

.ch-section .et_pb_row.ch-tezos__row {
	max-width: 1101px;
	align-items: flex-start;
	column-gap: 69px;
}

.ch-section .ch-tezos__intro {
	row-gap: 32px;
}

.ch-section .et_pb_module.ch-tezos__logo {
	align-self: center;
	width: 149px;
}

.ch-section .et_pb_module.ch-steps {
	width: 100%;
	gap: 46px;
	align-items: stretch;
}

.ch-section .et_pb_module.ch-step {
	flex-direction: row;
	align-items: flex-start;
	gap: 25px;
}

.ch-section .et_pb_module.ch-step__num {
	flex: none;
	justify-content: center;
	align-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #fff;
}

.ch-section .et_pb_module.ch-step__text {
	flex: 1;
}

/* Chiffres */
.et_pb_section.ch-techstats {
	padding: 119px 0 0;
}

.ch-section .et_pb_row.ch-techstats__row {
	max-width: 1176px;
	align-items: flex-start;
	justify-content: flex-start;
	column-gap: 73px;
}

.ch-section .ch-techstats__row .et_pb_column {
	row-gap: 26px;
}

.ch-section .et_pb_module.ch-techstat__visual {
	width: 100%;
	max-width: 484px;
}

.ch-techstat__visual img {
	width: 100%;
	aspect-ratio: 484 / 270;
	object-fit: cover;
}

.ch-section .et_pb_module.ch-techstat {
	width: 100%;
	gap: 0;
	align-items: stretch;
}

.ch-section .ch-techstats__row .et_pb_column:first-child .ch-techstat {
	padding-left: 77px;
}

.ch-section .ch-techstats__row .et_pb_column:last-child .ch-techstat {
	padding-left: 30px;
}

.ch-section .ch-techstat__unit {
	font-size: 19px;
	line-height: normal; /* sinon hérite des 100 px de la valeur et décale la ligne */
	margin-left: 6px;
	letter-spacing: -0.03em;
	color: var(--ch-grey);
}

.ch-section .et_pb_module.ch-techstat__desc {
	margin-top: 4px;
}

.ch-section .ch-techstats__row .et_pb_column:first-child .ch-techstat__desc {
	max-width: 311px;
}

.ch-section .ch-techstats__row .et_pb_column:last-child .ch-techstat__desc {
	max-width: 476px;
}

/* Infrastructure */
.et_pb_section.ch-infra {
	padding: 158px 0 120px;
}

/* Rangée « texte à gauche (calé à 223 px), encadré de 644 px à droite » : Technologie, Garanties */
.ch-section .et_pb_row.ch-split,
.ch-section .et_pb_row.ch-infra__row {
	max-width: 1344px;
	align-items: center;
	column-gap: 7px;
}

.ch-section .ch-infra__intro {
	row-gap: 35px;
}

@media (min-width: 981px) {
	.ch-section .ch-split__intro,
	.ch-section .ch-infra__intro {
		padding-left: 139px;
	}
}

.ch-section .ch-infra__lead p {
	max-width: 412px;
}

/* Encadré « Hébergement souverain » (colonne) */
.ch-section .et_pb_column.ch-host {
	row-gap: 19px;
	padding: 26px 39px 36px 37px;
	border-radius: 40px;
	background: linear-gradient(180deg, var(--ch-violet), var(--ch-black));
}

.ch-section .ch-host h3 {
	margin-bottom: 22px;
}

.ch-section .ch-checklist ul {
	display: flex;
	flex-direction: column;
	gap: 13px;
	margin: 0;
	padding: 0 0 0 33px;
	list-style: none;
}

.ch-section .ch-checklist li {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: 38px;
	padding: 0;
}

.ch-checklist li::before {
	content: '';
	flex: none;
	width: 38px;
	height: 38px;
	background: url(assets/img/check.svg) center / contain no-repeat;
}

/* CTA à bordure dégradée */
.ch-section .et_pb_row.ch-cta__box--gradient {
	row-gap: 0;
	padding: 30px 30px 33px;
}

/* Bordure dégradée violet → cyan de 3 px (encadrés CTA, Tiers de confiance) */
.ch-section .et_pb_row.ch-cta__box--gradient,
.ch-section .et_pb_row.ch-gradient-border {
	border: 3px solid transparent;
	background:
		linear-gradient(var(--ch-black), var(--ch-black)) padding-box,
		var(--ch-gradient) border-box;
}

.ch-section .ch-cta__box--gradient .et_pb_column {
	row-gap: 0;
}

.ch-section .ch-cta__box--gradient .et_pb_text {
	width: 100%;
}

.ch-section .ch-cta__box--gradient h2 {
	max-width: 432px;
	margin: 0 auto;
}

.ch-section .et_pb_module.ch-cta__text {
	margin-top: 30px;
}

.ch-section .ch-cta__text p {
	max-width: 577px;
	margin: 0 auto;
}

.ch-cta__box--gradient .et_pb_button_module_wrapper {
	margin-top: 40px;
}

/* ==========================================================================
   Page Garanties
   Typographie : réglages Divi des modules.
   ========================================================================== */

/* Des fichiers infalsifiables */
.et_pb_section.ch-tamper {
	padding: 49px 0 0;
}

.ch-section .ch-tamper__intro {
	row-gap: 0;
}

.ch-section .et_pb_module.ch-tamper__text {
	margin-top: 14px;
}

.ch-section .ch-tamper__text p {
	max-width: 522px;
}

.ch-section .ch-tamper__text p:first-child {
	max-width: 494px;
}

.ch-section .ch-tamper__text p + p {
	margin-top: 22px;
}

.ch-tamper__intro .et_pb_button_module_wrapper {
	margin-top: 31px;
}

/* Carte « Analyse d'intégrité » : verre translucide */
.ch-section .et_pb_module.ch-integrity {
	width: 100%;
	gap: 0;
	align-items: stretch;
	padding: 20px 25px 31px;
	border: 0.75px solid #fff;
	border-radius: 15px;
	background: linear-gradient(122deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12));
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
	-webkit-backdrop-filter: blur(7.4px);
	backdrop-filter: blur(7.4px);
}

.ch-section .et_pb_module.ch-integrity__head {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 7px 18px 28px;
	border-bottom: 1px solid #d8d8da;
}

.ch-section .ch-integrity__title {
	flex-direction: row;
	align-items: center;
	gap: 11px;
}

/* Point encre lumineux devant le titre */
.ch-integrity__title::before {
	content: '';
	flex: none;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	/*background: var(--ch-tile);*/
	box-shadow: 0 0 0 1px rgba(52, 211, 153, 0.6), 0 0 6.4px 1px #34d399;
    background: #34d399;
    animation: ch-tzd-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
}

.ch-section .et_pb_module.ch-integrity__rows {
	gap: 14px;
	align-items: stretch;
	margin-top: 26px;
	padding-left: 19px;
}

.ch-section .et_pb_module.ch-integrity__row {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
}

.ch-section .ch-integrity__value {
	justify-content: center;
	min-height: 39px;
	padding: 0 14px;
	border-radius: 6px;
	background: #555;
	white-space: nowrap;
}

.ch-section .et_pb_module.ch-integrity__seal {
	flex-direction: row;
	align-self: center;
	justify-content: center;
	align-items: center;
	gap: 8px;
	width: 100%;
	max-width: 513px;
	min-height: 49px;
	margin-top: 37px;
	padding: 0 16px;
	border-radius: 18px;
}

.ch-integrity__seal::before {
	content: '';
	flex: none;
	width: 14px;
	height: 12px;
	/*background: url(assets/img/check-small.svg) center / contain no-repeat;*/
    mask: url(assets/img/check-small.svg) center / contain no-repeat;
    background: #00e5a0;
}

/* Le Tiers de Confiance Ultime */
.et_pb_section.ch-trust {
	padding: 92px 0 0;
}

.ch-section .et_pb_row.ch-trust__box {
	max-width: 1360px;
	padding: 49px 30px 56px;
	border-radius: 50px;
}

.ch-section .ch-trust__box .et_pb_column {
	row-gap: 0;
	align-items: center;
}

.ch-section .ch-trust__box .et_pb_text {
	width: 100%;
}

.ch-section .ch-trust__lead p {
	max-width: 665px;
	margin: 0 auto;
}

.ch-section .et_pb_module.ch-trust__lead {
	margin-top: 32px;
}

.ch-section .et_pb_module.ch-trust__cards {
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 39px;
	width: 100%;
	margin-top: 37px;
}

.ch-section .et_pb_module.ch-trust__card {
	flex: 0 1 326px;
	align-items: center;
	gap: 0;
	min-height: 232px;
	padding: 55px 44px 24px;
	border-radius: 50px;
	background: linear-gradient(180deg, var(--ch-violet), var(--ch-black));
}

.ch-section .et_pb_module.ch-trust__card--cyan {
	background: linear-gradient(180deg, var(--ch-cyan), var(--ch-black));
}

.ch-section .ch-trust__icon {
	width: auto;
	margin: 0 0 6px;
}

.ch-section .ch-trust__icon img {
	display: block;
	width: auto;
	height: 37px;
}

.ch-section .et_pb_module.ch-trust__text {
	margin-top: 14px;
}

.ch-section .et_pb_module.ch-trust__op {
	flex: none;
	width: 25px;
}

/* Vos garanties légales */
.et_pb_section.ch-legal {
	row-gap: 0; /* sinon 60 px d'écart Divi entre le titre et les colonnes */
	padding: 105px 0 105px;
}

.ch-section .et_pb_row.ch-legal__head {
	max-width: 1360px;
	padding-bottom: 34px;
	border-bottom: 1px solid #d8d8da;
}

.ch-section .ch-legal__head .et_pb_text {
	width: 100%;
}

.ch-section .et_pb_row.ch-legal__list {
	max-width: 1360px;
	align-items: stretch;
	column-gap: 152px;
	padding-top: 47px;
}

.ch-section .ch-legal__list .et_pb_column {
	row-gap: 0;
}

.ch-section .ch-legal__list h3 {
	max-width: 270px;
}

.ch-section .et_pb_module.ch-legal__text {
	margin-top: 42px;
}

.ch-section .ch-legal__text p {
	max-width: 345px;
}

.ch-section .ch-legal__list .et_pb_column:nth-child(2) .ch-legal__text p {
	max-width: 351px;
}

/* Étiquette calée en bas : alignée d'une colonne à l'autre */
.ch-section .et_pb_module.ch-legal__tag {
	margin-top: auto;
	padding-top: 20px;
}

/* ==========================================================================
   Article (modèle Theme Builder « Articles »)
   Typographie : réglages Divi des modules Texte, Titre d'article et Contenu.
   ========================================================================== */

.et_pb_section.ch-article {
	row-gap: 0;
	padding: 96px 0 120px;
}

/* Encadré à bordure dégradée : image à la une + lien Retour */
.ch-section .et_pb_row.ch-article__hero {
	max-width: 1360px;
	padding: 54.5px 0;
	border-radius: 50px;
}

/* Le lien Retour est placé en absolu par ses réglages Divi (position), par rapport à cette colonne */
.ch-section .ch-article__hero .et_pb_column {
	align-items: center;
}

.ch-section .ch-back {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	color: #fff;
}

.ch-back::before {
	content: '';
	flex: none;
	width: 29px;
	height: 29px;
	transform: scaleX(-1);
	background: url(assets/img/arrow-right-white.svg) center / contain no-repeat;
}

.ch-section .et_pb_module.ch-blogfeature__image,
.ch-section .et_pb_module.ch-article__image {
	width: 315px;
	height: 315px;
	overflow: hidden;
	border-radius: 13.6px;
	background: #fff;
	box-shadow: 0 3.4px 2.7px rgba(0, 0, 0, 0.35);
}

/* Article sans image à la une : le module Image est vide, on le masque (encadré et lien Retour restent) */
.ch-section .et_pb_module.ch-article__image:empty,
.ch-section .et_pb_module.ch-blogfeature__image:empty,
.ch-section .ch-blogfeature__media:has(> .ch-blogfeature__image:empty) {
	display: none;
}

.ch-blogfeature__image .et_pb_image_wrap,
.ch-article__image .et_pb_image_wrap {
	display: block;
	height: 100%;
}

.ch-blogfeature__image img,
.ch-article__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Titre + méta */
.ch-section .et_pb_row.ch-article__head {
	padding-top: 32px;
}

.ch-section .ch-article__title {
	width: 100%;
}

.ch-section .ch-article__title .et_pb_title_meta_container {
	margin-top: 16px;
	padding: 0;
}

.ch-article__title .published {
	text-transform: capitalize; /* « mai » → « Mai », comme la maquette */
}

/* Divi : .et_pb_post_title_N_tb_body .et_pb_title_container .et_pb_title_meta_container a (0,4,1) !important */
.ch-section .et_pb_module.ch-article__title .et_pb_title_container .et_pb_title_meta_container a {
	color: var(--ch-cyan) !important;
}

/* Contenu */
.ch-section .et_pb_row.ch-article__body {
	max-width: 522px;
	padding-top: 62px;
}

.ch-section .ch-article__content {
	width: 100%;
}

/* Visual Builder : le texte d'exemple du module est enveloppé dans une section Divi à fond blanc */
.ch-article__content .et-fb-post-content .et_pb_section {
	padding: 0 !important;
	background-color: transparent !important;
}

.ch-section .ch-article__content p + p {
	margin-top: 1.5em;
}

.ch-section .ch-article__content a {
	text-decoration: none;
}

/* Bouton Gutenberg (core/button) au style des boutons dégradés */
.ch-section .ch-article__content .wp-block-buttons {
	justify-content: center;
	margin-top: 60px;
}

.ch-section .ch-article__content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 21px;
	min-height: 61px;
	padding: 0 16px 0 33px;
	border-radius: 50px;
	background: var(--ch-gradient);
	color: #fff !important;
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.03em;
	white-space: nowrap;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ch-section .ch-article__content .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(171, 0, 255, 0.35);
}

.ch-article__content .wp-block-button__link::after {
	content: '';
	flex: none;
	width: 29px;
	height: 29px;
	background: url(assets/img/arrow-right-white.svg) center / contain no-repeat;
}

.ch-section .ch-article__content h2 {
	margin: 1.6em 0 0.5em;
	padding: 0;
}

.ch-section .ch-article__content ul {
	display: flex;
	flex-direction: column;
	gap: 0.6em;
	margin: 0;
	padding-left: 1.2em;
}

/* ==========================================================================
   Blog (modèle Theme Builder « Blog »)
   Typographie : réglages Divi des modules (Texte, Blog).
   ========================================================================== */

/* Article épinglé mis en avant (boucle Divi) */
.ch-section .et_pb_row.ch-blogfeature {
	position: relative;
	z-index: 1;
	max-width: 1360px;
	align-items: center;
	column-gap: 150px;
	margin-bottom: 60px;
	padding: 57.5px 0 57.5px 66.5px;
	border-radius: 50px;
}

/* Bordure dégradée de 3 px à intérieur transparent */
.ch-blogfeature::before {
	content: '';
	position: absolute;
	inset: 0;
	padding: 3px;
	border-radius: inherit;
	background: var(--ch-gradient);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

.ch-section .ch-blogfeature__text {
	row-gap: 0;
	align-items: center;
}

.ch-section .ch-blogfeature__text .et_pb_text {
	width: 100%;
}

.ch-section .et_pb_module.ch-blogfeature__lead {
	margin-top: 41px;
}

.ch-section .ch-blogfeature__lead p {
	max-width: 665px;
	margin: 0 auto;
}

.ch-blogfeature__text .et_pb_button_module_wrapper {
	margin-top: 53px;
}

/* Grille */
.et_pb_section.ch-blog {
	row-gap: 0;
	padding: 60px 0 120px;
}

.ch-section .et_pb_row.ch-blog__grid {
	max-width: 1347px;
}

.ch-section .ch-postgrid {
	width: 100%;
}

/* Cartes d'article (grille 3 colonnes réglée dans le module Blog) */
.ch-section .ch-postgrid .et_pb_post {
	display: flex;
	flex-direction: column;
	min-height: 529px;
	margin: 0;
	padding: 0 0 19px;
	overflow: hidden;
	border: 0;
	border-radius: 50px;
	background: linear-gradient(180deg, #161616, var(--ch-ink));
	box-shadow: 3px -2px 4px rgba(0, 0, 0, 0.1);
}

.ch-section .ch-postgrid .et_pb_image_container {
	flex: none;
	height: 246px;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

.ch-section .ch-postgrid .et_pb_image_container img {
	display: block;
	width: 100%;
	height: 246px;
	object-fit: cover;
}

.ch-postgrid .et_overlay {
	display: none;
}

/* Article sans image à la une : bandeau dégradé à la place du visuel */
.ch-section .ch-postgrid .et_pb_no_thumb::before {
	content: '';
	flex: none;
	height: 246px;
	background: var(--ch-gradient);
}

.ch-section .ch-postgrid .entry-title {
	margin: 0;
	padding: 17px 43px 0;
}

.ch-section .ch-postgrid .entry-title a {
	color: inherit;
}

.ch-section .ch-postgrid .post-meta {
	margin: -6px 0 0;
	padding: 0 43px;
}

.ch-section .ch-postgrid .post-meta a {
	color: inherit;
}

.ch-section .ch-postgrid .post-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 7px 43px 0;
}

.ch-section .ch-postgrid .post-content-inner p {
	padding: 0;
}

.ch-section .ch-postgrid .more-link {
	align-self: flex-end;
	margin: auto -9px 0 0;
	padding-top: 20px;
}

/* Pagination numérotée : 1 2 3 … ▶ */
.ch-section .ch-postgrid .pagination {
	margin-top: 24px;
}

.ch-section .ch-postgrid .nav-links {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 28px;
}

.ch-section .ch-postgrid .page-numbers {
	color: inherit;
}

.ch-section .ch-postgrid .page-numbers.current {
	color: var(--ch-cyan);
	font-weight: 700; /* la police Divi de la pagination ne vise que les liens */
}

.ch-postgrid .next.page-numbers::before,
.ch-postgrid .prev.page-numbers::before {
	content: '';
	display: block;
	width: 15px;
	height: 13px;
	transform: rotate(90deg);
	background: url(assets/img/triangle.svg) center / contain no-repeat;
}

.ch-postgrid .prev.page-numbers::before {
	transform: rotate(-90deg);
}

.ch-postgrid .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ==========================================================================
   Page Nous contacter
   Typographie : réglages Divi des modules.
   Formulaire : Contact Form 7, seuls les champs sont stylés ici.
   ========================================================================== */

.et_pb_section.ch-contact {
	padding: 61px 0 120px;
}

.ch-section .et_pb_row.ch-contact__row {
	max-width: 1194px;
	align-items: flex-start;
	justify-content: space-between;
}

/* Coordonnées : icône, titre, texte */
.ch-section .et_pb_column.ch-contact__infos {
	gap: 48px;
}

.ch-section .et_pb_module.ch-contact__item {
	width: 100%;
	gap: 0;
}

.ch-section .ch-contact__icon,
.ch-section .ch-contact__icon img {
	display: block;
	width: 77px;
	height: 77px;
}

.ch-contact__item h3 {
	padding: 19px 0 0;
}

.ch-section .et_pb_module.ch-contact__text {
	margin-top: 12px;
}

.ch-section .ch-contact__text a {
	color: inherit;
	text-decoration: none;
}

.ch-section .ch-contact__text a:hover {
	color: var(--ch-cyan);
}

/* Carte du formulaire : verre translucide */
.ch-section .et_pb_module.ch-contact__card {
	width: 100%;
	gap: 0;
	align-items: stretch;
	padding: 26px 55px 31px;
	border: 0.75px solid #fff;
	border-radius: 15px;
	background: linear-gradient(109deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12));
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
	-webkit-backdrop-filter: blur(7.4px);
	backdrop-filter: blur(7.4px);
}

.ch-contact__card > .et_pb_module {
	width: 100%;
}

.ch-section .et_pb_module.ch-contact__lead {
	margin-top: 23px;
}

.ch-section .et_pb_module.ch-contact__form {
	margin-top: 30px;
}

/* Contact Form 7 : 2 colonnes, message et bouton sur toute la largeur */
.ch-contact__form .wpcf7-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 42px 38px;
}

.ch-contact__form .wpcf7-form > p {
	margin: 0;
	padding: 0;
}

.ch-contact__form .wpcf7-form > p:has(textarea),
.ch-contact__form .wpcf7-form > p:has(.wpcf7-submit),
.ch-contact__form .wpcf7-response-output {
	grid-column: 1 / -1;
}

.ch-contact__form .hidden-fields-container {
	display: none;
}

.ch-section .ch-contact__form label {
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: -1px;
	text-transform: uppercase;
}

.ch-contact__form label br {
	display: none;
}

.ch-contact__form .wpcf7-form-control-wrap {
	display: block;
	text-transform: none;
}

.ch-section .ch-contact__form input.wpcf7-form-control:not(.wpcf7-submit),
.ch-section .ch-contact__form textarea.wpcf7-form-control {
	display: block;
	width: 100%;
	height: 57px;
	margin: 0;
	padding: 0 26px;
	border: 1px solid #c1c1c1;
	border-radius: 24px;
	background: #555;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: -1px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ch-section .ch-contact__form textarea.wpcf7-form-control {
	height: 119px;
	min-height: 57px;
	padding: 13px 26px;
	resize: vertical;
}

.ch-contact__form .wpcf7-form-control::placeholder {
	color: #b8b8b8;
	opacity: 1;
}

.ch-section .ch-contact__form .wpcf7-form-control:focus {
	outline: none;
	border-color: var(--ch-cyan);
	box-shadow: 0 0 0 3px rgba(2, 241, 255, 0.25);
}

/* Bouton dégradé avec la flèche des boutons du thème */
.ch-contact__form .wpcf7-form > p:has(.wpcf7-submit) {
	position: relative;
	display: flex;
	justify-content: center;
	margin-top: 7px;
}

.ch-section .ch-contact__form .wpcf7-submit {
	min-width: 308px;
	height: 61px;
	margin: 0;
	padding: 0 61px 0 30px;
	border: 0;
	border-radius: 50px;
	background: url(assets/img/arrow-dark.svg) right 16px center / 29px 29px no-repeat, var(--ch-gradient);
	color: #fff;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.6px;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.ch-section .ch-contact__form .wpcf7-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(171, 0, 255, 0.35);
}

.ch-section .ch-contact__form .wpcf7-submit:focus-visible {
	outline: 2px solid var(--ch-cyan);
	outline-offset: 3px;
}

.ch-section .ch-contact__form .wpcf7-form.submitting .wpcf7-submit {
	opacity: 0.6;
	cursor: wait;
}

.ch-contact__form .wpcf7-spinner {
	position: absolute;
	top: 50%;
	margin: -12px 0 0 calc(154px + 12px);
	left: 50%;
}

/* Messages de validation et de retour */
.ch-section .ch-contact__form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #ff6b8b;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
}

.ch-section .ch-contact__form .wpcf7-form-control.wpcf7-not-valid {
	border-color: #ff6b8b;
}

.ch-section .ch-contact__form .wpcf7-response-output {
	margin: 0;
	padding: 14px 24px;
	border: 1px solid var(--ch-cyan);
	border-radius: 24px;
	color: #fff;
	font-size: 15px;
	text-align: center;
}

.ch-contact__form .wpcf7-form.invalid .wpcf7-response-output,
.ch-contact__form .wpcf7-form.failed .wpcf7-response-output,
.ch-contact__form .wpcf7-form.unaccepted .wpcf7-response-output,
.ch-contact__form .wpcf7-form.spam .wpcf7-response-output {
	border-color: #ff6b8b;
}

/* ==========================================================================
   Page Catalogue : tuiles des solutions (même carte que la grille du Blog)
   Typographie : réglages Divi des modules. Les tuiles sont répétées par la boucle Divi.
   ========================================================================== */

.et_pb_section.ch-catalogue {
	row-gap: 0;
	padding: 60px 0 120px;
}

.ch-section .et_pb_row.ch-catalogue__grid {
	max-width: 1347px;
}

.ch-section .ch-catalogue__grid > .et_pb_column {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.ch-section .et_pb_module.ch-soltile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	min-height: 529px;
	margin: 0 !important;
	padding: 0 0 19px;
	overflow: hidden;
	border-radius: 50px;
	background: linear-gradient(180deg, #161616, var(--ch-ink));
	box-shadow: 3px -2px 4px rgba(0, 0, 0, 0.1);
}

/* Le lien du titre couvre la tuile : les modules ne doivent pas lui servir de repère */
.ch-section .ch-soltile .et_pb_module,
.ch-section .ch-soltile .et_pb_text_inner {
	position: static;
	width: 100%;
}

/* Bandeau dégradé avec le logo centré ; il reste seul quand la solution n'a pas de logo */
.ch-section .et_pb_module.ch-soltile__media {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	height: 246px;
	padding: 40px 43px;
	background: var(--ch-gradient);
}

.ch-section .et_pb_module.ch-soltile__logo:empty {
	display: none;
}

.ch-section .ch-soltile__logo .et_pb_image_wrap {
	display: flex;
	width: 100%;
	justify-content: center;
}

.ch-section .ch-soltile__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 166px;
	object-fit: contain;
}

.ch-section .et_pb_module.ch-soltile__title {
	padding: 17px 43px 0;
}

.ch-soltile__title a {
	color: inherit;
}

.ch-soltile__title a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.ch-soltile__title a:focus-visible {
	outline: none;
}

.ch-soltile:has(.ch-soltile__title a:focus-visible) {
	outline: 2px solid var(--ch-cyan);
	outline-offset: 4px;
}

.ch-section .et_pb_module.ch-soltile__excerpt {
	padding: 7px 43px 0;
}

.ch-section .et_pb_module.ch-soltile__more {
	margin-top: auto !important;
	padding: 20px 34px 0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (min-width: 981px) {
	.ch-product--reverse {
		--flex-direction: row-reverse;
	}

	.ch-product--reverse .ch-product__text {
		text-align: right;
	}

	.ch-section .ch-product--reverse p {
		margin-left: auto;
	}

	.ch-features__list > .et_pb_column {
		flex: 0 1 351px;
		width: auto;
	}

	/* Technologie : largeurs de colonnes de la maquette */
	.ch-tezos__row > .et_pb_column,
	.ch-split > .et_pb_column,
	.ch-infra__row > .et_pb_column {
		flex: 1 1 0;
		width: auto;
	}

	.ch-tezos__row > .ch-tezos__intro {
		flex: 0 0 551px;
	}

	.ch-techstats__row > .et_pb_column {
		flex: 1 1 0;
		width: auto;
	}

	.ch-techstats__row > .et_pb_column:first-child {
		flex: 0 1 484px;
	}

	.ch-legal__list > .et_pb_column {
		flex: 1 1 0;
		width: auto;
	}

	.ch-blogfeature > .ch-blogfeature__media {
		flex: 0 0 315px;
		width: auto;
	}

	.ch-blogfeature > .ch-blogfeature__text {
		flex: 1 1 0;
		width: auto;
	}

	.ch-split > .ch-split__aside,
	.ch-infra__row > .ch-host {
		flex: 0 0 644px;
	}

	.ch-contact__row > .ch-contact__infos {
		flex: 0 0 302px;
		max-width: 302px;
	}

	.ch-contact__row > .ch-contact__main {
		flex: 0 1 800px;
		max-width: 800px;
	}
}

@media (max-width: 980px) {
	.ch-section .ch-catalogue__grid > .et_pb_column {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:root {
		--ch-gutter: 32px;
	}

	.et_pb_section.ch-hero {
		min-height: 0;
		padding: 64px 0 120px;
	}

	.ch-netcard {
		margin: 48px auto 0;
	}

	.ch-expertise .et_pb_row,
	.ch-usecases .et_pb_row {
		gap: 40px 24px;
	}

	.ch-card-col--offset {
		margin-top: 0;
	}

	.ch-card,
	.ch-card-col--offset .ch-card {
		min-height: 440px;
	}

	.ch-chiffres .et_pb_column + .et_pb_column {
		margin-top: 64px;
	}

	.et_pb_section.ch-pagehero {
		min-height: 0;
		padding: 100px 0 140px;
	}

	.ch-section .et_pb_row.ch-product,
	.ch-section .et_pb_row.ch-api__box {
		padding: 40px 32px;
		row-gap: 40px;
	}

	/* Texte toujours à gauche une fois empilé : le bouton suit */
	.ch-product--reverse .et_pb_button_module_wrapper {
		text-align: left;
	}

	.ch-section .ch-product--reverse .et_pb_button {
		margin-left: 0;
		margin-right: auto;
	}

	.ch-section .ch-product__visual,
	.ch-product--reverse .ch-product__visual {
		margin-right: auto;
		margin-left: auto;
	}

	.ch-section .ch-code {
		margin: 0;
	}

	.ch-features__list {
		row-gap: 56px;
	}

	.ch-section .et_pb_module.ch-trust__cards {
		flex-direction: column;
		gap: 16px;
	}

	.ch-section .et_pb_module.ch-trust__card {
		flex: none;
		width: 100%;
		max-width: 400px;
		min-height: 0;
		padding: 40px 32px 32px;
	}

	.ch-section .et_pb_row.ch-legal__list {
		row-gap: 56px;
	}

	.ch-section .et_pb_row.ch-blogfeature {
		row-gap: 40px;
		padding: 40px 32px;
	}

	.ch-section .ch-blogfeature__media {
		align-items: center;
	}

	.ch-section .et_pb_module.ch-legal__tag {
		margin-top: 0;
	}

	.et_pb_section.ch-legal {
		padding: 80px 0;
	}

	.et_pb_section.ch-trust {
		padding-top: 80px;
	}

	.ch-section .et_pb_row.ch-tezos__row,
	.ch-section .et_pb_row.ch-techstats__row,
	.ch-section .et_pb_row.ch-split,
	.ch-section .et_pb_row.ch-infra__row {
		row-gap: 56px;
	}

	.ch-section .ch-techstats__row .et_pb_column:first-child .ch-techstat,
	.ch-section .ch-techstats__row .et_pb_column:last-child .ch-techstat {
		padding-left: 0;
	}

	.et_pb_section.ch-techstats {
		padding-top: 80px;
	}

	.et_pb_section.ch-infra {
		padding: 100px 0 100px;
	}

	.ch-section.ch-features p {
		margin-top: 24px;
	}

	/* Nous contacter : coordonnées en 2 colonnes au-dessus du formulaire */
	.ch-section .et_pb_column.ch-contact__infos {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 32px;
	}
}

@media (max-width: 767px) {
	.ch-section .ch-catalogue__grid > .et_pb_column {
		grid-template-columns: minmax(0, 1fr);
	}

	:root {
		--ch-gutter: 20px;
	}

	.ch-netcard {
		padding: 20px 14px;
		font-size: 17px;
	}

	.ch-section .et_pb_module.ch-netcard__stats {
		grid-template-columns: 1fr;
	}

	.ch-tile {
		padding: 10px 16px;
	}

	.ch-hero__logo {
		max-width: 150px;
	}

	.ch-card,
	.ch-card-col--offset .ch-card {
		min-height: 360px;
	}

	.ch-yci {
		padding: 40px 24px 24px;
	}

	.ch-section .et_pb_row.ch-cta__box {
		border-width: 4px;
		border-radius: 32px;
	}

	.ch-section .et_pb_row.ch-cta__box--gradient {
		border-width: 3px;
	}

	.ch-section .et_pb_column.ch-host {
		padding: 24px 20px 28px;
		border-radius: 32px;
	}

	.ch-section .ch-checklist ul {
		padding-left: 0;
	}

	.ch-section .et_pb_module.ch-integrity {
		padding: 16px 16px 24px;
	}

	.ch-section .et_pb_module.ch-integrity__head {
		padding: 4px 4px 20px;
	}

	.ch-section .et_pb_module.ch-integrity__rows {
		padding-left: 0;
	}

	.ch-section .ch-integrity__value {
		white-space: normal;
	}

	.ch-section .et_pb_row.ch-trust__box {
		padding: 36px 20px;
		border-radius: 32px;
	}

	.ch-section .et_pb_row.ch-blogfeature {
		padding: 32px 20px;
		border-radius: 32px;
	}

	.ch-section .et_pb_module.ch-blogfeature__lead {
		margin-top: 20px;
	}

	.ch-blogfeature__text .et_pb_button_module_wrapper {
		margin-top: 28px;
	}

	.ch-section .et_pb_button.ch-btn--roomy,
	.ch-section .et_pb_button.ch-btn--roomy:hover {
		padding: 0 16px 0 28px;
	}

	.et_pb_section.ch-article {
		padding: 48px 0 80px;
	}

	.ch-section .et_pb_row.ch-article__hero {
		padding: 72px 20px 32px;
		border-radius: 32px;
	}

	.ch-section .et_pb_module.ch-article__image {
		width: 240px;
		height: 240px;
	}

	.ch-section .et_pb_row.ch-article__body {
		padding-top: 40px;
	}

	.ch-section .ch-article__content .wp-block-button__link {
		gap: 14px;
		min-height: 52px;
		padding: 0 12px 0 22px;
		font-size: 16px;
		white-space: normal;
	}

	.ch-section .et_pb_row.ch-product,
	.ch-section .et_pb_row.ch-api__box {
		padding: 32px 20px;
	}

	.ch-section .ch-product__visual {
		border-radius: 32px;
	}

	.ch-section .et_pb_row.ch-api__box {
		border-radius: 32px;
	}

	.ch-section .ch-code {
		padding: 28px 24px;
		border-radius: 28px;
		font-size: 13px;
	}

	/* Nous contacter */
	.et_pb_section.ch-contact {
		padding-bottom: 80px;
	}

	.ch-section .et_pb_column.ch-contact__infos {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-section .et_pb_module.ch-contact__card {
		padding: 28px 20px 32px;
	}

	.ch-contact__form .wpcf7-form {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
	}

	.ch-section .ch-contact__form label {
		font-size: 16px;
		letter-spacing: -0.6px;
	}

	.ch-section .ch-contact__form input.wpcf7-form-control:not(.wpcf7-submit),
	.ch-section .ch-contact__form textarea.wpcf7-form-control {
		height: 52px;
		padding: 0 20px;
		font-size: 16px;
		letter-spacing: -0.5px;
	}

	.ch-section .ch-contact__form textarea.wpcf7-form-control {
		height: 140px;
		padding: 12px 20px;
	}

	.ch-section .ch-contact__form .wpcf7-submit {
		width: 100%;
		min-width: 0;
		max-width: 308px;
		font-size: 17px;
	}

	.ch-contact__form .wpcf7-spinner {
		display: none;
	}
}

/* ==========================================================================
   Accueil V3 (maquette « Control H webdesign V3 »)
   Header et footer globaux (Theme Builder).
   Typographie : réglages Divi des modules. Ici seulement la mise en page et le décor.
   ========================================================================== */

.et_pb_section.ch3 {
	--ch3-pad-x: 76px;
	--ch3-night: linear-gradient(135deg, var(--ch-ink), #161616);
	padding: 110px 0 120px;
	row-gap: 56px;
}

/* Rangées de 1360 px ; écart entre colonnes réglé par --ch3-gap (largeurs Divi recalculées avec) */
.ch-section.ch3 .et_pb_row {
	--horizontal-gap: var(--ch3-gap, 5.5%);
	width: calc(100% - 2 * var(--ch3-pad-x));
	max-width: 1360px;
}

.ch-section.ch3 .et_pb_row > .et_pb_column {
	--horizontal-gap-parent: var(--ch3-gap, 5.5%);
}

/* Modules texte sur toute la largeur de leur colonne ou groupe (sauf groupes en ligne, réglés plus bas) */
.ch-section.ch3 .et_flex_column > .et_pb_text,
.ch-section.ch3 .et_flex_group > .et_pb_text {
	width: 100%;
}

.ch-section.ch3 .et_pb_image .et_pb_image_wrap {
	display: block;
}

.ch-section.ch3 .et_pb_image img {
	display: block;
	height: auto;
}

/* Titres de section : surtitre, h2 sur deux lignes (seconde ligne en violet), accroche */
.ch-section .et_pb_module.ch3-heading {
	--vertical-gap: 22px;
	align-items: stretch;
	width: 100%;
}

.ch-section .et_pb_module.ch3-heading--center {
	--vertical-gap: 30px;
	align-items: center;
}

.ch-section .ch3-accent {
	display: block;
	color: var(--ch-violet);
}

/* Titre sur une seule ligne (fin en dégradé à la suite), repassé sur deux lignes sur mobile sauf exception */
.ch-section .ch3-h2--inline .ch3-accent {
	display: inline;
}

.ch-section .ch3-violet {
	color: var(--ch-violet);
}

.ch-section .ch3-heading--center .ch3-lead {
	max-width: 840px;
}

/* Titre + lien aligné en bas à droite (Nos solutions, Actualités) */
.ch-section.ch3 .et_pb_row.ch3-head {
	align-items: flex-end;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-head > .et_pb_column {
	flex: 0 1 auto;
	width: auto;
}

.ch-section.ch3 .ch3-head > .ch3-head__link {
	flex: none;
	align-items: flex-end;
}

/* --- Boutons : base ch-btn, variantes de la V3 ---
   Le réglage global « boutons sans icône » de Divi impose son padding en !important : il est repris ici. */

.ch-section.ch3 .et_pb_button.ch-btn,
.ch-section.ch3 .et_pb_button.ch-btn:hover {
	padding: 0 16px 0 30px !important;
	white-space: nowrap;
}

.ch-section .et_pb_button.ch-btn.ch3-btn--outline,
.ch-section .et_pb_button.ch-btn.ch3-btn--outline:hover {
	border: 1.5px solid #fff;
	background: transparent;
	color: #fff !important;
}

.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--sm,
.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--sm:hover {
	gap: 12px;
	min-height: 49px;
	padding: 0 10px 0 22px !important;
	font-size: 16px;
}

/* Lien fléché (sans fond) */
.ch-section .et_pb_button.ch-btn.ch3-btn--link,
.ch-section .et_pb_button.ch-btn.ch3-btn--link:hover {
	gap: 12px;
	min-height: 29px;
	padding: 0 !important;
	background: transparent;
	color: #fff !important;
	font-size: 18px;
	white-space: nowrap;
}

.ch-section .et_pb_button.ch-btn.ch3-btn--link:hover {
	box-shadow: none;
	transform: translateX(3px);
}

.ch-section .et_pb_button.ch-btn.ch3-btn--link-sm,
.ch-section .et_pb_button.ch-btn.ch3-btn--link-sm:hover {
	font-size: 16px;
}

/* --- Pastilles (litiges, pôles) --- */

.ch-section .ch3-pills ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-pills li {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border-radius: 50px;
	white-space: nowrap;
	list-style: none;
}

.ch-section .ch3-pills--night ul {
	max-width: 490px;
}

.ch-section .ch3-pills--night li {
	border: 1px solid var(--ch-violet);
	background: var(--ch3-night);
}

.ch-section .ch3-pills--outline li {
	padding: 6px 14px;
	border: 1px solid rgba(255, 255, 255, 0.6);
}

.ch-section .ch3-pills--outline li.is-dashed {
	border-style: dashed;
}

/* ==========================================================================
   Header V3 (header global du site)
   Fond, hauteur, marges, alignements, largeurs de colonnes et visibilité : réglages Divi.
   Ici seulement ce que Divi ne sait pas faire : logo en dégradé, décor du menu, bouton.
   ========================================================================== */

/* Logo en dégradé */
.ch-section .ch3-brand a {
	background: var(--ch-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	white-space: nowrap;
}

/* Menu : écart de 32 px, chevron sur « Solutions » */
.ch-section .ch3-menu .et-menu {
	display: flex;
	align-items: center;
	gap: 32px;
	margin: 0;
}

.ch-section .ch3-menu .et-menu > li {
	margin: 0;
	padding: 0;
}

.ch-section .ch3-menu .et-menu > li > a {
	padding: 26px 0;
	white-space: nowrap;
}

.ch-section .ch3-menu .et-menu > li > a:hover,
.ch-section .ch3-menu .et-menu > li > a:focus-visible {
	opacity: 1;
	color: var(--ch-cyan) !important;
}

/* Lien de la page en cours : libellé en 500, filet dégradé de 2 px dessous */
.ch-section .ch3-menu .et-menu > .current-menu-item > a {
	font-weight: 500;
	background: var(--ch-gradient) left bottom 18px / 100% 2px no-repeat;
}

.ch-section .ch3-menu .et-menu .menu-item-has-children > a:first-child {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding-right: 0;
}

.ch-section .ch3-menu .et-menu .menu-item-has-children > a:first-child::after {
	content: '';
	position: static;
	width: 10px;
	height: 6px;
	background: url(assets/img/chevron-down-white.svg) center / contain no-repeat;
	font-size: 0;
}

.ch-section .ch3-menu .et-menu .sub-menu {
	padding: 12px 0;
	border-top-width: 2px;
	border-radius: 0 0 15px 15px;
}

.ch-section .ch3-menu .et-menu .sub-menu a {
	width: 100%;
	padding: 8px 20px;
}

/* Burger (sous 980 px) : à droite, menu déroulé sur toute la largeur sous le header */
.ch-section .ch3-menu .et_mobile_nav_menu {
	margin-left: auto;
}

.ch-section .ch3-menu .et_mobile_menu {
	border-top: 2px solid var(--ch-violet);
	border-radius: 0 0 15px 15px;
}

.ch-section .ch3-menu .et_mobile_menu a {
	color: #fff;
}

/* Bouton démo : 41 px, 14 px, petite flèche */
.ch-section .et_pb_button.ch-btn.ch3-btn--xs,
.ch-section .et_pb_button.ch-btn.ch3-btn--xs:hover {
	gap: 8px;
	min-height: 41px;
	padding: 0 16px 0 18px !important;
	font-size: 14px;
	white-space: nowrap;
}

@media (max-width: 980px) {
	/* Menu du burger sur toute la largeur, sous le header */
	.ch-section .ch3-header__row > .et_pb_column,
	.ch-section .ch3-menu,
	.ch-section .ch3-menu .et_pb_menu_inner_container,
	.ch-section .ch3-menu .et_pb_menu__wrap,
	.ch-section .ch3-menu .et_mobile_nav_menu,
	.ch-section .ch3-menu .mobile_nav {
		position: static;
	}

	.ch-section .ch3-menu .et_mobile_menu {
		top: 100%;
		right: 0;
		left: 0;
		width: auto;
		padding: 12px 24px 20px;
	}
}

/* ==========================================================================
   Accueil V3 — 01 Hero
   ========================================================================== */

.et_pb_section.ch3-hero {
	padding: 70px 0 160px;
	background:
		radial-gradient(circle at 28% 52%, #080808 0%, rgba(8, 8, 8, 0.85) 30%, rgba(8, 8, 8, 0) 58%),
		linear-gradient(172deg, rgba(12, 12, 12, 0.95) 0%, rgba(12, 12, 12, 0.76) 26%, var(--ch-violet) 68%, var(--ch-cyan) 100%);
}

/* Fondu vers le noir de la section suivante */
.et_pb_section.ch3-hero::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 120px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0), #000);
	pointer-events: none;
}

.ch-section.ch3 .et_pb_row.ch3-hero__row {
	--ch3-gap: 40px;
	position: relative;
	z-index: 1;
	align-items: center;
	justify-content: space-between;
	max-width: 1355px;
}

.ch-section.ch3 .ch3-hero__row > .ch3-hero__content {
	--vertical-gap: 28px;
	flex: 0 1 780px;
	width: auto;
}

.ch-section.ch3 .ch3-hero__row > .ch3-hero__aside {
	flex: 0 0 500px;
	width: auto;
}

.ch-section .ch3-hero__logo img {
	width: 180px;
}

.ch-section .ch3-hero__lead {
	max-width: 650px;
}

.ch-section .et_pb_module.ch3-ctas {
	--flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	padding-top: 10px;
}

/* Carte vitrée « État du réseau » */
.ch-section .et_pb_module.ch3-net {
	--vertical-gap: 18px;
	width: 100%;
	padding: 30px 22px 24px;
	border: 0.75px solid rgba(255, 255, 255, 0.7);
	border-radius: 15px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
	-webkit-backdrop-filter: blur(15px);
	backdrop-filter: blur(15px);
}

.ch-section .et_pb_module.ch3-net__head {
	--flex-direction: row;
	align-items: center;
	justify-content: space-between;
	padding: 0 8px 18px;
	border-bottom: 1px solid var(--ch-ink);
}

.ch-section.ch3 .ch3-net__head > .et_pb_text {
	width: auto;
}

.ch-section .ch3-live p {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ch-section .ch3-live p::before {
	content: '';
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ch-ink);
	box-shadow: 0 0 7px #100135;
}

.ch-section .et_pb_module.ch3-net__stats {
	--flex-direction: row;
	gap: 12px;
}

.ch-section .et_pb_module.ch3-net__tile,
.ch-section .et_pb_module.ch3-net__proofs {
	border-radius: 20px;
	background: var(--ch3-night);
}

.ch-section .et_pb_module.ch3-net__tile {
	--vertical-gap: 4px;
	flex: 1 1 0;
	padding: 16px 18px;
}

.ch-section .et_pb_module.ch3-net__tile + .ch3-net__tile {
	flex: 0 0 190px;
}

.ch-section .et_pb_module.ch3-net__proofs {
	--vertical-gap: 12px;
	padding: 20px 22px;
}

.ch-section .ch3-net__proof p {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.ch-section .ch3-net__proof strong {
	color: var(--ch-violet);
	font-weight: 700;
	white-space: nowrap;
}

/* ==========================================================================
   Accueil V3 — 02 En chiffres
   ========================================================================== */

.et_pb_section.ch3-counters {
	padding: 80px 0 110px;
	row-gap: 40px;
}

.ch-section.ch3 .et_pb_row.ch3-counters__row {
	--ch3-gap: 0px;
}

.ch-section.ch3 .ch3-counters__row > .ch3-counter {
	--vertical-gap: 10px;
	padding: 0 40px;
	border-left: 1px solid #222;
}

.ch-section.ch3 .ch3-counters__row > .ch3-counter:first-child {
	padding-left: 0;
	border-left: 0;
}

.ch-section.ch3 .ch3-counters__row > .ch3-counter:last-child {
	padding-right: 0;
}

.ch-section .ch3-counter__value p {
	white-space: nowrap;
}

.ch-section .ch3-counter__value sup {
	position: relative;
	top: -0.85em;
	font-size: 0.5em;
	line-height: 0;
	vertical-align: baseline;
}

.ch-section .ch3-counter__desc {
	min-height: 52px;
}

/* ==========================================================================
   Accueil V3 — 03 Le problème + graphique « effet ciseaux »
   ========================================================================== */

.et_pb_section.ch3-problem {
	padding: 100px 0 120px;
}

.ch-section.ch3 .et_pb_row.ch3-problem__row {
	--ch3-gap: 60px;
	align-items: center;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-problem__row > .ch3-problem__intro {
	--vertical-gap: 28px;
	flex: 0 1 660px;
	width: auto;
}

.ch-section.ch3 .ch3-problem__row > .ch3-problem__aside {
	flex: 0 1 600px;
	width: auto;
}

.ch-section .ch3-problem__text p + p {
	margin-top: 18px;
}

.ch-section .ch3-manifesto em {
	color: var(--ch-cyan);
	font-style: italic;
}

.ch-section .et_pb_module.ch3-chart {
	--vertical-gap: 26px;
	width: 100%;
	padding: 36px 36px 30px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 40px;
	background:
		radial-gradient(circle at 92% 6%, rgba(171, 0, 255, 0.28) 0%, rgba(171, 0, 255, 0) 38%),
		linear-gradient(160deg, #130338 0%, #0b0620 55%, #141414 100%);
}

.ch-section .et_pb_module.ch3-chart__head {
	--vertical-gap: 10px;
}

/* Courbes (image) et libellés posés dessus, en proportion du graphique de 528 × 294 px */
.ch-section .et_pb_module.ch3-chart__plot {
	display: block;
	position: relative;
	width: 100%;
	max-width: 528px;
	padding: 6px 20.5% 26px 0;
}

.ch-section .ch3-chart__curves img {
	width: 100%;
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label,
.ch-section.ch3 .ch3-chart__plot > .ch3-chart__axis {
	position: absolute;
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label {
	width: 94px;
}

.ch-section .ch3-chart__label strong {
	display: block;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 17px;
}

.ch-section .ch3-chart__label--bottom strong {
	color: var(--ch-grey-light);
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--top {
	top: 17px;
	left: 82.2%;
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--bottom {
	top: 73.5%;
	left: 82.2%;
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--gap {
	top: 36.7%;
	left: 54%;
	width: 124px;
	text-align: center;
}

.ch-section .ch3-chart__label--gap strong {
	font-size: 15px;
	line-height: 22px;
}

.ch-section .ch3-chart__label--gap p {
	color: #e2d6f5;
}

.ch-section.ch3 .ch3-chart__plot > .ch3-chart__axis {
	bottom: 0;
	left: 0;
	width: 79.5%;
}

.ch-section .ch3-chart__axis p {
	display: flex;
	justify-content: space-between;
}

/* Légende : trait dégradé, tirets gris, carré violet */
.ch-section .ch3-legend ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-legend li {
	display: flex;
	align-items: center;
	gap: 8px;
	list-style: none;
}

.ch-section .ch3-legend li::before {
	content: '';
	flex: none;
	width: 22px;
	height: 3px;
	border-radius: 3px;
	background: var(--ch-gradient);
}

.ch-section .ch3-legend li:nth-child(2)::before {
	border-radius: 0;
	background: repeating-linear-gradient(90deg, #8a8fa3 0 6px, transparent 6px 12px);
}

.ch-section .ch3-legend li:nth-child(3)::before {
	width: 14px;
	height: 14px;
	border-radius: 4px;
	background: var(--ch-violet);
	opacity: 0.45;
}

/* Réponse CONTROLH : encadré à bordure dégradée */
.ch-section .et_pb_module.ch3-chart__answer {
	--flex-direction: row;
	align-items: center;
	column-gap: 16px;
	padding: 18px 22px;
	border: 1.5px solid transparent;
	border-radius: 24px;
	background:
		linear-gradient(#0b0620, #0b0620) padding-box,
		linear-gradient(90deg, var(--ch-violet), var(--ch-cyan)) border-box;
}

.ch-section.ch3 .ch3-chart__answer > .ch3-chart__check {
	flex: none;
	width: 40px;
}

.ch-section.ch3 .ch3-chart__answer > .et_pb_text {
	flex: 1 1 auto;
	width: auto;
}

.ch-section .ch3-chart__check img {
	width: 40px;
}

.ch-section .ch3-chart__answer strong {
	color: #fff;
	font-weight: 600;
}

/* ==========================================================================
   Accueil V3 — 04 Nos 3 pôles (cartes de pôle, fond dégradé dans les réglages Divi)
   ========================================================================== */

.ch-section.ch3 .et_pb_row.ch3-poles__row {
	--ch3-gap: 36px;
}

.ch-section .et_pb_module.ch3-pole {
	--vertical-gap: 18px;
	position: relative;
	width: 100%;
	height: 600px;
	padding: 40px 32px 32px;
	overflow: hidden;
	border-radius: 40px;
}

.ch-section .ch3-pole__title h3 {
	white-space: nowrap;
}

.ch-section .ch3-pole__sub {
	min-height: 54px;
}

.ch-section .ch3-pole__desc {
	min-height: 130px;
}

.ch-section .ch3-pole .et_pb_button_module_wrapper {
	padding-top: 6px;
}

.ch-section.ch3 .ch3-pole > .ch3-pole__num {
	position: absolute;
	right: 28px;
	bottom: 14px;
	width: auto;
}

/* ==========================================================================
   Accueil V3 — 05 Nos solutions (filtres, cartes d'application, bandeau éditeurs)
   ========================================================================== */

.et_pb_section.ch3-catalogue {
	row-gap: 40px;
}

/* Filtres : « Toutes » actif par défaut, le script les rend interactifs */
.ch-section .ch3-filters ul {
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-filters li {
	flex: none;
	list-style: none;
}

.ch-section .ch3-filters a {
	display: inline-flex;
	align-items: center;
	padding: 12px 24px;
	border: 1px solid #555;
	border-radius: 50px;
	white-space: nowrap;
	transition: border-color 0.2s ease;
}

.ch-section .ch3-filters a:hover {
	border-color: #fff;
}

.ch-section .ch3-filters a[aria-pressed='true'] {
	border-color: transparent;
	background: var(--ch-gradient) padding-box, var(--ch-gradient) border-box;
}

.ch-section.ch3 .et_pb_row.ch3-apps {
	--ch3-gap: 24px;
}

/* Cartes de même largeur, même si les boutons de l'une sont plus longs */
.ch-section.ch3 .ch3-apps > .et_pb_column {
	min-width: 0;
}

.ch-section.ch3 .ch3-apps > .et_pb_column[hidden] {
	display: none;
}

.ch-section .et_pb_module.ch3-app {
	--vertical-gap: 12px;
	width: 100%;
	min-height: 680px;
	padding: 20px 20px 26px;
	border: 1px solid #2a2a2a;
	border-radius: 40px;
	background: linear-gradient(180deg, #111, #222);
}

.ch-section.ch3 .ch3-app > .et_pb_text {
	padding: 0 8px;
}

.ch-section .et_pb_module.ch3-app__visual {
	flex: none;
	align-items: center;
	justify-content: center;
	height: 170px;
	margin-bottom: 6px !important;
	border-radius: 28px;
	background: #000;
}

.ch-section .et_pb_module.ch3-app__visual--green {
	background: linear-gradient(90deg, rgba(0, 87, 54, 0.6), rgba(0, 189, 117, 0.3)), #0a0a0a;
}

.ch-section.ch3 .ch3-app__logo img {
	width: auto;
	height: 120px;
}

/* Logo à fournir : initiales dans un carré à bord cyan */
.ch-section.ch3 .ch3-app__visual > .ch3-app__initials {
	flex: none;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	border: 1.5px solid var(--ch-cyan);
	border-radius: 24px;
	background: var(--ch3-night);
}

.ch-section .ch3-badges {
	min-height: 58px;
}

.ch-section .ch3-badges ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-badges li {
	display: inline-flex;
	padding: 5px 11px;
	border: 1px solid #555;
	border-radius: 50px;
	list-style: none;
	white-space: nowrap;
}

.ch-section .ch3-badges li.is-gradient {
	padding: 6px 11px;
	border: 0;
	background: var(--ch-gradient);
}

.ch-section .ch3-badges li.is-cyan {
	border-color: var(--ch-cyan);
	color: var(--ch-cyan);
}

.ch-section .et_pb_module.ch3-app__actions {
	--flex-direction: row;
	align-items: center;
	gap: 16px;
	margin-top: auto;
	padding: 0 4px;
}

.ch-section.ch3 .ch3-app__actions > .et_pb_button_module_wrapper {
	flex: none;
	width: auto;
}

/* Bandeau éditeurs */
.ch-section.ch3 .et_pb_row.ch3-editors {
	--ch3-gap: 32px;
	align-items: center;
	justify-content: space-between;
	padding: 28px 28px 28px 40px;
	border-radius: 30px;
	background: var(--ch3-night);
}

.ch-section.ch3 .ch3-editors > .et_pb_column {
	flex: 0 1 auto;
	width: auto;
}

.ch-section.ch3 .ch3-editors > .ch3-editors__cta {
	flex: none;
	align-items: flex-end;
}

.ch-section .ch3-editors h3 {
	margin-bottom: 6px;
}

/* ==========================================================================
   Accueil V3 — 06 Tezos & écosystème
   ========================================================================== */

.et_pb_section.ch3-tezos {
	background: radial-gradient(circle at 75% 60%, rgba(171, 0, 255, 0.35) 0%, rgba(171, 0, 255, 0) 40%), #000;
}

.ch-section.ch3 .et_pb_row.ch3-tezos__row {
	align-items: flex-start;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-tezos__row > .ch3-tezos__why {
	--vertical-gap: 34px;
	flex: 0 1 600px;
	width: auto;
}

.ch-section.ch3 .ch3-tezos__row > .ch3-tezos__aside {
	flex: 0 1 660px;
	width: auto;
}

.ch-section .ch3-tezos__why .et_pb_button_module_wrapper {
	padding-top: 10px;
}

/* Arguments numérotés */
.ch-section .et_pb_module.ch3-arg {
	--flex-direction: row;
	align-items: flex-start;
	column-gap: 20px;
}

.ch-section.ch3 .ch3-arg > .ch3-arg__num {
	flex: none;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--ch-cyan);
	border-radius: 50%;
	background: var(--ch3-night);
}

.ch-section.ch3 .ch3-arg > .ch3-arg__text {
	flex: 1 1 auto;
}

.ch-section .ch3-arg__text h3 {
	margin-bottom: 8px;
}

/* Carte « Notre contribution » : verre sombre à bordure dégradée */
.ch-section .et_pb_module.ch3-contrib,
.ch-section.ch3 .et_pb_row.ch3-investors__card {
	border: 1.5px solid transparent;
	border-radius: 24px;
	background:
		radial-gradient(circle at 0% 0%, rgba(171, 0, 255, 0.42) 0%, rgba(171, 0, 255, 0) 45%) padding-box,
		radial-gradient(circle at 100% 100%, rgba(2, 241, 255, 0.16) 0%, rgba(2, 241, 255, 0) 40%) padding-box,
		linear-gradient(135deg, #16053f 0%, #0b0620 55%, #0a0a12 100%) padding-box,
		linear-gradient(120deg, var(--ch-violet) 0%, rgba(171, 0, 255, 0.25) 45%, var(--ch-cyan) 100%) border-box;
}

.ch-section .et_pb_module.ch3-contrib {
	--vertical-gap: 16px;
	width: 100%;
	padding: 30px 24px 26px;
}

.ch-section .et_pb_module.ch3-contrib__head {
	--flex-direction: row;
	align-items: center;
	column-gap: 12px;
	padding: 0 8px 16px;
	border-bottom: 1px solid;
	border-image: linear-gradient(90deg, rgba(171, 0, 255, 0.8), rgba(2, 241, 255, 0.5)) 1;
}

.ch-section.ch3 .ch3-contrib__head > .et_pb_text {
	width: auto;
}

.ch-section.ch3 .ch3-contrib__head > .ch3-contrib__logo {
	flex: none;
	width: 20px;
}

.ch-section .ch3-contrib__logo img {
	width: 20px;
}

.ch-section .et_pb_module.ch3-stat {
	--vertical-gap: 8px;
	padding: 22px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.04);
}

.ch-section .et_pb_module.ch3-stat--main {
	--flex-direction: row;
	align-items: center;
	column-gap: 24px;
	padding: 26px;
}

.ch-section.ch3 .ch3-stat--main > .ch3-stat__logo {
	flex: none;
	width: 74px;
}

.ch-section .ch3-stat__logo img {
	width: 74px;
}

.ch-section .et_pb_module.ch3-stat__body {
	--vertical-gap: 6px;
	flex: 1 1 auto;
}

.ch-section .et_pb_module.ch3-stat__row {
	--flex-direction: row;
	column-gap: 16px;
}

.ch-section .ch3-stat__row > .ch3-stat {
	flex: 1 1 0;
}

/* ==========================================================================
   Accueil V3 — 07 Études de cas
   ========================================================================== */

.et_pb_section.ch3-cases {
	row-gap: 44px;
}

.ch-section.ch3 .et_pb_row.ch3-cases__row {
	--ch3-gap: 32px;
}

.ch-section .et_pb_module.ch3-case {
	position: relative;
	justify-content: space-between;
	width: 100%;
	height: 440px;
	padding: 44px 40px 32px;
	overflow: hidden;
	border-radius: 40px;
}

.ch-section .et_pb_module.ch3-case__body {
	--vertical-gap: 16px;
}

/* Teintes des applications (YouCheckInn vert, TrueMedia bleu), assombries vers le bas */
.ch-section .et_pb_module.ch3-case--yci {
	border: 1px solid rgba(0, 189, 117, 0.25);
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.6) 100%),
		linear-gradient(90deg, rgba(0, 87, 54, 0.55) 0%, rgba(0, 189, 117, 0.275) 100%),
		#0a0a0a;
}

.ch-section .et_pb_module.ch3-case--tm {
	border: 1px solid rgba(2, 178, 237, 0.25);
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.6) 100%),
		linear-gradient(90deg, rgba(74, 71, 158, 0.5) 0%, rgba(2, 178, 237, 0.25) 100%),
		#0a0a0a;
}

/* Illustration (fond d'image du module) assombrie pour la lisibilité */
.ch-section .et_pb_module.ch3-case--image::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 0, 54, 0.55), rgba(0, 0, 0, 0.92) 70%);
}

.ch-section .ch3-case--image > .et_pb_module {
	position: relative;
}

/* ==========================================================================
   Accueil V3 — 08 Incubateur
   ========================================================================== */

.et_pb_section.ch3-incub {
	padding-top: 80px;
}

.ch-section.ch3 .et_pb_row.ch3-incub__box {
	padding: 72px 56px 64px;
	border: 6px solid transparent;
	border-radius: 50px;
	background:
		linear-gradient(#000, #000) padding-box,
		linear-gradient(135deg, var(--ch-violet), var(--ch-cyan)) border-box;
}

.ch-section.ch3 .ch3-incub__box > .et_pb_column {
	--vertical-gap: 30px;
	align-items: center;
}

.ch-section .et_pb_module.ch3-steps {
	--flex-direction: row;
	align-items: center;
	justify-content: center;
	column-gap: 14px;
	width: 100%;
	padding: 14px 0 12px;
}

.ch-section .et_pb_module.ch3-step {
	--vertical-gap: 12px;
	flex: 0 1 270px;
	align-self: stretch;
	min-height: 250px;
	padding: 30px 26px;
	border-radius: 30px;
	background: var(--ch3-night);
}

.ch-section .ch3-step__title {
	min-height: 54px;
}

.ch-section.ch3 .ch3-steps > .ch3-steps__arrow {
	flex: none;
	width: 20px;
}

.ch-section .ch3-steps__arrow img {
	width: 20px;
}

/* ==========================================================================
   Accueil V3 — 09 Actualités du terrain (cartes de la grille du Blog)
   ========================================================================== */

.et_pb_section.ch3-news {
	padding-top: 80px;
	row-gap: 44px;
}

.ch3-news .ch3-lead {
	max-width: 720px;
}

.ch-section .ch3-posts .et_pb_post {
	position: relative;
	min-height: 560px;
	padding: 0 0 34px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

/* Visuel, puis catégories au-dessus du titre ; la date passe en bas à gauche, face à « Lire plus » */
.ch-section .ch3-posts .et_pb_image_container,
.ch-section .ch3-posts .et_pb_no_thumb::before {
	order: -2;
}

.ch-section.ch3 .ch3-posts .et_pb_post .post-meta {
	order: -1;
	margin: 30px 0 0;
	padding: 0 43px;
	font-size: 0;
}

.ch-section.ch3 .ch3-posts .et_pb_post .post-meta .entry-categories,
.ch-section.ch3 .ch3-posts .et_pb_post .post-meta .entry-categories a {
	font-size: 12px;
}

.ch-section.ch3 .ch3-posts .et_pb_post .post-meta .published {
	position: absolute;
	bottom: 34px;
	left: 43px;
	color: var(--ch-grey);
	font-size: 14px;
	line-height: 30px;
}

.ch-section .ch3-posts .entry-title {
	padding: 12px 43px 0;
}

.ch-section .ch3-posts .post-content {
	padding: 12px 43px 0;
}

.ch-section .ch3-posts .more-link {
	margin: auto 0 0 auto;
	padding-top: 20px;
}

.ch-section .ch3-posts .more-link::first-letter {
	text-transform: uppercase;
}

/* ==========================================================================
   Accueil V3 — 10 Investisseurs
   ========================================================================== */

.et_pb_section.ch3-investors {
	padding: 60px 0 140px;
	background: radial-gradient(circle at 50% 55%, rgba(171, 0, 255, 0.35) 0%, rgba(171, 0, 255, 0) 45%), #000;
}

.ch-section.ch3 .et_pb_row.ch3-investors__card {
	--ch3-gap: 56px;
	align-items: center;
	justify-content: space-between;
	padding: 56px;
}

.ch-section.ch3 .ch3-investors__card > .ch3-investors__intro {
	--vertical-gap: 20px;
	flex: 0 1 600px;
	width: auto;
}

.ch-section.ch3 .ch3-investors__card > .ch3-investors__aside {
	--vertical-gap: 22px;
	flex: 0 1 560px;
	width: auto;
}

/* ==========================================================================
   Footer V3 (footer global du site)
   Fond, filets, marges, largeurs, colonnes et écarts : réglages Divi.
   Ici seulement l'intérieur des modules : champs de la newsletter, listes de liens, point du bandeau.
   ========================================================================== */

/* Newsletter : champ e-mail + bouton dégradé sur une ligne */
.ch-section .ch3-newsletter__form .wpcf7-form > p {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.ch-section .ch3-newsletter__form .wpcf7-form > p > label {
	flex: 1 1 auto;
}

.ch-section .ch3-newsletter__form .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.ch-section .ch3-newsletter__form input.wpcf7-email {
	width: 100%;
	height: 57px;
	padding: 0 24px;
	border: 1px solid #c1c1c1;
	border-radius: 24px;
	background: #555;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 17px;
}

.ch-section .ch3-newsletter__form input.wpcf7-email::placeholder {
	color: #b8b8b8;
	opacity: 1;
}

.ch-section .ch3-newsletter__form .et_pb_button.wpcf7-submit,
.ch-section .ch3-newsletter__form .et_pb_button.wpcf7-submit:hover {
	flex: none;
	height: 57px;
	margin: 0;
	padding: 0 22px !important;
	border: 0 !important;
	border-radius: 50px;
	background: var(--ch-gradient);
	color: #fff !important;
	font-family: var(--ch-font);
	font-size: 16px;
	font-weight: 500;
	line-height: 1 !important;
	letter-spacing: -0.03em;
}

.ch-section .ch3-newsletter__form .et_pb_button.wpcf7-submit::after,
.ch-section .ch3-newsletter__form .wpcf7-spinner {
	display: none;
}

.ch-section .ch3-newsletter__form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 8px 14px;
	border-radius: 12px;
	font-size: 14px;
}

/* Colonnes de liens */
.ch-section .ch3-footer__links h3 {
	margin-bottom: 12px;
}

.ch-section .ch3-footer__links ul {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-footer__links li {
	list-style: none;
}

.ch-section .ch3-footer__links a:hover,
.ch-section .ch3-footer__bottom a:hover {
	color: var(--ch-cyan);
}

/* Bandeau souveraineté : point cyan devant le texte */
.ch-section .ch3-footer__sovereign p {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ch-section .ch3-footer__sovereign p::before {
	content: '';
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ch-cyan);
}

/* Langue : FR en blanc */
.ch-section .ch3-lang strong {
	color: #fff;
	font-weight: 400;
}

@media (max-width: 767px) {
	.ch-section .ch3-footer__sovereign p {
		align-items: flex-start;
	}

	.ch-section .ch3-footer__sovereign p::before {
		margin-top: 7px;
	}
}

/* ==========================================================================
   Accueil V3 — responsive
   ========================================================================== */

@media (max-width: 1280px) {
	.ch-section.ch3 .ch3-hero__row > .ch3-hero__aside {
		flex-basis: 440px;
	}

	.ch-section.ch3 .ch3-problem__row > .ch3-problem__aside,
	.ch-section.ch3 .ch3-tezos__row > .ch3-tezos__aside {
		flex-basis: 48%;
	}
}

@media (max-width: 980px) {
	.et_pb_section.ch3 {
		--ch3-pad-x: 40px;
		row-gap: 40px;
	}

	.ch-section.et_pb_section.ch3 {
		padding: 80px 0;
	}

	.ch-section.ch3 .et_pb_row {
		--vertical-gap: 24px;
	}

	/* Colonnes empilées */
	.ch-section.ch3 .ch3-hero__row > .et_pb_column,
	.ch-section.ch3 .ch3-problem__row > .et_pb_column,
	.ch-section.ch3 .ch3-tezos__row > .et_pb_column,
	.ch-section.ch3 .ch3-investors__card > .et_pb_column,
	.ch-section.ch3 .ch3-editors > .et_pb_column {
		flex: 1 1 100%;
		width: 100%;
	}

	.ch-section.ch3 .ch3-hero__row,
	.ch-section.ch3 .ch3-problem__row,
	.ch-section.ch3 .ch3-tezos__row,
	.ch-section.ch3 .ch3-investors__card {
		--vertical-gap: 48px;
	}

	.et_pb_section.ch3.ch3-hero {
		padding: 48px 0 120px;
	}

	.ch-section.ch3 .ch3-head > .et_pb_column {
		flex: 1 1 100%;
		width: 100%;
	}

	.ch-section.ch3 .ch3-head > .ch3-head__link {
		align-items: flex-start;
	}

	/* Compteurs en 2 × 2 */
	.ch-section.ch3 .ch3-counters__row > .ch3-counter:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}

	.ch-section.ch3 .et_pb_row.ch3-counters__row {
		--vertical-gap: 40px;
	}

	.ch-section .et_pb_module.ch3-pole {
		height: auto;
		min-height: 480px;
	}

	.ch-section .ch3-pole__desc,
	.ch-section .ch3-pole__sub {
		min-height: 0;
	}

	.ch-section .et_pb_module.ch3-app {
		height: auto;
		min-height: 640px;
	}

	.ch-section .et_pb_module.ch3-case {
		height: auto;
		min-height: 400px;
		gap: 32px;
	}

	/* Étapes de l'incubateur en 2 × 2, sans flèches */
	.ch-section.ch3 .et_pb_row.ch3-incub__box {
		padding: 56px 32px;
	}

	.ch-section .et_pb_module.ch3-steps {
		flex-wrap: wrap;
		gap: 14px;
	}

	.ch-section .et_pb_module.ch3-step {
		flex: 1 1 calc(50% - 7px);
		height: auto;
		min-height: 220px;
	}

	.ch-section.ch3 .ch3-steps > .ch3-steps__arrow {
		display: none;
	}

	.ch-section.ch3 .et_pb_row.ch3-editors {
		padding: 28px;
	}

	.ch-section.ch3 .ch3-editors > .ch3-editors__cta {
		align-items: flex-start;
	}

	.ch-section.ch3 .et_pb_row.ch3-investors__card {
		padding: 40px;
	}

}

@media (max-width: 767px) {
	.et_pb_section.ch3 {
		--ch3-pad-x: 20px;
		row-gap: 32px;
	}

	.ch-section.et_pb_section.ch3 {
		padding: 72px 0;
	}

	.et_pb_section.ch3.ch3-hero {
		padding: 32px 0 100px;
	}

	.ch-section .ch3-hero__logo img {
		width: 120px;
	}

	.ch-section .et_pb_module.ch3-ctas {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.ch-section.ch3 .ch3-ctas > .et_pb_button_module_wrapper {
		align-self: stretch;
		width: 100%;
	}

	/* Divi limite les boutons à leur contenu (max-width: max-content) */
	.ch-section.ch3 .ch3-ctas .et_pb_button.ch-btn {
		justify-content: space-between;
		width: 100%;
		max-width: none;
		font-size: 17px;
	}

	.ch-section .et_pb_module.ch3-net {
		padding: 22px 14px 18px;
	}

	.ch-section .et_pb_module.ch3-net__stats {
		flex-direction: column;
	}

	.ch-section .et_pb_module.ch3-net__tile + .ch3-net__tile {
		flex-basis: auto;
	}

	/* Compteurs empilés, séparés par un filet horizontal */
	.ch-section.ch3 .ch3-counters__row > .ch3-counter,
	.ch-section.ch3 .ch3-counters__row > .ch3-counter:nth-child(odd) {
		padding: 24px 0 0;
		border-top: 1px solid #222;
		border-left: 0;
	}

	.ch-section.ch3 .ch3-counters__row > .ch3-counter:first-child {
		padding-top: 0;
		border-top: 0;
	}

	.ch-section.ch3 .et_pb_row.ch3-counters__row {
		--vertical-gap: 24px;
	}

	.ch-section .ch3-counter__desc {
		min-height: 0;
	}

	.ch-section .ch3-h2--inline:not(.ch3-h2--inline-phone) .ch3-accent {
		display: block;
	}

	.ch-section .ch3-pills li {
		white-space: normal;
	}

	/* Graphique : courbes sur toute la largeur, seul « L'écart » reste posé dessus */
	.ch-section .et_pb_module.ch3-chart {
		--vertical-gap: 20px;
		padding: 26px 22px 22px;
		border-radius: 32px;
	}

	.ch-section .et_pb_module.ch3-chart__plot {
		padding-right: 0;
	}

	.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--top,
	.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--bottom {
		display: none;
	}

	.ch-section.ch3 .ch3-chart__plot > .ch3-chart__label--gap {
		top: 34%;
		left: 62%;
		width: 100px;
	}

	.ch-section .ch3-chart__label--gap strong {
		font-size: 13px;
		line-height: 18px;
	}

	.ch-section.ch3 .ch3-chart__plot > .ch3-chart__axis {
		width: 100%;
	}

	.ch-section .ch3-legend ul {
		flex-direction: column;
		gap: 8px;
	}

	.ch-section .et_pb_module.ch3-chart__answer {
		column-gap: 12px;
		padding: 14px 16px;
		border-radius: 20px;
	}

	.ch-section .ch3-chart__check img {
		width: 34px;
	}

	.ch-section .et_pb_module.ch3-pole {
		min-height: 440px;
		padding: 32px 24px 24px;
		border-radius: 32px;
	}

	.ch-section .ch3-pole__title h3 {
		white-space: normal;
	}

	/* Filtres et études de cas : défilement horizontal */
	.ch-section .ch3-filters ul {
		gap: 8px;
		margin-right: calc(-1 * var(--ch3-pad-x));
		padding-right: var(--ch3-pad-x);
		overflow-x: auto;
		scrollbar-width: none;
	}

	.ch-section .ch3-filters a {
		padding: 10px 18px;
		font-size: 14px;
	}

	.ch-section .et_pb_module.ch3-app {
		min-height: 0;
		border-radius: 32px;
	}

	.ch-section .ch3-badges {
		min-height: 0;
	}

	.ch-section.ch3 .et_pb_row.ch3-cases__row {
		flex-wrap: nowrap;
		gap: 14px;
		margin-right: 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.ch-section.ch3 .ch3-cases__row > .et_pb_column {
		flex: 0 0 85%;
		width: 85%;
		scroll-snap-align: start;
	}

	.ch-section .et_pb_module.ch3-case {
		min-height: 420px;
		padding: 32px 24px 24px;
		border-radius: 32px;
	}

	.ch-section.ch3 .et_pb_row.ch3-editors {
		padding: 24px;
		border-radius: 24px;
	}

	.ch-section .ch3-editors .et_pb_button.ch-btn {
		font-size: 16px;
		white-space: normal;
	}

	.ch-section.ch3 .ch3-tezos__row > .ch3-tezos__why {
		--vertical-gap: 24px;
	}

	.ch-section .ch3-tezos__why .et_pb_button.ch-btn {
		font-size: 16px;
		white-space: normal;
	}

	.ch-section .et_pb_module.ch3-contrib {
		padding: 22px 16px 18px;
	}

	.ch-section .et_pb_module.ch3-stat--main {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 14px;
		padding: 20px;
	}

	.ch-section .et_pb_module.ch3-stat__row {
		flex-direction: column;
		row-gap: 12px;
	}

	.ch-section.ch3 .et_pb_row.ch3-incub__box {
		padding: 40px 20px;
		border-width: 4px;
		border-radius: 32px;
	}

	.ch-section .et_pb_module.ch3-step {
		flex-basis: 100%;
		min-height: 0;
	}

	.ch-section .ch3-step__title {
		min-height: 0;
	}

	.ch-section .ch3-posts .et_pb_post {
		min-height: 500px;
		border-radius: 32px;
	}

	.ch-section.ch3 .et_pb_row.ch3-investors__card {
		--vertical-gap: 28px;
		padding: 28px 22px;
	}

	.ch-section .ch3-investors__aside .et_pb_button.ch-btn {
		font-size: 16px;
		white-space: normal;
	}
}

/* ==========================================================================
   Pages V3 : hero des pages intérieures, titres en dégradé
   ========================================================================== */

/* Fin de titre en dégradé (la largeur suit le texte pour que le dégradé couvre les mots) */
.ch-section .ch3-accent--gradient {
	width: fit-content;
	background: var(--ch-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ch-section .ch3-heading--center .ch3-accent--gradient {
	margin-inline: auto;
}

/* Hero : fil d'Ariane, titre, chapeau, boutons / illustration */
.et_pb_section.ch3-pagehero {
	justify-content: center;
	min-height: 700px;
	padding: 48px 0 110px;
	background:
		radial-gradient(circle at 30% 50%, #080808 0%, rgba(8, 8, 8, 0.85) 32%, rgba(8, 8, 8, 0) 60%),
		linear-gradient(172deg, rgba(12, 12, 12, 0.95) 0%, rgba(12, 12, 12, 0.76) 26%, var(--ch-violet) 70%, var(--ch-cyan) 100%);
}

/* Fondu vers le noir de la section suivante */
.et_pb_section.ch3-pagehero::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 120px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0), #000);
	pointer-events: none;
}

.ch-section.ch3 .et_pb_row.ch3-pagehero__row {
	--ch3-gap: 40px;
	position: relative;
	z-index: 1;
	align-items: center;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__content {
	--vertical-gap: 24px;
	flex: 0 1 820px;
	width: auto;
}

.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual {
	flex: 0 0 500px;
	width: auto;
}

.ch-section.ch3 .ch3-pagehero__img,
.ch-section .ch3-pagehero__img img {
	width: 100%;
}

.ch-section .ch3-pagehero__lead {
	max-width: 760px;
}

.ch-section .ch3-breadcrumb p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ch-section .ch3-breadcrumb a:hover {
	color: var(--ch-cyan);
}

.ch-section .ch3-breadcrumb [aria-current] {
	color: #fff;
}

.ch-section .ch3-pagehero .et_pb_module.ch3-ctas {
	column-gap: 28px;
	padding-top: 6px;
}

/* Lien fléché en 20 px (hero) */
.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--link.ch3-btn--link-lg {
	gap: 16px;
	font-size: 20px;
}

/* ==========================================================================
   Incubateur — 02 Ce que nous apportons (cartes de pôle, fond dégradé dans les réglages Divi)
   ========================================================================== */

.ch-section .et_pb_module.ch3-pole--incub {
	--vertical-gap: 22px;
	padding: 44px 36px 24px;
}

.ch-section .ch3-pole--incub .ch3-pills ul {
	gap: 8px;
}

.ch-section.ch3 .ch3-pole--incub > .ch3-pole__num {
	right: 36px;
	bottom: 24px;
}

/* ==========================================================================
   Incubateur — 03 Processus, 04 Nos critères, 05 Projets accompagnés
   ========================================================================== */

.et_pb_section.ch3-process {
	padding-top: 40px;
}

.ch-section.ch3 .et_pb_row.ch3-criteria__row {
	align-items: flex-start;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-criteria__row > .ch3-criteria__intro {
	flex: 0 1 560px;
	width: auto;
}

.ch-section.ch3 .ch3-criteria__row > .ch3-criteria__aside {
	flex: 0 1 700px;
	width: auto;
}

.ch-section .ch3-criteria__list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-criteria__list li {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 28px 0;
	border-top: 1px solid #333;
	list-style: none;
}

.ch-section .ch3-criteria__list li:last-child {
	border-bottom: 1px solid #333;
}

.ch-section .ch3-criteria__list li::before {
	content: '';
	flex: none;
	width: 38px;
	height: 38px;
	background: url(assets/img/check-circle-gradient.svg) center / contain no-repeat;
}

.et_pb_section.ch3-projects {
	padding-top: 0;
}

.ch-section.ch3.ch3-projects .et_pb_column {
	--vertical-gap: 32px;
}

/* Emplacement en attente de contenu (cadre pointillé) */
.ch-section .et_pb_module.ch3-placeholder {
	--vertical-gap: 10px;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 220px;
	padding: 32px;
	border: 1.5px dashed #555;
	border-radius: 40px;
}

/* ==========================================================================
   Incubateur — 06 Déposer mon projet (rappels, carte sombre, formulaire)
   ========================================================================== */

.et_pb_section.ch3-deposit {
	padding: 80px 0 140px;
}

.ch-section.ch3 .et_pb_row.ch3-deposit__row {
	align-items: flex-start;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-deposit__row > .ch3-deposit__intro {
	--vertical-gap: 40px;
	flex: 0 1 420px;
	width: auto;
}

.ch-section.ch3 .ch3-deposit__row > .ch3-deposit__form {
	flex: 0 1 860px;
	width: auto;
}

/* Liste à puces cyan */
.ch-section .ch3-dots ul {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-section .ch3-dots li {
	display: flex;
	align-items: center;
	gap: 16px;
	list-style: none;
}

.ch-section .ch3-dots li::before {
	content: '';
	flex: none;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--ch-cyan);
}

/* Carte sombre : halos violet et cyan, contour dégradé */
.ch-section .et_pb_module.ch3-deposit__card {
	--vertical-gap: 28px;
	width: 100%;
	padding: 52px 48px 44px;
	border: 1.5px solid transparent;
	border-radius: 24px;
	background:
		radial-gradient(circle at 0% 0%, rgba(171, 0, 255, 0.42) 0%, rgba(171, 0, 255, 0) 45%) padding-box,
		radial-gradient(circle at 100% 100%, rgba(2, 241, 255, 0.16) 0%, rgba(2, 241, 255, 0) 40%) padding-box,
		linear-gradient(135deg, #16053f 0%, #0b0620 55%, #0a0a12 100%) padding-box,
		linear-gradient(120deg, var(--ch-violet) 0%, rgba(171, 0, 255, 0.25) 45%, var(--ch-cyan) 100%) border-box;
}

.ch-section .ch3-deposit__head h3 {
	padding-bottom: 10px;
}

/* Formulaire : un bloc par ligne, les paragraphes ajoutés par Contact Form 7 s'effacent */
.ch-section .ch3-form .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ch3-form .wpcf7-form > .hidden-fields-container,
.ch3-form .wpcf7-form > .wpcf7-response-output:empty {
	display: none;
}

.ch3-form .wpcf7-form > * > p {
	display: contents;
}

.ch3-form .ch3-form__row {
	display: flex;
	gap: 20px;
}

.ch3-form .ch3-form__field {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

.ch-section .ch3-form .ch3-form__label {
	display: block;
	padding: 0;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: -0.6px;
}

.ch3-form .wpcf7-form-control-wrap {
	display: block;
}

.ch-section .ch3-form input.wpcf7-text,
.ch-section .ch3-form select.wpcf7-select,
.ch-section .ch3-form textarea.wpcf7-textarea {
	width: 100%;
	height: 57px;
	margin: 0;
	padding: 0 24px;
	border: 1px solid #c1c1c1;
	border-radius: 24px;
	background: #555;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 18px;
	line-height: 1.5;
}

.ch-section .ch3-form textarea.wpcf7-textarea {
	display: block;
	height: 150px;
	padding: 18px 24px;
	resize: vertical;
}

.ch3-form .wpcf7-form-control::placeholder {
	color: #b8b8b8;
	opacity: 1;
}

/* Liste déroulante : chevron gris, libellé gris tant qu'aucune tranche n'est choisie */
.ch-section .ch3-form select.wpcf7-select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 56px;
	background: #555 url(assets/img/chevron-down-grey.svg) right 24px center / 14px 8px no-repeat;
	cursor: pointer;
}

.ch-section .ch3-form select.wpcf7-select:has(option[value='']:checked) {
	color: #b8b8b8;
}

.ch-section .ch3-form input.wpcf7-text:focus,
.ch-section .ch3-form select.wpcf7-select:focus,
.ch-section .ch3-form textarea.wpcf7-textarea:focus {
	border-color: var(--ch-cyan);
	outline: none;
	box-shadow: 0 0 0 1px var(--ch-cyan);
}

/* Choix (stade, besoin) : cartes de 64 px, contour dégradé quand le choix est coché */
.ch3-form .ch3-form__choices {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.ch3-form .ch3-form__choices legend {
	margin-bottom: 12px;
}

.ch3-form .ch3-form__choices .wpcf7-form-control {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.ch3-form .wpcf7-list-item {
	margin: 0;
}

.ch-section .ch3-form .ch3-form__choices label {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 64px;
	padding: 0 20px;
	border: 1px solid #555;
	border-radius: 18px;
	color: #fff;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.3;
	cursor: pointer;
}

.ch-section .ch3-form .ch3-form__choices label:has(input:checked) {
	padding: 0 19.5px;
	border: 1.5px solid transparent;
	background:
		linear-gradient(#0b0620, #0b0620) padding-box,
		linear-gradient(120deg, var(--ch-violet), var(--ch-cyan)) border-box;
}

.ch-section .ch3-form input[type='radio'],
.ch-section .ch3-form input[type='checkbox'] {
	-webkit-appearance: none;
	appearance: none;
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	border: 1.5px solid #888;
	border-radius: 5px;
	background: transparent center / 12px 9px no-repeat;
	cursor: pointer;
}

.ch-section .ch3-form input[type='radio'] {
	border-radius: 50%;
}

.ch-section .ch3-form input[type='radio']:checked {
	border-color: var(--ch-cyan);
	background: radial-gradient(circle, var(--ch-cyan) 0 5px, transparent 5.5px);
}

.ch-section .ch3-form input[type='checkbox']:checked {
	border-color: var(--ch-cyan);
	background-color: var(--ch-cyan);
	background-image: url(assets/img/check-dark.svg);
}

.ch-section .ch3-form input[type='radio']:focus-visible,
.ch-section .ch3-form input[type='checkbox']:focus-visible {
	outline: 2px solid var(--ch-cyan);
	outline-offset: 2px;
}

/* Consentement */
.ch3-form .ch3-form__consent {
	padding-top: 4px;
}

/* Case en bloc : sans la ligne de texte des conteneurs en ligne de Contact Form 7, qui la rehausse */
.ch3-form .ch3-form__consent .wpcf7-form-control,
.ch3-form .ch3-form__consent .wpcf7-list-item {
	display: block;
}

/* Deux cases de consentement à la suite : 14 px entre elles */
.ch3-form .ch3-form__consent + .ch3-form__consent {
	margin-top: -18px;
}

.ch-section .ch3-form .ch3-form__consent label {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	color: var(--ch-grey);
	font-size: 14px;
	line-height: 21px;
	cursor: pointer;
}

.ch-section .ch3-form .ch3-form__consent input {
	margin-top: 1px;
}

/* Bouton dégradé sur toute la largeur, flèche ronde à droite */
.ch-section .ch3-form .et_pb_button.wpcf7-submit,
.ch-section .ch3-form .et_pb_button.wpcf7-submit:hover {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: none;
	height: 62px;
	margin: 0;
	padding: 0 16px 0 30px !important;
	border: 0 !important;
	border-radius: 50px;
	background: var(--ch-gradient);
	color: #fff !important;
	font-family: var(--ch-font);
	font-size: 20px;
	font-weight: 500;
	line-height: 1 !important;
	letter-spacing: -0.6px;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.ch-section .ch3-form .et_pb_button.wpcf7-submit::after {
	content: '';
	position: static !important;
	display: block;
	flex: none;
	align-self: center;
	width: 29px;
	height: 29px;
	margin: 0 !important;
	opacity: 1 !important;
	transform: none !important;
	background: url(assets/img/arrow-right-white.svg) center / contain no-repeat;
	font-size: 0;
}

.ch-section .ch3-form .et_pb_button.wpcf7-submit:not(:disabled):hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(171, 0, 255, 0.35);
}

/* Désactivé tant que le consentement n'est pas coché */
.ch-section .ch3-form .et_pb_button.wpcf7-submit:disabled {
	opacity: 0.75;
	cursor: not-allowed;
}

.ch-section .ch3-form .et_pb_button.wpcf7-submit:focus-visible {
	outline: 2px solid var(--ch-cyan);
	outline-offset: 3px;
}

.ch3-form .wpcf7-form.submitting .wpcf7-submit {
	opacity: 0.6;
	cursor: wait;
}

.ch3-form .wpcf7-spinner {
	display: none;
}

/* Mention « pas une offre de financement » : seulement quand « Financier » est coché */
.ch3-form .ch3-form__notice {
	display: none;
	align-items: flex-start;
	gap: 10px;
	color: var(--ch-grey);
	font-size: 13px;
	line-height: 19px;
}

.ch3-form .wpcf7-form:has(input[value='Financier']:checked) .ch3-form__notice {
	display: flex;
}

.ch3-form .ch3-form__notice::before {
	content: 'i';
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	border: 1px solid var(--ch-grey);
	border-radius: 50%;
	font-size: 11px;
	line-height: 1;
}

/* Messages de validation et de réponse */
.ch-section .ch3-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #ff7ab8;
	font-size: 14px;
}

.ch-section .ch3-form .wpcf7-form-control.wpcf7-not-valid {
	border-color: #ff7ab8;
}

.ch-section .ch3-form .wpcf7-response-output {
	margin: 0;
	padding: 12px 18px;
	border-radius: 16px;
	color: #fff;
	font-size: 15px;
}

/* ==========================================================================
   Pages intérieures V3 / Incubateur — responsive
   ========================================================================== */

@media (max-width: 980px) {
	.et_pb_section.ch3.ch3-pagehero {
		min-height: 0;
		padding: 48px 0 120px;
	}

	.ch-section.ch3 .ch3-pagehero__row > .et_pb_column,
	.ch-section.ch3 .ch3-criteria__row > .et_pb_column,
	.ch-section.ch3 .ch3-deposit__row > .et_pb_column {
		flex: 1 1 100%;
		width: 100%;
	}

	.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual {
		max-width: 500px;
	}

	.ch-section.ch3 .ch3-pagehero__row,
	.ch-section.ch3 .ch3-criteria__row,
	.ch-section.ch3 .ch3-deposit__row {
		--vertical-gap: 48px;
	}

	.et_pb_section.ch3.ch3-process {
		padding-top: 24px;
	}

	.et_pb_section.ch3.ch3-projects {
		padding-top: 0;
	}

	.ch-section .et_pb_module.ch3-pole--incub {
		padding: 40px 32px 24px;
	}
}

@media (max-width: 767px) {
	.et_pb_section.ch3.ch3-pagehero {
		padding: 32px 0 100px;
	}

	.ch-section .ch3-pagehero .et_pb_module.ch3-ctas {
		row-gap: 12px;
	}

	.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual {
		max-width: 320px;
	}

	.ch-section .et_pb_module.ch3-pole--incub {
		padding: 32px 24px 24px;
	}

	.ch-section.ch3 .ch3-pole--incub > .ch3-pole__num {
		right: 24px;
	}

	.ch-section .ch3-criteria__list li {
		align-items: flex-start;
		gap: 16px;
		padding: 22px 0;
	}

	.ch-section .ch3-criteria__list li::before {
		width: 30px;
		height: 30px;
	}

	.ch-section .et_pb_module.ch3-placeholder {
		min-height: 180px;
		padding: 24px;
		border-radius: 32px;
	}

	.ch-section .et_pb_module.ch3-deposit__card {
		--vertical-gap: 24px;
		padding: 32px 20px 28px;
		border-radius: 20px;
	}

	.ch-section .ch3-form .wpcf7-form {
		gap: 22px;
	}

	.ch3-form .ch3-form__row {
		flex-direction: column;
		gap: 22px;
	}

	.ch-section .ch3-form .ch3-form__label {
		font-size: 17px;
	}

	.ch3-form .ch3-form__choices .wpcf7-form-control {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.ch-section .ch3-form .ch3-form__choices label {
		height: 54px;
	}

	.ch-section .ch3-form .et_pb_button.wpcf7-submit,
	.ch-section .ch3-form .et_pb_button.wpcf7-submit:hover {
		font-size: 17px;
	}
}

/* ==========================================================================
   Pages intérieures V3 — composants communs : carte sombre, pastilles serrées, boutons
   ========================================================================== */

/* Carte sombre : halos violet et cyan, contour dégradé */
.ch-section .et_pb_module.ch3-darkcard {
	border: 1.5px solid transparent;
	border-radius: 24px;
	background:
		radial-gradient(circle at 0% 0%, rgba(171, 0, 255, 0.42) 0%, rgba(171, 0, 255, 0) 45%) padding-box,
		radial-gradient(circle at 100% 100%, rgba(2, 241, 255, 0.16) 0%, rgba(2, 241, 255, 0) 40%) padding-box,
		linear-gradient(135deg, #16053f 0%, #0b0620 55%, #0a0a12 100%) padding-box,
		linear-gradient(120deg, var(--ch-violet) 0%, rgba(171, 0, 255, 0.25) 45%, var(--ch-cyan) 100%) border-box;
}

.ch-section .ch3-pills--tight ul {
	gap: 8px;
}

.ch-section .ch3-pills li a {
	color: inherit;
}

.ch-section .ch3-pills--outline li:has(a:hover) {
	border-color: var(--ch-cyan);
}

/* Lien fléché en 17 px */
.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--link.ch3-btn--link-md {
	font-size: 17px;
}

/* Bouton de 60 px en 18 px */
.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--md,
.ch-section.ch3 .et_pb_button.ch-btn.ch3-btn--md:hover {
	min-height: 60px;
	padding: 0 14px 0 26px !important;
	font-size: 18px;
}

/* Bouton inactif (document à venir) : même rendu, sans clic */
.ch-section .et_pb_button.is-disabled {
	pointer-events: none;
	cursor: default;
}

/* Liste d'arguments numérotés */
.ch-section .et_pb_module.ch3-args {
	--vertical-gap: 24px;
	width: 100%;
	padding-top: 6px;
}

.ch-section .et_pb_module.ch3-args--loose {
	--vertical-gap: 30px;
	padding-top: 0;
}

.ch-section .ch3-arg__text--sm h3 {
	margin-bottom: 6px;
	padding-bottom: 0;
}

.ch-section .et_pb_module.ch3-ctas--center {
	justify-content: center;
	padding-top: 0;
}

/* ==========================================================================
   Tezos & Écosystème — 01 Hero (logo Tezos sur halo violet)
   ========================================================================== */

.et_pb_section.ch3-pagehero.ch3-pagehero--tezos {
	min-height: 0;
}

.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual--halo {
	position: relative;
	flex: 0 0 460px;
	align-items: center;
	justify-content: center;
	min-height: 460px;
}

.ch-section .ch3-pagehero__visual--halo::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(171, 0, 255, 0.6) 0%, rgba(171, 0, 255, 0.25) 40%, rgba(171, 0, 255, 0) 70%);
	filter: blur(30px);
	pointer-events: none;
}

.ch-section.ch3 .ch3-pagehero__visual--halo > .ch3-pagehero__logo {
	position: relative;
	width: 170px;
}

.ch-section .ch3-pagehero__logo img {
	width: 170px;
}

/* ==========================================================================
   Tezos & Écosystème — 02 Notre infrastructure
   ========================================================================== */

.ch-section.ch3 .et_pb_row.ch3-infra__row {
	--ch3-gap: 36px;
	align-items: stretch;
}

.ch-section .et_pb_module.ch3-infra {
	--vertical-gap: 22px;
	width: 100%;
	height: 100%;
	padding: 40px;
}

.ch-section.ch3 .ch3-infra > .ch3-infra__logo {
	width: 74px;
}

.ch-section .ch3-infra__logo img {
	width: 74px;
}

.ch-section .ch3-infra__rank p {
	padding-bottom: 0;
}

.ch-section .ch3-infra__rank .ch3-infra__note {
	margin-top: 4px;
	color: var(--ch-grey);
	font-size: 13px;
	font-weight: 400;
}

/* ==========================================================================
   Tezos & Écosystème — 03 Notre méthode (cartes 2 × 2)
   ========================================================================== */

.et_pb_section.ch3-method {
	padding-top: 40px;
	row-gap: 48px;
}

.ch-section .ch3-method__head .ch3-lead {
	max-width: 760px;
}

.ch-section .et_pb_module.ch3-method__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 36px;
	width: 100%;
}

.ch-section .et_pb_module.ch3-method__card {
	--vertical-gap: 18px;
	align-items: flex-start;
	width: 100%;
	padding: 36px;
	border: 1px solid #232323;
	border-radius: 24px;
	background: #0a0a0a;
}

.ch-section.ch3 .ch3-method__card > .ch3-method__icon {
	width: 48px;
}

.ch-section .ch3-method__icon img {
	width: 48px;
}

/* ==========================================================================
   Tezos & Écosystème — 04 Notre démarche (encadré dégradé, feuille de route, manifeste)
   ========================================================================== */

.et_pb_section.ch3-demarche {
	padding-top: 40px;
}

.ch-section.ch3 .et_pb_row.ch3-demarche__box {
	--ch3-gap: 64px;
	align-items: flex-start;
	justify-content: space-between;
	padding: 72px 64px;
}

.ch-section.ch3 .ch3-demarche__box > .ch3-demarche__main {
	--vertical-gap: 30px;
	flex: 0 1 676px;
	align-items: stretch;
	width: auto;
}

.ch-section.ch3 .ch3-demarche__box > .ch3-demarche__aside {
	--vertical-gap: 44px;
	flex: 0 1 480px;
	align-items: stretch;
	width: auto;
	padding-top: 8px;
}

.ch-section .ch3-demarche__main .ch3-lead {
	max-width: 676px;
}

.ch-section .et_pb_module.ch3-download {
	--vertical-gap: 18px;
	align-items: flex-start;
	width: 100%;
	padding: 32px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 24px;
	background: var(--ch3-night);
}

.ch-section.ch3 .ch3-download > .ch3-download__icon {
	width: 44px;
}

.ch-section .ch3-download__icon img {
	width: 44px;
}

.ch-section .ch3-download__text h3 {
	padding-bottom: 18px;
}

/* Manifeste : début en italique dégradé */
.ch-section .ch3-manifest__accent {
	background: var(--ch-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-style: italic;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* ==========================================================================
   Tezos & Écosystème — 05 Pourquoi Tezos (arguments, carte « Sobriété énergétique »)
   ========================================================================== */

.et_pb_section.ch3-why {
	background: radial-gradient(circle at 85% 95%, rgba(171, 0, 255, 0.22) 0%, rgba(171, 0, 255, 0) 35%), #000;
}

.ch-section.ch3 .et_pb_row.ch3-why__row {
	align-items: center;
	justify-content: space-between;
}

.ch-section.ch3 .ch3-why__row > .ch3-why__main {
	--vertical-gap: 40px;
	flex: 0 1 620px;
	width: auto;
}

.ch-section.ch3 .ch3-why__row > .ch3-why__aside {
	flex: 0 1 600px;
	width: auto;
}

.ch-section .et_pb_module.ch3-energy {
	--vertical-gap: 28px;
	width: 100%;
	padding: 36px 40px;
}

.ch-section .et_pb_module.ch3-energy__item {
	--vertical-gap: 8px;
	width: 100%;
	padding-top: 28px;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.ch-section .et_pb_module.ch3-energy__item--first {
	border-image: linear-gradient(90deg, rgba(171, 0, 255, 0.8), rgba(2, 241, 255, 0.5)) 1;
}

.ch-section .ch3-energy__unit {
	margin-left: 4px;
	color: var(--ch-grey);
	font-size: 19px;
	letter-spacing: 0;
	text-transform: uppercase;
}

/* ==========================================================================
   Tezos & Écosystème — 07 Appel final (encadré dégradé centré)
   ========================================================================== */

.et_pb_section.ch3-ctaband {
	padding: 40px 0 140px;
}

.ch-section.ch3 .et_pb_row.ch3-ctaband__box {
	padding: 80px 56px;
}

.ch-section.ch3 .ch3-ctaband__box > .et_pb_column {
	--vertical-gap: 36px;
}

.ch-section .ch3-ctaband__box .ch3-accent--gradient {
	margin-inline: auto;
}

/* ==========================================================================
   Tezos & Écosystème — responsive
   ========================================================================== */

@media (max-width: 980px) {
	.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual--halo {
		flex: 1 1 100%;
		max-width: none;
		min-height: 320px;
	}

	.ch-section.ch3 .ch3-demarche__box > .et_pb_column,
	.ch-section.ch3 .ch3-why__row > .et_pb_column {
		flex: 1 1 100%;
		width: 100%;
	}

	.ch-section.ch3 .et_pb_row.ch3-demarche__box,
	.ch-section.ch3 .et_pb_row.ch3-why__row {
		--vertical-gap: 48px;
	}

	.ch-section.ch3 .et_pb_row.ch3-demarche__box {
		padding: 56px 32px;
	}

	.ch-section.ch3 .ch3-demarche__box > .ch3-demarche__aside {
		padding-top: 0;
	}

	.et_pb_section.ch3.ch3-method,
	.et_pb_section.ch3.ch3-demarche,
	.et_pb_section.ch3.ch3-ctaband {
		padding-top: 24px;
	}

	.ch-section.ch3 .et_pb_row.ch3-ctaband__box {
		padding: 56px 32px;
	}
}

@media (max-width: 767px) {
	.ch-section.ch3 .ch3-pagehero__row > .ch3-pagehero__visual--halo {
		min-height: 240px;
	}

	.ch-section.ch3 .ch3-pagehero__visual--halo > .ch3-pagehero__logo,
	.ch-section .ch3-pagehero__logo img {
		width: 120px;
	}

	.ch-section .et_pb_module.ch3-infra {
		--vertical-gap: 18px;
		padding: 28px 22px;
	}

	.ch-section .ch3-infra__logo img,
	.ch-section.ch3 .ch3-infra > .ch3-infra__logo {
		width: 60px;
	}

	.ch-section .et_pb_module.ch3-method__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.ch-section .et_pb_module.ch3-method__card {
		--vertical-gap: 14px;
		padding: 26px 22px;
	}

	.ch-section.ch3 .et_pb_row.ch3-demarche__box {
		padding: 40px 20px;
	}

	.ch-section .et_pb_module.ch3-download {
		padding: 26px 22px;
	}

	.ch-section .et_pb_module.ch3-energy {
		--vertical-gap: 22px;
		padding: 28px 22px;
	}

	.ch-section .et_pb_module.ch3-energy__item {
		padding-top: 22px;
	}

	.ch-section .ch3-energy__unit {
		font-size: 15px;
	}

	.ch-section.ch3 .et_pb_row.ch3-ctaband__box {
		padding: 40px 20px;
	}

	.ch-section .ch3-ctaband__box .et_pb_module.ch3-ctas {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.ch-section.ch3 .ch3-ctaband__box .ch3-ctas > .et_pb_button_module_wrapper {
		align-self: stretch;
		width: 100%;
	}

	.ch-section.ch3 .ch3-ctaband__box .ch3-ctas .et_pb_button.ch-btn {
		justify-content: space-between;
		width: 100%;
		max-width: none;
		font-size: 17px;
	}
}

/* ==========================================================================
   Fiche application (modèle des solutions)
   Mise en page, fonds, bordures et typographie : réglages Divi.
   Ici seulement le décor : texte en gras des titres en dégradé, flèche du lien externe,
   lien des badges de store, capture et logos, paragraphes de la description.
   ========================================================================== */

/* Titres : le texte en gras passe en dégradé */
.ch-section .ch-fiche-title strong {
	background: var(--ch-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	color: transparent;
	-webkit-text-fill-color: transparent;
	font-weight: inherit;
}

/* Lien externe : flèche ronde blanche pointée vers le haut */
.ch-section .et_pb_button.ch-ico-upright-light::after { background-image: url(assets/img/arrow-upright-white.svg); }

/* Badge de store : le lien du libellé couvre tout le badge */
.ch-section .et_pb_module.ch-fiche-store {
	position: relative;
}

.ch-section .ch-fiche-store .et_pb_module,
.ch-section .ch-fiche-store .et_pb_text_inner {
	position: static;
}

.ch-section .ch-fiche-store a::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.ch-section .et_pb_module.ch-fiche-store:hover {
	border-color: #fff;
}

/* Capture d'écran : remplit l'écran du téléphone */
.ch-section .ch-fiche-capture .et_pb_image_wrap,
.ch-section .ch-fiche-capture img {
	width: 100%;
	height: 100%;
}

.ch-section .ch-fiche-capture img {
	object-fit: cover;
	object-position: top center;
}

/* Logos (image à la une) : carrés arrondis */
.ch-section .ch-fiche-logo .et_pb_image_wrap {
	width: 100%;
}

.ch-section .ch-fiche-logo img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 10px;
}

.ch-section .ch-fiche-logo--screen img { border-radius: 16px; }
.ch-section .ch-fiche-logo--card img { border-radius: 24px; }

/* Description : premier paragraphe en accroche, les suivants en gris */
.ch-section .ch-fiche-description p {
	margin: 0 0 24px;
	padding: 0;
}

.ch-section .ch-fiche-description p:last-child {
	margin-bottom: 0;
}

.ch-section .ch-fiche-description p:first-child {
	font-size: 24px;
	line-height: 36px;
	color: #fff;
}

/* Image de présentation */
.ch-section .ch-fiche-shot .et_pb_image_wrap {
	width: 100%;
}

.ch-section .ch-fiche-shot img {
	width: 100%;
	border-radius: 28px;
}

@media (max-width: 767px) {
	.ch-section .ch-fiche-description p:first-child {
		font-size: 19px;
		line-height: 29px;
	}
}

/* ==========================================================================
   Page Solutions
   Mise en page, fonds, bordures et typographie : réglages Divi.
   Ici seulement : barre de filtres collante et ses boutons, cartes retirées par le filtre,
   logo et capture des cartes, extrait JSON.
   ========================================================================== */

/* Barre des filtres : collante en haut de l'écran au défilement (tablette et desktop) */
@media (min-width: 768px) {
	.ch-section.ch-solutions-filters {
		position: sticky;
		top: 0;
		z-index: 15;
	}

	body.admin-bar .ch-section.ch-solutions-filters {
		top: 32px;
	}
}

@media (min-width: 768px) and (max-width: 782px) {
	body.admin-bar .ch-section.ch-solutions-filters {
		top: 46px;
	}
}

.ch-section .ch-solfilters__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ch-section .ch-solfilters__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	padding: 11px 20px;
	border: 1px solid #555;
	border-radius: 50px;
	background: transparent;
	color: #fff;
	font-family: var(--ch-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 23px;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.ch-section .ch-solfilters__chip:hover {
	border-color: #fff;
}

.ch-section .ch-solfilters__chip:focus-visible {
	outline: 2px solid var(--ch-cyan);
	outline-offset: 2px;
}

.ch-section .ch-solfilters__chip[aria-pressed="true"] {
	border-color: transparent;
	background: var(--ch-gradient) border-box;
}

.ch-section .ch-solfilters__count {
	color: var(--ch-grey);
}

.ch-section .ch-solfilters__chip[aria-pressed="true"] .ch-solfilters__count {
	color: rgba(255, 255, 255, 0.8);
}

/* Carte retirée par le filtre */
.ch-section .et_pb_module.ch-solcard[hidden] {
	display: none !important;
}

/* Logo et capture des cartes */
.ch-section .ch-solcard__logo img {
	border-radius: 34px;
}

.ch-section .ch-solcard__capture .et_pb_image_wrap,
.ch-section .ch-solcard__capture img {
	width: 100%;
	height: 100%;
}

.ch-section .ch-solcard__capture img {
	object-fit: contain;
}

/* Extrait JSON : texte préformaté, police et couleur du module */
.ch-section .ch-solutions-json pre {
	margin: 0;
	padding: 0;
	overflow-x: auto;
	background: none;
	color: inherit;
	font: inherit;
	white-space: pre;
}

@media (max-width: 767px) {
	.ch-section .ch-solcard__logo img {
		border-radius: 24px;
	}

	.ch-section .ch-solfilters__chip {
		padding: 8px 16px;
		font-size: 14px;
	}
}
