/* PRH Éléments — styles for the elements formerly provided by Ultimate Addons and LayerSlider.
   Class names are kept so the child theme and prh-stages styles still apply. */

/* ---------- Shared ---------- */
.vc_row, .wpb_row, .wpb_column { position: relative; }
.uvc-heading, .uvc-heading *,
.ubtn, .ubtn *, .ubtn-ctn-center, .ubtn-link,
.aio-icon-component, .aio-icon-component *,
.align-icon, .align-icon * { box-sizing: border-box; }
.uvc-heading i, .ubtn i, .aio-icon-component i, .align-icon i { font-size: inherit; line-height: inherit; }

/* ---------- Headings [ultimate_heading] ---------- */
.uvc-heading { text-align: center; }
.uvc-heading .uvc-main-heading div,
.uvc-heading .uvc-main-heading h1, .uvc-heading .uvc-main-heading h2, .uvc-heading .uvc-main-heading h3,
.uvc-heading .uvc-main-heading h4, .uvc-heading .uvc-main-heading h5, .uvc-heading .uvc-main-heading h6,
.uvc-heading .uvc-main-heading p, .uvc-heading .uvc-main-heading span { margin: 0; padding: 0; line-height: normal; }
.uvc-heading-spacer { margin: 0 auto; padding: 0; position: relative; overflow: hidden; }
.uvc-headings-line { display: block; width: 100%; max-width: 100%; }
.uvc-sub-heading { line-height: normal; margin: 0 auto; }
.uvc-sub-heading div, .uvc-sub-heading p {
	font-family: inherit !important; font-weight: inherit !important; font-size: inherit !important;
	font-style: inherit !important; color: inherit !important; line-height: inherit !important;
}
.uvc-heading p { word-break: normal; overflow-wrap: normal; }

/* ---------- Buttons [ult_buttons] ---------- */
.ubtn-ctn-left, .ubtn-ctn-center, .ubtn-ctn-right { display: block; margin-bottom: 35px; }
.ubtn-ctn-left { text-align: left; }
.ubtn-ctn-center { text-align: center; }
.ubtn-ctn-right { text-align: right; }
.ubtn-ctn-inline { display: inline-block; }
a.ubtn-link { display: inline-block; margin: 0; color: inherit; text-decoration: none; max-width: 100%; }
a.ubtn-link:hover { color: inherit; text-decoration: none; }
a.ubtn-link .ubtn { margin: 0; }
.ubtn {
	border: inherit; font-size: 12px; font-weight: 400; line-height: 1.4em; color: inherit;
	background: 0 0; cursor: pointer; display: inline-block; margin: 0; padding: 25px 80px; outline: 0;
	text-align: center; text-decoration: none; position: relative; transition: all .3s;
	box-sizing: border-box; overflow: hidden; z-index: 1; max-width: 100%; visibility: visible;
	backface-visibility: hidden;
}
.ubtn::after { content: ""; position: absolute; z-index: -1; transition: all .3s; }
button.ubtn { background: inherit; color: inherit; }
button.ubtn:active, button.ubtn:focus, button.ubtn:hover, button.ubtn:visited {
	color: inherit; background: inherit; box-shadow: inherit; outline: 0;
}
button.ubtn-normal { padding: 15px 30px; }
@media (max-width: 768px) { .ubtn-normal { padding: 10px 24px; } }
button.ubtn-custom { padding: 0; }
.ubtn-data { z-index: 3; position: inherit; display: block; font-family: inherit; font-weight: inherit; font-size: inherit; color: inherit; }
.ubtn-text { font-family: inherit; font-weight: inherit; font-size: inherit; font-style: inherit; color: inherit; line-height: inherit; }
.ubtn-hover {
	width: 100%; height: 100%; inset: 0; position: absolute; background: 0 0; z-index: 2;
	transition: all .3s; border-radius: inherit; box-sizing: border-box; opacity: 0;
}
.ubtn-fade-bg .ubtn-hover { background: rgba(255, 255, 255, 0); opacity: 0; }
.ubtn-fade-bg:hover .ubtn-hover, .ubtn-hover-active { opacity: 1; }
.ubtn-sep-icon .ubtn-icon { position: absolute; top: 50%; transform: translateY(-50%); }
.ubtn-sep-icon.ubtn-sep-icon-at-left .ubtn-icon { left: 20px; }

/* ---------- Icons [just_icon] and info boxes [bsf-info-box] ---------- */
.aio-icon { display: inline-block; font-size: 32px; height: 2em; width: 2em; text-align: center; line-height: 2em; box-sizing: content-box !important; }
.aio-icon.none { display: inline-block; font-size: 32px; height: 1em; width: 1em; text-align: center; line-height: 1em; }
.aio-icon i { line-height: inherit; }
.aio-icon-component, .wpb_column > .wpb_wrapper .aio-icon-component { margin-bottom: 35px; }
.aio-icon-component .aio-icon { transition: transform .2s linear; }
a.aio-icon-box-link { text-decoration: none; border: none; display: block; }
.default-icon .aio-icon-default { display: table-cell; vertical-align: middle; }
.default-icon .aio-icon-default .aio-icon { margin-right: 15px; }
.default-icon .aio-icon-header { display: table-cell; vertical-align: middle; }

/* ---------- Row colour overlay ---------- */
.upb_row_bg {
	position: absolute; width: 100%; height: 100%; inset: 0; z-index: 0;
	background-position: center center; overflow: hidden;
}

/* ---------- Home banner (former LayerSlider "Accueil") ----------
   1280×620 canvas, scaled down under 1280px, stretched to the full window width. */
.prh-hero-element { margin: 0; }
.prh-hero {
	--prh-w: var(--prh-vw, 100vw);
	position: relative;
	width: var(--prh-w);
	margin-left: calc((100% - var(--prh-w)) / 2);
	height: min(620px, calc(var(--prh-w) * 0.484375));
	height: round(min(620px, calc(var(--prh-w) * 0.484375)), 1px); /* LayerSlider rounded to whole pixels */
	overflow: hidden;
	animation: prh-hero-fade .35s ease-out both;
}
.prh-hero__image {
	position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
	object-fit: cover; object-position: 50% 50%; display: block;
}
.prh-hero__canvas {
	position: absolute; top: 0; bottom: 0; left: 50%;
	width: min(1280px, var(--prh-w)); transform: translateX(-50%);
}
.prh-hero .prh-hero__title {
	position: absolute; left: 0; top: 60%; margin: 0; padding: 0;
	transform: translateY(-50%);
	font-family: Raleway; font-weight: 800; color: #fff;
	font-size: min(40px, calc(var(--prh-w) * 0.03125));
	line-height: min(50px, calc(var(--prh-w) * 0.0390625));
	text-shadow: #000 1px 1px 1px; white-space: nowrap; text-align: left;
	animation: prh-hero-title 1.5s cubic-bezier(.23, 1, .32, 1) both;
}
@keyframes prh-hero-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes prh-hero-title {
	from { opacity: 0; transform: translate(300px, -50%); }
	to { opacity: 1; transform: translate(0, -50%); }
}
@media (prefers-reduced-motion: reduce) {
	.prh-hero, .prh-hero .prh-hero__title { animation: none; }
}
