/* ============================================================
   SM.PRIVÉ — Système de marque partagé (brand.css)
   Ported from the Claude Design "home-page.html".
   Every rule is scoped under `.smp` so it isolates the brand
   design from the legacy "mad" theme used on the rest of the
   site. Add the `smp` class to the rebrand banner, nav header,
   homepage content wrapper and site footer.
   Load AFTER style.css / responsive.css.
   ============================================================ */

@font-face{ font-family:"PP Eiko"; src:url("../fonts/brand/PPEiko-Black.otf") format("opentype"); font-weight:900; font-style:normal; font-display:swap; }
@font-face{ font-family:"Fraunces"; src:url("../fonts/brand/Fraunces72pt-SemiBold.ttf") format("truetype"); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:"Fraunces"; src:url("../fonts/brand/Fraunces72pt-SemiBoldItalic.ttf") format("truetype"); font-weight:600; font-style:italic; font-display:swap; }
@font-face{ font-family:"Plus Jakarta Sans"; src:url("../fonts/brand/PlusJakartaSans-Regular.ttf") format("truetype"); font-weight:400 600; font-style:normal; font-display:swap; }
@font-face{ font-family:"Messina Sans"; src:url("../fonts/brand/MessinaSans-Bold.ttf") format("truetype"); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:"Messina Sans"; src:url("../fonts/brand/MessinaSans-Regular.ttf") format("truetype"); font-weight:500; font-style:normal; font-display:swap; }

:root{
  /* ===== SM.PRIVÉ brand palette (global) =====
     The canonical brand colors. Use these on brand/coloured elements. */
  --marine:#163d6c; --nuage:#f3f3ef; --peau:#faebe6; --orange:#ed8d73; --vert:#b2ceae; --rose:#f5d8d2;
  --cyan:#79bad7; --ciel:#acd3e5; --peche:#f4b6a6; --beige:#fbf2e7; --sable:#eadaca;

  --sm-navy:#163d6c; --sm-navy-2:#0f2c50; --sm-navy-soft:#3f5680;
  --sm-blue:#4f78ab; --sm-blue-soft:#5189cd; --sm-book:#163d6c; --sm-book-2:#0f2c50;
  --sm-coral:#ed8d73; --sm-coral-2:#e07555; --sm-coral-soft:#f4b6a6;
  --sm-green:#b2ceae; --sm-rose:#f5d8d2; --sm-peau:#faebe6; --sm-sable:#eadaca; --sm-cyan:#79bad7; --sm-ciel:#acd3e5;
  --sm-ink:#33425c; --sm-ink-soft:#5d6a82; --sm-ink-faint:#94a0b4;
  --sm-paper:#ffffff; --sm-page:#ffffff; --sm-cream:#fbf2e7; --sm-mist:#f7f8fa; --sm-nuage:#f7f8fa;
  --sm-rule:#e7e7e1; --sm-rule-2:#eef0ea; --sm-tag-border:#d4d4cb;
  --sm-tick:#163d6c; --sm-gold:#bfa14a;
  --sm-shadow-sm:0 1px 0 rgba(22,61,108,.04), 0 1px 2px rgba(22,61,108,.05);
  --sm-shadow-md:0 18px 48px -28px rgba(22,61,108,.34);
  --sm-maxw:1180px; --sm-gutter:40px; --sm-radius:14px; --sm-radius-sm:999px;
  --sm-serif:"Fraunces", Georgia, serif;
  --sm-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
  --sm-display:"PP Eiko", "Fraunces", Georgia, serif;
  --sm-ui:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
}

/* Let the sticky nav escape the legacy theme wrapper. The mad theme sets
   .mad-page-wrapper{ overflow:hidden }, which silently disables position:sticky
   for the header inside it. body keeps overflow-x:hidden, so no horizontal
   scrollbar is introduced. This makes the header sticky on every page. */
.mad-page-wrapper{ overflow:visible; }

/* ===== ROOT / RESET (scoped) ===== */
.smp{ background:var(--sm-page); color:var(--sm-ink); font-family:var(--sm-sans);
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.smp *{ box-sizing:border-box; }
.smp img{ max-width:100%; display:block; }
.smp a{ color:var(--sm-blue); }

.smp .wrap{ width:100%; max-width:var(--sm-maxw); margin:0 auto; padding-inline:var(--sm-gutter); }
.smp .section{ padding-block:96px; }
.smp .section--tight{ padding-block:64px; }
.smp .section.alt{ background:var(--sm-paper); }
.smp .section.cream{ background:var(--sm-cream); }
.smp .section.mist{ background:var(--sm-mist); }

.smp .kicker{ font-family:var(--sm-ui); font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--sm-coral-2); margin:0 0 18px; }
.smp h1,.smp h2,.smp h3,.smp h4{ font-family:var(--sm-serif); color:var(--sm-navy); font-weight:600; letter-spacing:-.003em; }
.smp h1{ font-size:clamp(40px,4.2vw,54px); line-height:1.08; margin:0 0 26px; }
.smp h2{ font-size:clamp(34px,3.9vw,48px); line-height:1.06; margin:0 0 22px; }
.smp h3{ font-size:24px; line-height:1.18; margin:0 0 10px; }
.smp .lede{ font-size:20px; line-height:1.6; color:var(--sm-ink-soft); max-width:62ch; }
.smp .center{ text-align:center; }
.smp .center .lede,.smp .lede.center{ margin-inline:auto; }
.smp p{ text-wrap:pretty; }

/* ===== BUTTONS ===== */
.smp .btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:52px; padding:0 30px; font-family:var(--sm-ui); font-size:12px; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; border-radius:var(--sm-radius-sm);
  border:1.5px solid var(--sm-navy); background:var(--sm-navy); color:#fff; text-decoration:none; cursor:pointer;
  transition:background .2s, color .2s, transform .15s, box-shadow .2s; white-space:nowrap; }
.smp .btn:hover{ background:var(--sm-navy-2); border-color:var(--sm-navy-2); color:#fff; transform:translateY(-1px); box-shadow:var(--sm-shadow-md); }
.smp .btn--ghost{ background:transparent; color:var(--sm-navy); }
.smp .btn--ghost:hover{ background:var(--sm-navy); color:#fff; }
.smp .btn--book{ background:var(--sm-book); border-color:var(--sm-book); color:#fff; box-shadow:0 8px 22px -9px rgba(63,127,209,.8); }
.smp .btn--book:hover{ background:var(--sm-book-2); border-color:var(--sm-book-2); color:#fff; box-shadow:0 13px 28px -9px rgba(63,127,209,.95); transform:translateY(-1px); }
.smp .btn--sm{ height:46px; padding:0 22px; }

/* ===== REBRAND BANNER ===== */
.smp.rebrand,.smp .rebrand{ background:var(--sm-navy); color:#fff; }
.smp .rebrand__in{ max-width:var(--sm-maxw); margin:0 auto; padding:11px var(--sm-gutter); display:flex; align-items:center; justify-content:center; gap:14px; }
.smp .rebrand__mark{ height:26px; width:auto; flex:none; }
.smp .rebrand__dot{ width:9px; height:9px; border-radius:50%; background:var(--sm-coral); flex:none; }
.smp .rebrand__txt{ margin:0; font-family:var(--sm-ui); font-size:13.5px; line-height:1.45; color:rgba(255,255,255,.82); text-align:center; }
.smp .rebrand__txt strong{ color:#fff; font-weight:700; }
@media (max-width:620px){ .smp .rebrand__in{ padding:9px 18px; gap:10px; } .smp .rebrand__txt{ font-size:12px; } .smp .rebrand__mark{ height:22px; } }

/* ===== TOP NAV ===== */
.smp.nav,.smp .nav{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); -webkit-backdrop-filter:saturate(140%) blur(14px); backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--sm-rule); }
.smp .nav__in{ max-width:1340px; margin:0 auto; padding:0 var(--sm-gutter); height:74px; display:flex; align-items:center; gap:34px; }
.smp .brand{ font-family:var(--sm-serif); font-weight:700; font-size:25px; color:var(--sm-navy); text-decoration:none; letter-spacing:.01em; display:flex; align-items:center; gap:11px; white-space:nowrap; flex-shrink:0; }
.smp .brand img{ width:auto; display:block; }
.smp .brand-ic{ height:40px; }
.smp .brand-wd{ height:40px; }
.smp .brand--foot .brand-ic{ height:40px; }
.smp .brand--foot .brand-wd{ height:40px; }
.smp .brand small{ font-family:var(--sm-sans); font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--sm-ink-faint); }
.smp .nav__links{ display:flex; gap:28px; margin-left:14px; }
.smp .nav__links > a,.smp .nav__links > .nav__item > a{ font-family:var(--sm-sans); font-size:13.5px; font-weight:500; letter-spacing:.02em; color:var(--sm-ink); text-decoration:none; transition:color .2s; white-space:nowrap; }
.smp .nav__links a:hover{ color:var(--sm-navy); }
/* ===== MEGAMENU (full-width nav dropdowns) ===== */
.smp .nav__item{ position:static; display:flex; align-items:center; }
.smp .nav__item > .nav__svc{ cursor:pointer; }
.smp .nav__links > a, .smp .nav__item > .nav__svc{ display:inline-flex; align-items:center; height:74px; }
.smp .megamenu{ position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--sm-rule); box-shadow:0 24px 48px -28px rgba(22,61,108,.35);
  opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .22s, transform .22s, visibility .22s; z-index:60; }
.smp .nav__item:hover .megamenu, .smp .megamenu:hover, .smp .nav__item:focus-within .megamenu{ opacity:1; visibility:visible; transform:translateY(0); }
.smp .megamenu__grid{ max-width:var(--sm-maxw); margin:0 auto; padding:30px var(--sm-gutter) 34px; display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.smp .megamenu__grid--4{ grid-template-columns:repeat(4,1fr); }
.smp .megamenu__grid--3{ grid-template-columns:repeat(3,1fr); }
.smp .mega-item{ display:flex; align-items:center; gap:13px; padding:16px; border-radius:14px; text-decoration:none; border:1px solid transparent; transition:background .2s, border-color .2s; }
.smp .mega-item img{ width:40px; height:40px; object-fit:contain; flex:none; }
.smp .mega-item__name{ font-family:var(--sm-ui); font-size:14.5px; font-weight:600; color:var(--sm-navy); line-height:1.25; flex:1; }
.smp .mega-item__arr{ color:var(--sm-ink-faint); flex:none; opacity:0; transition:opacity .2s, transform .2s; }
.smp .mega-item:hover{ background:var(--sm-nuage); border-color:var(--sm-rule); }
.smp .mega-item:hover .mega-item__arr{ opacity:1; color:var(--sm-coral-2); transform:translate(2px,-2px); }
.smp .mega-item--clinic{ flex-direction:column; align-items:flex-start; gap:7px; position:relative; }
.smp .mega-clinic__name{ font-family:var(--sm-serif); font-size:20px; font-weight:600; color:var(--sm-navy); }
.smp .mega-clinic__addr{ font-family:var(--sm-ui); font-size:13px; color:var(--sm-ink-soft); line-height:1.5; }
.smp .mega-item--clinic .mega-item__arr{ position:absolute; top:16px; right:16px; }
.smp .mega-item--simple .mega-item__name{ flex:1; }
/* Services megamenu — categorized columns */
.smp .megamenu__cols{ max-width:var(--sm-maxw); margin:0 auto; padding:34px var(--sm-gutter) 38px; display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
.smp .mega-cat__title{ font-family:var(--sm-ui); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--sm-coral-2); margin:0 0 6px; padding-bottom:12px; border-bottom:1px solid var(--sm-rule); }
.smp .mega-cat__list{ display:flex; flex-direction:column; }
.smp .mega-svc{ display:flex; align-items:center; gap:12px; padding:11px 10px; margin:0 -10px; border-radius:12px; text-decoration:none; transition:background .18s; }
.smp .mega-svc:hover{ background:var(--sm-nuage); }
.smp .mega-svc img{ width:30px; height:30px; object-fit:contain; flex:none; }
.smp .mega-svc span{ font-family:var(--sm-ui); font-size:14px; font-weight:600; color:var(--sm-navy); line-height:1.25; }
@media (max-width:980px){
  .smp .megamenu__grid{ grid-template-columns:repeat(3,1fr); }
  .smp .megamenu__grid--4, .smp .megamenu__grid--3{ grid-template-columns:repeat(2,1fr); }
  .smp .megamenu__cols{ grid-template-columns:repeat(2,1fr); gap:24px 30px; }
}
.smp .nav__right{ margin-left:auto; display:flex; align-items:center; gap:20px; }
.smp .nav__phone{ font-family:var(--sm-sans); font-size:13.5px; font-weight:600; color:var(--sm-navy); text-decoration:none; white-space:nowrap; display:flex; align-items:center; gap:7px; }
.smp .nav__phone svg{ width:15px; height:15px; }
.smp .nav__lang{ font-family:var(--sm-sans); font-size:12px; font-weight:600; letter-spacing:.08em; color:var(--sm-ink-soft); text-decoration:none; }
.smp .nav__burger{ display:none; background:none; border:0; cursor:pointer; color:var(--sm-navy); padding:6px; }
.smp .nav__burger svg{ width:26px; height:26px; }
.smp .nav__burger-close{ display:none; }
.smp .nav__burger[aria-expanded="true"] .nav__burger-menu{ display:none; }
.smp .nav__burger[aria-expanded="true"] .nav__burger-close{ display:block; }

/* ===== HERO (light split) ===== */
.smp .hero{ position:relative; background:#ffffff; overflow:hidden; }
.smp .hero__grid{ width:100%; margin:0; display:grid; grid-template-columns:0.92fr 1.18fr; align-items:stretch; min-height:640px; }
.smp .hero__text{ display:flex; flex-direction:column; justify-content:center; padding:90px var(--sm-gutter) 90px max(var(--sm-gutter), calc((95vw - var(--sm-maxw))/2 + var(--sm-gutter))); }
.smp .hero__text .inner{ max-width:600px; }
.smp .hero h1{ text-wrap:balance; }
.smp .hero h1 .soft{ color:var(--sm-navy); }
.smp .hero__sub{ font-size:19px; line-height:1.6; color:var(--sm-ink-soft); margin:0 0 30px; max-width:42ch; }
.smp .hero__actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:34px; }
.smp .hero__rule{ height:1px; background:var(--sm-rule); margin:8px 0 24px; max-width:430px; }
.smp .hero__cl-label{ font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:var(--sm-ink-faint); margin:0 0 16px; }
.smp .hero__media{ position:relative; }
.smp .hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:30% center; }
.smp .hero__media::before{ content:""; position:absolute; top:0; left:0; bottom:0; width:38%; z-index:2;
  background:linear-gradient(90deg, #ffffff 0%, #ffffff 12%, rgba(255,255,255,.85) 38%, rgba(255,255,255,.5) 64%, rgba(255,255,255,0) 100%); }

/* ===== RÉSEAU (navy band) ===== */
.smp .reseau{ background:var(--sm-navy); color:#fff; }
.smp .reseau .kicker{ color:var(--sm-coral); }
.smp .reseau__in{ display:flex; align-items:center; justify-content:space-between; gap:30px 40px; flex-wrap:nowrap; }
.smp .reseau__txt{ flex:0 1 auto; min-width:0; }
.smp .reseau .pills{ flex:0 0 auto; justify-content:flex-end; }
.smp .reseau__txt h2{ margin:6px 0 0; font-size:clamp(26px,2.6vw,36px); color:#fff; }
.smp .reseau .pill{ border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.06); color:#fff; }
.smp .reseau .pill:hover{ background:#fff; color:var(--sm-navy); border-color:#fff; transform:translateY(-1px); }
@media (max-width:760px){
  .smp .reseau__in{ flex-direction:column; align-items:flex-start; gap:20px; }
  /* Full-width 2-col grid so the four clinic pills line up evenly. */
  .smp .reseau .pills{ width:100%; display:grid; grid-template-columns:1fr 1fr; gap:12px; justify-content:stretch; }
  .smp .reseau .pill{ justify-content:center; }
}

.smp .pills{ display:flex; flex-wrap:wrap; gap:12px; }
.smp .pill{ display:inline-flex; align-items:center; gap:9px; padding:11px 20px; border:1px solid var(--sm-tag-border); border-radius:999px;
  font-family:var(--sm-sans); font-size:14.5px; font-weight:500; color:var(--sm-navy); text-decoration:none; background:rgba(255,255,255,.5);
  transition:border-color .2s, background .2s, transform .15s; }
.smp .pill::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--sm-coral); }
.smp .pill:hover{ border-color:var(--sm-navy); background:#fff; transform:translateY(-1px); }

/* ===== SERVICES (icônes officielles) ===== */
.smp .svcs__head{ text-align:center; margin-bottom:40px; }
/* Categorized columns — mirrors the header services megamenu (.megamenu__cols). */
.smp .svcs__cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
@media (max-width:900px){ .smp .svcs__cols{ grid-template-columns:repeat(2,1fr); gap:30px; } }
@media (max-width:520px){ .smp .svcs__cols{ grid-template-columns:1fr; gap:28px; } }
.smp .svcs__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.smp .svc-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:26px 14px; background:var(--sm-paper); border:1px solid var(--sm-rule); border-radius:16px; text-decoration:none; transition:border-color .2s, transform .15s, box-shadow .2s; }
.smp .svc-tile:hover{ border-color:var(--sm-coral); transform:translateY(-2px); box-shadow:var(--sm-shadow-md); }
.smp .svc-tile img{ width:54px; height:54px; object-fit:contain; }
.smp .svc-tile span{ font-family:var(--sm-ui); font-size:14px; font-weight:600; color:var(--sm-navy); line-height:1.25; }
@media (max-width:900px){ .smp .svcs__grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .smp .svcs__grid{ grid-template-columns:repeat(2,1fr); gap:12px; } .smp .svc-tile{ padding:20px 12px; gap:10px; } .smp .svc-tile img{ width:46px; height:46px; } .smp .svc-tile span{ font-size:13px; } }

/* ===== INTRO / À PROPOS ===== */
.smp .intro{ display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.smp .intro__media{ border-radius:var(--sm-radius); overflow:hidden; border:1px solid var(--sm-rule); box-shadow:var(--sm-shadow-md); aspect-ratio:4/5; }
.smp .intro__media img{ width:100%; height:100%; object-fit:cover; }
.smp .intro__body p{ color:var(--sm-ink-soft); font-size:17px; line-height:1.74; margin:0 0 18px; }
.smp .intro__body p:last-of-type{ margin-bottom:0; }
.smp .intro__body strong{ color:var(--sm-navy); font-weight:600; }
.smp .intro__sign{ margin-top:26px; font-family:var(--sm-serif); font-style:italic; font-size:22px; color:var(--sm-navy); }

/* ===== LE CERCLE (membership) ===== */
.smp .cercle{ background:var(--sm-peau); }
.smp .cercle__teaser{ text-align:center; }
.smp .cercle .kicker{ margin-bottom:14px; }
.smp .cercle h2{ font-size:clamp(34px,4vw,52px); line-height:1; margin:0 0 8px; display:inline-flex; align-items:flex-end; gap:10px; }
.smp .cercle__dot{ width:12px; height:12px; border-radius:50%; background:var(--sm-coral); display:inline-block; margin-bottom:9px; }
.smp .cercle__tag{ font-family:var(--sm-serif); font-style:italic; font-size:clamp(18px,2vw,24px); color:var(--sm-coral-2); margin:0 0 24px; }
.smp .cercle__lead{ max-width:58ch; margin:0 auto 32px; color:var(--sm-ink-soft); font-size:18px; line-height:1.6; }
.smp .cercle__tiers{ display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.smp .ctier{ display:inline-flex; align-items:center; gap:11px; background:#fff; border:1px solid var(--sm-rule); border-radius:999px; padding:12px 22px; }
.smp .ctier__dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.smp .ctier__dot--orange{ background:var(--sm-coral); } .smp .ctier__dot--green{ background:#7ba47e; } .smp .ctier__dot--navy{ background:var(--sm-navy); }
.smp .ctier__name{ font-family:var(--sm-serif); font-size:18px; color:var(--sm-navy); font-weight:600; }
.smp .ctier__price{ font-family:var(--sm-ui); font-size:13.5px; color:var(--sm-ink-soft); }
@media (max-width:560px){ .smp .cercle__tiers{ flex-direction:column; align-items:stretch; } .smp .ctier{ justify-content:flex-start; } }

/* ===== VALEURS ===== */
.smp .values__head{ margin-bottom:46px; }
.smp .values__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.smp .value h3{ font-size:24px; color:var(--sm-navy); margin:0 0 14px; }
.smp .value__rule{ width:34px; height:2px; background:var(--sm-coral); margin-bottom:16px; }
.smp .value p{ margin:0; color:var(--sm-ink-soft); font-size:15.5px; line-height:1.6; }
@media (max-width:820px){ .smp .values__grid{ grid-template-columns:1fr 1fr; gap:36px 26px; } }
@media (max-width:460px){ .smp .values__grid{ grid-template-columns:1fr; } }

/* ===== TRUST BAND ===== */
.smp .trustband{ background:var(--sm-navy); color:#fff; }
.smp .trustband .wrap{ display:grid; grid-template-columns:repeat(3,1fr); }
.smp .tb-item{ display:flex; gap:20px; align-items:center; padding:42px 38px; border-left:1px solid rgba(255,255,255,.13); }
.smp .tb-item:first-child{ border-left:0; padding-left:0; }
.smp .tb-item:last-child{ padding-right:0; }
.smp .tb-ic{ flex:none; width:44px; height:44px; color:#fff; opacity:.92; }
.smp .tb-ic svg{ width:100%; height:100%; stroke-width:1.3; }
.smp .tb-txt h3{ font-family:var(--sm-serif); color:#fff; font-size:28px; font-weight:600; margin:0 0 5px; line-height:1.05; white-space:nowrap; }
.smp .tb-txt p{ color:rgba(255,255,255,.6); font-size:14px; line-height:1.5; margin:0; max-width:26ch; }
@media (max-width:860px){ .smp .trustband .wrap{ grid-template-columns:1fr; } .smp .tb-item{ border-left:0; border-top:1px solid rgba(255,255,255,.13); padding:26px 0; } .smp .tb-item:first-child{ border-top:0; } .smp .tb-txt h3{ white-space:normal; } }

/* ===== TÉMOIGNAGES ===== */
.smp .tst-head{ text-align:center; margin-bottom:50px; }
.smp .tst-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.smp .tst{ background:var(--sm-paper); border:1px solid var(--sm-rule); border-radius:var(--sm-radius); padding:34px 32px; display:flex; flex-direction:column; box-shadow:var(--sm-shadow-sm); }
.smp .tst__stars{ display:flex; gap:3px; color:var(--sm-gold); margin-bottom:18px; }
.smp .tst__stars svg{ width:18px; height:18px; }
.smp .tst__quote{ font-family:var(--sm-serif); font-size:21px; line-height:1.42; color:var(--sm-navy); margin:0 0 24px; flex:1; }
.smp .tst__who{ display:flex; align-items:center; gap:13px; }
.smp .tst__av{ width:44px; height:44px; border-radius:50%; background:#eef3f9; color:var(--sm-navy); display:flex; align-items:center; justify-content:center; font-family:var(--sm-serif); font-weight:600; font-size:18px; }
.smp .tst__name{ font-family:var(--sm-sans); font-weight:600; font-size:15px; color:var(--sm-navy); }
.smp .tst__loc{ font-family:var(--sm-sans); font-size:13px; color:var(--sm-ink-faint); }

/* ===== FOOTER ===== */
.smp .foot-cta{ background:var(--sm-cream); }
.smp .foot-cta__in{ display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.smp .foot-cta h2{ margin:0; font-size:clamp(28px,3vw,40px); }
.smp .foot-cta p{ margin:8px 0 0; color:var(--sm-ink-soft); font-size:17px; }

.smp.site,.smp .site{ background:var(--sm-navy-2); color:rgba(255,255,255,.62); font-size:14px; }
.smp.site .wrap,.smp .site .wrap{ padding-block:64px 30px; }
.smp .foot-top{ display:grid; grid-template-columns:1.6fr 1fr; gap:48px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.1); }
.smp .foot-brand .brand{ color:#fff; }
.smp .foot-brand p{ margin:18px 0 0; color:rgba(255,255,255,.6); font-size:14.5px; line-height:1.65; max-width:34ch; }
.smp .foot-contact{ margin-top:22px; display:flex; flex-direction:column; gap:9px; }
.smp .foot-contact a{ color:#fff; text-decoration:none; font-weight:600; font-size:15px; display:flex; align-items:center; gap:9px; }
.smp .foot-contact a svg{ width:15px; height:15px; opacity:.8; }
.smp .foot-col h4{ font-family:var(--sm-sans); color:#fff; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin:0 0 18px; }
.smp .foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.smp .foot-col a{ color:rgba(255,255,255,.66); text-decoration:none; transition:color .2s; }
.smp .foot-col a:hover{ color:#fff; }
.smp .foot-clinics{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; padding:34px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.smp .foot-clinic h5{ margin:0 0 8px; font-family:var(--sm-sans); font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:rgba(255,255,255,.85); }
.smp .foot-clinic p{ margin:0; color:rgba(255,255,255,.55); font-size:13.5px; line-height:1.55; }
.smp .foot-social{ display:flex; gap:14px; margin-top:18px; }
.smp .foot-social a{ color:rgba(255,255,255,.66); font-size:17px; transition:color .2s; }
.smp .foot-social a:hover{ color:#fff; }
.smp .foot-bottom{ display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-top:24px; color:rgba(255,255,255,.45); font-size:13px; }
.smp .foot-bottom a{ color:rgba(255,255,255,.55); text-decoration:none; }
.smp .foot-bottom a:hover{ color:#fff; }

/* ===== RESPONSIVE ===== */
@media (max-width:1080px){
  .smp .hero__grid{ grid-template-columns:1fr; }
  .smp .hero__text{ padding:70px var(--sm-gutter) 56px; }
  .smp .hero__media{ min-height:420px; order:-1; }
  .smp .hero__media img{ object-position:center 28%; }
  .smp .hero__media::before{ display:none; }
  .smp .intro{ grid-template-columns:1fr; gap:40px; }
  .smp .intro__media{ order:-1; }
  .smp .tst-grid{ grid-template-columns:1fr; gap:22px; }
  .smp .foot-top{ grid-template-columns:1fr 1fr; gap:36px; }
  .smp .foot-clinics{ grid-template-columns:repeat(2,1fr); }
}
/* Switch to the burger menu while the full desktop nav (logo + links +
   phone + lang) still fits — it needs ~970px, so anything narrower would
   push .nav__right off the right edge. */
@media (max-width:1024px){
  .smp .nav__links, .smp .nav__phone, .smp .nav__lang{ display:none; }
  .smp .nav__burger{ display:inline-flex; }
}
@media (max-width:760px){
  .smp{ --sm-gutter:22px; }
  .smp .section{ padding-block:64px; }
  .smp .foot-top{ grid-template-columns:1fr; }
  .smp .foot-clinics{ grid-template-columns:1fr; }
  .smp .foot-cta__in{ flex-direction:column; align-items:flex-start; }
}

/* ===== MOBILE NAV DRAWER ===== */
/* Matches the nav breakpoint above (1024px) so the drawer is styled
   wherever the burger is shown. */
.smp .nav__mobile{ display:none; }
@media (max-width:1024px){
  .smp .nav__mobile{ display:none; background:#fff; border-bottom:1px solid var(--sm-rule); padding:8px var(--sm-gutter) 18px; max-height:calc(100vh - 120px); overflow-y:auto; }
  .smp .nav__mobile.is-open{ display:block; }

  /* Top-level direct links (Le Cercle, Contact, lang) — coral titles */
  .smp .nav__mlink{ display:block; padding:13px 4px; font-family:var(--sm-sans); font-size:16px; font-weight:600; color:var(--sm-coral-2); text-decoration:none; border-bottom:1px solid var(--sm-rule-2); }

  /* Accordion group (Services / Cliniques / À propos / Blogue) — coral titles */
  .smp .nav__macc{ border-bottom:1px solid var(--sm-rule-2); }
  .smp .nav__macc > summary{ list-style:none; cursor:pointer; padding:13px 4px; font-family:var(--sm-sans); font-size:16px; font-weight:600; color:var(--sm-coral-2); display:flex; align-items:center; justify-content:space-between; }
  .smp .nav__macc > summary::-webkit-details-marker{ display:none; }
  .smp .nav__macc > summary::after{ content:""; width:9px; height:9px; border-right:2px solid var(--sm-coral-2); border-bottom:2px solid var(--sm-coral-2); transform:rotate(45deg); transition:transform .2s; margin-right:4px; flex:none; }
  .smp .nav__macc[open] > summary::after{ transform:rotate(-135deg); }
  .smp .nav__macc-body{ padding:2px 4px 12px 14px; }
  .smp .nav__macc-body a{ display:block; padding:9px 4px; font-family:var(--sm-sans); font-size:15px; font-weight:500; color:var(--sm-ink); text-decoration:none; }
  .smp .nav__macc-body a:active{ color:var(--sm-navy); }
  .smp .nav__macc-cat{ margin:8px 0 2px; font-family:var(--sm-ui,var(--sm-sans)); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sm-ink-faint,#94a0b4); }
  .smp .nav__macc-cat:first-child{ margin-top:2px; }
}

/* ===== Checkmark icons (.tk) — global hardening =====
   The service-page list checks use `flex:none` (= flex-basis:auto). Mobile
   browsers can collapse an inline SVG with an auto basis when its sibling text
   wraps to two lines, so the checkmark looks smaller on multi-line bullets.
   Pin a DEFINITE flex-basis + size so every check stays a uniform 16px. */
svg.tk { flex: 0 0 16px !important; width: 16px !important; height: 16px !important; }

/* ===== Service-page hero "view services" button (global) =====
   Added to the hero of service pages; scrolls to the on-page services
   section (#services). Default variant sits on the dark navy heroes;
   the --solid variant is for the light heroes (soins d'urgence, cryo). */
.hero-view-services{ display:inline-flex; align-items:center; gap:9px; margin-top:30px;
  height:50px; padding:0 26px; border-radius:999px;
  font-family:var(--sm-ui); font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  text-decoration:none; cursor:pointer; background:#fff; color:var(--marine); border:1.5px solid #fff;
  transition:background .2s, color .2s, border-color .2s, transform .15s, box-shadow .2s; }
.hero-view-services:hover{ background:transparent; color:#fff; border-color:#fff; transform:translateY(-1px); }
.hero-view-services svg{ width:16px; height:16px; }
.hero-view-services--solid{ background:var(--marine); color:#fff; border-color:var(--marine); }
.hero-view-services--solid:hover{ background:transparent; color:var(--marine); border-color:var(--marine); }
/* Offset the sticky header when jumping to the on-page services anchor. */
[id="services"]{ scroll-margin-top:96px; }

/* ===== Rebrand welcome modal (homepage) ===== */
.wmodal, .wmodal *{ box-sizing:border-box; }
.wmodal{ position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:24px; background:transparent; }
.wmodal.is-open{ display:flex; }
.wmodal__scrim{ position:absolute; inset:0; background:rgba(15,28,50,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); opacity:0; transition:opacity .3s ease; }
.wmodal.is-open .wmodal__scrim{ opacity:1; }
.wmodal__card{ position:relative; width:100%; max-width:440px; background:#fff; border-radius:20px; padding:44px 40px 36px; text-align:center; box-shadow:0 40px 90px -30px rgba(15,28,50,.5); transform:translateY(14px) scale(.98); opacity:0; transition:transform .34s cubic-bezier(.2,.8,.25,1), opacity .34s ease; max-height:calc(100dvh - 40px); overflow-y:auto; }
.wmodal.is-open .wmodal__card{ transform:none; opacity:1; }
.wmodal__close{ position:absolute; top:16px; right:16px; width:34px; height:34px; border:none; background:var(--sm-nuage); border-radius:50%; color:var(--sm-ink-soft); font-size:19px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.wmodal__close:hover{ background:var(--sm-navy); color:#fff; }
.wmodal__mark{ height:52px; width:auto; margin:0 auto 22px; display:block; }
.wmodal__eyebrow{ font-family:var(--sm-ui); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sm-coral-2); margin:0 0 10px; }
.wmodal__title{ font-family:var(--sm-serif); font-weight:600; color:var(--sm-navy); font-size:27px; line-height:1.12; margin:0 0 14px; }
.wmodal__body{ font-family:var(--sm-ui); font-size:15px; line-height:1.6; color:var(--sm-ink-soft); margin:0 0 26px; }
.wmodal__body strong{ color:var(--sm-ink); font-weight:600; }
.wmodal__btn{ display:inline-flex; align-items:center; justify-content:center; height:50px; padding:0 34px; border:none; border-radius:999px; background:var(--sm-navy); color:#fff; font-family:var(--sm-ui); font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; cursor:pointer; transition:background .2s, transform .15s; }
.wmodal__btn:hover{ background:var(--sm-coral-2); transform:translateY(-1px); }
@media (max-width:480px){
  .wmodal{ padding:16px; align-items:flex-end; }
  .wmodal__card{ padding:34px 22px 26px; border-radius:22px; max-width:100%; transform:translateY(24px) scale(1); }
  .wmodal.is-open .wmodal__card{ transform:none; }
  .wmodal__mark{ height:46px; margin-bottom:18px; }
  .wmodal__title{ font-size:22px; }
  .wmodal__body{ font-size:14.5px; margin-bottom:22px; }
  .wmodal__btn{ width:100%; height:52px; }
  .wmodal__close{ top:12px; right:12px; }
}
