/* ==========================================================================
   HOME PREMIUM — design v3 (mockup approuvé) appliqué sur la home production.
   Scope : sections marquées avec classes stables ca-home-*
   Hero : volontairement non touché.
   Rythme : Ticker(LIGHT) → Punchline(DARK) → Services(LIGHT) → Cyber(DARKEST)
            → Compare(LIGHT) → Process(DARK) → Cases(LIGHT) → Testimonials(DARK)
            → CTA(DARK).
   ========================================================================== */

:root {
	--hp-grad-text: linear-gradient(90deg, #1B6CF2, #00E5FF, #7B2FF7);
	--hp-grad-blue: linear-gradient(135deg, #1B6CF2, #00E5FF);
	--hp-grad-cyber: linear-gradient(135deg, #FF3B30 0%, #FF2E8A 50%, #7B2FF7 100%);
	--hp-grad-warm: linear-gradient(180deg, #FF3B30 0%, #FF8A75 70%, #FFB800 100%);
	--hp-sh-glow: 0 0 40px rgba(0, 229, 255, 0.30);
	--hp-sh-glow-warn: 0 0 40px rgba(255, 59, 48, 0.35);
	--hp-sh-card-light: 0 4px 12px rgba(10, 15, 30, 0.04), 0 24px 48px rgba(27, 108, 242, 0.06);
	--hp-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   §2.4 TICKER — LIGHT (white → bleu clair)
   ========================================================================== */
.ca-home-ticker .ca-ticker {
	background: linear-gradient(180deg, #fff 0%, #F4F7FF 100%) !important;
	border-block: 1px solid rgba(27, 108, 242, 0.08) !important;
	padding: 32px 0 !important;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.ca-home-ticker .ca-ticker__track li {
	font-family: 'Space Grotesk', system-ui, sans-serif;
	font-size: clamp(15px, 1.2vw, 18px);
	font-weight: 600;
	color: #0A0F1E;
	padding: 0 36px;
}
.ca-home-ticker .ca-ticker__track li::after {
	background: #1B6CF2;
	opacity: 0.7;
	width: 6px;
	height: 6px;
	right: -3px;
}

/* ==========================================================================
   §2.5 PUNCHLINE — Premium dark/neon signature (aligned w/ Hero codes)
   Animated grid, morphing cyan/blue orbs, glowing pill chip,
   triple-neon divider, neon glow title.
   ========================================================================== */
.ca-home-punchline {
	background:
		radial-gradient(ellipse 50% 60% at 25% 30%, rgba(27,108,242,0.22) 0%, transparent 65%),
		radial-gradient(ellipse 45% 55% at 80% 70%, rgba(0,229,255,0.18) 0%, transparent 65%),
		radial-gradient(ellipse 60% 40% at 50% 100%, rgba(123,47,247,0.14) 0%, transparent 70%),
		linear-gradient(135deg, #0A0F1E 0%, #0D1A36 50%, #0A0F1E 100%) !important;
	color: #fff;
	padding: 160px 0 !important;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-block: 1px solid rgba(0,229,255,0.15);
	box-shadow:
		inset 0 1px 0 rgba(0,229,255,0.22),
		inset 0 -1px 0 rgba(27,108,242,0.22);
}

.ca-home-punchline > .elementor-container {
	position: relative;
	z-index: 5;
	max-width: 960px;
	margin-inline: auto;
}

/* (1) Animated grid texture — drift like Hero */
.ca-home-punchline::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(0,229,255,0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0,229,255,0.05) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 25%, transparent 85%);
	-webkit-mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 25%, transparent 85%);
	pointer-events: none;
	z-index: 1;
	animation: caPunchGridDrift 80s linear infinite;
}
@keyframes caPunchGridDrift {
	from { background-position: 0 0, 0 0; }
	to   { background-position: 64px 64px, 64px 64px; }
}

/* (2a) Morphing cyan orb — bottom right */
.ca-home-punchline::after {
	content: '';
	position: absolute;
	width: 520px;
	height: 520px;
	right: -160px;
	bottom: -160px;
	background: radial-gradient(circle, #00E5FF 0%, transparent 65%);
	filter: blur(80px);
	opacity: 0.30;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
	animation: caPunchBlob 18s ease-in-out infinite alternate;
}
/* (2b) Morphing electric blue orb — top left */
.ca-home-punchline > .elementor-container::before {
	content: '';
	position: absolute;
	width: 480px;
	height: 480px;
	left: -180px;
	top: -120px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 65%);
	filter: blur(90px);
	opacity: 0.30;
	border-radius: 50%;
	pointer-events: none;
	z-index: -1;
	animation: caPunchBlob 22s ease-in-out -6s infinite alternate-reverse;
}
@keyframes caPunchBlob {
	0%   { transform: scale(1)    translate(0, 0); }
	50%  { transform: scale(1.15) translate(-30px, 20px); }
	100% { transform: scale(0.95) translate(20px, -20px); }
}

/* (3) Editorial glow pill chip + pulsing dot */
.ca-home-punchline .elementor-widget-heading:first-of-type {
	position: relative;
}
.ca-home-punchline .elementor-widget-heading:first-of-type::before {
	content: 'MANIFESTE · CLICKAPP · 2018';
	display: inline-flex;
	align-items: center;
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: #00E5FF;
	text-transform: uppercase;
	padding: 9px 22px 9px 32px;
	border: 1px solid rgba(0,229,255,0.35);
	border-radius: 999px;
	background: rgba(10,20,40,0.55);
	box-shadow:
		0 0 0 1px rgba(27,108,242,0.10),
		0 0 28px rgba(0,229,255,0.20),
		inset 0 0 18px rgba(0,229,255,0.05);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, calc(-100% - 14px));
	white-space: nowrap;
}
.ca-home-punchline .elementor-widget-heading:first-of-type::after {
	content: '';
	position: absolute;
	left: 50%;
	top: -28px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #00E5FF;
	box-shadow: 0 0 10px #00E5FF, 0 0 22px rgba(0,229,255,0.7);
	transform: translateX(calc(-50% - 84px));
	animation: caPunchPulse 1.8s ease-in-out infinite;
	z-index: 6;
}
@keyframes caPunchPulse {
	0%, 100% { opacity: 1;    transform: translateX(calc(-50% - 84px)) scale(1); }
	50%      { opacity: 0.45; transform: translateX(calc(-50% - 84px)) scale(1.5); }
}

/* (4) Title — premium neon glow */
.ca-home-punchline .elementor-widget-heading:first-of-type h2 {
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	font-size: clamp(2.4rem, 5vw, 4.4rem) !important;
	font-weight: 700 !important;
	line-height: 1.04 !important;
	letter-spacing: -0.04em !important;
	color: #fff !important;
	text-align: center;
	text-wrap: balance;
	max-width: 900px;
	margin-inline: auto;
	margin-top: 56px !important;
	text-shadow:
		0 0 24px rgba(0,229,255,0.14),
		0 2px 36px rgba(27,108,242,0.22);
	position: relative;
}

/* (5) Triple-line neon divider with glowing gradient diamond */
.ca-home-punchline .elementor-widget-heading:nth-of-type(2) {
	position: relative;
	margin-top: 8px;
}
.ca-home-punchline .elementor-widget-heading:nth-of-type(2)::before {
	content: '';
	display: block;
	width: 200px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(0,229,255,0.30) 18%, #00E5FF 50%, rgba(0,229,255,0.30) 82%, transparent);
	margin: 48px auto 6px;
	box-shadow: 0 0 14px rgba(0,229,255,0.55), 0 0 28px rgba(27,108,242,0.30);
}
.ca-home-punchline .elementor-widget-heading:nth-of-type(2)::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 48px;
	width: 10px;
	height: 10px;
	background: linear-gradient(135deg, #00E5FF, #1B6CF2);
	transform: translate(-50%, -50%) rotate(45deg);
	box-shadow:
		0 0 18px rgba(0,229,255,0.85),
		0 0 36px rgba(0,229,255,0.40),
		0 0 56px rgba(27,108,242,0.35);
	pointer-events: none;
	z-index: 2;
}

/* Signature text — mono cyan with subtle glow */
.ca-home-punchline .elementor-widget-heading:nth-of-type(2) > .elementor-widget-container > *,
.ca-home-punchline .elementor-widget-heading:nth-of-type(2) > .elementor-widget-container > * * {
	font-family: 'JetBrains Mono', ui-monospace, monospace !important;
	color: rgba(0,229,255,0.92) !important;
	font-size: 13px !important;
	font-style: normal !important;
	letter-spacing: 0.18em !important;
	text-align: center;
	text-transform: uppercase;
	margin-top: 20px !important;
	text-shadow: 0 0 18px rgba(0,229,255,0.30);
}

/* Reduced motion fallback */
@media (prefers-reduced-motion: reduce) {
	.ca-home-punchline::before,
	.ca-home-punchline::after,
	.ca-home-punchline > .elementor-container::before,
	.ca-home-punchline .elementor-widget-heading:first-of-type::after {
		animation: none !important;
	}
}

/* ==========================================================================
   §2.6 SERVICES — LIGHT cards color-coded par position
   ========================================================================== */
.ca-home-services .ca-services {
	background: linear-gradient(180deg, #fff 0%, #F8FAFF 100%) !important;
	position: relative;
	overflow: hidden;
	padding: 120px 0;
}
.ca-home-services .ca-services::before {
	content: '';
	position: absolute;
	top: 30%;
	left: -200px;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.10;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-services .ca-services::after {
	content: '';
	position: absolute;
	top: 20%;
	right: -200px;
	width: 550px;
	height: 550px;
	background: radial-gradient(circle, #7B2FF7 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.10;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-services .ca-services > .ca-container {
	position: relative;
	z-index: 2;
}

/* Header */
.ca-home-services .ca-services__title {
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	font-size: clamp(2.4rem, 4.5vw, 4.2rem) !important;
	font-weight: 700 !important;
	line-height: 1.04 !important;
	letter-spacing: -0.04em !important;
	color: #0A0F1E !important;
	margin-bottom: 20px;
}
.ca-home-services .ca-services__sub {
	font-size: clamp(15px, 1.3vw, 18px) !important;
	color: #5A6178 !important;
	max-width: 720px;
	margin-inline: auto;
	line-height: 1.6;
	margin-bottom: 56px;
}

/* ==========================================================================
   Cards services — améliorations sur le "premium v2" (main-live.css)
   1) Hauteurs égalisées (link en bas via flex)
   2) Hover plus marqué + lueur par service (nth-child)
   3) Titre + lecture plus claire (typo, spacing, flèche)
   Scopé sur .ca-home-services uniquement.
   ========================================================================== */

/* Per-card hover glow color (icônes restent uniformes en gradient bleu) */
.ca-home-services .ca-service-card:nth-child(1) { --card-glow: rgba(27,108,242,0.45);  --card-tint: rgba(27,108,242,0.18); }
.ca-home-services .ca-service-card:nth-child(2) { --card-glow: rgba(208,64,32,0.40);   --card-tint: rgba(208,64,32,0.16);  }
.ca-home-services .ca-service-card:nth-child(3) { --card-glow: rgba(123,47,247,0.40);  --card-tint: rgba(123,47,247,0.16); }
.ca-home-services .ca-service-card:nth-child(4) { --card-glow: rgba(255,46,138,0.40);  --card-tint: rgba(255,46,138,0.16); }
.ca-home-services .ca-service-card:nth-child(5) { --card-glow: rgba(0,229,255,0.45);   --card-tint: rgba(0,229,255,0.16);  }

/* (1) Géométrie compacte — proche du carré, gaps resserrés, line-clamp desc */
.ca-home-services .ca-grid-3 {
	align-items: stretch !important;
	gap: 14px !important;
}
.ca-home-services .ca-service-card {
	height: 100% !important;
	min-height: 0 !important;
	padding: 22px 20px 20px !important;
	gap: 10px !important;
}
.ca-home-services .ca-service-card__icon {
	width: 44px !important;
	height: 44px !important;
	font-size: 22px !important;
	margin-bottom: 6px !important;
}
.ca-home-services .ca-service-card__desc {
	flex: 1 1 auto !important;
	line-height: 1.5 !important;
	display: -webkit-box !important;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.ca-home-services .ca-service-card__link {
	margin-top: auto !important;
	padding-top: 10px !important;
	font-size: 0.85rem !important;
}

/* (2) Hover plus marqué : lift +50%, shadow dramatique, lueur tintée par service */
.ca-home-services .ca-service-card {
	transition: transform 0.45s var(--easing-premium), box-shadow 0.45s var(--easing-premium) !important;
}
.ca-home-services .ca-service-card:hover {
	transform: translateY(-12px) !important;
	box-shadow:
		0 0 0 1px var(--card-tint),
		0 32px 60px -16px rgba(10,15,30,0.22),
		0 0 90px -20px var(--card-glow) !important;
}

/* (3) Titre compact + lecture nette */
.ca-home-services .ca-service-card__title {
	font-size: clamp(1.05rem, 0.88rem + 0.55vw, 1.2rem) !important;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.18;
	margin-bottom: 4px !important;
}
.ca-home-services .ca-service-card__desc {
	font-size: clamp(0.82rem, 0.78rem + 0.15vw, 0.9rem) !important;
	color: var(--color-gray);
}

/* Flèche plus visible + glissement plus net au hover */
.ca-home-services .ca-service-card__link {
	font-weight: 600;
	gap: 8px;
	padding-top: 16px;
	border-top: 1px solid rgba(228,228,224,0.7);
	transition: color 0.3s var(--easing-premium);
}
.ca-home-services .ca-service-card__link .arrow {
	display: inline-block;
	transition: transform 0.4s var(--easing-premium);
}
.ca-home-services .ca-service-card:hover .ca-service-card__link .arrow {
	transform: translateX(8px) !important;
}

/* Compact: petit écran — réduire min-height pour ne pas créer d'espace vide */
@media (max-width: 767px) {
	.ca-home-services .ca-service-card { min-height: auto !important; }
}

/* ==========================================================================
   §2.7 CYBER — DARKEST sémantique
   ========================================================================== */
.ca-home-cyber .ca-cyber-section,
.ca-home-cyber section[class*="cyber"] {
	background: linear-gradient(180deg, #0A0F1E 0%, #150A18 50%, #0A0F1E 100%) !important;
	position: relative;
	overflow: hidden;
	padding: 120px 0 !important;
	color: #fff;
}
.ca-home-cyber .ca-cyber-section::before {
	content: '';
	position: absolute;
	top: -100px;
	right: -100px;
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, #FF3B30 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.40;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-cyber .ca-cyber-section::after {
	content: '';
	position: absolute;
	bottom: -150px;
	left: -100px;
	width: 550px;
	height: 550px;
	background: radial-gradient(circle, #7B2FF7 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.30;
	border-radius: 50%;
	pointer-events: none;
}

/* ==========================================================================
   §2.8 COMPARE — LIGHT (clarté du choix)
   ========================================================================== */
.ca-home-compare .ca-cmp,
.ca-home-compare {
	background: linear-gradient(180deg, #fff 0%, #F8FAFF 100%) !important;
	position: relative;
	overflow: hidden;
}
.ca-home-compare::before {
	content: '';
	position: absolute;
	top: 50%;
	left: -200px;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.10;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-compare > .elementor-container { position: relative; z-index: 2; }
.ca-home-compare .ca-cmp__title { color: #0A0F1E !important; font-family: 'Space Grotesk', system-ui, sans-serif !important; font-size: clamp(2.4rem, 4.5vw, 4.2rem) !important; font-weight: 700 !important; }
.ca-home-compare .ca-cmp__lead { color: #5A6178 !important; }
.ca-home-compare .ca-cmp__col { background: #fff !important; border: 1px solid rgba(10, 15, 30, 0.06) !important; box-shadow: var(--hp-sh-card-light); }
.ca-home-compare .ca-cmp__col--right { background: linear-gradient(145deg, #fff 0%, #F0F9FF 100%) !important; border-color: rgba(0, 229, 255, 0.30) !important; box-shadow: 0 12px 40px rgba(0, 229, 255, 0.12); }

/* ==========================================================================
   §2.9 PROCESS — Premium dark/néon timeline + cards LIGHT (white w/ blue text)
   Le fond dark est appliqué UNIQUEMENT sur le wrapper extérieur ;
   le widget interne (.ca-ptl-section) reste transparent (un seul background).
   ========================================================================== */
.ca-home-process {
	background:
		radial-gradient(ellipse 45% 50% at 18% 25%, rgba(0,229,255,0.15) 0%, transparent 65%),
		radial-gradient(ellipse 45% 55% at 82% 75%, rgba(27,108,242,0.20) 0%, transparent 65%),
		radial-gradient(ellipse 60% 40% at 50% 110%, rgba(123,47,247,0.10) 0%, transparent 70%),
		linear-gradient(180deg, #0A0F1E 0%, #0D1A36 50%, #0A0F1E 100%) !important;
	color: #fff !important;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: 140px 0 !important;
	border-block: 1px solid rgba(0,229,255,0.12);
	box-shadow:
		inset 0 1px 0 rgba(0,229,255,0.18),
		inset 0 -1px 0 rgba(27,108,242,0.18);
}
/* (Fix #1) Reset the inner widget container so it doesn't double-up the bg */
.ca-home-process .ca-section.ca-ptl-section,
.ca-home-process section[class*="ptl"] {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}

/* Animated grid texture (signature) */
.ca-home-process::before {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	top: auto; right: auto; bottom: auto; left: auto;
	background:
		linear-gradient(rgba(0,229,255,0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0,229,255,0.045) 1px, transparent 1px) !important;
	background-size: 64px 64px !important;
	mask-image: radial-gradient(ellipse 80% 65% at 50% 50%, #000 30%, transparent 90%) !important;
	-webkit-mask-image: radial-gradient(ellipse 80% 65% at 50% 50%, #000 30%, transparent 90%) !important;
	filter: none !important;
	border-radius: 0 !important;
	opacity: 1 !important;
	width: auto !important; height: auto !important;
	pointer-events: none;
	z-index: 1;
	animation: caProcessGridDrift 100s linear infinite;
}
@keyframes caProcessGridDrift {
	from { background-position: 0 0, 0 0; }
	to   { background-position: 64px 64px, 64px 64px; }
}

/* Bottom orbs (additional ambient lighting) */
.ca-home-process::after {
	content: '';
	position: absolute;
	width: 600px;
	height: 600px;
	right: -200px;
	bottom: -200px;
	background: radial-gradient(circle, #00E5FF 0%, transparent 65%);
	filter: blur(100px);
	opacity: 0.18;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
	animation: caProcessOrb 22s ease-in-out infinite alternate;
}
@keyframes caProcessOrb {
	0%   { transform: scale(1)    translate(0, 0); }
	50%  { transform: scale(1.18) translate(-40px, 30px); }
	100% { transform: scale(0.95) translate(30px, -25px); }
}

/* All inner content above effects */
.ca-home-process > * { position: relative; z-index: 5; }
.ca-home-process .ca-container { position: relative; z-index: 5; }

/* ---- Section header ---- */
.ca-home-process .ca-ptl__section-title {
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	font-size: clamp(2.4rem, 5vw, 4.4rem) !important;
	font-weight: 700 !important;
	line-height: 1.04 !important;
	letter-spacing: -0.04em !important;
	background: linear-gradient(135deg, #fff 0%, #00E5FF 50%, #1B6CF2 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	text-align: center;
	margin-top: 36px !important;
	text-shadow: 0 0 60px rgba(0,229,255,0.15);
	position: relative;
}
/* Eyebrow pill above section title */
.ca-home-process .ca-ptl-section .ca-container > header {
	position: relative;
}
.ca-home-process .ca-ptl-section .ca-container > header::before {
	content: '/ 01 → 05  ·  NOTRE PROCESS';
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.28em;
	color: #00E5FF;
	text-transform: uppercase;
	padding: 9px 22px;
	border: 1px solid rgba(0,229,255,0.35);
	border-radius: 999px;
	background: rgba(10,20,40,0.55);
	box-shadow:
		0 0 28px rgba(0,229,255,0.25),
		inset 0 0 18px rgba(0,229,255,0.05);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	margin-bottom: 18px;
}
.ca-home-process .ca-ptl__section-sub {
	color: rgba(255,255,255,0.66) !important;
	font-size: clamp(15px, 1.3vw, 18px) !important;
	max-width: 640px;
	margin-inline: auto !important;
	line-height: 1.6;
	margin-top: 16px !important;
}

/* ---- Per-step accent colors (cyan/blue palette spectrum) ---- */
.ca-home-process .ca-ptl__step:nth-child(1) { --pstep: #00E5FF; --pstep-2: #1B6CF2; }
.ca-home-process .ca-ptl__step:nth-child(2) { --pstep: #1B6CF2; --pstep-2: #00E5FF; }
.ca-home-process .ca-ptl__step:nth-child(3) { --pstep: #00E5FF; --pstep-2: #1B6CF2; }
.ca-home-process .ca-ptl__step:nth-child(4) { --pstep: #7B2FF7; --pstep-2: #00E5FF; }
.ca-home-process .ca-ptl__step:nth-child(5) { --pstep: #00E5FF; --pstep-2: #7B2FF7; }

/* ---- Center timeline beam — animated neon pulse ---- */
.ca-home-process .ca-ptl { gap: 80px !important; }
.ca-home-process .ca-ptl::before {
	width: 3px !important;
	background: linear-gradient(
		to bottom,
		transparent 0%,
		rgba(0,229,255,0.55) 8%,
		#00E5FF 50%,
		rgba(27,108,242,0.55) 92%,
		transparent 100%
	) !important;
	box-shadow:
		0 0 18px rgba(0,229,255,0.55),
		0 0 36px rgba(27,108,242,0.30);
	border-radius: 2px;
}
/* Travelling glow on the line */
.ca-home-process .ca-ptl::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 0;
	width: 18px;
	height: 80px;
	background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(0,229,255,0.85), transparent 70%);
	transform: translateX(-50%);
	filter: blur(6px);
	pointer-events: none;
	z-index: 1;
	animation: caBeamSlide 9s ease-in-out infinite;
}
@keyframes caBeamSlide {
	0%, 100% { top: 0;      opacity: 0; }
	10%      {              opacity: 1; }
	90%      {              opacity: 1; }
	50%      { top: calc(100% - 80px); }
}

/* ---- Step number medallions — XL neon glow ---- */
.ca-home-process .ca-ptl__num {
	width: 110px !important;
	height: 110px !important;
	font-size: clamp(2.6rem, 4vw, 3.4rem) !important;
	font-weight: 800 !important;
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	background-color: rgba(10,20,40,0.7) !important;
	background-image: linear-gradient(135deg, var(--pstep), var(--pstep-2)) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
	border: 2px solid rgba(0,229,255,0.30) !important;
	box-shadow:
		0 0 0 8px rgba(0,229,255,0.06),
		0 0 30px rgba(0,229,255,0.30),
		0 0 60px rgba(27,108,242,0.20),
		inset 0 0 22px rgba(10,15,30,0.6) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	position: relative !important;
	z-index: 6 !important;
}
/* Rotating gradient ring around the number */
.ca-home-process .ca-ptl__num::before {
	content: '';
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	padding: 2px;
	background: conic-gradient(from 0deg, var(--pstep), var(--pstep-2), var(--pstep), transparent 75%);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0.7;
	animation: caRingSpin 12s linear infinite;
	pointer-events: none;
}
@keyframes caRingSpin { to { transform: rotate(360deg); } }

/* Connector dot from number outward to card */
.ca-home-process .ca-ptl__num::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 8px;
	height: 8px;
	background: var(--pstep);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--pstep), 0 0 24px var(--pstep);
	transform: translateY(-50%);
	z-index: 5;
}
.ca-home-process .ca-ptl__step:nth-child(odd) .ca-ptl__num::after  { right: -22px; }
.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__num::after { left:  -22px; }

/* ---- Cards: WHITE + dark text + accent border + lift (fix #2) ---- */
.ca-home-process .ca-ptl__card {
	background: linear-gradient(135deg, #FFFFFF 0%, #F4F9FF 100%) !important;
	border: 1px solid rgba(27,108,242,0.12) !important;
	border-left: 3px solid var(--pstep) !important;
	border-radius: 16px !important;
	padding: 32px 28px !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.8) inset,
		0 24px 50px -22px rgba(10,15,30,0.45),
		0 0 0 1px rgba(0,229,255,0.06) !important;
	position: relative !important;
	overflow: hidden;
	transition: transform 0.45s var(--easing-premium), box-shadow 0.45s var(--easing-premium), border-color 0.45s !important;
	/* (Fix #3) Margin from center axis so the vertical neon line stays OUTSIDE the card */
	max-width: calc(50% - 80px) !important;
}
/* Hover state: lift + accent glow border */
.ca-home-process .ca-ptl__card:hover {
	transform: translateY(-8px) !important;
	border-color: color-mix(in srgb, var(--pstep) 50%, rgba(27,108,242,0.12)) !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.8) inset,
		0 36px 70px -22px rgba(10,15,30,0.55),
		0 0 0 1px color-mix(in srgb, var(--pstep) 30%, transparent),
		0 0 50px -10px color-mix(in srgb, var(--pstep) 45%, transparent) !important;
}
/* Decorative corner tint */
.ca-home-process .ca-ptl__card::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 90px;
	height: 90px;
	background: radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--pstep) 14%, transparent), transparent 60%);
	pointer-events: none;
}
.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__card::before {
	right: auto;
	left: 0;
	background: radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--pstep) 14%, transparent), transparent 60%);
}
.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__card {
	border-left: 1px solid rgba(27,108,242,0.12) !important;
	border-right: 3px solid var(--pstep) !important;
}

/* ---- Icon: vivid gradient square with offset glow + white glyph ---- */
.ca-home-process .ca-ptl__icon {
	width: 56px !important;
	height: 56px !important;
	background: linear-gradient(135deg, var(--pstep), var(--pstep-2)) !important;
	border: none !important;
	border-radius: 12px !important;
	color: #FFFFFF !important;
	box-shadow:
		0 10px 28px -8px color-mix(in srgb, var(--pstep) 65%, transparent),
		inset 0 -2px 0 rgba(0,0,0,0.10) !important;
	position: relative;
	margin-bottom: 18px !important;
}
.ca-home-process .ca-ptl__icon::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 12px;
	background: var(--pstep);
	transform: translate(6px, 6px);
	z-index: -1;
	opacity: 0.22;
	filter: blur(2px);
}
.ca-home-process .ca-ptl__icon .iconify { color: #FFFFFF !important; }

/* ---- Title (dark navy) and description (dark blue-gray) on white card ---- */
.ca-home-process .ca-ptl__title {
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	font-size: clamp(1.25rem, 1.6vw, 1.5rem) !important;
	font-weight: 700 !important;
	color: #0A0F1E !important;
	margin: 0 0 8px !important;
	letter-spacing: -0.02em;
	line-height: 1.18;
}
.ca-home-process .ca-ptl__desc {
	color: #3A4A6A !important;
	font-size: 0.95rem !important;
	line-height: 1.65 !important;
}

/* ==========================================================================
   HORIZONTAL LAYOUT v4 — Cards-first design, courbe néon traversant les GAPS
   entre les cartes (visible uniquement dans les espaces). Médaillon = badge
   top-center intégré à la carte. Gaps généreux. Hover refiné. (≥1024px)
   ========================================================================== */
@media (min-width: 1024px) {
	.ca-home-process .ca-ptl {
		display: flex !important;
		flex-direction: row !important;
		align-items: stretch !important;
		justify-content: space-between !important;
		gap: 56px !important;            /* (Fix) gaps généreux entre cartes */
		flex-wrap: nowrap !important;
		position: relative;
		padding-top: 56px !important;    /* room pour le badge médaillon top */
		counter-reset: pstep;
	}

	/* (A) Courbe néon AU MILIEU vertical des cartes, traverse les gaps.
	   Les cartes (z-index 3, opaque) masquent les parties sous elles ;
	   seuls les segments dans les gaps restent visibles. */
	.ca-home-process .ca-ptl::before {
		content: '' !important;
		position: absolute !important;
		top: 50% !important;
		left: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		width: 100% !important;
		height: 120px !important;
		transform: translateY(-50%) !important;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'><defs><linearGradient id='cg' x1='0' x2='1'><stop offset='0' stop-color='%2300E5FF' stop-opacity='0'/><stop offset='0.08' stop-color='%2300E5FF' stop-opacity='0.95'/><stop offset='0.5' stop-color='%231B6CF2' stop-opacity='1'/><stop offset='0.92' stop-color='%2300E5FF' stop-opacity='0.95'/><stop offset='1' stop-color='%2300E5FF' stop-opacity='0'/></linearGradient></defs><path d='M 0,50 C 80,50 80,15 200,15 C 320,15 320,50 400,50 C 480,50 480,85 600,85 C 720,85 720,50 800,50 C 880,50 880,15 1000,15 C 1120,15 1120,50 1200,50' stroke='url(%23cg)' stroke-width='3' fill='none' stroke-linecap='round'/><circle cx='0' cy='50' r='4' fill='%2300E5FF'><animate attributeName='cx' from='0' to='1200' dur='10s' repeatCount='indefinite'/><animate attributeName='cy' values='50;15;50;85;50;15;50;85;50' keyTimes='0;0.16;0.33;0.5;0.66;0.75;0.83;0.92;1' dur='10s' repeatCount='indefinite'/></circle></svg>") !important;
		background-repeat: no-repeat !important;
		background-size: 100% 100% !important;
		background-position: center !important;
		filter: drop-shadow(0 0 16px rgba(0,229,255,0.65)) drop-shadow(0 0 32px rgba(27,108,242,0.40));
		mask-image: none !important;
		-webkit-mask-image: none !important;
		box-shadow: none !important;
		pointer-events: none;
		z-index: 1;
		animation: none !important;
		opacity: 1;
	}
	.ca-home-process .ca-ptl::after { display: none !important; }

	/* (B) Step = tile container, full height, badge popping out from top */
	.ca-home-process .ca-ptl__step {
		display: block !important;
		flex: 1 1 0 !important;
		min-width: 0 !important;
		max-width: none !important;
		position: relative;
		counter-increment: pstep;
		z-index: 3;
	}

	/* (C) Médaillon badge — TOP-CENTER, dépasse au-dessus de la carte */
	.ca-home-process .ca-ptl__num {
		position: absolute !important;
		top: -28px !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		width: 64px !important;
		height: 64px !important;
		font-size: 1.45rem !important;
		font-weight: 800 !important;
		font-family: 'Space Grotesk', system-ui, sans-serif !important;
		color: #FFFFFF !important;
		background-color: transparent !important;
		background-image: linear-gradient(135deg, var(--pstep) 0%, var(--pstep-2) 100%) !important;
		background-clip: border-box !important;
		-webkit-background-clip: border-box !important;
		-webkit-text-fill-color: #FFFFFF !important;
		border: 2px solid rgba(255,255,255,0.25) !important;
		box-shadow:
			0 0 0 4px rgba(255,255,255,0.04),
			0 0 20px color-mix(in srgb, var(--pstep) 60%, transparent),
			0 0 50px color-mix(in srgb, var(--pstep-2) 35%, transparent),
			0 14px 32px -10px color-mix(in srgb, var(--pstep) 55%, transparent),
			inset 0 -8px 18px rgba(0,0,0,0.18),
			inset 0 2px 0 rgba(255,255,255,0.30) !important;
		text-shadow: 0 2px 8px rgba(0,0,0,0.30);
		z-index: 6 !important;
		transition: transform 0.35s var(--easing-premium), box-shadow 0.35s var(--easing-premium) !important;
	}
	.ca-home-process .ca-ptl__step:hover .ca-ptl__num {
		transform: translateX(-50%) scale(1.10);
	}
	.ca-home-process .ca-ptl__num::before { inset: -6px !important; opacity: 0.85 !important; }
	.ca-home-process .ca-ptl__num::after  { display: none !important; }

	/* (D) Carte — pleine hauteur, fond blanc, padding-top pour le badge */
	.ca-home-process .ca-ptl__card,
	.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__card {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 320px !important;
		margin: 0 !important;
		padding: 56px 26px 28px !important;
		text-align: left !important;
		border: 1px solid rgba(27,108,242,0.12) !important;
		border-top: 4px solid var(--pstep) !important;
		border-radius: 18px !important;
		background: linear-gradient(180deg, #FFFFFF 0%, #F7FBFF 100%) !important;
		box-shadow:
			0 1px 0 rgba(255,255,255,0.8) inset,
			0 28px 56px -24px rgba(10,15,30,0.40),
			0 0 0 1px rgba(0,229,255,0.05) !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		overflow: hidden !important;
		position: relative !important;
		transition: transform 0.4s var(--easing-premium), box-shadow 0.4s var(--easing-premium), border-color 0.4s !important;
	}
	.ca-home-process .ca-ptl__step:hover .ca-ptl__card {
		transform: translateY(-10px) !important;
		border-color: color-mix(in srgb, var(--pstep) 35%, rgba(27,108,242,0.12)) !important;
		box-shadow:
			0 1px 0 rgba(255,255,255,0.8) inset,
			0 40px 80px -22px rgba(10,15,30,0.55),
			0 0 0 1px color-mix(in srgb, var(--pstep) 35%, transparent),
			0 0 60px -12px color-mix(in srgb, var(--pstep) 50%, transparent) !important;
	}

	/* (E) Ghost number watermark — top-right corner, faded gradient */
	.ca-home-process .ca-ptl__card::before {
		content: counter(pstep, decimal-leading-zero) !important;
		position: absolute !important;
		top: -8px !important;
		right: -6px !important;
		left: auto !important;
		width: auto !important;
		height: auto !important;
		font-family: 'Space Grotesk', system-ui, sans-serif;
		font-size: 7.5rem;
		font-weight: 800;
		line-height: 1;
		background: linear-gradient(135deg, color-mix(in srgb, var(--pstep) 16%, transparent), color-mix(in srgb, var(--pstep) 3%, transparent));
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
		pointer-events: none;
		z-index: 0;
	}
	.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__card::before {
		right: -6px !important; left: auto !important;
	}

	/* (F) Chip "ÉTAPE N/5" — top-left, integrated avec couleur d'étape */
	.ca-home-process .ca-ptl__card::after {
		content: 'ÉTAPE ' counter(pstep) ' / 5' !important;
		position: absolute !important;
		top: 22px !important;
		left: 22px !important;
		right: auto !important;
		bottom: auto !important;
		width: auto !important;
		height: auto !important;
		font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
		font-size: 10px;
		font-weight: 700;
		letter-spacing: 0.18em;
		color: var(--pstep);
		text-transform: uppercase;
		padding: 5px 11px;
		background: color-mix(in srgb, var(--pstep) 8%, #fff);
		border: 1px solid color-mix(in srgb, var(--pstep) 26%, transparent);
		border-radius: 999px;
		pointer-events: none;
		z-index: 3;
		filter: none !important;
	}

	/* (G) Contenu carte au-dessus du watermark */
	.ca-home-process .ca-ptl__icon,
	.ca-home-process .ca-ptl__title,
	.ca-home-process .ca-ptl__desc { position: relative; z-index: 2; }

	.ca-home-process .ca-ptl__icon {
		width: 44px !important;
		height: 44px !important;
		margin: 8px 0 16px !important;
		border-radius: 12px !important;
		align-self: flex-start !important;
	}

	.ca-home-process .ca-ptl__title {
		font-family: 'Space Grotesk', system-ui, sans-serif !important;
		font-size: clamp(1.1rem, 1.2vw, 1.3rem) !important;
		font-weight: 700 !important;
		letter-spacing: -0.025em !important;
		color: #0A0F1E !important;
		line-height: 1.18 !important;
		margin: 0 0 10px !important;
		text-align: left !important;
		width: 100%;
	}
	.ca-home-process .ca-ptl__desc  {
		font-size: 0.875rem !important;
		line-height: 1.62 !important;
		color: #4A5C7A !important;
		text-align: left !important;
		width: 100%;
		margin: 0 !important;
	}
}

/* ---- Mobile fallback (single column zigzag, ligne verticale conservée) ---- */
@media (max-width: 767px) {
	.ca-home-process { padding: 100px 0 !important; }
	.ca-home-process .ca-ptl { gap: 40px !important; }
	.ca-home-process .ca-ptl::before { left: 32px !important; }
	.ca-home-process .ca-ptl__num {
		width: 64px !important;
		height: 64px !important;
		font-size: 1.6rem !important;
	}
	.ca-home-process .ca-ptl__num::after { display: none; }
	.ca-home-process .ca-ptl__step:nth-child(even) .ca-ptl__card {
		border-left: 3px solid var(--pstep) !important;
		border-right: 1px solid rgba(27,108,242,0.12) !important;
	}
	.ca-home-process .ca-ptl__card { padding: 22px 20px !important; max-width: 100% !important; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.ca-home-process::before,
	.ca-home-process::after,
	.ca-home-process .ca-ptl::after,
	.ca-home-process .ca-ptl__num::before { animation: none !important; }
}

/* ==========================================================================
   §2.10 CASES — LIGHT showcase
   ========================================================================== */
.ca-home-cases,
.ca-home-cases .ca-cases-section {
	background: linear-gradient(180deg, #fff 0%, #F4F7FF 100%) !important;
	position: relative;
	overflow: hidden;
}
.ca-home-cases::before {
	content: '';
	position: absolute;
	top: 10%;
	left: -200px;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.08;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-cases .ca-cases-section h2 { color: #0A0F1E !important; font-family: 'Space Grotesk', system-ui, sans-serif !important; font-size: clamp(2.4rem, 4.5vw, 4.2rem) !important; font-weight: 700 !important; letter-spacing: -0.04em !important; }
.ca-home-cases .ca-cases-section .ca-lead { color: #5A6178 !important; }
.ca-home-cases .ca-case-card {
	background: #fff !important;
	border: 1px solid rgba(10, 15, 30, 0.06) !important;
	border-radius: 24px !important;
	box-shadow: var(--hp-sh-card-light);
	transition: all 0.4s var(--hp-ease);
	position: relative;
	overflow: hidden;
}
.ca-home-cases .ca-case-card::before {
	content: '';
	position: absolute;
	top: -80px;
	right: -80px;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle, var(--cat-color, #1B6CF2) 0%, transparent 60%);
	opacity: 0.10;
	filter: blur(30px);
	pointer-events: none;
}
.ca-home-cases .ca-case-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px var(--cat-glow, rgba(27, 108, 242, 0.18));
}
.ca-home-cases .ca-case-card:nth-child(1) { --cat-color: #1B6CF2; --cat-glow: rgba(27,108,242,.18); }
.ca-home-cases .ca-case-card:nth-child(2) { --cat-color: #FF3B30; --cat-glow: rgba(255,59,48,.18); }
.ca-home-cases .ca-case-card:nth-child(3) { --cat-color: #7B2FF7; --cat-glow: rgba(123,47,247,.18); }
.ca-home-cases .ca-case-card:nth-child(4) { --cat-color: #00E5FF; --cat-glow: rgba(0,229,255,.18); }
.ca-home-cases .ca-case-card:nth-child(5) { --cat-color: #FF7A00; --cat-glow: rgba(255,122,0,.18); }
.ca-home-cases .ca-case-card:nth-child(6) { --cat-color: #FF2E8A; --cat-glow: rgba(255,46,138,.18); }
.ca-home-cases .ca-case-title { color: #0A0F1E !important; font-family: 'Space Grotesk', system-ui, sans-serif !important; }
.ca-home-cases .ca-case-tag {
	background: var(--cat-color, #1B6CF2) !important;
	color: #fff !important;
	padding: 6px 12px !important;
	border-radius: 9999px !important;
	font-family: 'Space Grotesk', system-ui, sans-serif !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
}
.ca-home-cases .ca-case-row { color: #3A4055 !important; }

/* ==========================================================================
   §2.11 TESTIMONIALS — DARK premium intimacy (refonte UX)
   Étoiles forcées horizontales (fix Iconify SVG block), hiérarchie raffinée,
   guillemet décoratif, avatar gradient, canton badge cyan, hover refined.
   ========================================================================== */
.ca-home-testimonials,
.ca-home-testimonials .ca-tmq-section {
	background: linear-gradient(180deg, #0A0F1E 0%, #0D1F3C 100%) !important;
	color: #fff;
	position: relative;
	overflow: hidden;
}
.ca-home-testimonials::before {
	content: '';
	position: absolute;
	top: 30%;
	right: -200px;
	width: 550px;
	height: 550px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.22;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-testimonials::after {
	content: '';
	position: absolute;
	bottom: 10%;
	left: -180px;
	width: 480px;
	height: 480px;
	background: radial-gradient(circle, #00E5FF 0%, transparent 70%);
	filter: blur(90px);
	opacity: 0.16;
	border-radius: 50%;
	pointer-events: none;
}

/* --- Cards : glassmorphism dark refined --- */
.ca-home-testimonials .ca-tmq__card {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)) !important;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(0, 229, 255, 0.10) !important;
	border-radius: 20px !important;
	padding: 28px 26px 26px !important;
	color: #fff;
	position: relative !important;
	overflow: hidden !important;
	transition: transform 0.4s var(--easing-premium), border-color 0.4s, box-shadow 0.4s !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.05) inset,
		0 24px 60px -28px rgba(0,0,0,0.6);
}
.ca-home-testimonials .ca-tmq__card:hover {
	transform: translateY(-4px) !important;
	border-color: rgba(0, 229, 255, 0.35) !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.08) inset,
		0 34px 70px -28px rgba(0,0,0,0.7),
		0 0 40px -12px rgba(0,229,255,0.30) !important;
}

/* Decorative quote mark behind content */
.ca-home-testimonials .ca-tmq__card::before {
	content: '"';
	position: absolute;
	top: -28px;
	right: 12px;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 140px;
	font-weight: 700;
	line-height: 1;
	background: linear-gradient(135deg, rgba(0,229,255,0.20), rgba(27,108,242,0.10));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	pointer-events: none;
	z-index: 0;
}

/* --- (FIX) Stars : force horizontal + gold neon glow --- */
.ca-home-testimonials .ca-tmq__stars {
	display: inline-flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 3px !important;
	color: #FFC83D !important;
	margin-bottom: 14px !important;
	position: relative;
	z-index: 2;
	filter: drop-shadow(0 0 6px rgba(255,200,61,0.45));
}
.ca-home-testimonials .ca-tmq__stars > * {
	display: inline-block !important;
	flex-shrink: 0 !important;
	width: 16px !important;
	height: 16px !important;
	line-height: 1 !important;
	vertical-align: middle !important;
}
.ca-home-testimonials .ca-tmq__stars svg,
.ca-home-testimonials .ca-tmq__stars iconify-icon {
	display: inline-block !important;
	width: 16px !important;
	height: 16px !important;
	vertical-align: middle !important;
}

/* --- Quote text --- */
.ca-home-testimonials .ca-tmq__quote {
	color: rgba(255,255,255,0.92) !important;
	font-size: 0.95rem !important;
	line-height: 1.6 !important;
	margin: 0 0 20px !important;
	position: relative;
	z-index: 2;
	font-weight: 400;
}

/* --- Author block --- */
.ca-home-testimonials .ca-tmq__author {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(0,229,255,0.10);
	position: relative;
	z-index: 2;
}
.ca-home-testimonials .ca-tmq__avatar {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background: linear-gradient(135deg, #1B6CF2, #00E5FF) !important;
	color: #fff !important;
	display: grid !important;
	place-items: center !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	flex-shrink: 0;
	box-shadow:
		0 0 16px rgba(0,229,255,0.35),
		inset 0 -3px 8px rgba(0,0,0,0.20),
		inset 0 1px 0 rgba(255,255,255,0.30);
}
.ca-home-testimonials .ca-tmq__author strong {
	color: #fff !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em;
}
.ca-home-testimonials .ca-tmq__author small {
	color: rgba(255,255,255,0.55) !important;
	font-size: 0.75rem !important;
	margin-top: 2px;
}

/* --- Canton badge — cyan pill --- */
.ca-home-testimonials .ca-tmq__canton {
	margin-left: auto !important;
	padding: 4px 10px !important;
	font-family: 'JetBrains Mono', ui-monospace, monospace !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	color: #00E5FF !important;
	background: rgba(0,229,255,0.10) !important;
	border: 1px solid rgba(0,229,255,0.28) !important;
	border-radius: 999px !important;
	text-transform: uppercase;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
}

/* ==========================================================================
   §2.13 CTA — DARK final impact
   ========================================================================== */
.ca-home-cta,
.ca-home-cta .ca-ctab {
	background: linear-gradient(180deg, #0A0F1E 0%, #0D1F3C 100%) !important;
	position: relative;
	overflow: hidden;
	color: #fff;
}
.ca-home-cta::before {
	content: '';
	position: absolute;
	top: -100px;
	left: -100px;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, #1B6CF2 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.40;
	border-radius: 50%;
	pointer-events: none;
}
.ca-home-cta::after {
	content: '';
	position: absolute;
	bottom: -100px;
	right: -100px;
	width: 550px;
	height: 550px;
	background: radial-gradient(circle, #7B2FF7 0%, transparent 70%);
	filter: blur(80px);
	opacity: 0.30;
	border-radius: 50%;
	pointer-events: none;
}

/* ==========================================================================
   RESPONSIVE — 12 viewports CLAUDE.md §4
   ========================================================================== */
@media (max-width: 767px) {
	.ca-home-services .ca-services,
	.ca-home-compare,
	.ca-home-process,
	.ca-home-cases,
	.ca-home-testimonials,
	.ca-home-cta,
	.ca-home-cyber .ca-cyber-section {
		padding: 80px 0 !important;
	}
	.ca-home-punchline { padding: 100px 0 !important; }
}
