:root { color-scheme: light; --paper: #f8f6f3; --ink: #333535; --body: #656967; --accent: #26645f; --line: #dcded9; --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; --serif: "Baskerville", "Iowan Old Style", "Palatino Linotype", Georgia, serif; }
.interventions { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 32px; align-items: center; border-top: 1px solid var(--line); padding: 50px 0 42px; }
.interventions h2 { margin-top: 19px; font: 400 clamp(31px, 3.4vw, 40px)/1.18 var(--serif); letter-spacing: -.025em; }
.interventions-intro { margin-top: 23px; max-width: 310px; color: var(--body); font-size: 16px; line-height: 1.85; }
.map-selection { margin-top: 32px; max-width: 310px; }
.map-selection label { display: block; margin-bottom: 12px; font-size: 14px; color: var(--body); }
.map-selection select { display: block; width: 100%; min-height: 48px; padding: 12px; border: 1px solid #bccac3; border-radius: 8px; background: #ffffffb3; color: var(--accent); font: 16px/1.5 var(--sans); cursor: pointer; }
.selected-place { padding-top: 22px; min-height: 98px; }
#selected-city { color: var(--accent); font: 400 24px/1.3 var(--serif); }
#selected-department { margin-top: 6px; color: var(--body); font-size: 14px; line-height: 1.6; }
.map-frame { position: relative; min-width: 0; }
.france-map { display: block; width: 100%; height: auto; overflow: visible; }
.map-departments { fill: #eef0ea; stroke: #c8d2c9; stroke-width: .65; stroke-linejoin: round; }
.map-pin { cursor: pointer; outline: none; }
.pin-hit { fill: transparent; }
.pin-halo { fill: var(--accent); opacity: 0; transition: opacity .2s; pointer-events: none; }
.pin-dot { fill: var(--accent); stroke: var(--paper); stroke-width: 1.3; pointer-events: none; }
.map-pin:hover .pin-halo, .map-pin.is-selected .pin-halo { opacity: .18; }
.map-pin:focus-visible .pin-halo { stroke: var(--accent); stroke-width: 2; fill: none; opacity: 1; }
.map-pin.is-selected .pin-dot { stroke-width: 2; }
.map-place-label { position: absolute; left: 50%; top: 25%; transform: translate(-50%, calc(-100% - 14px)); pointer-events: none; background: var(--accent); color: white; padding: 8px 13px; border-radius: 6px; font-size: 14px; line-height: 1.4; text-align: center; max-width: 80%; box-shadow: 0 6px 18px #24483d14; }
.map-caption { text-align: center; font-size: 14px; color: var(--body); line-height: 1.6; }
.map-credit { text-align: center; margin-top: 10px; font-size: 12px; line-height: 1.7; color: var(--body); }
.map-credit a { text-underline-offset: 3px; }
@media (max-width: 650px) {
 .interventions { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 33px 0 35px; }
 .interventions h2 { font-size: 33px; }
 .interventions-intro, .map-selection { max-width: none; }
 .map-selection { margin-top: 23px; }
 .selected-place { min-height: 85px; padding-top: 18px; }
 .map-frame { margin: 0 -12px; }
 .map-caption, .map-credit { padding: 0 12px; }
}

/* Refinement: balanced practice areas, factual career details and subtle motion. */
.domains { padding: 52px 0 58px; border-top: 1px solid var(--line); }
.section-heading h2, .domains h2 { margin-top: 17px; font: 400 clamp(30px, 3.4vw, 40px)/1.18 var(--serif); letter-spacing: -.025em; }
.domain-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 34px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.domain-item { min-width: 0; padding: 25px 30px 29px 0; }
.domain-item + .domain-item { border-left: 1px solid var(--line); padding-left: 30px; }
.domain-number { color: var(--accent); font: 12px/1.4 var(--sans); letter-spacing: .12em; }
.domain-item h3 { margin: 25px 0 13px; color: var(--ink); font: 400 23px/1.25 var(--serif); }
.domain-item > p:last-child { color: var(--body); font-size: 15px; line-height: 1.75; }
.career-detail { justify-content: flex-start; gap: 18px; }
.career-intro { margin-bottom: 3px; }
.career-fact { padding-top: 16px; border-top: 1px solid var(--line); }
.career-fact strong { display: block; margin-bottom: 5px; color: var(--accent); font-size: 13px; line-height: 1.5; font-weight: 500; }
.career-fact p { font-size: 14px; line-height: 1.65; }
.career-fact-list { margin: 0; padding-left: 18px; color: var(--body); list-style: disc; }
.career-fact-list li { padding-left: 3px; }
.career-fact-list li::marker { color: var(--accent); font-size: .75em; }
.career-fact-list strong { display: block; margin-bottom: 5px; color: var(--ink); font-size: 14px; line-height: 1.55; font-weight: 500; }
.career-fact-list p { color: var(--body); font-size: 14px; line-height: 1.65; }
.career-steps > li { grid-template-rows: auto minmax(68px,auto) 1fr; }
.career h3 { color: var(--accent); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.career-steps .career-title { font-size: 22px; line-height: 1.25; }
.career-intro { color: var(--body); font-size: 14px; line-height: 1.7; }
.education-list, .career-fact-list { font-size: 14px; line-height: 1.65; }
.education-list li, .career-fact-list li { padding-left: 4px; }
.education-list li::marker, .career-fact-list li::marker { color: var(--accent); font-size: .72em; }
.education-list span { display: block; color: var(--ink); font-weight: 500; }
.education-list strong { display: block; margin-top: 2px; color: var(--body); font-weight: 400; }
.career-fact-list--concise strong { margin-bottom: 3px; color: var(--ink); font-size: 14px; }
.career-fact-list--concise p { color: var(--body); font-size: 13px; line-height: 1.55; }
.consultation-facts { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px; color: var(--accent); font: 400 25px/1.35 var(--serif); }
.consultation-facts strong { font: inherit; font-size: 34px; font-weight: 400; }
.consultation-booking { margin-top: 24px; }
.contact-email { display: inline-flex; min-height: 44px; align-items: center; margin-top: 8px; color: var(--accent); font-size: 15px; text-decoration: none; }
.contact-email:hover { text-decoration: underline; text-underline-offset: 5px; }
a, button, summary { transition: color .25s ease, border-color .25s ease, background-color .25s ease, transform .25s ease; }
.text-link:hover, .directions-link:hover { transform: translateY(-1px); }
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(13px); transition: opacity .48s ease var(--reveal-delay,0ms), transform .48s ease var(--reveal-delay,0ms); }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.map-frame[data-reveal] { transition-duration: .58s; }
@media (max-width: 900px) {
  .domain-item { padding-right: 21px; }
  .domain-item + .domain-item { padding-left: 21px; }
}
@media (max-width: 650px) {
  .domains { padding: 34px 0 40px; }
  .domain-grid { grid-template-columns: 1fr; margin-top: 26px; }
  .domain-item { padding: 22px 0 24px; }
  .domain-item + .domain-item { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
  .domain-item h3 { margin-top: 15px; }
  .career-fact { padding-top: 14px; }
  .consultation-facts { font-size: 21px; }
  .consultation-facts strong { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-ready [data-reveal], .reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; transition: none; }
  a, button, summary { transition: none; }
}

/* Consultation: one clear typographic rhythm for duration, price and note. */
.consultation-heading { display: flex; flex-direction: column; align-items: flex-start; }
.consultation-heading h2 { max-width: 430px; }
.consultation-price { width: 100%; max-width: 390px; margin-top: 26px; padding-top: 19px; border-top: var(--line-width) solid var(--line); }
.consultation-facts { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; color: var(--ink); font: 400 22px/1.4 var(--serif); letter-spacing: -.01em; }
.consultation-facts > span { color: var(--body); font: inherit; }
.consultation-facts strong { color: var(--accent); font: inherit; font-weight: 400; }
.consultation-price .fee-credit { max-width: 360px; margin-top: 12px; color: var(--body); font: 400 14px/1.65 var(--sans); }
.consultation-booking { margin-top: 25px; }
@media (max-width: 650px) {
  .consultation-price { max-width: none; margin-top: 22px; padding-top: 16px; }
  .consultation-facts { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .pin-halo { transition: none; } }
* { box-sizing: border-box; }
.career { padding: 44px 0 54px; border-top: 1px solid var(--line); }
.career h2 { font: 400 clamp(30px, 3.4vw, 39px)/1.2 var(--serif); letter-spacing: -.025em; }
.career-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; list-style: none; margin: 32px 0 0; padding: 0; }
.career-steps > li { border-top: 1px solid var(--line); padding-top: 20px; }
.career h3 { margin: 0 0 14px; color: var(--accent); font: 400 14px/1.6 var(--sans); }
.career-steps p { color: var(--body); font-size: 16px; line-height: 1.8; }
.career-steps .career-title { margin-bottom: 12px; color: var(--ink); font: 400 23px/1.3 var(--serif); }
@media (max-width: 650px) {
 .career { padding: 33px 0 38px; }
 .career h2 { font-size: 33px; }
 .career-steps { grid-template-columns: minmax(0, 1fr); gap: 27px; margin-top: 25px; }
 .career-steps > li { padding-top: 17px; }
 .career h3 { margin-bottom: 10px; }
 .career-steps .career-title { margin-bottom: 8px; }
}
html { scroll-behavior: smooth; scroll-padding-top: 32px; }
body { isolation: isolate; position: relative; margin: 0; min-height: 100vh; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent); color: #fff; }
a { color: inherit; text-underline-offset: 6px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
h1, h2, p { margin: 0; }
.geometry { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: -1; background: radial-gradient(ellipse at 48% 37%, #fff 0%, transparent 70%); }
.geometry::before, .geometry::after { content: ""; position: absolute; width: 180%; height: 1px; left: -40%; background: #d1d3cf; opacity: .35; transform: rotate(-33deg); }
.geometry::before { top: 35%; }
.geometry::after { top: 72%; }
.geometry span { position: absolute; width: 610px; height: 820px; border: 1px solid #d7d8d3; opacity: .38; border-radius: 92px; transform: rotate(30deg) skewY(-2deg); }
.geometry span:first-child { left: calc(50% - 415px); top: 50px; }
.geometry span:last-child { width: 980px; height: 1160px; left: calc(50% - 300px); top: -110px; }
header { max-width: 1240px; margin: auto; padding: 27px 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.identity { color: var(--ink); font: 33px/1 var(--serif); letter-spacing: -.08em; text-decoration: none; }
nav { display: flex; gap: 30px; align-items: center; }
nav a { display: inline-flex; gap: 14px; min-height: 44px; align-items: center; font-size: 13px; text-decoration: none; }
nav a:hover { color: var(--accent); }
nav a:last-child { color: var(--accent); }
main { max-width: 1120px; padding: 0 48px; margin: auto; }
.profile { padding: 46px 0 72px; display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); align-items: center; gap: 80px; }
.portrait { width: 100%; margin: 0; }
.portrait-space { aspect-ratio: 3 / 4; border-radius: 24px; overflow: hidden; background: #fff; border: 1px solid #e1e2dd; box-shadow: 0 22px 55px #202b2412; }
.portrait-space img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portrait-image[src=""] { display: none; }
h1 { font: 400 clamp(36px, 4vw, 48px)/1.12 var(--serif); letter-spacing: -.025em; }
.honorific { display: block; margin-bottom: 8px; font: 400 20px/1.4 var(--serif); letter-spacing: 0; }
em { font-weight: inherit; }
.role { color: var(--accent); margin-top: 16px; font-size: 17px; line-height: 1.6; }
.biography { margin-top: 24px; color: var(--body); font-size: 16px; line-height: 1.85; }
.biography p + p { margin-top: 18px; }
.profile-actions { display: flex; align-items: flex-start; flex-direction: column; gap: 13px; margin-top: 28px; }
.booking-link { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; gap: 28px; padding: 13px 22px; color: var(--accent); border: 1px solid #cbd5d0; border-radius: 13px; background: #fff; box-shadow: 0 8px 25px #1d483d09; font-size: 14px; line-height: 1.5; text-decoration: none; transition: background .2s ease, color .2s ease, transform .2s ease; }
.booking-link:hover { color: #fff; background: var(--accent); border-color: var(--accent); transform: translateY(-2px); }
.booking-link span, .text-link span { transition: transform .2s ease; }
.booking-link:hover span, .text-link:hover span { transform: translate(2px, -2px); }
.booking-note { color: var(--body); font-size: 12px; line-height: 1.7; }
.appointment { padding: 35px 0 45px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 45px; }
.eyebrow { color: var(--body); font-size: 12px; text-transform: uppercase; letter-spacing: .13em; line-height: 1.6; }
.appointment h2 { margin: 17px 0 19px; font: 400 clamp(28px, 3vw, 36px)/1.2 var(--serif); letter-spacing: -.025em; }
address { color: var(--body); font-size: 15px; line-height: 1.8; font-style: normal; }
.text-link { display: inline-flex; align-items: center; min-height: 44px; gap: 40px; padding-bottom: 5px; color: var(--accent); font-size: 16px; text-decoration: none; border-bottom: 1px solid var(--accent); }
.appointment-action .booking-note { margin-top: 15px; }
footer { max-width: 1120px; margin: auto; padding: 15px 48px 29px; display: flex; justify-content: space-between; gap: 24px; font-size: 12px; line-height: 1.7; color: var(--body); }
footer a { text-decoration: none; }
footer a:hover { color: var(--accent); }
@media (max-width: 900px) {
 .profile { gap: 45px; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
 h1 { font-size: 40px; }
 .biography { font-size: 16px; line-height: 1.75; }
 .portrait-space { border-radius: 20px; }
}
@media (max-width: 650px) {
 header { padding: 22px 24px 16px; }
 nav { gap: 0; }
 nav a:first-child { display: none; }
 main { padding: 0 26px; }
 .profile { padding: 24px 0 43px; grid-template-columns: minmax(0, 1fr); gap: 30px; }
 .portrait { width: 140px; }
 .portrait-space { aspect-ratio: 1; border-radius: 20px; box-shadow: 0 12px 28px #202b2412; }
 h1 { font-size: 40px; }
 .honorific { font-size: 18px; margin-bottom: 6px; }
 .role { margin-top: 13px; font-size: 16px; }
 .biography { margin-top: 20px; }
 .profile-actions { margin-top: 24px; }
 .appointment { flex-direction: column; align-items: flex-start; padding: 29px 0 34px; gap: 23px; }
 .appointment h2 { font-size: 32px; }
 footer { padding: 16px 26px 25px; flex-direction: column; gap: 11px; }
 .geometry span:first-child { width: 380px; height: 700px; left: 0; top: -50px; border-radius: 65px; }
 .geometry span:last-child { left: 100px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 .booking-link, .booking-link span, .text-link span { transition: none; }
 .booking-link:hover, .booking-link:hover span, .text-link:hover span { transform: none; }
}

.consultation { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 80px; padding: 46px 0 58px; border-top: 1px solid var(--line); }
.consultation h2 { margin-top: 19px; font: 400 clamp(29px, 3.4vw, 39px)/1.18 var(--serif); letter-spacing: -.025em; }
.consultation-price { margin-top: 28px; }
.price { color: var(--accent); display: flex; align-items: baseline; gap: 9px; }
.price span { font: 400 37px/1.2 var(--serif); letter-spacing: -.025em; }
.price small { font-size: 12px; letter-spacing: .05em; }
.consultation-price > p:last-child { margin-top: 8px; font-size: 13px; color: var(--body); line-height: 1.7; }
.consultation-price > p:not(.price) { margin-top: 8px; font-size: 14px; color: var(--body); line-height: 1.7; }
.consultation-price .fee-credit { max-width: 290px; }
.contact-phones { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 12px 28px; }
.contact-phones a { display: flex; flex-direction: column; min-height: 48px; justify-content: center; gap: 5px; text-decoration: none; }
.contact-phones span { font-size: 13px; color: var(--body); }
.contact-phones strong { font-size: 17px; font-weight: 400; color: var(--accent); }
.contact-phones a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.contact-note { margin-top: 14px; color: var(--body); font-size: 14px; line-height: 1.7; }
.questions details { border-bottom: 1px solid var(--line); }
.questions details:first-child { border-top: 1px solid var(--line); }
.questions summary { position: relative; padding: 21px 33px 21px 0; min-height: 64px; list-style: none; font-size: 16px; line-height: 1.55; cursor: pointer; }
.questions summary::-webkit-details-marker { display: none; }
.questions summary::after { content: "+"; position: absolute; right: 2px; top: 21px; font-size: 21px; line-height: 1; font-weight: 300; color: var(--accent); }
.questions details[open] summary::after { content: "−"; }
.questions summary:hover { color: var(--accent); }
.answer { padding: 0 23px 24px 0; color: var(--body); font-size: 16px; line-height: 1.8; }
.answer p + p { margin-top: 15px; }
.directions-link { display: inline-flex; min-height: 44px; align-items: center; gap: 15px; margin-top: 9px; color: var(--accent); font-size: 13px; text-decoration: none; }
.directions-link:hover { text-decoration: underline; }
.footer-links { gap: 19px; flex-wrap: wrap; }
.footer-links a { min-height: 35px; font-size: 12px; color: var(--body); }
.footer-links a:last-child { color: var(--body); }
.legal-main { max-width: 800px; padding-top: 38px; padding-bottom: 60px; }
.legal-main h1 { margin-bottom: 33px; font-size: 42px; }
.legal-main h2 { margin: 32px 0 14px; font: 400 25px/1.25 var(--serif); }
.legal-main p, .legal-main li, .legal-main address { color: var(--body); font-size: 16px; line-height: 1.85; }
.legal-main p + p { margin-top: 15px; }
.legal-main a { color: var(--accent); overflow-wrap: anywhere; }
.legal-main ul { padding-left: 21px; margin: 15px 0; }
.legal-main .eyebrow { font-size: 12px; margin-bottom: 19px; }
.legal-back { display: inline-flex; min-height: 44px; align-items: center; gap: 12px; font-size: 14px; margin-top: 34px; }
@media (max-width: 900px) { .consultation { gap: 45px; } header nav { gap: 21px; } header nav a { font-size: 12px; } footer { flex-direction: column; gap: 8px; } }
@media (max-width: 650px) {
 header nav > a:not(:last-child) { display: none; }
 .consultation { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 33px 0 40px; }
 .consultation h2 { font-size: 33px; }
 .consultation-price { margin-top: 20px; }
 .questions summary { font-size: 16px; }
 .footer-links { display: flex; flex-wrap: wrap; gap: 5px 19px; }
 .footer-links a:first-child { display: inline-flex; }
 .legal-main { padding-top: 27px; padding-bottom: 40px; }
 .legal-main h1 { font-size: 35px; }
}

.career-steps > li { position: relative; }
.career-steps > li + li::before { content: ""; position: absolute; left: -18px; top: 0; bottom: 0; width: 1px; background: var(--line); }
.education-list { margin: 0; padding-left: 18px; color: var(--body); font-size: 16px; line-height: 1.8; }
.education-list li { padding-left: 3px; }
.education-list li + li { margin-top: 16px; }
.education-list li::marker { color: var(--accent); font-size: .75em; }
.education-list strong { color: var(--ink); font-weight: 500; }
@media (max-width: 650px) { .career-steps > li + li::before { display: none; } }

/* Align the three stages while preserving the existing column rhythm. */
.career-steps > li { display: grid; grid-template-rows: auto minmax(60px, auto) 1fr; align-content: start; }
.career-steps h3 { min-height: 23px; }
.career-steps .career-title { margin-bottom: 20px; }
.career-steps .education-list { font-size: 14px; line-height: 1.6; padding-left: 16px; }
.career-steps .education-list li + li { margin-top: 12px; }
.career-detail { display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.career-detail strong { color: var(--ink); font-weight: 500; }
@media (max-width: 650px) {
 .career-steps > li { display: block; }
 .career-steps h3 { min-height: 0; }
 .career-steps .career-title { margin-bottom: 14px; }
 .career-steps .education-list { font-size: 16px; line-height: 1.7; }
 .career-detail { gap: 16px; }
}

/* Final cascade: keep the refined career rhythm above the legacy alignment rules. */
.career-detail { justify-content: flex-start; gap: 18px; }
.career-fact { padding-top: 16px; border-top: 1px solid var(--line); }
.career-fact strong { display: block; margin-bottom: 5px; color: var(--accent); font-size: 13px; line-height: 1.5; font-weight: 500; }
.career-fact p { font-size: 14px; line-height: 1.65; }
.reveal-ready .map-frame[data-reveal] .map-pins { opacity: 0; transition: opacity .42s ease .16s; }
.reveal-ready .map-frame[data-reveal].is-visible .map-pins { opacity: 1; }
@media (max-width: 650px) { .career-detail { gap: 16px; } }
@media (prefers-reduced-motion: reduce) { .reveal-ready .map-frame[data-reveal] .map-pins { opacity: 1; transition: none; } }

/* Keep the full name on one typographic line. */
.profile h1 { white-space: nowrap; }
.profile .honorific { display: inline; margin: 0; font: inherit; letter-spacing: inherit; }
.profile .honorific::after { content: " "; }
.profile h1 em { font-style: normal; }
@media (max-width: 650px) { .profile h1 { font-size: clamp(25px, 8vw, 32px); letter-spacing: -.035em; } }

/* Values controlled from the private visual editor. */
body[data-title-font="classic"] { --serif: "Baskerville", "Iowan Old Style", "Palatino Linotype", Georgia, serif; }
body[data-title-font="editorial"] { --serif: "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif; }
body[data-title-font="modern"] { --serif: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; }
body[data-body-font="system"] { --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; }
body[data-body-font="humanist"] { --sans: Optima, Candara, "Trebuchet MS", sans-serif; }
body[data-body-font="serif"] { --sans: Georgia, "Times New Roman", serif; }
main, footer { max-width: var(--content-width); }
header { max-width: calc(var(--content-width) + 120px); }
.identity { font-size: var(--logo-size); }
.profile h1 { font-size: var(--h1-size); }
.career h2, .domains h2, .interventions h2, .consultation h2, .appointment h2 { font-size: var(--h2-size); }
.biography, .career-steps p, .interventions-intro, .answer, .domain-item > p:last-child, .contact-note { font-size: var(--body-size); line-height: var(--body-leading); }
.profile, .domains, .career, .interventions, .consultation, .appointment { padding-top: var(--section-space); padding-bottom: var(--section-space); border-top-width: var(--line-width); }
.domain-grid { border-top-width: var(--line-width); border-bottom-width: var(--line-width); }
.career-steps > li, .career-fact, .appointment { border-top-width: var(--line-width); }
.questions details { border-bottom-width: var(--line-width); }
.portrait-space { border-radius: var(--image-radius); }
.booking-link, .map-selection select { border-radius: var(--button-radius); }
.booking-link span, .text-link span, .directions-link span, header nav span { font-size: var(--icon-size); }
.geometry span { opacity: var(--geometry-opacity); }
.geometry::before, .geometry::after { opacity: var(--geometry-opacity); }
.career-steps, .consultation, .profile { column-gap: var(--columns-gap); }
.pin-hit, .pin-halo, .pin-dot { transform: scale(var(--marker-scale)); transform-origin: center; }
body[data-profile-ratio="narrow"] .profile { grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); }
body[data-profile-ratio="balanced"] .profile { grid-template-columns: repeat(2,minmax(0,1fr)); }
body[data-profile-ratio="wide"] .profile { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); }
body[data-profile-side="right"] .profile .portrait { order: 2; }
body[data-profile-side="right"] .profile .profile-copy { order: 1; }
body[data-profile-align="top"] .profile { align-items: start; }
body[data-profile-text="center"] .profile-copy { text-align: center; }
body[data-profile-text="center"] .profile-actions { align-items: center; }
body[data-portrait-ratio="portrait"] .portrait-space { aspect-ratio: 3/4; }
body[data-portrait-ratio="square"] .portrait-space { aspect-ratio: 1; }
body[data-portrait-ratio="landscape"] .portrait-space { aspect-ratio: 4/3; }
body[data-domain-layout="stacked"] .domain-grid { grid-template-columns: 1fr; }
body[data-domain-layout="stacked"] .domain-item { padding: 24px 0; border-left: 0; }
body[data-domain-layout="stacked"] .domain-item + .domain-item { border-top: var(--line-width) solid var(--line); }
body[data-map-layout="wide"] .interventions { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); }
body[data-map-layout="balanced"] .interventions { grid-template-columns: repeat(2,minmax(0,1fr)); }
body[data-map-layout="textwide"] .interventions { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
body[data-consultation-side="left"] .consultation-heading { order: 2; }
body[data-consultation-side="left"] .questions { order: 1; }
body[data-contact-layout="stacked"] .appointment { flex-direction: column; align-items: flex-start; }
body[data-effects="enhanced"] .reveal-ready [data-reveal] { transform: translateY(22px) scale(.992); filter: blur(2px); transition-duration: var(--motion-duration); transition-timing-function: cubic-bezier(.2,.72,.2,1); }
body[data-effects="enhanced"] .reveal-ready [data-reveal].is-visible { transform: translateY(0) scale(1); filter: blur(0); }
body[data-effects="subtle"] .reveal-ready [data-reveal] { transition-duration: 420ms; }
body[data-effects="none"] .reveal-ready [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
body[data-effects="enhanced"] .booking-link:hover { transform: translateY(calc(0px - var(--hover-lift))); box-shadow: 0 14px 32px #1d483d1a; }
body[data-effects="enhanced"] .text-link:hover, body[data-effects="enhanced"] .directions-link:hover { transform: translateY(calc(0px - var(--hover-lift))); }
.domain-item { transition: transform .38s cubic-bezier(.2,.72,.2,1), background-color .38s ease, box-shadow .38s ease; }
body[data-effects="enhanced"] .domain-item:hover { transform: translateY(calc(0px - var(--hover-lift))); background:#ffffff70; box-shadow:0 18px 42px #1d483d0b; }
.portrait-space { transition: transform .55s cubic-bezier(.2,.72,.2,1), box-shadow .55s ease; }
body[data-effects="enhanced"] .portrait-space:hover { transform: translateY(calc(0px - var(--hover-lift))); box-shadow:0 28px 66px #202b2420; }
body[data-effects="enhanced"] .map-frame[data-reveal] { transform:translateY(18px) scale(.985); }
body[data-effects="enhanced"] .map-frame[data-reveal].is-visible { transform:translateY(0) scale(1); }
header nav a:not(:last-child) { position:relative; }
header nav a:not(:last-child)::after { content:""; position:absolute; left:0; right:0; bottom:5px; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:right; transition:transform .32s ease; }
header nav a:not(:last-child):hover::after { transform:scaleX(1); transform-origin:left; }
.map-pin .pin-dot { transition:transform .28s ease, stroke-width .28s ease; }
body[data-effects="enhanced"] .map-pin:hover .pin-dot, body[data-effects="enhanced"] .map-pin.is-selected .pin-dot { transform:scale(1.22); }
@media (max-width: 650px) {
  .profile h1 { font-size: clamp(24px, 8vw, var(--h1-size)); }
  .career h2, .domains h2, .interventions h2, .consultation h2, .appointment h2 { font-size: clamp(27px, 9vw, var(--h2-size)); }
  body[data-profile-ratio] .profile, body[data-map-layout] .interventions { grid-template-columns: 1fr; }
  body[data-profile-side="right"] .profile .portrait, body[data-profile-side="right"] .profile .profile-copy { order: initial; }
  body[data-consultation-side="left"] .consultation-heading, body[data-consultation-side="left"] .questions { order: initial; }
}
@media (prefers-reduced-motion: reduce) {
  body[data-effects] .reveal-ready [data-reveal], body[data-effects] .reveal-ready [data-reveal].is-visible { opacity:1; transform:none; filter:none; transition:none; }
  .domain-item, .portrait-space, .map-pin .pin-dot, header nav a::after { transition:none; }
  body[data-effects] .domain-item:hover, body[data-effects] .portrait-space:hover { transform:none; }
}

/* Final career hierarchy: aligned columns and compact, scannable facts. */
.career-steps > li { grid-template-rows: auto minmax(68px,auto) 1fr; }
.career h3 { margin-bottom: 13px; color: var(--accent); font: 500 12px/1.55 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.career-steps .career-title { margin-bottom: 18px; color: var(--ink); font: 400 22px/1.25 var(--serif); }
.career-steps .career-intro { color: var(--body); font-size: 14px; line-height: 1.7; }
.career-steps .education-list, .career-steps .career-fact-list { font-size: 14px; line-height: 1.65; }
.career-steps .education-list span { display: block; color: var(--ink); font-weight: 500; }
.career-steps .education-list strong { display: block; margin-top: 2px; color: var(--body); font-weight: 400; }
.career-steps .career-fact-list--concise strong { margin-bottom: 3px; color: var(--ink); font-size: 14px; line-height: 1.5; }
.career-steps .career-fact-list--concise p { color: var(--body); font-size: 13px; line-height: 1.55; }
@media (max-width: 650px) {
  .career-steps .education-list, .career-steps .career-fact-list { font-size: 14px; line-height: 1.65; }
  .career-steps .career-title { min-height: 0; margin-bottom: 14px; }
}

/* Editorial timeline — Mon parcours only. */
.career { padding-top: calc(var(--section-space) + 20px); padding-bottom: calc(var(--section-space) + 28px); }
.career .career-steps { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--columns-gap); margin-top: 42px; }
.career .career-steps::before { content:""; position:absolute; z-index:0; left:4px; right:4px; top:51px; height:1px; background:var(--line); }
.career .timeline-step { position:relative; z-index:1; display:block; min-width:0; padding:0 18px 0 0; border:0; }
.career .timeline-step + .timeline-step::before { display:none; }
.career .timeline-kicker { display:flex; align-items:baseline; gap:10px; min-height:27px; color:var(--accent); font:500 11px/1.5 var(--sans); letter-spacing:.105em; text-transform:uppercase; }
.career .timeline-number { font:400 17px/1 var(--serif); letter-spacing:0; }
.career .timeline-dot { display:block; width:9px; height:9px; margin:16px 0 22px; border:2px solid var(--paper); border-radius:50%; background:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.career .timeline-step .career-title { min-height:58px; margin:0 0 17px; color:var(--ink); font:400 24px/1.23 var(--serif); }
.career .timeline-primary { margin:0 0 11px; color:var(--ink); font:500 14px/1.65 var(--sans); }
.career .timeline-secondary, .career .timeline-copy { margin:0; color:var(--body); font:400 14px/1.72 var(--sans); }
.career .timeline-domains { display:flex; flex-direction:column; align-items:flex-start; gap:7px; margin-top:22px; }
.career .timeline-domains span { color:var(--ink); font:500 12px/1.5 var(--sans); letter-spacing:.015em; }
.career .timeline-kicker { font:400 16px/1.35 var(--serif); letter-spacing:0; text-transform:none; }
.career .timeline-number { color:var(--accent); }
.career .timeline-education { display:flex; flex-direction:column; gap:17px; }
.career .timeline-education div { display:flex; flex-direction:column; gap:3px; }
.career .timeline-education strong { color:var(--ink); font:500 14px/1.45 var(--sans); }
.career .timeline-education span { color:var(--body); font:400 12px/1.5 var(--sans); }
.career .timeline-domains { gap:9px; margin-top:25px; }
.career .timeline-domains span { font-size:13px; font-weight:500; }
@media (max-width: 650px) {
  .career { padding-top:calc(var(--section-space) + 6px); padding-bottom:calc(var(--section-space) + 12px); }
  .career .career-steps { grid-template-columns:1fr; gap:46px; margin-top:34px; padding-left:34px; }
  .career .career-steps::before { left:4px; right:auto; top:7px; bottom:7px; width:1px; height:auto; }
  .career .timeline-step { padding:0; }
  .career .timeline-dot { position:absolute; left:-34px; top:2px; margin:0; }
  .career .timeline-step .career-title { min-height:0; margin:14px 0 13px; font-size:23px; }
  .career .timeline-kicker { min-height:0; }
  .career .timeline-primary, .career .timeline-secondary, .career .timeline-copy { font-size:14px; }
}

/* Requested consultation emphasis and shorter contact labels. */
.consultation-facts { font-size:30px; line-height:1.28; }
.consultation-facts strong { color:var(--accent); font-size:30px; }
@media (max-width:650px) { .consultation-facts, .consultation-facts strong { font-size:25px; } }

/* Exact desktop alignment of the three timeline markers. */
@media (min-width:651px) {
  .career .career-steps::before { top:51px; }
  .career .timeline-kicker { width:100%; height:27px; min-height:27px; white-space:nowrap; }
  .career .timeline-dot { position:absolute; top:47px; left:0; width:9px; height:9px; margin:0; box-sizing:border-box; }
  .career .timeline-step .career-title { margin-top:47px; }
}

/* Mobile hero only. */
@media (max-width:650px) {
  .profile { grid-template-columns:1fr; gap:24px; padding-top:18px; padding-bottom:36px; }
  .profile .portrait { width:min(75vw,320px); margin:0 auto; }
  .profile .portrait-space { aspect-ratio:3/4; border-radius:var(--image-radius); }
  .profile .profile-copy { order:initial; width:100%; text-align:center; }
  .profile .role { margin-top:11px; }
  .profile .biography { margin-top:17px; }
  .profile .biography p + p { margin-top:13px; }
  .profile .profile-actions { align-items:center; margin-top:20px; }
}

/* Contact final: une ligne compacte, trois informations essentielles. */
.appointment {
  display:block;
  padding:56px 0 64px;
  border-top:var(--line-width) solid var(--line);
}
.appointment-heading h2 {
  margin:13px 0 0;
  font:400 clamp(42px,5vw,61px)/1.06 var(--serif);
  letter-spacing:-.035em;
}
.appointment-row {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,.9fr) minmax(300px,1.18fr);
  align-items:start;
  gap:0;
  margin-top:31px;
  padding-top:27px;
  border-top:var(--line-width) solid var(--line);
}
.contact-zone { min-width:0; padding-right:34px; }
.contact-zone + .contact-zone {
  min-height:142px;
  padding-left:34px;
  border-left:var(--line-width) solid var(--line);
}
.contact-zone-label {
  margin-bottom:15px;
  color:var(--ink);
  font-size:11px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.contact-address address {
  color:var(--ink);
  font-size:15px;
  line-height:1.65;
}
.appointment .directions-link {
  min-height:34px;
  margin-top:11px;
  gap:11px;
  font-size:13px;
}
.appointment .contact-phones {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  margin:0;
}
.appointment .contact-phones a {
  display:inline-flex;
  min-height:28px;
  align-items:center;
  white-space:nowrap;
  text-decoration:none;
}
.appointment .contact-phones a + a::before { content:none; }
.appointment .contact-phones strong {
  color:var(--ink);
  font-size:15px;
  font-weight:400;
}
.appointment .contact-email {
  display:flex;
  width:max-content;
  min-height:31px;
  align-items:center;
  margin-top:3px;
  color:var(--accent);
  font-size:14px;
  text-decoration:none;
}
.appointment-meta {
  max-width:390px;
  color:var(--body);
  font-size:14px;
  line-height:1.65;
}
.appointment-meta strong { color:var(--accent); font-weight:500; }
.appointment-facts { white-space:nowrap; }
.contact-booking .booking-link { margin-top:20px; }
body[data-contact-layout="stacked"] .appointment-row { grid-template-columns:1fr; }
body[data-contact-layout="stacked"] .contact-zone { padding:22px 0; border-left:0; border-top:var(--line-width) solid var(--line); }
@media (max-width:650px) {
  .appointment { padding:45px 0 54px; }
  .appointment-heading h2 { margin-top:11px; font-size:clamp(38px,11.5vw,46px); }
  .appointment-row,
  body[data-contact-layout="stacked"] .appointment-row {
    grid-template-columns:1fr;
    margin-top:31px;
    padding-top:4px;
  }
  .contact-zone,
  .contact-zone + .contact-zone,
  body[data-contact-layout="stacked"] .contact-zone {
    min-height:0;
    padding:24px 0;
    border-left:0;
    border-top:var(--line-width) solid var(--line);
  }
  .contact-zone-label { margin-bottom:13px; }
  .contact-booking .booking-link { margin-top:18px; }
}
