/*
Theme Name: ViaXosft
Theme URI: https://viaxosft.p1
Author: ViaXosft
Description: Thème bloc FSE sur mesure pour ViaXosft.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.1
Version: 1.25.0
Text Domain: viaxosft
*/

:root {
	--vx-blue: #4640ff;
	--vx-indigo: #a29cf6;
	--vx-lavender: #dfdcfc;
	--vx-coral: #ff825c;
	--vx-royal: #062367;
	--vx-ink: #0b286d;
	--vx-soft: #f4f3ff;
	--vx-white: #fff;
	--vx-wide: 1400px;
	--vx-radius: 18px;
	--vx-section-w: min(92vw, 1400px);
	--vx-inset-hi: 1px 1px 0 #fff inset;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: hidden;
	font-family: Poppins, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}



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

.site-main,
.site-main > .wp-block-post-content {
	margin: 0;
}

.site-main > .wp-block-post-content > * {
	margin-block-start: 0;
}

.site-header {
	position: relative;
	z-index: 100;
	padding: 18px 24px 0;
}

.site-header__inner {
	min-height: 72px;
	margin: 0 auto;
	padding: 8px 14px 8px 30px;
	border-radius: 999px;
	background: var(--vx-soft);
	box-shadow: 0 8px 24px rgba(6, 35, 103, 0.03);
}

.site-logo {
	flex: 0 0 auto;
	margin: 0;
}

.site-logo img {
	display: block;
	height: auto;
}

.main-navigation {
	flex: 1 1 auto;
	justify-content: center;
	color: var(--vx-royal);
}

.main-navigation .wp-block-navigation-item__content {
	padding: 14px 12px;
}

/* Submenu parent — keep label + chevron on one centred row (hover-open mode
   renders the toggle as a separate button beside the link). */
.main-navigation .wp-block-navigation-item.has-child {
	display: flex;
	align-items: center;
}

.main-navigation .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	padding-right: 2px;
}

.main-navigation .wp-block-navigation-submenu__toggle {
	display: flex;
	align-items: center;
	padding: 14px 12px 14px 2px;
	color: var(--vx-royal);
	font: inherit;
	cursor: pointer;
}

.main-navigation .wp-block-navigation__submenu-icon {
	margin-left: 2px;
}

.main-navigation .wp-block-navigation__submenu-icon svg {
	display: block;
}

/* Desktop submenu dropdown */
.main-navigation .wp-block-navigation__submenu-container {
	min-width: 250px;
	margin-top: 6px;
	padding: 8px;
	border: 0;
	border-radius: 14px;
	background: var(--vx-white);
	box-shadow: 0 14px 38px rgba(6, 35, 103, 0.14);
}

/* Invisible "bridge" over the gap so the cursor can travel from the parent
   into the dropdown without the hover closing. */
.main-navigation .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -12px;
	height: 12px;
}

/* Nested flyout opens sideways — bridge the horizontal gap instead. */
.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before {
	top: 0;
	bottom: 0;
	right: auto;
	left: -12px;
	width: 12px;
	height: auto;
}

.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 10px 14px;
	border-radius: 9px;
	color: var(--vx-royal);
	font-size: 15px;
	transition: background-color 160ms ease, color 160ms ease;
}

.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: var(--vx-soft);
	color: var(--vx-blue);
}

/* Nested submenu (e.g. Blog) — flyout beside its parent item on desktop */
.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	top: -8px;
	left: 100%;
	margin: 0 0 0 6px;
}

/* Active page — highlight the current nav item and its parent */
.main-navigation .vx-current > .wp-block-navigation-item__content,
.main-navigation .vx-current-ancestor > .wp-block-navigation-item__content {
	color: var(--vx-blue) !important;
	font-weight: 700;
}

.main-navigation > ul > .vx-current > .wp-block-navigation-item__content::after,
.main-navigation > ul > .vx-current-ancestor > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 6px;
	height: 2px;
	border-radius: 2px;
	background: var(--vx-blue);
}

.main-navigation > ul > .vx-current > .wp-block-navigation-item__content,
.main-navigation > ul > .vx-current-ancestor > .wp-block-navigation-item__content {
	position: relative;
}

.header-actions,
.header-actions .wp-block-buttons {
	gap: 10px;
	margin: 0;
}

.header-actions .wp-block-button__link {
	min-width: 112px;
	padding: 11px 17px;
	font-size: 12px;
	white-space: nowrap;
}

.header-contact .wp-block-button__link {
	border: 1px solid var(--vx-royal) !important;
	color: var(--vx-royal) !important;
	background: transparent !important;
}

.header-demo .wp-block-button__link {
	min-width: 160px;
}

.header-language {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0 5px 0 4px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.header-language::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
}

.wp-block-button__link {
	transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(6, 35, 103, 0.2);
}

/* Mobile navigation overlay (hamburger open state) */
.main-navigation .wp-block-navigation__responsive-container-open,
.main-navigation .wp-block-navigation__responsive-container-close {
	color: var(--vx-royal);
	padding: 0;
}

.main-navigation .mobile-menu-contact,
.main-navigation .mobile-menu-demo {
	display: none !important;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open {
	display: flex !important;
	align-items: stretch;
	justify-content: flex-end;
	padding: 0 !important;
	background: rgba(6, 35, 103, 0.24) !important;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	width: min(90vw, 430px);
	max-width: none;
	height: 100dvh;
	margin: 0;
	padding: 0;
	border-radius: 28px 0 0 28px;
	background: linear-gradient(180deg, #fff 0%, #f8f7ff 58%, #efedff 100%);
	box-shadow: -24px 0 70px rgba(6, 35, 103, 0.2);
	overflow: hidden;
	animation: vx-mobile-drawer-in 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	position: relative;
	height: 100%;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::before {
	position: absolute;
	z-index: 2;
	top: 27px;
	left: 24px;
	width: 136px;
	height: 31px;
	background: url("/wp-content/uploads/2026/06/Viaxoft_logo_bleu.png") left center / contain no-repeat;
	content: "";
	pointer-events: none;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	z-index: 3;
	top: 20px;
	right: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(6, 35, 103, 0.12);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 8px 24px rgba(6, 35, 103, 0.08);
	transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover,
.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible {
	color: #fff;
	background: var(--vx-royal);
	outline: none;
	transform: rotate(6deg);
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 20px;
	height: 20px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	align-items: stretch !important;
	justify-content: flex-start;
	width: 100%;
	height: 100%;
	padding: 96px 22px 36px !important;
	gap: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: rgba(6, 35, 103, 0.22) transparent;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	width: 100%;
	gap: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid rgba(6, 35, 103, 0.1);
}

/* Ancestor `…container-content …` included so this beats core's own
   `…container-content .item__content { padding: 0 }` (equal specificity, wins on
   source order) — otherwise overlay rows collapse to text height. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	width: 100%;
	color: var(--vx-royal);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	padding: 15px 4px;
	transition: color 160ms ease, background-color 160ms ease, padding 160ms ease;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 15px;
	font-weight: 500;
	color: rgba(6, 35, 103, 0.74);
	padding: 12px 12px;
	border-radius: 10px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
	color: var(--vx-blue);
	outline: none;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	padding-left: 16px;
	background: rgba(112, 103, 242, 0.08);
}

/* Overlay submenu = accordion: flat (no dropdown card), collapsed until its
   toggle reports aria-expanded="true" (core toggles it, but keeps it shown —
   we drive visibility from that state instead). */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	border-left: 1px solid rgba(112, 103, 242, 0.22) !important;
	min-width: 0 !important;
	margin: 0 0 10px 8px !important;
	padding: 0 0 2px 12px !important;
	display: none !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container::before {
	display: none;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	position: static !important;
	top: auto;
	left: auto;
	width: 100% !important;
	margin: 2px 0 8px 6px !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	display: flex !important;
	align-items: stretch;
	width: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Overlay: parent row = full-width label link with the compact chevron toggle
   pinned to its right edge; the submenu drops below as a full-width accordion.
   Block layout (not flex) so core's centered-nav flexbox can't hijack the row.
   The nav runs in hover mode, so the chevron button is the only accordion toggle. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child {
	display: block;
	position: relative;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	width: 100%;
	padding-right: 46px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
	position: absolute !important;
	top: 4px;
	right: -6px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	border-radius: 12px;
	color: var(--vx-royal);
	background: transparent;
	cursor: pointer;
	transition: color 160ms ease, background-color 160ms ease, transform 200ms ease;
}

/* Compact chevron glyph — the raw SVG is scaled up by core in the overlay. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle svg,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
	width: 15px !important;
	height: 15px !important;
	transition: transform 200ms ease;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle:focus-visible,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	color: var(--vx-blue);
	background: rgba(112, 103, 242, 0.1);
	outline: none;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
	flex-basis: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open .vx-current > .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .vx-current-ancestor > .wp-block-navigation-item__content {
	padding-left: 14px;
	border-radius: 12px;
	color: var(--vx-blue) !important;
	background: rgba(112, 103, 242, 0.1);
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-contact,
.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo {
	display: flex !important;
	border-bottom: 0;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-contact {
	margin-top: 24px;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo {
	margin-top: 10px;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-contact > .wp-block-navigation-item__content,
.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo > .wp-block-navigation-item__content {
	justify-content: center;
	padding: 13px 18px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-contact > .wp-block-navigation-item__content {
	border: 1px solid var(--vx-royal);
	background: rgba(255, 255, 255, 0.62);
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo > .wp-block-navigation-item__content {
	color: #fff;
	background: var(--vx-royal);
	box-shadow: 0 10px 28px rgba(6, 35, 103, 0.2);
}

.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo > .wp-block-navigation-item__content:hover,
.main-navigation .wp-block-navigation__responsive-container.is-menu-open .mobile-menu-demo > .wp-block-navigation-item__content:focus-visible {
	color: #fff;
	background: var(--vx-blue);
}

@keyframes vx-mobile-drawer-in {
	from {
		opacity: 0.7;
		transform: translateX(48px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		animation: none;
	}
}

.home-hero {
	position: relative;
	padding: clamp(70px, 7vw, 130px) 24px 54px;
	background: #fff;
	overflow: hidden;
}



.home-hero > * {
	position: relative;
	z-index: 1;
}

.home-hero h1 {
	max-width: 1000px;
	margin: 0 auto 24px;
	font-size: 43px !important;
	line-height: 1.16;
	letter-spacing: -0.035em;
}

.home-hero mark.has-palatinate-color {
	color: #7067f2 !important;
}

.hero-intro {
	max-width: 900px;
	margin: 0 auto 28px;
	color: var(--vx-royal);
	font-size: clamp(17px, 1.35vw, 23px);
	font-weight: 500;
	line-height: 1.55;
}

.home-hero .wp-block-buttons {
	margin-bottom: 36px;
}

.hero-dashboard.alignwide {
	position: relative;
	width: 100%;
	transform: translateX(-50%);
}

.hero-dashboard img {
	display: block;
	width: 100%;
	height: auto;
}

/* Home hero: frames that assemble on load + mouse parallax. */
.home-hero .hero-dashboard {
	display: none;
}

.hp-hero {
	position: relative;
	width: min(1180px, 100%);
	margin: 46px auto 0;
}

.hp-hero::before {
content: url(./assets/images/avion_orange.svg);
    position: absolute;
    width: auto;
    height: auto;
    z-index: 0;
    left: -300px;
    top: -150px;
}

.hp-hero::after {
	content: url(./assets/images/avion_bleu.svg);
    position: absolute;
    width: auto;
    height: auto;
    z-index: -1;
    right: -190px;
    top: -60px;
}


.hp-stage {
	position: relative;
	width: 100%;
	aspect-ratio: 2451 / 1169;
	isolation: isolate;
}

.hp-frame {
	position: absolute;
	transform: translate(calc(var(--mx, 0) * var(--depth, 10) * 1px), calc(var(--my, 0) * var(--depth, 10) * 1px));
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.hp-frame-in {
	display: block;
	animation: hp-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hp-frame img {
	display: block;
	width: 100%;
	height: auto;
}

.hp-dash { left: 0%; top: 0%; width: 100%; z-index: 1; }
.hp-bora { left: 31%; top: 13.5%; width: 55%; z-index: 2; }
.hp-tahiti { left: 31%; top: 60%; width: 55%; z-index: 2; }
.hp-sejour { left: 0; top: 17%; width: 25%; z-index: 4; }
.hp-rangiroa { left: 25%; top: 34%; width: 74%; z-index: 5; }

.hp-dash > .hp-frame-in { --tx: 0px; --ty: 46px; --s: 0.94; animation-delay: 0.05s; }
.hp-bora > .hp-frame-in { --tx: 0px; --ty: -46px; --s: 1; animation-delay: 0.18s; }
.hp-tahiti > .hp-frame-in { --tx: 0px; --ty: 46px; --s: 1; animation-delay: 0.26s; }
.hp-sejour > .hp-frame-in { --tx: -72px; --ty: 0px; --s: 1; animation-delay: 0.36s; }
.hp-rangiroa > .hp-frame-in { --tx: 84px; --ty: 12px; --s: 1.06; animation-delay: 0.48s; }

@keyframes hp-in {
	from { opacity: 0; transform: translate(var(--tx, 0), var(--ty, 0)) scale(var(--s, 1)); }
	to { opacity: 1; transform: translate(0, 0) scale(1); }
}

@media (max-width: 600px) {
	.hp-hero { margin-top: 30px; }
}

@media (prefers-reduced-motion: reduce) {
	.hp-frame-in { animation: none; }
	.hp-frame { transition: none; transform: none; }
}

/* Home hero: two little planes that fly across the section behind the
   dashboard frames. Each plane is an HTML <div> (built in theme.js) placed
   inside .hp-stage at z-index 0, so the frames (z-index 1-5) occlude it
   mid-crossing and .home-hero{overflow:hidden} clips it at the section edges.
   NB: the plane MUST be an HTML element animated with transform — animating
   an SVG element's own transform/offset-distance does not repaint in
   Chromium, leaving the plane frozen at its start position. */
.home-flight-plane {
	position: absolute;
	left: 50%;
	width: 44px;
	margin-left: -22px;
	z-index: 0;
	opacity: 0;
	pointer-events: none;
	filter: drop-shadow(0 8px 13px rgba(6, 35, 103, 0.14));
}

.home-flight-plane svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

/* Short comet tail trailing behind each plane. Orange flies leftward so its
   tail sits to the right; blue flies rightward so its tail sits to the left. */
.home-flight-plane::after {
	content: "";
	position: absolute;
	top: 50%;
	z-index: -1;
	height: 2.5px;
	width: 116px;
	border-radius: 3px;
	transform: translateY(-50%);
	pointer-events: none;
}

/* The planes are driven per-frame by requestAnimationFrame in theme.js (CSS
   keyframe animations on these elements stall intermittently on the
   compositor), so no `animation` is declared here — only their resting
   layout, facing and comet tail. */
.home-flight-orange {
	top: 40%;
}

.home-flight-orange svg {
	transform: scaleX(-1);
}

.home-flight-orange::after {
	left: 60%;
	background: linear-gradient(90deg, rgba(255, 130, 92, 0.5), rgba(255, 130, 92, 0));
}

.home-flight-blue {
	top: 53%;
}

.home-flight-blue::after {
	right: 60%;
	background: linear-gradient(270deg, rgba(162, 156, 246, 0.55), rgba(162, 156, 246, 0));
}

@media (max-width: 781px) {
	.home-flight-plane { display: none; }
}

.client-logos {
	position: relative;
	width: min(100%, 1400px);
	min-height: 74px;
	margin: 0 auto;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
}

.client-logo-track {
	width: max-content;
	gap: 0;
	margin: 0;
	animation: viaxosft-logo-marquee 30s linear infinite;
}

.client-logo-sequence {
	width: 1400px;
	min-width: 1400px;
	gap: clamp(28px, 3vw, 58px);
	padding-inline: 36px;
}

.client-logo-sequence figure {
	display: flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	margin: 0;
	opacity: 0.7;
}

.client-logo-sequence img {
	width: auto;
	max-width: 130px;
	height: auto;
	max-height: 48px;
	object-fit: contain;
}

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

.section-band {
	padding: clamp(90px, 9vw, 155px) 24px;
}

.section-kicker {
	gap: 7px;
	margin: 0 0 18px;
	color: var(--vx-royal);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.section-kicker figure,
.section-kicker p {
	margin: 0;
}

.section-kicker img {
	display: block;
	width: 10px;
	height: auto;
}

.section-band > h2,
.section-band > .wp-block-heading {
	max-width: 1000px;
	margin: 0 auto clamp(48px, 5vw, 40px);
	letter-spacing: -0.025em;
	font-size: clamp(30px, 3.2vw, 33px);
}

.home-benefits {
	background: linear-gradient(180deg, var(--vx-soft) 0%, #faf9ff 86%, #fff 100%);
}

.benefits-layout {
	gap: clamp(50px, 7vw, 115px);
	margin: 0 auto;
}

.benefits-list {
	margin: 0;
}

.benefit-accordion {
	position: relative;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(6, 35, 103, 0.16);
}

.benefit-accordion summary {
	display: flex;
	min-height: 70px;
	align-items: center;
	gap: 17px;
	padding: 18px 40px 18px 44px;
	color: var(--vx-royal);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.benefit-accordion summary::-webkit-details-marker {
	display: none;
}

.benefit-accordion summary::before {
	position: absolute;
	left: 0;
	width: 27px;
	height: 27px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

.benefit-accordion summary::after {
	position: absolute;
	right: 3px;
	color: var(--vx-blue);
	font-size: 23px;
	font-weight: 400;
	content: "+";
}

.benefit-accordion[open] summary {
	padding-bottom: 10px;
}

.benefit-accordion[open] summary::after {
	content: "−";
}

.benefit-accordion > p {
	margin: 0;
	padding: 0 30px 24px 44px;
	font-size: 18px;
	line-height: 1.5;
}

.benefit-automation summary::before { background-image: url("/wp-content/uploads/2026/06/Icn_automatisation.png"); }
.benefit-centralisation summary::before { background-image: url("/wp-content/uploads/2026/06/Icn_centralisation.png"); }
.benefit-connectivite summary::before { background-image: url("/wp-content/uploads/2026/06/Icn_Connectivite.png"); }
.benefit-pilotage summary::before { background-image: url("/wp-content/uploads/2026/06/Icn_pilotage.png"); }
.benefit-expertise summary::before { background-image: url("/wp-content/uploads/2026/06/Icn_expertise.png"); }

.benefit-source-image {
	display: none;
}

.benefit-visual {
	margin: 0;
}

.benefit-visual img {
	display: block;
	width: 100%;
	border-radius: 18px;
	transition: opacity 180ms ease, transform 180ms ease;
}

.benefit-visual.is-changing img {
	opacity: 0;
	transform: translateY(5px);
}

.home-solutions {
	padding-top: 95px;
	padding-bottom: 125px;
	background: #fff;
}

.solutions-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
	align-items: stretch;
	gap: 40px;
	max-width: 1320px;
	min-height: 620px;
	margin: 0 auto 48px;
}

.solutions-grid > .wp-block-column {
	min-width: 0;
}

.solution-featured {
	display: grid !important;
	grid-template-rows: 50% 50%;
	min-height: 620px;
	gap: 0 !important;
	border-radius: 20px;
	background: var(--vx-royal);
	overflow: hidden;
}

.solution-featured-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	margin: 0;
	padding: 58px 72px 48px;
	background: var(--vx-royal);
}

.solution-featured-copy > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
}

.solution-featured-copy > p:first-child {
	margin: 0 0 16px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.solution-logo {
	margin: 0 0 18px;
}

.solution-featured-copy > p:not(:first-child) {
	max-width: 390px;
	margin: 0 0 26px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.45;
}

.solution-featured-copy .wp-block-button__link {
	padding: 11px 22px;
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%) !important;
	color: var(--vx-royal) !important;
	box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.8) !important;
	border-radius: 24px !important;
	font-size: 14px;
}

.solution-featured .solution-main-visual {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: stretch;
	margin: 0;
	padding: 0 0px 0px 72px;
	background: transparent;
	overflow: hidden;
	bottom: -50px;
}

.solution-featured .solution-main-visual::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(6, 35, 103, 0) 0%, var(--vx-royal) 65%);
	pointer-events: none;
	z-index: 2;
}

.solution-logo img,
.solution-side-logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto !important;
	border-radius: 0;
	object-fit: contain;
}

.solution-featured .solution-main-visual img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	border-radius: 14px;
	border-bottom-right-radius: 0;
	border-top-right-radius: 0;
	object-fit: cover;
	object-position: top;
	transform: translateY(0);
	transition: transform 0.5s cubic-bezier(0.16, 0.84, 0.44, 1);
}

.solution-featured:hover .solution-main-visual img {
	transform: translateY(-16%);
}

.solution-side-stack {
	display: flex !important;
	height: 100%;
	flex-direction: column;
	gap: 40px !important;
}

.solution-side-card {
	display: grid !important;
	grid-template-columns: 42% 58%;
	min-height: 0;
	flex: 1 1 0;
	gap: 0;
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
}

.solution-trip {
	background: linear-gradient(120deg, #ece9fc 0%, #fdece6 100%);
}

.solution-analytics {
	background: linear-gradient(120deg, #fdece6 0%, #ece9fc 100%);
}

.solution-side-copy {
	display: flex;
	width: auto;
	min-width: 0;
	flex: none;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	margin: 0;
	padding: 40px 24px 38px 42px;
}

.solution-side-copy > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
}

.solution-side-logo {
	margin: 0 0 16px;
}

.solution-side-copy h3 {
	margin: 0 0 22px;
	font-size: 18px;
	line-height: 1.25;
}

.solution-side-copy .wp-block-button__link {
	padding: 9px 15px;
	border: 1px solid var(--vx-royal) !important;
	color: var(--vx-royal) !important;
	background: transparent !important;
	font-size: 11px;
}

.solution-side-visual {
	position: relative;
	width: auto;
	min-width: 0;
	height: 100%;
	align-self: stretch;
	margin: 0;
	padding: 24px 24px 24px 0;
	overflow: hidden;
}

.solution-side-visual img {
	position: relative;
	bottom: -60px;
	display: block;
	width: 100%;
	height: 110%;
	max-width: none;
	border-radius: 16px;
	box-shadow: 0 24px 48px -20px rgba(6, 35, 103, 0.45);
	object-fit: cover;
	object-position: top left;
	transform: translateY(0);
	transition: transform 0.5s cubic-bezier(0.16, 0.84, 0.44, 1);
}

.solution-analytics .solution-side-visual {
	padding: 0;
}

.solution-analytics .solution-side-visual img {
	height: 100%;
	border-radius: 0;
	object-position: top left;
}

.solution-side-card:hover .solution-side-visual img {
	transform: translateY(-16%);
}

.stats-banner {
	position: relative;
	z-index: 2;
	width: calc(100% - 48px);
	max-width: 1400px !important;
	margin: 0 auto -58px !important;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 20px 50px rgba(6, 35, 103, 0.08);
	background-color: var(--vx-royal);
	background-image: linear-gradient(90deg, var(--vx-royal) 46%, rgba(6, 35, 103, 0.4) 100%), url("/wp-content/uploads/2026/06/chiffre_backgrounds.jpg");
	background-position: center;
	background-size: cover;
}

.stats-banner .wp-block-cover__background {
	background: linear-gradient(90deg, var(--vx-royal) 46%, rgba(6, 35, 103, 0.35) 100%) !important;
	opacity: 1 !important;
}

.stats-banner .wp-block-cover__inner-container > h2 {
	margin: 0 0 26px;
	font-size: 25px;
}

.stats-columns {
	gap: 0;
	margin: 0;
}

.stats-columns .wp-block-column {
	padding: 0 22px;
	border-right: 1px solid rgba(255, 255, 255, 0.55);
}

.stats-columns .wp-block-column:last-child {
	border-right: 0;
}

.stats-columns h2 {
	margin: 0;
	font-size: clamp(28px, 3vw, 46px);
}

.stats-columns p {
	margin: 4px 0 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.home-audiences {
	padding-top: 170px;
	padding-bottom: 90px;
	background: linear-gradient(180deg, var(--vx-soft) 0%, var(--vx-soft) 86%, #fff 100%);
}

.audience-grid {
	gap: 30px;
	margin: 0 auto 95px;
}

.audience-card {
	display: flex;
	min-height: 330px;
	flex-direction: column;
	padding: 49px 36px 36px;
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(223, 220, 252, 0.38) 0%, var(--vx-lavender) 100%);
	box-shadow: inset 1px 1px 0 #fff;
}

.audience-card figure {
	margin: 0 0 17px;
}

.audience-card h3 {
	margin: 0 0 14px;
	font-size: 23px;
	line-height: 1.25;
}

.audience-card p {
	margin: 0 0 24px;
	font-size: 18px;
}

.audience-card .wp-block-buttons {
	margin-top: auto;
}

.audience-card .wp-block-button__link {
	padding: 11px 22px;
	border: 0 !important;
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%) !important;
	color: var(--vx-royal) !important;
	box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.8) !important;
	border-radius: 24px !important;
	font-size: 14px;
}

.partners-row {
	gap: 50px;
	margin: 0 auto;
}

.footer-partners {
	padding: 70px 24px;
	background: #fff;
}

.partners-row h3 {
	margin: 0 0 13px;
	font-size: 30px;
}

.partners-row p {
	margin: 0;
	font-size: 18px;
}

.partner-logos {
	border-left: 1px solid #ede4f2;
	padding-left: 40px !important;
}

.partner-logos .wp-block-group {
	gap: clamp(36px, 5vw, 85px);
	justify-content: flex-end !important;
}

.partner-logos figure {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.partner-logos img {
	width: auto !important;
	max-width: 155px;
	height: auto;
	max-height: 62px;
	object-fit: contain;
}

.site-footer {
	position: relative;
	padding: 68px 24px 10px;
	background-color: var(--vx-royal);
	background-image: url("/wp-content/uploads/2026/06/background_footer.jpg");
	background-position: center;
	background-size: cover;
	color: #fff;
	overflow: hidden;
}

.site-footer::after {
	display: none;
}

.site-footer > * {
	position: relative;
	z-index: 1;
}

.footer-cta {
	gap: 35px;
	margin: 0 auto 42px;
	padding-top: 10px;
}

.footer-cta .wp-block-button__link {
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%) !important;
	color: var(--vx-royal) !important;
	box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.8) !important;
	border-radius: 24px !important;
	font-size: 14px;
	padding: 12px 24px;
}

.newsletter .wp-block-button__link {
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%) !important;
	color: var(--vx-royal) !important;
	box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.8) !important;
}

.footer-cta > .wp-block-group {
	width: min(80%, 1020px);
	max-width: none;
}

.footer-cta h2 {
	white-space: nowrap;
}

.footer-cta h2 {
	margin: 0 0 14px;
	font-size: clamp(26px, 3vw, 36px);
}

.footer-cta p {
	margin: 0;
	font-size: 22px;
}

.footer-rule {
	max-width: 1400px;
	width: calc(100% - 48px) !important;
	margin: 0 auto 48px;
	border-color: rgba(255, 255, 255, 0.32);
}

.footer-columns {
	margin: 0 auto;
}

.footer-columns h3 {
	margin: 0 0 20px;
	font-size: 18px;
}

.footer-columns p,
.footer-list {
	color: #fff;
	font-size: 16px;
	line-height: 1.9;
}

.footer-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-list a,
.footer-columns p a {
	color: #fff;
	text-decoration: none;
	transition: opacity 160ms ease;
}

.footer-list a:hover,
.footer-list a:focus-visible,
.footer-columns p a:hover,
.footer-columns p a:focus-visible {
	opacity: 0.72;
	text-decoration: underline;
}

.footer-socials-icons {
	display: flex;
	gap: 10px;
	margin: 0 0 20px;
}

.footer-social-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	transition: background 180ms ease;
}

.footer-social-btn:hover {
	background: rgba(255, 255, 255, 0.22);
}

.newsletter {
	gap: 8px;
	max-width: 420px;
	padding: 5px 5px 5px 17px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 999px;
}

.newsletter > p {
	flex: 1 1 auto;
	margin: 0;
	opacity: 0.75;
}

.newsletter .wp-block-button__link {
	padding: 8px 16px;
	font-size: 11px;
}

.page-shell {
	min-height: 50vh;
	padding: 90px 24px;
}

@media (max-width: 1080px) {
	.site-header__inner {
		padding-left: 20px;
		flex-wrap: nowrap;
	}

	.main-navigation .wp-block-navigation-item__content {
		padding-inline: 6px;
	}

	.main-navigation .wp-block-navigation__container {
		flex-wrap: nowrap;
	}

	.header-language,
	.header-actions .header-contact {
		display: none;
	}

	.header-demo .wp-block-button__link {
		min-width: auto;
	}

	.client-logos {
		width: 100%;
	}

	.audience-grid {
		flex-wrap: wrap !important;
	}

	.audience-card {
		flex-basis: calc(50% - 15px) !important;
	}
}

@media (max-width: 1024px) {
	.solutions-grid {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
		gap: 32px;
	}

	.solution-featured {
		min-height: 620px;
	}

	.solution-side-stack {
		gap: 32px !important;
	}

	.solution-side-card {
		min-height: 300px;
		flex: 0 0 auto;
	}
}

@media (max-width: 781px) {
	body.admin-bar .site-header {
		top: 46px;
	}

	.site-header {
		padding: 10px 12px 0;
	}

	.site-header__inner {
		min-height: 60px;
		padding: 8px 10px 8px 18px;
	}

	.site-logo img {
		width: 122px !important;
	}

	.main-navigation {
		order: 3;
		flex: 0 0 auto;
	}

	/* Collapse to hamburger: show the toggle, hide the inline links
	   (the overlay container re-appears when it gains .is-menu-open). */
	.main-navigation .wp-block-navigation__responsive-container-open {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		border: 1px solid rgba(6, 35, 103, 0.12);
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.72);
		box-shadow: 0 6px 18px rgba(6, 35, 103, 0.06);
		transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
	}

	.main-navigation .wp-block-navigation__responsive-container-open:hover,
	.main-navigation .wp-block-navigation__responsive-container-open:focus-visible {
		color: #fff;
		background: var(--vx-royal);
		outline: none;
		transform: translateY(-1px);
	}

	.main-navigation .wp-block-navigation__responsive-container-open svg {
		width: 22px;
		height: 22px;
	}

	.main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	.header-actions {
		margin-left: auto;
	}

	.header-demo .wp-block-button__link {
		padding: 9px 12px;
		font-size: 10px;
	}

	.home-hero {
		padding: 64px 18px 42px;
	}

	.home-hero h1 br {
		display: none;
	}



	.hero-intro {
		font-size: 15px;
	}



	.client-logos {
		min-height: 64px;
	}

	.client-logo-sequence {
		width: 760px;
		min-width: 760px;
		gap: 22px;
		padding-inline: 20px;
	}

	.client-logo-sequence img {
		max-width: 72px;
		max-height: 30px;
	}

	.section-band {
		padding: 74px 20px;
	}

	.section-band > h2 {
		margin-bottom: 45px;
	}

	.benefits-layout,
	.solutions-grid,
	.partners-row,
	.footer-columns {
		gap: 42px;
	}

	.benefits-layout {
		flex-direction: column-reverse;
	}

	.solution-side-card {
		min-height: 330px;
	}

	.solution-side-copy {
		width: auto;
		padding: 30px 22px 30px 30px;
	}

	.solution-side-copy h3 {
		font-size: 15px;
	}

	.stats-banner {
		width: calc(100% - 28px);
		min-height: 500px !important;
		margin-bottom: -40px !important;
	}

	.stats-columns {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 30px 0;
	}

	.stats-columns .wp-block-column {
		border-right: 0;
	}

	.home-audiences {
		padding-top: 120px;
		background: var(--vx-soft);
	}

	.audience-grid {
		gap: 18px;
		margin-bottom: 65px;
	}

	.audience-card {
		min-height: 290px;
		flex-basis: 100% !important;
		padding: 30px 25px;
	}

	.footer-partners {
		padding: 55px 20px;
	}

	.partner-logos .wp-block-group {
		gap: 28px;
		justify-content: flex-start;
	}

	.site-footer {
		padding: 55px 20px;
	}

	.footer-cta {
		align-items: flex-start;
	}

	.footer-cta > .wp-block-group {
		width: 100%;
	}

	.footer-cta h2 {
		white-space: normal;
	}

	.footer-columns {
		flex-direction: column;
	}
}

/* ============================================================
   SCROLL ANIMATIONS
   Classes applied by JS — graceful degradation if JS is off.
   ============================================================ */

/* Hero — CSS keyframe (above fold, no IntersectionObserver needed) */
@keyframes vxHeroIn {
	from { opacity: 0; transform: translateY(28px); }
	to   { opacity: 1; transform: none; }
}
@keyframes vxHeroScale {
	from { opacity: 0; transform: scale(0.95); }
	to   { opacity: 1; transform: none; }
}
.vx-hero-in {
	animation: vxHeroIn 0.72s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: var(--vx-delay, 0ms);
}
.vx-hero-scale {
	animation: vxHeroScale 0.82s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: var(--vx-delay, 0ms);
}

/* Scroll sections — applied by JS via IntersectionObserver */
.vx-anim {
	opacity: 0;
	transition:
		opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--vx-delay, 0ms);
	will-change: opacity, transform;
}

.vx-fade-up    { transform: translateY(32px); }
.vx-fade-left  { transform: translateX(-36px); }
.vx-fade-right { transform: translateX(36px); }
.vx-fade-scale { transform: scale(0.94); }

/* On narrow screens, sideways reveals become vertical — cleaner on mobile and
   avoids the pre-reveal transform poking past the viewport edge. */
@media (max-width: 782px) {
	.vx-fade-left,
	.vx-fade-right { transform: translateY(28px); }
}

.vx-anim.vx-visible {
	opacity: 1;
	transform: none;
}

/* Anti-flash: hide the to-be-animated elements before theme.js runs.
   `vx-js` is set in <head> (pre-paint); theme.js adds `vx-ready` once it has
   applied the animation classes, after which the rules above take over.
   Scoped to no-preference so reduced-motion users always see static content,
   and to selectors that mirror the JS in assets/js/theme.js. */
@media (prefers-reduced-motion: no-preference) {
	.vx-js:not(.vx-ready) :is(
		.home-hero .section-kicker, .home-hero h1, .hero-intro, .hero-actions, .hero-dashboard,
		.contact-hero .section-kicker, .contact-hero-title, .contact-hero-text, .contact-hero-visual,
		.blog-hero .archive-kicker, .blog-hero-title, .blog-hero-sub,
		.single-hero-terms, .single-title, .single-meta,
		.crm-hero .crm-kicker, .crm-product-logo, .crm-hero-title, .crm-hero-subtitle, .crm-hero-text, .crm-hero-actions, .crm-hero-visual,
		.to-hero .to-kicker, .api-eyebrow, .to-product-logo, .to-hero-title, .to-hero-lead, .api-hero .to-channel-panel, .to-hero-actions,
		.benefits-layout .section-kicker, .benefits-layout h2, .benefit-visual, .benefit-accordion,
		.home-solutions .section-kicker, .home-solutions h2, .solution-featured, .solution-side-card,
		.stats-columns .wp-block-column,
		.home-audiences .section-kicker, .home-audiences h2, .audience-card,
		.footer-partners, .footer-cta,
		.ent-mission .section-kicker, .ent-mission h2, .mission-left-col, .mission-photo-card,
		.ent-atouts .section-kicker, .ent-atouts h2, .atout-card,
		.ent-engagement .section-kicker, .ent-engagement h2, .engagement-left, .engagement-visual,
		.ent-histoire .section-kicker, .histoire-text h2, .histoire-text, .timeline-card,
		.contact-card, .contact-form-col, .contact-map-col,
		.article-card,
		.single-featured, .single-content,
		.crm-information .crm-kicker, .crm-information > h2, .crm-information > .wp-block-heading, .crm-information > .crm-section-lead, .crm-information > .crm-vision-statement, .crm-info-heading, .crm-info-card, .crm-performance .crm-kicker, .crm-performance .crm-kicker-light, .crm-performance > h2, .crm-performance > .wp-block-heading, .crm-slider, .crm-journey .crm-kicker, .crm-stage,
		.to-section > .to-kicker, .to-section > h2, .to-section > .wp-block-heading, .to-section > .to-section-lead, .to-section > .crm-vision-statement,
		.to-challenges .to-kicker, .to-challenge-main, .to-challenge-card, .to-features .to-kicker, .to-feature-nav, .to-feature-copy, .to-benefits .to-kicker, .to-benefit-card, .to-channel-intro, .to-channel-item,
		.web-split > .wp-block-column, .web-visual, .web-testimonial, .web-journey-note,
		.connect-ndc .connect-ndc-kicker, .connect-ndc h2, .connect-ndc .wp-block-column:first-child p:not(.connect-ndc-kicker), .connect-ndc-list li, .connect-group-label, .connect-chips, .connect-result,
		.api-tagline, .api-result, .crm-cta, .analytics-faq-list .wp-block-details,
		.analytics-intro-visual, .analytics-datasets-table, .analytics-product-logo, .analytics-hero-eyebrow, .analytics-hero-title, .analytics-hero-lead, .analytics-hero-actions, .analytics-hero-visual,
		.analytics-section > .analytics-kicker, .analytics-growth-copy, .analytics-growth-visual, .analytics-role, .analytics-capability, .analytics-benefit, .analytics-cta
	) {
		opacity: 0;
	}
}

/* Accordion smooth transition —
   display:block !important keeps <p> in layout even when <details> is closed,
   so max-height can animate out before open is removed. */
.benefit-accordion > p {
	display: block !important;
	overflow: hidden;
	transition:
		max-height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
		opacity    0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
	.vx-hero-in,
	.vx-hero-scale {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
	.vx-anim {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.benefit-accordion > p {
		transition: none !important;
	}
}

@media (max-width: 480px) {
	.home-hero h1 {
		font-size: 34px !important;
	}

	.solution-side-card {
		min-height: 0;
		flex: 0 0 auto;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 230px;
	}

	.solution-side-copy {
		width: auto;
		padding: 30px 28px 24px;
	}

	.solution-side-visual {
		width: 100%;
		height: 230px;
	}

	.solution-featured {
		grid-template-rows: auto 260px;
		min-height: 0;
	}

	.solution-featured-copy {
		padding: 38px 30px 34px;
	}

	.solution-featured .solution-main-visual img {
		left: 24px;
		width: 112%;
	}

	.partner-logos .wp-block-group {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 14px;
	}

	.partner-logos figure {
		width: auto;
	}

	.partner-logos img {
		width: 100% !important;
		max-width: 100px;
		height: 46px !important;
		max-height: none;
		object-fit: contain;
	}

	.stats-columns {
		grid-template-columns: 1fr;
	}

	.stats-banner {
		min-height: 720px !important;
	}

	.newsletter {
		flex-wrap: wrap !important;
		border: 0;
		padding: 0;
	}
}

/* Very small screens — the header CTA no longer fits beside logo + burger. */
@media (max-width: 360px) {
	.main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		width: 100vw;
		border-radius: 0;
	}

	.header-actions .header-demo {
		display: none;
	}

	.site-logo img {
		width: 112px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.wp-block-button__link {
		transition: none;
	}

	.client-logo-track {
		animation: none;
	}
}

.editor-styles-wrapper .client-logo-track {
	width: auto;
	animation: none;
}

.editor-styles-wrapper .benefit-source-image {
	display: block;
	max-width: 220px;
}

/* ============================================================
   PAGE ENTREPRISE
   ============================================================ */

/* Override Gutenberg's 780px content-size so is-layout-constrained children span 1400px */
.ent-hero,
.ent-mission,
.ent-atouts,
.ent-engagement,
.ent-histoire {
	--wp--style--global--content-size: var(--vx-section-w);
	--wp--style--global--wide-size: var(--vx-section-w);
}

/* ── Hero ── */
.ent-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(80px, 8vw, 130px) 24px clamp(60px, 6vw, 90px);
	text-align: center;
}

.ent-hero > * {
	position: relative;
	z-index: 1;
}

.ent-histoire::before,
.ent-histoire::after,
.ent-hero::before,
.ent-hero::after,
.blog-hero::before,
.blog-hero::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
	z-index: 1;
}
.ent-histoire::before,
.ent-hero::before,
.blog-hero::before {
	left: 0;
	background-image: url("/wp-content/uploads/2026/07/left_hero_before.png");
	background-position: left center;
}

.ent-histoire::after,
.ent-hero::after,
.blog-hero::after {
	right: 0;
	background-image: url("/wp-content/uploads/2026/07/left_hero_after.png");
	background-position: right center;
}

.ent-hero .wp-block-heading {
	max-width: 920px;
	margin: 0 auto 24px;
	font-size: clamp(30px, 3.2vw, 43px) !important;
	letter-spacing: -0.03em;
	line-height: 1.18;
}

.ent-hero mark {
	background: transparent;
}

.ent-hero-sub {
	max-width: 1000px;
	margin: 0 auto !important;
	font-size: clamp(16px, 1.25vw, 20px);
	font-weight: 500;
	line-height: 1.65;
	color: var(--vx-royal);
}

/* ── Mission ── */
.ent-mission,
.ent-atouts,
.ent-engagement,
.ent-histoire {
	padding-top: clamp(70px, 7vw, 110px);
	padding-bottom: clamp(70px, 7vw, 110px);
}

.ent-mission {
	background: linear-gradient(180deg, #f6f5fe 0%, #fff 100%);
}

.ent-mission-sub {
	max-width: 760px;
	margin: -24px auto 52px !important;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--vx-royal);
}

.mission-cards {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) 1.3fr 1.3fr;
	gap: 30px;
	align-items: stretch;
	position: relative;
}

.mission-left-col {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.mission-cards > *,
.mission-left-col > *,
.atouts-grid > *,
.atouts-row > *,
.atout-card > *,
.engagement-layout > *,
.histoire-layout > *,
.timeline > * {
	margin-block: 0;
}

.mission-left-card {
	flex: 1.5;
	border-radius: var(--vx-radius);
	background: linear-gradient(180deg, rgba(223,220,252,0.38) 0%, var(--vx-lavender) 100%);
	box-shadow: var(--vx-inset-hi);
	padding: 70px 28px 28px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.65;
	color: var(--vx-royal);
}

.mission-left-card > p,
.mission-partner-box > p {
	margin: 0;
	color: inherit;
	font: inherit;
	line-height: inherit;
}

.mission-partner-box {
	flex: 1;
	position: relative;
	border-radius: var(--vx-radius);
	background: var(--vx-royal);
	padding: 48px 28px 26px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.6;
	color: #fff;
	display: flex;
	flex-direction: column;
}

.mission-partner-icon {
	position: absolute;
	top: -31px;
	left: 50%;
	transform: translateX(-50%);
	width: 62px;
	height: 62px;
	object-fit: contain;
	margin: 0;
}

.mission-partner-icon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Widget reservations_377 — moitié en dehors / moitié dans mission-left-card */
.mission-widget {
    align-self: center;
    position: absolute;
    z-index: 2;
    border-radius: 8px;
    overflow: hidden;
    transform: rotate(-8deg);
    filter: drop-shadow(9px 5px 22px rgba(6, 35, 103, 0.14));
    pointer-events: none;
    top: -100px;
}

.mission-widget img {
	display: block;
	width: 100%;
	height: auto;
}

.mission-widget > .wp-block-image,
.histoire-text > * {
	margin-block-start: 0;
}

.mission-widget > .wp-block-image {
	margin-block-end: 0;
}

.mission-photo-card {
	position: relative;
	border-radius: var(--vx-radius);
	overflow: hidden;
}

.mission-photo-card > img,
.mission-photo-card > .wp-block-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}

.mission-photo-card > img,
.mission-photo-card > .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.mission-photo-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 32px 36px;
	color: #fff;
}

.mission-photo-card.mission-blue .mission-photo-overlay {
	background: linear-gradient(180deg,
		rgba(6,35,103,0) 0%,
		rgba(6,35,103,0) 22%,
		rgba(6,35,103,0.52) 48%,
		rgba(6,35,103,0.90) 68%,
		rgba(6,35,103,0.97) 100%);
}

.mission-photo-card.mission-coral .mission-photo-overlay {
	background: linear-gradient(180deg,
		rgba(255,130,92,0) 0%,
		rgba(255,130,92,0) 22%,
		rgba(255,130,92,0.52) 48%,
		rgba(255,130,92,0.90) 68%,
		rgba(255,130,92,0.97) 100%);
}

.mission-photo-overlay h3 {
	font-size: 21px;
	font-weight: 700;
	margin: 0 0 10px;
	color: #fff;
}

.mission-photo-overlay p {
	font-size: 17px;
	font-weight: 500;
	line-height: 1.6;
	margin: 0;
	color: #fff;
}

/* ── Atouts ── */
.ent-atouts {
	background: #fff;
}

.atouts-grid {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.atouts-row {
	display: flex;
	gap: 22px;
}

.atout-card {
	flex: 1;
	border-radius: var(--vx-radius);
	background: linear-gradient(180deg, #f3f0fc 0%, var(--vx-lavender) 100%);
	box-shadow: var(--vx-inset-hi);
	padding: 36px 30px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.atout-card-header {
	display: flex;
	align-items: center;
	gap: 16px;
}

.atout-card-icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	margin: 0;
}

.atout-card-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.atout-card h3 {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	color: var(--vx-royal);
	line-height: 1.3;
}

.atout-card p {
	margin: 0;
	font-size: 19px;
	line-height: 1.65;
	color: var(--vx-royal);
}

/* ── Engagement ── */
.ent-engagement {
	background: linear-gradient(180deg, #fff 0%, var(--vx-soft) 50%, #fff 100%);
}

.ent-engagement-lead {
	max-width: 760px;
	margin: -24px auto 56px !important;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--vx-royal);
}

.engagement-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
}

.engagement-left > p {
	font-size: 17px;
	font-weight: 500;
	line-height: 1.65;
	color: var(--vx-royal);
	margin: 0 0 26px;
}

.engagement-bullets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.engagement-bullets li {
	position: relative;
	padding-left: 20px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--vx-royal);
}

.engagement-bullets li::before {
	content: "›";
	position: absolute;
	left: 0;
	top: -1px;
	color: var(--vx-coral);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.3;
}

.engagement-visual {
	position: relative;
}

.engagement-photo {
	border-radius: var(--vx-radius);
	overflow: hidden;
	width: 100%;
	aspect-ratio: 0.78;
}

.engagement-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.engagement-photo > .wp-block-image {
	width: 100%;
	height: 100%;
	margin: 0;
}

.engagement-widget {
	position: absolute;
	left: -30px;
	bottom: 48px;
	width: 195px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 8px 6px 24px rgba(6,35,103,0.12);
}

.engagement-widget img {
	display: block;
	width: 100%;
	height: auto;
}

/* ── Histoire ── */
.ent-histoire {
	background: linear-gradient(180deg, #fff 0%, var(--vx-lavender) 100%);
}

.histoire-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
	align-items: center;
	min-height: 486px;
}

.histoire-text .section-kicker {
	justify-content: flex-start;
}

.histoire-text h2 {
	font-size: clamp(28px, 2.5vw, 42px);
	text-align: left;
	margin: 0 0 26px;
	letter-spacing: -0.025em;
}

.histoire-text > p {
	font-size: 17px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--vx-royal);
	margin: 0 0 32px;
}

.wp-block-button.histoire-read-more {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.histoire-read-more .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--vx-royal);
	border-radius: 30px;
	background: transparent !important;
	padding: 12px 26px;
	font-size: 15px;
	font-weight: 500;
	color: var(--vx-royal);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.histoire-read-more .wp-block-button__link:hover {
	background: var(--vx-royal) !important;
	color: #fff;
}

.timeline {
	display: flex;
	flex-direction: column;
}

.timeline-card {
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%);
	border-radius: 22px;
	padding: 26px 34px;
	box-shadow: 0 -8px 26px rgba(219,214,253,0.6);
	display: flex;
	align-items: center;
	gap: 36px;
	margin-top: -18px;
	position: relative;
}

.timeline-card:first-child {
	margin-top: 0;
}

.timeline-year {
	font-size: 32px;
	font-weight: 700;
	color: var(--vx-coral);
	flex-shrink: 0;
	min-width: 72px;
	line-height: 1;
}

.timeline-event {
	font-size: 17px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--vx-royal);
}

.timeline-year,
.timeline-event {
	margin: 0;
}

/* ── Entreprise — responsive ── */
@media (max-width: 1080px) {
	.mission-cards {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.mission-photo-card {
		aspect-ratio: 1.4;
	}

	.mission-widget {
		position: static;
		margin: 0 auto -40px;
	}
}

@media (max-width: 900px) {
	.engagement-layout,
	.histoire-layout {
		grid-template-columns: 1fr;
	}

	.histoire-layout {
		min-height: 0;
	}

	.engagement-visual {
		max-width: 460px;
	}

	.engagement-widget {
		left: 0;
		width: min(195px, 42%);
	}

	.atouts-row {
		flex-wrap: wrap;
	}

	.atouts-row .atout-card {
		flex: 1 1 calc(50% - 11px);
	}
}

@media (max-width: 560px) {
	.atouts-row .atout-card {
		flex-basis: 100%;
	}

	.timeline-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding: 22px 24px;
	}

	.timeline-year {
		min-width: 0;
	}

	.mission-photo-card {
		aspect-ratio: 1.15;
	}
}

/* ============================================================
   VIAXEO TO — PAGE PRODUIT
   ============================================================ */

.to-hero {
	position: relative;
	padding: 92px 24px 76px;
	background: #fff;
	overflow: hidden;
}

.to-hero::before,
.to-hero::after {
	position: absolute;
	z-index: 0;
	top: 0;
	width: 390px;
	height: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	pointer-events: none;
}

.to-hero::before {
	left: -110px;
	background-image: url("/wp-content/uploads/2026/07/left_hero_before_2.png");
}

.to-hero::after {
	right: -130px;
	background-image: url("/wp-content/uploads/2026/07/left_hero_after_2.png");
}

.to-hero-inner {
	position: relative;
	z-index: 1;
	margin: 0 auto;
}

.to-product-logo {
	margin: 0 auto 20px;
}

.to-product-logo img {
	display: block;
	height: auto;
}

.to-hero-title {
	max-width: 980px;
	margin: 0 auto 20px;
	font-size: clamp(34px, 3vw, 40px);
	line-height: 1.18;
	letter-spacing: -0.03em;
}

.to-hero-lead {
	margin: 0 auto 48px;
	font-size: 23px;
	font-weight: 500;
	line-height: 1.55;
}

.to-channel-panel {
	max-width: 900px;
	margin: 0 auto;
	padding: 34px 45px 22px;
	border-radius: 15px;
	background: linear-gradient(180deg, #f6f5fe 0%, #fff 100%);
	box-shadow: 0 10px 35px rgba(6,35,103,0.035);
}

.to-channel-intro {
	margin: 0 0 24px;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.55;
}

.to-channel-grid {
	gap: 0;
	margin: 0;
}

.to-channel-item {
	position: relative;
	padding: 4px 20px 0;
	border-right: 1px solid rgba(6,35,103,0.12);
}

.to-channel-item:last-child {
	border-right: 0;
}

.to-channel-item figure,
.to-channel-item p {
	margin: 0;
}

.to-channel-item figure {
	display: flex;
	justify-content: center;
	margin-bottom: 8px;
}

.to-channel-item img {
	display: block;
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.to-channel-item p {
	font-size: 14px;
}

.to-hero-actions {
	gap: 18px;
	margin-top: 28px;
}

.to-hero-actions .is-style-outline .wp-block-button__link {
	border: 1px solid var(--vx-royal) !important;
	color: var(--vx-royal) !important;
	background: #fff !important;
}

.to-section {
	padding: 90px 24px;
}

.to-kicker {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 0 0 18px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.to-kicker::before {
	width: 7px;
	height: 11px;
	background: url("/wp-content/uploads/2026/06/chevron_orange.png") center / contain no-repeat;
	content: "";
}

.to-section > h2 {
	max-width: 940px;
	margin: 0 auto 30px;
	font-size: clamp(30px, 3vw, 42px);
	line-height: 1.25;
	letter-spacing: -0.025em;
}

.to-section-lead {
	max-width: 920px;
	margin: -12px auto 58px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.55;
}

.to-challenges {
	background: linear-gradient(180deg, #f6f5fe 0%, #fff 100%);
}

.to-challenges > h2 {
	margin-bottom: 68px;
}

.to-challenges-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 34px;
	max-width: 1180px;
	margin: 0 auto;
}

.to-challenge-main {
	display: flex;
	min-height: 390px;
	flex-direction: column;
	justify-content: center;
	padding: 64px 58px;
	border-radius: 18px;
	background-color: var(--vx-royal);
	background-image: linear-gradient(rgba(6,35,103,0.08), rgba(6,35,103,0.08)), url("/wp-content/uploads/2026/07/fond_bleu_etoile_droite.jpg");
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.to-challenge-main h3 {
	width: 100%;
	margin: 0 0 18px !important;
	font-size: 23px;
	line-height: 1.35;
	text-align: left;
}

.to-challenge-main p {
	width: 100%;
	max-width: 470px;
	margin: 0 !important;
	font-size: 20px;
	line-height: 1.55;
	font-weight: 600;
	text-align: left;
}

.to-challenge-stack {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.to-challenge-card {
	display: flex;
	min-height: 179px;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: center;
	padding: 38px 48px;
	border-radius: 16px;
	background: linear-gradient(119.5deg, #ebeafd 1.4%, #ffede8 98.6%);
}

.to-challenge-card h3 {
	width: 100%;
	margin: 0 0 16px !important;
	font-size: 20px;
	text-align: left;
}

.to-challenge-card p {
	width: 100%;
	margin: 0 !important;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 600;
	text-align: left;
}

.to-benefits {
	position: relative;
	background: linear-gradient(180deg, rgba(255,130,92,0.05) 0%, rgba(255,255,255,0) 100%);
	overflow: hidden;
}

.to-benefits::before,
.to-benefits::after {
	position: absolute;
	z-index: 0;
	border: 0;
	border-radius: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	content: "";
	pointer-events: none;
}

.to-benefits::before {
	top: 118px;
	left: -24vw;
	width: 46vw;
	aspect-ratio: 883 / 537;
	background-image: url("/wp-content/uploads/2026/07/etoile_orange_sur_titre_gauche.png");
	transform: scaleX(-1);
}

.to-benefits::after {
	top: 115px;
	right: -16vw;
	width: 42vw;
	aspect-ratio: 811 / 436;
	background-image: url("/wp-content/uploads/2026/07/etoile_orange_sur_titre_droite.png");
	transform: scaleX(-1);
}

.to-benefits > * {
	position: relative;
	z-index: 1;
}

.to-benefits-grid {
	position: relative;
	z-index: 1;
	gap: 30px;
	max-width: 1180px;
	margin: 0 auto;
}

.to-benefits-grid > .wp-block-column {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.to-benefit-card {
	min-height: 185px;
	padding: 32px 38px;
	border-radius: 16px;
	background: linear-gradient(180deg, #f2efff 0%, var(--vx-lavender) 100%);
}

.to-benefit-heading {
	align-items: center;
	gap: 15px;
	margin: 0 0 20px;
}

.to-benefit-heading figure,
.to-benefit-heading h3 {
	margin: 0;
}

.to-benefit-heading figure {
	display: flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
}

.to-benefit-heading img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.to-benefit-heading h3 {
	font-size: 18px;
	line-height: 1.35;
}

.to-benefit-card > p {
	margin: 0;
	font-size: 20px;
	line-height: 1.55;
}

.to-features {
	background: linear-gradient(180deg, #f6f5fe 0%, #fff 100%);
}

.to-feature-layout {
	gap: clamp(55px, 7vw, 110px);
	max-width: 1180px;
	margin: 62px auto 0;
}

.to-feature-nav {
	margin: 0;
}

.to-feature-row {
	align-items: center;
	gap: 18px;
	min-height: 67px;
	margin: 0;
	padding: 16px 18px;
	border-bottom: 2px solid var(--vx-lavender);
	cursor: pointer;
	transition: background-color 180ms ease;
}

.to-feature-row.is-active {
	background: #f1f0fe;
}

.to-feature-row:focus-visible {
	outline: 2px solid var(--vx-blue);
	outline-offset: -2px;
}

.to-feature-row figure,
.to-feature-row p {
	margin: 0;
}

.to-feature-row figure {
	display: flex;
	width: 30px;
	height: 30px;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
}

.to-feature-row img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.to-feature-row p {
	font-size: 15px;
	line-height: 1.35;
}

.to-feature-panel {
	animation: to-feature-panel-in 220ms ease both;
}

.to-feature-panel:not(.is-active),
.to-feature-panel[hidden] {
	display: none !important;
}

.to-feature-copy-head {
	align-items: center;
	gap: 18px;
	margin: 0 0 26px;
}

.to-feature-copy-head figure,
.to-feature-copy-head h3 {
	margin: 0;
}

.to-feature-copy-head figure {
	display: flex;
	width: 29px;
	height: 29px;
	align-items: center;
	justify-content: center;
	flex: 0 0 29px;
}

.to-feature-copy-head img {
	display: block;
	width: 29px;
	height: 29px;
	object-fit: contain;
}

.to-feature-copy h3 {
	font-size: 19px;
	line-height: 1.4;
}

.to-feature-copy p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 1.62;
}

@keyframes to-feature-panel-in {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.editor-styles-wrapper .to-feature-panel,
.block-editor-block-list__layout .to-feature-panel {
	display: block !important;
	margin-block: 16px;
	padding: 18px;
	border: 1px dashed var(--vx-indigo);
}

.to-cta {
	width: calc(100% - 48px);
	max-width: 1395px !important;
	margin: 85px auto !important;
	border-radius: 20px;
	overflow: hidden;
}

.to-cta .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	max-width: 1030px;
	margin: 0 auto;
}

.to-cta .wp-block-cover__background {
	z-index: 1;
	background: linear-gradient(90deg, var(--vx-royal) 46%, rgba(6, 35, 103, 0.5) 100%) !important;
	opacity: 1 !important;
}

.to-cta .wp-block-cover__image-background {
	object-position: center 79%;
	left: 500px !important;
}

.to-cta h2 {
	margin: 0 0 18px;
	font-size: clamp(30px, 3vw, 43px);
	line-height: 1.25;
}

.to-cta p {
	margin: 0 0 24px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.55;
}

.to-cta .wp-block-button__link {
	padding: 11px 22px;
	font-size: 14px;
}

@media (max-width: 1024px) {
	.to-hero::before,
	.to-hero::after {
		opacity: 0.45;
	}

	.to-challenges-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.to-challenge-main {
		min-height: 350px;
	}

	.to-challenge-card {
		min-height: 165px;
	}
}

@media (max-width: 781px) {
	.to-hero {
		padding: 68px 18px 58px;
	}

	.to-hero::before,
	.to-hero::after {
		width: 230px;
		opacity: 0.25;
	}

	.to-product-logo img {
		width: 205px !important;
	}

	.to-hero-title {
		font-size: 32px;
	}

	.to-hero-lead br,
	.to-channel-intro br,
	.to-section-lead br,
	.to-challenges > h2 br {
		display: none;
	}

	.to-channel-panel {
		padding: 28px 22px 22px;
	}

	.to-channel-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 0;
	}

	.to-channel-item:nth-child(2) {
		border-right: 0;
	}

	.to-section {
		padding: 72px 20px;
	}

	.to-challenges > h2 {
		margin-bottom: 45px;
	}

	.to-challenge-main {
		min-height: 330px;
		padding: 48px 35px;
	}

	.to-challenge-card {
		padding: 32px 30px;
	}

	.to-benefits-grid {
		gap: 24px;
	}

	.to-benefits::before,
	.to-benefits::after {
		display: none;
	}

	.to-benefits-grid > .wp-block-column {
		gap: 24px;
	}

	.to-feature-layout {
		gap: 48px;
		margin-top: 45px;
	}

	.to-cta {
		width: calc(100% - 28px);
		min-height: 430px !important;
		margin: 60px auto !important;
		padding: 35px 18px;
	}
}

@media (max-width: 480px) {
	.to-hero-title {
		font-size: 29px;
	}

	.to-hero-lead,
	.to-channel-intro,
	.to-section-lead {
		font-size: 15px;
	}

	.to-channel-item {
		padding-inline: 12px;
	}

	.to-challenge-main {
		min-height: 0;
		padding: 42px 28px;
	}

	.to-challenge-main h3 {
		font-size: 21px;
	}

	.to-benefit-card {
		padding: 28px 25px;
	}

	.to-feature-row {
		padding-inline: 10px;
	}

	.to-feature-copy h3 {
		font-size: 18px;
	}

	.to-cta h2 {
		font-size: 28px;
	}
}

/* --------------------------------------------------------------------------
	ViaXeo CRM
   -------------------------------------------------------------------------- */

.crm-hero {
	position: relative;
	min-height: 1003px;
	padding: 136px 0 110px;
	background: linear-gradient(180deg, #fff 0%, #fff 70%, rgba(223, 220, 252, 0.14) 100%);
	overflow: hidden;
}

.crm-hero::before,
.crm-hero::after {
	position: absolute;
	z-index: 0;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	pointer-events: none;
}

.crm-hero::before {
	top: 0;
	left: -180px;
	width: 410px;
	height: 605px;
	background-image: url("../../uploads/2026/07/left_hero_before_orange.png");
	background-position: left center;
}

.crm-hero::after {
	top: 0;
	left: calc(50% + 90px);
	width: 500px;
	height: 413px;
	background-image: url("../../uploads/2026/07/star_hero.png");
	opacity: 1;
}

.crm-hero-layout {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: clamp(560px, 34.95vw, 671px) minmax(0, 1fr);
	align-items: start !important;
	width: 100vw;
	max-width: none !important;
	min-height: 700px;
	gap: clamp(60px, 10.8vw, 208px);
	margin: 0 0 0 calc(50% - 50vw) !important;
	padding-left: max(24px, calc((100vw - 1370px) / 2));
}

.crm-hero-layout::after {
	position: absolute;
	z-index: 0;
	top: 167px;
	right: 0;
	width: 593px;
	height: 605px;
	background: url("../../uploads/2026/07/left_hero_after_orange.png") center / contain no-repeat;
	content: "";
	pointer-events: none;
}

.crm-hero-copy {
	position: relative;
	z-index: 2;
	width: 100%;
}

.crm-product-logo {
	margin: 0 0 23px;
}

.crm-product-logo img {
	display: block;
	height: auto;
}

.crm-hero-title {
	max-width: 671px;
	margin: 0 0 30px;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0;
}

.crm-hero-title mark,
.crm-vision-statement mark,
.crm-cta mark {
	color: var(--vx-coral) !important;
	background: transparent !important;
}

.crm-hero-subtitle {
	max-width: 671px;
	margin: 0 0 22px;
	font-size: 23px;
	line-height: 1.6;
}

.crm-hero-text {
	max-width: 700px;
	margin: 0 0 30px;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.6;
}

.crm-hero-actions {
	gap: 16px;
	margin: 0;
}

.crm-hero-actions .wp-block-button__link {
	min-width: 190px;
	padding: 13px 22px;
	font-size: 16px;
}

.crm-hero-actions .is-style-outline .wp-block-button__link {
	border: 1px solid var(--vx-royal);
	color: var(--vx-royal);
}

.crm-hero-visual {
	position: relative;
	z-index: 2;
	align-self: start !important;
	margin-top: 51px;
}

.crm-hero-visual::after {
	display: none;
}

.crm-hero-visual figure {
	width: clamp(900px, 42.25vw, 1200px);
	max-width: none;
	margin: 0;
	transform: none;
}

.crm-hero-visual img {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 24px 30px rgba(6, 35, 103, 0.08));
}

.crm-section {
	padding-inline: 24px;
}

.crm-information {
	position: relative;
	padding-top: 90px;
	padding-bottom: 110px;
	background: linear-gradient(180deg, rgba(255, 130, 92, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
}

.crm-kicker {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 0 auto 16px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.crm-kicker::before {
	width: 7px;
	height: 11px;
	background: url("../../uploads/2026/06/chevron_orange.png") center / contain no-repeat;
	content: "";
	flex: 0 0 7px;
}

.crm-information > h2,
.crm-journey h2 {
	margin: 0 auto 20px;
	font-size: 43px;
	line-height: 1.3;
	letter-spacing: 0;
}

.crm-section-lead {
	max-width: 880px;
	margin: 0 auto;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.6;
}

.crm-info-grid {
	width: min(1400px, 100%);
	gap: 38px;
	margin: 78px auto 0;
}

.crm-info-grid > .wp-block-column {
	display: flex;
}

.crm-info-card {
	width: 100%;
	min-height: 430px;
	margin: 0;
	padding: 41px 36px 30px;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: 20px;
	background: linear-gradient(180deg, #f3f0fc 0%, var(--vx-lavender) 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.crm-info-heading {
	justify-content: flex-start;
	gap: 30px;
	margin: 0 0 30px;
}

.crm-info-icon {
	flex: 0 0 auto;
	width: 40px !important;
	margin: 0;
}

.crm-info-icon img {
	display: block;
	width: 100%;
	height: 40px;
	object-fit: contain;
}

.crm-info-heading h3 {
	margin: 0;
	font-size: 23px;
}

.crm-card-list,
.crm-feature-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.crm-card-list li {
	position: relative;
	margin-bottom: 20px;
	padding-left: 32px;
	font-size: 19px;
	line-height: 1.5;
}

.crm-card-list li::before {
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 18px;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M1 6h14M11 2l4 4-4 4' fill='none' stroke='%23ff825c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}

.crm-vision-statement {
	max-width: 1164px;
	margin: 100px auto 0;
	font-size: 35px;
	font-style: italic;
	font-weight: 700;
	line-height: 1.6;
}

.crm-journey {
	min-height: 545px;
	padding: 86px 24px 78px;
	background-color: var(--vx-royal);
}

.crm-journey .wp-block-cover__image-background {
	object-position: center;
}

.crm-journey .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
	width: 100%;
}

.crm-kicker-light {
	color: #fff;
}

.crm-stages {
	display: flex;
	gap: 0;
	width: min(1398px, 100%);
	margin: 95px auto 0;
	padding-inline: 7px;
}

.crm-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 92px;
	margin: 0 -6.7px;
	padding: 20px 44px 20px 54px;
	clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%, 40px 50%);
	border: 1px solid rgba(112, 103, 242, 0.72);
	background: linear-gradient(112deg, #082a72 0%, #174a9d 55%, #082a72 100%);
	box-shadow: inset 1px 1px 0 rgba(162, 156, 246, 0.45);
	filter: drop-shadow(0 9px 15px rgba(0, 0, 0, 0.16));
	cursor: default;
	transition: transform 220ms ease, filter 220ms ease, background 220ms ease;
}

.crm-stage:nth-child(1) { flex: 0 0 361.6px; }
.crm-stage:nth-child(2) { flex: 0 0 205.1px; }
.crm-stage:nth-child(3) { flex: 0 0 284.7px; }
.crm-stage:nth-child(4) { flex: 0 0 325px; }
.crm-stage:nth-child(5) { flex: 0 0 276.5px; }

.crm-stage:first-child {
	padding-left: 54px;
	clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%, 40px 50%);
}

.crm-stage:hover,
.crm-stage:focus,
.crm-stage:focus-visible {
	z-index: 2;
	background: linear-gradient(112deg, var(--vx-coral) 0%, #f26843 100%);
	filter: drop-shadow(0 15px 18px rgba(0, 0, 0, 0.24));
	outline: none;
	transform: translateY(-8px);
}

.crm-stage p {
	margin: 0;
	color: #fff;
	font-size: 23px;
	font-weight: 700;
	text-align: center;
}

.crm-performance {
	position: relative;
	min-height: 820px;
	padding-top: 90px;
	padding-bottom: 75px;
	background: linear-gradient(180deg, #efedff 0%, rgba(255, 255, 255, 0.96) 92%);
	overflow: hidden;
}

.crm-performance::before,
.crm-performance::after {
	position: absolute;
	z-index: 0;
	top: 50%;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	pointer-events: none;
	transform: translateY(-50%);
}

.crm-performance::before {
	left: 0;
	background-image: url("/wp-content/uploads/2026/07/left_hero_before.png");
	background-position: left center;
}

.crm-performance::after {
	right: 0;
	background-image: url("/wp-content/uploads/2026/07/left_hero_after.png");
	background-position: right center;
}

.crm-slider {
	position: relative;
	z-index: 1;
	width: min(1400px, 100%);
	min-height: 650px;
	margin: 0 auto;
}

.crm-slide {
	display: none;
	animation: crm-slide-in 420ms ease both;
}

.crm-slide.is-active {
	display: block;
}

.crm-slide-layout {
	min-height: 620px;
	gap: clamp(48px, 6vw, 100px);
	margin: 0;
}

.crm-slide-copy {
	padding: 20px 0;
}

.crm-slide-count {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 26px;
	color: #7a72ef;
	font-size: 18px;
	font-weight: 300;
}

.crm-slide-count::before {
	width: 7px;
	height: 11px;
	background: url("/wp-content/uploads/2026/06/chevron_orange.png") center / contain no-repeat;
	content: "";
	flex: 0 0 auto;
}

.crm-slide-count strong {
	font-weight: 700;
}

.crm-slide-count::first-letter {
	font-weight: 700;
}

.crm-slide-copy h2 {
	max-width: 600px;
	margin: 0 0 22px;
	font-size: 40px;
	line-height: 1.3;
	letter-spacing: 0;
}

.crm-slide-lead {
	max-width: 610px;
	margin: 0 0 24px;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.5;
}

.crm-feature-list {
	max-width: 640px;
	margin-bottom: 25px;
}

.crm-feature-list li {
	position: relative;
	margin: 0 0 12px;
	padding-left: 32px;
	font-size: 19px;
	line-height: 1.5;
}

.crm-feature-list li::before {
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 18px;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M1 6h14M11 2l4 4-4 4' fill='none' stroke='%23ff825c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}

.crm-feature-list li::after {
	display: none;
}

.crm-slide-conclusion {
	max-width: 620px;
	margin: 28px 0 0;
	padding: 0;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.5;
}

.crm-slide-visual figure {
	width: 559px;
	max-width: none;
	margin: 0;
	transform: translateX(90px);
}

.crm-slide-visual img {
	display: block;
	width: 100%;
	height: auto;
}

.crm-slider-controls {
	position: absolute;
	z-index: 5;
	right: auto;
	bottom: 4px;
	left: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}

.crm-slider-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(6, 35, 103, 0.22);
	border-radius: 50%;
	color: var(--vx-royal);
	background: rgba(255, 255, 255, 0.8);
	cursor: pointer;
	transition: border-color 180ms ease, color 180ms ease, background 180ms ease, transform 180ms ease;
}

.crm-slider-button:hover,
.crm-slider-button:focus-visible {
	border-color: var(--vx-royal);
	color: #fff;
	background: var(--vx-royal);
	transform: translateY(-2px);
}

.crm-slider-button svg {
	width: 19px;
	height: 19px;
}

.crm-slider-dots {
	display: flex;
	gap: 7px;
	margin: 0 10px;
}

.crm-slider-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(6, 35, 103, 0.24);
	cursor: pointer;
}

.crm-slider-dot.is-active {
	width: 24px;
	border-radius: 999px;
	background: var(--vx-coral);
}

@keyframes crm-slide-in {
	from {
		opacity: 0;
		transform: translateX(18px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.editor-styles-wrapper .crm-slide,
.block-editor-block-list__layout .crm-slide {
	display: block !important;
	margin-block: 30px;
	padding: 20px;
	border: 1px dashed var(--vx-indigo);
}

.editor-styles-wrapper .crm-slider-controls,
.block-editor-block-list__layout .crm-slider-controls {
	display: none !important;
}

.crm-cta {
	width: calc(100% - 48px);
	max-width: 1395px !important;
	margin: 90px auto !important;
	border-radius: 20px;
	overflow: hidden;
}

.crm-cta .wp-block-cover__background {
	z-index: 1;
	background: linear-gradient(90deg, var(--vx-royal) 46%, rgba(6, 35, 103, 0.5) 100%) !important;
	opacity: 1 !important;
}

.crm-cta .wp-block-cover__image-background {
	left: 44% !important;
	width: 68% !important;
	max-width: none;
	object-position: center 80%;
}

.crm-cta .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	max-width: 1080px;
	margin: 0 auto;
}

.crm-cta h2 {
	margin: 0 auto 20px;
	font-size: clamp(31px, 3vw, 45px);
	line-height: 1.22;
}

.crm-cta p {
	max-width: 900px;
	margin: 0 auto 27px;
	font-size: 16px;
	line-height: 1.55;
}

.crm-cta .wp-block-button__link {
	padding: 12px 24px;
	font-size: 14px;
}

@media (max-width: 1200px) {
	.crm-hero {
		min-height: 900px;
		padding: 100px 0 90px;
	}

	.crm-hero-layout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
		gap: 30px;
		padding-inline: 24px 0;
	}

	.crm-hero-title {
		font-size: 38px;
		line-height: 1.28;
	}

	.crm-hero-text {
		font-size: 18px;
		line-height: 1.65;
	}

	.crm-hero-visual figure {
		width: 700px;
	}

	.crm-slide-copy {
		padding-left: 0;
	}

	.crm-slide-visual figure {
		width: 610px;
	}
}

@media (max-width: 1024px) {
	.crm-hero::before,
	.crm-hero::after,
	.crm-hero-layout::after {
		opacity: 0.35;
	}

	.crm-info-grid {
		gap: 20px;
	}

	.crm-info-card {
		padding-inline: 28px;
	}

	.crm-stages {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 6px;
		padding-inline: 0;
	}

	.crm-stage:nth-child(n) {
		flex-basis: auto;
		margin: 0;
	}

	.crm-stage {
		padding-inline: 35px 26px;
	}

	.crm-stage p {
		font-size: 16px;
	}
}

@media (max-width: 781px) {
	.crm-hero {
		min-height: 0;
		padding: 70px 20px 82px;
	}

	.crm-hero::before {
		width: 120px;
		height: 360px;
	}

	.crm-hero::after {
		right: 0;
		left: auto;
		width: 150px;
	}

	.crm-hero-layout {
		grid-template-columns: minmax(0, 1fr);
		width: auto;
		gap: 55px;
		margin: 0 !important;
		padding: 0;
	}

	.crm-hero-layout::after {
		display: none;
	}

	.crm-product-logo {
		margin-bottom: 28px;
	}

	.crm-hero-title {
		font-size: 37px;
	}

	.crm-hero-text {
		font-size: 16px;
	}

	.crm-hero-actions {
		align-items: stretch;
	}

	.crm-hero-actions .wp-block-button,
	.crm-hero-actions .wp-block-button__link {
		width: 100%;
	}

	.crm-hero-visual figure {
		width: 100%;
		max-width: 100%;
		transform: none;
	}

	.crm-hero-visual {
		margin-top: 0;
	}

	.crm-information {
		padding-top: 72px;
		padding-bottom: 80px;
	}

	.crm-information > h2 br {
		display: none;
	}

	.crm-info-grid {
		gap: 22px;
		margin-top: 45px;
	}

	.crm-section-lead {
		font-size: 18px;
	}

	.crm-info-card {
		min-height: 0;
		padding: 40px 30px 34px;
	}

	.crm-vision-statement {
		margin-top: 58px;
		font-size: 25px;
	}

	.crm-journey {
		padding-block: 70px;
	}

	.crm-stages {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
		max-width: 470px;
		margin-top: 48px;
	}

	.crm-stage,
	.crm-stage:first-child {
		min-height: 70px;
		margin: 0;
		padding: 16px 28px;
		clip-path: none;
		border: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 12px;
	}

	.crm-performance {
		min-height: 0;
		padding: 70px 20px 95px;
	}

	.crm-performance::before,
	.crm-performance::after {
		opacity: 0.2;
	}

	.crm-slider,
	.crm-slide-layout {
		min-height: 0;
	}

	.crm-slide-layout {
		gap: 44px;
	}

	.crm-slide-copy {
		padding: 0;
	}

	.crm-slide-copy h2 {
		font-size: 34px;
	}

	.crm-slide-visual figure {
		width: 108%;
		max-width: 108%;
		transform: translateX(-4%);
	}

	.crm-slider-controls {
		position: relative;
		right: auto;
		bottom: auto;
		left: auto;
		justify-content: center;
		margin-top: 28px;
	}

	.crm-cta {
		width: calc(100% - 28px);
		min-height: 430px !important;
		margin: 65px auto !important;
		padding-inline: 20px;
	}

	.crm-cta .wp-block-cover__image-background {
		left: 20% !important;
		width: 100% !important;
		opacity: 0.45;
	}
}

@media (max-width: 480px) {
	.crm-kicker {
		font-size: 14px;
	}

	.crm-hero-title {
		font-size: 32px;
	}

	.crm-hero-subtitle {
		font-size: 22px;
	}

	.crm-information > h2,
	.vx-plain-section > h2,
	.crm-journey h2,
	.crm-slide-copy h2 {
		font-size: 29px;
	}

	.vx-plain-section {
		padding-top: 58px;
		padding-bottom: 62px;
	}

	.crm-section-lead {
		font-size: 15px;
	}

	.crm-info-card {
		padding-inline: 24px;
	}

	.crm-slide-lead,
	.crm-cta p {
		font-size: 15px;
	}

	.crm-feature-list li,
	.crm-slide-conclusion {
		font-size: 16px;
	}

	.crm-slider-controls {
		gap: 6px;
	}

	.crm-slider-button {
		width: 42px;
		height: 42px;
	}

	.crm-slider-dots {
		gap: 5px;
		margin-inline: 5px;
	}

	.crm-cta h2 {
		font-size: 28px;
	}
}

/* ═══════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════ */
.contact-hero,
.contact-reach,
.contact-connect {
	--wp--style--global--content-size: var(--vx-section-w);
	--wp--style--global--wide-size: var(--vx-section-w);
}

/* ── Hero ── */
.contact-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(50px, 6vw, 90px) 24px clamp(40px, 4vw, 60px);
	background: linear-gradient(180deg, #fff 0%, var(--vx-soft) 100%);
}

.contact-hero::before,
.contact-hero::after {
	position: absolute;
	z-index: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	content: "";
	pointer-events: none;
}

.contact-hero::before {
	top: -45px;
	left: 50%;
	width: 45vw;
	aspect-ratio: 1353 / 862;
	background-image: url("/wp-content/uploads/2026/07/etoile_bleu_contact.png");
}

.contact-hero::after {
	top: 185px;
	left: 33vw;
	width: min(130vw, 1833px);
	aspect-ratio: 1833 / 629;
	background-image: url("/wp-content/uploads/2026/07/etoile_orange_contact.png");
}

.contact-hero-layout {
	position: relative;
	z-index: 1;
	gap: clamp(30px, 4vw, 60px);
	margin: 0 auto;
}

.contact-hero .section-kicker {
	justify-content: flex-start;
}

.contact-hero-title {
	max-width: 560px;
	margin: 0 0 22px;
	font-size: clamp(30px, 3.2vw, 43px) !important;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.18;
	color: var(--vx-royal);
}

.contact-hero-text {
	margin: 0;
	font-size: clamp(16px, 1.35vw, 22px);
	font-weight: 500;
	line-height: 1.6;
	color: var(--vx-royal);
}

.contact-hero-visual figure {
	position: relative;
	margin: 0;
	width: 100%;
	isolation: isolate;
}

.contact-hero-visual figure::after {
	position: absolute;
	z-index: 0;
	right: 8%;
	bottom: 0;
	left: 20%;
	height: 13%;
	border-radius: 50%;
	background: radial-gradient(ellipse at center, rgba(162, 156, 246, 0.28) 0%, rgba(162, 156, 246, 0.12) 42%, rgba(162, 156, 246, 0) 76%);
	content: "";
	filter: blur(10px);
	pointer-events: none;
}

.contact-hero-visual img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	clip-path: polygon(0 0, 100% 0, 100% 78%, 86% 78%, 83% 100%, 32% 100%, 28% 78%, 0 78%);
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 68%, rgba(0, 0, 0, 0.94) 74%, rgba(0, 0, 0, 0.36) 88%, transparent 98%);
	mask-image: linear-gradient(to bottom, #000 0%, #000 68%, rgba(0, 0, 0, 0.94) 74%, rgba(0, 0, 0, 0.36) 88%, transparent 98%);
}

/* ── Reach cards ── */
.contact-reach {
	padding: 0 24px clamp(60px, 6vw, 100px);
	background: linear-gradient(180deg, var(--vx-soft) 0%, var(--vx-soft) 60%, #fff 100%);
}

.contact-reach-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
	max-width: var(--vx-wide);
	margin: 0 auto;
}

.contact-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	border-radius: 20px;
	background: linear-gradient(180deg, #f3f2fe 0%, var(--vx-lavender) 100%);
	box-shadow: var(--vx-inset-hi);
	padding: clamp(32px, 3vw, 46px) clamp(26px, 2.4vw, 36px);
}

.contact-card-icon {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
}

.contact-card-icon svg {
	width: 100%;
	height: 100%;
}

.contact-card h3 {
	margin: 0;
	font-size: 23px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--vx-royal);
}

.contact-card p {
	margin: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--vx-royal);
}

.contact-phone {
	font-size: 18px;
	font-weight: 500;
	text-decoration: underline;
	color: var(--vx-royal);
}

.contact-hours {
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--vx-royal);
}

/* Pill button reused across reach cards */
.contact-pill {
	display: inline-flex;
	align-items: center;
	margin-top: auto;
	border-radius: 25px;
	background: linear-gradient(90deg, #ebeafd 0%, #f2f0fe 100%);
	box-shadow: var(--vx-inset-hi);
	padding: 12px 22px;
	font-size: 16px;
	font-weight: 500;
	color: var(--vx-royal);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.contact-pill:hover,
.contact-pill:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(6, 35, 103, 0.14);
}

/* ── Connect: form + map ── */
.contact-connect {
	padding: clamp(60px, 7vw, 110px) 24px;
	background: #fff;
}

.contact-connect-layout {
	gap: clamp(32px, 4vw, 64px);
	margin: 0 auto;
	align-items: stretch;
}

.contact-form-col {
	border-radius: 22px;
	background: linear-gradient(90deg, #f1eefc 0%, #f6f0fb 55%, #fdeef0 100%);
	box-shadow: var(--vx-inset-hi);
	padding: clamp(30px, 3vw, 48px);
}

.contact-block-title {
	margin: 6px 0 26px !important;
	font-size: clamp(26px, 2.8vw, 33px);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--vx-royal);
}

.contact-address {
	margin: 0 0 24px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--vx-royal);
}

.contact-map {
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 12px 34px rgba(6, 35, 103, 0.1);
}

.contact-map iframe {
	display: block;
	width: 100%;
	height: clamp(320px, 34vw, 430px);
	border: 0;
}

/* ── Contact Form 7 field styling ── */
.contact-form-col .wpcf7-form > p {
	margin: 0;
}

.contact-form-col .cf7-grid {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.contact-form-col .cf7-row {
	display: flex;
	gap: 18px;
}

.contact-form-col .cf7-row .wpcf7-form-control-wrap {
	flex: 1;
	min-width: 0;
}

.contact-form-col input[type="text"],
.contact-form-col input[type="email"],
.contact-form-col input[type="tel"],
.contact-form-col select,
.contact-form-col textarea {
	width: 100%;
	border: 1px solid transparent;
	border-radius: 10px;
	background: #fff;
	padding: 15px 18px;
	font-family: inherit;
	font-size: 16px;
	color: var(--vx-royal);
	box-shadow: 0 2px 8px rgba(6, 35, 103, 0.04);
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.contact-form-col input::placeholder,
.contact-form-col textarea::placeholder {
	color: rgba(6, 35, 103, 0.5);
}

.contact-form-col input[type="text"]:focus,
.contact-form-col input[type="email"]:focus,
.contact-form-col input[type="tel"]:focus,
.contact-form-col select:focus,
.contact-form-col textarea:focus {
	outline: none;
	border-color: var(--vx-blue);
	box-shadow: 0 0 0 3px rgba(70, 64, 255, 0.12);
}

.contact-form-col select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23062367' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	padding-right: 44px;
	cursor: pointer;
}

.contact-form-col textarea {
	min-height: 140px;
	resize: vertical;
}

.contact-form-col .cf7-accept .wpcf7-list-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
}

.contact-form-col .cf7-accept .wpcf7-list-item-label {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--vx-royal);
}

.contact-form-col .cf7-accept input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--vx-royal);
}

.contact-form-col .cf7-submit {
	margin-top: 4px;
}

.contact-form-col .wpcf7-submit {
	border: 0;
	border-radius: 30px;
	background: var(--vx-royal);
	padding: 15px 34px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	color: #fff;
	cursor: pointer;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.contact-form-col .wpcf7-submit:hover,
.contact-form-col .wpcf7-submit:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(6, 35, 103, 0.22);
}

.contact-form-col .wpcf7-spinner {
	margin: 0 0 0 12px;
}

@media (max-width: 1024px) {
	.contact-reach-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.contact-connect-layout {
		flex-wrap: wrap;
	}
}

/* Stack the form / map columns (they carry inline flex-basis, hence !important). */
@media (max-width: 860px) {
	.contact-connect-layout .contact-form-col,
	.contact-connect-layout .contact-map-col {
		flex-basis: 100% !important;
	}
}

@media (max-width: 781px) {
	.contact-hero::before,
	.contact-hero::after {
		display: none;
	}

	.contact-hero-layout {
		flex-wrap: wrap;
	}

	.contact-hero-visual {
		order: -1;
	}

	.contact-reach-grid {
		grid-template-columns: 1fr;
	}

	.contact-form-col .cf7-row {
		flex-direction: column;
	}
}

/* ═══════════════════════════════════════════════
   BLOG / ARTICLES
   ═══════════════════════════════════════════════ */
.blog-hero,
.blog-grid-section {
	--wp--style--global--content-size: var(--vx-section-w);
	--wp--style--global--wide-size: var(--vx-section-w);
}

.blog-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(60px, 7vw, 110px) 24px clamp(24px, 3vw, 46px);
	text-align: center;
}

/* Empty placeholder pages (menu targets awaiting content) */
.page-placeholder {
	padding-bottom: clamp(70px, 11vw, 150px);
}

.page-placeholder .blog-hero-sub {
	margin-top: 8px !important;
}

.blog-hero-title {
	max-width: 900px;
	margin: 0 auto 18px;
	font-size: clamp(30px, 3.4vw, 44px) !important;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.16;
	color: var(--vx-royal);
}

.blog-hero-title mark {
	background: transparent;
}

.blog-hero-sub {
	max-width: 720px;
	margin: 0 auto !important;
	font-size: clamp(16px, 1.3vw, 20px);
	font-weight: 500;
	line-height: 1.6;
	color: var(--vx-royal);
}

.blog-grid-section {
	padding: clamp(30px, 4vw, 60px) 24px clamp(70px, 7vw, 110px);
	background: #fff;
}

.blog-post-template.wp-block-post-template {
	gap: clamp(30px, 3vw, 42px) 26px;
}

.article-card {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.article-card-media {
	position: relative;
	border-radius: var(--vx-radius);
	overflow: hidden;
}

.article-card-media .wp-block-post-featured-image {
	margin: 0;
}

.article-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 2;
	object-fit: cover;
	transition: transform 350ms ease;
}

.article-card-media:hover img {
	transform: scale(1.04);
}

/* Purple category bubble overlaid on the cover */
.article-card-cats {
	position: absolute;
	top: 0px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	max-width: calc(100% - 28px);
	border-radius: 999px;
	background: rgba(70, 64, 255, 0.86);
	box-shadow: 0 6px 16px rgba(6, 35, 103, 0.18);
	padding: 7px 16px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2;
	color: #fff;
	margin-top: 15px;
}

.article-card-cats a {
	color: #fff;
	text-decoration: none;
}

.article-card-cats a:hover {
	text-decoration: underline;
}

.article-card-title {
	margin: 0 !important;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.32;
	letter-spacing: -0.01em;
}

.article-card-title a {
	color: var(--vx-royal);
	text-decoration: none;
	transition: color 160ms ease;
}

.article-card-title a:hover {
	color: var(--vx-blue);
}

.article-card-excerpt {
	margin: 0 !important;
	font-size: 15px;
	line-height: 1.6;
	color: var(--vx-royal);
}

.article-card-excerpt p {
	margin: 0;
}

@media (max-width: 1024px) {
	.blog-post-template.wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 640px) {
	.blog-post-template.wp-block-post-template {
		grid-template-columns: 1fr !important;
	}
}

/* Pagination (category archive) */
.blog-pagination {
	margin-top: clamp(40px, 5vw, 64px);
	gap: 8px;
	font-weight: 600;
	color: var(--vx-royal);
}

.blog-pagination .wp-block-query-pagination-numbers {
	display: flex;
	gap: 8px;
}

.blog-pagination a,
.blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: 999px;
	color: var(--vx-royal);
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease;
}

.blog-pagination a:hover {
	background: #f1eefc;
}

.blog-pagination .page-numbers.current {
	background: var(--vx-royal);
	color: #fff;
}

/* ── Single article ── */
.single-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(54px, 6vw, 96px) 24px clamp(28px, 3vw, 44px);
	text-align: center;
	background: linear-gradient(180deg, #fff 0%, #f6f5ff 100%);
}

.single-hero > * {
	position: relative;
	z-index: 1;
}

.single-hero-terms.wp-block-post-terms {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0 auto 20px;
	font-size: 13px;
	font-weight: 500;
}

.single-hero-terms.wp-block-post-terms a {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	background: rgba(70, 64, 255, 0.10);
	padding: 6px 15px;
	color: var(--vx-blue);
	text-decoration: none;
	transition: background-color 160ms ease;
}

.single-hero-terms.wp-block-post-terms a:hover {
	background: rgba(70, 64, 255, 0.18);
}

.single-hero-terms .wp-block-post-terms__separator {
	display: none;
}

.single-title {
	max-width: 860px;
	margin: 0 auto 16px;
	font-size: clamp(28px, 3.4vw, 44px) !important;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.18;
	color: var(--vx-royal);
}

.single-meta {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	color: rgba(6, 35, 103, 0.55);
}

.single-body {
	--wp--style--global--content-size: clamp(320px, 90vw, 760px);
	--wp--style--global--wide-size: clamp(320px, 92vw, 1040px);
	padding: clamp(32px, 4vw, 56px) 24px clamp(64px, 7vw, 104px);
	background: #fff;
}

.single-featured.wp-block-post-featured-image {
	margin: 0 auto clamp(32px, 4vw, 52px);
}

.single-featured img {
	width: 100%;
	height: auto;
	max-height: 460px;
	object-fit: cover;
	border-radius: var(--vx-radius);
}

.single-content {
	color: var(--vx-royal);
	font-size: 18px;
	line-height: 1.75;
}

.single-content > * {
	margin-block: 0 22px;
}

.single-content > *:last-child {
	margin-bottom: 0;
}

.single-content h2 {
	margin-top: 40px;
	font-size: clamp(24px, 2.6vw, 30px);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--vx-royal);
}

.single-content h3 {
	margin-top: 32px;
	font-size: 21px;
	font-weight: 700;
	color: var(--vx-royal);
}

.single-content a {
	color: var(--vx-blue);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.single-content ul,
.single-content ol {
	padding-left: 24px;
}

.single-content li {
	margin-bottom: 8px;
}

.single-content blockquote {
	margin: 32px 0;
	padding: 8px 0 8px 24px;
	border-left: 3px solid var(--vx-coral);
	font-size: 20px;
	font-style: italic;
	color: var(--vx-royal);
}

.single-content img {
	border-radius: var(--vx-radius);
}

.single-back {
	max-width: 760px;
	margin: clamp(40px, 5vw, 60px) auto 0 !important;
}

.single-back a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 15px;
	font-weight: 600;
	color: var(--vx-blue);
	text-decoration: none;
}

.single-back a:hover {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
	ViaXeo Analytics — reuses crm-/to- archetypes; only the pieces below are
	specific to this page (intro visual, second info row, datasets table, FAQ).
   -------------------------------------------------------------------------- */

.analytics-intro-visual {
	width: min(1040px, 100%);
	margin: 46px auto 6px;
}

.analytics-intro-visual img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
	box-shadow: 0 30px 60px rgba(6, 35, 103, 0.14);
}

/* Second métiers row: two "atout-card" tiles (Entreprise style), centred to
   match the 3-up crm-info-grid width above. */
.analytics-audience-atouts {
	width: 100%;
	margin: 22px auto 0;
}

/* Datasets table (page-specific) */
.analytics-datasets-table {
	width: min(960px, 100%);
	margin: 54px auto 0;
	overflow-x: auto;
}

.analytics-datasets-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 44px rgba(6, 35, 103, 0.1);
}

.analytics-datasets-table thead th {
	padding: 18px 28px;
	border: 0;
	background: var(--vx-royal);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-align: left;
	text-transform: uppercase;
}

.analytics-datasets-table tbody td {
	padding: 16px 28px;
	border: 0;
	font-size: 17px;
	line-height: 1.45;
}

.analytics-datasets-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--vx-soft);
}

.analytics-datasets-table tbody td:first-child {
	width: 34%;
	color: var(--vx-royal);
	white-space: nowrap;
}

/* FAQ accordion (page-specific) */
.analytics-faq-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: min(920px, 100%);
	margin: 44px auto 0;
}

.analytics-faq-list .wp-block-details {
	width: 100%;
	box-sizing: border-box;
	padding: 4px 26px;
	border: 1px solid rgba(6, 35, 103, 0.1);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(6, 35, 103, 0.05);
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.analytics-faq-list .wp-block-details[open] {
	border-color: rgba(112, 103, 242, 0.4);
	box-shadow: 0 14px 32px rgba(6, 35, 103, 0.09);
}

.analytics-faq-list summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	color: var(--vx-royal);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	list-style: none;
	cursor: pointer;
	text-align: center;
	transition: justify-content 200ms ease;
}

/* Closed = centred title; open = title left with the chevron pushed right. */
.analytics-faq-list .wp-block-details[open] summary {
	justify-content: space-between;
	text-align: left;
}

.analytics-faq-list summary::-webkit-details-marker {
	display: none;
}

.analytics-faq-list summary::after {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23062367' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
	content: "";
	transition: transform 240ms ease;
}

.analytics-faq-list .wp-block-details[open] summary::after {
	transform: rotate(180deg);
}

/* display:block !important keeps the answer in layout while closed so its
   max-height can animate (driven by initAccordionTransitions in theme.js). */
.analytics-faq-list .wp-block-details > p {
	display: block !important;
	margin: 0;
	padding: 0 0 20px;
	overflow: hidden;
	font-size: 17px;
	line-height: 1.65;
	color: rgba(6, 35, 103, 0.82);
	transition:
		max-height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Slider (VOS DONNÉES, SANS COMPLEXITÉ): slightly larger right-hand visuals on
   desktop only — scoped to this page so the CRM slider is untouched. */
@media (min-width: 1025px) {
	.analytics-perf .crm-slide-visual figure {
		width: 660px;
	}
}

@media (max-width: 600px) {
	.analytics-datasets-table thead th,
	.analytics-datasets-table tbody td {
		padding: 13px 18px;
		font-size: 15px;
	}

	.analytics-faq-list summary {
		font-size: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.analytics-faq-list .wp-block-details > p {
		transition: none !important;
	}
}

/* --------------------------------------------------------------------------
	ViaXeo API — reuses to-hero / to-channel-panel, to-benefit-card grids,
	atout-card, crm-cta cover and analytics-faq-list. Only the tints and the
	small text accents below are page-specific.
   -------------------------------------------------------------------------- */

.api-eyebrow {
	display: table;
	margin: 0 auto 20px;
	padding: 7px 18px;
	border: 1px solid rgba(112, 103, 242, 0.28);
	border-radius: 999px;
	background: var(--vx-soft);
	color: var(--vx-blue);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Soft-tinted section to alternate rhythm between the plain to-section bands. */
.api-band {
	background: linear-gradient(180deg, #f6f5fe 0%, #fff 100%);
}

.api-audience-atouts {
	margin: 34px auto 0;
}

.api-support-grid {
	
	margin: 40px auto 0;
}

.api-tagline {
	margin: 40px auto 0;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 700;
	line-height: 1.4;
}

/* "Résultat : …" callout after a feature grid. */
.api-result {
	width: min(880px, 100%);
	margin: 46px auto 0;
	padding: 20px 30px;
	border-radius: 16px;
	background: var(--vx-soft);
	color: var(--vx-royal);
	font-size: 19px;
	line-height: 1.5;
}

.api-cta .wp-block-cover__background {
	z-index: 1;
	background: linear-gradient(120deg, var(--vx-royal) 22%, rgba(6, 35, 103, 0.62) 100%) !important;
	opacity: 1 !important;
}

.api-cta .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

.api-cta-kicker {
	margin: 0 auto 14px;
	color: var(--vx-indigo) !important;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

@media (max-width: 782px) {
	.api-result {
		font-size: 17px;
		padding: 18px 22px;
	}
}

/* --------------------------------------------------------------------------
	Global Gutenberg accents + page-specific styles moved from functions.php.
   -------------------------------------------------------------------------- */

mark.has-inline-color {
	background-color: transparent !important;
}

/* ViaXeo Connect - NDC band */
.connect-ndc {
	padding-block: clamp(56px, 6vw, 86px) !important;
}

.connect-ndc .wp-block-cover__background {
	z-index: 1;
	background: linear-gradient(120deg, #062367 18%, rgba(6, 35, 103, 0.55) 100%) !important;
	opacity: 1 !important;
}

.connect-ndc .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: min(1240px, 100%);
	margin: 0 auto;
}

.connect-ndc-layout {
	gap: clamp(32px, 4vw, 72px);
}

.connect-ndc-kicker {
	margin: 0 0 14px;
	color: #a29cf6;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.connect-ndc h2 {
	margin: 0 0 16px;
	font-size: clamp(26px, 2.8vw, 38px);
	line-height: 1.25;
}

.connect-ndc-list li {
	color: #fff !important;
	font-size: 18px;
}

/* ViaXeo Connect - connector tab panels: provider chips + labels + result */
.connect-group-label {
	margin: 20px 0 10px !important;
	color: var(--vx-royal);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.connect-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 6px !important;
	padding: 0 !important;
	list-style: none !important;
}

.connect-chips li {
	margin: 0 !important;
	padding: 6px 13px;
	border: 1px solid rgba(112, 103, 242, 0.26);
	border-radius: 999px;
	background: var(--vx-soft);
	color: var(--vx-royal);
	font-size: 14px;
	line-height: 1.3;
}

.connect-chips li::before,
.connect-chips li::marker {
	content: none !important;
}

.connect-result {
	margin: 22px 0 0 !important;
	padding: 14px 20px;
	border-left: 3px solid var(--vx-coral);
	border-radius: 0 12px 12px 0;
	background: var(--vx-soft);
	color: var(--vx-royal);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.5;
}

@media (max-width: 900px) {
	.connect-ndc-layout {
		flex-wrap: wrap;
	}

	.connect-ndc-layout > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* ViaXeo Web - 2-col visual, testimonial, 5-step journey */
.web-split {
	gap: clamp(36px, 4vw, 72px);
	margin-top: 44px;
}

.web-visual img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
	box-shadow: 0 24px 50px rgba(6, 35, 103, 0.14);
}

.web-testimonial {
	position: relative;
	width: min(940px, 100%);
	margin: 52px auto 0;
	padding: 38px 44px 34px;
	border-radius: 20px;
	background: linear-gradient(150deg, #f3f0fc 0%, var(--vx-lavender) 100%);
	box-shadow: var(--vx-inset-hi);
}

.web-testimonial::before {
	content: "\201C";
	position: absolute;
	top: 10px;
	left: 26px;
	color: var(--vx-coral);
	font-family: Georgia, serif;
	font-size: 70px;
	line-height: 1;
	opacity: 0.5;
}

.web-testimonial-quote {
	margin: 0 !important;
	padding-left: 34px;
	color: var(--vx-royal);
	font-size: 21px;
	font-style: italic;
	line-height: 1.55;
}

.web-testimonial-author {
	margin: 16px 0 0 34px !important;
	color: var(--vx-blue);
	font-size: 16px;
	font-weight: 700;
}

/* Same journey chevron design as CRM, with equal widths for the Web labels. */
.web-parcours .crm-stage:nth-child(n) {
	flex: 1 1 0 !important;
}

.web-journey-note {
	margin-top: 34px !important;
	font-size: 19px;
	font-weight: 600;
	opacity: 0.94;
}

@media (max-width: 1024px) {
	.web-split {
		flex-wrap: wrap;
	}

	.web-split > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* ------------------------------------------------------------------ *
 * Legal pages — mentions légales, confidentialité, cookies
 * ------------------------------------------------------------------ */
.legal-page {
	background: var(--vx-white);
}

.legal-hero {
	padding: clamp(92px, 9vw, 148px) 24px clamp(38px, 5vw, 62px);
	text-align: center;
}

.legal-hero .legal-kicker {
	margin: 0 0 14px;
	color: var(--vx-coral);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.legal-hero h1 {
	max-width: 900px;
	margin: 0 auto;
	color: var(--vx-royal);
	font-size: clamp(32px, 4vw, 50px);
	line-height: 1.12;
	letter-spacing: -0.03em;
}

.legal-hero .legal-updated {
	max-width: 640px;
	margin: 18px auto 0;
	color: #6b73a3;
	font-size: 15px;
}

.legal-body {
	width: min(820px, 100%);
	margin: 0 auto;
	padding: clamp(46px, 6vw, 78px) 24px clamp(70px, 8vw, 112px);
	color: #3b4677;
	font-size: 16.5px;
	line-height: 1.75;
}

.legal-body > h2 {
	margin: 46px 0 14px;
	color: var(--vx-royal);
	font-size: clamp(21px, 2.2vw, 26px);
	line-height: 1.28;
	letter-spacing: -0.01em;
}

.legal-body > h2:first-child {
	margin-top: 0;
}

.legal-body h3 {
	margin: 30px 0 10px;
	color: var(--vx-ink);
	font-size: 18px;
}

.legal-body p {
	margin: 0 0 16px;
}

.legal-body a {
	color: var(--vx-blue);
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

.legal-body a:hover {
	color: var(--vx-coral);
}

.legal-body ul {
	margin: 0 0 18px;
	padding-left: 22px;
}

.legal-body li {
	margin: 0 0 8px;
}

.legal-body strong {
	color: var(--vx-royal);
}

/* Address / contact callout */
.legal-card {
	margin: 6px 0 26px;
	padding: 22px 26px;
	background: var(--vx-soft);
	border: 1px solid var(--vx-lavender);
	border-radius: var(--vx-radius);
	line-height: 1.65;
}

.legal-card p {
	margin: 0;
}

.legal-card p + p {
	margin-top: 4px;
}

@media (max-width: 600px) {
	.legal-body {
		font-size: 16px;
	}
}

/* ------------------------------------------------------------------ *
 * Pages produit sans visuel dédié (Comptabilité & GED, Dématérialisation)
 * Classes génériques ; les .compta-* restent en alias historique.
 * ------------------------------------------------------------------ */

/* Hero centré (pas de visuel produit disponible pour ces pages) : on annule
   le min-height de .crm-hero, calibré pour la variante à deux colonnes. */
.vx-hero-centered,
.compta-hero {
	min-height: 0;
	padding: clamp(96px, 9vw, 150px) 24px clamp(56px, 6vw, 86px);
	text-align: center;
}

.vx-hero-centered .crm-hero-title,
.vx-hero-centered .crm-hero-subtitle,
.vx-hero-centered .crm-hero-text,
.compta-hero .crm-hero-title,
.compta-hero .crm-hero-subtitle,
.compta-hero .crm-hero-text {
	margin-left: auto;
	margin-right: auto;
}

.vx-hero-centered .crm-hero-title,
.compta-hero .crm-hero-title {
	max-width: 960px;
}

.vx-hero-centered .crm-hero-subtitle,
.compta-hero .crm-hero-subtitle {
	max-width: 820px;
}

.vx-hero-centered .crm-hero-text,
.compta-hero .crm-hero-text {
	max-width: 860px;
}

/* Section sur fond blanc (sans le dégradé de .crm-information) : .crm-section
   ne fournit qu'un padding horizontal, d'où le rappel du rythme vertical et de
   la typo de titre, pour rester aligné sur les sections à dégradé. */
.vx-plain-section {
	padding-top: 90px;
	padding-bottom: 110px;
}

.vx-plain-section > h2 {
	max-width: 1000px;
	margin: 0 auto 20px;
	font-size: 43px;
	line-height: 1.3;
	letter-spacing: 0;
}

/* Grille 2 colonnes : cartes de hauteur égale. */
.vx-duo,
.compta-duo {
	align-items: stretch;
	gap: 26px;
}

.vx-duo > .wp-block-column,
.compta-duo > .wp-block-column {
	display: flex;
}

/* Les cartes s'adaptent à leur contenu : le min-height de .crm-info-card est
   calibré pour la grille à 3 cartes, trop haut pour ces paires. */
.vx-duo .crm-info-card,
.compta-duo .crm-info-card {
	width: 100%;
	min-height: 0;
	padding: 34px 34px 30px;
}

/* Chips de section centrées — .connect-chips impose `margin: 0 0 6px !important`
   (calibré pour les chips en colonne dans les panneaux Connect), d'où le !important. */
.vx-chips-centered > .connect-chips,
.compta-generale > .connect-chips {
	justify-content: center;
	max-width: 900px;
	margin: clamp(22px, 3vw, 34px) auto clamp(34px, 4vw, 52px) !important;
}

/* Chips à l'intérieur d'une carte : .connect-chips a `margin: 0 ... !important`
   (dans les panneaux Connect un label les précède et fournit l'espace), il faut
   donc réintroduire l'espace ici. Scopé aux cartes pour ne pas toucher Connect. */
.crm-info-card .connect-chips {
	margin-top: 14px !important;
}

.crm-info-card .connect-group-label + .connect-chips {
	margin-top: 8px !important;
}

/* Sous-titre + liste centrée en fin de section. */
.vx-subtitle,
.compta-ged-subtitle {
	margin: clamp(38px, 4vw, 56px) 0 22px;
	color: var(--vx-royal);
}

.vx-centered-list,
.compta-ged-list {
	width: min(900px, 100%);
	margin: 0 auto;
}

@media (max-width: 1024px) {
	.vx-duo > .wp-block-column,
	.compta-duo > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* Footer legal bar */
.footer-legal {
	align-items: center;
	gap: 12px 26px;
}

.footer-legal-copy {
	margin: 0;
	color: #b9bee0;
	font-size: 14px;
}

.footer-legal-links {
	gap: 6px 22px;
}

.footer-legal-links p {
	margin: 0;
}

.footer-legal-links a {
	color: #c7cbe6;
	font-size: 14px;
	text-decoration: none;
	opacity: 0.9;
}

.footer-legal-links a:hover {
	opacity: 1;
	text-decoration: underline;
}
