/* ==========================================================================
   UP Couvreur : feuille de style du thème
   Palette bordeaux + crème. Toutes les couleurs sont dans :root.
   Les mêmes classes servent aux pages Elementor et au HTML de secours
   (qui reprend le balisage d'Elementor) : avec ou sans .elementor-widget-container.
   ========================================================================== */

:root {
	--up-red-950: #1d0604;
	--up-red-900: #2c0806;
	--up-red-800: #5c120c;
	--up-red-700: #8f1b14;
	--up-red-600: #c4261d;
	--up-red-500: #dc3a2f;
	--up-red-50: #fcefec;
	--up-navy: #13213f;
	--up-gold: #ecc796;
	--up-gold-soft: #f6e2c5;
	--up-cream: #fffcf8;
	--up-sand: #f6f1ea;
	--up-sand-2: #ece5da;
	--up-line: #e8e0d4;
	--up-ink: #17181c;
	--up-ink-2: #444852;
	--up-muted: #626774;
	--up-serif: Georgia, "Times New Roman", Times, serif;
	--up-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--up-r-sm: 12px;
	--up-r: 18px;
	--up-r-lg: 26px;
	--up-pill: 999px;
	--up-shadow-sm: 0 1px 2px rgba(29, 6, 4, .05), 0 6px 18px rgba(29, 6, 4, .05);
	--up-shadow: 0 26px 60px -26px rgba(29, 6, 4, .45);
	--up-container: 1200px;
	--up-header-h: 78px;
	--up-hero-bg:
		radial-gradient(900px 520px at 88% 0%, rgba(236, 199, 150, .16), transparent 62%),
		linear-gradient(115deg, var(--up-red-950) 0%, #4a0e09 48%, #95201a 100%);
	--up-motif: url("../svg/motif-tuiles.svg");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
/* overflow-x: clip : rien ne doit élargir la page sur mobile (sans casser l'en-tête collant). */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--up-header-h) + 16px); overflow-x: clip; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
	margin: 0;
	background: var(--up-cream);
	color: var(--up-ink);
	font-family: var(--up-sans);
	font-size: 16.5px;
	line-height: 1.68;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.12; color: var(--up-navy); }
h1, h2 { font-family: var(--up-serif); font-weight: 700; letter-spacing: -.012em; }
h1 { font-size: clamp(2.2rem, 1.35rem + 2.8vw, 3.75rem); }
h2 { font-size: clamp(1.95rem, 1.25rem + 2.3vw, 3.2rem); }
h3 { font-size: 1.15rem; font-weight: 750; letter-spacing: -.005em; }
strong { font-weight: 750; }
::selection { background: var(--up-red-600); color: #fff; }
:focus-visible { outline: 3px solid var(--up-red-500); outline-offset: 3px; border-radius: 6px; }
.up-dark :focus-visible, .up-footer :focus-visible { outline-color: var(--up-gold); }
.up-main:focus { outline: none; }
body .elementor-heading-title { line-height: 1.12; }
body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.up-skip {
	position: absolute; left: 16px; top: -60px; z-index: 100;
	background: var(--up-red-600); color: #fff; padding: 10px 16px; border-radius: 10px;
	font-weight: 700; text-decoration: none; transition: top .2s;
}
.up-skip:focus { top: 12px; }
.up-wrap { width: min(100% - 40px, var(--up-container)); margin-inline: auto; }
.up-ico {
	width: 22px; height: 22px; flex: none; display: block;
	fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
}
svg.e-font-icon-svg { fill: currentColor; }

/* ---------- Elementor : neutralisation des réglages par défaut ---------- */
body .e-con {
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
	--container-max-width: var(--up-container);
}
body .e-con.e-con-boxed > .e-con-inner {
	width: calc(100% - 40px);
	max-width: var(--content-width, var(--up-container));
	margin-inline: auto;
}
body .elementor-widget-image img { vertical-align: top; }
.elementor-element.up-photo > .elementor-widget-container,
.elementor-element.up-gallery__item > .elementor-widget-container { height: 100%; }

/* ---------- HTML de secours (Elementor absent) : mise en page ---------- */
.up-fallback .e-con {
	--fb-d: flex; --fb-dir: column; --fb-dir-t: var(--fb-dir); --fb-dir-m: var(--fb-dir-t);
	--fb-wrap: nowrap; --fb-gap: 20px; --fb-jc: normal; --fb-ai: normal; --fb-ai-m: var(--fb-ai);
	--fb-cols: none; --fb-cols-t: var(--fb-cols); --fb-cols-m: var(--fb-cols-t);
	position: relative; min-width: 0; width: 100%; flex: 0 1 auto;
}
.up-fallback .e-con-boxed { display: block; }
.up-fallback .e-con-full,
.up-fallback .e-con-boxed > .e-con-inner {
	display: var(--fb-d); flex-direction: var(--fb-dir); flex-wrap: var(--fb-wrap); gap: var(--fb-gap);
	justify-content: var(--fb-jc); align-items: var(--fb-ai); grid-template-columns: var(--fb-cols);
}
.up-fallback .elementor-widget { position: relative; min-width: 0; }
.up-fallback .elementor-widget-image img { display: block; max-width: 100%; height: auto; }
.up-fallback details > summary { list-style: none; }
.up-fallback details > summary::-webkit-details-marker { display: none; }
.up-fallback .elementor-icon-box-wrapper { display: flex; flex-direction: column; }
.up-fallback .elementor-position-inline-start .elementor-icon-box-wrapper { flex-direction: row; align-items: center; }
.up-fallback .elementor-icon { display: inline-flex; line-height: 1; }
.up-fallback .elementor-icon svg, .up-fallback .elementor-icon-list-icon svg, .up-fallback .elementor-button-icon svg { width: 1em; height: 1em; }
.up-fallback .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.up-fallback .elementor-icon-list-item, .up-fallback .elementor-icon-list-item > a { display: flex; align-items: center; }
.up-fallback .elementor-button-content-wrapper { display: flex; align-items: center; gap: 10px; }
.up-fallback .elementor-custom-embed iframe { display: block; width: 100%; border: 0; }
@media (max-width: 1024px) {
	.up-fallback .e-con-full, .up-fallback .e-con-boxed > .e-con-inner { flex-direction: var(--fb-dir-t); grid-template-columns: var(--fb-cols-t); }
}
@media (max-width: 767px) {
	.up-fallback .e-con-full, .up-fallback .e-con-boxed > .e-con-inner {
		flex-direction: var(--fb-dir-m); grid-template-columns: var(--fb-cols-m); align-items: var(--fb-ai-m);
	}
	.up-fallback .e-con.e-flex, .up-fallback .e-con.e-flex > .e-con-inner { flex-wrap: wrap; }
}

/* ---------- Barre du haut ---------- */
.up-topbar { background: var(--up-red-950); color: #ead9cf; font-size: 13px; }
.up-topbar ul { list-style: none; margin: 0; padding: 9px 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 34px; }
.up-topbar li { display: inline-flex; align-items: center; gap: 8px; }
.up-topbar li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--up-gold); opacity: .7; margin-right: 2px; }
.up-topbar strong { color: #fff; }
@media (max-width: 760px) { .up-topbar .up-hide-sm { display: none; } .up-topbar ul { gap: 4px 18px; } }

/* ---------- En-tête ---------- */
.up-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 252, 248, .95);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid transparent;
	transition: box-shadow .25s, border-color .25s;
}
.up-header.is-scrolled { border-color: var(--up-line); box-shadow: 0 10px 30px -18px rgba(29, 6, 4, .35); }
.admin-bar .up-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .up-header { top: 46px; } }
@media screen and (max-width: 600px) { .admin-bar .up-header { top: 0; } }
.up-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; height: var(--up-header-h); }

.up-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; color: inherit; }
.up-brand__mark { width: 48px; height: 48px; flex: none; filter: drop-shadow(0 6px 12px rgba(196, 38, 29, .25)); }
.up-brand__text { display: flex; flex-direction: column; line-height: 1; }
.up-brand__name { font-family: var(--up-serif); font-weight: 700; font-size: 23px; color: var(--up-navy); letter-spacing: -.015em; }
.up-brand__sub {
	display: flex; align-items: center; gap: 8px; margin-top: 6px;
	font-size: 10.5px; font-weight: 800; letter-spacing: .26em; text-transform: uppercase; color: var(--up-red-600);
}
.up-brand__sub::after { content: ""; flex: 1; height: 2px; min-width: 20px; background: radial-gradient(circle, var(--up-red-600) 1.2px, transparent 1.6px) 0 50% / 6px 4px repeat-x; opacity: .7; }
.up-brand--image img, .custom-logo { display: block; max-height: 58px; width: auto; }

.up-nav { display: flex; align-items: center; gap: 14px; }
.up-menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.up-menu > li { position: relative; display: flex; align-items: center; }
.up-menu > li > a {
	display: inline-flex; align-items: center; gap: 7px; padding: 10px 13px; border-radius: 11px;
	font: 700 14.5px/1.2 var(--up-sans); color: var(--up-ink); text-decoration: none;
	transition: color .15s, background-color .15s;
}
.up-menu > li > a:hover,
.up-menu > .current-menu-item > a,
.up-menu > .current-menu-ancestor > a,
.up-menu > .current-menu-parent > a,
.up-menu > li.is-open > a { color: var(--up-red-600); background: var(--up-red-50); }
.up-menu-urgence > a::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--up-red-500);
	box-shadow: 0 0 0 3px rgba(220, 58, 47, .18); animation: up-pulse 2.2s ease-in-out infinite;
}
@keyframes up-pulse { 50% { box-shadow: 0 0 0 6px rgba(220, 58, 47, .05); } }
.up-sub-toggle {
	display: grid; place-items: center; width: 28px; height: 28px; margin-left: -12px; padding: 0;
	border: 0; border-radius: 8px; background: none; color: var(--up-red-600); cursor: pointer;
}
.up-sub-toggle .up-ico { width: 15px; height: 15px; transition: transform .2s; }
.up-menu > li:hover > .up-sub-toggle .up-ico, .up-menu > li.is-open > .up-sub-toggle .up-ico { transform: rotate(180deg); }
.up-menu .sub-menu {
	position: absolute; top: calc(100% + 10px); left: -12px; z-index: 60; min-width: 330px;
	list-style: none; margin: 0; padding: 10px;
	background: #fff; border: 1px solid var(--up-line); border-radius: 18px; box-shadow: var(--up-shadow);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity .18s, transform .18s, visibility .18s;
}
.up-menu .sub-menu::before { content: ""; position: absolute; inset: -14px 0 auto 0; height: 14px; }
.up-menu > li:hover > .sub-menu,
.up-menu > li:focus-within > .sub-menu,
.up-menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.up-menu .sub-menu a {
	display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 12px;
	text-decoration: none; font-weight: 650; font-size: 14.5px; line-height: 1.3; color: var(--up-ink);
}
.up-menu .sub-menu a:hover, .up-menu .sub-menu .current-menu-item > a { background: var(--up-sand); color: var(--up-red-700); }
.up-sub-ico { width: 34px; height: 34px; border-radius: 10px; background: var(--up-red-50); color: var(--up-red-600); display: grid; place-items: center; flex: none; }
.up-sub-ico .up-ico { width: 18px; height: 18px; }
.up-menu .sub-menu .up-menu-tous > a { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--up-line); border-radius: 0 0 12px 12px; color: var(--up-red-600); font-weight: 800; }

.up-burger {
	display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--up-line);
	background: #fff; color: var(--up-navy); align-items: center; justify-content: center; cursor: pointer; padding: 0;
}
.up-burger .up-ico { width: 24px; height: 24px; }
.up-burger .up-ico--fermer, .up-burger[aria-expanded="true"] .up-ico--ouvrir { display: none; }
.up-burger[aria-expanded="true"] .up-ico--fermer { display: block; }

.up-mobile-panel {
	position: absolute; top: 100%; left: 0; right: 0;
	background: var(--up-cream); border-top: 1px solid var(--up-line);
	box-shadow: 0 30px 40px -30px rgba(29, 6, 4, .45);
	max-height: calc(100vh - var(--up-header-h)); max-height: calc(100dvh - var(--up-header-h)); overflow-y: auto;
	padding: 10px 20px 26px;
}
.up-mobile-panel[hidden] { display: none; }
.up-mmenu { list-style: none; margin: 0; padding: 0; }
.up-mmenu > li > a { display: block; padding: 14px 4px; font-weight: 750; font-size: 17px; text-decoration: none; color: var(--up-ink); border-bottom: 1px solid var(--up-line); }
.up-mmenu > li.current-menu-item > a { color: var(--up-red-600); }
.up-mmenu .sub-menu { list-style: none; margin: 10px 0 12px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.up-mmenu .sub-menu a {
	display: flex; align-items: center; gap: 10px; height: 100%; padding: 10px 12px;
	background: #fff; border: 1px solid var(--up-line); border-radius: 12px;
	font-size: 14.5px; font-weight: 650; line-height: 1.3; text-decoration: none; color: var(--up-ink);
}
.up-mmenu .up-sub-ico { width: 30px; height: 30px; }
.up-mmenu .up-menu-tous { grid-column: 1 / -1; }
.up-mmenu .up-menu-tous > a { justify-content: center; color: var(--up-red-600); font-weight: 800; }
.up-mobile-panel .up-button { width: 100%; margin-top: 18px; }
body.up-menu-open { overflow: hidden; }
@media (max-width: 1120px) {
	.up-nav .up-menu { display: none; }
	.up-burger { display: inline-flex; }
}
@media (max-width: 560px) {
	:root { --up-header-h: 68px; }
	.up-brand__mark { width: 42px; height: 42px; }
	.up-brand__name { font-size: 20px; }
	.up-brand__sub { font-size: 9.5px; letter-spacing: .2em; }
	.up-nav .up-header__call { display: none; }
}
@media (max-width: 480px) { .up-mmenu .sub-menu { grid-template-columns: 1fr; } }

/* ---------- Boutons : ceux du thème (.up-button) et le widget Bouton d'Elementor (.up-btn) ---------- */
.up-button,
body .up-btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 15px 26px; border-radius: var(--up-pill); border: 2px solid transparent;
	font: 800 15.5px/1.2 var(--up-sans); letter-spacing: 0; text-decoration: none; text-align: center; cursor: pointer;
	background: var(--up-red-600); color: #fff; fill: currentColor;
	transition: transform .15s, background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}
body .up-btn .elementor-button-content-wrapper { display: flex; align-items: center; gap: 10px; }
body .up-btn .elementor-button-icon { display: flex; align-items: center; }
.up-button .up-ico, body .up-btn .elementor-button-icon svg { width: 18px; height: 18px; }
.up-button .up-ico, body .up-btn .elementor-button-icon .up-ico { stroke-width: 2.2; }
.up-button:hover, body .up-btn .elementor-button:hover { transform: translateY(-2px); }
.up-button--red, body .up-btn--red .elementor-button { background: var(--up-red-600); color: #fff; box-shadow: 0 14px 28px -14px rgba(196, 38, 29, .9); }
.up-button--red:hover, body .up-btn--red .elementor-button:hover, body .up-btn--red .elementor-button:focus { background: var(--up-red-700); color: #fff; }
.up-button--light, body .up-btn--light .elementor-button { background: #fff; color: var(--up-red-800); box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .55); }
.up-button--light:hover, body .up-btn--light .elementor-button:hover, body .up-btn--light .elementor-button:focus { background: var(--up-gold-soft); color: var(--up-red-800); }
.up-button--ghost, body .up-btn--ghost .elementor-button { background: transparent; border-color: rgba(255, 255, 255, .42); color: #fff; }
.up-button--ghost:hover, body .up-btn--ghost .elementor-button:hover, body .up-btn--ghost .elementor-button:focus { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }
.up-button--outline, body .up-btn--outline .elementor-button { background: transparent; border-color: var(--up-red-600); color: var(--up-red-700); }
.up-button--outline:hover, body .up-btn--outline .elementor-button:hover, body .up-btn--outline .elementor-button:focus { background: var(--up-red-600); color: #fff; }
.up-button--dark, body .up-btn--dark .elementor-button { background: var(--up-red-800); color: #fff; box-shadow: 0 14px 28px -14px rgba(92, 18, 12, .9); }
.up-button--dark:hover, body .up-btn--dark .elementor-button:hover, body .up-btn--dark .elementor-button:focus { background: var(--up-red-900); color: #fff; }
.up-button--sm, body .up-btn--sm .elementor-button { padding: 11px 19px; font-size: 14.5px; }
body .up-btn--block .elementor-button, .up-button--block { width: 100%; }
body .up-btn--link .elementor-button {
	padding: 0; border: 0; background: none; box-shadow: none; border-radius: 0;
	color: var(--up-red-700); font-size: 14.5px;
}
body .up-btn--link .elementor-button:hover, body .up-btn--link .elementor-button:focus { transform: none; color: var(--up-red-600); background: none; }
body .up-btn--link .elementor-button-content-wrapper { gap: 7px; }
body .up-btn--link .elementor-button-icon svg { width: 16px; height: 16px; transition: transform .2s; }
body .up-btn--link .elementor-button:hover .elementor-button-icon svg { transform: translateX(4px); }
.up-dark .up-btn--link .elementor-button { color: var(--up-gold); }

/* ---------- Textes utilitaires ---------- */
.up-eyebrow .elementor-heading-title,
.up-eyebrow-txt {
	display: inline-flex; align-items: center; gap: 12px; margin: 0 0 16px;
	font: 850 12px/1.3 var(--up-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--up-red-600);
}
.up-eyebrow--line .elementor-heading-title::before { content: ""; width: 38px; height: 1.5px; background: currentColor; opacity: .85; }
.up-dark .up-eyebrow .elementor-heading-title, .up-dark .up-eyebrow-txt { color: var(--up-gold); }
.up-pill .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 8px 16px 8px 14px;
	border-radius: var(--up-pill); background: rgba(220, 58, 47, .2); border: 1px solid rgba(236, 199, 150, .38);
	font: 800 12.5px/1.2 var(--up-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--up-gold-soft);
}
.up-pill .elementor-heading-title::before {
	content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--up-red-500);
	box-shadow: 0 0 0 4px rgba(220, 58, 47, .28); animation: up-pulse 2.2s ease-in-out infinite;
}
.up-lead, .up-lead-txt { font-size: 1.08rem; color: var(--up-ink-2); }
.up-dark .up-lead, .up-dark .up-lead-txt { color: rgba(255, 255, 255, .8); }
.up-text { color: var(--up-ink-2); }
.up-dark .up-text { color: rgba(255, 255, 255, .78); }
.up-text a, .up-lead a { color: var(--up-red-700); font-weight: 700; }
.up-dark .up-text a, .up-dark .up-lead a { color: var(--up-gold); }
.up-accent { color: var(--up-red-600); }
.up-dark .up-accent { color: var(--up-gold); }
.up-tag .elementor-heading-title {
	margin: 0 0 12px; font: 850 11.5px/1.3 var(--up-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--up-gold);
}
.up-dark h1, .up-dark h2, .up-dark h3, .up-dark .elementor-heading-title { color: #fff; }

/* Le dernier élément d'un bloc ne laisse pas de marge en bas */
.e-con > .elementor-widget-heading:last-child .elementor-heading-title,
.e-con-inner > .elementor-widget-heading:last-child .elementor-heading-title,
.e-con > .elementor-widget-text-editor:last-child > :last-child,
.e-con-inner > .elementor-widget-text-editor:last-child > :last-child,
.e-con > .elementor-widget-text-editor:last-child > .elementor-widget-container > :last-child { margin-bottom: 0; }

/* ---------- Sections ---------- */
body .e-con.up-section { padding-block: 100px; }
body .e-con.up-section--sm { padding-block: 70px; }
body .e-con.up-section--flush { padding-top: 0; }
body .up-section--soft { background: var(--up-sand); }
@media (max-width: 820px) {
	body .e-con.up-section { padding-block: 72px; }
	body .e-con.up-section--sm { padding-block: 54px; }
	body .e-con.up-section--flush { padding-top: 0; }
}

/* En-tête de section */
.up-head__text { max-width: 780px; }
.up-head__title .elementor-heading-title { margin-bottom: 16px; }
.up-head .up-lead > *, .up-head .up-lead > .elementor-widget-container > * { max-width: 660px; }
body .e-con.up-head > .elementor-widget-button { flex: none; }

/* ---------- Héros ---------- */
body .up-hero, body .up-page-hero, body .up-method {
	position: relative; overflow: hidden; color: #fff; background: var(--up-hero-bg);
}
body .e-con.up-hero::before, body .e-con.up-page-hero::before, body .e-con.up-method::before, .up-hero-simple::before {
	content: ""; position: absolute; inset: 0; z-index: 0; display: block; pointer-events: none;
	background: var(--up-motif) repeat; background-size: 44px 44px; opacity: .05; mix-blend-mode: normal; border: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}
body .e-con.up-hero > .e-con-inner, body .e-con.up-page-hero > .e-con-inner, body .e-con.up-method > .e-con-inner { position: relative; z-index: 1; }
body .e-con.up-hero { padding-block: 92px 100px; }
.up-hero__title .elementor-heading-title {
	margin-bottom: 24px; color: #fff; font-size: clamp(2.5rem, 1.35rem + 3.7vw, 4.3rem); line-height: 1.04;
}
.up-hero__text .up-lead { font-size: 1.1rem; }
.up-hero__text .up-lead p { max-width: 610px; }
body .e-con.up-hero__text > .up-actions, body .e-con.up-page-hero__text > .up-actions { margin-top: 32px; }
body .e-con.up-hero__points { margin-top: 36px; padding-top: 26px; max-width: 640px; border-top: 1px solid rgba(255, 255, 255, .14); }
body .up-point.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-point .elementor-icon-box-title { margin: 0; font: 750 15px/1.3 var(--up-sans); color: #fff; }
body .up-point .elementor-icon-box-description { margin: 2px 0 0; font-size: 13.5px; line-height: 1.45; color: rgba(255, 255, 255, .66); }

body .e-con.up-hero__media { position: relative; }
body .up-photo { position: relative; overflow: hidden; }
body .up-photo img, body .up-photo .wp-caption img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
body .elementor-widget.up-photo--hero {
	border-radius: var(--up-r-lg); aspect-ratio: 4 / 4.25;
	box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .8); border: 1px solid rgba(255, 255, 255, .14); background: var(--up-red-900);
}
.up-page-hero .elementor-widget.up-photo--hero { aspect-ratio: 4 / 3.2; }

/* Badges flottants sur la photo */
body .elementor-widget.up-badge {
	position: absolute; z-index: 2; width: auto; max-width: min(300px, 80%); margin: 0;
	background: #fff; color: var(--up-ink); border-radius: 18px; padding: 14px 20px 14px 14px; box-shadow: var(--up-shadow);
}
body .up-badge.elementor-widget-icon-box .elementor-icon-box-wrapper { display: flex; flex-direction: row; align-items: center; gap: 13px; text-align: left; }
body .up-badge .elementor-icon-box-icon { margin: 0; }
body .up-badge .elementor-icon {
	display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px;
	background: var(--up-red-50); color: var(--up-red-600); fill: var(--up-red-600); font-size: 20px;
}
body .up-badge .elementor-icon-box-title { margin: 0; font: 750 15px/1.25 var(--up-sans); color: var(--up-navy); }
body .up-badge .elementor-icon-box-description { margin: 0; font-size: 12.5px; line-height: 1.35; color: var(--up-muted); }
body .up-badge--left { left: -34px; bottom: 38px; }
body .up-badge--right { right: -22px; top: 30px; }
@media (max-width: 1290px) { body .up-badge--right { right: -8px; } body .up-badge--left { left: -14px; } }
@media (max-width: 1024px) {
	body .e-con.up-hero__media, body .e-con.up-page-hero > .e-con-inner > .up-hero__media { max-width: 560px; }
	body .up-badge--left { left: 14px; }
	body .up-badge--right { right: 14px; }
}
@media (max-width: 767px) {
	body .e-con.up-hero { padding-block: 46px 56px; }
	.up-hero__title .elementor-heading-title { font-size: 2.15rem; }
	body .e-con.up-hero__points { margin-top: 30px; }
	body .up-hero__text .up-actions > .elementor-widget, body .up-page-hero__text .up-actions > .elementor-widget { width: 100%; }
	body .up-hero__text .up-actions .elementor-button, body .up-page-hero__text .up-actions .elementor-button { width: 100%; }
	body .elementor-widget.up-badge { padding: 10px 14px 10px 10px; border-radius: 14px; }
	body .up-badge .elementor-icon { width: 36px; height: 36px; font-size: 17px; }
	body .up-badge--right { top: 14px; }
	body .up-badge--left { bottom: 16px; }
}

/* Héros des pages intérieures */
body .e-con.up-page-hero { padding-block: 60px 72px; }
body .e-con.up-page-hero--compact { padding-block: 56px 64px; }
.up-page-hero__title .elementor-heading-title { margin-bottom: 20px; color: #fff; font-size: clamp(2.2rem, 1.35rem + 2.8vw, 3.75rem); line-height: 1.06; }
.up-page-hero__text .up-lead p { max-width: 660px; }
.up-breadcrumb .up-fil { margin-bottom: 22px; font-size: 13.5px; }
.up-fil ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; color: rgba(255, 255, 255, .62); }
.up-fil li + li::before { content: "/"; margin-right: 6px; opacity: .55; }
.up-fil a { color: rgba(255, 255, 255, .9); text-decoration: none; }
.up-fil a:hover { color: var(--up-gold); }
@media (max-width: 767px) {
	body .e-con.up-page-hero { padding-block: 44px 56px; }
	.up-page-hero__title .elementor-heading-title { font-size: 2rem; }
}
.up-hero-simple { position: relative; overflow: hidden; color: #fff; background: var(--up-hero-bg); padding: 56px 0 60px; }
.up-hero-simple .up-wrap { position: relative; z-index: 1; }
.up-hero-simple h1 { margin: 0; color: #fff; }

/* ---------- Bandeau d'arguments ---------- */
body .e-con.up-trust { background: #fff; border-bottom: 1px solid var(--up-line); }
body .e-con.up-trust__grid { background: var(--up-line); }
body .elementor-widget.up-trust__item { background: #fff; padding: 24px 14px; }
body .up-trust__item.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: center; }
body .up-trust__item .elementor-icon-box-title { margin: 0 0 4px; font: 700 27px/1.1 var(--up-serif); color: var(--up-red-600); }
body .up-trust__item .elementor-icon-box-description { margin: 0; font-size: 13.5px; font-weight: 750; line-height: 1.4; color: var(--up-ink-2); }
@media (min-width: 768px) and (max-width: 1024px) {
	body .up-trust__item:nth-child(-n+3) { grid-column: span 2; }
	body .up-trust__item:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 767px) {
	body .elementor-widget.up-trust__item { padding: 18px 10px; }
	body .up-trust__item:last-child { grid-column: 1 / -1; }
	body .up-trust__item .elementor-icon-box-title { font-size: 21px; }
}

/* ---------- Cartes des services (Boîte d'image) ---------- */
body .elementor-widget.up-card {
	position: relative; display: flex; flex-direction: column; overflow: hidden; height: 100%;
	background: #fff; border: 1px solid var(--up-line); border-radius: 22px; box-shadow: var(--up-shadow-sm);
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
body .elementor-widget.up-card:hover { transform: translateY(-5px); box-shadow: var(--up-shadow); border-color: transparent; }
body .up-card > .elementor-widget-container { height: 100%; }
body .up-card .elementor-image-box-wrapper { display: flex; flex-direction: column; height: 100%; text-align: left; }
body .up-card.elementor-widget-image-box .elementor-image-box-img {
	display: block; width: 100%; margin: 0 !important; aspect-ratio: 16 / 11; overflow: hidden; background: var(--up-sand-2);
}
body .up-card .elementor-image-box-img a { display: block; height: 100%; }
body .up-card .elementor-image-box-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
body .up-card:hover .elementor-image-box-img img { transform: scale(1.06); }
body .up-card .elementor-image-box-content { display: flex; flex-direction: column; flex: 1; width: 100%; padding: 22px 24px 24px; }
body .up-card .elementor-image-box-title { margin: 0 0 8px; font: 750 1.14rem/1.25 var(--up-sans); color: var(--up-navy); }
body .up-card .elementor-image-box-title a { color: inherit; text-decoration: none; }
body .up-card .elementor-image-box-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 22px; }
body .up-card .elementor-image-box-description { margin: 0 0 18px; font-size: 14.5px; line-height: 1.6; color: var(--up-ink-2); }
body .up-card .elementor-image-box-content::after {
	content: "Découvrir"; margin-top: auto; padding-right: 24px; align-self: flex-start;
	font-weight: 800; font-size: 14.5px; color: var(--up-red-700);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f1b14' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") right center / 17px no-repeat;
	transition: padding .2s;
}
body .up-card:hover .elementor-image-box-content::after { padding-right: 30px; }
@media (max-width: 767px) {
	body .up-card.elementor-widget-image-box .elementor-image-box-img { aspect-ratio: 16 / 8.5; }
	body .up-card .elementor-image-box-content { padding: 18px 20px 20px; }
}

/* ---------- Bandeau urgence ---------- */
body .e-con.up-urgence {
	position: relative; overflow: hidden; color: #fff; padding-block: 90px;
	background:
		radial-gradient(700px 420px at 100% 0%, rgba(236, 199, 150, .16), transparent 62%),
		radial-gradient(600px 400px at 0% 100%, rgba(220, 58, 47, .22), transparent 60%),
		linear-gradient(135deg, var(--up-red-950), #3b0b07 55%, #6e150f);
}
.up-urgence__title .elementor-heading-title { margin-bottom: 20px; font-size: clamp(2rem, 1.3rem + 2.4vw, 3.3rem); }
body .e-con.up-urgence__text > .up-actions { margin-top: 30px; }
body .elementor-widget.up-urgence__card {
	height: 100%; padding: 24px 20px; border-radius: 18px;
	background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
	transition: background-color .2s, border-color .2s;
}
body .elementor-widget.up-urgence__card:hover { background: rgba(255, 255, 255, .1); border-color: rgba(236, 199, 150, .45); }
body .up-urgence__card.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-urgence__card .elementor-icon-box-icon { margin: 0; }
body .up-urgence__card .elementor-icon {
	display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px;
	background: rgba(236, 199, 150, .14); color: var(--up-gold); fill: var(--up-gold); font-size: 22px;
}
body .up-urgence__card .elementor-icon-box-title { margin: 0; font: 750 1.08rem/1.3 var(--up-sans); color: #fff; }
@media (max-width: 767px) {
	body .e-con.up-urgence { padding-block: 64px; }
	body .elementor-widget.up-urgence__card { padding: 18px 16px; }
	body .up-urgence__text .up-actions > .elementor-widget, body .up-urgence__text .up-actions .elementor-button { width: 100%; }
}

/* ---------- Panneaux garanties ---------- */
body .e-con.up-panel { background: #fff; border: 1px solid var(--up-line); border-radius: var(--up-r-lg); padding: 46px; box-shadow: var(--up-shadow-sm); }
.up-panel__title .elementor-heading-title { margin-bottom: 14px; font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.85rem); }
body .up-badge-decennale img { display: block; width: 150px; height: auto; filter: drop-shadow(0 18px 24px rgba(19, 33, 63, .25)); }
body .up-badge-decennale.elementor-widget-image { text-align: left; }
@media (max-width: 767px) {
	body .e-con.up-panel { padding: 30px 24px; }
	body .up-badge-decennale img { width: 120px; }
}

/* Liste à coches (Liste d'icônes) */
body .up-checklist .elementor-icon-list-items { display: grid; gap: 13px; margin: 22px 0 0; padding: 0; list-style: none; }
body .up-checklist .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; margin: 0; color: var(--up-ink-2); line-height: 1.5; }
body .up-checklist .elementor-icon-list-icon {
	display: grid; place-items: center; flex: none; width: 23px; height: 23px; margin-top: 1px; border-radius: 50%;
	background: var(--up-red-50); color: var(--up-red-600); fill: var(--up-red-600);
}
body .up-checklist.elementor-widget-icon-list .elementor-icon-list-icon svg { width: 11px; height: 11px; margin: 0; }
body .up-checklist .elementor-icon-list-icon .up-ico { stroke-width: 3.2; }
body .up-checklist .elementor-icon-list-icon + .elementor-icon-list-text { padding: 0; align-self: auto; }
.up-dark .up-checklist .elementor-icon-list-item { color: rgba(255, 255, 255, .86); }
.up-dark .up-checklist .elementor-icon-list-icon { background: rgba(236, 199, 150, .16); color: var(--up-gold); fill: var(--up-gold); }

/* ---------- Matériaux (bandeau défilant) ---------- */
body .elementor-widget.up-marquee {
	overflow: hidden;
	/* Toujours la largeur de son conteneur : sinon, en colonne (mobile, HTML de secours), il prend la largeur
	   de toute sa bande et élargit la page. */
	width: 100%; max-width: 100%; min-width: 0; align-self: stretch;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
body .up-marquee .elementor-icon-list-items.elementor-inline-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 0; padding: 0; list-style: none; }
body .up-marquee .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item {
	display: inline-flex; align-items: center; gap: 12px; margin: 0; padding: 14px 24px; white-space: nowrap;
	background: #fff; border: 1px solid var(--up-line); border-radius: var(--up-pill);
	font: 700 18px/1.2 var(--up-serif); color: var(--up-navy);
}
body .up-marquee .elementor-icon-list-item::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--up-red-600); }
body .up-marquee .elementor-icon-list-item::after { display: none; }
.up-marquee.is-animated .up-marquee__track { display: flex; gap: 14px; width: max-content; animation: up-defile 46s linear infinite; }
body .up-marquee.is-animated .elementor-icon-list-items.elementor-inline-items { flex-wrap: nowrap; justify-content: flex-start; }
.up-marquee.is-animated:hover .up-marquee__track { animation-play-state: paused; }
@keyframes up-defile { to { transform: translateX(calc(-50% - 7px)); } }

/* ---------- Implantation et zone ---------- */
body .e-con.up-card-dark {
	position: relative; overflow: hidden; color: #fff; border-radius: var(--up-r-lg); padding: 42px;
	background: linear-gradient(155deg, var(--up-red-800), var(--up-red-950)); box-shadow: var(--up-shadow);
}
body .e-con.up-card-dark::after {
	content: ""; position: absolute; right: -60px; bottom: -60px; width: 240px; height: 240px; border-radius: 50%;
	background: radial-gradient(circle, rgba(236, 199, 150, .18), transparent 70%); pointer-events: none;
}
.up-card-dark__title .elementor-heading-title { margin-bottom: 14px; font: 700 1.9rem/1.15 var(--up-serif); color: #fff; }
.up-bigphone .elementor-heading-title { margin: 20px 0 4px; font: 850 26px/1.2 var(--up-sans); letter-spacing: .01em; }
.up-bigphone a { color: #fff; text-decoration: none; }
.up-bigphone a:hover { color: var(--up-gold); }
.up-mail a { color: rgba(255, 255, 255, .82) !important; font-weight: 600 !important; }
body .e-con.up-card-dark > .up-actions { margin-top: 22px; position: relative; z-index: 1; }
body .e-con.up-zone-card { background: #fff; border: 1px solid var(--up-line); border-radius: var(--up-r-lg); padding: 42px; box-shadow: var(--up-shadow-sm); }
.up-zone-card__title .elementor-heading-title { margin-bottom: 12px; font: 700 1.7rem/1.15 var(--up-serif); }
body .up-zone-card .up-chips { margin: 22px 0 24px; }
@media (max-width: 767px) {
	body .e-con.up-card-dark, body .e-con.up-zone-card { padding: 30px 24px; }
}

/* Pastilles des communes (code court [up_communes] et listes en ligne) */
body .up-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
body .up-chips .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item {
	margin: 0; padding: 8px 16px; background: #fff; border: 1px solid var(--up-line); border-radius: var(--up-pill);
	font-size: 14px; font-weight: 750; line-height: 1.35; color: var(--up-ink); box-shadow: var(--up-shadow-sm);
}
body .up-chips .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item.is-main { background: var(--up-red-600); border-color: var(--up-red-600); color: #fff; }
body .up-chips .elementor-icon-list-item::after { display: none; }

/* ---------- Galerie ---------- */
body .e-con.up-gallery { grid-auto-rows: 230px; grid-auto-flow: row dense; }
body .elementor-widget.up-gallery__item { position: relative; overflow: hidden; height: 100%; margin: 0; border-radius: 20px; background: var(--up-sand-2); }
body .up-gallery__item--big { grid-column: span 2; grid-row: span 2; }
body .up-gallery__item figure, body .up-gallery__item .wp-caption { position: relative; height: 100%; margin: 0; max-width: none; }
body .up-gallery__item img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .6s; }
body .up-gallery__item:hover img { transform: scale(1.05); }
body .up-gallery__item figcaption {
	position: absolute; left: 12px; right: 12px; bottom: 12px; margin: 0; padding: 9px 13px; border-radius: 12px;
	background: rgba(29, 6, 4, .74); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.35; text-align: left;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s;
}
body .up-gallery__item:hover figcaption, body .up-gallery__item:focus-within figcaption { opacity: 1; transform: none; }
@media (hover: none) { body .up-gallery__item figcaption { opacity: 1; transform: none; } }
@media (max-width: 1024px) { body .e-con.up-gallery { grid-auto-rows: 210px; } }
@media (max-width: 767px) { body .e-con.up-gallery { grid-auto-rows: 160px; } }

/* ---------- Avis Google (accueil) ---------- */
body .e-con.up-gsum {
	width: auto; flex: none; padding: 14px 22px; background: #fff; border: 1px solid var(--up-line);
	border-radius: var(--up-pill); box-shadow: var(--up-shadow-sm);
}
body .up-gsum__logo img { display: block; width: 26px; height: 26px; }
body .up-gsum__logo.elementor-widget-image { text-align: left; }
body .elementor-widget.up-gsum__logo, body .elementor-widget.up-gsum__note, body .elementor-widget.up-gsum__count { width: auto; flex: none; }
.up-gsum__note .elementor-heading-title { font: 700 1.6rem/1 var(--up-serif); color: var(--up-navy); }
.up-gsum__count .elementor-heading-title { font-size: 14.5px; font-weight: 750; line-height: 1.2; color: var(--up-ink-2); }

/* Étoiles (Liste d'icônes en ligne) */
body .elementor-widget.up-stars { width: auto; flex: none; }
body .up-stars .elementor-icon-list-items.elementor-inline-items { display: flex; flex-wrap: nowrap; gap: 2px; margin: 0; padding: 0; list-style: none; }
body .up-stars .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; }
body .up-stars .elementor-icon-list-item::after { display: none; }
body .up-stars .elementor-icon-list-icon { color: #e9a23b; fill: #e9a23b; }
body .up-stars.elementor-widget-icon-list .elementor-icon-list-icon svg { width: 18px; height: 18px; margin: 0; }
body .up-stars--sm.elementor-widget-icon-list .elementor-icon-list-icon svg { width: 14px; height: 14px; }
body .up-stars .elementor-icon-list-icon .up-ico { fill: currentColor; stroke: none; }
body .up-stars .elementor-icon-list-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0 !important; margin: -1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Cartes d'avis */
body .e-con.up-review {
	height: 100%; padding: 24px; background: #fff; border: 1px solid var(--up-line); border-radius: 20px; box-shadow: var(--up-shadow-sm);
}
body .e-con.up-review__who { width: auto; flex: 1 1 auto; min-width: 0; }
body .elementor-widget.up-review__avatar, body .elementor-widget.up-review__g { width: auto; flex: none; }
.up-review__avatar .elementor-heading-title {
	display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
	font: 700 18px/1 var(--up-sans); color: #fff; background: var(--up-red-600);
}
.up-review__avatar--2 .elementor-heading-title { background: var(--up-navy); }
.up-review__avatar--3 .elementor-heading-title { background: var(--up-red-800); }
.up-review__avatar--4 .elementor-heading-title { background: #95201a; }
.up-review__avatar--5 .elementor-heading-title { background: #26406f; }
.up-review__avatar--6 .elementor-heading-title { background: #9a6524; }
.up-review__name .elementor-heading-title { font: 750 15px/1.3 var(--up-sans); color: var(--up-navy); }
body .up-review__g img { display: block; width: 20px; height: 20px; }
body .up-review__g.elementor-widget-image { text-align: right; }
body .elementor-widget.up-review__g { margin-left: auto; }
.up-review__text { font-size: 15px; line-height: 1.62; color: var(--up-ink-2); }
body .e-con.up-review > .up-review__source { margin-top: auto; }
.up-review__source .elementor-heading-title { margin: 0; font-size: 12.5px; font-weight: 700; color: var(--up-muted); }
body .e-con.up-avis > .e-con-inner > .up-actions { margin-top: 6px; }

/* Mobile : les avis défilent au doigt (scroll-snap, sans JavaScript) */
@media (max-width: 767px) {
	body .e-con.up-gsum { padding: 12px 16px; }
	body .e-con.up-reviews {
		grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 85%;
		width: calc(100% + 40px); max-width: none; flex: none; margin-inline: -20px; padding: 2px 20px 10px;
		overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 20px;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	body .e-con.up-reviews::-webkit-scrollbar { display: none; }
	body .e-con.up-review { scroll-snap-align: start; }
}

/* ---------- Texte de référencement et encart ---------- */
.up-prose__title .elementor-heading-title { margin-bottom: .55em; font-size: clamp(1.85rem, 1.25rem + 1.9vw, 2.75rem); }
.up-prose { color: var(--up-ink-2); font-size: 1.02rem; }
.up-prose h2 { margin: 1.4em 0 .5em; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem); }
.up-prose h3 { margin: 1.6em 0 .55em; font: 700 1.5rem/1.2 var(--up-serif); color: var(--up-navy); }
.up-prose > h3:first-child, .up-prose > h2:first-child, .up-prose > .elementor-widget-container > h3:first-child { margin-top: .2em; }
.up-prose a { color: var(--up-red-700); font-weight: 700; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.up-prose strong { color: var(--up-ink); }
.up-prose ul { margin: 0 0 1em; padding-left: 1.2em; }
body .e-con.up-aside {
	position: sticky; top: calc(var(--up-header-h) + 24px); color: #fff;
	background: linear-gradient(160deg, var(--up-red-800), var(--up-red-950));
	border-radius: var(--up-r-lg); padding: 32px 30px; box-shadow: var(--up-shadow);
}
.admin-bar .e-con.up-aside { top: calc(var(--up-header-h) + 56px); }
.up-aside__title .elementor-heading-title { margin: 0 0 12px; font: 700 1.7rem/1.15 var(--up-serif); color: #fff; }
.up-aside .up-text { font-size: 15px; color: rgba(255, 255, 255, .76); }
body .up-aside__links .elementor-icon-list-items { margin: 18px 0 24px; padding: 0; list-style: none; }
body .up-aside__links .elementor-icon-list-item { margin: 0; }
body .up-aside__links .elementor-icon-list-item > a {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 13px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .13); color: #fff; text-decoration: none; font-weight: 650; font-size: 15px;
}
body .up-aside__links .elementor-icon-list-item > a:hover { color: var(--up-gold); }
body .up-aside__links .elementor-icon-list-icon { order: 2; margin-left: auto; opacity: .7; color: inherit; fill: currentColor; }
body .up-aside__links.elementor-widget-icon-list .elementor-icon-list-icon svg { width: 15px; height: 15px; margin: 0; }
body .up-aside__links .elementor-icon-list-icon + .elementor-icon-list-text { padding: 0; }
@media (max-width: 1024px) { body .e-con.up-aside { position: relative; top: 0; } }

/* ---------- FAQ (Accordéon) ---------- */
body .up-faq { --n-accordion-padding: 0px; --n-accordion-border-width: 0px; --n-accordion-item-title-space-between: 0px; }
body .up-faq.elementor-widget-n-accordion .e-n-accordion-item {
	display: block; margin: 0 0 12px; background: #fff; border: 1px solid var(--up-line); border-radius: 18px;
	box-shadow: var(--up-shadow-sm); transition: border-color .2s;
}
body .up-faq.elementor-widget-n-accordion .e-n-accordion-item:last-child { margin-bottom: 0; }
body .up-faq .e-n-accordion-item[open] { border-color: rgba(196, 38, 29, .35); }
body .up-faq.elementor-widget-n-accordion .e-n-accordion-item-title {
	position: relative; display: flex; align-items: center; list-style: none; cursor: pointer;
	padding: 20px 64px 20px 24px; border: 0; border-radius: 18px; background: transparent; color: var(--up-navy);
}
body .up-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
body .up-faq.elementor-widget-n-accordion .e-n-accordion-item-title-text { margin: 0; font: 750 16px/1.4 var(--up-sans); color: var(--up-navy); }
body .up-faq.elementor-widget-n-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--up-red-700); }
body .up-faq .e-n-accordion-item-title::after {
	content: ""; position: absolute; right: 22px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%;
	background: var(--up-red-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4261d' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
	transition: transform .25s;
}
body .up-faq .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(45deg); }
body .up-faq .e-n-accordion-item > .e-con { border: 0; padding: 0 24px 22px; color: var(--up-ink-2); }
body .up-faq .up-faq__answer p { margin: 0 0 .8em; }

/* ---------- Présentation en deux colonnes (texte + photo ou carte) ---------- */
.up-split__title .elementor-heading-title { margin-bottom: 16px; font-size: clamp(1.85rem, 1.25rem + 1.9vw, 2.75rem); }
body .elementor-widget.up-photo--split {
	border-radius: var(--up-r-lg); aspect-ratio: 4 / 3.4; box-shadow: var(--up-shadow); background: var(--up-sand-2);
}
body .up-split__text .up-btn--link { margin-top: 24px; }
@media (min-width: 1025px) {
	body .up-split--reverse .up-photo--split, body .up-split--reverse .up-map--split { order: -1; }
}
@media (max-width: 1024px) { body .elementor-widget.up-photo--split, body .elementor-widget.up-map--split { max-width: 640px; } }

/* ---------- Cartes à icône (cas fréquents) ---------- */
body .elementor-widget.up-feature {
	height: 100%; background: #fff; border: 1px solid var(--up-line); border-radius: 20px; padding: 28px 26px;
	box-shadow: var(--up-shadow-sm); transition: transform .25s, box-shadow .25s;
}
body .elementor-widget.up-feature:hover { transform: translateY(-3px); box-shadow: var(--up-shadow); }
body .up-feature.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-feature .elementor-icon-box-icon { margin: 0; }
body .up-feature .elementor-icon {
	display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px;
	background: var(--up-red-50); color: var(--up-red-600); fill: var(--up-red-600); font-size: 22px;
}
body .up-feature .elementor-icon-box-title { margin: 0 0 8px; font: 750 1.08rem/1.3 var(--up-sans); color: var(--up-navy); }
body .up-feature .elementor-icon-box-title a { color: inherit; text-decoration: none; }
body .up-feature .elementor-icon-box-description { margin: 0; font-size: 14.8px; line-height: 1.6; color: var(--up-ink-2); }
body .up-feature .elementor-icon-box-description a { display: inline-block; margin-top: 10px; color: var(--up-red-700); font-weight: 800; }

/* ---------- Étapes (fond sombre) ---------- */
body .e-con.up-steps { counter-reset: up-etape; }
body .elementor-widget.up-step {
	counter-increment: up-etape; height: 100%; padding: 26px 22px; border-radius: 20px;
	background: rgba(255, 255, 255, .055); border: 1px solid rgba(255, 255, 255, .12);
}
body .up-step.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-step .elementor-icon-box-wrapper::before {
	content: counter(up-etape, decimal-leading-zero); display: block; margin-bottom: 14px;
	font: 700 32px/1 var(--up-serif); color: var(--up-gold);
}
body .up-step .elementor-icon-box-title { margin: 0 0 6px; font: 750 1.05rem/1.3 var(--up-sans); color: #fff; }
body .up-step .elementor-icon-box-description { margin: 0; font-size: 14.5px; line-height: 1.55; color: rgba(255, 255, 255, .74); }

/* ---------- Bandeau d'appel ---------- */
body .e-con.up-cta-band {
	position: relative; overflow: hidden; padding: 46px 50px; border-radius: var(--up-r-lg); color: #fff;
	background: linear-gradient(115deg, var(--up-red-700), var(--up-red-600)); box-shadow: 0 30px 60px -30px rgba(196, 38, 29, .8);
}
body .e-con.up-cta-band::before {
	content: ""; position: absolute; inset: 0; display: block; pointer-events: none;
	background: var(--up-motif) repeat; background-size: 44px 44px; opacity: .08; border: 0;
}
body .e-con.up-cta-band > * { position: relative; }
body .e-con.up-cta__body { width: auto; flex: 1 1 420px; max-width: 640px; }
.up-cta__title .elementor-heading-title { margin: 0; color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.35rem); }
.up-cta__text { color: rgba(255, 255, 255, .88); }
body .e-con.up-cta-band > .up-actions { width: auto; }
@media (max-width: 767px) {
	body .e-con.up-cta-band { padding: 32px 24px; }
	body .e-con.up-cta-band > .up-actions, body .up-cta-band .up-actions > .elementor-widget, body .up-cta-band .up-actions .elementor-button { width: 100%; }
}

/* ---------- Autres services et communes ---------- */
body .up-pills .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; padding: 0; list-style: none; }
body .up-pills .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; }
body .up-pills .elementor-icon-list-item > a {
	display: inline-flex; align-items: center; gap: 8px; padding: 10px 17px; border-radius: var(--up-pill);
	background: #fff; border: 1px solid var(--up-line); text-decoration: none; font-weight: 700; font-size: 14.5px; color: var(--up-navy);
	transition: border-color .15s, color .15s;
}
body .up-pills .elementor-icon-list-item > a:hover { border-color: var(--up-red-600); color: var(--up-red-700); }
body .up-pills .elementor-icon-list-icon { color: var(--up-red-600); fill: var(--up-red-600); }
body .up-pills.elementor-widget-icon-list .elementor-icon-list-icon svg { width: 16px; height: 16px; margin: 0; }
body .up-pills .elementor-icon-list-icon + .elementor-icon-list-text { padding: 0; }
body .up-pills .elementor-icon-list-item::after { display: none; }
body .e-con.up-maillage .up-chips { margin-bottom: 6px; }

/* ---------- Coordonnées (page Contact) ---------- */
body .elementor-widget.up-contact-card {
	position: relative; height: 100%; padding: 26px; background: #fff; border: 1px solid var(--up-line); border-radius: 20px;
	box-shadow: var(--up-shadow-sm); transition: border-color .2s;
}
body .elementor-widget.up-contact-card:hover { border-color: var(--up-red-600); }
body .up-contact-card.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-contact-card .elementor-icon-box-icon { margin: 0; }
body .up-contact-card .elementor-icon {
	display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px;
	background: var(--up-red-50); color: var(--up-red-600); fill: var(--up-red-600); font-size: 20px;
}
body .up-contact-card .elementor-icon-box-title { margin: 0; font-size: 13px; font-weight: 650; line-height: 1.4; color: var(--up-muted); }
body .up-contact-card .elementor-icon-box-title a { color: inherit; text-decoration: none; }
body .up-contact-card .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; border-radius: 20px; }
body .up-contact-card .elementor-icon-box-description { margin: 2px 0 0; font-weight: 800; font-size: 16.5px; line-height: 1.4; color: var(--up-navy); word-break: break-word; }

/* ---------- Carte Google ---------- */
body .elementor-widget.up-map { overflow: hidden; border-radius: var(--up-r-lg); border: 1px solid var(--up-line); box-shadow: var(--up-shadow-sm); background: var(--up-sand-2); }
body .up-map .elementor-custom-embed { line-height: 0; }
body .up-map iframe { display: block; width: 100%; height: 460px; border: 0; }
body .up-map--split iframe { height: 440px; }
@media (max-width: 767px) { body .up-map iframe, body .up-map--split iframe { height: 340px; } }

/* ---------- Secteurs (page Zone d'intervention) ---------- */
body .e-con.up-secteur { background: #fff; border: 1px solid var(--up-line); border-radius: 22px; padding: 30px; box-shadow: var(--up-shadow-sm); }
body .up-secteur__head.elementor-widget-icon-box .elementor-icon-box-wrapper { text-align: left; }
body .up-secteur__head .elementor-icon-box-icon { margin: 0; }
body .up-secteur__head .elementor-icon {
	display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px;
	background: var(--up-red-50); color: var(--up-red-600); fill: var(--up-red-600); font-size: 20px;
}
body .up-secteur__head .elementor-icon-box-title { margin: 0 0 8px; font: 700 1.45rem/1.2 var(--up-serif); color: var(--up-navy); }
body .up-secteur__head .elementor-icon-box-description { margin: 0; font-size: 15px; line-height: 1.6; color: var(--up-ink-2); }
body .up-secteur .up-chips .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { box-shadow: none; background: var(--up-cream); }
@media (max-width: 767px) { body .e-con.up-secteur { padding: 24px 20px; } }

/* ---------- Bloc devis (sombre) et formulaire ---------- */
.up-devis {
	position: relative; color: #fff;
	background: radial-gradient(800px 500px at 0% 0%, rgba(196, 38, 29, .22), transparent 60%), var(--up-red-950);
}
.up-devis--global { padding: 100px 0; }
.up-devis__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 30px; align-items: start; }
.up-devis__info, body .e-con.up-devis__info {
	border-radius: var(--up-r-lg); padding: 42px;
	background: linear-gradient(160deg, var(--up-red-800), #3a0b08); border: 1px solid rgba(255, 255, 255, .07);
}
.up-devis__info h2, .up-devis__title .elementor-heading-title { margin-bottom: 16px; color: #fff; font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.85rem); }
.up-contact-list { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 20px; }
.up-contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.up-contact-list__ico { width: 42px; height: 42px; border-radius: 13px; background: rgba(255, 255, 255, .08); color: var(--up-gold); display: grid; place-items: center; flex: none; }
.up-contact-list__ico .up-ico { width: 20px; height: 20px; }
.up-contact-list__label { display: block; font-size: 12.5px; color: rgba(255, 255, 255, .62); }
.up-contact-list__value { display: block; font-weight: 800; font-size: 17px; line-height: 1.35; color: #fff; text-decoration: none; word-break: break-word; }
a.up-contact-list__value:hover { color: var(--up-gold); }
.up-form-card, body .e-con.up-form-card { background: #fff; color: var(--up-ink); border-radius: var(--up-r-lg); padding: 38px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); }
.up-dark .up-form-card h3, .up-dark .up-form-card .elementor-heading-title { margin: 0 0 6px; font: 700 1.6rem/1.2 var(--up-serif); color: var(--up-navy); }
.up-form-card__sub-txt, .up-form-card__sub { margin-bottom: 24px; color: var(--up-muted); font-size: 14.5px; }
.up-dark .up-form-card .up-text, .up-dark .up-form-card__sub { color: var(--up-muted); }
.up-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.up-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.up-field--full { grid-column: 1 / -1; }
.up-field label { font-weight: 750; font-size: 13.5px; color: var(--up-navy); }
.up-req { color: var(--up-red-600); }
.up-field input, .up-field select, .up-field textarea {
	width: 100%; padding: 13px 15px; border: 1.5px solid #d9d0c2; border-radius: 13px; background: #fffefb;
	font: inherit; font-size: 15.5px; color: var(--up-ink); transition: border-color .15s, box-shadow .15s;
}
.up-field select {
	appearance: none; -webkit-appearance: none; padding-right: 42px;
	background: #fffefb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4261d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center / 18px no-repeat;
}
.up-field textarea { min-height: 136px; resize: vertical; }
.up-field input:focus, .up-field select:focus, .up-field textarea:focus { outline: none; border-color: var(--up-red-600); box-shadow: 0 0 0 4px rgba(196, 38, 29, .14); }
.up-field input::placeholder, .up-field textarea::placeholder { color: #9b958b; }
.up-consent { display: flex; gap: 11px; align-items: flex-start; font-size: 13.5px; font-weight: 400 !important; color: var(--up-ink-2) !important; line-height: 1.5; }
.up-consent input { width: 19px; height: 19px; margin-top: 1px; padding: 0; accent-color: var(--up-red-600); flex: none; }
.up-consent a { color: var(--up-red-700); font-weight: 700; }
.up-piege { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.up-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 20px; }
.up-form-note { margin: 0; font-size: 12.5px; color: var(--up-muted); flex: 1 1 200px; }
.up-form-status { margin-top: 16px; padding: 14px 16px; border-radius: 13px; font-weight: 650; font-size: 14.5px; line-height: 1.5; background: var(--up-sand); color: var(--up-ink-2); }
.up-form-status.is-ok { background: #eaf6ee; color: #14532d; }
.up-form-status.is-err { background: var(--up-red-50); color: var(--up-red-800); }
.up-form-status a { color: inherit; font-weight: 800; }
.up-devis-form { position: relative; }
@media (max-width: 960px) { .up-devis__grid { grid-template-columns: 1fr; } }
@media (max-width: 767px) {
	.up-devis--global { padding: 72px 0; }
	.up-devis__info, body .e-con.up-devis__info, .up-form-card, body .e-con.up-form-card { padding: 28px 22px; }
	.up-form-grid { grid-template-columns: 1fr; }
	.up-form-actions .up-button { width: 100%; }
}

/* ---------- Textes légaux et pages simples ---------- */
.up-legal { color: var(--up-ink-2); }
.up-legal h2, .up-legal p { max-width: 860px; }
.up-legal h2 { margin: 1.8em 0 .5em; font-size: 1.7rem; }
.up-legal h2:first-child, .up-legal > .elementor-widget-container > h2:first-child { margin-top: 0; }
.up-legal a { color: var(--up-red-700); font-weight: 700; }
.up-legal strong { color: var(--up-ink); }
.up-page-default { padding: 70px 0 90px; }
.up-prose--page { max-width: 860px; }
.up-simple { padding: 90px 0; text-align: center; min-height: 52vh; display: grid; place-items: center; }
.up-simple__ico { width: 84px; height: 84px; border-radius: 26px; margin: 0 auto 26px; display: grid; place-items: center; background: var(--up-red-50); color: var(--up-red-600); }
.up-simple__ico .up-ico { width: 40px; height: 40px; }
.up-simple .up-lead-txt { max-width: 560px; margin-inline: auto; }
.up-simple__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* ---------- Pied de page ---------- */
.up-footer { background: var(--up-red-950); color: #d8c7bf; font-size: 15px; padding-top: 76px; border-top: 1px solid rgba(255, 255, 255, .08); }
.up-footer__grid { display: grid; grid-template-columns: 1.25fr 1.2fr 1fr 1fr; gap: 44px; }
.up-footer .up-brand__name { color: #fff; }
.up-footer .up-brand__sub { color: var(--up-gold); }
.up-footer .up-brand__sub::after { background-image: radial-gradient(circle, var(--up-gold) 1.2px, transparent 1.6px); }
.up-footer__about p { margin: 20px 0 16px; line-height: 1.65; color: #cdbab1; max-width: 340px; }
.up-footer__avis { display: inline-flex; align-items: center; gap: 8px; color: var(--up-gold); font-weight: 750; text-decoration: none; }
.up-footer__avis .up-ico { width: 17px; height: 17px; }
.up-footer__avis:hover { color: #fff; }
.up-footer__title { margin: 6px 0 20px; font: 850 12.5px/1.3 var(--up-sans); letter-spacing: .18em; text-transform: uppercase; color: #fff; }
.up-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.up-footer a { color: #d8c7bf; text-decoration: none; }
.up-footer a:hover { color: #fff; }
.up-footer__zone { margin: 0 0 10px; color: #fff; }
.up-footer__communes { margin: 0 0 14px; font-size: 14px; line-height: 1.7; color: #bba79e; }
.up-footer__more { display: inline-flex; align-items: center; gap: 6px; color: var(--up-gold) !important; font-weight: 750; }
.up-footer__more .up-ico { width: 16px; height: 16px; }
.up-footer__phone { display: inline-block; margin: 0 0 14px; font-size: 21px; font-weight: 850; color: #fff !important; letter-spacing: .01em; }
.up-footer__bottom {
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px 28px; margin-top: 60px; padding: 24px 0 28px;
	border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13.5px; color: #a8948b;
}
.up-footer__bottom a { color: #c9b6ad; }
@media (max-width: 1000px) { .up-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .up-footer__grid { grid-template-columns: 1fr; gap: 34px; } .up-footer { padding-top: 56px; } }

/* ---------- Barre d'appel mobile ---------- */
.up-mobile-cta { display: none; }
@media (max-width: 760px) {
	.up-mobile-cta {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 252, 248, .97); border-top: 1px solid var(--up-line);
		-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	}
	.up-mobile-cta .up-button { padding: 13px 10px; font-size: 15px; }
	body.up-theme { padding-bottom: 76px; }
	.elementor-editor-active .up-mobile-cta, body.up-menu-open .up-mobile-cta { display: none; }
}

/* ---------- Animations et impression ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
	.up-topbar, .up-header, .up-mobile-cta, .up-devis--global, .up-actions { display: none !important; }
	body { background: #fff; }
}
