.hvl-text-balance .elementor-heading-title {
	text-wrap: balance;
}

.hvl-text-pretty .elementor-heading-title {
	text-wrap: pretty;
}

.hvl-title-fade .elementor-heading-title span {
	background: linear-gradient(100deg, color-mix(in srgb, var(--hvl-fade-color, var(--e-global-color-text, #14161d)) 80%, transparent), color-mix(in srgb, var(--hvl-fade-color, var(--e-global-color-text, #14161d)) 32%, transparent));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

@media (max-width: 767px) {
	.hvl-title-fade:not(.hvl-title-fade--always) .elementor-heading-title span {
		background: none;
		color: inherit;
	}
}

.hvl-dot-badge {
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.hvl-dot-badge .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 8px;
}

.hvl-dot-badge .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 99px;
	background: var(--hvl-dot-color, var(--e-global-color-azur_300, #6ec8e8));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--hvl-dot-color, var(--e-global-color-azur_300, #6ec8e8)) 22%, transparent);
	animation: hvl-dot-beat 2.4s ease-in-out infinite;
}

@keyframes hvl-dot-beat {
	0%,
	100% {
		opacity: 1;
		transform: scale(1);
	}

	50% {
		opacity: 0.55;
		transform: scale(0.82);
	}
}

@media (min-width: 600px) {
	.hvl-break-last .elementor-heading-title span {
		display: block;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hvl-dot-badge .elementor-heading-title::before {
		animation: none;
	}
}

.hvl-list-row-gap .elementor-icon-list-items {
	row-gap: var(--hvl-row-gap, 10px);
}

.hvl-underline-links.elementor-widget-heading.elementor-element .elementor-heading-title a[href] {
	font-weight: 600;
	color: var(--hvl-link-color, var(--e-global-color-primary, #08739f));
	text-decoration: underline;
	text-underline-offset: var(--hvl-link-offset, 3px);
	text-decoration-thickness: var(--hvl-link-thickness, 1px);
	text-decoration-color: color-mix(in srgb, var(--hvl-link-color, var(--e-global-color-primary, #08739f)) 35%, transparent);
}

.hvl-underline-links.elementor-widget-heading.elementor-element .elementor-heading-title a[href]:hover {
	text-decoration-color: var(--hvl-link-color, var(--e-global-color-primary, #08739f));
}

.hvl-underline-links--plain.elementor-widget-heading.elementor-element .elementor-heading-title a[href] {
	font-weight: inherit;
	text-decoration-color: currentColor;
}

.hvl-underline-links--thick {
	--hvl-link-thickness: 1.5px;
}

.hvl-underline-links--inherit.elementor-widget-heading.elementor-element .elementor-heading-title a[href] {
	font-weight: inherit;
	color: inherit;
	text-underline-offset: 4px;
	text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
}

.hvl-icon-block .elementor-icon-wrapper {
	display: flex;
	line-height: 0;
}

.hvl-links-offset-auto {
	--hvl-link-offset: auto;
}

.hvl-flag-row .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 5px;
}

.hvl-flag-row .hvl-flag {
	width: 18px;
	height: 13px;
}

.hvl-chips .elementor-heading-title {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.hvl-chips .elementor-heading-title span {
	padding: 3px 9px;
	border-radius: 99px;
	background: var(--hvl-chip-bg, rgba(20, 22, 29, 0.06));
}

.hvl-caption-pill .wp-caption {
	position: relative;
	margin: 0;
}

.elementor-widget-image.hvl-caption-pill .widget-image-caption,
.hvl-caption-pill .widget-image-caption {
	position: absolute;
	left: var(--hvl-caption-x, 16px);
	bottom: var(--hvl-caption-y, 14px);
	max-width: calc(100% - var(--hvl-caption-x, 16px) * 2);
	margin: 0;
	border-radius: 999px;
	padding: 6px 12px;
	color: var(--hvl-caption-ink, #fff);
	background: var(--hvl-caption-bg, rgba(15, 16, 23, 0.62));
	font-style: normal;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.elementor-widget-image.hvl-caption-pill .widget-image-caption a,
.hvl-caption-pill .widget-image-caption a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (min-width: 768px) {
	.elementor-widget-image.hvl-caption-pill .widget-image-caption,
	.hvl-caption-pill .widget-image-caption {
		left: var(--hvl-caption-x-desktop, 20px);
		bottom: var(--hvl-caption-y-desktop, 18px);
	}
}

.hvl-arrow-after .elementor-heading-title::after {
	content: "";
	display: inline-block;
	width: var(--hvl-arrow-size, 14px);
	height: var(--hvl-arrow-size, 14px);
	margin-left: var(--hvl-arrow-gap, 6px);
	vertical-align: -2px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hvl-kicker-rule .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 10px;
}

.hvl-kicker-rule--center .elementor-heading-title {
	justify-content: center;
}

.hvl-kicker-rule .elementor-heading-title span {
	color: var(--hvl-kicker-accent, var(--e-global-color-primary, #08739f));
}

.hvl-kicker-rule .elementor-heading-title::after {
	content: "";
	flex: 0 0 var(--hvl-kicker-rule, 40px);
	height: 1px;
	background: var(--hvl-kicker-rule-color, rgba(20, 22, 29, 0.16));
}

.hvl-title-row .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 12px;
}

.hvl-title-row--inline .elementor-heading-title {
	display: inline-flex;
}

.hvl-title-row--tight .elementor-heading-title {
	gap: 6px;
}

.hvl-title-row .elementor-heading-title img {
	display: block;
	flex: none;
}

.hvl-title-row .hvl-title-row__muted {
	opacity: 0.45;
}

.hvl-rich .elementor-widget-container > :first-child,
.hvl-rich.elementor-widget-text-editor > :first-child {
	margin-top: 0;
}

.hvl-rich p {
	margin: 0 0 var(--hvl-rich-gap, 14px);
}

.hvl-rich p:last-child {
	margin-bottom: 0;
}

.hvl-rich strong {
	font-weight: 600;
	color: var(--hvl-rich-strong, var(--e-global-color-text, #14161d));
}

.hvl-rich a[href] {
	color: var(--e-global-color-primary, #08739f);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: var(--hvl-link-thickness, 1px);
}

.hvl-rich--loose {
	--hvl-rich-gap: 18px;
	--hvl-link-thickness: 1.5px;
}

.hvl-mark {
	padding: 0 0.08em;
	color: inherit;
	background: linear-gradient(
		transparent 58%,
		color-mix(in srgb, var(--e-global-color-accent, #38b0db) 26%, transparent) 58%,
		color-mix(in srgb, var(--e-global-color-accent, #38b0db) 26%, transparent) 92%,
		transparent 92%
	);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.hvl-pull {
	padding: 8px 0 8px 22px;
	border-left: 3px solid var(--e-global-color-primary, #08739f);
}

.elementor-widget-icon.hvl-icon-stroke .elementor-icon svg,
.elementor-widget-icon.hvl-icon-stroke .elementor-icon svg *,
.elementor-widget-icon.hvl-icon-stroke .elementor-icon > svg,
.hvl-icon-stroke svg,
.hvl-icon-stroke svg * {
	fill: none !important;
	stroke: currentColor;
}

/* Surtitre de l'accueil : le soulignement de la maquette, dont Elementor
   n'expose ni le décalage ni l'épaisseur. */
.hvl-kicker--underline .elementor-heading-title {
	text-underline-offset: 6px;
	text-decoration-thickness: 1px;
}
