/* ==========================================================================
   DRSI — design system (Astra child theme)
   Blue palette, Fraunces (headings) + Inter (text), sharp corners, light shadows.
   Layout helpers are CSS classes set on Elementor containers/widgets
   (Avancé → Classes CSS), so every text and image stays editable in Elementor.
   ========================================================================== */

@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/fraunces-latin.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/inter-latin.woff2") format("woff2"); }

:root {
	--drsi-navy: #0a2342;
	--drsi-primary: #104983;
	--drsi-blue: #1a6fb5;
	--drsi-sky: #eaf2fa;
	--drsi-ink: #0e1b2b;
	--drsi-text: #44525f;
	--drsi-muted: #5d6b79;
	--drsi-line: #dde4eb;
	--drsi-bg: #f4f7fa;
	--drsi-radius: 6px;
	--drsi-radius-sm: 4px;
	--drsi-shadow: 0 1px 2px rgba(14, 27, 43, .05);
	--drsi-shadow-lg: 0 18px 40px -18px rgba(14, 27, 43, .28);
	--drsi-ease: cubic-bezier(.2, .7, .2, 1);
	--drsi-font-head: "Fraunces", Georgia, "Times New Roman", serif;
	--drsi-font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--drsi-container: 1240px;
	--drsi-gutter: 24px;
	--drsi-section: clamp(80px, 10vw, 136px);
	--drsi-header-h: 84px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--drsi-header-h) + 16px); }
body { background: #fff; color: var(--drsi-text); font-family: var(--drsi-font-body); font-size: 17px; line-height: 1.7; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4, h5, h6, .entry-title { color: var(--drsi-ink); font-family: var(--drsi-font-head); font-weight: 500; letter-spacing: -.015em; }
a { color: var(--drsi-primary); transition: color .2s; }
::selection { background: rgba(26, 111, 181, .18); }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--drsi-blue); outline-offset: 3px; }

/* ---------- Header (Astra builder) ---------- */
#masthead { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 999; background: #fff; transition: background-color .4s var(--drsi-ease), box-shadow .4s var(--drsi-ease); }
#masthead.is-scrolled { box-shadow: 0 1px 0 var(--drsi-line); }
#masthead .ast-primary-header-bar, #masthead .ast-above-header-bar { background: transparent !important; border: 0 !important; }
#ast-desktop-header .site-primary-header-wrap { height: var(--drsi-header-h); min-height: var(--drsi-header-h); }
#masthead .ast-container, #masthead .site-primary-header-wrap { max-width: calc(var(--drsi-container) + 2 * var(--drsi-gutter)); padding-inline: var(--drsi-gutter); }
#masthead .site-branding, #ast-mobile-header .site-branding { padding: 0 !important; }
#masthead .custom-logo-link { display: inline-flex; align-items: center; line-height: 0; border-radius: var(--drsi-radius-sm); transition: background-color .4s var(--drsi-ease), padding .4s var(--drsi-ease); }
#masthead .custom-logo { width: auto; max-height: 50px; }
#ast-desktop-header .main-header-menu > .menu-item > .menu-link { position: relative; padding: 0 15px; color: var(--drsi-ink) !important; font: 500 15px/var(--drsi-header-h) var(--drsi-font-body); transition: color .25s; }
#ast-desktop-header .main-header-menu > .menu-item > .menu-link::after { content: ""; position: absolute; left: 15px; right: 15px; bottom: 26px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--drsi-ease); }
#ast-desktop-header .main-header-menu > .menu-item:hover > .menu-link::after,
#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link::after,
#ast-desktop-header .main-header-menu > .current-menu-ancestor > .menu-link::after { transform: scaleX(1); }
#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link, #ast-desktop-header .main-header-menu > .menu-item > .menu-link:hover { color: var(--drsi-primary) !important; }
#masthead .ast-builder-button-wrap .ast-custom-button {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px !important; border: 1px solid var(--drsi-primary) !important; border-radius: var(--drsi-radius-sm) !important;
	background: var(--drsi-primary) !important; color: #fff !important; font: 500 15px/1 var(--drsi-font-body) !important; transition: background-color .25s, border-color .25s, color .25s;
}
#masthead .ast-builder-button-wrap .ast-custom-button:hover { background: var(--drsi-navy) !important; border-color: var(--drsi-navy) !important; }
#masthead .ast-header-button-1 { margin-left: 10px; }
#ast-desktop-header .drsi-mobile-only { display: none !important; }

/* Mobile header */
#ast-mobile-header .ast-primary-header-bar, #ast-mobile-header .ast-main-header-wrap { background: transparent !important; }
#ast-mobile-header .site-primary-header-wrap { min-height: 72px; }
#ast-mobile-header .custom-logo { max-height: 42px; width: auto; }
#ast-mobile-header .menu-toggle { display: grid !important; place-items: center; width: 44px; height: 44px; padding: 0 !important; color: var(--drsi-ink) !important; background: #fff !important; border: 1px solid var(--drsi-line) !important; border-radius: var(--drsi-radius-sm) !important; }
#ast-mobile-header .menu-toggle svg { width: 20px; height: 20px; fill: currentColor; }

/* Mobile menu: full-screen navy panel (Astra "full width" popup) */
.ast-mobile-popup-drawer .ast-mobile-popup-overlay { background: rgba(10, 35, 66, .5); }
.ast-mobile-popup-drawer .ast-mobile-popup-inner { width: 100% !important; max-width: none !important; background: var(--drsi-navy) !important; color: #fff; }
.ast-mobile-popup-drawer .ast-mobile-popup-header { padding: 18px 20px !important; }
.ast-mobile-popup-drawer .menu-toggle-close { display: grid !important; place-items: center; width: 44px; height: 44px; padding: 0 !important; color: #fff !important; background: transparent !important; border: 1px solid rgba(255, 255, 255, .3) !important; border-radius: var(--drsi-radius-sm); }
.ast-mobile-popup-drawer .menu-toggle-close svg { fill: #fff !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-content { padding: 8px 24px 32px !important; }
.ast-mobile-popup-drawer .main-header-menu, .ast-mobile-popup-drawer .main-navigation ul { background: transparent !important; border: 0 !important; }
.ast-mobile-popup-drawer .main-header-menu .menu-item { border: 0 !important; }
.ast-mobile-popup-drawer .main-header-menu .menu-link { display: block; padding: 14px 0 !important; border: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .12) !important; background: transparent !important; color: #fff !important; font: 500 30px/1.15 var(--drsi-font-head) !important; letter-spacing: -.015em; }
.ast-mobile-popup-drawer .main-header-menu .current-menu-item > .menu-link { color: #9cc3ea !important; }
.ast-mobile-popup-drawer.active .main-header-menu > .menu-item { animation: drsi-rise .6s var(--drsi-ease) both; }
.ast-mobile-popup-drawer.active .main-header-menu > .menu-item:nth-child(2) { animation-delay: .05s; }
.ast-mobile-popup-drawer.active .main-header-menu > .menu-item:nth-child(3) { animation-delay: .1s; }
.ast-mobile-popup-drawer.active .main-header-menu > .menu-item:nth-child(4) { animation-delay: .15s; }
.ast-mobile-popup-drawer.active .main-header-menu > .menu-item:nth-child(5) { animation-delay: .2s; }
.ast-mobile-popup-drawer .ast-header-html-2 { margin-top: 32px; }
.drsi-mmenu { display: grid; gap: 18px; color: rgba(255, 255, 255, .78); font: 400 15px/1.5 var(--drsi-font-body); }
.drsi-mmenu a { color: #fff !important; text-decoration: none; }
.drsi-mmenu__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.drsi-mmenu__cta a { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; border-radius: var(--drsi-radius-sm); font-weight: 500; }
.drsi-mmenu__cta a:first-child { background: #fff; color: var(--drsi-navy) !important; }
.drsi-mmenu__cta a:last-child { border: 1px solid rgba(255, 255, 255, .45); }
.drsi-mmenu .drsi-lang { border-color: rgba(255, 255, 255, .35); width: max-content; }
.drsi-mmenu .drsi-lang__btn { color: rgba(255, 255, 255, .8); padding: 10px 14px; }
.drsi-mmenu .drsi-lang__btn + .drsi-lang__btn { border-left-color: rgba(255, 255, 255, .35); }
.drsi-mmenu .drsi-lang__btn[aria-pressed="true"] { background: #fff; color: var(--drsi-navy); }

/* Language switcher FR / EN ([drsi_langues] in Astra "HTML 1"); GTranslate's own widget stays hidden. */
.ast-header-html-1 { display: flex; align-items: center; }
.ast-header-html-1 .gtranslate_wrapper, .ast-header-html-1 .gt_switcher, #gt_float_wrapper { display: none !important; }
#ast-desktop-header .ast-header-html-1 { margin: 0 4px 0 10px; }
#ast-mobile-header .ast-header-html-1 { margin-right: 10px; }
.drsi-lang { display: inline-flex; align-items: stretch; border: 1px solid var(--drsi-line); border-radius: var(--drsi-radius-sm); overflow: hidden; }
.drsi-lang__btn { appearance: none; margin: 0; padding: 8px 10px; border: 0; border-radius: 0; background: transparent; color: var(--drsi-muted); font: 600 12.5px/1 var(--drsi-font-body); letter-spacing: .06em; cursor: pointer; transition: background-color .25s, color .25s; }
.drsi-lang__btn + .drsi-lang__btn { border-left: 1px solid var(--drsi-line); }
.drsi-lang__btn:hover { color: var(--drsi-ink); background: var(--drsi-bg); }
.drsi-lang__btn[aria-pressed="true"] { background: var(--drsi-primary); color: #fff; }
.drsi-has-hero #masthead:not(.is-scrolled) .drsi-lang { border-color: rgba(255, 255, 255, .45); }
.drsi-has-hero #masthead:not(.is-scrolled) .drsi-lang__btn { color: rgba(255, 255, 255, .8); }
.drsi-has-hero #masthead:not(.is-scrolled) .drsi-lang__btn + .drsi-lang__btn { border-left-color: rgba(255, 255, 255, .45); }
.drsi-has-hero #masthead:not(.is-scrolled) .drsi-lang__btn[aria-pressed="true"] { background: #fff; color: var(--drsi-navy); }
/* Google Translate injects a top bar and shifts the page: keep the layout untouched. */
body { top: 0 !important; }
.skiptranslate iframe, #goog-gt-tt, .goog-te-banner-frame, .goog-te-balloon-frame { display: none !important; visibility: hidden !important; }
font[style] { background: none !important; box-shadow: none !important; }
@media (max-width: 1240px) {
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link { padding: 0 10px; font-size: 14.5px; }
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link::after { left: 10px; right: 10px; }
	#masthead .ast-builder-button-wrap .ast-custom-button { padding: 0 14px !important; }
}
@media (max-width: 1080px) { #ast-desktop-header .ast-header-button-1 { display: none; } }

/* Transparent header over a hero */
.drsi-has-hero .site-content { margin-top: calc(-1 * var(--drsi-header-h)); }
@media (max-width: 921px) { .drsi-has-hero .site-content { margin-top: -72px; } }
.drsi-has-hero #masthead:not(.is-scrolled) { background: transparent; }
.drsi-has-hero #masthead:not(.is-scrolled) #ast-desktop-header .main-header-menu > .menu-item > .menu-link { color: #fff !important; }
.drsi-has-hero #masthead:not(.is-scrolled) .ast-custom-button { background: #fff !important; border-color: #fff !important; color: var(--drsi-navy) !important; }
.drsi-has-hero #masthead:not(.is-scrolled) .custom-logo-link { background: #fff; padding: 5px 9px; }

/* ---------- Astra layout reset for Elementor pages ---------- */
.elementor-page .site-content > .ast-container { max-width: none; padding: 0; }
.ast-page-builder-template .site-content > .ast-container { display: block; }

/* ---------- Elementor: containers ---------- */
.e-con.drsi-sec { --padding-top: var(--drsi-section); --padding-bottom: var(--drsi-section); --padding-left: var(--drsi-gutter); --padding-right: var(--drsi-gutter); }
.e-con.drsi-sec--tight { --padding-top: clamp(56px, 7vw, 88px); --padding-bottom: clamp(56px, 7vw, 88px); }
.e-con.drsi-sec--alt { background-color: var(--drsi-bg); }
.e-con.drsi-sec--dark { background-color: var(--drsi-navy); color: rgba(255, 255, 255, .78); }
.e-con.drsi-sec > .e-con-inner { max-width: var(--drsi-container); }

.e-con.drsi-cols-2, .e-con.drsi-cols-3, .e-con.drsi-cols-4 { display: grid !important; gap: 48px 28px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.drsi-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.drsi-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.e-con.drsi-cols-2 > .e-con, .e-con.drsi-cols-3 > .e-con, .e-con.drsi-cols-4 > .e-con { --width: 100%; width: 100%; }
@media (max-width: 1024px) { .e-con.drsi-cols-4, .e-con.drsi-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .e-con.drsi-cols-2, .e-con.drsi-cols-3, .e-con.drsi-cols-4 { grid-template-columns: 1fr; gap: 36px; } }

.e-con.drsi-split { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 104px); align-items: center; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-split--wide-left { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.e-con.drsi-split--wide-right { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.e-con.drsi-split--top { align-items: start; }
.e-con.drsi-split > .e-con, .e-con.drsi-split > .elementor-widget { --width: 100%; width: 100%; min-width: 0; }
@media (max-width: 960px) { .e-con.drsi-split, .e-con.drsi-split--wide-left, .e-con.drsi-split--wide-right { grid-template-columns: 1fr; } }

.e-con.drsi-col { --gap: 18px; --row-gap: 18px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-head { --gap: 16px; --row-gap: 16px; max-width: 720px; margin-bottom: clamp(40px, 5vw, 64px); --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-head--split { max-width: none; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px clamp(40px, 7vw, 104px); align-items: end; }
.e-con.drsi-head--split > .elementor-widget { width: 100%; }
@media (max-width: 960px) { .e-con.drsi-head--split { grid-template-columns: 1fr; } }
.e-con.drsi-head--row { max-width: none; display: flex; flex-direction: row !important; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; --gap: 20px; }
.e-con.drsi-head--row > .e-con { --width: auto; width: auto; flex: 1 1 420px; }
.e-con.drsi-head--row > .elementor-widget { width: auto; }

.e-con.drsi-actions { flex-direction: row !important; flex-wrap: wrap; align-items: center; --gap: 12px; --row-gap: 12px; --padding-top: 10px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-actions > .elementor-widget { width: auto; }

/* ---------- Elementor: typography ---------- */
body .elementor .drsi-kicker .elementor-heading-title { color: var(--drsi-blue); font: 500 14px/1.4 var(--drsi-font-body); letter-spacing: .02em; }
body .elementor .drsi-sec--dark .drsi-kicker .elementor-heading-title, body .elementor .drsi-hero .drsi-kicker .elementor-heading-title { color: #9cc3ea; }
body .elementor .drsi-title .elementor-heading-title { color: var(--drsi-ink); font: 500 clamp(32px, 3.8vw, 50px)/1.1 var(--drsi-font-head); letter-spacing: -.02em; text-wrap: balance; }
body .elementor .drsi-title--sm .elementor-heading-title { font-size: clamp(26px, 2.8vw, 36px); }
body .elementor .drsi-sec--dark .drsi-title .elementor-heading-title, body .elementor .drsi-hero .drsi-title .elementor-heading-title { color: #fff; }
body .elementor .drsi-h3 .elementor-heading-title { color: var(--drsi-ink); font: 500 23px/1.3 var(--drsi-font-head); letter-spacing: -.01em; }
body .elementor .drsi-h4 .elementor-heading-title { color: var(--drsi-ink); font: 600 17px/1.4 var(--drsi-font-body); }
body .elementor .drsi-sec--dark .drsi-h3 .elementor-heading-title, body .elementor .drsi-sec--dark .drsi-h4 .elementor-heading-title { color: #fff; }
body .elementor .drsi-lead, body .elementor .drsi-lead p { color: var(--drsi-text); font-size: clamp(17px, 1.35vw, 19px); line-height: 1.7; }
body .elementor .drsi-sec--dark .drsi-lead, body .elementor .drsi-sec--dark .drsi-lead p { color: rgba(255, 255, 255, .75); }
body .elementor .drsi-text, body .elementor .drsi-text p { color: var(--drsi-text); font-size: 16.5px; line-height: 1.75; }
body .elementor .drsi-sec--dark .drsi-text, body .elementor .drsi-sec--dark .drsi-text p { color: rgba(255, 255, 255, .72); }
body .elementor .drsi-text p:last-child, body .elementor .drsi-lead p:last-child { margin-bottom: 0; }
body .elementor .drsi-text strong { color: var(--drsi-ink); font-weight: 600; }
body .elementor .drsi-note, body .elementor .drsi-note p { color: var(--drsi-muted); font-size: 15px; line-height: 1.6; }

/* ---------- Elementor: buttons (class on the Button widget) ---------- */
body .elementor :is(.drsi-btn, .drsi-btn-light, .drsi-btn-ghost, .drsi-btn-outline) .elementor-button {
	display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 26px; border-radius: var(--drsi-radius-sm); border: 1px solid transparent;
	font: 500 15.5px/1 var(--drsi-font-body); letter-spacing: .01em; transition: background-color .3s var(--drsi-ease), color .3s var(--drsi-ease), border-color .3s var(--drsi-ease);
}
body .elementor .drsi-btn .elementor-button { background: var(--drsi-primary); border-color: var(--drsi-primary); color: #fff; }
body .elementor .drsi-btn .elementor-button:hover { background: var(--drsi-navy); border-color: var(--drsi-navy); color: #fff; }
body .elementor .drsi-btn-light .elementor-button { background: #fff; border-color: #fff; color: var(--drsi-navy); }
body .elementor .drsi-btn-light .elementor-button:hover { background: var(--drsi-sky); border-color: var(--drsi-sky); color: var(--drsi-navy); }
body .elementor .drsi-btn-ghost .elementor-button { background: transparent; border-color: rgba(255, 255, 255, .5); color: #fff; }
body .elementor .drsi-btn-ghost .elementor-button:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }
body .elementor .drsi-btn-outline .elementor-button { background: transparent; border-color: var(--drsi-line); color: var(--drsi-primary); }
body .elementor .drsi-btn-outline .elementor-button:hover { border-color: var(--drsi-primary); color: var(--drsi-primary); }
body .elementor .drsi-textlink .elementor-button { position: relative; padding: 0 0 4px; border-radius: 0; background: none; color: var(--drsi-primary); font: 500 15.5px/1.4 var(--drsi-font-body); }
body .elementor .drsi-textlink .elementor-button::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(.3); transform-origin: left; transition: transform .45s var(--drsi-ease); }
body .elementor .drsi-textlink .elementor-button:hover::after, body .elementor .drsi-card-link:hover .drsi-textlink .elementor-button::after { transform: scaleX(1); }
body .elementor .drsi-sec--dark .drsi-textlink .elementor-button { color: #fff; }

/* ---------- Hero ---------- */
/* Height follows the screen: never cramped, never a wall of empty sky on large monitors. Content is centred. */
.e-con.drsi-hero { position: relative; isolation: isolate; min-height: clamp(580px, 78vh, 820px); justify-content: center; --padding-top: 72px; --padding-bottom: 72px; --padding-left: var(--drsi-gutter); --padding-right: var(--drsi-gutter); background-color: var(--drsi-navy); background-size: cover; background-position: center; color: #fff; overflow: hidden; }
/* Dark blue veil between the photos and the text: even contrast whatever the slide (denser on the text side). */
.e-con.drsi-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(10, 35, 66, .82) 0%, rgba(10, 35, 66, .62) 45%, rgba(10, 35, 66, .35) 100%),
		linear-gradient(180deg, rgba(10, 35, 66, .45) 0%, rgba(10, 35, 66, 0) 30%, rgba(10, 35, 66, .5) 100%); }
@media (max-width: 680px) { .e-con.drsi-hero::after { background: linear-gradient(180deg, rgba(10, 35, 66, .7) 0%, rgba(10, 35, 66, .62) 50%, rgba(10, 35, 66, .82) 100%); } }
body .elementor .drsi-hero .drsi-display .elementor-heading-title, body .elementor .drsi-hero .drsi-lead p { text-shadow: 0 1px 24px rgba(4, 16, 32, .35); }
.e-con.drsi-hero > .e-con-inner { max-width: var(--drsi-container); --gap: 24px; --row-gap: 24px; }
.e-con.drsi-hero--page { min-height: clamp(380px, 52vh, 500px); --padding-top: 64px; --padding-bottom: 64px; }
/* Elementor background slideshow sits under the gradient overlay. */
.e-con.drsi-hero > .elementor-background-slideshow { z-index: -2; }
.e-con.drsi-hero .elementor-background-slideshow__slide__image { transition-timing-function: linear; }
.e-con.drsi-hero--page::after { background: linear-gradient(90deg, rgba(10, 35, 66, .9) 0%, rgba(10, 35, 66, .62) 55%, rgba(10, 35, 66, .4) 100%); }
body .elementor .drsi-hero .drsi-display .elementor-heading-title { max-width: 900px; color: #fff; font: 500 clamp(40px, 6vw, 80px)/1.02 var(--drsi-font-head); letter-spacing: -.03em; text-wrap: balance; }
body .elementor .drsi-hero--page .drsi-display .elementor-heading-title { font-size: clamp(36px, 4.8vw, 62px); }
body .elementor .drsi-hero .drsi-lead, body .elementor .drsi-hero .drsi-lead p { max-width: 620px; color: rgba(255, 255, 255, .85); }
body .elementor .drsi-hero .drsi-note, body .elementor .drsi-hero .drsi-note p { color: rgba(255, 255, 255, .72); font-size: 14.5px; }
.drsi-hero .drsi-search-wrap { width: 100%; max-width: 1040px; margin-top: 16px; }

/* ---------- Components ---------- */
body .elementor .drsi-media img { width: 100%; border-radius: var(--drsi-radius); object-fit: cover; }
/* Portrait: framed from the top so the hair is never cut. */
body .elementor .drsi-media--portrait img { aspect-ratio: 4 / 5; object-position: 50% 4%; }
body .elementor .drsi-media--landscape img { aspect-ratio: 4 / 3; }
body .elementor .drsi-media--wide img { aspect-ratio: 16 / 10; }

/* Service card: image on top, text below */
.e-con.drsi-card-link { --gap: 12px; --row-gap: 12px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-card-link > .elementor-widget-image { overflow: hidden; border-radius: var(--drsi-radius); margin-bottom: 10px; }
body .elementor .drsi-card-link .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.2s var(--drsi-ease); }
.e-con.drsi-card-link:hover > .elementor-widget-image img { transform: scale(1.04); }

/* Values: items separated by a thin top rule */
.e-con.drsi-rule { --gap: 10px; --row-gap: 10px; --padding-top: 24px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; border-top: 1px solid var(--drsi-line); }
.drsi-sec--dark .e-con.drsi-rule { border-top-color: rgba(255, 255, 255, .2); }

/* Icon box, discreet */
body .elementor .drsi-feature .elementor-icon-box-wrapper { text-align: left; }
body .elementor .drsi-feature .elementor-icon-box-icon { margin-bottom: 16px; }
body .elementor .drsi-feature .elementor-icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: var(--drsi-radius-sm); background: var(--drsi-sky); color: var(--drsi-primary); font-size: 18px; }
body .elementor .drsi-feature .elementor-icon svg { width: 18px; height: 18px; fill: currentColor; }
body .elementor .drsi-feature .elementor-icon-box-title, body .elementor .drsi-feature .elementor-icon-box-title a { margin: 0 0 8px; color: var(--drsi-ink); font: 500 21px/1.3 var(--drsi-font-head); }
body .elementor .drsi-feature .elementor-icon-box-description { margin: 0; color: var(--drsi-text); font-size: 15.5px; line-height: 1.65; }

/* Checklist (Icon List widget) */
body .elementor .drsi-checklist .elementor-icon-list-items { display: grid; gap: 10px; }
body .elementor .drsi-checklist--2 .elementor-icon-list-items { grid-template-columns: 1fr 1fr; }
@media (max-width: 520px) { body .elementor .drsi-checklist--2 .elementor-icon-list-items { grid-template-columns: 1fr; } }
body .elementor .drsi-checklist .elementor-icon-list-item { align-items: flex-start; }
body .elementor .drsi-checklist .elementor-icon-list-icon { width: 16px; margin-top: 5px; }
body .elementor .drsi-checklist .elementor-icon-list-icon i, body .elementor .drsi-checklist .elementor-icon-list-icon svg { color: var(--drsi-blue); fill: var(--drsi-blue); font-size: 12px; width: 12px; }
body .elementor .drsi-checklist .elementor-icon-list-text { padding-left: 10px; color: var(--drsi-text); font-size: 15.5px; line-height: 1.6; }
body .elementor .drsi-sec--dark .drsi-checklist .elementor-icon-list-text { color: rgba(255, 255, 255, .8); }

/* Relocation service: image + body, bordered */
.e-con.drsi-service { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px; --row-gap: 0px; background: #fff; border: 1px solid var(--drsi-line); border-radius: var(--drsi-radius); overflow: hidden; transition: box-shadow .4s var(--drsi-ease), border-color .4s var(--drsi-ease); }
.e-con.drsi-service:hover { border-color: transparent; box-shadow: var(--drsi-shadow-lg); }
.e-con.drsi-service > .elementor-widget-image { overflow: hidden; }
body .elementor .drsi-service > .elementor-widget-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform 1.2s var(--drsi-ease); }
.e-con.drsi-service:hover > .elementor-widget-image img { transform: scale(1.04); }
.e-con.drsi-service > .e-con { --padding-top: 28px; --padding-bottom: 32px; --padding-left: 30px; --padding-right: 30px; --gap: 14px; --row-gap: 14px; }

/* Bordered box */
.e-con.drsi-box { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px; background: #fff; border: 1px solid var(--drsi-line); border-radius: var(--drsi-radius); }

/* CTA band */
.e-con.drsi-cta-band { flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: space-between; --gap: 32px; --row-gap: 28px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.drsi-cta-band > .e-con.drsi-col { --width: auto; width: auto; flex: 1 1 520px; max-width: 700px; }
.e-con.drsi-cta-band > .drsi-actions { --width: auto; width: auto; }

/* Brochures */
.drsi-brochures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 22px; }
@media (max-width: 1024px) { .drsi-brochures { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .drsi-brochures { grid-template-columns: 1fr; } }
.drsi-brochure { display: flex; flex-direction: column; gap: 14px; color: inherit !important; text-decoration: none !important; }
.drsi-brochure__cover { aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--drsi-radius); border: 1px solid var(--drsi-line); background: #fff; }
.drsi-brochure__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; transition: transform 1.2s var(--drsi-ease); }
.drsi-brochure:hover .drsi-brochure__cover img { transform: scale(1.03); }
.drsi-brochure__body { display: flex; flex-direction: column; gap: 4px; }
.drsi-brochure__title { margin: 0; color: var(--drsi-ink); font: 500 19px/1.3 var(--drsi-font-head); }
.drsi-brochure__meta { display: inline-flex; align-items: center; gap: 6px; color: var(--drsi-primary); font-size: 14px; font-weight: 500; }

/* Map */
body .elementor .drsi-map iframe { display: block; width: 100%; border: 0; border-radius: var(--drsi-radius); filter: grayscale(.3); }
body .elementor .drsi-map--small iframe { height: 190px; }

/* ---------- Footer (Header Footer Elementor template) ---------- */
body .elementor .drsi-footer-title .elementor-heading-title { color: #fff; font: 600 14px/1.4 var(--drsi-font-body); letter-spacing: .01em; }
body .elementor .drsi-footer-links .elementor-icon-list-items { display: grid; gap: 10px; }
body .elementor .drsi-footer-links .elementor-icon-list-text { color: rgba(255, 255, 255, .68); font-size: 15px; transition: color .25s; }
body .elementor .drsi-footer-links .elementor-icon-list-item:hover .elementor-icon-list-text { color: #fff; }
body .elementor .drsi-footer-brand { text-align: left; }
body .elementor .drsi-footer-brand img { width: 140px; padding: 8px 12px; background: #fff; border-radius: var(--drsi-radius-sm); }
body .elementor .drsi-footer-small, body .elementor .drsi-footer-small p { color: rgba(255, 255, 255, .58); font-size: 14px; line-height: 1.6; }
body .elementor .drsi-footer-small a { color: rgba(255, 255, 255, .85); }
.e-con.drsi-footer { --padding-bottom: 0px; }
.e-con.drsi-footer-cols { margin-top: clamp(64px, 8vw, 104px); --padding-top: clamp(48px, 6vw, 72px); border-top: 1px solid rgba(255, 255, 255, .12); }
.e-con.drsi-footer-cols > .e-con { --gap: 16px; --row-gap: 16px; }
.e-con.drsi-footer-bottom { margin-top: clamp(40px, 5vw, 64px); border-top: 1px solid rgba(255, 255, 255, .12); --padding-top: 26px; --padding-bottom: 26px; flex-direction: row !important; flex-wrap: wrap; justify-content: space-between; align-items: center; }
body .elementor .drsi-footer-bottom .hfe-copyright-wrapper, body .elementor .drsi-footer-bottom .hfe-copyright-wrapper a { color: rgba(255, 255, 255, .58); font-size: 14px; }

/* ---------- Floating WhatsApp (appears after scrolling) ---------- */
.drsi-wa-float { position: fixed; z-index: 998; right: 22px; bottom: 22px; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #1c9d53; color: #fff !important; box-shadow: 0 10px 24px -8px rgba(14, 27, 43, .45); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .4s var(--drsi-ease), transform .4s var(--drsi-ease); }
.drsi-scrolled .drsi-wa-float { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 640px) { .drsi-wa-float { right: 16px; bottom: 16px; width: 50px; height: 50px; } }

/* ---------- Blog / default pages ---------- */
.single-post .site-content .ast-container, .blog .site-content .ast-container { max-width: 860px; }
.single-post .entry-title { font: 500 clamp(32px, 4vw, 48px)/1.15 var(--drsi-font-head); letter-spacing: -.02em; }
.single-post .entry-content { font-size: 18px; line-height: 1.8; }

/* ==========================================================================
   Motion: sober, disabled for "reduce motion" users and in the Elementor editor.
   html.drsi-motion is set in <head> before paint, so nothing flashes.
   ========================================================================== */
@keyframes drsi-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

@keyframes drsi-lift { from { transform: translateY(18px); } to { transform: none; } }
.drsi-motion .drsi-hero > .e-con-inner > * { animation: drsi-rise 1s var(--drsi-ease) both; }
/* The main title only slides (no fade) so it paints immediately (Largest Contentful Paint). */
.drsi-motion .drsi-hero > .e-con-inner > .drsi-display { animation: drsi-lift 1s var(--drsi-ease) both; }
.drsi-motion .drsi-hero > .e-con-inner > *:nth-child(2) { animation-delay: .12s; }
.drsi-motion .drsi-hero > .e-con-inner > *:nth-child(3) { animation-delay: .24s; }
.drsi-motion .drsi-hero > .e-con-inner > *:nth-child(4) { animation-delay: .36s; }
.drsi-motion .drsi-hero > .e-con-inner > *:nth-child(5) { animation-delay: .48s; }
.drsi-motion .drsi-pagehead .drsi-container > * { animation: drsi-rise .9s var(--drsi-ease) both; }
.drsi-motion .drsi-pagehead .drsi-container > *:nth-child(2) { animation-delay: .1s; }
.drsi-motion .drsi-pagehead .drsi-container > *:nth-child(3) { animation-delay: .2s; }
.drsi-motion .drsi-pagehead .drsi-container > *:nth-child(4) { animation-delay: .3s; }

/* Scroll reveal. Keep this selector list in sync with REVEAL in assets/js/drsi.js. */
.drsi-motion :is(.drsi-sec .drsi-head, .drsi-sec .drsi-split > *, .drsi-cols-2 > *, .drsi-cols-3 > *, .drsi-cols-4 > *, .drsi-grid > .drsi-card, .drsi-slider, .drsi-zones-wrap, .drsi-brochures > *, .drsi-cta-band > *, .drsi-results-bar, .drsi-single__layout > *, .drsi-similar) {
	opacity: 0; transform: translateY(26px); transition: opacity .9s var(--drsi-ease), transform .9s var(--drsi-ease); transition-delay: var(--drsi-delay, 0s);
}
.drsi-motion :is(.drsi-sec .drsi-head, .drsi-sec .drsi-split > *, .drsi-cols-2 > *, .drsi-cols-3 > *, .drsi-cols-4 > *, .drsi-grid > .drsi-card, .drsi-slider, .drsi-zones-wrap, .drsi-brochures > *, .drsi-cta-band > *, .drsi-results-bar, .drsi-single__layout > *, .drsi-similar).is-in,
.drsi-motion-done :is(.drsi-sec .drsi-head, .drsi-sec .drsi-split > *, .drsi-cols-2 > *, .drsi-cols-3 > *, .drsi-cols-4 > *, .drsi-grid > .drsi-card, .drsi-slider, .drsi-zones-wrap, .drsi-brochures > *, .drsi-cta-band > *, .drsi-results-bar, .drsi-single__layout > *, .drsi-similar) { opacity: 1; transform: none; }
/* The sticky contact card must not be transformed (sticky + transform conflict). */
.drsi-motion .drsi-single__layout > .drsi-single__aside.is-in { transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.elementor-editor-active .drsi-motion *, .elementor-editor-preview * { animation: none !important; }
.elementor-editor-preview :is(.drsi-sec .drsi-head, .drsi-sec .drsi-split > *, .drsi-cols-2 > *, .drsi-cols-3 > *, .drsi-cols-4 > *, .drsi-grid > .drsi-card, .drsi-slider, .drsi-zones-wrap, .drsi-brochures > *, .drsi-cta-band > *) { opacity: 1 !important; transform: none !important; }

/* ---------- Neighbourhood links (home) ---------- */
body .elementor .drsi-zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; margin: 0; padding: 0; list-style: none; }
body .elementor .drsi-zones li { margin: 0; border-bottom: 1px solid var(--drsi-line); }
body .elementor .drsi-zones a { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 0; color: var(--drsi-ink); text-decoration: none; transition: color .25s, padding .35s var(--drsi-ease); }
body .elementor .drsi-zones a span { font: 500 19px/1.3 var(--drsi-font-head); }
body .elementor .drsi-zones a small { color: var(--drsi-muted); font-size: 13.5px; white-space: nowrap; }
body .elementor .drsi-zones a:hover { color: var(--drsi-primary); padding-left: 6px; }
@media (max-width: 680px) { body .elementor .drsi-zones { grid-template-columns: 1fr 1fr; } }
.e-con.drsi-sec--dark.drsi-sec--brand { background-color: var(--drsi-primary); }
body .elementor .drsi-sec--brand .drsi-lead, body .elementor .drsi-sec--brand .drsi-lead p { color: rgba(255, 255, 255, .85); }
.drsi-has-form .e-con.drsi-footer > .e-con-inner > .e-con.drsi-split:first-child { display: none !important; }
.drsi-has-form .e-con.drsi-footer-cols { margin-top: 0; border-top: 0; --padding-top: 0px; }
.drsi-has-form .e-con.drsi-footer { --padding-top: clamp(64px, 8vw, 96px); }

/* Links inside running text are underlined (not distinguished by colour only). */
body .elementor :is(.drsi-text, .drsi-lead, .drsi-footer-small) a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* ---------- Form controls: one style for the whole site (no browser defaults) ---------- */
:where(.site-content, .site-footer, #colophon) :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=search], input[type=url], input[type=password], textarea, select) {
	appearance: none; -webkit-appearance: none; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--drsi-line); border-radius: var(--drsi-radius-sm);
	background-color: #fff; color: var(--drsi-ink); font: 400 16px/1.4 var(--drsi-font-body); box-shadow: none; outline: 0; transition: border-color .2s, box-shadow .2s;
}
:where(.site-content, .site-footer, #colophon) select {
	padding-right: 40px; cursor: pointer; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23104983' stroke-width='1.6'%3E%3Cpath d='m2 4 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 12px;
}
:where(.site-content, .site-footer, #colophon) select::-ms-expand { display: none; }
:where(.site-content, .site-footer, #colophon) :is(input, textarea, select):hover { border-color: #c3ceda; }
:where(.site-content, .site-footer, #colophon) :is(input, textarea, select):focus { border-color: var(--drsi-blue); box-shadow: 0 0 0 3px rgba(26, 111, 181, .14); }
:where(.site-content, .site-footer, #colophon) :is(input, textarea)::placeholder { color: #8a96a3; opacity: 1; }
select option { color: var(--drsi-ink); }

/* Icon lists (checklists, footer links): no bullets, whatever CSS Elementor loads. */
.elementor .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.elementor .elementor-icon-list-item { display: flex; align-items: flex-start; margin: 0; }
.elementor .drsi-footer-links .elementor-icon-list-item > a { display: inline-flex; color: inherit; text-decoration: none; }

/* Mobile menu: footer block full width */
.ast-mobile-popup-drawer .ast-header-html-2, .ast-mobile-popup-drawer .ast-header-html-2 .ast-builder-html-element { width: 100%; padding: 0 !important; margin-left: 0 !important; }

/* ---------- Mobile refinements ---------- */
@media (max-width: 680px) {
	:root { --drsi-gutter: 20px; --drsi-section: 72px; }
	body .elementor .drsi-hero .drsi-display .elementor-heading-title { font-size: 40px; }
	body .elementor .drsi-hero--page .drsi-display .elementor-heading-title { font-size: 34px; }
	.e-con.drsi-hero { min-height: 0; --padding-top: 48px; --padding-bottom: 48px; }
	.e-con.drsi-hero--page { min-height: 0; --padding-top: 48px; --padding-bottom: 44px; }
	body .elementor .drsi-title .elementor-heading-title { font-size: 31px; }
	body .elementor .drsi-lead, body .elementor .drsi-lead p { font-size: 16.5px; }
	/* Service cards: landscape crop, two per row is too small, keep one with a shorter image. */
	body .elementor .drsi-card-link .elementor-widget-image img { aspect-ratio: 16 / 10; }
	.e-con.drsi-head { margin-bottom: 32px; }
	.e-con.drsi-actions > .elementor-widget, .e-con.drsi-actions .elementor-button { width: 100%; justify-content: center; }
	body .elementor .drsi-media--portrait img { aspect-ratio: 4 / 4.4; }
	.e-con.drsi-footer-cols { gap: 36px 20px !important; grid-template-columns: 1fr 1fr !important; }
	.e-con.drsi-footer-cols > .e-con:first-child, .e-con.drsi-footer-cols > .e-con:last-child { grid-column: 1 / -1; }
	.e-con.drsi-footer-bottom { flex-direction: column !important; align-items: flex-start; --gap: 6px; }
	body .elementor .drsi-zones a span { font-size: 17px; }
}
/* Astra wraps the HTML element content in paragraphs (wpautop). */
.drsi-mmenu p:empty { display: none; }
.drsi-mmenu__cta > p { display: contents; }
.drsi-mmenu > p { margin: 22px 0 0; }
.drsi-mmenu__cta a { width: 100%; }
.ast-mobile-popup-drawer .ast-mobile-popup-content > *, .ast-mobile-popup-drawer .ast-header-html-2 .ast-builder-html-element, .drsi-mmenu { display: block; width: 100%; box-sizing: border-box; }
.drsi-mmenu > * + * { margin-top: 18px; }
.drsi-mmenu .drsi-lang { display: inline-flex; }
.drsi-mmenu__cta { display: grid !important; }

/* Header language switcher: same height and baseline as the "Nous contacter" button. */
.ast-header-html-1 .ast-builder-html-element { display: flex; align-items: center; height: 100%; line-height: 1; }
.ast-header-html-1 .ast-builder-html-element > p { display: contents; margin: 0; }
#masthead .drsi-lang { height: 44px; box-sizing: border-box; }
#masthead .drsi-lang__btn { display: grid; place-items: center; min-width: 42px; height: 100%; padding: 0 12px; font-size: 13px; }
#ast-mobile-header .drsi-lang { height: 44px; }
#ast-desktop-header .site-header-primary-section-right { align-items: center; gap: 0; }
#ast-desktop-header .site-header-primary-section-right > * { display: flex; align-items: center; }
#ast-desktop-header .ast-header-html-1 { margin: 0 12px 0 14px; }
#masthead .ast-header-button-1 { margin-left: 0; }

/* Neighbourhoods: full width, four columns */
body .elementor .drsi-zones { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 40px; border-top: 1px solid var(--drsi-line); }
@media (max-width: 1024px) { body .elementor .drsi-zones { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 680px) { body .elementor .drsi-zones { grid-template-columns: 1fr 1fr; gap: 0 20px; } }

/* Language switcher hover: visible on both header states. */
#masthead .drsi-lang__btn:not([aria-pressed="true"]):hover { background: var(--drsi-sky); color: var(--drsi-primary); }
.drsi-has-hero #masthead:not(.is-scrolled) .drsi-lang__btn:not([aria-pressed="true"]):hover { background: rgba(10, 35, 66, .75); color: #fff; }
.drsi-mmenu .drsi-lang__btn:not([aria-pressed="true"]):hover { background: rgba(255, 255, 255, .12); color: #fff; }

/* Header always white with a hairline, on every page. */
#masthead { background: #fff !important; box-shadow: 0 1px 0 var(--drsi-line); }
#masthead.is-scrolled { box-shadow: 0 1px 0 var(--drsi-line), 0 8px 24px -16px rgba(14, 27, 43, .25); }
