/* Base (normalize + socle Webflow, limité aux règles utilisées) */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; font-family: sans-serif; }
body { margin: 0; }
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }
a { background-color: transparent; }
a:active, a:hover { outline: 0; }
img { border: 0; }
svg:not(:root) { overflow: hidden; }
button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; }
button, select { text-transform: none; }
button[disabled], html input[disabled] { cursor: default; }
input { line-height: normal; }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }
textarea { overflow: auto; }
* { box-sizing: border-box; }
html { height: 100%; }
body { color: #333; background-color: #fff; min-height: 100%; margin: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; }
img { vertical-align: middle; max-width: 100%; display: inline-block; }
.w-inline-block { max-width: 100%; display: inline-block; }
.w-button { color: #fff; line-height: inherit; cursor: pointer; background-color: #3898ec; border: 0; border-radius: 0; padding: 9px 15px; text-decoration: none; display: inline-block; }
input.w-button { -webkit-appearance: button; appearance: button; }
h1, h2, h3, h4, h5, h6 { margin-bottom: 10px; font-weight: bold; }
h1 { margin-top: 20px; font-size: 38px; line-height: 44px; }
h2 { margin-top: 20px; font-size: 32px; line-height: 36px; }
h3 { margin-top: 20px; font-size: 24px; line-height: 30px; }
p { margin-top: 0; margin-bottom: 10px; }
ul, ol { margin-top: 0; margin-bottom: 10px; padding-left: 40px; }
.w-embed::before, .w-embed::after { content: " "; grid-area: 1 / 1 / 2 / 2; display: table; }
.w-embed::after { clear: both; }
.w-form { margin: 0 0 15px; }
.w-form-done { text-align: center; background-color: #ddd; padding: 20px; display: none; }
.w-form-fail { background-color: #ffdede; margin-top: 10px; padding: 10px; display: none; }
label { margin-bottom: 5px; font-weight: bold; display: block; }
.w-input, .w-select { color: #333; vertical-align: middle; background-color: #fff; border: 1px solid #ccc; width: 100%; height: 38px; margin-bottom: 10px; padding: 8px 12px; font-size: 14px; line-height: 1.42857; display: block; }
.w-input::placeholder, .w-select::placeholder { color: #999; }
.w-input:focus, .w-select:focus { border-color: #3898ec; outline: 0; }
textarea.w-input, textarea.w-select { height: auto; }
.w-select { background-color: #f3f3f3; }
.w-form-label { cursor: pointer; margin-bottom: 0; font-weight: normal; display: inline-block; }
.w-checkbox { margin-bottom: 5px; padding-left: 20px; display: block; }
.w-checkbox::before { content: " "; grid-area: 1 / 1 / 2 / 2; display: table; }
.w-checkbox::after { content: " "; clear: both; grid-area: 1 / 1 / 2 / 2; display: table; }
.w-checkbox-input { float: left; margin: 4px 0 0 -20px; line-height: normal; }

/* Variables du style guide */
:root {
  --_style-guide---background-albatre: #f8f8f7;
  --_style-guide---font-corps: "Plus Jakarta Sans";
  --_style-guide---texte-encre: #111827;
  --_style-guide---bordure: #e2e8f0;
  --_style-guide---bleu-nuit: #0f172a;
  --_style-guide---bronze: #bfa175;
  --_style-guide---font-titres: "Playfair Display";
  --_style-guide---blanc: #fff;
  --_style-guide---texte-secondaire: #475569;
}

/* Styles du site */
.page-wrapper { background-color: var(--_style-guide---background-albatre); font-family: var(--_style-guide---font-corps); color: var(--_style-guide---texte-encre); font-size: 1rem; line-height: 1.6; }
.main-wrapper { display: block; }
.padding-global { padding-left: 2.5rem; padding-right: 2.5rem; }
.container-large { width: 100%; max-width: 80rem; margin-left: auto; margin-right: auto; }
.navbar_component { z-index: 100; border-bottom: 1px solid var(--_style-guide---bordure); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); background-color: rgba(248, 248, 247, 0.94); position: sticky; top: 0; }
.navbar_container { justify-content: space-between; align-items: center; gap: 0.75rem 2rem; min-height: 5rem; display: flex; }
.navbar_logo-link { color: var(--_style-guide---bleu-nuit); align-items: center; column-gap: 0.875rem; text-decoration: none; display: flex; }
.navbar_logo-text-wrapper { flex-direction: column; display: flex; }
.navbar_logo { flex-shrink: 0; align-items: center; height: 3rem; padding-left: 39px; display: flex; }
.navbar_menu { align-items: center; column-gap: 2.25rem; display: flex; }
.navbar_link { color: var(--_style-guide---texte-encre); white-space: nowrap; font-size: 0.9375rem; font-weight: 500; text-decoration: none; transition: color 0.2s; }
.navbar_link:hover { color: var(--_style-guide---bronze); }
.button { border: 1px solid var(--_style-guide---bleu-nuit); background-color: var(--_style-guide---bleu-nuit); color: var(--_style-guide---blanc); text-align: center; white-space: nowrap; border-radius: 4px; padding: 0.9375rem 1.75rem; font-size: 0.9375rem; font-weight: 600; line-height: 1.2; text-decoration: none; transition: background-color 0.2s, color 0.2s, border-color 0.2s; display: inline-block; }
.button:hover { border-color: var(--_style-guide---bronze); background-color: #1e293b; }
.button.is-small { padding: 0.6875rem 1.25rem; font-size: 0.875rem; }
.button.is-secondary { border-color: var(--_style-guide---bleu-nuit); color: var(--_style-guide---bleu-nuit); background-color: transparent; }
.button.is-secondary:hover { background-color: var(--_style-guide---bleu-nuit); color: var(--_style-guide---blanc); }
.section_hero { border-bottom: 1px solid #e2e8f0; }
.padding-section-large { padding-top: 7rem; padding-bottom: 7rem; }
.hero_component { grid-template-rows: auto; grid-template-columns: 1.5fr 1fr; align-items: end; gap: 3rem 5rem; display: grid; }
.hero_content { flex-direction: column; align-items: flex-start; row-gap: 1.75rem; display: flex; }
.text-style-tagline { color: var(--_style-guide---bronze); letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8125rem; font-weight: 600; }
.heading-style-h1 { font-family: var(--_style-guide---font-titres); color: var(--_style-guide---bleu-nuit); letter-spacing: -0.01em; margin-top: 0; margin-bottom: 0; font-size: 3rem; font-weight: 400; line-height: 1.1; }
.heading-style-h2 { font-family: var(--_style-guide---font-titres); color: var(--_style-guide---bleu-nuit); margin-top: 0; margin-bottom: 0; font-size: 2.75rem; font-weight: 500; line-height: 1.15; }
.heading-style-h2.text-color-alternate { color: var(--_style-guide---background-albatre); }
.heading-style-h3 { font-family: var(--_style-guide---font-titres); color: var(--_style-guide---bleu-nuit); margin-top: 0; margin-bottom: 0; font-size: 1.375rem; font-weight: 500; line-height: 1.3; }
.heading-style-h3.text-color-alternate { color: var(--_style-guide---background-albatre); }
.text-size-large { margin-top: 0; margin-bottom: 0; font-size: 1.1875rem; line-height: 1.65; }
.text-size-large.text-color-secondary { color: var(--_style-guide---texte-secondaire); }
.text-size-regular { margin-top: 0; margin-bottom: 0; font-size: 1rem; line-height: 1.7; }
.text-size-regular.text-color-secondary { color: var(--_style-guide---texte-secondaire); }
.text-size-regular.text-color-alternate-secondary { color: #cbd5e1; }
.text-size-small { margin-top: 0; margin-bottom: 0; font-size: 0.875rem; line-height: 1.6; }
.text-size-small.text-color-secondary, .text-color-secondary { color: var(--_style-guide---texte-secondaire); }
.hero_badges { flex-wrap: wrap; gap: 0.75rem; display: flex; }
.badge_item { color: #0f172a; background-color: #fff; border: 1px solid #e2e8f0; border-radius: 4px; align-items: center; column-gap: 0.5rem; padding: 0.4375rem 0.875rem; font-size: 0.8125rem; font-weight: 500; display: flex; }
.badge_dot { background-color: #bfa175; border-radius: 50%; width: 0.375rem; height: 0.375rem; }
.button-group { flex-wrap: wrap; gap: 1rem; padding-top: 0.5rem; display: flex; }
.hero_aside { color: #f8f8f7; background-color: #0f172a; border-radius: 8px; flex-direction: column; row-gap: 1.5rem; padding: 2.5rem; display: flex; }
.hero_aside-item { flex-direction: column; row-gap: 0.375rem; display: flex; }
.hero_aside-label { color: #bfa175; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.75rem; font-weight: 600; }
.hero_aside-text { color: #f8f8f7; margin-top: 0; margin-bottom: 0; font-family: "Playfair Display"; font-size: 1.1875rem; line-height: 1.45; }
.hero_aside-divider { background-color: rgba(191, 161, 117, 0.35); height: 1px; }
.section_cabinet { position: relative; }
.cabinet_component { grid-template-rows: auto; grid-template-columns: 1fr 1.4fr; align-items: start; gap: 2.5rem 5rem; display: grid; }
.cabinet_header { flex-direction: column; row-gap: 1.25rem; display: flex; position: sticky; top: 7rem; }
.cabinet_content { flex-direction: column; row-gap: 1.5rem; display: flex; }
.cabinet_pillars { grid-template-rows: auto; grid-template-columns: 1fr 1fr; gap: 2.5rem; padding-top: 1.5rem; display: grid; }
.cabinet_pillar { border-top: 1px solid #bfa175; flex-direction: column; row-gap: 0.75rem; padding-top: 1.5rem; display: flex; }
.section_expertises { background-color: #fff; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.expertises_component { flex-direction: column; row-gap: 4rem; display: flex; }
.expertises_header { flex-direction: column; row-gap: 1.25rem; max-width: 46rem; display: flex; }
.expertises_grid { grid-template-rows: auto; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; display: grid; }
.card_item { background-color: #f8f8f7; border: 1px solid #e2e8f0; border-radius: 6px; flex-direction: column; row-gap: 1rem; padding: 2.25rem 2rem; transition: border-color 0.2s; display: flex; }
.card_item:hover { border-color: #bfa175; }
.card_number { color: #bfa175; letter-spacing: 0.08em; font-family: "Playfair Display"; font-size: 0.9375rem; }
.card_list { border-top: 1px solid #e2e8f0; flex-direction: column; row-gap: 0.5rem; margin-top: 0.5rem; margin-bottom: 0; padding-top: 1rem; padding-left: 0; list-style-type: none; display: flex; }
.card_list-item { color: #475569; background-image: linear-gradient(#bfa175, #bfa175); background-repeat: no-repeat; background-size: 0.375rem 1px; padding-left: 1rem; font-size: 0.9375rem; line-height: 1.5; }
.section_honoraires { color: #f8f8f7; background-color: #0f172a; }
.honoraires_component { grid-template-rows: auto; grid-template-columns: 1fr 1.2fr; align-items: start; gap: 3rem 5rem; display: grid; }
.honoraires_header { flex-direction: column; row-gap: 1.25rem; display: flex; }
.text-color-alternate { color: #f8f8f7; }
.text-color-alternate-secondary { color: #cbd5e1; }
.honoraires_list { border-bottom: 1px solid rgba(191, 161, 117, 0.4); flex-direction: column; display: flex; }
.honoraires_item { border-top: 1px solid rgba(191, 161, 117, 0.4); flex-direction: column; row-gap: 0.625rem; padding-top: 2rem; padding-bottom: 2rem; display: flex; }
.section_contact { background-color: #f8f8f7; }
.contact_component { grid-template-rows: auto; grid-template-columns: 1fr 1.15fr; align-items: start; gap: 3rem 5rem; display: grid; }
.contact_content { flex-direction: column; row-gap: 2.5rem; display: flex; }
.contact_header { flex-direction: column; row-gap: 1.25rem; display: flex; }
.contact_info-list { border-top: 1px solid #e2e8f0; flex-direction: column; display: flex; }
.contact_info-item { border-bottom: 1px solid #e2e8f0; grid-template-rows: auto; grid-template-columns: 7rem 1fr; column-gap: 1.5rem; padding-top: 1rem; padding-bottom: 1rem; display: grid; }
.contact_info-label { color: #bfa175; letter-spacing: 0.14em; text-transform: uppercase; padding-top: 0.2rem; font-size: 0.75rem; font-weight: 600; }
.contact_info-value { color: #111827; font-size: 1rem; }
.contact_map { background-color: #fff; border: 1px solid #e2e8f0; border-radius: 6px; width: 100%; min-height: 18rem; overflow: hidden; }
.contact_form-wrapper { background-color: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 2.5rem; }
.contact_form, .contact_form form { flex-direction: column; row-gap: 1.25rem; margin-bottom: 0; display: flex; }
.form_field-wrapper { flex-direction: column; row-gap: 0.5rem; display: flex; }
.form_field-2col { grid-template-rows: auto; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; display: grid; }
.form_label { color: #0f172a; margin-bottom: 0; font-size: 0.875rem; font-weight: 600; }
.form_input { color: #111827; background-color: #f8f8f7; border: 1px solid #e2e8f0; border-radius: 4px; width: 100%; min-height: 3rem; margin-bottom: 0; padding: 0.75rem 1rem; font-size: 1rem; }
.form_input:focus { border-color: #bfa175; outline-style: none; }
.form_input.is-textarea { resize: vertical; min-height: 10rem; }
.form_input.is-select { cursor: pointer; }
.form_checkbox { color: #475569; align-items: flex-start; column-gap: 0.75rem; margin-bottom: 0; font-size: 0.875rem; font-weight: 400; line-height: 1.5; display: flex; }
.form_checkbox-input { flex-shrink: 0; margin-top: 0.2rem; }
.form_hidden { display: none; }
.footer_component { color: #cbd5e1; background-color: #0f172a; padding-top: 5rem; padding-bottom: 2.5rem; }
.footer_top { border-bottom: 1px solid rgba(191, 161, 117, 0.35); grid-template-rows: auto; grid-template-columns: 1.4fr 1fr 1fr; gap: 3rem 4rem; padding-bottom: 3.5rem; display: grid; }
.footer_brand { flex-direction: column; align-items: flex-start; row-gap: 1rem; display: flex; }
.footer_monogram { color: #f8f8f7; border: 1px solid #bfa175; border-radius: 4px; justify-content: center; align-items: center; width: 2.75rem; height: 2.75rem; font-family: "Playfair Display"; font-size: 1.0625rem; display: flex; }
.footer_brand-name { color: #f8f8f7; font-family: "Playfair Display"; font-size: 1.375rem; }
.footer_column { flex-direction: column; align-items: flex-start; row-gap: 0.75rem; display: flex; }
.footer_label { color: #bfa175; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 0.25rem; font-size: 0.75rem; font-weight: 600; }
.footer_link { color: #cbd5e1; font-size: 0.9375rem; text-decoration: none; transition: color 0.2s; }
.footer_link:hover { color: #bfa175; }
.footer_text { color: #cbd5e1; margin-top: 0; margin-bottom: 0; font-size: 0.875rem; line-height: 1.7; }
.footer_legal { max-width: 52rem; padding-top: 2rem; padding-bottom: 2rem; }
.footer_bottom { border-top: 1px solid rgba(203, 213, 225, 0.15); justify-content: space-between; padding-top: 1.5rem; display: flex; }
.footer_copyright { color: #94a3b8; font-size: 0.8125rem; }

/* Réglages globaux (ex-embed Webflow) */
html { scroll-behavior: smooth; }
body { background-color: #F8F8F7; -webkit-font-smoothing: antialiased; }
section[id] { scroll-margin-top: 5rem; }
a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #BFA175; outline-offset: 3px; }

@media screen and (max-width: 991px) {
  .padding-global { padding-left: 2rem; padding-right: 2rem; }
  .navbar_menu { column-gap: 1.5rem; }
  .padding-section-large { padding-top: 5rem; padding-bottom: 5rem; }
  .hero_component { grid-template-rows: auto; grid-template-columns: 1fr; align-items: start; }
  .heading-style-h1 { font-size: 3.25rem; }
  .heading-style-h2 { font-size: 2.375rem; }
  .cabinet_component { grid-template-rows: auto; grid-template-columns: 1fr; }
  .cabinet_header { position: static; }
  .expertises_component { row-gap: 3rem; }
  .expertises_grid { grid-template-rows: auto; grid-template-columns: 1fr 1fr; }
  .honoraires_component, .contact_component { grid-template-rows: auto; grid-template-columns: 1fr; }
  .footer_top { grid-template-rows: auto; grid-template-columns: 1fr 1fr; }
  .footer_brand { grid-column: 1 / 3; }
}

@media screen and (max-width: 767px) {
  .padding-global { padding-left: 1.5rem; padding-right: 1.5rem; }
  .navbar_container { flex-wrap: wrap; min-height: auto; padding-top: 0.875rem; padding-bottom: 0.875rem; }
  .navbar_menu { border-top: 1px solid var(--_style-guide---bordure); order: 3; column-gap: 1.5rem; width: 100%; padding-top: 0.625rem; overflow-x: auto; }
  .padding-section-large { padding-top: 4rem; padding-bottom: 4rem; }
  .heading-style-h1 { font-size: 2.625rem; }
  .heading-style-h2 { font-size: 2rem; }
  .heading-style-h3 { font-size: 1.25rem; }
  .text-size-large { font-size: 1.0625rem; }
  .hero_aside { padding: 2rem; }
  .cabinet_pillars { grid-template-rows: auto; grid-template-columns: 1fr; row-gap: 2rem; }
  .expertises_grid { grid-template-rows: auto; grid-template-columns: 1fr; row-gap: 1rem; }
  .card_item { padding: 1.75rem 1.5rem; }
  .honoraires_item { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  .contact_form-wrapper { padding: 1.75rem 1.5rem; }
  .form_field-2col { grid-template-rows: auto; grid-template-columns: 1fr; }
  .footer_component { padding-top: 3.5rem; }
  .footer_top { grid-template-rows: auto; grid-template-columns: 1fr; }
  .footer_brand { grid-column: auto; }
}

@media screen and (max-width: 479px) {
  .padding-global { padding-left: 1.25rem; padding-right: 1.25rem; }
  .navbar_menu { column-gap: 1.25rem; }
  .button.is-small { padding-left: 0.875rem; padding-right: 0.875rem; font-size: 0.8125rem; }
  .padding-section-large { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .heading-style-h1 { font-size: 2.125rem; }
  .heading-style-h2 { font-size: 1.75rem; }
  .button-group { flex-direction: column; align-items: stretch; width: 100%; }
  .hero_aside { padding: 1.5rem; }
  .hero_aside-text { font-size: 1.0625rem; }
  .contact_info-item { grid-template-rows: auto; grid-template-columns: 1fr; row-gap: 0.25rem; }
  .contact_map { min-height: 14rem; }
  .navbar_logo { height: 2.5rem; }
}

/* Pages légales */
.section_legal { border-bottom: 1px solid #e2e8f0; }
.legal_component { flex-direction: column; row-gap: 3.5rem; max-width: 52rem; display: flex; }
.legal_header { flex-direction: column; row-gap: 1.25rem; display: flex; }
.legal_content { flex-direction: column; row-gap: 2.5rem; display: flex; }
.legal_block { border-top: 1px solid #bfa175; flex-direction: column; row-gap: 0.75rem; padding-top: 1.5rem; display: flex; }
.legal_list { border-top: 0; margin-top: 0; padding-top: 0; }
.legal_link, .form_link { color: inherit; text-decoration: underline; text-decoration-color: #bfa175; text-underline-offset: 3px; transition: color 0.2s; }
.legal_link:hover, .form_link:hover { color: #bfa175; }

/* Plan d'accès chargé au clic */
.map_placeholder { flex-direction: column; justify-content: center; align-items: flex-start; row-gap: 0.75rem; min-height: 18rem; padding: 2rem; display: flex; }
.map_placeholder-text { color: #0f172a; margin: 0; font-family: "Playfair Display"; font-size: 1.1875rem; line-height: 1.45; }
.map_placeholder .button-group { padding-top: 0.25rem; }
button.button { font-family: inherit; cursor: pointer; }
@media screen and (max-width: 479px) { .map_placeholder { min-height: 14rem; padding: 1.5rem; } }
