/* ── SELF-HOSTED FONTS ── */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('assets/fonts/fraunces-normal-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('assets/fonts/fraunces-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('assets/fonts/fraunces-italic-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url('assets/fonts/fraunces-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/inter-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/inter.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --paper:      #F4F2EC;
  --paper-2:    #EAE7DF;
  --ink:        #1F3640;
  --ink-soft:   #5A6E78;
  --lagon:      #2E7376;
  --lagon-deep: #1F5759;
  --lagon-soft: #BFD2D2;
  --lagon-pale: #DDE7E7;
  --urgence:    #B5462E;
  --line:       rgba(31,54,64,0.12);
  --line-soft:  rgba(31,54,64,0.06);
  --font-d: "Fraunces","Times New Roman",serif;
  --font-b: "Inter","Helvetica Neue",system-ui,sans-serif;
  --shadow: 0 2px 8px rgba(42,61,74,0.04),0 8px 24px rgba(42,61,74,0.06);
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:var(--font-b); background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; line-height:1.5; font-size:16px; overflow-x:hidden; }
h1,h2,h3 { font-family:var(--font-d); font-weight:400; font-variation-settings:"opsz" 144,"SOFT" 50; line-height:1.05; letter-spacing:-0.02em; margin:0; }
p { margin:0; }

/* Eyebrow */
.ey { font-family:var(--font-b); font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--lagon); display:inline-flex; align-items:center; gap:8px; }
.ey::before { content:""; display:inline-block; width:20px; height:1.5px; background:currentColor; opacity:.6; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:56px; padding:0 24px; border-radius:12px; font-family:var(--font-b); font-size:16px; font-weight:500; cursor:pointer; border:none; transition:transform 100ms,filter 100ms; text-decoration:none; width:100%; }
.btn:active { transform:scale(.97); filter:brightness(.94); }
.btn-p { background:var(--lagon); color:#fff; }
.btn-o { background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1.5px var(--ink); }

/* Pulse */
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }
.pulse { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--lagon); animation:pulse 1.8s ease-in-out infinite; flex-shrink:0; }

/* ── SITE BANNER ── */
.site-banner { display:none; padding:10px 20px; font-size:13px; font-weight:500; line-height:1.4; align-items:flex-start; gap:10px; }
.site-banner.active { display:flex; }
.site-banner--info { background:var(--lagon-pale); color:var(--lagon-deep); }
.site-banner--attention { background:#FEF3C7; color:#92400E; }
.site-banner--fermeture { background:#FEE2E2; color:var(--urgence); }

/* ── TOPBAR ── */
.topbar { position:sticky; top:0; z-index:100; height:64px; padding:0 20px; background:rgba(244,242,236,.88); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line-soft); transition:box-shadow 200ms; }
.topbar.scrolled { box-shadow:0 2px 16px rgba(31,54,64,.08); }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); }
.brand img { width:48px; height:48px; object-fit:contain; border-radius:10px; }
.brand strong { display:block; font-family:var(--font-d); font-size:15px; font-weight:500; letter-spacing:-.01em; font-variation-settings:"opsz" 144,"SOFT" 50; line-height:1.15; }
.brand small { display:none; }
.top-actions { display:flex; align-items:center; gap:8px; }
.icn { width:44px; height:44px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; padding:0; border:none; transition:transform 100ms; text-decoration:none; }
.icn:active { transform:scale(.94); }
.icn-p { background:var(--lagon); }
.icn-m { background:transparent; border:1.5px solid var(--line); }

/* ── MENU ── */
.menu { position:fixed; inset:0; z-index:200; background:var(--paper); transform:translateX(100%); transition:transform 300ms cubic-bezier(.4,0,.2,1); overflow-y:auto; display:flex; flex-direction:column; }
.menu.open { transform:translateX(0); }
.menu-hd { padding:20px 20px 0; display:flex; justify-content:space-between; align-items:center; }
.menu-nav { padding:40px 20px 24px; flex:1; }
.menu-nav a { display:flex; align-items:baseline; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); }
.menu-nav a:first-child { border-top:1px solid var(--line); }
.menu-nav .lk { font-family:var(--font-d); font-size:36px; font-weight:400; letter-spacing:-.02em; line-height:1; font-variation-settings:"opsz" 144,"SOFT" 50; }
.menu-nav .nn { font-size:11px; color:var(--ink-soft); font-family:ui-monospace,monospace; }
.menu-ft { padding:0 20px 40px; }
.menu-phone { padding:16px; background:var(--paper-2); border-radius:16px; border:1px solid var(--line); }
.menu-phone-lbl { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:500; display:inline-flex; align-items:center; gap:8px; }
.menu-phone a { display:block; font-family:var(--font-d); font-size:28px; color:var(--ink); margin-top:8px; text-decoration:none; letter-spacing:-.02em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.menu-soc { display:flex; gap:16px; margin-top:16px; font-size:13px; color:var(--ink-soft); }
.menu-soc a { color:inherit; text-decoration:none; }

/* ── HERO ── */
.hero { padding:0 0 32px; }
.hero-wrap { position:relative; margin:0 20px; border-radius:24px; overflow:hidden; aspect-ratio:4/5; }
.hero-img { position:absolute; inset:0; background-size:cover; background-position:center; filter:saturate(.9) brightness(.95); opacity:0; transition:opacity 1000ms ease; background-image:var(--img-mobile); }
.hero-img.active { opacity:1; }
@media(min-width:768px) { .hero-img { background-image:var(--img-desktop); } }
.hero-nav { position:absolute; bottom:16px; right:16px; display:flex; gap:6px; z-index:2; }
.hero-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; padding:0; transition:background 200ms, transform 200ms; }
.hero-dot.on { background:#fff; transform:scale(1.4); }
.hero-grad { position:absolute; inset:0; background:linear-gradient(to top,rgba(31,54,64,.78) 0%,rgba(31,54,64,.1) 45%,transparent 70%); }
.hero-status { position:absolute; top:16px; left:16px; display:inline-flex; align-items:center; gap:8px; padding:6px 12px; background:rgba(255,255,255,.92); border-radius:999px; font-size:11px; font-weight:500; color:var(--ink); letter-spacing:.06em; text-transform:uppercase; }
.hero-text { position:absolute; left:20px; right:20px; bottom:22px; color:#fff; }
.hero-kicker { font-size:11px; letter-spacing:.14em; text-transform:uppercase; opacity:.88; }
.hero h1 { font-size:44px; line-height:.98; letter-spacing:-.025em; font-weight:400; margin-top:10px; font-variation-settings:"opsz" 144,"SOFT" 50; }
.hero h1 em { font-style:italic; font-weight:300; color:var(--lagon-soft); }
.hero-cta { padding:20px 20px 0; }

/* ── WELCOME ── */
.welcome { padding:20px 20px 40px; }
.welcome-promise { margin:14px 0 24px; }
.welcome-promise-lead { font-family:var(--font-d); font-size:19px; font-weight:500; letter-spacing:-.01em; line-height:1.4; color:var(--ink); font-variation-settings:"opsz" 144,"SOFT" 50; }
.welcome-promise-head { font-family:var(--font-b); font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--lagon); margin:16px 0 8px; }
.welcome-promise-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:7px; }
.welcome-promise-list li { font-family:var(--font-b); font-size:14px; color:var(--ink-soft); padding-left:20px; position:relative; }
.welcome-promise-list li::before { content:"—"; position:absolute; left:0; color:var(--lagon); opacity:.7; }
.welcome-txt { font-family:var(--font-d); font-size:26px; line-height:1.18; letter-spacing:-.015em; color:var(--ink); font-weight:400; font-variation-settings:"opsz" 144,"SOFT" 50; margin-top:16px; }
.welcome-txt em { font-style:italic; color:var(--lagon); font-weight:300; }
.stats-scr { margin:24px -20px 0; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.stats-scr::-webkit-scrollbar { display:none; }
.stats-in { display:inline-flex; gap:12px; padding:0 20px; }
.stat { min-width:140px; flex-shrink:0; padding:20px; background:#fff; border-radius:20px; border:1px solid var(--line); }
.stat-a { background:var(--lagon-soft); border-color:transparent; }
.stat-n { font-family:var(--font-d); font-size:40px; line-height:1; letter-spacing:-.025em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.stat-l { font-size:12px; color:var(--ink-soft); margin-top:8px; line-height:1.3; }

/* ── ROOMS ── */
.rooms { padding:0 20px 48px; }
.rooms h2 { font-size:30px; margin-top:8px; }
.rooms h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.rooms-intro { font-size:15px; color:var(--ink-soft); line-height:1.55; margin-top:12px; max-width:560px; }
.rooms-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:24px; }
.room { border-radius:16px; overflow:hidden; position:relative; aspect-ratio:4/3; display:block; }
.room--wide { grid-column:1/-1; aspect-ratio:16/7; }
.room img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 400ms ease; }
.room:hover img { transform:scale(1.03); }
.room-grad { position:absolute; inset:0; background:linear-gradient(to top,rgba(31,54,64,.72) 0%,rgba(31,54,64,.1) 55%,transparent 75%); }
.room-lbl { position:absolute; bottom:12px; left:14px; right:14px; color:#fff; }
.room-lbl strong { display:block; font-family:var(--font-d); font-size:17px; font-weight:500; letter-spacing:-.01em; font-variation-settings:"opsz" 144,"SOFT" 50; line-height:1.1; }
.room-lbl span { font-size:11px; opacity:.85; margin-top:2px; display:block; }
@media(min-width:768px){
  .rooms { padding:0 64px 60px; }
  .rooms-grid { grid-template-columns:repeat(3,1fr); }
  .room--wide { grid-column:1/-1; aspect-ratio:21/7; }
  .room-lbl strong { font-size:20px; }
}

/* ── LIGHTBOX ── */
.lb { position:fixed; inset:0; z-index:300; background:rgba(15,25,30,0.96); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 250ms ease; }
.lb.open { opacity:1; pointer-events:all; }
.lb-inner { position:relative; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.lb-img-wrap { position:relative; width:100%; flex:1; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.lb-img { max-width:100%; max-height:100%; object-fit:contain; border-radius:8px; transition:opacity 200ms ease, transform 200ms ease; user-select:none; }
.lb-img.fade { opacity:0; transform:scale(.97); }
.lb-caption { padding:16px 20px 24px; text-align:center; color:#fff; }
.lb-caption strong { display:block; font-family:var(--font-d); font-size:20px; font-weight:500; font-variation-settings:"opsz" 144,"SOFT" 50; }
.lb-caption span { font-size:13px; opacity:.65; margin-top:4px; display:block; }
.lb-counter { font-size:11px; letter-spacing:.12em; color:rgba(255,255,255,.45); margin-top:6px; }
.lb-close { position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.12); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; transition:background 150ms; z-index:10; }
.lb-close:hover { background:rgba(255,255,255,.2); }
.lb-prev, .lb-next { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.12); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; transition:background 150ms; z-index:10; }
.lb-prev { left:12px; }
.lb-next { right:12px; }
.lb-prev:hover, .lb-next:hover { background:rgba(255,255,255,.22); }
.lb-dots { display:flex; gap:6px; justify-content:center; padding-bottom:8px; }
.lb-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.3); border:none; cursor:pointer; padding:0; transition:background 200ms, transform 200ms; }
.lb-dot.on { background:#fff; transform:scale(1.3); }
@media(min-width:768px){ .lb-prev { left:24px; } .lb-next { right:24px; } }
@media(prefers-reduced-motion:reduce){ .lb,.lb-img { transition:none; } }

/* ── DIFF ── */
.diff { padding:40px 0; background:var(--paper-2); }
.diff-hd { padding:0 20px; margin-bottom:16px; }
.diff h2 { font-size:30px; margin-top:8px; }
.diff h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.diff-scr { overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:4px; }
.diff-scr::-webkit-scrollbar { display:none; }
.diff-in { display:inline-flex; gap:12px; padding:8px 20px; }
.dc { width:240px; flex-shrink:0; padding:20px; background:#fff; border-radius:20px; box-shadow:var(--shadow); display:flex; flex-direction:column; position:relative; }
.dc-bdg { position:absolute; top:16px; right:16px; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--lagon); }
.dc-ico { width:40px; height:40px; border-radius:12px; background:var(--lagon-soft); display:flex; align-items:center; justify-content:center; }
.dc h3 { font-size:20px; font-weight:500; line-height:1.15; margin-top:16px; letter-spacing:-.01em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.dc p { font-size:14px; color:var(--ink-soft); margin-top:8px; line-height:1.45; }

/* ── SERVICES ── */
.services { padding:48px 20px; }
.services h2 { font-size:30px; margin-top:8px; }
.services h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.svc-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.svc { padding:16px; border-radius:16px; background:#fff; border:1px solid var(--line); min-height:116px; display:flex; flex-direction:column; justify-content:space-between; position:relative; color:var(--ink); cursor:pointer; transition:transform 100ms; user-select:none; }
.svc:active { transform:scale(.97); }
.svc-dk { background:var(--ink); border-color:transparent; color:#fff; }
.svc-dot { width:24px; height:24px; border-radius:8px; background:var(--lagon-soft); }
.svc-dk .svc-dot { background:var(--lagon); }
.svc-n { font-family:var(--font-d); font-size:18px; line-height:1.1; letter-spacing:-.01em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.svc-s { font-size:12px; opacity:.7; margin-top:4px; }
.svc-ar { position:absolute; top:16px; right:16px; font-size:16px; opacity:.5; }
/* Service bottom sheet */
.bs-svc-img { width:100%; object-fit:contain; display:block; background:var(--paper-2); }
.bs-svc-body { padding:20px 24px 48px; }
.bs-svc-ey { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--lagon); margin-bottom:8px; }
.bs-svc-txt { font-size:15px; color:var(--ink-soft); line-height:1.65; margin-top:10px; }

/* ── TEAM ── */
.team { padding:8px 0 48px; }
.team-hd { padding:0 20px; }
.team h2 { font-size:30px; margin-top:8px; }
.team h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.team-s { font-size:14px; color:var(--ink-soft); margin-top:8px; }
.team-scr { margin-top:20px; padding:0 20px; }
.team-in { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tm { width:100%; border:1.5px solid var(--line); border-radius:20px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.tm-tappable { cursor:pointer; transition:transform 100ms; }
.tm-tappable:active { transform:scale(.98); }
.tm-p { aspect-ratio:4/5; overflow:hidden; position:relative; background:var(--lagon-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tm-p img { width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
.tm-p img.missing { display:none; }
.tm-initials { font-family:var(--font-d); font-size:36px; font-weight:400; color:var(--lagon-deep); opacity:.5; font-variation-settings:"opsz" 144,"SOFT" 50; z-index:0; }
.tm-g { position:absolute; inset:0; background:linear-gradient(to top,rgba(31,54,64,.7),transparent 50%); }
.tm-i { position:absolute; bottom:12px; left:12px; right:12px; color:#fff; }
.tm-n { font-family:var(--font-d); font-size:19px; font-weight:500; letter-spacing:-.01em; line-height:1.1; font-variation-settings:"opsz" 144,"SOFT" 50; }
.tm-sp { font-size:11px; opacity:.9; margin-top:2px; }
.tm-foot { padding:12px 14px 14px; border-top:1px solid var(--line); flex:1; display:flex; flex-direction:column; justify-content:center; }
.tm-foot-label { font-size:10px; color:var(--ink-soft); letter-spacing:.05em; padding-left:14px; position:relative; }
.tm-foot-label::before { content:"—"; position:absolute; left:0; color:var(--lagon); }
.tm-foot-val { font-size:13px; font-weight:500; color:var(--ink); padding-left:14px; margin-top:2px; }
.tm-tap-hint { display:flex; align-items:center; gap:4px; margin-top:8px; padding-left:14px; font-size:10px; color:var(--lagon); letter-spacing:.04em; opacity:.7; }
/* Bottom sheet */
.bs-overlay { position:fixed; inset:0; background:rgba(31,54,64,.45); z-index:300; opacity:0; pointer-events:none; transition:opacity 220ms; }
.bs-overlay.open { opacity:1; pointer-events:auto; }
.bs { position:fixed; bottom:0; left:0; right:0; max-height:82vh; background:#fff; border-radius:24px 24px 0 0; transform:translateY(100%); transition:transform 340ms cubic-bezier(.32,.72,0,1); display:flex; flex-direction:column; }
.bs-overlay.open .bs { transform:translateY(0); }
.bs-bar { width:36px; height:4px; border-radius:2px; background:var(--line); margin:12px auto 4px; flex-shrink:0; }
.bs-close { position:absolute; top:10px; right:16px; background:none; border:none; cursor:pointer; padding:10px; color:var(--ink-soft); line-height:0; }
.bs-inner { overflow-y:auto; padding:8px 24px 48px; flex:1; -webkit-overflow-scrolling:touch; }
.bs-name { font-family:var(--font-d); font-size:26px; font-weight:500; letter-spacing:-.02em; line-height:1.05; font-variation-settings:"opsz" 144,"SOFT" 50; }
.bs-role { font-size:13px; color:var(--ink-soft); margin-top:4px; }
.bs-section-label { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--lagon); margin-top:24px; margin-bottom:10px; }
.bs-parcours { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.bs-parcours li { font-size:14px; color:var(--ink); line-height:1.5; padding-left:16px; position:relative; }
.bs-parcours li::before { content:"—"; position:absolute; left:0; color:var(--lagon); }
.bs-rdv { display:flex; align-items:center; justify-content:center; height:52px; background:var(--lagon); color:#fff; border-radius:14px; font-size:15px; font-weight:500; text-decoration:none; margin-top:28px; }

/* ── TEAM DESKTOP (Variante A — Trombinoscope éditorial) ── */
.team-mobile { display:block; }
.team-desktop { display:none; }

/* ── TESTIMONIAL ── */
.testi { padding:40px 20px; background:var(--paper-2); }
.testi blockquote { margin:16px 0 0; padding:0; }
.testi-txt { font-family:var(--font-d); font-size:24px; line-height:1.22; letter-spacing:-.015em; font-weight:400; color:var(--ink); font-variation-settings:"opsz" 144,"SOFT" 50; }
.testi-q { color:var(--lagon); font-size:36px; line-height:0; vertical-align:-.15em; }
.testi-ft { margin-top:16px; display:flex; align-items:center; gap:12px; }
.testi-av { width:44px; height:44px; border-radius:50%; overflow:hidden; flex-shrink:0; }
.testi-av img { width:100%; height:100%; object-fit:cover; }
.testi-who { font-size:14px; font-weight:500; }
.testi-loc { font-size:12px; color:var(--ink-soft); }
.testi-dots { margin-top:20px; display:flex; gap:6px; }
.dot { height:4px; border-radius:2px; background:var(--line); flex:1; }
.dot-on { flex:2; background:var(--lagon); }

/* ── EMERGENCY ── */
.emerg { padding:40px 20px; }
.emerg-card { background:var(--paper-2); border-radius:24px; padding:28px 24px; display:flex; flex-direction:column; gap:16px; }
.emerg h2 { font-size:34px; line-height:1; letter-spacing:-.025em; }
.emerg h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.emerg-desc { font-size:14px; color:var(--ink-soft); line-height:1.5; max-width:320px; }
.emerg-ph { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; background:#fff; border-radius:16px; text-decoration:none; gap:16px; transition:transform 100ms; }
.emerg-ph:active { transform:scale(.98); }
.emerg-lbl { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.emerg-num { font-family:var(--font-d); font-size:22px; color:var(--ink); margin-top:2px; letter-spacing:-.01em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.emerg-ico { width:44px; height:44px; border-radius:12px; background:var(--lagon); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* ── CONTACT FORM ── */
.contact-section { padding:48px 20px; background:var(--paper-2); }
.contact-section h2 { font-size:30px; margin-top:8px; }
.contact-section h2 em { font-style:italic; color:var(--lagon); font-weight:300; }
.contact-desc { font-size:15px; color:var(--ink-soft); line-height:1.55; margin-top:10px; }
.contact-rdv { display:flex; align-items:center; gap:12px; margin-top:20px; padding:16px 20px; background:#fff; border-radius:16px; text-decoration:none; color:var(--ink); border:1px solid var(--line); transition:transform 100ms; }
.contact-rdv:active { transform:scale(.98); }
.contact-rdv-ico { width:40px; height:40px; border-radius:10px; background:var(--lagon-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-rdv strong { display:block; font-size:15px; font-weight:600; }
.contact-rdv span { font-size:12px; color:var(--ink-soft); }
@media(min-width:768px){
  .contact-section { padding:60px 64px; max-width:1280px; margin:0 auto; }
  .contact-section h2 { font-size:40px; }
}

/* ── FOOTER ── */
.footer { padding:40px 20px 160px; background:var(--paper); }
.footer img { width:40px; height:40px; }
.footer-n { font-family:var(--font-d); font-size:22px; font-weight:500; margin-top:12px; letter-spacing:-.015em; font-variation-settings:"opsz" 144,"SOFT" 50; }
.footer-l { font-size:13px; color:var(--ink-soft); margin-top:4px; }
.footer-info { margin-top:24px; display:flex; flex-direction:column; gap:1px; background:var(--line); border-radius:16px; overflow:hidden; }
.fi { padding:14px 16px; background:#fff; display:flex; justify-content:space-between; align-items:center; gap:12px; text-decoration:none; color:var(--ink); }
.fi-k { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); flex-shrink:0; }
.fi-v { font-size:14px; font-weight:500; text-align:right; }
.footer-leg { margin-top:20px; font-size:11px; color:var(--ink-soft); line-height:1.6; }

/* ── BOTTOM BAR ── */
.bb { position:fixed; left:12px; right:12px; bottom:12px; background:rgba(255,255,255,.96); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-radius:26px; padding:8px; box-shadow:0 -2px 24px rgba(42,61,74,.12),0 12px 32px rgba(42,61,74,.10); display:grid; grid-template-columns:repeat(4,1fr); gap:4px; z-index:50; transition:transform 300ms ease,opacity 300ms ease; }
.bb.hidden { transform:translateY(calc(100% + 24px)); opacity:0; pointer-events:none; }
@supports(padding-bottom:env(safe-area-inset-bottom)) { .bb { bottom:calc(12px + env(safe-area-inset-bottom)); } }
.bb-btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:10px 0; min-height:54px; border-radius:20px; border:none; background:transparent; color:var(--ink); font-family:var(--font-b); font-size:11px; font-weight:500; cursor:pointer; transition:transform 100ms,filter 100ms; text-decoration:none; }
.bb-btn:active { transform:scale(.94); filter:brightness(.9); }
.bb-p { background:var(--lagon); color:#fff; }

/* ── DESKTOP ── */
@media(min-width:768px) {
  .topbar { padding:0 64px; }
  .hero-wrap { margin:0 64px; border-radius:32px; aspect-ratio:16/7; }
  .hero h1 { font-size:72px; }
  .hero-cta { padding:24px 64px 0; max-width:440px; }
  .welcome { padding:40px 64px 60px; max-width:800px; }
  .welcome-txt { font-size:34px; }
  .stats-scr { margin:24px -64px 0; }
  .stats-in { padding:0 64px; }
  .diff-hd { padding:0 64px; }
  .diff h2 { font-size:40px; }
  .diff-in { padding:8px 64px; }
  .services { padding:60px 64px; max-width:1280px; margin:0 auto; }
  .svc-grid { grid-template-columns:repeat(4,1fr); }
  .team-hd { padding:0 64px; }
  .team-scr { padding:0 64px; }
  .team-in { grid-template-columns:repeat(3,1fr); }
  .testi { padding:60px 64px; }
  .emerg { padding:60px 64px; max-width:800px; margin:0 auto; }
  .footer { padding:60px 64px 160px; max-width:1280px; margin:0 auto; }
  .bb { left:50%; right:auto; transform:translateX(-50%); min-width:360px; width:fit-content; }
  .bb.hidden { transform:translateX(-50%) translateY(calc(100% + 24px)); opacity:0; }
  /* Team mobile/desktop toggle */
  .team-mobile { display:none; }
  .team-desktop { display:block; padding:0 64px; margin-top:32px; }
  /* Polaroid board (Variante B) */
  .pol-board { display:grid; grid-template-columns:repeat(3,1fr); gap:52px 40px; align-items:start; padding-bottom:60px; position:relative; }
  .polaroid { position:relative; transform:rotate(var(--rot,0deg)); transition:transform .5s cubic-bezier(.2,.7,.2,1), opacity .4s ease, filter .4s ease; transform-origin:center; }
  .polaroid.is-dim { opacity:.55; filter:saturate(.85); }
  .polaroid.is-open { transform:rotate(0deg) scale(1.04); z-index:10; }
  .pol-card { display:block; width:100%; background:#fbf7ef; padding:16px 16px 52px; box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 12px 28px -10px rgba(31,54,64,.18), 0 2px 4px rgba(31,54,64,.08); border:none; cursor:pointer; text-align:left; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
  .polaroid.has-parcours:hover .pol-card { transform:translateY(-4px); }
  .polaroid.is-open .pol-card { transform:none; box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 24px 50px -16px rgba(31,54,64,.3), 0 4px 8px rgba(31,54,64,.1); }
  .pol-photo { position:relative; width:100%; aspect-ratio:4/5; overflow:hidden; background:var(--lagon-soft); }
  .pol-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .pol-photo-init { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
  .pol-letter { font-family:var(--font-d); font-size:64px; color:var(--lagon-deep); opacity:.4; font-variation-settings:"opsz" 144,"SOFT" 50; }
  .pol-tag { position:absolute; top:10px; right:10px; padding:5px 9px; background:rgba(244,242,236,.92); color:var(--lagon-deep); font-family:ui-monospace,monospace; font-size:10px; letter-spacing:.1em; border-radius:2px; }
  .pol-caption { padding-top:18px; text-align:center; }
  .pol-name { font-family:var(--font-d); font-style:italic; font-size:22px; color:var(--ink); line-height:1.1; font-variation-settings:"opsz" 144,"SOFT" 50; }
  .pol-since { font-family:ui-monospace,monospace; font-size:10px; letter-spacing:.1em; color:var(--ink-soft); margin-top:6px; }
  /* Note (parcours) */
  .pol-note { position:absolute; top:0; width:300px; background:var(--paper-2); padding:24px 24px 20px; box-shadow:0 14px 30px -12px rgba(31,54,64,.22); border-radius:4px; opacity:0; pointer-events:none; transition:opacity .35s ease, transform .4s ease; z-index:5; }
  .polaroid.note-right .pol-note { left:calc(100% + 18px); transform:rotate(calc(var(--rot,0deg) * -1.4)) translateY(8px); transform-origin:top left; }
  .polaroid.note-left  .pol-note { right:calc(100% + 18px); transform:rotate(calc(var(--rot,0deg) * 1.4)) translateY(8px); transform-origin:top right; }
  .polaroid.note-right.is-open .pol-note { opacity:1; pointer-events:auto; transform:rotate(calc(var(--rot,0deg) * -1.4)) translateY(0); }
  .polaroid.note-left.is-open  .pol-note { opacity:1; pointer-events:auto; transform:rotate(calc(var(--rot,0deg) * 1.4)) translateY(0); }
  .pol-note-role { font-family:var(--font-d); font-size:20px; color:var(--lagon-deep); font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 50; }
  .pol-note-lbl { font-family:ui-monospace,monospace; font-size:10px; letter-spacing:.16em; color:var(--ink-soft); margin-top:4px; margin-bottom:14px; }
  .pol-parcours { list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:10px; }
  .pol-parcours li { font-family:var(--font-d); font-size:16px; line-height:1.4; color:var(--ink); padding-left:14px; position:relative; font-variation-settings:"opsz" 144,"SOFT" 50; }
  .pol-parcours li::before { content:''; position:absolute; left:0; top:11px; width:8px; height:1px; background:var(--lagon); }
  .pol-rdv { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--lagon-deep); font-weight:500; padding-top:14px; border-top:1px dashed var(--line); width:100%; text-decoration:none; }
  .pol-rdv-arr { display:inline-block; transition:transform .2s; }
  .pol-rdv:hover .pol-rdv-arr { transform:translateX(3px); }
  /* Bottom sheet → side panel on desktop */
  .bs { top:0; bottom:0; left:auto; right:0; width:480px; max-height:100vh; border-radius:24px 0 0 24px; transform:translateX(100%); }
  .bs-overlay.open .bs { transform:translateX(0); }
  .bs-bar { display:none; }
  .bs-svc-img { max-height:400px; }
}

/* ── REVEAL ── */
.rv { opacity:0; transform:translateY(16px); transition:opacity 400ms ease-out,transform 400ms ease-out; }
.rv.in { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) {
  .rv { opacity:1; transform:none; transition:none; }
  .bb, .menu { transition:none; }
  .pulse { animation:none; }
}
