/* =========================================================
   Dr Olivier Julen — Gynécologie & obstétrique, Genève
   Feuille de styles unique, mobile-first.
   ========================================================= */

:root {
  --creme: #FAF8F5;
  --sable-50: #F4EFE7;
  --blush: #EBD6DC;
  --rose: #E2C7CE;
  --sable: #CBB99F;
  --foret: #243227;
  --sauge: #3A574A;
  --encre: #1C2321;
  --gris: #5A625E;
  --gris-rose: #5A5052;
  --beige: #8A7A66;
  --vieux-rose: #7E5F68;
  --filet: #E3DAD0;
  --petrole: linear-gradient(104deg, #1B2A33 0%, #2C4250 42%, #3E6070 76%, #4E7287 100%);
  --font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --wrap: 1296px;
  --gut: 20px;
  --sec: 72px;
  --radius: 20px;
  --hd: 72px;
}
@media (min-width: 768px) { :root { --gut: 40px; --sec: 96px; } }
@media (min-width: 1200px) { :root { --gut: 72px; --sec: 112px; --hd: 88px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--hd) + 16px); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); background: var(--creme); color: var(--encre); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: var(--foret); }
a:hover { color: var(--sauge); }
:focus-visible { outline: 2px solid var(--sauge); outline-offset: 3px; border-radius: 4px; }
h1, h2 { font-weight: 400; letter-spacing: -0.03em; line-height: 1.08; text-wrap: balance; }
h3 { font-weight: 500; letter-spacing: -0.014em; line-height: 1.25; }
p, li, dd { text-wrap: pretty; }
b, strong, .mark { font-weight: 600; }
.nowrap { white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--foret); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip:focus { top: 12px; }
.todo { color: var(--vieux-rose); font-weight: 500; }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }
.sec { padding: var(--sec) 0; position: relative; overflow: hidden; }
.sec--sable { background: var(--sable-50); }
.sec--blush { background: var(--blush); }
.sec--dark { background: var(--foret); color: var(--creme); }
.sec--petrole { background: var(--petrole); color: #fff; }

.eyebrow { display: inline-flex; align-items: center; gap: 14px; font-size: 11px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sauge); }
.eyebrow--line::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.sec--dark .eyebrow, .sec--petrole .eyebrow { color: rgba(235,214,220,.86); }
.h1 { font-size: clamp(36px, 5.2vw, 62px); }
.h2 { font-size: clamp(28px, 3.4vw, 44px); }
.lead { font-size: clamp(16px, 1.3vw, 17.5px); line-height: 1.75; color: var(--gris-rose); max-width: 38em; }
.sec--dark .lead, .sec--petrole .lead { color: rgba(255,255,255,.8); }
.head { display: grid; gap: 18px; margin-bottom: 40px; }
@media (min-width: 1024px) { .head--split { grid-template-columns: 1fr 360px; align-items: end; } }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 13px 28px; border-radius: 999px; font: 500 15px/1.2 var(--font); text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.btn:hover { transform: translateY(-1px); }
.btn--dark { background: var(--foret); color: var(--creme); }
.btn--dark:hover { background: var(--sauge); color: #fff; }
.btn--light { background: var(--creme); color: var(--foret); }
.btn--light:hover { background: #fff; color: var(--foret); }
.btn--ghost { border-color: #CFC3B6; color: var(--encre); background: transparent; }
.btn--ghost:hover { border-color: var(--foret); color: var(--foret); }
.btn--ghost-light { border-color: rgba(255,255,255,.5); color: #fff; background: transparent; }
.btn--ghost-light:hover { border-color: #fff; color: #fff; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; }
.link { font-weight: 500; text-decoration: none; }
.link::after { content: " →"; }
.sec--dark .link, .sec--petrole .link { color: #fff; }
.icon { width: 18px; height: 18px; flex-shrink: 0; }

/* ---------- En-tête ---------- */
.hd { position: sticky; top: 0; z-index: 50; background: rgba(250,248,245,.94); backdrop-filter: saturate(1.2) blur(10px); border-bottom: 1px solid var(--filet); }
.hd__in { height: var(--hd); display: flex; align-items: center; gap: 24px; }
.logo { display: flex; flex-direction: column; gap: 3px; text-decoration: none; color: var(--encre); margin-right: auto; }
.logo__name { font-size: 18px; font-weight: 600; letter-spacing: -0.025em; }
.logo__tag { font-size: 9px; font-weight: 500; letter-spacing: 0.2em; color: #7C8481; }
.nav { display: none; }
.hd__tools { display: flex; align-items: center; gap: 8px; }
.hd__tel, .hd__cta, .lang--desk { display: none; }
.lang { display: flex; gap: 2px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.04em; }
.lang a { padding: 6px 7px; text-decoration: none; color: #9A9189; border-radius: 6px; }
.lang a[aria-current] { color: var(--encre); }
.iconbtn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: transparent; color: var(--encre); cursor: pointer; }
.iconbtn svg { width: 22px; height: 22px; }
.mnav { position: fixed; inset: var(--hd) 0 0 0; z-index: 49; background: var(--creme); padding: 28px var(--gut) 120px; display: flex; flex-direction: column; gap: 6px; transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; overflow-y: auto; }
.mnav a.mnav__link { font-size: 26px; letter-spacing: -0.02em; padding: 12px 0; border-bottom: 1px solid var(--filet); text-decoration: none; color: var(--encre); }
.mnav .lang { margin-top: 18px; font-size: 15px; }
.nav-open .mnav { opacity: 1; visibility: visible; transform: none; }
.nav-open { overflow: hidden; }
@media (min-width: 1100px) {
  .nav { display: flex; gap: 30px; }
  .nav a { font-size: 14.5px; font-weight: 500; color: var(--encre); text-decoration: none; padding: 6px 0; border-bottom: 1px solid transparent; }
  .nav a:hover, .nav a[aria-current] { border-bottom-color: var(--encre); }
  .nav a[aria-current] { font-weight: 600; }
  .hd__tel, .lang--desk { display: flex; }
  .hd__tel { font-size: 14.5px; font-weight: 500; color: var(--encre); text-decoration: none; margin-left: 16px; }
  .hd__cta { display: inline-flex; margin-left: 8px; }
  .hd__tools .iconbtn { display: none; }
  .mnav { display: none; }
}

/* ---------- Barre d'action mobile ---------- */
.mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px var(--gut) calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--filet); box-shadow: 0 -8px 24px rgba(28,35,33,.06); }
.mbar .btn { min-height: 46px; padding: 10px; font-size: 14.5px; }
body { padding-bottom: 76px; }
@media (min-width: 1100px) { .mbar { display: none; } body { padding-bottom: 0; } }

/* ---------- Accueil : hero ---------- */
.hhero { position: relative; overflow: hidden; color: #fff; text-align: center; padding: 96px 0 72px; min-height: min(760px, 88vh); display: flex; align-items: center; background: radial-gradient(56% 46% at 18% 4%, rgba(235,214,220,.55) 0%, rgba(235,214,220,0) 72%), radial-gradient(54% 46% at 90% 96%, rgba(203,185,159,.5) 0%, rgba(203,185,159,0) 72%), radial-gradient(88% 64% at 50% 46%, rgba(12,17,14,.5) 0%, rgba(12,17,14,.2) 62%, rgba(12,17,14,0) 100%), linear-gradient(158deg, #2D4036 0%, #1C2721 46%, #141C17 72%, #31453A 100%); }
.hhero__deco { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hhero .wrap { position: relative; display: flex; flex-direction: column; align-items: center; }
.hhero .eyebrow { color: rgba(255,255,255,.88); }
.hhero .eyebrow::before, .hhero .eyebrow::after { content: ""; width: 36px; height: 1px; background: rgba(255,255,255,.42); }
.hhero h1 { margin-top: 30px; max-width: 16em; font-size: clamp(38px, 5.4vw, 64px); }
.hhero .lead { margin-top: 26px; color: rgba(255,255,255,.88); max-width: 34em; }
.hhero .btns { margin-top: 36px; justify-content: center; }
.hhero__meta { margin-top: 48px; font-size: 13px; letter-spacing: 0.02em; color: rgba(255,255,255,.72); }
@media (max-width: 640px) { .hhero .btns { width: 100%; flex-direction: column; } .hhero .btns .btn { width: 100%; } }

.trust { background: var(--blush); }
.trust dl { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; padding: 30px 0; }
.trust dt { font-size: 10px; font-weight: 500; letter-spacing: 0.18em; color: #6B5F62; text-transform: uppercase; }
.trust dd { margin-top: 6px; font-size: 14.5px; font-weight: 500; line-height: 1.4; }
@media (min-width: 900px) { .trust dl { grid-template-columns: repeat(4, 1fr); padding: 38px 0; } .trust dl > div + div { border-left: 1px solid rgba(28,35,33,.16); padding-left: 32px; } .trust dd { font-size: 16px; } }

/* ---------- Parcours de vie (5 cartes) ---------- */
.curve { display: none; width: 100%; height: 44px; margin: 8px 0 24px; }
.life { display: grid; gap: 14px; }
.lcard { position: relative; background: #fff; border: 1px solid var(--filet); border-radius: 16px; padding: 22px; display: grid; grid-template-columns: 56px 1fr; gap: 4px 16px; align-items: start; text-decoration: none; color: inherit; transition: border-color .2s, transform .2s; }
.lcard:hover { border-color: var(--sauge); transform: translateY(-2px); color: inherit; }
.lcard__icon { grid-row: span 4; width: 56px; height: 56px; border-radius: 999px; background: var(--creme); border: 1px solid var(--filet); display: flex; align-items: center; justify-content: center; }
.lcard__icon img { width: 40px; height: 40px; }
.lcard__kicker { font-size: 10px; font-weight: 500; letter-spacing: 0.18em; color: var(--beige); text-transform: uppercase; }
.lcard h3 { font-size: 19px; }
.lcard p { font-size: 14px; line-height: 1.58; color: var(--gris); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tags li { font-size: 11.5px; color: var(--sauge); border: 1px solid #DCD2C6; border-radius: 999px; padding: 4px 11px; }
.lcard__more { font-size: 13.5px; font-weight: 500; color: var(--foret); margin-top: 8px; }
@media (min-width: 1100px) {
  .curve { display: block; }
  .life { grid-template-columns: repeat(5, 1fr); gap: 18px; }
  .lcard { grid-template-columns: 1fr; padding: 24px 22px; gap: 0; }
  .lcard__icon { grid-row: auto; width: 64px; height: 64px; margin-bottom: 18px; }
  .lcard__icon img { width: 46px; height: 46px; }
  .lcard h3 { margin-top: 8px; }
  .lcard p { margin-top: 8px; flex-grow: 1; }
  .lcard { display: flex; flex-direction: column; }
  .lcard .tags { margin-top: 16px; }
  .lcard__more { margin-top: 16px; }
}

/* ---------- Bloc médecin (accueil) ---------- */
.split { display: grid; gap: 36px; align-items: center; }
@media (min-width: 1024px) { .split { grid-template-columns: 5fr 7fr; gap: 72px; } .split--rev { grid-template-columns: 7fr 5fr; } .split--rev > :first-child { order: 2; } }
.photo { border-radius: var(--radius); overflow: hidden; background: linear-gradient(168deg, #E8E2D6, #CBB99F); position: relative; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.rows { border-top: 1px solid var(--filet); margin-top: 28px; }
.rows > div { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--filet); }
.rows dt { font-size: 10.5px; font-weight: 500; letter-spacing: 0.18em; color: var(--beige); padding-top: 4px; text-transform: uppercase; }
.rows dd { font-size: 15.5px; line-height: 1.5; }
@media (max-width: 480px) { .rows > div { grid-template-columns: 1fr; gap: 4px; } }

/* ---------- Bloc cabinet (accueil) ---------- */
.cab { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1100px) { .cab { grid-template-columns: 520px 1fr; gap: 72px; } }
.cab__photo { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 24px 56px rgba(8,16,20,.32); }
.cab__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.maplink { position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; background: var(--creme); color: var(--foret); font-size: 13px; font-weight: 500; padding: 10px 16px; border-radius: 999px; text-decoration: none; box-shadow: 0 6px 18px rgba(8,16,20,.18); }
.maplink .icon { width: 15px; height: 15px; }
.ruler-t { margin-top: 36px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.22em; color: rgba(235,214,220,.82); text-transform: uppercase; }
.ruler { position: relative; margin-top: 18px; height: 92px; max-width: 460px; }
.ruler::before { content: ""; position: absolute; left: 6px; right: 6px; top: 32px; height: 1px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.55) 0 6px, transparent 6px 11px); }
.ruler__stop { position: absolute; top: 0; display: flex; flex-direction: column; gap: 8px; }
.ruler__stop:nth-child(1) { left: 0; align-items: flex-start; }
.ruler__stop:nth-child(2) { left: 50%; transform: translateX(-50%); align-items: center; text-align: center; }
.ruler__stop:nth-child(3) { right: 0; align-items: flex-end; text-align: right; }
.ruler__km { font-size: 15px; font-weight: 600; line-height: 18px; color: #fff; }
.ruler__dot { width: 13px; height: 13px; border-radius: 999px; background: #2C4250; border: 1.5px solid var(--blush); }
.ruler__stop:first-child .ruler__dot { background: var(--blush); }
.ruler__what { font-size: 13px; line-height: 1.4; color: rgba(255,255,255,.78); }
.onsite { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); display: flex; flex-wrap: wrap; gap: 10px 24px; font-size: 14px; color: rgba(255,255,255,.88); }
.onsite li { display: flex; align-items: center; gap: 9px; }
.onsite li::before { content: ""; width: 5px; height: 5px; border-radius: 999px; background: var(--blush); }
.infos { margin-top: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 26px 24px; }
@media (min-width: 1100px) { .infos { grid-template-columns: repeat(6, 1fr); gap: 32px; margin-top: 72px; } }
.infos > div { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); }
.infos dt { display: flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 500; letter-spacing: 0.16em; color: rgba(235,214,220,.86); text-transform: uppercase; }
.infos dt .icon { width: 16px; height: 16px; }
.infos dd { margin-top: 10px; font-size: 14px; line-height: 1.55; color: #fff; }
.infos a { color: #fff; }

/* ---------- Approche ---------- */
.steps { display: grid; gap: 28px; margin-top: 40px; }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.steps li { border-top: 1px solid rgba(28,35,33,.22); padding-top: 22px; }
.steps__n { font-size: 26px; font-style: italic; color: var(--sauge); }
.steps h3 { margin-top: 8px; font-size: 21px; }
.steps p { margin-top: 10px; font-size: 14.5px; line-height: 1.65; color: var(--gris-rose); }
.deco-plant { position: absolute; right: 4%; top: 24px; width: min(380px, 40vw); opacity: .4; pointer-events: none; }
.note { margin-top: 18px; font-size: 12.5px; color: var(--vieux-rose); }

/* ---------- Avis ---------- */
.reviews { margin-top: 36px; background: #fff; color: var(--encre); border-radius: 18px; padding: 24px; }
.reviews__top { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-bottom: 18px; border-bottom: 1px solid #EDE9E3; font-size: 13.5px; color: #6E7572; }
.reviews__top b { font-size: 18px; color: var(--encre); letter-spacing: -0.01em; }
.stars { display: inline-flex; gap: 3px; color: #FBBC04; }
.stars svg { width: 16px; height: 16px; }
.reviews__grid { margin-top: 20px; display: grid; gap: 16px; }
@media (min-width: 900px) { .reviews__grid { grid-template-columns: repeat(3, 1fr); } }
.review { border: 1px solid #E8E4DD; border-radius: 12px; padding: 18px; }
.review__who { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; }
.review__who span:first-child { width: 38px; height: 38px; border-radius: 999px; background: var(--blush); color: #6B5A60; display: flex; align-items: center; justify-content: center; }
.review p { margin-top: 12px; font-size: 14px; line-height: 1.6; color: #4F5653; }
.review small { display: block; margin-top: 12px; font-size: 11.5px; letter-spacing: 0.06em; color: #9AA09D; }

/* ---------- FAQ ---------- */
.faq-layout { display: grid; gap: 32px; }
@media (min-width: 1024px) { .faq-layout { grid-template-columns: 340px 1fr; gap: 96px; } }
.faq details { border-top: 1px solid var(--filet); }
.faq details:last-child { border-bottom: 1px solid var(--filet); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 20px; padding: 20px 0; font-size: 17px; font-weight: 500; letter-spacing: -0.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span:first-child { flex-grow: 1; }
.faq summary .plus { font-size: 22px; color: var(--sauge); transition: transform .2s; }
.faq details[open] .plus { transform: rotate(45deg); }
.faq details p { padding: 0 40px 22px 0; max-width: 44em; font-size: 15px; line-height: 1.72; color: var(--gris); }
.faq-group + .faq-group { margin-top: 48px; }
.faq-group h2 { font-size: 24px; margin-bottom: 8px; }

/* ---------- Carte au clic ---------- */
.map { position: relative; border-radius: var(--radius); overflow: hidden; background: #EFEBE3; border: 1px solid var(--filet); min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; text-align: center; }
.map p { max-width: 24em; font-size: 13.5px; line-height: 1.6; color: var(--gris); }
.map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map .icon { width: 30px; height: 30px; color: var(--gris); }
@media (min-width: 1024px) { .map { min-height: 420px; } }

/* ---------- Bandeau rendez-vous ---------- */
.cta { display: grid; gap: 28px; align-items: center; }
@media (min-width: 900px) { .cta { grid-template-columns: 1fr auto; } }
.cta .btns { flex-direction: column; }
@media (max-width: 899px) { .cta .btns .btn { width: 100%; } }

/* ---------- Pied de page ---------- */
.ft { background: var(--foret); color: rgba(250,248,245,.86); padding: 64px 0 24px; font-size: 14px; }
.ft__grid { display: grid; gap: 36px; }
@media (min-width: 900px) { .ft__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; } }
.ft__name { font-size: 21px; font-weight: 600; letter-spacing: -0.02em; color: #fff; }
.ft__tag { margin-top: 6px; font-size: 9.5px; font-weight: 500; letter-spacing: 0.22em; color: #A9B39C; }
.ft__txt { margin-top: 18px; max-width: 18em; color: rgba(250,248,245,.72); line-height: 1.65; }
.ft h2 { font-size: 10.5px; font-weight: 500; letter-spacing: 0.2em; color: #A9B39C; text-transform: uppercase; margin-bottom: 14px; }
.ft ul { display: grid; gap: 10px; }
.ft a { color: rgba(250,248,245,.86); text-decoration: none; }
.ft a:hover { color: #fff; }
.ft .btn--light { color: var(--foret); }
.ft__bottom { margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(250,248,245,.2); display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 12.5px; color: rgba(250,248,245,.6); }
.ft__bottom a { color: rgba(250,248,245,.6); }

/* ---------- Prestations ---------- */
.phero { position: relative; overflow: hidden; padding: 72px 0 56px; background: radial-gradient(52% 70% at 76% 42%, rgba(250,248,245,.85) 0%, rgba(250,248,245,0) 70%), radial-gradient(60% 80% at 4% 100%, rgba(203,185,159,.42) 0%, rgba(203,185,159,0) 70%), radial-gradient(70% 70% at 96% 0%, rgba(226,199,206,.9) 0%, rgba(226,199,206,0) 70%), linear-gradient(170deg, #F4E6E9 0%, #EFDDE1 48%, #F3EAE2 100%); }
.phero__grid { position: relative; display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .phero { padding: 112px 0 64px; } .phero__grid { grid-template-columns: 1fr 420px; gap: 48px; } }
.phero .eyebrow { color: #6B4F58; }
.phero h1 { margin-top: 26px; }
.phero .lead { margin-top: 26px; }
.motif { width: min(420px, 78vw); margin: 0 auto; }
.pills-t { margin-top: 48px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.22em; color: #6B4F58; }
.pills { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.pills a { display: inline-flex; align-items: center; gap: 10px; background: rgba(250,248,245,.75); border: 1px solid rgba(126,95,104,.18); border-radius: 999px; padding: 7px 18px 7px 8px; font-size: 13.5px; font-weight: 500; color: var(--encre); text-decoration: none; }
.pills a:hover { background: #fff; }
.pills img { width: 30px; height: 30px; padding: 4px; border-radius: 999px; background: var(--creme); }
.pblock { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .pblock { grid-template-columns: 420px 1fr; gap: 64px; } .pblock--rev { grid-template-columns: 1fr 420px; } .pblock--rev .photo { order: 2; } }
.pblock .photo { aspect-ratio: 10 / 9; }
.picon { width: 72px; height: 72px; border-radius: 999px; background: #fff; border: 1px solid #E8DDD6; display: flex; align-items: center; justify-content: center; }
.picon img { width: 48px; height: 48px; }
.kicker { display: block; margin-top: 20px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.2em; color: var(--beige); text-transform: uppercase; }
.pblock h2 { margin-top: 10px; font-size: clamp(26px, 2.6vw, 34px); }
.pblock .lead { margin-top: 16px; font-size: 15.5px; color: var(--gris); }
.incl { margin-top: 22px; font-size: 12px; font-weight: 600; letter-spacing: 0.15em; color: var(--sauge); }
.plist { margin-top: 8px; }
.plist li { display: flex; gap: 12px; padding: 7px 0; font-size: 15px; line-height: 1.55; color: var(--gris); }
.plist li::before { content: ""; flex-shrink: 0; width: 12px; height: 1.5px; background: #C08A6E; margin-top: 11px; }

/* ---------- Page cabinet ---------- */
.chero { padding: 56px 0 72px; background: radial-gradient(60% 80% at 0% 100%, rgba(235,214,220,.55) 0%, rgba(235,214,220,0) 70%), radial-gradient(50% 70% at 40% 0%, rgba(203,185,159,.22) 0%, rgba(203,185,159,0) 70%), var(--creme); }
.chero__grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1024px) { .chero { padding: 96px 0; } .chero__grid { grid-template-columns: 500px 1fr; gap: 80px; } }
.chero h1 { margin-top: 26px; font-size: clamp(34px, 4.2vw, 50px); }
.chero .lead { margin-top: 24px; }
.chero .btns { margin-top: 32px; }
.chero__fig { position: relative; margin-bottom: 28px; }
.chero__fig .photo { aspect-ratio: 3 / 2; border-radius: 26px; box-shadow: 0 30px 60px rgba(28,35,33,.12); }
.chero__fig .photo img { object-position: 62% 40%; }
.addr { position: absolute; left: 16px; bottom: -28px; background: #fff; border-radius: 16px; padding: 14px 20px 14px 14px; box-shadow: 0 16px 40px rgba(28,35,33,.12); display: flex; align-items: center; gap: 14px; }
.addr__pin { width: 40px; height: 40px; border-radius: 999px; background: var(--blush); display: flex; align-items: center; justify-content: center; }
.addr b { display: block; font-size: 14.5px; }
.addr small { display: block; font-size: 13px; color: var(--gris); }
@media (min-width: 1024px) { .addr { left: -36px; bottom: 40px; } .chero__fig { margin-bottom: 0; } }
.features { display: grid; gap: 28px; }
@media (min-width: 700px) { .features { grid-template-columns: 1fr 1fr; gap: 40px 56px; } }
.features > div { padding-top: 24px; border-top: 1px solid rgba(255,255,255,.2); }
.features svg { width: 26px; height: 26px; color: var(--blush); }
.features h3 { margin-top: 14px; font-size: 19px; color: #fff; }
.features p { margin-top: 8px; font-size: 14.5px; line-height: 1.65; color: rgba(255,255,255,.76); }
.space { display: grid; gap: 40px; }
@media (min-width: 1024px) { .space { grid-template-columns: 400px 1fr; gap: 96px; } }
.gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gallery figure { border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 5; }
.gallery figure:first-child { grid-column: span 2; aspect-ratio: 16 / 9; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) { .gallery { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 240px; gap: 16px; } .gallery figure { aspect-ratio: auto; } .gallery figure:first-child { grid-column: span 2; grid-row: span 2; } }
.prox { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (min-width: 900px) { .prox { grid-template-columns: repeat(5, 1fr); gap: 32px; } }
.prox > div { border-top: 1px solid var(--filet); padding-top: 16px; }
.prox dt { font-size: 10.5px; font-weight: 500; letter-spacing: 0.18em; color: var(--beige); text-transform: uppercase; }
.prox dd { margin-top: 8px; font-size: 19px; }

/* ---------- Page Dr Julen ---------- */
.dhero { position: relative; overflow: hidden; background: linear-gradient(160deg, #F4E6E9 0%, #F3EAE2 60%, var(--creme) 100%); padding: 48px 0 0; }
.dhero__grid { display: grid; gap: 36px; align-items: end; }
@media (min-width: 1024px) { .dhero { padding-top: 80px; } .dhero__grid { grid-template-columns: 1fr 480px; gap: 72px; } }
.dhero__txt { padding-bottom: 8px; }
@media (min-width: 1024px) { .dhero__txt { padding-bottom: 96px; } }
.dhero h1 { margin-top: 24px; font-size: clamp(44px, 6.4vw, 84px); letter-spacing: -0.045em; line-height: 0.98; }
.dhero__role { margin-top: 18px; font-size: clamp(17px, 1.6vw, 20px); font-weight: 500; color: var(--sauge); }
.dhero .lead { margin-top: 22px; }
.chips { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { font-size: 12.5px; border: 1px solid rgba(126,95,104,.25); background: rgba(255,255,255,.55); border-radius: 999px; padding: 7px 14px; }
.dhero .btns { margin-top: 32px; }
.dhero__photo { position: relative; aspect-ratio: 4 / 5; border-radius: 24px 24px 0 0; overflow: hidden; background: var(--rose); }
.dhero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.dhero__ring { position: absolute; right: -60px; top: 20px; width: 560px; height: 560px; opacity: .5; pointer-events: none; }
.timeline { position: relative; margin-top: 48px; display: grid; gap: 0; }
.tl { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 20px; padding-bottom: 40px; }
.tl::before { content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 1px; background: rgba(255,255,255,.22); }
.tl:last-child::before { display: none; }
.tl__n { width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(235,214,220,.5); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--blush); }
.tl:last-child .tl__n { background: var(--blush); color: var(--foret); border-color: var(--blush); }
.tl__when { font-size: 10.5px; font-weight: 500; letter-spacing: 0.2em; color: rgba(235,214,220,.8); text-transform: uppercase; }
.tl__inst { margin-top: 6px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 400; letter-spacing: -0.02em; line-height: 1.15; color: #fff; }
.tl__what { margin-top: 8px; font-size: 15px; line-height: 1.65; color: rgba(255,255,255,.76); max-width: 36em; }
@media (min-width: 1024px) {
  .timeline { grid-template-columns: repeat(5, 1fr); gap: 24px; margin-top: 64px; }
  .tl { grid-template-columns: 1fr; gap: 18px; padding-bottom: 0; }
  .tl::before { left: 44px; right: -24px; top: 21px; bottom: auto; width: auto; height: 1px; }
  .tl__inst { font-size: 22px; }
  .tl__what { font-size: 14px; }
}
.quote { text-align: center; }
.quote blockquote { font-size: clamp(28px, 4vw, 48px); font-weight: 400; letter-spacing: -0.03em; line-height: 1.15; max-width: 18em; margin: 0 auto; text-wrap: balance; }
.quote blockquote::before { content: "«\00a0"; color: var(--vieux-rose); }
.quote blockquote::after { content: "\00a0»"; color: var(--vieux-rose); }
.quote cite { display: block; margin-top: 24px; font-style: normal; font-size: 13px; letter-spacing: 0.16em; color: var(--vieux-rose); text-transform: uppercase; }
.affil { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 40px; }
@media (min-width: 900px) { .affil { grid-template-columns: repeat(4, 1fr); gap: 20px; } }
.affil li { background: #fff; border: 1px solid var(--filet); border-radius: 18px; padding: 24px 20px; }
.affil b { display: block; font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -0.03em; font-weight: 500; color: var(--foret); }
.affil span { display: block; margin-top: 8px; font-size: 13px; line-height: 1.5; color: var(--gris); }
.agree { margin-top: 20px; font-size: 14.5px; color: var(--gris); }
.strip { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.strip figure { border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; }
.strip figure:first-child { grid-column: span 2; aspect-ratio: 16 / 9; }
.strip img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) { .strip { grid-template-columns: 2fr 1fr 1fr; gap: 16px; } .strip figure, .strip figure:first-child { grid-column: auto; aspect-ratio: auto; height: 340px; } }

/* ---------- Contact ---------- */
.contact { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .contact { grid-template-columns: 1.2fr 1fr; gap: 64px; } }
.access3 { display: grid; gap: 28px; }
@media (min-width: 900px) { .access3 { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.access3 > div { border-top: 1px solid var(--filet); padding-top: 20px; }
.access3 h3 { font-size: 12px; font-weight: 600; letter-spacing: 0.17em; color: var(--sauge); text-transform: uppercase; }
.access3 p { margin-top: 12px; font-size: 15px; line-height: 1.65; color: var(--gris); }

/* ---------- Pages simples ---------- */
.phead { padding: 56px 0 24px; }
@media (min-width: 1024px) { .phead { padding: 88px 0 32px; } }
.phead h1 { margin-top: 18px; }
.phead .lead { margin-top: 18px; }
.prose { max-width: 46em; }
.prose h2 { font-size: 24px; margin: 36px 0 12px; }
.prose p { color: var(--gris); line-height: 1.75; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
@media (max-width: 1099px) { .lcard > *:not(.lcard__icon) { grid-column: 2; } }

/* =========================================================
   V2 — retours cliente du 3 octobre 2026
   ========================================================= */

/* Barre utilitaire (desktop) */
.topbar { display: none; background: var(--foret); color: rgba(250,248,245,.86); font-size: 13px; }
.topbar a { color: #fff; text-decoration: none; }
.topbar a:hover { color: var(--blush); }
.topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 40px; }
.topbar__sep { margin: 0 12px; opacity: .5; }
.topbar a[data-onedoc] { font-weight: 600; }
@media (min-width: 1100px) { .topbar { display: block; } }

/* Prestations : photo hero + vue d'ensemble */
.phero__photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 24px 60px -30px rgba(36,50,39,.35); }
.phero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
@media (min-width: 1024px) { .phero__grid { grid-template-columns: 1fr 520px; } .phero__photo { aspect-ratio: 5 / 4; } }
.overview { display: grid; gap: 16px; margin-top: 40px; }
.overview li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding: 26px 24px; background: #fff; border: 1px solid var(--filet); border-radius: 18px; }
.overview h3 { font-size: 18px; }
.overview p { margin-top: 8px; font-size: 15px; color: var(--gris); }
.overview .link { display: inline-block; margin-top: 14px; }
.check { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--blush); color: var(--foret); font-size: 15px; font-weight: 600; }
@media (min-width: 760px) { .overview { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .overview { grid-template-columns: repeat(3, 1fr); gap: 20px; } }

/* Accueil : hero photo immersif (v3) */
.hero2 { position: relative; overflow: hidden; color: #fff; min-height: 88svh; display: flex; align-items: flex-end; margin-top: calc(-1 * var(--hd)); background: #6B4A38; }
.hero2 .slides { position: absolute; inset: 0; }
.hero2 .slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.hero2 .slide.is-active { opacity: 1; }
.hero2 .slide img { width: 100%; height: 100%; object-fit: cover; object-position: 46% 30%; }
.hero2__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,26,18,.42) 0%, rgba(40,26,18,0) 22%, rgba(40,26,18,0) 42%, rgba(36,24,17,.72) 100%); }
.hero2__in { position: relative; padding-top: calc(var(--hd) + 48px); padding-bottom: 64px; display: grid; gap: 40px; }
.hero2__eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; letter-spacing: .02em; color: rgba(255,255,255,.9); }
.hero2__eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: var(--blush); box-shadow: 0 0 0 4px rgba(235,214,220,.25); }
.hero2 h1 { margin-top: 18px; font-size: clamp(36px, 9vw, 72px); font-weight: 400; letter-spacing: -0.035em; line-height: 1.04; max-width: 12em; color: #fff; text-shadow: 0 2px 30px rgba(30,18,12,.25); }
.hero2 h1 b { font-weight: 600; }
.hero2__lead { margin-top: 18px; max-width: 32em; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.88); }
.hero2 .btns { margin-top: 28px; }
.hero2__stats { display: none; }
.hero2__dots { position: absolute; right: var(--gut); top: calc(var(--hd) + 20px); display: flex; gap: 8px; z-index: 2; }
.hero2 .dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 6px; background: rgba(255,255,255,.5); cursor: pointer; transition: width .3s, background .3s; }
.hero2 .dot.is-active { width: 24px; background: #fff; }
@media (max-width: 640px) { .hero2 .btns { flex-direction: column; } .hero2 .btns .btn { width: 100%; } }
@media (min-width: 1100px) {
  .hero2 { min-height: min(860px, 100svh); margin-top: calc(-1 * (var(--hd) + 40px)); }
  .hero2 .slide img { object-position: 50% 32%; }
  .hero2__veil { background: linear-gradient(180deg, rgba(40,26,18,.45) 0%, rgba(40,26,18,0) 26%), linear-gradient(90deg, rgba(36,24,17,.62) 0%, rgba(36,24,17,.25) 45%, rgba(36,24,17,0) 70%), linear-gradient(0deg, rgba(36,24,17,.55) 0%, rgba(36,24,17,0) 45%); }
  .hero2__in { grid-template-columns: 1fr 260px; align-items: end; padding-bottom: 80px; }
  .hero2__stats { display: grid; gap: 22px; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.3); }
  .hero2__stats b { display: block; font-size: 20px; font-weight: 400; letter-spacing: -0.01em; }
  .hero2__stats span { display: block; margin-top: 2px; font-size: 12.5px; color: rgba(255,255,255,.75); }
  .hero2__dots { top: auto; bottom: 32px; left: 50%; right: auto; transform: translateX(-50%); }
}

/* Header transparent sur la photo (accueil, avant défilement) */
.home .topbar { position: relative; z-index: 51; background: transparent; border-bottom: 1px solid rgba(255,255,255,.16); }
html:not(.scrolled):not(.nav-open) .home .hd { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom-color: rgba(255,255,255,.16); }
html:not(.scrolled):not(.nav-open) .home .hd .logo,
html:not(.scrolled):not(.nav-open) .home .hd .logo__tag,
html:not(.scrolled):not(.nav-open) .home .hd .nav a,
html:not(.scrolled):not(.nav-open) .home .hd .hd__tel,
html:not(.scrolled):not(.nav-open) .home .hd .iconbtn { color: #fff; }
html:not(.scrolled):not(.nav-open) .home .hd .logo__tag { color: rgba(255,255,255,.75); }
html:not(.scrolled):not(.nav-open) .home .hd .nav a:hover { border-bottom-color: #fff; }
html:not(.scrolled):not(.nav-open) .home .hd .lang a { color: rgba(255,255,255,.6); }
html:not(.scrolled):not(.nav-open) .home .hd .lang a[aria-current] { color: #fff; }
html:not(.scrolled):not(.nav-open) .home .hd .hd__cta { background: #fff; color: var(--foret); }
.hd { transition: background .3s, border-color .3s; }
@media (max-width: 1099px) {
  .hero2 { background: #3B281E; min-height: 0; }
  .hero2 .slides { bottom: auto; height: min(62svh, 520px); }
  .hero2 .slide img { object-position: 52% 18%; }
  .hero2__veil { background: linear-gradient(180deg, rgba(40,26,18,.45) 0%, rgba(40,26,18,0) 18%, rgba(59,40,30,0) calc(min(62svh, 520px) - 220px), #3B281E min(62svh, 520px)); }
  .hero2__in { padding-top: calc(min(62svh, 520px) - 110px); padding-bottom: 48px; }
  .hero2 h1 { font-size: clamp(34px, 9vw, 52px); }
}
@media (min-width: 1100px) { .hero2 h1 { font-size: clamp(48px, 4.6vw, 66px); max-width: 11.5em; } }
/* Nav v3 : libellés du brief (5 entrées), téléphone déjà dans la barre du haut */
@media (min-width: 1100px) {
  .nav { gap: 24px; }
  .nav a { white-space: nowrap; font-size: 14px; }
  .hd__tel { display: none; }
  .hd__cta { white-space: nowrap; }
}
@media (min-width: 1100px) and (max-width: 1279px) { .nav { gap: 18px; } .nav a { font-size: 13.5px; } .hd__in { gap: 16px; } .hd__cta { padding-left: 18px; padding-right: 18px; } }
.logo__tag { white-space: nowrap; }

/* Accueil v4 : hero éditorial, images de la direction artistique */
.hero3 { display: grid; background: linear-gradient(160deg, #F6ECE8 0%, #F1E2DC 55%, #EEDFD2 100%); }
.hero3__media { position: relative; height: min(64svh, 520px); overflow: hidden; background: #E7CDB4; }
.hero3 .slides, .hero3 .slide { position: absolute; inset: 0; }
.hero3 .slide { opacity: 0; transition: opacity 1.4s ease; }
.hero3 .slide.is-active { opacity: 1; }
.hero3 .slide img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.hero3__dots { position: absolute; left: 0; right: 0; bottom: 16px; display: flex; justify-content: center; gap: 8px; }
.hero3 .dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 6px; background: rgba(255,255,255,.6); cursor: pointer; transition: width .3s, background .3s; }
.hero3 .dot.is-active { width: 24px; background: #fff; }
.hero3__txt { padding: 40px var(--gut) 56px; }
.hero3 h1 { margin-top: 20px; font-size: clamp(36px, 9vw, 64px); letter-spacing: -0.035em; line-height: 1.05; max-width: 11.5em; }
.hero3 .lead { margin-top: 20px; max-width: 32em; color: #5A5052; }
.hero3 .btns { margin-top: 28px; }
.hero3__stats { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 18px 28px; margin-top: 36px; padding-top: 24px; border-top: 1px solid rgba(28,35,33,.14); }
.hero3__stats b { display: block; font-size: 15px; font-weight: 600; color: var(--foret); }
.hero3__stats span { display: block; margin-top: 2px; font-size: 12.5px; color: #6B5F62; }
@media (max-width: 640px) { .hero3 .btns { flex-direction: column; } .hero3 .btns .btn { width: 100%; } .hero3__stats { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .hero3 { grid-template-columns: 1fr minmax(420px, 44%); min-height: min(780px, calc(100svh - 128px)); }
  .hero3__media { order: 2; height: auto; }
  .hero3__txt { align-self: center; padding: 72px 56px 72px max(var(--gut), calc((100vw - var(--wrap)) / 2)); }
  .hero3 h1 { font-size: clamp(44px, 4.4vw, 66px); }
}

/* Bandeau sous le hero : accouchements mis en avant */
.trust dt { color: #7E5F68; }
@media (min-width: 900px) { .trust dl { grid-template-columns: 1fr 1.6fr 1fr 1fr; } }

/* Carte Google affichée directement */
.map--live { padding: 0; min-height: 360px; }
.map--live iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map__open { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #fff; color: var(--foret); font-size: 13.5px; font-weight: 500; text-decoration: none; box-shadow: 0 6px 20px rgba(28,35,33,.14); }
.map__open .icon { width: 16px; height: 16px; color: var(--foret); }
.access1 { display: grid; gap: 22px; }
.access1 h3 { font-size: 18px; }
.access1 p { margin-top: 6px; color: var(--gris); }
.reviews__more { margin-top: 28px; text-align: center; }
.reviews-widget:empty { display: none; }
.has-reviews-widget .reviews { display: none; }
@media (min-width: 900px) { .trust dl { grid-template-columns: 1fr 1.5fr 1.1fr 1fr; } }

/* Accueil v5 : hero plein écran façon « Vitala », carrousel de générations */
.hero4 { position: relative; overflow: hidden; color: #fff; background: #2E2620; margin-top: calc(-1 * var(--hd)); }
.hero4 .slides { position: absolute; left: 0; right: 0; top: 0; height: min(78svh, 640px); }
.hero4 .slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s ease; }
.hero4 .slide.is-active { opacity: 1; }
.hero4 .slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s ease-out; }
.hero4 .slide.is-active img { transform: scale(1); }
.hero4__veil { position: absolute; left: 0; right: 0; top: 0; height: min(78svh, 640px); background: linear-gradient(180deg, rgba(30,22,16,.5) 0%, rgba(30,22,16,0) 20%, rgba(30,22,16,0) 40%, rgba(46,38,32,.92) 88%, #2E2620 100%); }
.hero4__in { position: relative; padding-top: calc(min(78svh, 640px) - 300px); padding-bottom: 40px; }
.hero4__eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; color: rgba(255,255,255,.9); }
.hero4__eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: var(--blush); box-shadow: 0 0 0 4px rgba(235,214,220,.25); }
.hero4 h1 { margin-top: 16px; font-size: clamp(34px, 9vw, 84px); font-weight: 400; letter-spacing: -0.04em; line-height: 1.02; color: #fff; max-width: 11em; text-shadow: 0 2px 30px rgba(20,14,10,.25); }
.hero4 h1 b { font-weight: 600; }
.hero4__lead { margin-top: 18px; max-width: 34em; font-size: 15.5px; line-height: 1.6; color: rgba(255,255,255,.88); }
.hero4 .btns { margin-top: 26px; }
.hero4__doms { display: none; }
.hero4__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 32px; }
.hcard { padding: 18px 18px 20px; border-radius: 18px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
.hcard b { display: block; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.hcard span { display: block; margin-top: 8px; font-size: 15px; line-height: 1.4; color: #fff; }
.hcard--light { background: rgba(250,248,245,.94); border-color: transparent; }
.hcard--light b { color: #7E5F68; }
.hcard--light span { color: var(--foret); font-weight: 500; }
.hero4__dots { position: absolute; right: var(--gut); top: calc(var(--hd) + 18px); display: flex; gap: 8px; z-index: 2; }
.hero4 .dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 6px; background: rgba(255,255,255,.5); cursor: pointer; transition: width .3s, background .3s; }
.hero4 .dot.is-active { width: 24px; background: #fff; }
@media (max-width: 640px) { .hero4 .btns { flex-direction: column; } .hero4 .btns .btn { width: 100%; } }
@media (min-width: 1100px) {
  .hero4 { margin-top: calc(-1 * (var(--hd) + 40px)); min-height: min(940px, 100svh); display: flex; }
  .hero4 .slides, .hero4__veil { height: auto; bottom: 0; }
  .hero4__veil { background: linear-gradient(180deg, rgba(30,22,16,.5) 0%, rgba(30,22,16,0) 22%), linear-gradient(90deg, rgba(30,22,16,.55) 0%, rgba(30,22,16,.15) 50%, rgba(30,22,16,0) 70%), linear-gradient(0deg, rgba(30,22,16,.7) 0%, rgba(30,22,16,.25) 38%, rgba(30,22,16,0) 60%); }
  .hero4__in { display: flex; flex-direction: column; justify-content: flex-end; width: 100%; padding-top: 180px; padding-bottom: 36px; }
  .hero4__main { display: grid; grid-template-columns: 1fr 280px; align-items: end; gap: 48px; }
  .hero4 h1 { font-size: clamp(54px, 5.6vw, 88px); }
  .hero4__doms { display: block; counter-reset: d; }
  .hero4__doms li + li { border-top: 1px solid rgba(255,255,255,.22); }
  .hero4__doms a { display: flex; gap: 14px; align-items: baseline; padding: 9px 0; color: #fff; text-decoration: none; font-size: 15px; transition: padding .2s; }
  .hero4__doms a:hover { padding-left: 6px; }
  .hero4__doms a span { font-size: 11.5px; color: rgba(255,255,255,.62); font-variant-numeric: tabular-nums; }
  .hero4__cards { grid-template-columns: 1fr 1.35fr 1fr 1fr; gap: 14px; margin-top: 44px; }
  .hcard { padding: 22px 22px 24px; min-height: 120px; }
  .hcard span { font-size: 16px; }
  .hero4__dots { top: auto; bottom: auto; right: var(--gut); top: 150px; }
}
@media (prefers-reduced-motion: reduce) { .hero4 .slide img { transition: none; transform: none; } }
@media (min-width: 1100px) { .hero4 h1 { font-size: clamp(52px, 5vw, 78px); } }

/* v6 : en-tête allégé */
.topbar__in { min-height: 34px; font-size: 12.5px; }
.hero4__link { display: inline-flex; align-items: center; min-height: 48px; padding: 0 6px; color: #fff; text-decoration: none; font-size: 15px; font-weight: 500; border-bottom: 1px solid transparent; }
.hero4__link:hover { color: #fff; border-bottom-color: rgba(255,255,255,.6); }
.hero4 .btns { align-items: center; gap: 22px; }
.hero4__lead { max-width: 30em; }
/* cartes -> une seule barre vitrée */
.hero4__cards { gap: 0; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
.hcard { background: none; border: 0; border-radius: 0; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 16px 18px; min-height: 0; }
.hcard + .hcard { border-left: 1px solid rgba(255,255,255,.18); }
.hcard--light { background: rgba(250,248,245,.94); }
.hcard b { font-size: 10.5px; }
.hcard span { margin-top: 6px; font-size: 14.5px; }
@media (max-width: 1099px) {
  .hero4__cards { grid-template-columns: 1fr 1fr; }
  .hcard:nth-child(3) { border-left: 0; }
  .hcard:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.18); }
  .hero4 .btns { flex-direction: row; flex-wrap: wrap; }
  .hero4 .btns .btn { width: auto; flex: 1 1 100%; }
  .hero4__link { flex: 1 1 100%; justify-content: center; }
}
@media (min-width: 1100px) {
  .hero4 { min-height: min(860px, 100svh); }
  .hero4 h1 { font-size: clamp(48px, 4.4vw, 68px); max-width: none; }
  .hero4__main { grid-template-columns: 1fr; }
  .hero4__cards { grid-template-columns: repeat(4, 1fr); margin-top: 48px; }
  .hcard { padding: 20px 24px 22px; }
  .hcard span { font-size: 15.5px; }
  .hero4__dots { top: auto; bottom: 150px; right: var(--gut); }
}
@media (max-width: 1099px) { .hero4 h1 br { display: none; } }

/* Formulaire de contact */
.form-wrap { display: grid; gap: 36px; }
@media (min-width: 1024px) { .form-wrap { grid-template-columns: 1fr 1.25fr; gap: 72px; align-items: start; } }
.form-notes { margin-top: 22px; display: grid; gap: 8px; font-size: 14px; color: var(--gris-rose); }
.form-notes li { padding-left: 16px; position: relative; }
.form-notes li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--vieux-rose); }
.cform { display: grid; gap: 18px; padding: 28px 24px; background: #fff; border-radius: var(--radius); box-shadow: 0 20px 50px -30px rgba(36,50,39,.3); }
@media (min-width: 768px) { .cform { padding: 36px; } }
.cform__2 { display: grid; gap: 18px; }
@media (min-width: 640px) { .cform__2 { grid-template-columns: 1fr 1fr; } }
.cform__row { display: grid; gap: 7px; }
.cform label { font-size: 13px; font-weight: 500; color: var(--encre); }
.cform input[type=text], .cform input[type=email], .cform input[type=tel], .cform textarea { width: 100%; font: inherit; font-size: 16px; color: var(--encre); padding: 12px 14px; border: 1px solid #DCD2C7; border-radius: 12px; background: var(--creme); transition: border-color .2s, background .2s; }
.cform input:focus, .cform textarea:focus { outline: none; border-color: var(--sauge); background: #fff; box-shadow: 0 0 0 3px rgba(58,87,74,.12); }
.cform textarea { resize: vertical; min-height: 140px; }
.cform__ok { display: flex; gap: 10px; align-items: flex-start; font-weight: 400 !important; color: var(--gris) !important; line-height: 1.5; }
.cform__ok input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--foret); flex: none; }
.cform .btn { justify-self: start; }
@media (max-width: 640px) { .cform .btn { justify-self: stretch; } }
.cform__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cform__status { padding: 14px 16px; border-radius: 12px; font-size: 14.5px; }
.cform__status.is-ok { background: #E6EFE9; color: var(--foret); }
.cform__status.is-err { background: #F6E4E6; color: #7A3B45; }
.cform .is-invalid { border-color: #B5646F !important; }
.reviews-widget { margin-top: 32px; min-height: 120px; }
