@charset "UTF-8";
/* ============================================================ VARIABLES CSS ============================================================ */
:root { /* Couleurs primaires */ --color-primary:        var(--dynamic_web_theme_color); --color-secondary:      var(--dynamic_theme_color_secondary); --color-base:           #1b2e35; --color-bg:             #eeeeee; --color-white:          #ffffff; --color-black:          #000000; --color-text:           #000000; /* Couleurs sémantiques */ --color-success:        #5cb85c; --color-danger:         #f44336; --color-warning:        #f0ad4e; --color-info:           #1b2e35; /* Nuances de gris */ --gray-100: #e6e6e6; --gray-200: #cccccc; --gray-300: #b3b3b3; --gray-400: #999999; --gray-500: #808080; --gray-600: #666666; --gray-700: #4d4d4d; --gray-800: #333333; --gray-900: #1a1a1a; /* Couleurs d'alt */ --color-alt1:  #f6f5f3; --color-alt2:  #e7f8ff; --color-alt3:  #9e9e9e; /* Typographie */ --font-primary:   "Open Sans", Helvetica, Arial, Lucida, sans-serif; --font-mono:      consolas, courier, monospace; --font-size-base: 	1rem; --font-size-m: 		0.875rem; --font-size-sm: 	0.8125rem; --font-size-xs:   	0.75rem; --line-height:    	1.5; /* Espacements */ --space-xs:   0.625rem; --space-sm:   1rem; --space-md:   1.25rem; --space-lg:   2.5rem; --space-xl:   5rem; --space-xxl: 10rem; --space-vxs: 0.5vw; --space-vs: 1.5vw; --space-vm: 2.5vw; --space-vl: 4.5vw; --space-vxl: 6.5vw; /* Bordures et rayons */ --radius-sm:   3px; --radius-md:   8px; --radius-lg:  16px; --radius-full: 50%; /* Ombres */ --shadow-sm:  0 1px 3px rgba(0,0,0,.12); --shadow-md:  0 3px 10px rgba(0,0,0,.15); --shadow-lg:  0 8px 30px rgba(0,0,0,.2); /* Transitions */ --transition: .25s ease; --transition-slow: .4s ease; /* Z-index */ --z-dropdown: 10; --z-header:   100; --z-modal:    200; --z-toast:    300; --gold: rgb(132, 118, 87); --gold-rgb: 132, 118, 87; --black: #000000; --white: #ffffff; --nav-bg-default: transparent; --nav-text-default: #000000; --nav-bg-scrolled: #eceff3 ; --nav-text-scrolled: #ffffff; --transition-base: 0.4s cubic-bezier(0.4, 0, 0.2, 1); }

/* ============================================================ RESET & BASE ============================================================ */
*, *::before, *::after { box-sizing: border-box; min-width: 0; min-height: 0; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-y: scroll; }

body { margin: 0; font-family: var(--font-primary); font-size: 17px; font-weight: 300; line-height: 31px; color: var(--color-text); background-color: #fff; letter-spacing: 0.3px; }

::-moz-selection { background: var(--color-primary); color: var(--color-secondary); }

::selection { background: var(--color-primary); color: var(--color-secondary); }

::-moz-selection { background: var(--color-primary); color: var(--color-secondary); }

a { color: var(--color-secondary); text-decoration: none; transition: color var(--transition); }

a:hover, a:focus, a:active { color: var(--color-base); }

h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: var(--space-xs); }

h1, h2, h3 { line-height: 1.2; }

h4, h5, h6 { line-height: 1.3; }

h1 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 500; }

h2 { font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 500; }

h3 { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 500; }

h4 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); font-weight: 500; }

h5 { font-size: clamp(1.125rem, 2vw, 1.5rem); font-weight: 500; }

h6 { font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 500; }

p, address, ol, ul, dl, blockquote, pre { margin-top: 0; margin-bottom: var(--space-sm); }

li p, li ul, li ol, ol ol, ul ul { margin-top: 0; margin-bottom: 0; }

img, video, svg { max-width: 100%; vertical-align: middle; border-style: none; }

img { height: auto; }

svg:not(:root) { overflow: hidden; }

table { border-collapse: collapse; }

ul, ol { padding-left: 2em; }

hr { display: block; clear: both; height: 1px; margin: 1em 0 2em; padding: 0; border: 0; background-color: var(--gray-200); }

blockquote { margin: 0 0 var(--space-sm); padding-left: 3em; position: relative; }

blockquote::before { content: "\201C"; position: absolute; left: 0; top: 0; font-family: georgia, serif; font-size: 5em; line-height: .9; height: .4em; color: var(--gray-200); }

blockquote > footer { margin-top: .75em; font-size: .9em; color: rgba(0, 0, 0, 0.7); }

blockquote > footer::before { content: "\2014 \0020"; }

pre, code, kbd, samp { font-family: var(--font-mono); font-size: 1em; white-space: pre-wrap; line-height: normal; }

pre { margin: 0 0 var(--space-sm); overflow: auto; }

code { padding: 2px 4px; background: rgba(0, 0, 0, 0.04); color: #b11; border-radius: 2px; }

pre code { padding: 0; background: none; color: inherit; border-radius: 0; }

kbd { padding: 0 2px; border: 1px solid #999; border-radius: 2px; }

mark { padding: 2px 4px; border-radius: 2px; }

/* ============================================================ FORMULAIRES ============================================================ */
form, fieldset { border: none; }

fieldset { padding: var(--space-md); min-width: 0; margin: 0; }

fieldset legend { display: block; width: 100%; padding: 0 .5rem; margin-bottom: .5rem; font-size: 1.5rem; color: inherit; white-space: normal; }

label { display: inline-block; margin-bottom: .5rem; cursor: pointer; }

[type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="month"], [type="number"], [type="password"], [type="search"], [type="submit"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], select, textarea { font: inherit; color: inherit; width: 100%; max-width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #ccc; background-color: #fff; line-height: 1.4; transition: border-color 0.2s ease, box-shadow 0.2s ease; box-sizing: border-box; }

[type="color"]:focus, [type="date"]:focus, [type="datetime-local"]:focus, [type="email"]:focus, [type="month"]:focus, [type="number"]:focus, [type="password"]:focus, [type="search"]:focus, [type="submit"]:focus, [type="tel"]:focus, [type="text"]:focus, [type="time"]:focus, [type="url"]:focus, [type="week"]:focus, select:focus, textarea:focus { outline: none; border-color: var(--color-primary); }

textarea { resize: vertical; min-height: 6rem; }

[type="submit"] { cursor: pointer; background-color: var(--color-primary); color: #fff; border-color: var(--color-primary); }

[type="submit"]:hover { background-color: color-mix(in srgb, var(--color-primary) 85%, black); }

[type="color"].error, [type="date"].error, [type="email"].error, [type="text"].error, textarea.error, select.error { border: 1px solid var(--color-danger); }

::-moz-placeholder { color: #777; font-size: var(--font-size-sm); }

::placeholder { color: #777; font-size: var(--font-size-sm); }

::-moz-placeholder { color: var(--color-text) !important; font-size: var(--font-size-xs); text-transform: uppercase; opacity: 1; }

select { padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9.96 11.966L3.523 5.589C2.464 4.627.495 6.842 1.505 7.771L8.494 14.763C9.138 15.35 10.655 15.369 11.29 14.763L18.49 7.771C19.557 6.752 17.364 4.68 16.262 5.725L9.96 11.966Z' fill='inherit'/%3E%3C/svg%3E"); background-position: right .6rem center; background-repeat: no-repeat; background-size: 1.2rem; }

select::-ms-expand { display: none; }

[type="search"]::-webkit-search-decoration, [type="search"]::-webkit-search-cancel-button { display: none; }

input[readonly] { background-color: var(--gray-200); }

textarea { min-height: 5em; resize: vertical; white-space: normal; }

progress { width: 100%; vertical-align: middle; }

form .contact-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }

form .contact-form__full { grid-column: 1 / -1; }

form .contact-form__field { margin-bottom: 5px; }

form .contact-form__label { display: block; margin-bottom: 6px; font-size: 14px; }

form .contact-form__input, form .contact-form__textarea, form .contact-form__select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 0; font-size: 14px; transition: border 0.2s; }

form .contact-form__select { background: none; }

form .contact-form__input:focus, form .contact-form__textarea:focus, form .contact-form__select:focus { border-color: var(--color-primary); outline: none; }

form .contact-form__input--error, form .contact-form__textarea--error { border-color: #d9534f; }

form .contact-form__error { color: #d9534f; font-size: 13px; margin-top: 5px; margin-bottom: 0; }

form .contact-form__submit { margin-top: 20px; }

form .contact-form__submit input { background: var(--color-primary); color: #fff; padding: 12px 20px; border: none; border-radius: 0; cursor: pointer; line-height: 29px; width: auto; text-transform: uppercase; font-size: 17px; font-weight: 500; font-family: 'Ridley Grotesk', Helvetica, Arial, Lucida, sans-serif; }

form .contact-form__submit input:hover { background: color-mix(in srgb, var(--color-primary) 85%, black); }

form .acceptPolitiqueDiv { gap: 0.4rem; }

form .acceptPolitiqueDiv input[type="checkbox"] { margin-top: 6px; cursor: pointer; accent-color: var(--color-primary); }

form .acceptPolitiqueLabel, form .acceptPolitiqueLabel a { font-size: 1rem; }

@media (max-width: 768px) { form .contact-form__grid { grid-template-columns: 1fr; gap: 10px; } }

form.contact-form--classique .contact-form__input, form.contact-form--classique .contact-form__textarea, form.contact-form--classique .contact-form__select { padding: 15px 10px; border: 0; border-bottom: 1px solid #ccc; border-radius: 0; font-size: 14px; transition: border 0.2s; background: rgba(236, 239, 243, 0.25); }

form.contact-form--classique .contact-form__input:focus, form.contact-form--classique .contact-form__textarea:focus, form.contact-form--classique .contact-form__select:focus { border-color: var(--color-primary); outline: none; background: rgba(236, 239, 243, 0); }

/* ============================================================ BOUTONS ============================================================ */
.btn, .button, [type="button"], button, a[class^="btn--"] { font: inherit; color: inherit; display: inline-block; width: auto; padding: 0.5rem 1rem; border: 1px solid var(--color-primary); background-color: var(--color-primary); color: #fff; text-align: center; cursor: pointer; transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.05s ease; box-sizing: border-box; line-height: 29px; font-size: 17px; font-weight: 500; font-family: 'Ridley Grotesk', Helvetica, Arial, Lucida, sans-serif; }

.btn:hover, .button:hover, [type="button"]:hover, button:hover, a[class^="btn--"]:hover { background-color: color-mix(in srgb, var(--color-primary) 85%, black); border-color: color-mix(in srgb, var(--color-primary) 85%, black); }

.btn:focus, .button:focus, [type="button"]:focus, button:focus, a[class^="btn--"]:focus { outline: none; }

.btn.btn--primary, .button.btn--primary, [type="button"].btn--primary, button.btn--primary, a[class^="btn--"].btn--primary { background: var(--color-primary); color: #fff; border: 1.5px solid var(--color-primary); }

.btn.btn--primary:hover, .button.btn--primary:hover, [type="button"].btn--primary:hover, button.btn--primary:hover, a[class^="btn--"].btn--primary:hover { background: color-mix(in srgb, var(--color-primary) 95%, white); border: 1.5px solid var(--color-primary); }

.btn.btn--inverse, .button.btn--inverse, [type="button"].btn--inverse, button.btn--inverse, a[class^="btn--"].btn--inverse { background: var(--color-secondary); color: #fff; border: 1.5px solid var(--color-secondary); }

.btn.btn--inverse:hover, .button.btn--inverse:hover, [type="button"].btn--inverse:hover, button.btn--inverse:hover, a[class^="btn--"].btn--inverse:hover { background: color-mix(in srgb, var(--color-secondary) 95%, white); border: 1.5px solid var(--color-secondary); }

.btn.btn--info, .button.btn--info, [type="button"].btn--info, button.btn--info, a[class^="btn--"].btn--info { background: var(--color-base); color: #fff; border: 1.5px solid var(--color-base); }

.btn.btn--info:hover, .button.btn--info:hover, [type="button"].btn--info:hover, button.btn--info:hover, a[class^="btn--"].btn--info:hover { background: color-mix(in srgb, var(--color-base) 95%, white); border: 1.5px solid var(--color-base); }

.btn.btn--link, .button.btn--link, [type="button"].btn--link, button.btn--link, a[class^="btn--"].btn--link { background: transparent; color: var(--color-secondary); border-color: transparent; text-decoration: underline; text-underline-offset: 3px; }

.btn.btn--link:hover, .button.btn--link:hover, [type="button"].btn--link:hover, button.btn--link:hover, a[class^="btn--"].btn--link:hover { color: var(--color-base); text-decoration-thickness: 2px; }

.btn--primary, .button--primary { background-color: var(--color-primary); color: var(--color-white); }

.btn--primary:hover { background-color: color-mix(in srgb, var(--color-primary) 85%, black); color: var(--color-white); }

.btn--success, .button--success { background-color: var(--color-success); color: var(--color-white); }

.btn--success:hover { background-color: #4aa14a; color: var(--color-white); }

.btn--info, .button--info { background-color: var(--color-base); color: var(--color-white); }

.btn--info:hover { background-color: #243d46; color: var(--color-white); }

.btn--info-white { background-color: var(--color-white); color: var(--color-base); }

.btn--info-white:hover { background-color: var(--gray-100); }

.btn--info-primary { background-color: transparent; color: var(--color-primary); box-shadow: 0 0 0 1px var(--color-primary) inset; }

.btn--info-primary:hover { background-color: rgba(253, 255, 253, 0.1); }

.btn--warning, .button--warning { background-color: var(--color-black); color: var(--color-white); }

.btn--warning:hover { background-color: #1a1a1a; }

.btn--danger, .button--danger { background-color: var(--color-danger); color: var(--color-white); }

.btn--danger:hover { background-color: #d32f23; }

.btn--inverse { background-color: transparent; color: var(--color-base); box-shadow: 0 0 0 1px var(--color-base) inset; }

.btn--inverse:hover { background-color: rgba(0, 0, 0, 0.05); }

.btn--ghost { background-color: transparent; color: var(--color-white); box-shadow: 0 0 0 1px var(--color-white) inset; }

.btn--ghost:hover { background-color: rgba(255, 255, 255, 0.1); }

.btn--small, .button--small { padding: .7rem 1rem; font-size: .8em; }

.btn--big, .button--big { padding: 1.5rem 2rem; font-size: 1.4em; }

.btn--block, .button--block { width: 100%; display: flex; }

.btn--unstyled { padding: 0; border: none; background: none; border-radius: 0; box-shadow: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; text-align: left; }

a[class^="btn--"]:active { transform: scale(0.97); }

/* ============================================================ LAYOUT — Conteneurs & Grille ============================================================ */
.container { width: 90%; max-width: 1600px; margin-left: auto; margin-right: auto; }

.container--10 { --c-w: 10%; }

.container--20 { --c-w: 20%; }

.container--30 { --c-w: 30%; }

.container--40 { --c-w: 40%; }

.container--50 { --c-w: 50%; }

.container--60 { --c-w: 60%; }

.container--70 { --c-w: 70%; }

.container--80 { --c-w: 80%; }

.container--90 { --c-w: 90%; }

.container--100 { --c-w: 100%; }

.container--10, .container--20, .container--30, .container--40, .container--50 { width: var(--c-w); max-width: 1600px; margin-left: auto; margin-right: auto; }

@media (max-width: 1080px) { .container--10, .container--20, .container--30, .container--40, .container--50 { width: 70%; } }

@media (max-width: 768px) { .container--10, .container--20, .container--30, .container--40, .container--50 { width: 95%; } }

.container--60, .container--70 { width: var(--c-w); max-width: 1600px; margin-left: auto; margin-right: auto; }

@media (max-width: 1080px) { .container--60, .container--70 { width: 95%; } }

.container--80, .container--90, .container--100 { width: var(--c-w); max-width: 1600px; margin-left: auto; margin-right: auto; }

@media (max-width: 1080px) { .container--80, .container--90 { width: 95%; }
  .container--100 { width: 100%; } }

.mod, .bfc { overflow: hidden; }

.clear { clear: both; }

.clearfix::after { content: ""; display: table; clear: both; border-collapse: collapse; }

/* ============================================================ FLEXBOX UTILITIES ============================================================ */
.d-flex, .flex-container { display: flex; flex-wrap: wrap; }

.flex-row { flex-direction: row; }

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

.flex-row-reverse { flex-direction: row-reverse; }

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

.flex-item-fluid, .item-fluid { flex: 1 1 0%; }

.item-first { order: -1; }

.item-medium { order: 0; }

.item-last { order: 1; }

.item-center, .mr-auto { margin: auto; }

.justify-items-center { justify-items: center; }

.justify-items-end { justify-items: end; }

.justify-items-start { justify-items: start; }

.justify-content-center { justify-content: center; }

.justify-content-end { justify-content: end; }

.justify-content-start { justify-content: start; }

.justify-content-between { justify-content: space-between; }

.justify-content-around { justify-content: space-around; }

.align-items-center { align-items: center; }

.align-items-end { align-items: end; }

.align-items-start { align-items: start; }

.align-content-center { align-content: center; }

.text-align-end { text-align: right; }

.text-uppercase { text-transform: uppercase; }

.row { width: 95%; max-width: 100%; margin: 0 auto; }

/* ============================================================ GRILLE FLEXBOX ============================================================ */
[class*="grid-"], [class^="grid-"] { display: grid; width: 100%; align-items: start; }

[class*="grid-"] > *, [class^="grid-"] > * { min-width: 0; }

[class*="grid-"].align-items-center, [class^="grid-"].align-items-center { align-items: center; }

[class*="grid-"].align-items-start, [class^="grid-"].align-items-start { align-items: start; }

[class*="grid-"].align-items-end, [class^="grid-"].align-items-end { align-items: end; }

[class*="grid-"].align-items-baseline, [class^="grid-"].align-items-baseline { align-content: baseline; }

[class*="grid-"].align-items-stretch, [class^="grid-"].align-items-stretch { align-content: stretch; }

[data-dve-slug="cols1-3--2-3"] > div[class*="grid-2"], [data-dve-slug="cols2-3--1-3"] > div[class*="grid-2"], [data-dve-slug="cols1-4--3-4"] > div[class*="grid-2"], [data-dve-slug="cols3-4--1-4"] > div[class*="grid-2"], [data-dve-slug="cols1-5--4-5"] > div[class*="grid-2"] { grid-template-columns: 1fr; }

[data-dve-slug="cols1-5--4-5"] > div[class*="grid-3"] { grid-template-columns: 1fr; }

.has-gutter { gap: var(--space-sm); }

.has-gutter-s { gap: var(--space-sm); }

.has-gutter-m { gap: var(--space-md); }

.has-gutter-l { gap: var(--space-lg); }

.has-gutter-xl { gap: var(--space-xl); }

@media (min-width: 900px) { [class*="grid-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [class*="grid-3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [class*="grid-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  [class*="grid-5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  [class*="grid-6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  [class*="grid-7"] { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  [class*="grid-8"] { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  [class*="grid-9"] { grid-template-columns: repeat(9, minmax(0, 1fr)); }
  [data-dve-slug="cols1-3--2-3"] > div[class*="grid-2"], [data-dve-slug="cols2-3--1-3"] > div[class*="grid-2"] { grid-template-columns: repeat(3, 1fr); }
  [data-dve-slug="cols1-3--2-3"] .one-third, [data-dve-slug="cols2-3--1-3"] .one-third { grid-column: span 1; }
  [data-dve-slug="cols1-3--2-3"] .two-thirds, [data-dve-slug="cols2-3--1-3"] .two-thirds { grid-column: span 2; }
  [data-dve-slug="cols1-3--2-3"].col-5--3-2 > div[class*="grid-2"], [data-dve-slug="cols2-3--1-3"].col-5--3-2 > div[class*="grid-2"] { grid-template-columns: repeat(5, 1fr); }
  [data-dve-slug="cols1-3--2-3"].col-5--3-2 .one-third, [data-dve-slug="cols2-3--1-3"].col-5--3-2 .one-third { grid-column: span 2; }
  [data-dve-slug="cols1-3--2-3"].col-5--3-2 .two-thirds, [data-dve-slug="cols2-3--1-3"].col-5--3-2 .two-thirds { grid-column: span 3; }
  [data-dve-slug="cols1-4--3-4"] > div[class*="grid-2"], [data-dve-slug="cols3-4--1-4"] > div[class*="grid-2"] { grid-template-columns: repeat(4, 1fr); }
  [data-dve-slug="cols1-4--3-4"] .one-quarter, [data-dve-slug="cols3-4--1-4"] .one-quarter { grid-column: span 1; }
  [data-dve-slug="cols1-4--3-4"] .three-quarters, [data-dve-slug="cols3-4--1-4"] .three-quarters { grid-column: span 3; }
  [data-dve-slug="cols1-5--4-5"] > div[class*="grid-2"] { grid-template-columns: repeat(5, 1fr); }
  [data-dve-slug="cols1-5--4-5"] .one-fifth { grid-column: span 1; }
  [data-dve-slug="cols1-5--4-5"] .item-fluid { grid-column: span 4; }
  [data-dve-slug="cols1-4--2-4--1-4"] > div[class*="grid-3"] { grid-template-columns: repeat(4, 1fr); }
  [data-dve-slug="cols1-4--2-4--1-4"] .one-half { grid-column: span 2; }
  [data-dve-slug="cols1-4--2-4--1-4"] .one-quarter { grid-column: span 1; } }

@media (min-width: 992px) { [class*="grid-10"] { grid-template-columns: repeat(10, minmax(0, 1fr)); }
  [class*="grid-11"] { grid-template-columns: repeat(11, minmax(0, 1fr)); }
  [class*="grid-12"] { grid-template-columns: repeat(12, minmax(0, 1fr)); } }

.push { margin-left: auto !important; }

.pull { margin-right: auto !important; }

/* ============================================================ RÉINITIALISATION MOBILE (tiny) ============================================================ */
@media (max-width: 767px) { .mod, .col, fieldset { display: block !important; float: none !important; clear: none !important; width: auto !important; margin-left: 0 !important; margin-right: 0 !important; border: 0; }
  .flex-container, .flex-row, .flex-column, .flex-row-reverse, .flex-column-reverse, .d-flex { flex-direction: column; } }

/* ============================================================ TABLEAUX ============================================================ */
table, .table { width: 100%; max-width: 100%; table-layout: fixed; border-collapse: collapse; vertical-align: top; margin-bottom: var(--space-md); }

.table { display: table; border: 1px solid var(--gray-500); }

.table--zebra tbody tr:nth-child(odd) { background: var(--gray-200); }

.table caption { caption-side: bottom; padding: 1rem; color: var(--gray-800); font-style: italic; text-align: right; }

.table td, .table th { padding: .3rem .6rem; min-width: 2rem; vertical-align: top; border: 1px var(--gray-500) dotted; text-align: left; }

.table thead { color: var(--color-base); }

.table--auto { table-layout: auto; }

/* ============================================================ NAVIGATION ============================================================ */
/* ---------- NAVBAR ---------- */
.navbar { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; padding: 24px 40px; align-items: center; justify-content: space-between; background: transparent; min-height: 100px; display: flex; opacity: 0; transform: translateY(-10px); pointer-events: none; transition: opacity var(--transition-base), transform var(--transition-base), background var(--transition-base), padding var(--transition-base); /* Logos */ }

.navbar.show { opacity: 1; transform: translateY(0); pointer-events: auto; }

@media (max-width: 768px) { .navbar { min-height: auto; display: grid; grid-template-columns: 30px 20px 1fr 1fr 20px; grid-template-rows: 60px; padding: 10px 0 10px 10px; } }

.navbar .btn-header-menu { display: inline-block; font-weight: 500; text-decoration: none; border-radius: 0; cursor: pointer; transition: opacity .15s, transform .1s; box-shadow: none; background: var(--color-white); color: #000; border: none; letter-spacing: 1px; font-size: 14px; line-height: 24px; padding: 10px 17px 7px 17px; font-family: 'Ridley Grotesk', sans-serif; text-transform: uppercase; }

.navbar .btn-header-menu.animated { display: none; }

.navbar .btn-header-menu.show { display: inline-block; }

@media (max-width: 980px) { .navbar .btn-header-menu { display: none; }
  .navbar .btn-header-menu.animated { display: none; }
  .navbar .btn-header-menu.show { display: none; } }

.navbar.scrolled { background: var(--nav-bg-scrolled); }

.navbar.scrolled .navbar__logo--project { opacity: 1; display: block; width: 100%; height: inherit; }

.navbar.scrolled .navbar__logo--brand { opacity: 0; display: none; pointer-events: none; height: 100%; }

.navbar.scrolled .navbar__logo--brand.show { opacity: 0; display: none; }

.navbar.scrolled .hamburger-btn .hamburger .line { background: var(--color-secondary); }

.navbar.scrolled .btn-header-menu { background: #000; color: var(--color-white); }

.navbar.open { background: var(--nav-bg-scrolled); }

.navbar.open .btn-header-menu { display: none; }

.navbar.open .navbar__logo--brand { filter: invert(1); }

.navbar .navbar__1_3 { width: 33.3333%; }

@media (max-width: 768px) { .navbar .navbar__1_3 { width: unset; } }

.navbar .navbar__logo_img { grid-area: 1 / 3 / 2 / 5; }

.navbar .navbar__logos { position: relative; width: 100%; height: 60px; text-align: center; }

@media (max-width: 768px) { .navbar .navbar__logos { height: 40px; } }

.navbar .navbar__logos a { display: inline-block; height: 100%; }

.navbar .navbar__logo--brand { opacity: 1; display: block; height: 100%; filter: unset; }

.navbar .navbar__logo--brand.show { opacity: 1; }

.navbar .navbar__logo--project { opacity: 0; display: none; }

.navbar .hamburger-btn { background: transparent; border: 0; cursor: pointer; display: inline-flex; align-items: center; position: relative; z-index: 999999; padding-left: 20px; }

.navbar .hamburger-btn.open .hamburger .line { background: var(--color-secondary); }

.navbar .hamburger-btn.open .hamburger .line-1 { top: 50%; left: 0; width: 27px; transform: translateY(-50%) rotate(45deg); }

.navbar .hamburger-btn.open .hamburger .line-2 { opacity: 0; }

.navbar .hamburger-btn.open .hamburger .line-3 { top: 50%; bottom: auto; left: 0; width: 27px; transform: translateY(-50%) rotate(-45deg); }

.navbar .hamburger { width: 27px; height: 20px; position: relative; }

.navbar .hamburger .line { position: absolute; height: 2px; width: 27px; left: 0; background: #fff; transition: all .2s ease; }

.navbar .hamburger .line-1 { top: 0; width: 13px; right: 0; left: auto; }

.navbar .hamburger .line-2 { top: 9px; width: 13px; left: 0; }

.navbar .hamburger .line-3 { bottom: 0; width: 27px; }

.not-full-header .navbar { background: var(--nav-bg-scrolled); }

.not-full-header .navbar .navbar__logo--project { opacity: 1; display: block; width: 100%; height: inherit; }

.not-full-header .navbar .navbar__logo--brand { opacity: 0; display: none; pointer-events: none; }

.not-full-header .navbar .navbar__logo--brand.show { opacity: 0; display: none; }

.not-full-header .navbar .hamburger-btn .hamburger .line { background: var(--color-secondary); }

.not-full-header .navbar .btn-header-menu { background: #000; color: var(--color-white); }

@keyframes fadeUp { from { opacity: 0;
    transform: translateY(20px); }
  to { opacity: 1;
    transform: translateY(0); } }

/* Menu overlay */
.nav-overlay { position: fixed; inset: 0; background: var(--color-secondary); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s ease, visibility .25s ease; z-index: 15000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 45px; }

.nav-overlay a.navbar--link { transition: color var(--transition-base); position: relative; font-family: 'Ridley Grotesk', sans-serif; font-weight: normal; text-transform: uppercase; color: var(--white); text-decoration: none; font-size: clamp(18px, 2.2vw, 25px); letter-spacing: 2px; opacity: 0; transform: translateY(20px); display: inline-block; }

.nav-overlay a.navbar--link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: var(--white); transition: width var(--transition-base); }

.nav-overlay a.navbar--link:hover { color: var(--white); }

.nav-overlay a.navbar--link:hover::after { width: 100%; }

.nav-overlay.open { opacity: 1; visibility: visible; pointer-events: auto; }

.nav-overlay.open a.navbar--link { animation: fadeUp .3s ease forwards; }

.nav-overlay.open a.navbar--link:nth-child(1) { animation-delay: .1s; }

.nav-overlay.open a.navbar--link:nth-child(2) { animation-delay: .2s; }

.nav-overlay.open a.navbar--link:nth-child(3) { animation-delay: .3s; }

.nav-overlay.open a.navbar--link:nth-child(4) { animation-delay: .4s; }

.nav-overlay.open a.navbar--link:nth-child(5) { animation-delay: .5s; }

.lang-switcher { position: fixed; bottom: 0; background: var(--color-secondary); color: white; width: 130px; border-radius: 4px 4px 0 0; z-index: 16000; display: flex; flex-direction: column-reverse; overflow: hidden; padding: 5px 5px 2px 3px; right: 10vw; left: unset; box-shadow: 0 10px 20px 0 #0000000D; align-items: stretch; justify-content: center; text-transform: uppercase; font-size: 12px; letter-spacing: 1px; font-family: 'Ridley Grotesk', sans-serif; opacity: 0; transform: translateY(20px); pointer-events: none; transition: opacity 1s var(--transition-base), transform 1s var(--transition-base); }

.lang-switcher.show { opacity: 1; transform: translateY(0); pointer-events: auto; }

.lang-switcher .lang--current { padding: 7px 0 7px 14px; cursor: pointer; display: grid; align-items: center; gap: 7px; grid-template-columns: 20px 1fr; }

.lang-switcher .lang--dropdown { display: none; }

.lang-switcher .lang--dropdown a { padding: 7px 0 7px 14px; color: #fff; text-decoration: none; cursor: pointer; display: grid; align-items: center; grid-template-columns: 20px 1fr; gap: 7px; }

.lang-switcher .lang--dropdown a:hover { color: #000; }

.lang-switcher:hover .lang--dropdown { display: block; }

.lang-switcher .lang--text { display: inline-block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2; font-weight: 400; font-size: 12px; letter-spacing: 1px; font-family: 'Ridley Grotesk', sans-serif; text-transform: uppercase; }

/* ============================================================ COMPOSANTS UI — Tags, Badges, Alerts, Box, Paginator ============================================================ */
/* --- Tags --- */
.tag { display: inline-block; padding: 3px .5rem; vertical-align: baseline; white-space: nowrap; color: var(--color-base); border-radius: var(--radius-sm); background-color: var(--gray-200); line-height: 1; }

.tag--primary { background-color: var(--color-primary); color: var(--color-white); }

.tag--success { background-color: var(--color-success); color: var(--color-white); }

.tag--info { background-color: var(--color-base); color: var(--color-white); }

.tag--warning { background-color: var(--color-black); color: var(--color-white); }

.tag--danger { background-color: var(--color-danger); color: var(--color-white); }

.tag--inverse { background-color: transparent; color: var(--color-base); box-shadow: 0 0 0 1px var(--color-base) inset; }

.tag--ghost { background-color: transparent; color: var(--color-white); box-shadow: 0 0 0 1px var(--color-white) inset; }

.tag--small { font-size: 1.2rem; }

.tag--big { font-size: 2rem; }

.tag--block { width: 100%; display: block; }

.tag--disabled, .tag.disabled { opacity: .5; cursor: not-allowed; }

.tag:empty { display: none; }

/* --- Badges --- */
.badge { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; min-height: 1.5rem; padding: .2rem; border-radius: var(--radius-full); color: var(--color-base); background-color: var(--gray-200); line-height: 1; font-size: 0.875rem; }

.badge--primary { background-color: var(--color-primary); color: var(--color-white); }

.badge--success { background-color: var(--color-success); color: var(--color-white); }

.badge--info { background-color: var(--color-base); color: var(--color-white); }

.badge--warning { background-color: var(--color-black); color: var(--color-white); }

.badge--danger { background-color: var(--color-danger); color: var(--color-white); }

.badge--inverse { background-color: transparent; color: var(--color-base); box-shadow: 0 0 0 1px var(--color-base) inset; }

.badge--ghost { background-color: transparent; color: var(--color-white); }

.badge:empty { display: none; }

/* --- Alerts --- */
.alert { padding: 1rem; margin-top: .75em; margin-bottom: 0; color: var(--color-base); border-radius: var(--radius-sm); background-color: var(--gray-200); }

.alert a { color: inherit; text-decoration: underline; }

.alert--primary { background-color: var(--color-primary); color: var(--color-white); }

.alert--success { background-color: var(--color-success); color: var(--color-white); }

.alert--info { background-color: var(--color-base); color: var(--color-white); }

.alert--warning { background-color: var(--color-black); color: var(--color-white); }

.alert--danger { background-color: var(--color-danger); color: var(--color-white); }

.alert--inverse { background-color: transparent; color: var(--color-base); box-shadow: 0 0 0 1px var(--color-base) inset; }

.alert--ghost { background-color: transparent; color: var(--color-white); box-shadow: 0 0 0 1px var(--color-white) inset; }

.alert--block { width: 100%; display: block; }

.alert--disabled, .alert.disabled { opacity: .5; cursor: not-allowed; }

.alert:empty { display: none; }

/* --- Box --- */
.box { color: var(--color-base); border-radius: var(--radius-sm); background-color: var(--color-white); }

.box--primary { background-color: var(--color-primary); color: var(--color-white); }

.box--success { background-color: var(--color-success); color: var(--color-white); }

.box--info { background-color: var(--color-base); color: var(--color-white); }

.box--warning { background-color: var(--color-black); color: var(--color-white); }

.box--danger { background-color: var(--color-danger); color: var(--color-white); }

.box--inverse { background-color: transparent; color: var(--color-base); }

.box--ghost { background-color: transparent; color: var(--color-white); }

.box--block { width: 100%; display: block; border-radius: 0; }

.box--shadow { box-shadow: var(--shadow-lg); }

.box--disabled, .box.disabled { opacity: .5; cursor: not-allowed; }

.box:empty { display: none; }

/* --- Paginator --- */
.paginator { margin: .5rem 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; text-align: center; line-height: 1; }

.paginator > * { display: block; }

.paginator > * a { display: block; padding: .5rem 1rem; color: var(--color-base); border-radius: var(--radius-sm); background-color: var(--gray-200); transition: background-color var(--transition); }

.paginator > * a:hover { background-color: var(--gray-300); }

.paginator > *.active a { background-color: var(--color-base); color: var(--gray-200); pointer-events: none; cursor: not-allowed; }

.paginator--primary > * a { background-color: var(--color-primary); color: var(--color-white); }

.paginator--success > * a { background-color: var(--color-success); color: var(--color-white); }

.paginator--info > * a { background-color: var(--color-base); color: var(--color-white); }

.paginator--danger > * a { background-color: var(--color-danger); color: var(--color-white); }

.paginator--small { font-size: 1.2rem; }

.paginator--big { font-size: 2rem; }

.paginator:empty { display: none; }

/* ============================================================ OWL CAROUSEL ============================================================ */
[data-dve-layout][data-dve-slug=owlcarousel], .owl-carousel { display: none; width: 100%; position: relative; z-index: 1; -webkit-tap-highlight-color: transparent; }

.no-js .dve-view.dve-grid [data-dve-layout][data-dve-slug=owlcarousel], .no-js .dve-view.dve-grid .owl-carousel { display: block; }

.owl-carousel.owl-loaded { display: block; }

.owl-carousel.owl-loading { opacity: 0; display: block; }

.owl-carousel.owl-hidden { opacity: 0; }

.owl-carousel .owl-stage { position: relative; touch-action: manipulation; -moz-backface-visibility: hidden; }

.owl-carousel .owl-stage::after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; }

.owl-carousel .owl-stage-outer { position: relative; overflow: hidden; transform: translate3d(0, 0, 0); }

.owl-carousel .owl-item { position: relative; min-height: 1px; float: left; -webkit-backface-visibility: hidden; }

.owl-carousel .owl-item img:not([width]) { display: block; width: 100%; }

.owl-carousel .owl-nav.disabled, .owl-carousel .owl-nav [class*="owl-"] { color: var(--color-base); font-size: 1.6rem; margin: .5rem; padding: 1.5rem 2rem !important; background: var(--color-white); display: inline-block; cursor: pointer; border-radius: 0; transition: background-color var(--transition); }

.owl-carousel .owl-nav [class*="owl-"]:hover, [data-dve-slug=background_carousel] .owl-nav [class*="owl-"]:hover, [data-dve-slug="owlcarousel"] .owl-nav [class*="owl-"]:hover { color: var(--color-white); }

.owl-carousel .owl-nav .disabled { opacity: .5; cursor: default; }

.dve-layouts .dve-box[data-dve-slug="owlcarousel"] { display: block; }

.owl-carousel-background, [data-dve-slug="owlcarousel"] { width: 100%; position: relative; z-index: 1; }

[data-dve-slug=background_carousel] { position: relative; }

[data-dve-slug=background_carousel]:not(.bottom) div[data-dve-drop-layout][data-dve-drop-widget] { position: absolute; top: 50%; left: 50%; width: 100%; transform: translate(-50%, -50%); z-index: 1; }

[data-dve-slug=background_carousel].bottom div[data-dve-drop-layout][data-dve-drop-widget] { position: absolute; width: 100%; z-index: 1; max-width: 100%; bottom: 5vw; top: auto; left: 50%; right: auto; transform: translateX(-50%); padding-top: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0; }

@media (max-width: 998px) { [data-dve-slug=background_carousel].bottom div[data-dve-drop-layout][data-dve-drop-widget] { bottom: 10vw; } }

@media (max-width: 768px) { [data-dve-slug=background_carousel].bottom div[data-dve-drop-layout][data-dve-drop-widget] { bottom: 17vw; } }

body:not(.no-js) [data-dve-slug=background_carousel] .owl-carousel-background .item img, body:not(.no-js) [data-dve-slug=background_carousel] [data-dve-slug="owlcarousel"] .item img { max-height: 100svh; }

.owl-carousel-background, .owl-carousel, [data-dve-slug="owlcarousel"] { display: none; width: 100%; -webkit-tap-highlight-color: transparent; /* position relative and z-index fix webkit rendering fonts issue */ position: relative; z-index: 1; }

.owl-carousel-background .owl-stage, .owl-carousel .owl-stage, [data-dve-slug="owlcarousel"] .owl-stage { position: relative; touch-action: manipulation; -moz-backface-visibility: hidden; /* fix firefox animation glitch */ }

.owl-carousel-background .owl-stage:after, .owl-carousel .owl-stage:after, [data-dve-slug="owlcarousel"] .owl-stage:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; }

.owl-carousel-background .owl-stage-outer, .owl-carousel .owl-stage-outer, [data-dve-slug="owlcarousel"] .owl-stage-outer { position: relative; overflow: hidden; /* fix for flashing background */ -webkit-transform: translate3d(0px, 0px, 0px); }

.owl-carousel-background .owl-wrapper, .owl-carousel-background .owl-item, .owl-carousel .owl-wrapper, .owl-carousel .owl-item, [data-dve-slug="owlcarousel"] .owl-wrapper, [data-dve-slug="owlcarousel"] .owl-item { -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); }

.owl-carousel-background .owl-item, .owl-carousel .owl-item, [data-dve-slug="owlcarousel"] .owl-item { position: relative; min-height: 1px; float: left; -webkit-backface-visibility: hidden; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; }

.owl-carousel-background .owl-item img, .owl-carousel .owl-item img, [data-dve-slug="owlcarousel"] .owl-item img { display: block; width: 100%; }

.owl-carousel-background .owl-nav.disabled, .owl-carousel-background .owl-dots.disabled, .owl-carousel .owl-nav.disabled, .owl-carousel .owl-dots.disabled, [data-dve-slug="owlcarousel"] .owl-nav.disabled, [data-dve-slug="owlcarousel"] .owl-dots.disabled { display: none; }

.owl-carousel-background .owl-nav .owl-prev, .owl-carousel-background .owl-nav .owl-next, .owl-carousel-background .owl-dot, .owl-carousel .owl-nav .owl-prev, .owl-carousel .owl-nav .owl-next, .owl-carousel .owl-dot, [data-dve-slug="owlcarousel"] .owl-nav .owl-prev, [data-dve-slug="owlcarousel"] .owl-nav .owl-next, [data-dve-slug="owlcarousel"] .owl-dot { cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; }

.owl-carousel-background .owl-nav button.owl-prev, .owl-carousel-background .owl-nav button.owl-next, .owl-carousel-background button.owl-dot, .owl-carousel .owl-nav button.owl-prev, .owl-carousel .owl-nav button.owl-next, .owl-carousel button.owl-dot, [data-dve-slug="owlcarousel"] .owl-nav button.owl-prev, [data-dve-slug="owlcarousel"] .owl-nav button.owl-next, [data-dve-slug="owlcarousel"] button.owl-dot { background: none; color: var(--color-primary); border: none; padding: 0 !important; font-weight: 400; font-size: 3rem; }

.owl-carousel-background.owl-loaded, .owl-carousel.owl-loaded, [data-dve-slug="owlcarousel"].owl-loaded { display: block; }

.owl-carousel-background.owl-loading, .owl-carousel.owl-loading, [data-dve-slug="owlcarousel"].owl-loading { opacity: 0; display: block; }

.owl-carousel-background.owl-hidden, .owl-carousel.owl-hidden, [data-dve-slug="owlcarousel"].owl-hidden { opacity: 0; }

.owl-carousel-background.owl-refresh .owl-item, .owl-carousel.owl-refresh .owl-item, [data-dve-slug="owlcarousel"].owl-refresh .owl-item { visibility: hidden; }

.owl-carousel-background.owl-drag .owl-item, .owl-carousel.owl-drag .owl-item, [data-dve-slug="owlcarousel"].owl-drag .owl-item { touch-action: pan-y; -webkit-user-select: none; -moz-user-select: none; user-select: none; }

.owl-carousel-background.owl-grab, .owl-carousel.owl-grab, [data-dve-slug="owlcarousel"].owl-grab { cursor: move; cursor: grab; }

.owl-carousel-background.owl-rtl, .owl-carousel.owl-rtl, [data-dve-slug="owlcarousel"].owl-rtl { direction: rtl; }

.owl-carousel-background.owl-rtl .owl-item, .owl-carousel.owl-rtl .owl-item, [data-dve-slug="owlcarousel"].owl-rtl .owl-item { float: right; }

.no-js .owl-carousel, .no-js .owl-carousel-background { display: block; }

.owl-carousel .animated, .owl-carousel-background .animated { animation-duration: 2000ms; animation-fill-mode: both; }

.owl-carousel .owl-animated-in, .owl-carousel-background .owl-animated-in { z-index: 0; }

.owl-carousel .owl-animated-out, .owl-carousel-background .owl-animated-out { z-index: 1; }

.owl-carousel .fadeOut, .owl-carousel-background .fadeOut { animation-name: fadeOut; }

@keyframes fadeOut { 0% { opacity: 1; }
  100% { opacity: 0; } }

.owl-height { transition: height 500ms ease-in-out; }

.owl-carousel .owl-item, .owl-carousel-background .owl-item { /** This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong calculation of the height of the owl-item that breaks page layouts */ }

.owl-carousel .owl-item .owl-lazy, .owl-carousel-background .owl-item .owl-lazy { opacity: 0; transition: opacity 400ms ease; }

.owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]), .owl-carousel-background .owl-item .owl-lazy[src^=""], .owl-carousel-background .owl-item .owl-lazy:not([src]) { max-height: 0; }

.owl-carousel .owl-item img.owl-lazy, .owl-carousel-background .owl-item img.owl-lazy { transform-style: preserve-3d; }

.owl-carousel .owl-video-wrapper, .owl-carousel-background .owl-video-wrapper { position: relative; height: 100%; background: #000; }

.owl-carousel .owl-video-play-icon, .owl-carousel-background .owl-video-play-icon { position: absolute; height: 80px; width: 80px; left: 50%; top: 50%; margin-left: -40px; margin-top: -40px; background: url("#owl.video.play.png") no-repeat; cursor: pointer; z-index: 1; -webkit-backface-visibility: hidden; transition: transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover, .owl-carousel-background .owl-video-play-icon:hover { transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn, .owl-carousel .owl-video-playing .owl-video-play-icon, .owl-carousel-background .owl-video-playing .owl-video-tn, .owl-carousel-background .owl-video-playing .owl-video-play-icon { display: none; }

.owl-carousel .owl-video-tn, .owl-carousel-background .owl-video-tn { opacity: 0; height: 100%; background-position: center center; background-repeat: no-repeat; background-size: contain; transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame, .owl-carousel-background .owl-video-frame { position: relative; z-index: 1; height: 100%; width: 100%; }

@keyframes fadeOut { from { opacity: 1; }
  to { opacity: 0; } }

@keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }

.owl-carousel .animated { animation-duration: 1s; animation-fill-mode: both; }

.owl-carousel .owl-animated-in { z-index: 0; }

.owl-carousel .owl-animated-out { z-index: 1; }

.owl-carousel .fadeOut { animation-name: fadeOut; }

.owl-carousel .fadeIn { animation-name: fadeIn; }

[data-dve-slug=background_carousel] .animated { animation-duration: 3s; }

[data-dve-slug=background_carousel] .backgroundFadeOut { animation-name: fadeOut; }

[data-dve-slug=background_carousel] .fadeOutEvent { animation-name: fadeOut; animation-duration: 2s !important; }

[data-dve-slug=background_carousel] .fadeInEvent { animation-name: fadeIn; animation-duration: 2s !important; }

[data-dve-slug=background_carousel] img { -o-object-fit: cover; object-fit: cover; -o-object-position: center; object-position: center; }

.owl-height { transition: height 500ms ease-in-out; }

.slider-items .owl-stage { padding-left: 0 !important; }

.slider-items .owl-item { transform: scale(0.85); opacity: 0.5; }

.slider-items .owl-item.active:first-child { transform: scale(1); opacity: 1; }

/* ============================================================ ACCORDÉON ============================================================ */
[data-dve-slug="accordeon"] [data-accordeon] { border-bottom: 1px solid #ddd; }

[data-dve-slug="accordeon"] [data-accordeon-title] { cursor: pointer; padding: 1rem; position: relative; }

[data-dve-slug="accordeon"] [data-accordeon-title]::after { content: '\f0da'; font-family: FontAwesome, fantasy; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); transition: transform var(--transition); }

[data-dve-slug="accordeon"] [data-accordeon].active [data-accordeon-title]::after { transform: translateY(-50%) rotate(90deg); }

[data-dve-slug="accordeon"] [data-accordeon-content] { padding: 0 1rem; display: none; opacity: 0; transform: translateY(-8px); }

[data-dve-slug="accordeon"] [data-accordeon].active [data-accordeon-content] { display: block; padding: 1rem; animation: accordeonFade 0.25s ease forwards; }

@keyframes accordeonFade { from { opacity: 0;
    transform: translateY(-8px); }
  to { opacity: 1;
    transform: translateY(0); } }

/* ============================================================ TABS ============================================================ */
[data-dve-slug="tabs"] .tabs { display: flex; border-bottom: 1px solid #ddd; gap: 0.5rem; }

[data-dve-slug="tabs"] .tab-title { cursor: pointer; padding: 0.75rem 1rem; position: relative; opacity: 0.6; transition: all 0.2s ease; }

[data-dve-slug="tabs"] .tab-title:hover { opacity: 1; }

[data-dve-slug="tabs"] .tab-title.active { opacity: 1; font-weight: 600; }

[data-dve-slug="tabs"] .tab-title::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: black; transform: scaleX(0); transform-origin: left; transition: transform 0.25s ease; }

[data-dve-slug="tabs"] .tab-title.active::after { transform: scaleX(1); }

[data-dve-slug="tabs"] .tab-content { display: none; opacity: 0; transform: translateY(8px); }

[data-dve-slug="tabs"] .tab-content.active { display: block; animation: tabFade 0.25s ease forwards; }

@keyframes tabFade { from { opacity: 0;
    transform: translateY(8px); }
  to { opacity: 1;
    transform: translateY(0); } }

/* ============================================================ WIDGET FORMULAIRE ============================================================ */
.widget_formulaire .form_title { background-color: #2c3e50; color: var(--color-white); text-align: center; font-weight: bold; padding: 1rem 2rem; margin-bottom: var(--space-lg); }

.widget_formulaire .form_title > * { margin: 0; padding: 0; }

.widget_formulaire .form_header_line { padding: 1rem 2rem; margin-bottom: var(--space-md); }

.widget_formulaire .form_header_line > * { margin: 0; padding: 0; font-size: 18px; font-weight: normal; }

.widget_formulaire .form_header_line.chapter { margin-top: var(--space-md); }

.widget_formulaire .form_body_line { display: flex; flex-wrap: wrap; flex-direction: row; align-items: center; min-height: 75px; padding: 1rem var(--space-md); gap: 1rem; }

@media (max-width: 768px) { .widget_formulaire .form_body_line { flex-direction: column; align-items: flex-start; } }

.widget_formulaire .form_body_line label .fa-star { font-size: 1rem; color: #d9534f; vertical-align: top; }

.widget_formulaire .form_body_line > div:first-of-type { flex: 2; }

.widget_formulaire .form_body_line > div:first-of-type .text_label { font-size: 1.2rem; font-style: italic; margin: 0; }

.widget_formulaire .form_body_line > div:last-of-type { flex: 1; display: flex; min-width: 150px; }

@media (max-width: 768px) { .widget_formulaire .form_body_line > div:first-of-type, .widget_formulaire .form_body_line > div:last-of-type { width: 100%; flex: none; } }

.widget_formulaire .form_submit { display: flex; justify-content: center; align-items: center; width: 100%; outline: none; }

.widget_formulaire .form_submit img { margin: 1rem; }

/* Champs spécifiques — tous 100% par défaut */
.widget_formulaire [class^="field_"] { width: 100%; border-radius: 10px; }

.widget_formulaire .field_radio, .widget_formulaire .field_checkbox { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: .5rem; }

.widget_formulaire .field_radio.display_colonne, .widget_formulaire .field_checkbox.display_colonne { flex-direction: column; }

.widget_formulaire .field_radio > div, .widget_formulaire .field_checkbox > div { display: flex; justify-content: flex-start; align-items: center; }

.widget_formulaire .field_radio > div > label, .widget_formulaire .field_checkbox > div > label { margin: 0; padding: 1rem; }

.widget_formulaire .field_date, .widget_formulaire .field_birthdate { width: 100%; display: flex; justify-content: center; align-items: center; }

.widget_formulaire .field_date input, .widget_formulaire .field_birthdate input { border-radius: 10px; width: 100%; }

.widget_formulaire .field_dateheure { width: 100%; display: flex; flex-wrap: wrap; gap: 1rem; }

.widget_formulaire .field_dateheure div.date, .widget_formulaire .field_dateheure div.heure { flex: 1 1 120px; display: flex; align-items: center; }

.widget_formulaire .field_dateheure div.date input, .widget_formulaire .field_dateheure div.heure > div select { border-radius: 10px; width: 100%; }

.widget_formulaire .field_civilite { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem; width: 100%; }

.widget_formulaire .field_civilite > div { width: 100%; }

.widget_formulaire .field_civilite > div input { margin: 0 1rem; }

/* ============================================================ GALERIE & IMAGES ============================================================ */
[data-dve-widget][data-dve-slug="img-html"] > figure { background-size: cover; background-repeat: no-repeat; background-position: center; overflow: hidden; transition: all var(--transition); }

[data-dve-widget][data-dve-slug="img-html"] > figure > figcaption { padding: var(--space-md); background: rgba(253, 255, 253, 0.8); opacity: 0; transform: scale(1.1); transition: all var(--transition); }

[data-dve-widget][data-dve-slug="img-html"] > figure:hover > figcaption, [data-dve-widget][data-dve-slug="img-html"] > figure:focus > figcaption { opacity: 1; transform: scale(1); }

[data-dve-widget][data-dve-slug="galerie"] { position: relative; overflow: hidden; }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal { height: 100px; overflow: hidden; margin: 0 auto; }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--next, [data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--prev { position: absolute; top: 50%; transform: translateY(-50%); }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--next[disabled], [data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--prev[disabled] { display: none; }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--next { right: 0; }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--prev { left: 0; }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--slide { height: 100%; display: inline-flex; flex-direction: column; text-align: center; margin: 0 var(--space-md); }

[data-dve-widget][data-dve-slug="galerie"] .galeries--slider-horizontal .galeries--slide img { -o-object-fit: contain; object-fit: contain; display: block; height: 100%; }

/* ============================================================ YOUTUBE / VIDÉO ============================================================ */
[data-dve-widget][data-dve-slug=youtube] > * { position: relative; cursor: pointer; min-height: 50px; }

[data-dve-widget][data-dve-slug=youtube] > * > img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }

[data-dve-widget][data-dve-slug=youtube] > *::after { content: '\f144'; font-family: FontAwesome, fantasy; text-align: center; font-size: 6rem; color: var(--color-white); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

[data-dve-widget][data-dve-slug=youtube] > *::before { content: ''; display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.2); }

/* ============================================================ BACKGROUNDS ============================================================ */
[data-dve-slug="background"] { background-size: cover; background-position: center; background-repeat: no-repeat; }

[data-dve-slug="background"].background-position-top { background-position: center top; }

[data-dve-slug="background"].background-position-bottom { background-position: center bottom; }

/* ============================================================ FICHIERS / DOSSIERS DATAROOM ============================================================ */
.dossiers_list { box-sizing: border-box; clear: both; }

.dossiers_list .dossier, .fichiers_list .dossier { -webkit-user-select: none; -moz-user-select: none; user-select: none; box-sizing: border-box; display: inline-block; width: 120px; min-height: 100px; position: relative; border: 1px solid #d7d9d7; background-color: var(--color-primary); margin: 15px 5px 5px; cursor: pointer; padding: 10px; vertical-align: top; transition: background-color var(--transition), border-color var(--transition); }

.dossiers_list .dossier::before, .fichiers_list .dossier::before { box-sizing: border-box; position: absolute; content: ''; top: -10px; left: -1px; background-color: var(--color-primary); border-top: 1px solid #d7d9d7; border-left: 1px solid #d7d9d7; border-right: 1px solid #d7d9d7; border-radius: 3px 3px 0 0; width: 60px; height: 11px; }

.dossiers_list .dossier > .dossier_nom, .fichiers_list .dossier > .dossier_nom { font-size: 16px; color: var(--color-white); font-weight: bold; overflow: hidden; }

.dossiers_list .dossier:hover, .fichiers_list .dossier:hover { background-color: var(--color-primary); border-color: var(--color-primary); }

.fichiers_list { background: var(--gray-100); padding: var(--space-md); margin-bottom: var(--space-md); }

.fichiers_list h2 { margin: -2rem -2rem 2rem; padding: 1rem 2rem; color: var(--color-white); background: var(--color-primary); font-size: 2rem; font-weight: 900; }

.fichiers_list h2 .close, .fichiers_list h2 .back { float: right; color: #97ff97; cursor: pointer; vertical-align: middle; }

.fichiers_list h2 .back { margin-right: 10px; }

.fichiers_list .fichier_nom { font-size: .8em !important; }

.fichiers_list:empty { display: none; }

.fichiers_list > .list { margin-top: 54px; margin-bottom: 30px; background: #f4f4f4; position: relative; display: flex; flex-wrap: wrap; gap: 10px; padding: 10px; }

.fichiers_list > .list > .fichier, .fichiers_list > .list > .fichier_zip { -webkit-user-select: none; -moz-user-select: none; user-select: none; position: relative; border: 1px solid #d7d9d7; cursor: pointer; padding: 10px; background: var(--color-white); flex: 0 0 calc(25% - 10px); display: flex; overflow: hidden; transition: border-color var(--transition); }

@media (max-width: 1080px) { .fichiers_list > .list > .fichier, .fichiers_list > .list > .fichier_zip { flex: 0 0 calc(33.33% - 10px); } }

@media (max-width: 992px) { .fichiers_list > .list > .fichier, .fichiers_list > .list > .fichier_zip { flex: 0 0 calc(50% - 10px); } }

@media (max-width: 768px) { .fichiers_list > .list > .fichier, .fichiers_list > .list > .fichier_zip { flex: 0 0 100%; } }

.fichiers_list > .list > .fichier > .thumb, .fichiers_list > .list > .fichier_zip > .thumb { background-color: #eee; background-size: contain; background-position: center; background-repeat: no-repeat; flex: 0 0 100px; height: 100px; }

.fichiers_list > .list > .fichier > .fichier_nom, .fichiers_list > .list > .fichier_zip > .fichier_nom { font-size: 1.6rem; line-height: 20px; color: #d7d9d7; font-weight: 400; flex: 1; margin-left: 10px; word-wrap: break-word; }

.fichiers_list > .list > .fichier .fakeFile, .fichiers_list > .list > .fichier_zip .fakeFile { display: flex; align-items: center; justify-content: center; height: 100px; background: #d7d9d7; color: var(--color-white); flex: 0 0 100px; transition: background-color var(--transition); }

.fichiers_list > .list > .fichier:hover, .fichiers_list > .list > .fichier_zip:hover { border-color: var(--color-primary); }

.fichiers_list > .list > .fichier:hover .fakeFile, .fichiers_list > .list > .fichier_zip:hover .fakeFile { background: var(--color-primary); }

.fichiers_list > .list .folderDownload { background: #d7d9d7; color: var(--color-white); position: absolute; height: 24px; line-height: 24px; right: 0; cursor: pointer; padding: 0 10px; bottom: 100%; font-size: 14px; transition: background-color var(--transition); }

.fichiers_list > .list .folderDownload:hover { background: var(--color-primary); }

/* ============================================================ WIDGET SOCIAL ============================================================ */
#widget_social_networks { display: flex; flex-wrap: wrap; gap: 1rem; }

#widget_social_networks .block_social_network { margin: 1rem; }

/* ============================================================ UTILITAIRES — Helpers ============================================================ */
.is-hidden, .js-hidden, [hidden], .hidden, .hide { display: none !important; }

.visually-hidden, #prevent, #postvent, #ventilateur { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; border: 0 !important; }

.is-disabled, [disabled], .is-disabled ~ label, [disabled] ~ label { opacity: .5; cursor: not-allowed !important; filter: grayscale(1); }

ul.is-unstyled, ul.unstyled { list-style: none; padding-left: 0; }

/* Alignement texte */
.txtleft { text-align: left; }

.txtright { text-align: right; }

.txtcenter { text-align: center; }

.left { margin-right: auto; }

.right { margin-left: auto; }

.center { margin-left: auto; margin-right: auto; }

.fl { float: left; }

.fr { float: right; }

img.fl { margin-right: 1rem; }

img.fr { margin-left: 1rem; }

img.fl, img.fr { margin-bottom: .5rem; }

.inbl { display: inline-block; vertical-align: top; }

/* Typo */
.u-bold { font-weight: 700; }

.u-light { font-weight: 300; }

.u-italic { font-style: italic; }

.u-normal { font-weight: normal; font-style: normal; }

.u-uppercase { text-transform: uppercase; }

.u-lowercase { text-transform: lowercase; }

.u-smaller { font-size: .6em; }

.u-small { font-size: .8em; }

.u-big { font-size: 1.2em; }

.u-bigger { font-size: 1.5em; }

.u-biggest { font-size: 2em; }

.u-txt-ellipsis { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }

.u-txt-wrap { word-wrap: break-word; overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }

/* Largeurs % */
.w100 { width: 100%; }

.w95 { width: 95%; }

.w90 { width: 90%; }

.w85 { width: 85%; }

.w80 { width: 80%; }

.w75 { width: 75%; }

.w70 { width: 70%; }

.w65 { width: 65%; }

.w60 { width: 60%; }

.w55 { width: 55%; }

.w50 { width: 50%; }

.w45 { width: 45%; }

.w40 { width: 40%; }

.w35 { width: 35%; }

.w30 { width: 30%; }

.w25 { width: 25%; }

.w20 { width: 20%; }

.w15 { width: 15%; }

.w10 { width: 10%; }

.w5 { width: 5%; }

.w66 { width: calc(100% / 3 * 2); }

.w33 { width: calc(100% / 3); }

.wauto { width: auto; }

@media (min-width: 576px) { .w-sm-100 { width: 100%; }
  .w-sm-80 { width: 80%; }
  .w-sm-75 { width: 75%; }
  .w-sm-70 { width: 70%; }
  .w-sm-66 { width: calc(100% / 3 * 2); }
  .w-sm-50 { width: 50%; }
  .w-sm-40 { width: 40%; }
  .w-sm-33 { width: calc(100% / 3); }
  .w-sm-25 { width: 25%; } }

@media (min-width: 768px) { .w-md-100 { width: 100%; }
  .w-md-85 { width: 85%; }
  .w-md-80 { width: 80%; }
  .w-md-75 { width: 75%; }
  .w-md-70 { width: 70%; }
  .w-md-66 { width: calc(100% / 3 * 2); }
  .w-md-50 { width: 50%; }
  .w-md-40 { width: 40%; }
  .w-md-33 { width: calc(100% / 3); }
  .w-md-25 { width: 25%; } }

@media (min-width: 992px) { .w-lg-100 { width: 100%; }
  .w-lg-85 { width: 85%; }
  .w-lg-80 { width: 80%; }
  .w-lg-75 { width: 75%; }
  .w-lg-70 { width: 70%; }
  .w-lg-66 { width: calc(100% / 3 * 2); }
  .w-lg-50 { width: 50%; }
  .w-lg-40 { width: 40%; }
  .w-lg-33 { width: calc(100% / 3); }
  .w-lg-25 { width: 25%; } }

@media (min-width: 1200px) { .w-xl-100 { width: 100%; }
  .w-xl-85 { width: 85%; }
  .w-xl-80 { width: 80%; }
  .w-xl-75 { width: 75%; }
  .w-xl-70 { width: 70%; }
  .w-xl-66 { width: calc(100% / 3 * 2); }
  .w-xl-50 { width: 50%; }
  .w-xl-40 { width: 40%; }
  .w-xl-33 { width: calc(100% / 3); }
  .w-xl-25 { width: 25%; } }

@media (min-width: 1400px) { .w-xxl-100 { width: 100%; }
  .w-xxl-85 { width: 85%; }
  .w-xxl-80 { width: 80%; }
  .w-xxl-75 { width: 75%; }
  .w-xxl-70 { width: 70%; }
  .w-xxl-66 { width: calc(100% / 3 * 2); }
  .w-xxl-50 { width: 50%; }
  .w-xxl-40 { width: 40%; }
  .w-xxl-33 { width: calc(100% / 3); }
  .w-xxl-25 { width: 25%; } }

/* Reset */
.man, .ma0 { margin: 0; }

.pan, .pa0 { padding: 0; }

/* Margin all */
.mas { margin: var(--space-vs); }

.mam { margin: var(--space-vm); }

.mal { margin: var(--space-vl); }

.maxl { margin: var(--space-vxl); }

.pas { padding: var(--space-vs); }

.pam { padding: var(--space-vm); }

.pal { padding: var(--space-vl); }

.paxl { padding: var(--space-vxl); }

/* Auto */
.mauto { margin: auto; }

.mtauto { margin-top: auto; }

.mbauto { margin-bottom: auto; }

.mlauto { margin-left: auto; }

.mrauto { margin-right: auto; }

/* Margin X / Y */
.mx0 { margin-left: 0; margin-right: 0; }

.my0 { margin-top: 0; margin-bottom: 0; }

.mxs { margin-left: var(--space-vs); margin-right: var(--space-vs); }

.mxm { margin-left: var(--space-vm); margin-right: var(--space-vm); }

.mxl { margin-left: var(--space-vl); margin-right: var(--space-vl); }

.mxxl { margin-left: var(--space-vxl); margin-right: var(--space-vxl); }

.mys { margin-top: var(--space-vs); margin-bottom: var(--space-vs); }

.mym { margin-top: var(--space-vm); margin-bottom: var(--space-vm); }

.myl { margin-top: var(--space-vl); margin-bottom: var(--space-vl); }

.myxl { margin-top: var(--space-vxl); margin-bottom: var(--space-vxl); }

/* Padding X / Y */
.px0 { padding-left: 0; padding-right: 0; }

.py0 { padding-top: 0; padding-bottom: 0; }

.pxs { padding-left: var(--space-vs); padding-right: var(--space-vs); }

.pxm { padding-left: var(--space-vm); padding-right: var(--space-vm); }

.pxl { padding-left: var(--space-vl); padding-right: var(--space-vl); }

.pxxl { padding-left: var(--space-vxl); padding-right: var(--space-vxl); }

.pys { padding-top: var(--space-vs); padding-bottom: var(--space-vs); }

.pym { padding-top: var(--space-vm); padding-bottom: var(--space-vm); }

.pyl { padding-top: var(--space-vl); padding-bottom: var(--space-vl); }

.pyxl { padding-top: var(--space-vxl); padding-bottom: var(--space-vxl); }

/* Margin directions */
.mt0 { margin-top: 0; }

.mb0 { margin-bottom: 0; }

.ml0 { margin-left: 0; }

.mr0 { margin-right: 0; }

.mts { margin-top: var(--space-vs); }

.mtm { margin-top: var(--space-vm); }

.mtl { margin-top: var(--space-vl); }

.mbs { margin-bottom: var(--space-vs); }

.mbm { margin-bottom: var(--space-vm); }

.mbl { margin-bottom: var(--space-vl); }

.mls { margin-left: var(--space-vs); }

.mlm { margin-left: var(--space-vm); }

.mll { margin-left: var(--space-vl); }

.mrs { margin-right: var(--space-vs); }

.mrm { margin-right: var(--space-vm); }

.mrl { margin-right: var(--space-vl); }

/* Padding directions */
.pt0 { padding-top: 0; }

.pb0 { padding-bottom: 0; }

.pl0 { padding-left: 0; }

.pr0 { padding-right: 0; }

.pts { padding-top: var(--space-vs); }

.ptm { padding-top: var(--space-vm); }

.ptl { padding-top: var(--space-vl); }

.pbs { padding-bottom: var(--space-vs); }

.pbm { padding-bottom: var(--space-vm); }

.pbl { padding-bottom: var(--space-vl); }

.pls { padding-left: var(--space-vs); }

.plm { padding-left: var(--space-vm); }

.pll { padding-left: var(--space-vl); }

.prs { padding-right: var(--space-vs); }

.prm { padding-right: var(--space-vm); }

.prl { padding-right: var(--space-vl); }

/* Couleurs de fond */
.bkg--primary { background-color: var(--color-primary); }

.bkg--white { background-color: var(--color-white); }

.bkg--black { background-color: var(--color-black); }

.bkg--base { background-color: var(--color-base); }

.bkg--alt1 { background-color: var(--color-alt1); }

.bkg--alt2 { background-color: var(--color-alt2); }

.bkg--alt3 { background-color: var(--color-alt3); }

.bkg--danger { background-color: var(--color-danger); }

.bkg--warning { background-color: var(--color-warning); }

.bkg--gray-100 { background-color: var(--gray-100); }

.bkg--gray-200 { background-color: var(--gray-200); }

.bkg--gray-300 { background-color: var(--gray-300); }

.bkg--gray-400 { background-color: var(--gray-400); }

.bkg--gray-500 { background-color: var(--gray-500); }

.bkg--gray-600 { background-color: var(--gray-600); }

.bkg--gray-700 { background-color: var(--gray-700); }

.bkg--gray-800 { background-color: var(--gray-800); }

.bkg--gray-900 { background-color: var(--gray-900); }

/* Couleurs de texte */
.color--primary { color: var(--color-primary); }

.color--white { color: var(--color-white); }

.color--black { color: var(--color-black); }

.color--base { color: var(--color-base); }

.color--alt1 { color: var(--color-alt1); }

.color--alt2 { color: var(--color-alt2); }

.color--alt3 { color: var(--color-alt3); }

.color--danger { color: var(--color-danger); }

.color--warning { color: var(--color-warning); }

.color--inverse { color: var(--color-white); }

.color--gray-100 { color: var(--gray-100); }

.color--gray-200 { color: var(--gray-200); }

.color--gray-300 { color: var(--gray-300); }

.color--gray-400 { color: var(--gray-400); }

.color--gray-500 { color: var(--gray-500); }

.color--gray-600 { color: var(--gray-600); }

.color--gray-700 { color: var(--gray-700); }

.color--gray-800 { color: var(--gray-800); }

.color--gray-900 { color: var(--gray-900); }

/* Force color */
.force-color--primary { color: var(--color-primary) !important; }

.force-color--primary * { color: var(--color-primary) !important; }

.force-color--white { color: var(--color-white) !important; }

.force-color--white * { color: var(--color-white) !important; }

.force-color--base { color: var(--color-base) !important; }

.force-color--base * { color: var(--color-base) !important; }

.force-color--danger { color: var(--color-danger) !important; }

.force-color--danger * { color: var(--color-danger) !important; }

/* Ombre utilitaire */
.shadow { box-shadow: 0 3px 39px -30px rgba(0, 0, 0, 0.5); }

.unset-img { width: unset !important; height: unset !important; }

/* ============================================================ RESPONSIVE HELPERS ============================================================ */
@media (min-width: 1080px) { .large-hidden { display: none !important; }
  .large-visible { display: block !important; }
  .large-inbl { display: inline-block; float: none; vertical-align: top; }
  .large-w25 { width: 25% !important; }
  .large-w33 { width: 33.333% !important; }
  .large-w50 { width: 50% !important; }
  .large-w66 { width: 66.666% !important; }
  .large-w75 { width: 75% !important; }
  .large-wauto, .large-w100 { display: block !important; float: none !important; width: auto !important; margin: 0 !important; }
  .large-ma0 { margin: 0 !important; } }

@media (min-width: 992px) and (max-width: 1079px) { .medium-hidden { display: none !important; }
  .medium-visible { display: block !important; }
  .medium-w25 { width: 25% !important; }
  .medium-w33 { width: 33.333% !important; }
  .medium-w50 { width: 50% !important; }
  .medium-w66 { width: 66.666% !important; }
  .medium-w75 { width: 75% !important; }
  .medium-wauto, .medium-w100 { display: block !important; float: none !important; width: auto !important; margin: 0 !important; } }

@media (min-width: 768px) and (max-width: 991px) { .small-hidden { display: none !important; }
  .small-visible { display: block !important; }
  .small-w25 { width: 25% !important; }
  .small-w33 { width: 33.333% !important; }
  .small-w50 { width: 50% !important; }
  .small-w66 { width: 66.666% !important; }
  .small-w75 { width: 75% !important; }
  .small-wauto, .small-w100 { display: block !important; float: none !important; width: auto !important; margin: 0 !important; }
  .small-pa0 { padding: 0 !important; } }

@media (max-width: 767px) { .tiny-hidden { display: none !important; }
  .tiny-visible { display: block !important; }
  .tiny-w25 { width: 25% !important; }
  .tiny-w33 { width: 33.333% !important; }
  .tiny-w50 { width: 50% !important; }
  .tiny-w66 { width: 66.666% !important; }
  .tiny-w75 { width: 75% !important; }
  .tiny-wauto, .tiny-w100 { display: block !important; float: none !important; width: auto !important; margin: 0 !important; }
  .tiny-pa0 { padding: 0 !important; } }

/* ============================================================ IMPRESSION ============================================================ */
@media print { * { background: transparent !important; box-shadow: none !important; text-shadow: none !important; }
  body { width: auto; margin: auto; font-family: serif; font-size: 9pt; }
  p, h1, h2, h3, h4, h5, h6, blockquote, label, ul, ol { color: #000; margin: auto; }
  .print { display: block; }
  .no-print { display: none; }
  p, blockquote { orphans: 3; widows: 3; }
  blockquote, ul, ol { page-break-inside: avoid; }
  h1, h2, h3, caption { page-break-after: avoid; }
  a { color: #000; }
  a[href^="javascript:"]::after, a[href^="#"]::after { content: ""; }
  .page-keep-together { page-break-inside: avoid; }
  .page-break-before { page-break-before: always; }
  .page-break-after { page-break-after: always; } }

/* ============================================================ FONT AWESOME ============================================================ */
.fa { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

.fa-lg { font-size: 1.333em; line-height: .75em; vertical-align: -15%; }

.fa-2x { font-size: 2em; }

.fa-3x { font-size: 3em; }

.fa-4x { font-size: 4em; }

.fa-5x { font-size: 5em; }

.fa-fw { width: 1.286em; text-align: center; }

.fa-spin { animation: fa-spin 2s infinite linear; }

.fa-pulse { animation: fa-spin 1s infinite steps(8); }

@keyframes fa-spin { 0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); } }

.fa-rotate-90 { transform: rotate(90deg); }

.fa-rotate-180 { transform: rotate(180deg); }

.fa-rotate-270 { transform: rotate(270deg); }

.fa-flip-horizontal { transform: scale(-1, 1); }

.fa-flip-vertical { transform: scale(1, -1); }

.fa-inverse { color: var(--color-white); }

.fa-stack { position: relative; display: inline-block; width: 2em; height: 2em; line-height: 2em; vertical-align: middle; }

.fa-stack-1x, .fa-stack-2x { position: absolute; left: 0; width: 100%; text-align: center; }

.fa-stack-1x { line-height: inherit; }

.fa-stack-2x { font-size: 2em; }

/* Flèches avec masque SVG */
[class*="icon-arrow--"] { vertical-align: middle; }

[class*="icon-arrow--"]::after { content: ""; display: inline-block; width: 1em; height: 1em; mask-size: cover; -webkit-mask-size: cover; background-color: var(--color-primary); line-height: 1; }

.icon-arrow--down::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9.96 11.966L3.523 5.589C2.464 4.627.495 6.842 1.505 7.771L8.494 14.763C9.138 15.35 10.655 15.369 11.29 14.763L18.49 7.771C19.557 6.752 17.364 4.68 16.262 5.725L9.96 11.966Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9.96 11.966L3.523 5.589C2.464 4.627.495 6.842 1.505 7.771L8.494 14.763C9.138 15.35 10.655 15.369 11.29 14.763L18.49 7.771C19.557 6.752 17.364 4.68 16.262 5.725L9.96 11.966Z'/%3E%3C/svg%3E"); }

.icon-arrow--up::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9.96 8.596L3.523 14.973C2.464 15.935.495 13.72 1.505 12.791L8.494 5.799C9.138 5.212 10.655 5.193 11.29 5.799L18.49 12.791C19.557 13.809 17.364 15.882 16.262 14.837L9.96 8.596Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9.96 8.596L3.523 14.973C2.464 15.935.495 13.72 1.505 12.791L8.494 5.799C9.138 5.212 10.655 5.193 11.29 5.799L18.49 12.791C19.557 13.809 17.364 15.882 16.262 14.837L9.96 8.596Z'/%3E%3C/svg%3E"); }

.icon-arrow--right::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M11.685 10.321L5.308 16.758C4.346 17.817 6.561 19.786 7.49 18.776L14.482 11.787C15.069 11.142 15.088 9.626 14.482 8.991L7.49 1.791C6.472.724 4.399 2.916 5.444 4.019L11.685 10.321Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M11.685 10.321L5.308 16.758C4.346 17.817 6.561 19.786 7.49 18.776L14.482 11.787C15.069 11.142 15.088 9.626 14.482 8.991L7.49 1.791C6.472.724 4.399 2.916 5.444 4.019L11.685 10.321Z'/%3E%3C/svg%3E"); }

.icon-arrow--left::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M8.315 10.321L14.692 16.758C15.654 17.817 13.439 19.786 12.51 18.776L5.518 11.787C4.931 11.142 4.912 9.626 5.518 8.991L12.51 1.791C13.528.724 15.601 2.916 14.556 4.019L8.315 10.321Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M8.315 10.321L14.692 16.758C15.654 17.817 13.439 19.786 12.51 18.776L5.518 11.787C4.931 11.142 4.912 9.626 5.518 8.991L12.51 1.791C13.528.724 15.601 2.916 14.556 4.019L8.315 10.321Z'/%3E%3C/svg%3E"); }

.scroll-slider h3 { width: auto; position: relative; font-family: 'Ridley Grotesk', sans-serif; font-weight: 300; line-height: 1.8em; font-size: 20px; margin: 25px 0 15px; display: inline-block; color: #000; }

.scroll-slider h3::after { content: ""; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: #847657; transition: width 0.4s ease; }

.scroll-slider .owl-item { cursor: pointer; }

.scroll-slider .owl-item:hover h3::after { width: 100%; }

.scroll-slider .owl-item:hover img { transform: scale(1.08); }

.scroll-slider img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transition: transform 0.6s ease; display: block; }

.scroll-slider .img-wrapper { width: 100%; height: 550px; overflow: hidden; position: relative; }

.no-js .dve-view.dve-grid [data-dve-slug="background_carousel"] { max-height: 60vh; }

.page-content-bloc { margin-top: calc(100px); }

.full-header .page-content-bloc { margin-top: 0; }

.text-black, .text-black * { color: var(--color-black); }

.text-white, .text-white * { color: var(--color-white); }

.text-primary, .text-primary * { color: var(--color-primary); }

.text-secondary, .text-secondary * { color: var(--color-secondary); }

.text-center { text-align: center; }

.text-right { text-align: right; }

.text-left { text-align: left; }

.text-justify { text-align: justify; }

.letter-spacing-1, .letter-spacing-1 * { letter-spacing: 1px; }

.letter-spacing-2, .letter-spacing-2 * { letter-spacing: 2px; }

.letter-spacing-3, .letter-spacing-3 * { letter-spacing: 3px; }

.font-size-s, .font-size-s * { font-size: var(--font-size-xs); }

.font-size-sm, .font-size-sm * { font-size: var(--font-size-sm); }

.font-size-m, .font-size-m * { font-size: var(--font-size-m); }

.color-primary, .color-primary * { color: var(--color-primary) !important; }

.text-decoration-none, .text-decoration-none * { text-decoration: none !important; }

.dunebox-v2 [data-dunebox-gallery-controls] > div button { line-height: 1 !important; }

.interactive-section { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 30px; max-width: 100%; }

.interactive-section .image-display { flex: 1 1 45%; max-width: 50%; min-height: 480px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }

.interactive-section .image-display img { width: 95%; height: auto; max-width: 100%; max-height: 100%; -o-object-fit: contain; object-fit: contain; opacity: 0; transition: opacity 0.6s ease; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }

.interactive-section .image-display img.active { opacity: 1; z-index: 1; }

.interactive-section .table-container { flex: 1 1 55%; max-width: 50%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--color-primary) #f1f1f1; }

.interactive-section .table-container::-webkit-scrollbar { height: 8px; }

.interactive-section .table-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; }

.interactive-section .table-container::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: 10px; -webkit-transition: background 0.3s ease; transition: background 0.3s ease; }

.interactive-section .table-container::-webkit-scrollbar-thumb:hover { background: var(--color-primary); }

.interactive-section .interactive-table { border-collapse: collapse; table-layout: auto; font-family: "Open Sans", sans-serif; font-size: 14px; line-height: 2em; border: 1px solid #eee; margin: 0 0 15px; text-align: left; width: 100%; }

.interactive-section .interactive-table tr { line-height: 2em; }

.interactive-section .interactive-table td, .interactive-section .interactive-table th { text-align: center; border-bottom: 1px solid #847657; white-space: nowrap; }

.interactive-section .interactive-table th { color: #555; font-weight: 700; padding: 9px 24px; font-family: 'Ridley Grotesk', sans-serif; font-size: 11.5px; line-height: 1.5em; text-transform: uppercase; cursor: pointer; }

.interactive-section .interactive-table th:hover { text-decoration: underline; }

.interactive-section .interactive-table td { border-top: 1px solid #eee; padding: 8px 24px; color: #000; cursor: pointer; }

.interactive-section .interactive-table tbody tr:hover { background: rgba(132, 118, 87, 0.1); cursor: pointer; }

.interactive-section .lines-legends { display: flex; justify-content: flex-end; gap: 10px; align-items: center; line-height: 1; font-size: 15px; }

.interactive-section .lines-legends .legends { padding-left: 10px; border-left: solid 5px #5CB85C; }

.interactive-section .lines-legends .legends.legend--warning { border-left: solid 5px #F0AD4E; }

.interactive-section .lines-legends .legends.legend--danger { border-left: solid 5px #D9534F; }

@media (max-width: 980px) { .interactive-section { flex-direction: column; align-items: center; gap: 20px; }
  .interactive-section .image-display { min-height: auto; width: 100%; max-width: 100%; position: relative; }
  .interactive-section .image-display img { position: relative; transform: none; left: auto; top: auto; width: 100%; max-width: 100%; margin: 0 auto; display: none; opacity: 1 !important; }
  .interactive-section .image-display img.active { display: block; }
  .interactive-section .table-container { flex: 1 1 100%; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .interactive-section .interactive-table { min-width: 650px; table-layout: auto; font-size: 13px; }
  .interactive-section .interactive-table th:first-child, .interactive-section .interactive-table td:first-child { width: 50px; min-width: 50px; text-align: left; }
  .interactive-section .interactive-table th, .interactive-section .interactive-table td { padding: 10px 8px; white-space: nowrap; text-align: center; } }

.biens-table-line { border-left: solid 5px #F0AD4E; }

.biens-table-line.biens-table-line--success { border-left: solid 5px #5CB85C; }

.biens-table-line.biens-table-line--danger { border-left: solid 5px #D9534F; }

.hide { display: none !important; }

@font-face { font-family: 'Ridley Grotesk'; src: url("/websites/templates/barnes_villa/fonts/ridley-grotesk-regular.otf") format("opentype"); font-weight: normal; font-style: normal; }

h1 { font-family: 'Playfair Display', Georgia, "Times New Roman", serif; font-weight: 500; color: #847657; font-size: clamp(2rem, 4vw, 2.625rem); /* 32px → 42px */ line-height: clamp(2.5rem, 4.5vw, 3.125rem); /* 40px → 50px */ }

h2 { font-family: 'Playfair Display', Georgia, "Times New Roman", serif; font-weight: 500; color: #847657; font-size: clamp(2rem, 4vw, 2.625rem); /* 32px → 42px */ line-height: clamp(2.5rem, 4.5vw, 3.125rem); /* 40px → 50px */ }

h3 { font-family: 'Ridley Grotesk', sans-serif; font-weight: 500; color: #847657; font-size: clamp(0.95rem, 1.5vw, 1.0625rem); /* ~15px → 17px */ line-height: clamp(1.5rem, 2vw, 1.625rem); /* 24px → 26px */ letter-spacing: 2px; }

html { overflow-y: hidden; }

[data-dve-slug="background_carousel"] { position: relative; overflow: hidden; }

.owl-carousel-background { position: relative; overflow: hidden; }

.filter .owl-carousel-background .owl-item:after, .filter .owl-carousel .owl-item:after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, black 30%, transparent); z-index: 2; pointer-events: none; width: 100svw; height: 100%; }

.full-screen .owl-item .item { height: 100svh; background-size: cover; background-position: center; }

.ridley, .ridley * { font-family: 'Ridley Grotesk', sans-serif,"Open Sans", sans-serif; }

.full-screen .owl-stage-outer { overflow: hidden; }

.full-screen .owl-item { opacity: 0.9; transition: opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1); }

.full-screen .owl-item.active { opacity: 1; }

.full-screen .owl-item .item img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; -o-object-position: center; object-position: center; display: block; transform: scale(1.05); transition: transform 7s ease-out; }

.full-screen .owl-item.active .item img { transform: scale(1); }

.full-screen .owl-carousel-background::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.05) 45%, transparent 100%), linear-gradient(to right, rgba(0, 0, 0, 0.2) 0%, transparent 55%); pointer-events: none; z-index: 2; }

.owl-dots { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 10; }

.owl-nav.disabled { display: none; }

.owl-prev, .owl-next { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: auto; width: 50px; height: 50px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.45); color: #ffffff; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; line-height: 1; transition: background 0.3s ease, border-color 0.3s ease, transform 0.2s ease, opacity 0.3s ease; }

.owl-prev.disabled, .owl-next.disabled { opacity: 0; pointer-events: none; visibility: hidden; transform: translateY(-50%) scale(0.8); }

.owl-prev:hover, .owl-prev:focus, .owl-prev:active, .owl-next:hover, .owl-next:focus, .owl-next:active { background: rgba(255, 255, 255, 0.14); border-color: rgba(255, 255, 255, 0.9); }

.owl-prev { left: 0; }

.owl-next { right: 0; }

.owl-dot span { display: block; width: 28px; height: 2px; background: rgba(255, 255, 255, 0.35); transition: background 0.3s ease, width 0.3s ease; }

.owl-dot.active span { background: #ffffff; width: 48px; }

.owl-dots.disabled { display: none; }

@keyframes progress-bar { from { width: 0%; }
  to { width: 100%; } }

.gallery-slider img { max-height: 90svh; }

[data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-prev, [data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-next, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-prev, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-next, .owl-carousel-background.nav-white > .owl-nav .owl-prev, .owl-carousel-background.nav-white > .owl-nav .owl-next, .owl-carousel.nav-white > .owl-nav .owl-prev, .owl-carousel.nav-white > .owl-nav .owl-next { background: white; color: #000; border-radius: 50%; font-size: 34px; width: 60px; height: 60px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); transition: background 0.3s ease, color 0.3s ease; }

[data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-prev span, [data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-next span, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-prev span, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-next span, .owl-carousel-background.nav-white > .owl-nav .owl-prev span, .owl-carousel-background.nav-white > .owl-nav .owl-next span, .owl-carousel.nav-white > .owl-nav .owl-prev span, .owl-carousel.nav-white > .owl-nav .owl-next span { padding-bottom: 5px; line-height: 1; }

[data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-prev:hover, [data-dve-slug="owlcarousel"].nav-white > .owl-nav .owl-next:hover, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-prev:hover, [data-dve-slug="background_carousel"].nav-white > .owl-nav .owl-next:hover, .owl-carousel-background.nav-white > .owl-nav .owl-prev:hover, .owl-carousel-background.nav-white > .owl-nav .owl-next:hover, .owl-carousel.nav-white > .owl-nav .owl-prev:hover, .owl-carousel.nav-white > .owl-nav .owl-next:hover { background: var(--color-secondary); color: #fff; }

@media (max-width: 768px) { [data-dve-slug="owlcarousel"].nav-white > .owl-nav, [data-dve-slug="background_carousel"].nav-white > .owl-nav, .owl-carousel-background.nav-white > .owl-nav, .owl-carousel.nav-white > .owl-nav { display: none; } }

.zoom-img { overflow: hidden; }

.zoom-img img { width: 100%; height: auto; transform: scale(1.15); transition: transform 4s ease-in-out; transform-origin: center; }

.zoom-img.in-view img { transform: scale(1); }

body.loading { overflow: hidden; }

#preloader { position: absolute; inset: 0; background: transparent; display: flex; align-items: center; justify-content: center; z-index: 999; transition: opacity 2s ease, filter 2s ease; }

#preloader img { width: 25svw; opacity: 1; transform: scale(1); transform-origin: center; }

#preloader img.show { opacity: 1; }

#preloader img.hide { animation: zoomOut 5s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

@media (max-width: 768px) { #preloader img { width: 50svw; } }

#preloader.hide { opacity: 0; filter: blur(5px); }

@keyframes zoomOut { 80% { transform: scale(0.2);
    opacity: 0.2; }
  100% { transform: scale(0);
    opacity: 0; } }

.distance-table { width: 100%; border-collapse: collapse; font-family: "open sans", sans-serif; line-height: 2em; table-layout: fixed; border-spacing: 0; border: 1px solid #eee; margin: 0 0 15px; text-align: left; }

.distance-table th:first-child, .distance-table td:first-child { text-align: left; padding-left: 0; }

.distance-table thead th, .distance-table tr th { color: #555; font-weight: 700; padding: 9px 24px; }

.distance-table th:not(:first-child), .distance-table td:not(:first-child) { text-align: center; }

.distance-table th { text-transform: uppercase; font-size: 15px; white-space: nowrap; }

.distance-table td { font-size: 15px; white-space: nowrap; padding: 6px 24px; }

.distance-table .icon { display: inline-block; width: 40px; height: auto; margin: 0 auto; }

.distance-table tbody td { color: #000; }

.distance-table tbody tr td { border-bottom: 1px solid #847657; }

.border-brochure .grid-3-small-2 > [data-dve-drop-widget] { border-bottom: 1px solid #ECEFF3; border-top: 1px solid #ECEFF3; padding-top: 3vw; padding-bottom: 3vw; }

.border-brochure .grid-3-small-2 > [data-dve-drop-widget]:nth-child(2) { border-left: 1px solid #ECEFF3; border-right: 1px solid #ECEFF3; }

@media (max-width: 768px) { .border-brochure .grid-3-small-2 > [data-dve-drop-widget]:nth-child(2) { border-top: none; border-bottom: none; border-left: none; border-right: none; } }

.border-brochure h1, .border-brochure h2, .border-brochure h3, .border-brochure h4, .border-brochure h5, .border-brochure h6 { font-family: 'Ridley Grotesk', Helvetica, Arial, Lucida, sans-serif; font-weight: 500; text-transform: uppercase; font-size: 17px; color: #847657; text-align: center; padding-bottom: 10px; line-height: 1em; margin-bottom: 0; }

.border-brochure [data-dve-slug="btn"] { line-height: 1; }

.border-brochure a { font-family: 'Ridley Grotesk', Helvetica, Arial, Lucida, sans-serif; text-transform: uppercase; color: var(--color-primary); text-align: center; line-height: 1; padding: 0; }

.bien--popup { display: flex; height: 100%; }

.bien--popup .pop--up { display: flex; height: 100%; }

.bien--popup .content-informations { flex: 1; padding: 40px 10px; display: flex; flex-direction: column; justify-content: space-between; }

@media (max-width: 980px) { .bien--popup .content-informations { flex: none; flex-direction: column-reverse; } }

.bien--popup .information-block { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

.bien--popup .bien-specs { border-bottom: 1px solid #eee; padding-bottom: 10px; height: -moz-max-content; height: max-content; }

.bien--popup .label-value { display: block; font-size: 11px; letter-spacing: 1.5px; color: #888; margin-bottom: 4px; }

.bien--popup .spec-value { font-size: 20px; font-weight: 500; color: #111; }

.bien--popup .bien-prix .spec-value { font-size: 26px; font-weight: 600; }

.bien--popup .information-call-to-action { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }

@media (max-width: 980px) { .bien--popup .information-call-to-action { margin-top: 0; margin-bottom: 30px; } }

.bien--popup .information-image { width: 25vw; max-width: 45%; background: #f9f9f9; display: flex; align-items: center; justify-content: center; padding: 20px; }

@media (max-width: 980px) { .bien--popup .information-image { display: none; } }

.bien--popup .information-image img { max-width: 100%; max-height: 100%; border-radius: 10px; }

.bien--popup-formulaire { padding: 20px 40px 20px 20px; transition: all 0.3s ease; }

.bien--popup-formulaire .separator { width: 88%; margin: 20px auto; }

.bien--popup-formulaire .courtier--infos-container { display: flex; justify-content: flex-start; align-items: stretch; gap: 1rem; margin-bottom: 2rem; }

.bien--popup-formulaire .courtier--infos-container .courtier--infos { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }

.bien--popup-formulaire .courtier--infos-container .courtier--infos-content { display: flex; gap: 8px; }

.bien--popup-formulaire figure { text-align: center; margin: 0; }

@media (max-width: 500px) { .bien--popup-formulaire figure { display: none; } }

.bien--popup-formulaire figure img { border: 1px solid #eee; padding: 5px; height: 100%; width: 80px; -o-object-fit: cover; object-fit: cover; -o-object-position: center; object-position: center; }

.bien--popup-formulaire .courtier--name { text-align: center; font-weight: 500; margin-bottom: 0; letter-spacing: 0.5px; }

@media (max-width: 500px) { .bien--popup-formulaire .courtier--name { font-size: 6vw; } }

.bien--popup-formulaire .courtier--contact { text-align: center; margin-bottom: 0; }

.bien--popup-formulaire .courtier--contact a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #ddd; transition: all 0.3s ease; }

.bien--popup-formulaire .courtier--contact a:hover { background: var(--color-primary); }

.bien--popup-formulaire .courtier--contact a:hover svg path { fill: #fff; }

.bien--popup-formulaire form { max-width: 50vw; margin: 0 auto; }

@media (max-width: 992px) { .bien--popup-formulaire form { max-width: 95%; } }

.bien--popup-formulaire .acceptPolitiqueDiv { gap: 0.4rem; }

.bien--popup-formulaire .acceptPolitiqueDiv input[type="checkbox"] { margin-top: 6px; accent-color: var(--color-primary); }

.bien--popup-formulaire .acceptPolitiqueDiv a { text-decoration: underline; }

.bien--popup-formulaire .acceptPolitiqueLabel, .bien--popup-formulaire .acceptPolitiqueLabel a { font-size: 1rem; }

@media (max-width: 768px) { .bien--popup { border-radius: 12px; }
  .bien--popup .pop--up { flex-direction: column; }
  .bien--popup .content-informations { padding: 20px; } }

@media (max-width: 576px) { .bien--popup .information-block { grid-template-columns: 1fr; gap: 16px; }
  .bien--popup .information-call-to-action { grid-template-rows: 50px 50px; }
  .bien--popup .information-call-to-action a { align-content: center; line-height: 1; } }

#bsa button, #bsa input { outline: none; }

#bsa { background: #ffffff; padding: 20px 24px 16px; max-width: 1180px; margin: 0 auto; }

#bsa .bsa-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

#bsa .bsa-pill { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 16px; border: 1.5px solid #E4E2DC; background: #FFFFFF; color: #1A1917; font-size: 13.5px; font-weight: 500; cursor: pointer; transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), border-color 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 180ms cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; letter-spacing: -.01em; }

#bsa .bsa-pill svg { flex-shrink: 0; }

#bsa .bsa-pill:hover { background: #F0EEE9; border-color: #C8C5BC; }

#bsa .bsa-pill.is-active { background: color-mix(in srgb, var(--color-primary) 85%, black); border-color: color-mix(in srgb, var(--color-primary) 85%, black); color: #ffffff; box-shadow: 0 2px 8px rgba(26, 25, 23, 0.18); }

#bsa .bsa-pill.has-value { background: #EAF2EE; border-color: var(--color-primary); color: var(--color-primary); }

#bsa .bsa-pill__badge { display: block; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 5px; background: var(--color-primary); color: #fff; font-size: 11px; align-content: center; font-weight: 400; line-height: normal; }

#bsa .bsa-pill__chevron { transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1); opacity: .5; }

#bsa .bsa-pill.is-active .bsa-pill__chevron { transform: rotate(180deg); opacity: 1; }

#bsa .bsa-pill--submit { background: var(--color-primary); border-color: var(--color-primary); color: #fff; font-weight: 600; padding: 0 22px; width: auto; }

#bsa .bsa-pill--submit:hover { background: color-mix(in srgb, var(--color-primary) 85%, black); border-color: color-mix(in srgb, var(--color-primary) 85%, black); }

#bsa .bsa-reset { margin-left: auto; font-size: 12.5px; color: #8A877E; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; text-decoration: none; transition: color 180ms; align-self: center; }

#bsa .bsa-reset:hover { color: #1A1917; text-decoration: underline; }

#bsa .bsa-anchor { position: relative; }

#bsa .bsa-panel { display: none; position: absolute; top: calc(100% + 8px); right: 0; background: #FFFFFF; border: 1.5px solid #E4E2DC; border-radius: 16px; min-width: 280px; padding: 10px 0; box-shadow: 0 8px 32px rgba(26, 25, 23, 0.1), 0 1px 4px rgba(26, 25, 23, 0.06); z-index: 17000; animation: panelIn 180ms cubic-bezier(0.4, 0, 0.2, 1) both; }

@keyframes panelIn { from { opacity: 0;
    transform: translateY(-6px) scale(0.98); }
  to { opacity: 1;
    transform: translateY(0) scale(1); } }

#bsa .bsa-panel--right { left: auto; right: 0; }

#bsa .bsa-panel__title { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #8A877E; margin: 0 20px 14px 20px; }

#bsa .bsa-check-list { display: flex; flex-direction: column; gap: 4px; }

#bsa .bsa-check-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; cursor: pointer; transition: background 180ms; }

#bsa .bsa-check-item:hover { background: #F0EEE9; }

#bsa .bsa-check-item input[type="checkbox"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 16px; height: 16px; border: 1.5px solid #E4E2DC; border-radius: 4px; background: #FFFFFF; cursor: pointer; transition: background 180ms, border-color 180ms; flex-shrink: 0; position: relative; }

#bsa .bsa-check-item input[type="checkbox"]:checked { background: var(--color-primary); border-color: var(--color-primary); }

#bsa .bsa-check-item input[type="checkbox"]:checked::after { content: ""; position: absolute; inset: 3px; background: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4L3.8 7L9 1' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }

#bsa .bsa-check-item label { font-size: 13.5px; color: #1A1917; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; }

#bsa .bsa-slider-wrap { padding-top: 10px; display: flex; gap: 12px; flex-direction: column-reverse; }

#bsa .block_recherche { display: grid; grid-template-columns: 1fr 1fr; }

#bsa .block_recherche input[type='text'] { border: 0; }

#bsa .block_recherche .recherche_maxi { text-align: right; }

#bsa .block_checkbox { padding: 0 20px; display: flex; align-items: center; gap: 5px; }

#bsa .block_checkbox label { margin-bottom: 0; }

#bsa .bsa-range-inputs { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }

#bsa .bsa-range-inputs input[type="text"], #bsa .bsa-range-inputs input[type="number"] { flex: 1; height: 38px; border: 1.5px solid #E4E2DC; border-radius: 8px; padding: 0 10px; font-size: 13px; color: #1A1917; background: #F7F6F3; transition: border-color 180ms; }

#bsa .bsa-range-inputs input:focus { border-color: var(--color-primary); background: #fff; }

#bsa .bsa-range-sep { width: 16px; height: 1.5px; background: #E4E2DC; flex-shrink: 0; }

#bsa .bsa-panel .ui-slider { height: 4px; background: #E4E2DC; border: none; border-radius: 100px; margin: 0 20px; }

#bsa .bsa-panel .ui-slider .ui-slider-range { background: var(--color-primary); border-radius: 100px; }

#bsa .bsa-panel .ui-slider .ui-slider-handle { width: 18px; height: 18px; top: -7px; border: none; border-radius: 50%; background: #FFFFFF; box-shadow: 0 0 0 2px var(--color-primary), 0 2px 6px rgba(0, 0, 0, 0.12); cursor: pointer; transition: box-shadow 180ms; }

#bsa .bsa-panel .ui-slider .ui-slider-handle:hover, #bsa .bsa-panel .ui-slider .ui-slider-handle:focus { box-shadow: 0 0 0 3px var(--color-primary), 0 2px 10px rgba(0, 0, 0, 0.15); }

#bsa .bsa-order-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; border-radius: 8px; margin-bottom: 4px; transition: background 180ms; }

#bsa .bsa-order-row:hover { background: #F0EEE9; }

#bsa .bsa-order-label { font-size: 13.5px; color: #1A1917; font-weight: 500; }

#bsa .bsa-order-btns { display: flex; gap: 4px; }

#bsa .bsa-order-btn { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px; border-radius: 6px; border: 1.5px solid #E4E2DC; background: #F7F6F3; font-size: 12px; color: #8A877E; cursor: pointer; transition: all 180ms; }

#bsa .bsa-order-btn:hover, #bsa .bsa-order-btn.is-selected { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

#bsa .bsa-panel--advanced { min-width: 420px; max-width: 520px; padding: 20px; overflow-y: scroll; max-height: 400px; border-radius: 0; }

#bsa .bsa-adv-label { font-size: 12px; font-weight: 600; color: #8A877E; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 8px; display: block; }

#bsa .bsa-text-input { width: 100%; height: 38px; border: 1.5px solid #E4E2DC; border-radius: 8px; padding: 0 12px; font-size: 13px; color: #1A1917; background: #F7F6F3; transition: border-color 180ms; }

#bsa .bsa-text-input:focus { border-color: var(--color-primary); background: #fff; outline: none; }

#bsa .bsa-divider { height: 1px; background: #E4E2DC; margin: 14px 0; }

@media (max-width: 860px) { #bsa .bsa-bar { gap: 6px; }
  #bsa .bsa-panel--advanced { max-width: 100%; } }

@media (max-width: 600px) { #bsa { padding: 14px 14px 12px; }
  #bsa .bsa-panel { position: fixed; top: auto !important; bottom: 0; left: 0 !important; right: 0; border-radius: 16px 16px 0 0; padding: 10px 10px 30px 10px; max-height: 80vh; overflow-y: auto; animation: sheetIn 0.25s cubic-bezier(0.4, 0, 0.2, 1) both; }
  @keyframes sheetIn { from { transform: translateY(100%); }
    to { transform: translateY(0); } }
  #bsa .bsa-bar { align-items: stretch; flex-direction: column; }
  #bsa .bsa-pill { width: 100%; justify-content: space-between; } }

#bsa .bsa-overlay { display: none; position: fixed; inset: 0; background: rgba(26, 25, 23, 0.35); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); z-index: 199; }

#bsa .bsa-overlay.is-visible { display: block; }

#bsa input[type="checkbox"] { accent-color: var(--color-primary); }

#panel-reveal { position: absolute; inset: 0; z-index: 5; pointer-events: none; }

#panel-reveal .panel { position: absolute; background: #2b3b2e; will-change: transform; -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); }

#panel-reveal .panel.top { top: 0; left: 0; right: 0; height: 25%; }

#panel-reveal .panel.bottom { bottom: 0; left: 0; right: 0; height: 76%; }

#panel-reveal .panel.left { top: 0; bottom: 0; left: 0; width: 25%; }

#panel-reveal .panel.right { top: 0; bottom: 0; right: 0; width: 25%; }

@media (min-width: 981px) { #panel-reveal .panel.top { height: 25%; }
  #panel-reveal .panel.bottom { height: 75%; }
  #panel-reveal .panel.left { width: 40%; }
  #panel-reveal .panel.right { width: 40%; } }

@keyframes phase1Bottom { from { transform: translateY(0); }
  to { transform: translateY(75%); } }

@keyframes panelTop { from { transform: translateY(0%); }
  to { transform: translateY(-100%); } }

@keyframes panelBottom { from { transform: translateY(75%); }
  to { transform: translateY(100%); } }

@keyframes panelLeft { from { transform: translateX(0); }
  to { transform: translateX(-100%); } }

@keyframes panelRight { from { transform: translateX(0); }
  to { transform: translateX(100%); } }

#panel-reveal.phase1 .panel.bottom { animation: phase1Bottom 1s ease forwards; }

#panel-reveal.phase2 .panel.top { animation: panelTop 1.5s ease forwards; }

#panel-reveal.phase2 .panel.bottom { animation: panelBottom 1.5s ease forwards; }

#panel-reveal.phase2 .panel.left { animation: panelLeft 1.8s ease forwards; }

#panel-reveal.phase2 .panel.right { animation: panelRight 1.8s ease forwards; }

#panel-reveal.finished { display: none; }

body.scroll-locked { overflow: hidden; padding-right: 0; }

html.scroll-locked { overflow: hidden !important; }
