/* =========================================================
   SHELTER : feuille de style commune aux 3 sites
   Charte : noir & blanc + une signature par site
     - Shelter Office   : noir / blanc (sobre, portail)
     - Shelter Finance  : argenté acier
     - Shelter Business : bleu luxe & doré
   Pour changer les couleurs, modifier uniquement les variables ci-dessous.
   ========================================================= */

@font-face { font-family: "Lora"; src: url("../fonts/lora.woff") format("woff"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("../fonts/lora-italic.woff") format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-400.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-500.woff") format("woff"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-600.woff") format("woff"); font-weight: 600 700; font-display: swap; }

:root {
  --black: #0A0A0A;
  --ink: #14171B;
  --ink-soft: #565D68;
  --white: #FFFFFF;
  --paper: #FFFFFF;
  --line: #E4E5E8;

  /* Acier (Finance) */
  --steel-1: #F1F3F6; --steel-2: #C9D1DB; --steel-3: #9AA6B4; --steel-4: #5D6978; --steel-5: #2B333D;
  /* Bleu luxe + or (Business) */
  --navy-0: #050C1E; --navy-1: #0A1731; --navy-2: #102552; --navy-3: #1D3E85;
  --gold-1: #F2E2AE; --gold-2: #D2AC52; --gold-3: #8F6F25; --cream: #F8F3E6;

  --serif: "Lora", "Iowan Old Style", Georgia, serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --wrap: 1180px;

  /* Couleurs actives (Office par défaut : noir / blanc) */
  --accent: #FFFFFF;                 /* accent sur fond sombre */
  --accent-ink: #0A0A0A;             /* accent sur fond clair */
  --tint: #F4F4F2;                   /* fond de section claire */
  --hero-bg: radial-gradient(1200px 600px at 78% 10%, #24262B 0%, transparent 60%), linear-gradient(135deg, #060606 0%, #121315 60%, #1B1D21 100%);
  --btn-bg: linear-gradient(180deg, #FFFFFF, #E7E7E7);
  --btn-fg: #0A0A0A;
  --dark-band: #0A0A0A;
  --rule: linear-gradient(90deg, #fff, rgba(255,255,255,0));
}

body.theme-finance {
  --accent: #C9D1DB; --accent-ink: #4A5666; --tint: #EEF1F5;
  --hero-bg: radial-gradient(1100px 600px at 80% 0%, #3A4552 0%, transparent 62%), linear-gradient(135deg, #0A0D11 0%, #171D25 55%, #2A323D 100%);
  --btn-bg: linear-gradient(180deg, #F4F6F9 0%, #BAC4D0 55%, #98A4B3 100%);
  --btn-fg: #0A0D11;
  --dark-band: linear-gradient(135deg, #0A0D11, #232A33);
  --rule: linear-gradient(90deg, #DDE3EA, #7E8A99 50%, rgba(126,138,153,0));
}
body.theme-business {
  --accent: #E0BC66; --accent-ink: #8F6F25; --tint: #F8F3E6;
  --hero-bg: radial-gradient(1100px 600px at 80% 0%, #1D3E85 0%, transparent 60%), linear-gradient(135deg, #040A1A 0%, #0A1731 55%, #102552 100%);
  --btn-bg: linear-gradient(180deg, #F6E8B8 0%, #D9B358 55%, #B38B34 100%);
  --btn-fg: #1B1405;
  --dark-band: linear-gradient(135deg, #050C1E, #102552);
  --rule: linear-gradient(90deg, #F2E2AE, #C79F44 50%, rgba(199,159,68,0));
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 1.0625rem; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0 0 1em; max-width: 68ch; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.12; margin: 0 0 .55em; letter-spacing: -.012em; }
h1 { font-size: clamp(2.2rem, 4.8vw, 4rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
h3 { font-size: 1.3rem; }
.wrap { width: min(100% - 48px, var(--wrap)); margin-inline: auto; }
.plain { list-style: none; margin: 0; padding: 0; }
.soft { color: var(--ink-soft); }
.small { font-size: .88rem; color: var(--ink-soft); }
:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; }
.skip { position: absolute; left: -999px; top: 0; background: #fff; color: #000; padding: 10px 16px; z-index: 100; }
.skip:focus { left: 8px; top: 8px; }

/* ---------- Barre noire (réseau) + en-tête blanc ---------- */
.topbar { background: var(--black); color: #fff; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; }
.topbar-in { display: flex; justify-content: space-between; align-items: center; min-height: 40px; gap: 16px; }
.topbar nav { display: flex; flex-wrap: wrap; gap: 4px 22px; align-items: center; }
.topbar a { text-decoration: none; opacity: .72; padding: 10px 0; transition: opacity .2s; }
.topbar a:hover, .topbar a[aria-current] { opacity: 1; }
.topbar a[aria-current] { box-shadow: inset 0 -2px 0 currentColor; }
.topbar-label { opacity: .45; margin-right: 6px; }
.net-business { color: #E8CB82; }
.net-finance { color: #CFD6DF; }
.topbar-franchise { border: 1px solid rgba(255,255,255,.35); padding: 4px 12px !important; border-radius: 999px; opacity: 1 !important; font-size: .7rem; }

.header { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.header-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.brand img { height: 46px; width: auto; }
.pole-tag { font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; padding: 5px 11px; border-radius: 3px; background: var(--black); color: #fff; }
.theme-finance .pole-tag { background: linear-gradient(180deg, #E9EDF2, #A3AEBC); color: #0A0D11; }
.theme-business .pole-tag { background: linear-gradient(180deg, #F2E2AE, #C79F44); color: #1B1405; }
.mainnav { display: flex; align-items: center; gap: 30px; }
.mainnav a:not(.btn) { text-decoration: none; text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 500; padding: 8px 0; border-bottom: 2px solid transparent; }
.mainnav a:not(.btn):hover, .mainnav a[aria-current] { border-bottom-color: var(--accent-ink); }
.menu-toggle, .menu-btn { display: none; }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 600; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; padding: 15px 28px; border-radius: 999px; border: 1px solid transparent; transition: transform .2s, box-shadow .2s, background .2s; cursor: pointer; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--btn-bg); color: var(--btn-fg); box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.btn-small { padding: 11px 20px; font-size: .72rem; }
.mainnav .btn-primary { color: var(--btn-fg); background: var(--black); color: #fff; box-shadow: none; }
.theme-finance .mainnav .btn-primary { background: linear-gradient(180deg, #EEF1F5, #A9B4C2); color: #0A0D11; }
.theme-business .mainnav .btn-primary { background: linear-gradient(180deg, #F6E8B8, #D2AC52); color: #1B1405; }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.btn-ghost:hover { background: rgba(255,255,255,.1); }
.btn-outline-light { color: #fff; border-color: rgba(255,255,255,.5); }
.btn-outline-light:hover { background: #fff; color: #0A0A0A; }
.btn-dark { background: var(--black); color: #fff; }
.theme-business .btn-dark { background: var(--navy-1); }
.theme-finance .btn-dark { background: var(--steel-5); }
.textlink { font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--accent-ink); padding-bottom: 2px; }
.textlink-light { border-bottom-color: var(--accent); margin-left: 18px; color: #fff; }

/* ---------- Bandeau d'en-tête (H1 + H2) ---------- */
.hero { position: relative; overflow: hidden; background: var(--hero-bg); color: #fff; padding: clamp(56px, 9vw, 110px) 0 clamp(56px, 8vw, 100px); isolation: isolate; }
.hero-big { padding-block: clamp(80px, 12vw, 150px) clamp(80px, 11vw, 140px); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background:
  repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 1px, transparent 1px 90px); }
.hero-mark { position: absolute; z-index: -1; right: -3%; top: 50%; width: min(46vw, 560px); aspect-ratio: 475 / 492; transform: translateY(-50%);
  background: url("../brand/mark-light.png") center / contain no-repeat; opacity: .07; }
.theme-business .hero-mark { filter: sepia(1) saturate(3) hue-rotate(5deg); opacity: .09; }
.hero-in { max-width: var(--wrap); }
.hero h1 { color: #fff; max-width: 17ch; margin-bottom: .45em; font-weight: 500; }
.hero-big h1 { max-width: 19ch; }
.hero-sub { font-family: var(--sans); font-weight: 400; font-size: clamp(1.05rem, 1.7vw, 1.4rem); letter-spacing: 0; line-height: 1.5; color: var(--accent); max-width: 52ch; margin: 0 0 1.4em; }
.hero-sub::before { content: ""; display: block; width: 72px; height: 2px; margin-bottom: 22px; background: var(--rule); }
.hero-lead { color: rgba(255,255,255,.78); max-width: 58ch; font-size: 1.1rem; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.eyebrow { font-size: .74rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 600; color: var(--accent); margin: 0 0 22px; }
.eyebrow-dark { color: var(--accent-ink); }

/* ---------- Bandeau franchise CrediPro ---------- */
.franchise { background: #fff; color: var(--ink); border-block: 1px solid var(--line); }
.franchise-in { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; padding-block: 22px; flex-wrap: wrap; }
.franchise-text { margin: 0; max-width: none; font-size: 1.02rem; }
.franchise-text strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; margin-right: 10px; }
.franchise .btn-outline-light { color: var(--ink); border-color: var(--ink); }
.franchise .btn-outline-light:hover { background: var(--ink); color: #fff; }
.franchise { background: var(--tint); }

/* ---------- Sections ---------- */
.section { padding: clamp(56px, 8vw, 104px) 0; }
.section-tint { background: var(--tint); }
.section h2 { max-width: 30ch; }
.band-dark { background: var(--dark-band); color: #fff; }
.band-dark .eyebrow { color: var(--accent); }
.band-dark h2 { color: #fff; }
.band-dark p { color: rgba(255,255,255,.82); }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 40px 80px; align-items: start; }
.cta-block { text-align: center; background: var(--tint); }
.cta-block h2, .cta-block p { margin-inline: auto; }

.assets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.asset { border-top: 1px solid var(--ink); padding-top: 20px; }
.asset-n, .card-n { font-family: var(--serif); font-style: italic; color: var(--accent-ink); font-size: 1.05rem; display: block; margin-bottom: 8px; }
.asset p { color: var(--ink-soft); margin: 0; }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }
.card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--accent-ink); padding: 34px 30px 30px; text-decoration: none; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px -24px rgba(0,0,0,.35); }
.card p { color: var(--ink-soft); flex: 1; }
.card-more { font-weight: 600; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-ink); }

.steps { list-style: none; padding: 0; margin: 44px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; counter-reset: s; }
.steps li { position: relative; padding-top: 22px; border-top: 1px solid var(--line); }
.steps li::before { content: ""; position: absolute; top: -2px; left: 0; width: 44px; height: 3px; background: var(--btn-bg); }
.step-n { font-family: var(--serif); font-size: 2.4rem; color: var(--accent-ink); line-height: 1; display: block; margin-bottom: 12px; }
.steps p { color: var(--ink-soft); font-size: .98rem; }

.rows { display: grid; }
.row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 32px 80px; padding: 48px 0; border-top: 1px solid var(--line); }
.row:last-child { border-bottom: 1px solid var(--line); }
.ticks { list-style: none; margin: 0; padding: 0; align-self: center; }
.ticks li { padding: 14px 0 14px 34px; border-bottom: 1px solid var(--line); position: relative; }
.ticks li::before { content: ""; position: absolute; left: 0; top: 24px; width: 16px; height: 2px; background: var(--accent-ink); }
.rows-simple { list-style: none; padding: 0; margin: 28px 0 0; max-width: 760px; }
.rows-simple li { padding: 18px 0; border-top: 1px solid var(--line); }

/* ---------- Portes (Office) ---------- */
.doors { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 44px; }
.door { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 380px; padding: 40px 38px; text-decoration: none; color: #fff; isolation: isolate; transition: transform .3s, box-shadow .3s; }
.door:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -28px rgba(0,0,0,.6); }
.door::after { content: ""; position: absolute; inset: 0; z-index: -1; background: url("../brand/mark-light.png") right -40px bottom -50px / 300px no-repeat; opacity: .06; }
.door-business { background: radial-gradient(600px 300px at 90% 0%, #1D3E85, transparent 70%), linear-gradient(145deg, #040A1A, #0F2350); border-top: 4px solid #D2AC52; }
.door-finance { background: radial-gradient(600px 300px at 90% 0%, rgba(201,209,219,.35), transparent 70%), linear-gradient(145deg, #040A1A, #0F2350); border-top: 4px solid #C9D1DB; }
.door-num { font-family: var(--serif); font-style: italic; opacity: .6; }
.door h3 { font-size: clamp(1.8rem, 3vw, 2.5rem); margin: 24px 0 6px; color: #fff; }
.door-kicker { text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; font-weight: 600; margin-bottom: 18px; }
.door-business .door-kicker { color: #E0BC66; } .door-finance .door-kicker { color: #CFD6DF; }
.door p { color: rgba(255,255,255,.82); }
.door-cta { margin-top: auto; font-weight: 600; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; }
.door-cta i { font-style: normal; display: inline-block; transition: transform .25s; }
.door:hover .door-cta i { transform: translateX(8px); }

/* ---------- Page « deux pôles » ---------- */
.duo { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: stretch; }
.duo-col { padding: 40px 36px; color: #fff; }
.duo-business { background: linear-gradient(145deg, #040A1A, #0F2350); border-top: 4px solid #D2AC52; }
.duo-finance { background: linear-gradient(145deg, #0A0D11, #26303B); border-top: 4px solid #B8C2CE; }
.duo-business .eyebrow { color: #E0BC66; } .duo-finance .eyebrow { color: #CFD6DF; }
.duo-col h2 { color: #fff; }
.duo-col li { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.18); }
.duo-col .textlink { color: #fff; border-bottom-color: currentColor; }
.duo-link { display: grid; place-items: center; }
.duo-link span { width: 2px; height: 100%; background: linear-gradient(#D2AC52, #B8C2CE); }
.routes { list-style: none; margin: 36px 0 0; padding: 0; }
.routes li { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: center; padding: 20px 0; border-top: 1px solid var(--line); }
.routes .q { margin: 0; font-family: var(--serif); font-size: 1.2rem; }
.routes .to { margin: 0; display: flex; gap: 10px; flex-wrap: wrap; }
.chip { text-decoration: none; font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 9px 16px; border-radius: 999px; }
.chip-business { background: linear-gradient(180deg, #0F2350, #040A1A); color: #F2E2AE; }
.chip-finance { background: linear-gradient(180deg, #2B333D, #0A0D11); color: #DDE3EA; }

/* ---------- FAQ ---------- */
.faq { background: #fff; }
.faq-list { margin-top: 36px; max-width: 860px; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 22px 0; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h3 { margin: 0; font-size: 1.15rem; font-weight: 500; }
.faq summary::after { content: "+"; font-size: 1.8rem; line-height: 1; color: var(--accent-ink); transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--ink-soft); padding-bottom: 22px; margin: 0; }

/* ---------- Contact / mentions ---------- */
.contact-list { margin: 0; display: grid; gap: 0; max-width: 760px; }
.contact-list div { display: grid; grid-template-columns: 160px 1fr; padding: 20px 0; border-top: 1px solid var(--line); }
.contact-list dt { text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 600; color: var(--accent-ink); padding-top: 4px; }
.contact-list dd { margin: 0; }
.prose { max-width: 780px; }
.prose h2 { font-size: 1.5rem; margin-top: 1.8em; }

/* ---------- Bouton flottant ---------- */
.fab { position: fixed; left: 24px; bottom: 24px; z-index: 60; display: flex; align-items: center; gap: 14px; background: #fff; color: var(--ink); text-decoration: none; padding: 8px 8px 8px 22px; border-radius: 999px; box-shadow: 0 14px 40px -10px rgba(0,0,0,.45); font-weight: 600; font-size: .82rem; line-height: 1.25; letter-spacing: .02em; transition: transform .2s; }
.fab:hover { transform: translateY(-3px); }
.fab svg { box-sizing: content-box; padding: 17px; border-radius: 50%; background: var(--btn-bg); color: var(--btn-fg); }
.theme-office .fab svg { background: var(--black); color: #fff; }

/* ---------- Pied de page ---------- */
.footer { background: var(--black); color: rgba(255,255,255,.78); padding-top: 72px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 48px; }
.footer-logo { width: 190px; margin-bottom: 18px; }
.footer .small { color: rgba(255,255,255,.6); }
.footer-title { font-family: var(--sans); font-size: .74rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--accent); margin: 0 0 18px; }
.footer a { text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.footer li { padding: 5px 0; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding-block: 26px 90px; }
.footer-bottom p { margin-bottom: .4em; max-width: none; }

/* ---------- Mobile ---------- */
@media (max-width: 920px) {
  .split, .row, .duo, .routes li { grid-template-columns: 1fr; }
  .duo-link { height: 30px; } .duo-link span { width: 100%; height: 2px; }
  .assets, .cards, .doors { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .menu-btn { display: grid; place-items: center; width: 46px; height: 46px; cursor: pointer; margin-left: auto; }
  .menu-btn span, .menu-btn span::before, .menu-btn span::after { display: block; width: 24px; height: 2px; background: var(--ink); position: relative; content: ""; }
  .menu-btn span::before { position: absolute; top: -7px; } .menu-btn span::after { position: absolute; top: 7px; }
  .mainnav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px 24px 26px; border-bottom: 1px solid var(--line); }
  .menu-toggle:checked ~ .mainnav { display: flex; }
  .header-in { position: relative; }
  .topbar-label, .topbar-franchise { display: none; }
}
@media (max-width: 560px) {
  .steps, .footer-grid { grid-template-columns: 1fr; }
  .brand img { height: 36px; } .pole-tag { display: none; }
  .contact-list div { grid-template-columns: 1fr; }
  .fab span { display: none; } .fab { padding: 6px; left: auto; right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- Réglementation, cabinet, fondateur, équipe ---------- */
.draft-note { background: #FFF6D6; border: 1px solid #E5CE7A; color: #5C4A0A; padding: 12px 16px; font-size: .88rem; margin: 0 0 32px; max-width: none; border-radius: 4px; }
.todo { background: #FFF6D6; color: #6B5710; padding: 0 4px; border-radius: 3px; }
.prose-wide { max-width: 880px; }
.prose-wide h2 { font-size: 1.7rem; margin: 2.2em 0 .6em; padding-top: 1.2em; border-top: 1px solid var(--line); }
.prose-wide h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 1.4em; }
.toc { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.toc a { text-decoration: none; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; }
.toc a:hover { border-color: var(--accent-ink); color: var(--accent-ink); }
.facts { margin: 0 0 1.4em; }
.facts div { display: grid; grid-template-columns: 220px 1fr; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); }
.facts div:last-child { border-bottom: 1px solid var(--line); }
.facts dt { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--accent-ink); padding-top: 3px; }
.facts dd { margin: 0; }
.orias-card { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; background: var(--black); color: #fff; padding: 22px 28px; border-top: 3px solid var(--accent-ink); margin-bottom: 1.2em; }
.theme-business .orias-card { background: var(--navy-1); } .theme-finance .orias-card { background: var(--steel-5); }
.orias-label { display: block; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; opacity: .7; }
.orias-num { font-family: var(--serif); font-size: 1.5rem; font-weight: 500; }
.orias-card .todo { color: #6B5710; }
.orias-card .btn-dark { background: #fff; color: #0A0A0A; }
.status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 1.4em 0; }
.status { border: 1px solid var(--line); border-top: 3px solid var(--accent-ink); padding: 22px 24px; background: #fff; }
.status h3 { font-size: 1.12rem; margin-bottom: .4em; }
.status p { font-size: .96rem; margin-bottom: .6em; }
.status-code { display: inline-block; font-size: .7rem; letter-spacing: .2em; font-weight: 700; background: var(--tint); color: var(--accent-ink); padding: 4px 10px; border-radius: 3px; margin-bottom: 10px; }
.status-auth { font-size: .8rem !important; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--accent-ink); }
.authorities { list-style: none; padding: 0; margin: 0 0 1.4em; }
.authorities li { padding: 16px 0; border-top: 1px solid var(--line); }
.authorities li:last-child { border-bottom: 1px solid var(--line); }

.timeline { list-style: none; margin: 40px 0 0; padding: 0 0 0 28px; border-left: 2px solid var(--line); display: grid; gap: 34px; }
.timeline li { position: relative; display: grid; grid-template-columns: 170px 1fr; gap: 24px; }
.timeline li::before { content: ""; position: absolute; left: -37px; top: 8px; width: 14px; height: 14px; border-radius: 50%; background: var(--btn-bg); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--accent-ink); }
.tl-date { font-family: var(--serif); font-style: italic; color: var(--accent-ink); font-size: 1.15rem; }
.timeline h3 { margin-bottom: .3em; }

.founder { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 56px; align-items: start; }
.portrait { margin: 0; position: sticky; top: 110px; }
.portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-top: 4px solid var(--accent-ink); background: #111; }
.portrait figcaption { padding: 16px 0; display: grid; gap: 2px; }
.portrait figcaption span { color: var(--ink-soft); font-size: .92rem; }
.lead-dark { font-size: 1.15rem; color: var(--ink); }
.pull { margin: 28px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--accent-ink); font-family: var(--serif); font-style: italic; font-size: 1.3rem; line-height: 1.45; }
.founder h3 { margin-top: 1.8em; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .12em; font-family: var(--sans); font-weight: 600; color: var(--accent-ink); }
.cv { list-style: none; padding: 0; margin: 12px 0 0; }
.cv li { display: grid; grid-template-columns: 150px 1fr; gap: 18px; padding: 14px 0; border-top: 1px solid var(--line); }
.cv-date { font-family: var(--serif); font-style: italic; color: var(--ink-soft); }
.thesis { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--accent-ink); padding: 22px 26px; margin-top: 12px; }
.thesis-title { font-family: var(--serif); font-size: 1.3rem; line-height: 1.3; margin-bottom: .4em; }

.team { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 28px; margin-top: 40px; }
.member img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-top: 3px solid var(--accent-ink); }
.member h3 { margin: 16px 0 2px; font-size: 1.2rem; }
.member-role { color: var(--accent-ink); font-weight: 600; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .5em; }
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-top: 36px; }
.value { border-top: 2px solid var(--accent); padding-top: 18px; }
.value h3 { color: #fff; }

.about-grid { display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 56px; align-items: center; }
.portrait-sm { position: static; }
.chips-row { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0 0 24px; }
.chips-row li { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; border: 1px solid var(--ink); padding: 7px 14px; border-radius: 999px; }
.footer-link { margin-top: 14px; font-size: .9rem; }
.mainnav { gap: 22px; }

@media (max-width: 920px) {
  .founder, .about-grid, .timeline li, .cv li, .facts div { grid-template-columns: 1fr; }
  .portrait { position: static; max-width: 340px; }
  .status-grid, .values { grid-template-columns: 1fr; }
}
@media print {
  .topbar, .header, .fab, .footer, .franchise, .toc, .hero, .draft-note .x { display: none !important; }
  body { font-size: 10.5pt; }
  .section { padding: 0; } .wrap { width: 100%; }
  .prose-wide h2 { break-after: avoid; } .status, .orias-card, .authorities li { break-inside: avoid; }
  a { text-decoration: none; }
  .print-head { display: block !important; }
}
.print-head { display: none; }

.portrait img, .member img { object-position: 50% 20%; }

/* ---------- Réseau, Shelter Campus, candidature ---------- */
.network { background: var(--dark-band); color: #fff; }
.network h2 { color: #fff; }
.network-lead { color: rgba(255,255,255,.82); max-width: 62ch; font-size: 1.1rem; }
.network-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin: 40px 0 34px; }
.net-card { display: flex; flex-direction: column; text-decoration: none; padding: 30px 28px; border: 1px solid rgba(255,255,255,.22); border-top: 3px solid var(--accent); background: rgba(255,255,255,.04); transition: transform .25s, background .25s; }
.net-card:hover { transform: translateY(-5px); background: rgba(255,255,255,.09); }
.net-card h3 { color: #fff; }
.net-card p { color: rgba(255,255,255,.78); flex: 1; }
.net-card .card-more { color: var(--accent); }
.net-n { font-family: var(--serif); font-style: italic; opacity: .6; margin-bottom: 8px; }
.net-campus { border-top-color: #D2AC52; background: linear-gradient(160deg, rgba(210,172,82,.16), rgba(255,255,255,.03)); }
.network-cta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; }
.join-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 36px 0 20px; }
.join-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--accent-ink); padding: 34px 32px; }
.join-kicker { font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--accent-ink); margin-bottom: 10px; }
.assets-4 { grid-template-columns: repeat(4, 1fr); margin-top: 36px; }
.ticks-light li { border-bottom-color: rgba(255,255,255,.2); color: rgba(255,255,255,.9); }
.ticks-light li::before { background: var(--accent); }
.small-light { font-size: .88rem; color: rgba(255,255,255,.65) !important; }
.apply { display: grid; gap: 18px; max-width: 760px; }
.apply .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.apply label { display: grid; gap: 7px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.apply input[type=text], .apply input[type=email], .apply input[type=tel], .apply select, .apply textarea { font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; font-weight: 400; padding: 13px 14px; border: 1px solid #C9CCD2; border-radius: 4px; background: #fff; color: var(--ink); width: 100%; }
.apply input:focus, .apply select:focus, .apply textarea:focus { outline: 2px solid var(--accent-ink); border-color: transparent; }
.cv-drop { border: 2px dashed #B7BBC3; padding: 22px; border-radius: 6px; background: var(--tint); }
.cv-drop input { font-size: .95rem; text-transform: none; letter-spacing: 0; font-weight: 400; }
.apply .check { grid-template-columns: 22px 1fr; align-items: start; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .92rem; gap: 12px; }
.apply .check input { margin-top: 4px; width: 18px; height: 18px; }
.hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
@media (max-width: 920px) { .network-grid, .join-grid, .assets-4, .apply .row2 { grid-template-columns: 1fr; } }

/* ---------- Profil : prises de parole ---------- */
.founder-headline { font-family: var(--serif); font-style: italic; font-size: 1.25rem; margin: 0 0 14px; }
.news { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin: 34px 0 20px; }
.news-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--accent-ink); padding: 30px 30px 24px; }
.news-tag { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--accent-ink); }
.news-card h3 { margin: 8px 0 10px; }
@media (max-width: 920px) { .news { grid-template-columns: 1fr; } }

/* =====================================================================
   v11 : logo pastel, menu réseau plus lisible, wengé (Finance), touches pastel
   ===================================================================== */
:root {
  --p1: #9CC9E6; --p2: #9FD6C6; --p3: #C3B3E6; --p4: #F0B9A3; --p5: #EBD28A; --p6: #E3A9BA; --p7: #B3BAC6;
  --pastel-line: linear-gradient(90deg, #9CC9E6, #9FD6C6, #C3B3E6, #F0B9A3, #EBD28A, #E3A9BA, #B3BAC6);
  --wenge: #102552; --wenge-2: #1D3E85; --wenge-3: #7E8A99; --wenge-ink: #0A1731;
}
.brand img { height: 58px; }
@media (max-width: 920px) { .brand img { height: 44px; } }

/* Trait pastel sous l'en-tête et en haut du pied de page */
.header { border-bottom: 0; box-shadow: 0 1px 0 var(--line); }
.header::after { content: ""; display: block; height: 3px; background: var(--pastel-line); }
.footer { border-top: 4px solid transparent; border-image: var(--pastel-line) 1; }

/* Menu Réseau Shelter (en haut) : trait épais, animé, bien visible au survol, au clic et sur la page active */
.topbar a { position: relative; opacity: .8; }
.topbar a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; border-radius: 2px 2px 0 0;
  background: #fff; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.topbar a.net-business::after { background: #E0BC66; }
.topbar a.net-finance::after { background: #C9D1DB; }
.topbar a:hover::after, .topbar a:focus-visible::after, .topbar a:active::after, .topbar a[aria-current]::after { transform: scaleX(1); }
.topbar a:active { opacity: 1; transform: translateY(1px); }
.topbar a[aria-current] { box-shadow: none; opacity: 1; font-weight: 600; }
.topbar .topbar-franchise::after { display: none; }
.mainnav a:not(.btn) { border-bottom-width: 3px; transition: border-color .2s; }
.mainnav a:not(.btn):hover, .mainnav a:not(.btn):active, .mainnav a[aria-current] { border-bottom-color: var(--accent-ink); }
.theme-finance .mainnav a:not(.btn):hover, .theme-finance .mainnav a[aria-current] { border-bottom-color: var(--wenge-3); }

/* Pôle Finance : wengé (brun très sombre) pour faire ressortir l'argenté */
body.theme-finance {
  --tint: #EEF1F5; --accent-ink: #4A5666;
  --hero-bg: radial-gradient(1100px 600px at 80% 0%, #1D3E85 0%, transparent 60%), linear-gradient(135deg, #040A1A 0%, #0A1731 55%, #102552 100%);
  --dark-band: linear-gradient(135deg, #050C1E, #102552);
  --rule: linear-gradient(90deg, #E5E9EE, #A9B4C2 50%, rgba(169,180,194,0));
}
.theme-finance .btn-dark, .theme-finance .orias-card { background: var(--wenge); }
.theme-finance .btn-dark:hover { background: var(--wenge-2); }
.theme-finance .door-finance { background: radial-gradient(600px 300px at 90% 0%, rgba(201,209,219,.35), transparent 70%), linear-gradient(145deg, #040A1A, #0F2350); border-top-color: #C9D1DB; }
.theme-finance .card, .theme-finance .asset { border-top-color: var(--wenge-3); }
.theme-finance .step-n, .theme-finance .card-n, .theme-finance .asset-n, .theme-finance .eyebrow-dark { color: var(--wenge-3); }
.theme-finance .steps li::before { background: linear-gradient(90deg, #E5E9EE, #A9B4C2); }
.theme-finance .faq-list details { border-color: #D5DBE3; }
.theme-finance .section-tint { background: #EEF1F5; }
.theme-finance .band-dark .eyebrow, .theme-finance .hero .eyebrow { color: #C9D1DB; }

/* Touches pastel : engagements, frise, équipe, cartes */
.value { border-top: 0; padding: 22px 22px 20px; border-radius: 6px; background: rgba(255,255,255,.05); position: relative; }
.value::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: 6px 6px 0 0; background: var(--p1); }
.value h3::before { content: ""; display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: var(--p1); margin-right: 10px; vertical-align: 1px; }
.value:nth-child(7n+2)::before, .value:nth-child(7n+2) h3::before { background: var(--p2); }
.value:nth-child(7n+3)::before, .value:nth-child(7n+3) h3::before { background: var(--p3); }
.value:nth-child(7n+4)::before, .value:nth-child(7n+4) h3::before { background: var(--p4); }
.value:nth-child(7n+5)::before, .value:nth-child(7n+5) h3::before { background: var(--p5); }
.value:nth-child(7n+6)::before, .value:nth-child(7n+6) h3::before { background: var(--p6); }
.timeline li:nth-child(7n+1)::before { background: var(--p1); } .timeline li:nth-child(7n+2)::before { background: var(--p2); }
.timeline li:nth-child(7n+3)::before { background: var(--p3); } .timeline li:nth-child(7n+4)::before { background: var(--p4); }
.timeline li:nth-child(7n+5)::before { background: var(--p5); } .timeline li:nth-child(7n+6)::before { background: var(--p6); }
.member:nth-child(7n+1) img { border-top-color: var(--p1); } .member:nth-child(7n+2) img { border-top-color: var(--p2); }
.member:nth-child(7n+3) img { border-top-color: var(--p3); } .member:nth-child(7n+4) img { border-top-color: var(--p4); }
.member:nth-child(7n+5) img { border-top-color: var(--p5); } .member:nth-child(7n+6) img { border-top-color: var(--p6); }
.member img { border-top-width: 5px; }
.news-card:nth-child(4n+1), .card:nth-child(7n+1), .join-card:nth-child(4n+1), .asset:nth-child(7n+1) { border-top-color: var(--p1); }
.news-card:nth-child(4n+2), .card:nth-child(7n+2), .join-card:nth-child(4n+2), .asset:nth-child(7n+2) { border-top-color: var(--p2); }
.news-card:nth-child(4n+3), .card:nth-child(7n+3), .join-card:nth-child(4n+3), .asset:nth-child(7n+3) { border-top-color: var(--p3); }
.news-card:nth-child(4n+4), .card:nth-child(7n+4), .join-card:nth-child(4n+4), .asset:nth-child(7n+4) { border-top-color: var(--p4); }
.net-card:nth-child(1) { border-top-color: var(--p1); } .net-card:nth-child(2) { border-top-color: var(--p4); }
.steps li:nth-child(4n+1)::before { background: var(--p1); } .steps li:nth-child(4n+2)::before { background: var(--p2); }
.steps li:nth-child(4n+3)::before { background: var(--p3); } .steps li:nth-child(4n+4)::before { background: var(--p4); }
.theme-finance .steps li::before { background: var(--p7); }
.hero .rule, .rule { background: var(--pastel-line); }
.chips-row li:nth-child(7n+1) { background: #E8F2F9; border-color: var(--p1); } .chips-row li:nth-child(7n+2) { background: #E9F6F2; border-color: var(--p2); }
.chips-row li:nth-child(7n+3) { background: #F0ECFA; border-color: var(--p3); } .chips-row li:nth-child(7n+4) { background: #FCF0EB; border-color: var(--p4); }
.chips-row li:nth-child(7n+5) { background: #FBF5E1; border-color: var(--p5); }

/* Page réglementation (texte juridique) */
.legal-text h2 { margin-top: 2.2em; padding-bottom: .35em; border-bottom: 3px solid var(--p1); }
.legal-text h2:nth-of-type(2) { border-color: var(--p2); } .legal-text h2:nth-of-type(3) { border-color: var(--p3); }
.legal-text h2:nth-of-type(4) { border-color: var(--p4); } .legal-text h2:nth-of-type(5) { border-color: var(--p5); }
.legal-text h3 { margin-top: 1.6em; font-size: 1.15rem; }
.legal-text ul { padding-left: 1.2em; } .legal-text li { margin-bottom: .4em; }
.legal-text p { max-width: 80ch; }

/* ===================== SHELTER TOOLS (simulateurs) ===================== */
.tool-privacy { display: flex; gap: 8px; align-items: center; font-size: .88rem; color: var(--ink-soft); margin: 0 0 26px; }
.tool-privacy svg { color: #4C9A84; flex: none; }
.tool-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 28px; align-items: start; }
.tool-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 28px; box-shadow: 0 10px 30px rgba(10,10,10,.05); position: relative; }
.tool-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: 14px 14px 0 0; background: var(--pastel-line); }
.tool-result { position: sticky; top: 16px; }
.tool-h { font-family: var(--sans); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 20px; font-weight: 600; max-width: none; }
.tool-h3 { font-family: var(--sans); font-size: .95rem; margin: 26px 0 10px; letter-spacing: 0; text-transform: none; max-width: none; }
.tf { display: block; margin-bottom: 16px; }
.tf-l { display: block; font-size: .9rem; font-weight: 500; margin-bottom: 6px; }
.tf-in { position: relative; display: block; }
.tf input[type=number], .tf select { font: inherit; font-size: 1rem; width: 100%; padding: 12px 14px; border: 1px solid #C9CCD2; border-radius: 6px; background: #fff; color: var(--ink); }
.tf input[type=number] { padding-right: 78px; }
.tf-in i { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: .82rem; color: var(--ink-soft); pointer-events: none; }
.tf input:focus, .tf select:focus { outline: 2px solid var(--accent-ink); border-color: transparent; }
.tf small { display: block; margin-top: 5px; font-size: .8rem; color: var(--ink-soft); line-height: 1.4; }
.tf-chk { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; }
.tf-chk input { width: 18px; height: 18px; margin-top: 3px; flex: none; }
.tool-actions { display: flex; gap: 16px; align-items: center; margin: 24px 0 0; }
.tool-reset { background: none; border: 0; font: inherit; font-size: .88rem; color: var(--ink-soft); text-decoration: underline; cursor: pointer; }
.tool-out { min-height: 120px; }
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 8px; }
.st { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; background: #FAFAF9; }
.st span { display: block; font-size: .76rem; color: var(--ink-soft); line-height: 1.3; margin-bottom: 6px; }
.st strong { display: block; font-family: var(--serif); font-size: 1.3rem; font-weight: 500; line-height: 1.2; overflow-wrap: anywhere; }
.st.hl { background: #EAF4FA; border-color: #9CC9E6; }
.st.ok { background: #EDF7F3; border-color: #9FD6C6; }
.st.warn { background: #FCF1EC; border-color: #F0B9A3; }
.tbl-wrap { overflow-x: auto; margin: 12px 0; }
.tbl { width: 100%; border-collapse: collapse; font-size: .88rem; }
.tbl th { text-align: left; font-weight: 600; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); padding: 8px 10px; border-bottom: 2px solid var(--line); }
.tbl td { padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl td:last-child, .tbl th:last-child { text-align: right; }
.tool-note { font-size: .88rem; line-height: 1.5; background: #F4F4F2; border-left: 3px solid #B3BAC6; padding: 10px 14px; margin: 12px 0; border-radius: 0 6px 6px 0; max-width: none; }
.tool-note.warn { background: #FCF1EC; border-color: #F0B9A3; }
.tool-note.ok { background: #EDF7F3; border-color: #9FD6C6; }
.chart { width: 100%; height: auto; display: block; }
.legend { font-size: .8rem; color: var(--ink-soft); margin: 4px 0 0; }
.legend i { display: inline-block; width: 11px; height: 11px; border-radius: 2px; margin: 0 4px 0 12px; vertical-align: -1px; } .legend i:first-child { margin-left: 0; }
.tool-cta { margin-top: 26px; padding: 18px 20px; border-radius: 10px; background: var(--black); color: #fff; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.tool-cta p { margin: 0; font-size: .92rem; color: rgba(255,255,255,.88); flex: 1 1 260px; max-width: none; }
.theme-finance .tool-cta { background: var(--wenge); } .theme-business .tool-cta { background: var(--navy-1); }
.tool-cta .btn-primary { background: #fff; color: #0A0A0A; box-shadow: none; }
.tool-notes { margin-top: 26px; font-size: .9rem; color: var(--ink-soft); }
.tool-notes summary { cursor: pointer; font-weight: 600; color: var(--ink); }
.tool-notes ul { padding-left: 20px; margin: 12px 0; } .tool-notes li { margin-bottom: 6px; }
.tool-rdv li { margin-bottom: 8px; }
.tool-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; margin-top: 28px; }
.tool-tile { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--ink); background: #fff; border: 1px solid var(--line); border-top: 5px solid var(--p1); border-radius: 12px; padding: 22px; transition: transform .2s, box-shadow .2s; }
.tool-tile:hover, .tool-tile:focus-visible { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(10,10,10,.10); }
.tool-tile strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 500; line-height: 1.25; }
.tool-tile span { font-size: .9rem; color: var(--ink-soft); line-height: 1.45; }
.tool-tile .tool-theme { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--ink); }
.tool-tile em { font-style: normal; font-weight: 600; font-size: .85rem; margin-top: auto; padding-top: 8px; }
.tool-tile.c1 { border-top-color: var(--p1); } .tool-tile.c2 { border-top-color: var(--p2); } .tool-tile.c3 { border-top-color: var(--p3); }
.tool-tile.c4 { border-top-color: var(--p4); } .tool-tile.c5 { border-top-color: var(--p5); } .tool-tile.c6 { border-top-color: var(--p6); } .tool-tile.c7 { border-top-color: var(--p7); }
.tool-cards-small { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.tool-cards-small .tool-tile { padding: 18px; }
@media (max-width: 900px) { .tool-grid { grid-template-columns: 1fr; } .tool-result { position: static; } .tool-card { padding: 22px 18px; } }
@media (max-width: 460px) { .stats { grid-template-columns: 1fr; } }
@media print { .tool-form, .tool-cta, .tool-notes { display: none !important; } }

/* ===================== v16 : titres pastel, barre réseau, rendez-vous, articles ===================== */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Titres de section : surligneur pastel (lisible sur fond clair) ; texte pastel sur fond sombre */
.section h2, .eyebrow-dark { text-decoration: underline; text-decoration-color: var(--hl, var(--p1)); text-decoration-thickness: .34em; text-underline-offset: -.14em; text-decoration-skip-ink: none; }
.eyebrow-dark { text-decoration-thickness: .6em; text-underline-offset: -.3em; color: var(--ink); }
main > section:nth-of-type(7n+1) { --hl: var(--p1); } main > section:nth-of-type(7n+2) { --hl: var(--p2); }
main > section:nth-of-type(7n+3) { --hl: var(--p3); } main > section:nth-of-type(7n+4) { --hl: var(--p4); }
main > section:nth-of-type(7n+5) { --hl: var(--p5); } main > section:nth-of-type(7n+6) { --hl: var(--p6); } main > section:nth-of-type(7n+7) { --hl: var(--p7); }
.band-dark h2, .band-dark .eyebrow { text-decoration: none; color: var(--hl, var(--p1)); }
.theme-finance .band-dark .eyebrow, .theme-finance .hero .eyebrow, .hero .eyebrow { color: var(--p1); }
.theme-finance .eyebrow-dark { color: var(--ink); }
.tool-h, .tool-h3, .legal-text h2 { text-decoration: none; }
.hero h1 { text-decoration: none; }
.tool-card h2 { text-decoration: none; }

/* Barre « Réseau Shelter » : plus grande, plus aérée */
.topbar { font-size: .92rem; font-weight: 600; letter-spacing: .1em; }
.topbar-in { min-height: 58px; gap: 24px; }
.topbar nav { gap: 6px 46px; }
.topbar a { padding: 16px 0; opacity: .85; }
.topbar-label { font-size: .72rem; opacity: .5; margin-right: 10px; font-weight: 500; }
.tb-campus { color: #C3B3E6; }
.topbar a.tb-campus::after { background: #C3B3E6; }
.topbar a { font-size: inherit; }
.topbar .topbar-franchise { font-size: .74rem; padding: 7px 16px !important; }
@media (max-width: 920px) { .topbar { font-size: .8rem; } .topbar nav { gap: 2px 22px; } .topbar-label { display: none; } .topbar .topbar-franchise { display: none; } }
@media (min-width: 921px) and (max-width: 1240px) { .mainnav { gap: 20px; } .mainnav a:not(.btn) { font-size: .72rem; letter-spacing: .07em; } }

/* Équipe : LinkedIn */
.member-li { margin: 10px 0 0; font-size: .88rem; }

/* Prise de rendez-vous */
.rdv-step { display: grid; grid-template-columns: 56px 1fr; gap: 22px; margin-top: 40px; padding-top: 34px; border-top: 1px solid var(--line); }
.rdv-step:first-of-type { margin-top: 28px; }
.rdv-n { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-family: var(--serif); font-size: 1.3rem; background: var(--p1); color: var(--ink); }
.rdv-step + .rdv-step .rdv-n { background: var(--p4); }
.rdv-step h3 { margin-top: 6px; }
.rdv-form { margin-top: 20px; }
.rdv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-bottom: 8px; }
.rdv-fs { border: 1px solid var(--line); border-radius: 12px; padding: 22px 24px 8px; margin: 0; min-width: 0; background: #fff; box-shadow: 0 8px 24px rgba(10,10,10,.04); }
.rdv-fs legend { font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; padding: 0 8px; color: var(--ink-soft); }
.rdv-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tf input[type=text], .tf input[type=email], .tf input[type=tel], .tf textarea { font: inherit; font-size: 1rem; width: 100%; padding: 12px 14px; border: 1px solid #C9CCD2; border-radius: 6px; background: #fff; color: var(--ink); }
.tf input:focus, .tf textarea:focus { outline: 2px solid var(--accent-ink); border-color: transparent; }
.slots { display: grid; gap: 12px; }
.slot-group > span { display: block; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 6px; }
.slot-group { display: flex; flex-wrap: wrap; gap: 8px; }
.slot-group > span { flex: 0 0 100%; }
.slot, .mode { position: relative; cursor: pointer; }
.slot input, .mode input { position: absolute; opacity: 0; inset: 0; }
.slot span, .mode span { display: inline-block; padding: 9px 14px; border: 1px solid #C9CCD2; border-radius: 999px; font-size: .9rem; background: #fff; transition: background .15s, border-color .15s; }
.slot input:checked + span, .mode input:checked + span { background: var(--p1); border-color: var(--p1); font-weight: 600; }
.mode input:checked + span { background: var(--p2); border-color: var(--p2); }
.slot input:focus-visible + span, .mode input:focus-visible + span { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
.modes { display: flex; flex-wrap: wrap; gap: 8px; }
.hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.rdv-error { background: #FCF1EC; border-left: 3px solid #F0B9A3; padding: 10px 14px; border-radius: 0 6px 6px 0; }
@media (max-width: 900px) { .rdv-cols, .rdv-two { grid-template-columns: 1fr; } .rdv-step { grid-template-columns: 1fr; gap: 10px; } }

/* Articles */
.article { max-width: 760px; margin-inline: auto; font-size: 1.08rem; }
.news-card h3 a { text-decoration: none; color: inherit; } .news-card h3 a:hover { text-decoration: underline; }


/* ===================== v18 : couleurs de texte (plus de soulignés), palette Finance violet + argenté ===================== */
:root { --hlt1: #4B9CCB; --hlt2: #3FA588; --hlt3: #8B74CC; --hlt4: #DE8A68; --hlt5: #BF982B; --hlt6: #D2708F; --hlt7: #7F8899; }
.section h2, .eyebrow-dark { text-decoration: none; text-decoration-thickness: auto; text-underline-offset: auto; color: var(--hlt, var(--hlt1)); }
.eyebrow-dark { font-weight: 700; }
main > section:nth-of-type(7n+1) { --hlt: var(--hlt1); } main > section:nth-of-type(7n+2) { --hlt: var(--hlt2); }
main > section:nth-of-type(7n+3) { --hlt: var(--hlt3); } main > section:nth-of-type(7n+4) { --hlt: var(--hlt4); }
main > section:nth-of-type(7n+5) { --hlt: var(--hlt5); } main > section:nth-of-type(7n+6) { --hlt: var(--hlt6); } main > section:nth-of-type(7n+7) { --hlt: var(--hlt7); }
.theme-finance .eyebrow-dark { color: var(--hlt, var(--hlt3)); }
.band-dark h2, .band-dark .eyebrow { color: var(--hl, var(--p1)); }
.tool-card h2.tool-h { color: var(--ink-soft); }
.legal-text h2 { border-bottom: 0; padding-bottom: 0; color: var(--hlt3); }
.legal-text h2:nth-of-type(2) { color: var(--hlt2); } .legal-text h2:nth-of-type(3) { color: var(--hlt1); }
.legal-text h2:nth-of-type(4) { color: var(--hlt4); } .legal-text h2:nth-of-type(5) { color: var(--hlt6); }
.h-big { font-size: clamp(2.3rem, 5.4vw, 4rem); max-width: none !important; margin-bottom: .5em; }

/* Boutons de l'en-tête de page : couleurs pastel pleines */
.hero-cta .btn-primary { background: #9CC9E6; color: #14171B; box-shadow: 0 6px 20px rgba(156,201,230,.25); }
.hero-cta .btn-ghost { background: #C3B3E6; color: #14171B; border-color: #C3B3E6; }
.hero-cta .btn:hover { filter: brightness(1.06); }

/* Grand logo en filigrane : argenté et plus marqué */
.hero-mark { background: url("../brand/mark-light.png") center / contain no-repeat; -webkit-mask: none; mask: none; opacity: .38;
  filter: grayscale(1) brightness(1.05) contrast(1.15) drop-shadow(0 0 34px rgba(210,220,235,.5)); }
.theme-business .hero-mark { filter: sepia(1) saturate(3.5) hue-rotate(8deg) brightness(1.1) drop-shadow(0 0 30px rgba(210,172,82,.4)); opacity: .3; }

/* Équipe : 3 par ligne */
.team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .team { grid-template-columns: 1fr; } }

/* Engagements : 2 colonnes, titres sur une seule ligne */
.values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 700px) { .value h3 { white-space: nowrap; } }
@media (max-width: 920px) { .values { grid-template-columns: 1fr; } }

/* Barre réseau et menu : tout tient sur une ligne, bouton sur une ligne */
.topbar { font-size: .86rem; }
.topbar nav { gap: 6px 30px; }
.topbar a, .topbar .topbar-franchise { white-space: nowrap; }
.mainnav { gap: 20px; }
.mainnav .btn { white-space: nowrap; padding: 11px 18px; }
.brand img { height: 52px; }
@media (min-width: 921px) and (max-width: 1240px) { .mainnav { gap: 14px; } .mainnav a:not(.btn) { font-size: .68rem; letter-spacing: .05em; } .topbar nav { gap: 6px 18px; } .topbar { font-size: .78rem; } }

/* ===================== v21 ===================== */
/* Portes de la page d'accueil : trait du haut plus épais */
.door { border-top-width: 12px !important; }
.door-business { border-top-color: #D2AC52 !important; } .door-finance, .theme-finance .door-finance { border-top-color: #C9D1DB !important; }
/* Finance = mêmes bleus que Business, mais argenté (Business reste doré) */
.theme-finance .hero-mark { filter: grayscale(1) brightness(1.1) contrast(1.15) drop-shadow(0 0 34px rgba(210,220,235,.5)); }
.theme-finance .tool-cta { background: var(--navy-1); }
/* Menu : libellés sur une seule ligne */
.theme-business .mainnav a:not(.btn), .theme-finance .mainnav a:not(.btn) { white-space: nowrap; }
@media (min-width: 921px) and (max-width: 1240px) { .mainnav { gap: 12px; } .mainnav a:not(.btn) { font-size: .66rem; letter-spacing: .04em; } }

/* v22 : barre réseau plus grande et plus aérée */
.topbar { font-size: 1rem; letter-spacing: .09em; }
.topbar nav { gap: 6px 56px; }
.topbar-in { min-height: 62px; }
@media (min-width: 921px) and (max-width: 1240px) { .topbar { font-size: .82rem; } .topbar nav { gap: 6px 26px; } }
@media (max-width: 920px) { .topbar { font-size: .84rem; } .topbar nav { gap: 2px 24px; } }

/* v23 */
.portrait img { border-top: 4px solid #D9C7F0 !important; }
.theme-business .portrait img { border-top-color: #F0DFA8 !important; }
.hero-big .hero-mark { width: min(62vw, 820px); right: -8%; }
.door::after { transition: opacity .35s, filter .35s; }
.door-kicker { transition: color .3s, text-shadow .3s; }
.door-business:hover::after { opacity: .5; filter: sepia(1) saturate(4) hue-rotate(8deg) brightness(1.3) drop-shadow(0 0 26px rgba(224,188,102,.9)); }
.door-finance:hover::after { opacity: .5; filter: grayscale(1) brightness(1.5) drop-shadow(0 0 26px rgba(225,232,245,.9)); }
.door-business:hover .door-kicker { color: #FFE9A6; text-shadow: 0 0 10px #E0BC66, 0 0 24px #D2AC52, 0 0 40px rgba(224,188,102,.7); }
.door-finance:hover .door-kicker { color: #fff; text-shadow: 0 0 10px #DDE5F2, 0 0 24px #C9D1DB, 0 0 40px rgba(221,229,242,.7); }
.door-business:hover { box-shadow: 0 0 50px -8px rgba(224,188,102,.45), 0 30px 60px -28px rgba(0,0,0,.6); }
.door-finance:hover { box-shadow: 0 0 50px -8px rgba(221,229,242,.4), 0 30px 60px -28px rgba(0,0,0,.6); }
.topbar .topbar-franchise { transition: background .15s, box-shadow .15s, border-color .15s, color .15s; }
.topbar .topbar-franchise:active, .topbar .topbar-franchise.lit { background: #FF8A1F; border-color: #FFB066; color: #fff !important; box-shadow: 0 0 10px #FF8A1F, 0 0 26px rgba(255,138,31,.8); }
.pole-tag { display: none; }
.brand { flex-shrink: 0; }
.mainnav a:not(.btn) { white-space: nowrap; }
@media (min-width: 921px) { .mainnav { gap: 26px; } .mainnav a:not(.btn) { font-size: .74rem; letter-spacing: .08em; } }
@media (min-width: 921px) and (max-width: 1240px) { .mainnav { gap: 14px; } .mainnav a:not(.btn) { font-size: .66rem; letter-spacing: .04em; } }

/* v24 */
.topbar .topbar-franchise:hover, .topbar .topbar-franchise:focus-visible { background: #FF8A1F; border-color: #FFB066; color: #fff !important; box-shadow: 0 0 10px #FF8A1F, 0 0 26px rgba(255,138,31,.85); }
.door-business::after { opacity: .16; filter: sepia(1) saturate(4) hue-rotate(8deg) brightness(1.2); }
.door-finance::after { opacity: .16; filter: grayscale(1) brightness(1.4); }
.door-business:hover::after { opacity: .95; filter: sepia(1) saturate(5) hue-rotate(8deg) brightness(1.6) drop-shadow(0 0 22px rgba(255,214,110,1)) drop-shadow(0 0 50px rgba(224,188,102,.9)); }
.door-finance:hover::after { opacity: .95; filter: grayscale(1) brightness(2.1) drop-shadow(0 0 22px rgba(240,245,255,1)) drop-shadow(0 0 50px rgba(221,229,242,.9)); }
.door::after { background-size: 380px; background-position: right -50px bottom -70px; }
.hero-big .hero-mark { width: min(78vw, 1050px); right: -14%; opacity: .6; }
.hero-big .hero-mark { filter: grayscale(1) brightness(1.5) contrast(1.1) drop-shadow(0 0 40px rgba(225,232,245,.7)); }
@media (min-width: 921px) {
  .mainnav { gap: 28px; }
  .mainnav a:not(.btn) { font-size: .88rem; letter-spacing: .07em; font-weight: 600; }
}
@media (min-width: 921px) and (max-width: 1320px) { .mainnav { gap: 16px; } .mainnav a:not(.btn) { font-size: .76rem; letter-spacing: .04em; } }
.door-business:hover::after { opacity: .62; filter: sepia(1) saturate(6) hue-rotate(6deg) brightness(1.05) drop-shadow(0 0 22px rgba(255,200,80,1)) drop-shadow(0 0 50px rgba(224,170,60,.9)); }
.door-finance:hover::after { opacity: .6; filter: grayscale(1) brightness(1.5) drop-shadow(0 0 22px rgba(240,245,255,1)) drop-shadow(0 0 50px rgba(221,229,242,.9)); }
@media (min-width: 921px) { .mainnav { gap: 22px; } .mainnav a:not(.btn) { font-size: .82rem; letter-spacing: .05em; } .mainnav .btn { padding: 11px 16px; } }
@media (min-width: 921px) and (max-width: 1320px) { .mainnav { gap: 14px; } .mainnav a:not(.btn) { font-size: .74rem; letter-spacing: .03em; } }
.door-business::after { filter: sepia(1) saturate(4) hue-rotate(-14deg) brightness(1.1); }
.door-business:hover::after { opacity: .7; filter: sepia(1) saturate(5) hue-rotate(-14deg) brightness(1.3) drop-shadow(0 0 22px rgba(255,190,60,1)) drop-shadow(0 0 50px rgba(240,160,40,.9)); }
.door-business::after { background-image: url("../brand/mark-gold.png"); filter: none; opacity: .14; }
.door-finance::after { background-image: url("../brand/mark-silver.png"); filter: none; opacity: .14; }
.door-business:hover::after { opacity: .85; filter: drop-shadow(0 0 20px rgba(255,200,70,1)) drop-shadow(0 0 46px rgba(240,170,40,.85)); }
.door-finance:hover::after { opacity: .85; filter: drop-shadow(0 0 20px rgba(240,245,255,1)) drop-shadow(0 0 46px rgba(221,229,242,.85)); }

/* v25 : logo de fond des départements, plus petit, doré / argenté */
.theme-business .hero-mark { background-image: url("../brand/mark-gold.png"); filter: drop-shadow(0 0 26px rgba(224,180,70,.5)); opacity: .5; width: min(34vw, 420px); right: 3%; }
.theme-finance .hero-mark { background-image: url("../brand/mark-silver.png"); filter: drop-shadow(0 0 26px rgba(221,229,242,.5)); opacity: .5; width: min(34vw, 420px); right: 3%; }

/* v26 */
.hero-big .hero-mark { width: min(34vw, 420px); right: 3%; opacity: .5; filter: grayscale(1) brightness(1.4) drop-shadow(0 0 26px rgba(225,232,245,.5)); }
.pole-tag { display: inline-block; background: none !important; padding: 0 0 0 14px; margin-left: 4px; border-left: 2px solid currentColor; font-size: .82rem; letter-spacing: .2em; }
.theme-business .pole-tag { color: #C79F44; } .theme-finance .pole-tag { color: #8D99A8; }
.brand { display: flex; align-items: center; gap: 10px; }
@media (min-width: 921px) { .theme-business .mainnav, .theme-finance .mainnav { gap: 16px; } .theme-business .mainnav a:not(.btn), .theme-finance .mainnav a:not(.btn) { font-size: .72rem; letter-spacing: .03em; } }
.textlink-light, .hero .textlink { white-space: nowrap; }
.duo { position: relative; }
.duo-col.door-like { position: relative; overflow: hidden; isolation: isolate; text-decoration: none; display: flex; flex-direction: column; min-height: 340px; border-top-width: 12px; transition: transform .3s, box-shadow .3s; }
.duo-col.door-like::after { content: ""; position: absolute; inset: 0; z-index: -1; background: no-repeat right -50px bottom -70px / 380px; opacity: .14; transition: opacity .35s, filter .35s; }
.duo-business.door-like::after { background-image: url("../brand/mark-gold.png"); }
.duo-finance.door-like::after { background-image: url("../brand/mark-silver.png"); }
.duo-col.door-like:hover { transform: translateY(-6px); }
.duo-col.door-like .door-cta { margin-top: auto; color: #fff; }
.duo-col.door-like:hover .door-cta i { transform: translateX(8px); }
.duo-business.door-like:hover::after { opacity: .85; filter: drop-shadow(0 0 20px rgba(255,200,70,1)) drop-shadow(0 0 46px rgba(240,170,40,.85)); }
.duo-finance.door-like:hover::after { opacity: .85; filter: drop-shadow(0 0 20px rgba(240,245,255,1)) drop-shadow(0 0 46px rgba(221,229,242,.85)); }
.duo-business.door-like:hover { box-shadow: 0 0 50px -8px rgba(224,188,102,.45), 0 30px 60px -28px rgba(0,0,0,.6); }
.duo-finance.door-like:hover { box-shadow: 0 0 50px -8px rgba(221,229,242,.4), 0 30px 60px -28px rgba(0,0,0,.6); }
.duo-business.door-like:hover .door-kicker { color: #FFE9A6; text-shadow: 0 0 10px #E0BC66, 0 0 24px #D2AC52, 0 0 40px rgba(224,188,102,.7); }
.duo-finance.door-like:hover .door-kicker { color: #fff; text-shadow: 0 0 10px #DDE5F2, 0 0 24px #C9D1DB, 0 0 40px rgba(221,229,242,.7); }
.duo-col .door-kicker { text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; font-weight: 600; margin-bottom: 18px; }
.duo-col.door-like h2 { color: #fff !important; }
.duo-col.door-like ul { margin-bottom: 28px; }
.duo-col.door-like .door-cta { padding-top: 8px; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.theme-business .hero-big .hero-mark { background-image: url("../brand/mark-gold.png"); filter: drop-shadow(0 0 26px rgba(224,180,70,.5)); }
.theme-finance .hero-big .hero-mark { background-image: url("../brand/mark-silver.png"); filter: drop-shadow(0 0 26px rgba(221,229,242,.5)); }

/* v27 : signal lumineux plus léger, trait vert, CrediPro visible sur mobile */
.door-business:hover::after { opacity: .42; filter: drop-shadow(0 0 8px rgba(255,200,70,.55)); }
.door-finance:hover::after { opacity: .42; filter: drop-shadow(0 0 8px rgba(240,245,255,.5)); }
.duo-business.door-like:hover::after { opacity: .42; filter: drop-shadow(0 0 8px rgba(255,200,70,.55)); }
.duo-finance.door-like:hover::after { opacity: .42; filter: drop-shadow(0 0 8px rgba(240,245,255,.5)); }
.door-business:hover, .duo-business.door-like:hover { box-shadow: 0 0 22px -10px rgba(224,188,102,.4), 0 24px 50px -30px rgba(0,0,0,.55); }
.door-finance:hover, .duo-finance.door-like:hover { box-shadow: 0 0 22px -10px rgba(221,229,242,.35), 0 24px 50px -30px rgba(0,0,0,.55); }
.door-business:hover .door-kicker, .duo-business.door-like:hover .door-kicker { color: #F2D58A; text-shadow: 0 0 8px rgba(224,188,102,.55); }
.door-finance:hover .door-kicker, .duo-finance.door-like:hover .door-kicker { color: #EEF2F8; text-shadow: 0 0 8px rgba(221,229,242,.5); }
.topbar .topbar-franchise:hover, .topbar .topbar-franchise:focus-visible, .topbar .topbar-franchise:active, .topbar .topbar-franchise.lit {
  background: rgba(255,138,31,.2); border-color: #FFA24D; color: #FFD2A3 !important; box-shadow: 0 0 8px rgba(255,138,31,.4); }
.portrait img, .theme-business .portrait img, .theme-finance .portrait img { border-top: 4px solid #86CFA3 !important; }
@media (max-width: 920px) {
  .topbar .topbar-franchise { display: inline-block !important; font-size: .68rem; padding: 5px 12px !important; margin: 6px 0 4px; }
}
@media (max-width: 920px) {
  .topbar-in { flex-direction: column; align-items: flex-start; flex-wrap: wrap; }
  .topbar .topbar-franchise { align-self: flex-start; margin: 2px 0 10px; }
}
.cards:has(> .card:nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); }

/* ---------- Assistant virtuel (chat) ---------- */
.chat { --c-bg: #0B0D10; --c-fg: #fff; --c-soft: #EEF1F5; position: fixed; right: 24px; bottom: 24px; z-index: 70; font-family: inherit; }
.theme-business .chat { --c-bg: #0F2350; --c-fg: #fff; --c-acc: #D2AC52; --c-soft: #F7F0DC; }
.theme-finance .chat { --c-bg: #0F2350; --c-fg: #fff; --c-acc: #C9D1DB; --c-soft: #EDF0F5; }
.theme-office .chat { --c-acc: #9CC9E6; }
.chat-launch { display: flex; align-items: center; gap: 10px; border: 0; cursor: pointer; background: var(--c-bg); color: var(--c-fg); padding: 14px 20px; border-radius: 999px; font: 600 .86rem/1 inherit; letter-spacing: .02em; box-shadow: 0 14px 40px -10px rgba(0,0,0,.5); transition: transform .2s; }
.chat-launch:hover { transform: translateY(-3px); }
.chat-launch svg { color: var(--c-acc); }
.chat.open .chat-launch { display: none; }
.chat-panel { width: 370px; max-width: calc(100vw - 32px); height: 560px; max-height: calc(100vh - 48px); display: flex; flex-direction: column; background: #fff; color: #1B1F26; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 70px -12px rgba(0,0,0,.5); border: 1px solid rgba(0,0,0,.08); }
.chat-panel[hidden] { display: none; }
.chat-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px; background: var(--c-bg); color: var(--c-fg); }
.chat-head strong { font-size: .95rem; }
.chat-actions { display: flex; align-items: center; gap: 8px; }
.chat-rdv-btn { border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; padding: 6px 12px; border-radius: 999px; font: 600 .74rem/1 inherit; cursor: pointer; }
.chat-rdv-btn:hover { background: rgba(255,255,255,.14); }
.chat-close { border: 0; background: transparent; color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 0 4px; }
.chat-body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: #FAFAFB; }
.chat-body[hidden], .chat-rdv[hidden], .chat-form[hidden] { display: none; }
.chat-m { max-width: 86%; padding: 10px 14px; border-radius: 14px; font-size: .9rem; line-height: 1.5; }
.chat-m.bot { align-self: flex-start; background: var(--c-soft); border-bottom-left-radius: 4px; }
.chat-m.me { align-self: flex-end; background: var(--c-bg); color: #fff; border-bottom-right-radius: 4px; }
.chat-m.wait { opacity: .6; }
.chat-cta { margin-top: 8px; border: 0; background: var(--c-bg); color: #fff; padding: 9px 16px; border-radius: 999px; font: 600 .8rem/1 inherit; cursor: pointer; }
.chat-sugg { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.chat-sugg button { border: 1px solid rgba(0,0,0,.18); background: #fff; color: #1B1F26; padding: 8px 14px; border-radius: 999px; font: 500 .8rem/1.3 inherit; cursor: pointer; text-align: left; }
.chat-sugg button:hover { background: var(--c-soft); }
.chat-form { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid rgba(0,0,0,.08); background: #fff; }
.chat-in { flex: 1; border: 1px solid rgba(0,0,0,.2); border-radius: 999px; padding: 10px 16px; font: inherit; font-size: .9rem; min-width: 0; }
.chat-send { border: 0; background: var(--c-bg); color: #fff; border-radius: 999px; padding: 10px 16px; font: 600 .85rem/1 inherit; cursor: pointer; }
.chat-send:disabled { opacity: .6; }
.chat-note { margin: 0; padding: 8px 14px 10px; font-size: .68rem; line-height: 1.4; color: #5B6270; background: #fff; }
.chat-note a { color: inherit; }
.chat-rdv { flex: 1; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; background: #FAFAFB; font-size: .85rem; }
.chat-rdv label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: .78rem; }
.chat-rdv select, .chat-rdv input:not([type=checkbox]), .chat-rdv textarea { border: 1px solid rgba(0,0,0,.2); border-radius: 8px; padding: 8px 10px; font: inherit; font-size: .88rem; font-weight: 400; background: #fff; }
.chat-rdv-t { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.chat-back { border: 0; background: transparent; color: #4A5260; font: 500 .78rem/1 inherit; cursor: pointer; text-decoration: underline; }
.chat-two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.chat-chk { flex-direction: row !important; align-items: flex-start; gap: 8px !important; font-weight: 400 !important; font-size: .74rem !important; line-height: 1.4; }
.chat-chk input { margin-top: 2px; }
.chat-hp { position: absolute !important; left: -9999px !important; }
.chat-err { margin: 0; color: #B3261E; font-size: .78rem; }
@media (max-width: 920px) {
  .fab { left: 16px; right: auto; }
  .chat { right: 16px; bottom: 16px; }
  .chat-panel { width: calc(100vw - 32px); height: min(560px, calc(100vh - 32px)); }
}
@media print { .chat { display: none !important; } }
.chat-two { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.chat-rdv input:not([type=checkbox]), .chat-rdv select, .chat-rdv textarea { min-width: 0; width: 100%; box-sizing: border-box; }
.tool-det { margin-top: 18px; } .tool-det summary { cursor: pointer; font-weight: 600; margin-bottom: 10px; }
/* Encart application */
.app-promo { display: flex; gap: 18px; align-items: flex-start; padding: 20px 22px; margin: 0 0 26px; border: 1px solid rgba(201,162,75,.45); border-radius: 16px; background: rgba(201,162,75,.08); }
.app-promo img { border-radius: 14px; flex: none; }
.app-promo h2 { font-size: 1.15rem; margin: 0 0 6px; }
.app-promo p { margin: 0 0 8px; font-size: .92rem; }
.app-promo-how { opacity: .85; }
@media (max-width: 560px) { .app-promo { flex-direction: column; } }

/* v28 : avatar du chatbot, bouton RDV du haut, pied de page */
.chat-launch { padding: 6px 20px 6px 6px; gap: 12px; }
.chat-av { border-radius: 50%; object-fit: cover; flex: none; background: #fff; border: 2px solid var(--c-acc, #9CC9E6); width: 56px; height: 56px; }
.chat-av.sm { width: 44px; height: 44px; border-width: 2px; }
.chat-av.xs { width: 28px; height: 28px; border-width: 1px; float: left; margin: 0 8px 2px 0; }
.chat-launch-t { display: flex; flex-direction: column; gap: 3px; text-align: left; }
.chat-launch-t strong { font-size: .92rem; }
.chat-launch-t small { font-size: .74rem; font-weight: 500; opacity: .8; }
.chat-launch::after { content: ""; position: absolute; top: 4px; left: 48px; width: 12px; height: 12px; border-radius: 50%; background: #3DCB7B; border: 2px solid var(--c-bg); }
.chat-launch { position: relative; }
.chat-who { display: flex; align-items: center; gap: 10px; }
.chat-who span span { display: flex; flex-direction: column; }
.chat-who small { font-size: .7rem; opacity: .75; font-weight: 400; }
.chat-m.bot { overflow: hidden; }
@media (max-width: 560px) { .chat-launch-t { display: none; } .chat-launch { padding: 5px; } .chat-launch::after { left: 44px; } }
.header .btn-primary { transition: box-shadow .25s ease, transform .2s ease; }
.header .btn-primary:hover, .header .btn-primary:focus-visible { box-shadow: 0 0 0 3px rgba(255,255,255,.14), 0 0 18px rgba(201,162,75,.45); transform: translateY(-1px); }
.footer-grid { grid-template-columns: 1.2fr 1.7fr 1fr 1fr; align-items: start; }
.footer .cols-2 { columns: 2; column-gap: 28px; }
.footer .cols-2 li { break-inside: avoid; }
@media (max-width: 920px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer-grid { grid-template-columns: 1fr; } .footer .cols-2 { columns: 1; } }
/* Carte des partenaires */
.team-more { text-align: center; margin: 34px 0 0; }
.map-wrap { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 48px; align-items: center; }
.map-box { max-width: 560px; margin: 0 auto; width: 100%; }
.fr-map { width: 100%; height: auto; overflow: visible; }
.fr-shape { fill: #E9EEF5; stroke: #B7C3D6; stroke-width: 1.4; stroke-linejoin: round; }
.fr-dot { fill: #8FA3BF; opacity: .85; }
.fr-pin { fill: #C9A24B; stroke: #fff; stroke-width: 2.5; }
.fr-halo { fill: rgba(201,162,75,.28); animation: frPulse 2.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.fr-partner { cursor: pointer; }
.fr-partner:hover .fr-pin, .fr-partner:focus-visible .fr-pin { fill: #0B1432; }
.fr-label { font: 700 15px Inter, system-ui, sans-serif; fill: #0B1432; paint-order: stroke; stroke: #fff; stroke-width: 5px; stroke-linejoin: round; }
@keyframes frPulse { 0%,100% { transform: scale(.85); opacity: .9; } 50% { transform: scale(1.35); opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .fr-halo { animation: none; } }
.partner-list { list-style: none; padding: 0; margin: 18px 0 24px; display: grid; gap: 14px; }
.partner-list li { display: flex; gap: 14px; align-items: flex-start; }
.pl-dot { flex: none; width: 14px; height: 14px; margin-top: 5px; border-radius: 50%; background: #C9A24B; box-shadow: 0 0 0 5px rgba(201,162,75,.25); }
@media (max-width: 860px) { .map-wrap { grid-template-columns: 1fr; gap: 28px; } }
.chat-who > span { display: flex; flex-direction: column; line-height: 1.25; }
.chat-rdv-btn { white-space: nowrap; }
.chat-m { flex: none; }
.chat-head { padding: 12px 14px; }

.team-more { display: flex; justify-content: center; margin: 44px 0 0; }
.team-more-box { width: 100%; max-width: 640px; text-align: center; padding: 30px 28px; border-radius: 18px; background: #fff; border: 1px solid rgba(0,0,0,.1); box-shadow: 0 18px 44px -26px rgba(0,0,0,.45); }
.team-more-box h3 { margin: 0 0 8px; font-size: 1.3rem; }
.team-more-box p { margin: 0 0 20px; color: #5B6270; }
.btn-big { font-size: 1rem; padding: 16px 32px; }
/* v29 : chatbot plus grand, contact du pied de page, boutons RDV lumineux (pastel) */
.chat-panel { width: 410px; height: 620px; }
.chat-av.sm { width: 56px; height: 56px; }
.chat-av.xs { width: 34px; height: 34px; }
.chat-av { width: 64px; height: 64px; }
.chat-launch::after { left: 52px; }
.chat-head { padding: 12px 16px; }
.chat-who strong { font-size: 1.05rem; }
.chat-sugg button { font-size: .82rem; }
@media (max-width: 560px) { .chat-panel { width: calc(100vw - 32px); height: min(620px, calc(100vh - 32px)); } }
.footer-contact li { display: flex; flex-direction: column; gap: 1px; margin-bottom: 12px; }
.footer-contact .fc-l { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; opacity: .55; }
.footer-contact li:last-child { margin: 18px 0 0; }
.footer-rdv, .header .btn-primary, .app-cta-btn { transition: background .2s, box-shadow .25s, color .2s, border-color .2s, transform .2s; }
.footer-rdv { display: inline-block; padding: 13px 24px; border-radius: 999px; border: 1px solid rgba(207,230,245,.55); color: #CFE6F5 !important; font-weight: 600; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; box-shadow: 0 0 8px rgba(156,201,230,.35); }
.footer-rdv:hover, .footer-rdv:focus-visible, .header .btn-primary:hover, .header .btn-primary:focus-visible {
  background: #CFE6F5 !important; color: #0B1432 !important; border-color: #fff; transform: none;
  box-shadow: 0 0 10px #9CC9E6, 0 0 28px rgba(156,201,230,.85), 0 0 46px rgba(200,185,240,.5); }
.header .btn-primary { box-shadow: 0 0 10px rgba(156,201,230,.45), 0 0 22px rgba(200,185,240,.3); margin-left: 18px; }
@media (min-width: 1100px) { .header .btn-primary { margin-right: -14px; } }
.footer-grid { align-items: start; }
.footer .footer-rdv { white-space: nowrap; text-decoration: none !important; padding: 13px 20px; font-size: .74rem; }
.footer-grid { grid-template-columns: 1.1fr 1.5fr .95fr 1.3fr; }
@media (max-width: 920px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer-grid { grid-template-columns: 1fr; } }
.footer .footer-rdv { align-self: flex-start; }
/* v30 : signaux lumineux plus légers, pied de page aligné, WhatsApp */
.header .btn-primary { box-shadow: none; margin-left: 18px; }
.header .btn-primary:hover, .header .btn-primary:focus-visible, .footer .footer-rdv:hover, .footer .footer-rdv:focus-visible {
  background: rgba(156,201,230,.2) !important; color: #CFE6F5 !important; border-color: #9CC9E6; box-shadow: 0 0 8px rgba(156,201,230,.45); transform: none; }
.header .btn-primary:hover, .header .btn-primary:focus-visible { background: rgba(156,201,230,.28) !important; color: #0B1432 !important; border-color: #7FB2D6; box-shadow: 0 0 8px rgba(127,178,214,.55); }
.footer .footer-rdv { box-shadow: none; border-color: rgba(207,230,245,.5); color: #CFE6F5 !important; background: transparent; }
.footer-grid { grid-template-columns: 1.05fr 1.55fr .9fr 1.3fr; align-items: start; }
.footer .plain li, .footer-contact li { margin: 0 0 12px; display: block; line-height: 1.5; }
.footer .cols-2 a, .footer-contact a { white-space: nowrap; }
.footer-contact .fc-addr { white-space: normal; color: inherit; }
.footer-contact .fc-rdv { margin-top: 18px; }
.footer .footer-wa { display: inline-flex; align-items: center; gap: 9px; padding: 8px 16px 8px 12px; border-radius: 999px; border: 1px solid rgba(61,203,123,.5); color: #7BE3A6 !important; font-weight: 600; font-size: .86rem; text-decoration: none; box-shadow: 0 0 8px rgba(61,203,123,.35); animation: waGlow 3s ease-in-out infinite; transition: background .2s, box-shadow .2s; }
.footer .footer-wa:hover, .footer .footer-wa:focus-visible { background: rgba(61,203,123,.18); box-shadow: 0 0 12px rgba(61,203,123,.7); }
@keyframes waGlow { 0%,100% { box-shadow: 0 0 5px rgba(61,203,123,.25); } 50% { box-shadow: 0 0 12px rgba(61,203,123,.55); } }
@media (prefers-reduced-motion: reduce) { .footer .footer-wa { animation: none; } }
@media (max-width: 920px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer-grid { grid-template-columns: 1fr; } .footer .cols-2 a { white-space: normal; } }

/* v31 : WhatsApp = bulle seule */
.footer .footer-wa { padding: 0; width: 48px; height: 48px; justify-content: center; border-radius: 50%; gap: 0; }
