:root {
  --ink: #f5f7fb;
  --muted: #aebbd0;
  --muted-2: #7e8da7;
  --bg: #070c16;
  --bg-2: #0b1322;
  --surface: #101b2e;
  --surface-2: #15243b;
  --surface-3: #192b47;
  --yellow: #84b4d6;
  --yellow-deep: #547f9f;
  --cyan: #6fa8cf;
  --teal: #a4bfd2;
  --danger: #ff7d7d;
  --line: rgba(255,255,255,.095);
  --line-strong: rgba(255,255,255,.16);
  --shadow: 0 24px 60px rgba(0,0,0,.34);
  --radius: 24px;
  --radius-sm: 16px;
  --container: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  background:
    radial-gradient(circle at 82% -8%, rgba(25,184,255,.16), transparent 29rem),
    radial-gradient(circle at 0% 23%, rgba(111,168,208,.08), transparent 28rem),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg) 100%);
  min-height: 100vh;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .24;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 75%);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.container { width: min(var(--container), calc(100% - 2.2rem)); margin-inline: auto; }
.section { padding: 6rem 0; position: relative; }
.section-sm { padding: 3.25rem 0; position: relative; }
.surface-section { background: linear-gradient(180deg, rgba(16,27,46,.72), rgba(9,16,29,.72)); border-block: 1px solid var(--line); }

.skip-link {
  position: absolute; left: -9999px; top: 0;
}
.skip-link:focus {
  left: 1rem; top: 1rem; z-index: 1000;
  background: #fff; color: #000; padding: .8rem 1rem; border-radius: 10px;
}
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

.utility-bar {
  background: linear-gradient(90deg, #dce6ee, var(--yellow));
  color: #10202e;
  position: relative;
  z-index: 80;
}
.utility-inner {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  min-height: 46px; font-size: .92rem; font-weight: 760;
}
.utility-links, .utility-socials { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.utility-links a:hover, .utility-socials a:hover { text-decoration: underline; text-underline-offset: 4px; }
.lang-switch { display: inline-flex; align-items: center; background: rgba(255,255,255,.42); border-radius: 999px; padding: 3px; }
.lang-btn { border: 0; background: transparent; color: #d9e4ed; border-radius: 999px; padding: .35rem .62rem; font-weight: 900; }
.lang-btn.active { background: #dfe9f0; color: var(--yellow); }
.social-chip { width: 29px; height: 29px; border-radius: 50%; display: inline-grid; place-items: center; border: 1px solid rgba(31,43,0,.22); font-size: .78rem; }

.site-header {
  position: sticky; top: 0; z-index: 70;
  background: rgba(7,12,22,.88);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 94px; }
.brand { display: flex; align-items: center; gap: .9rem; min-width: 250px; }
.brand img { width: 68px; height: 68px; object-fit: cover; border-radius: 18px; border: 1px solid var(--line-strong); box-shadow: 0 12px 35px rgba(0,0,0,.3); }
.brand-copy strong { display: block; font-size: 1.45rem; letter-spacing: .025em; line-height: 1.05; }
.brand-copy span { color: var(--muted); display: block; font-size: .76rem; line-height: 1.35; max-width: 375px; margin-top: .28rem; }

.menu-toggle { display: none; border: 1px solid var(--line-strong); color: white; background: rgba(255,255,255,.045); padding: .72rem .9rem; border-radius: 12px; }
.main-nav { display: flex; align-items: center; gap: .25rem; }
.main-nav a { color: var(--muted); padding: .72rem .78rem; border-radius: 11px; font-size: .92rem; font-weight: 760; }
.main-nav a:hover, .main-nav a:focus-visible { color: white; background: rgba(255,255,255,.055); }
.main-nav a.active { color: var(--yellow); background: rgba(111,168,208,.08); }
.main-nav .nav-cta { background: var(--yellow); color: #10202e; margin-left: .35rem; padding-inline: 1rem; }
.main-nav .nav-cta:hover { background: #a8c9df; color: #10202e; }

.eyebrow { display: inline-flex; align-items: center; gap: .55rem; color: var(--yellow); text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 900; margin-bottom: .9rem; }
.eyebrow::before { content: ""; width: 30px; height: 2px; background: var(--yellow); }
.display-title { font-size: clamp(2.65rem, 5.8vw, 5.8rem); line-height: .98; letter-spacing: -.045em; margin: 0 0 1.25rem; max-width: 980px; }
.display-title .accent { color: var(--yellow); }
.page-title { font-size: clamp(2.45rem, 4.8vw, 4.8rem); line-height: 1; letter-spacing: -.04em; margin: 0 0 1.2rem; max-width: 850px; }
.section-title { font-size: clamp(2rem, 3.55vw, 3.65rem); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 1.1rem; max-width: 920px; }
.section-intro, .lead { color: var(--muted); font-size: 1.12rem; max-width: 790px; }
.lead { font-size: clamp(1.06rem, 1.5vw, 1.25rem); }
.kicker { color: var(--cyan); font-weight: 850; }

.hero { padding: 6.6rem 0 4.5rem; overflow: hidden; }
.hero::after {
  content: ""; position: absolute; width: 510px; height: 510px; border: 1px solid rgba(25,184,255,.18); border-radius: 50%; right: -160px; top: 40px;
  box-shadow: inset 0 0 0 70px rgba(25,184,255,.02), inset 0 0 0 140px rgba(111,168,208,.015);
}
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(370px, .85fr); gap: 3rem; align-items: center; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin: 2rem 0 1.55rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 50px; padding: .82rem 1.15rem; border-radius: 13px; border: 1px solid transparent; font-weight: 880; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--yellow); color: #10202e; box-shadow: 0 12px 30px rgba(111,168,208,.16); }
.btn-primary:hover { background: #a8c9df; }
.btn-secondary { background: rgba(255,255,255,.045); border-color: var(--line-strong); color: white; }
.btn-secondary:hover { background: rgba(255,255,255,.075); }
.btn-ghost { color: var(--cyan); border-color: rgba(25,184,255,.25); background: rgba(25,184,255,.055); }
.tag-row { display: flex; flex-wrap: wrap; gap: .62rem; }
.tag { border: 1px solid var(--line); background: rgba(255,255,255,.035); color: #d8e1ef; padding: .48rem .78rem; border-radius: 999px; font-size: .86rem; font-weight: 720; }

.logo-showcase { position: relative; z-index: 1; }
.logo-frame { background: linear-gradient(145deg, rgba(19,34,57,.96), rgba(5,10,18,.96)); border: 1px solid var(--line-strong); border-radius: 32px; padding: 1.05rem; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.logo-frame::before { content: ""; position: absolute; inset: -25% 35% auto -20%; height: 250px; background: radial-gradient(circle, rgba(111,168,208,.14), transparent 68%); }
.logo-frame img { border-radius: 23px; width: 100%; position: relative; }
.world-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; margin-top: .75rem; }
.world-strip div { border: 1px solid var(--line); background: rgba(255,255,255,.035); padding: .8rem; border-radius: 13px; text-align: center; }
.world-strip strong { display: block; color: var(--yellow); font-size: 1.03rem; }
.world-strip span { display: block; color: var(--muted); font-size: .78rem; }

.trust-bar { padding: 1.15rem 0; border-block: 1px solid var(--line); background: rgba(11,19,34,.75); }
.trust-inner { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; }
.trust-item { display: flex; align-items: center; gap: .72rem; min-height: 68px; padding: .75rem .85rem; }
.trust-icon { width: 38px; height: 38px; border-radius: 12px; background: rgba(111,168,208,.1); color: var(--yellow); display: grid; place-items: center; font-weight: 900; }
.trust-item strong { display: block; font-size: .94rem; }
.trust-item span { color: var(--muted); font-size: .79rem; }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.45rem; align-items: start; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.15rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.content-split { display: grid; grid-template-columns: 1.06fr .94fr; gap: 3rem; align-items: start; }

.card { background: linear-gradient(160deg, rgba(20,35,59,.95), rgba(10,18,31,.94)); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.45rem; box-shadow: 0 14px 40px rgba(0,0,0,.16); }
.card:hover { border-color: rgba(111,168,208,.24); }
.card .card-icon { width: 48px; height: 48px; border-radius: 15px; display: grid; place-items: center; margin-bottom: 1rem; color: #10202e; background: var(--yellow); font-weight: 950; font-size: 1.15rem; }
.card h3 { margin: 0 0 .55rem; font-size: 1.14rem; }
.card p { color: var(--muted); margin: 0; }
.card-link { display: inline-flex; margin-top: 1rem; color: var(--yellow); font-weight: 820; }

.number-card { min-height: 235px; position: relative; overflow: hidden; }
.number-card .number { position: absolute; right: 1rem; top: .5rem; color: rgba(255,255,255,.055); font-size: 4.5rem; font-weight: 950; line-height: 1; }
.number-card h3, .number-card p, .number-card .card-icon { position: relative; z-index: 1; }

.feature-list { display: grid; gap: .9rem; margin-top: 1.5rem; }
.feature { display: grid; grid-template-columns: 40px 1fr; gap: .9rem; align-items: start; padding: .95rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.026); }
.feature-badge { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: #10202e; background: var(--yellow); font-weight: 950; }
.feature h3 { margin: 0 0 .2rem; font-size: 1rem; }
.feature p { color: var(--muted); margin: 0; font-size: .92rem; }

.visual-panel { border: 1px solid var(--line); border-radius: 30px; min-height: 460px; background: linear-gradient(155deg, #14243c, #09101d); position: relative; overflow: hidden; padding: 2rem; }
.visual-panel::before, .visual-panel::after { content:""; position:absolute; border:1px solid rgba(25,184,255,.25); border-radius:50%; }
.visual-panel::before { width: 390px; height: 390px; right:-120px; top:-70px; }
.visual-panel::after { width: 280px; height: 280px; right:-55px; top:-5px; border-color:rgba(111,168,208,.26); }
.visual-panel .visual-content { position: relative; z-index: 1; max-width: 500px; }
.standard-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; margin-top: 1.4rem; }
.standard-chip { padding: .85rem; background: rgba(255,255,255,.055); border: 1px solid var(--line); border-radius: 13px; color: #dce8f7; font-weight: 820; }

.page-hero { padding: 5.1rem 0 3.8rem; border-bottom: 1px solid var(--line); overflow: hidden; }
.page-hero-inner { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.page-hero-badge { min-width: 220px; border-radius: 24px; border: 1px solid var(--line); background: rgba(255,255,255,.035); padding: 1.2rem; }
.page-hero-badge strong { display: block; color: var(--yellow); font-size: 1.1rem; }
.page-hero-badge span { color: var(--muted); font-size: .88rem; }

.pill-list { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.1rem; }
.pill { padding: .55rem .85rem; border-radius: 999px; color: #dce9f8; border: 1px solid var(--line); background: rgba(255,255,255,.035); font-weight: 730; font-size: .9rem; }

.sector-card { min-height: 225px; position: relative; overflow: hidden; }
.sector-card::after { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-40px; bottom:-45px; background:rgba(25,184,255,.07); border:1px solid rgba(25,184,255,.14); }
.sector-card:nth-child(2n)::after { background: rgba(111,168,208,.065); border-color: rgba(111,168,208,.16); }

.expert-card { display: flex; gap: 1rem; align-items: flex-start; }
.expert-avatar { flex: 0 0 58px; height: 58px; display: grid; place-items: center; border-radius: 17px; background: linear-gradient(135deg, var(--yellow), #dce8f0); color: #10202e; font-weight: 950; }
.expert-card h3 { margin-bottom: .2rem; }
.expert-card .role { color: var(--cyan); font-size: .86rem; font-weight: 800; }
.expert-card p { margin-top: .5rem; }

.steps { counter-reset: step; display: grid; gap: .9rem; }
.step { counter-increment: step; display: grid; grid-template-columns: 54px 1fr; gap: 1rem; padding: 1.1rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.025); }
.step::before { content: counter(step, decimal-leading-zero); width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; background: var(--yellow); color: #10202e; font-weight: 950; }
.step h3 { margin: .1rem 0 .2rem; }
.step p { margin: 0; color: var(--muted); }

.cta-band { display: flex; justify-content: space-between; align-items: center; gap: 2rem; border: 1px solid rgba(111,168,208,.28); background: linear-gradient(135deg, rgba(111,168,208,.11), rgba(25,184,255,.075), rgba(16,27,46,.88)); border-radius: 28px; padding: 2rem; box-shadow: var(--shadow); }
.cta-band h2 { margin: 0 0 .45rem; font-size: clamp(1.65rem, 2.8vw, 2.7rem); letter-spacing: -.025em; }
.cta-band p { margin: 0; color: var(--muted); max-width: 720px; }

.resource-card { min-height: 230px; }
.resource-meta { color: var(--cyan); text-transform: uppercase; font-size: .72rem; letter-spacing: .12em; font-weight: 900; }

.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 1.5rem; align-items: start; }
.contact-panel { display: grid; gap: 1rem; }
.contact-block { border: 1px solid var(--line); background: rgba(255,255,255,.03); border-radius: 18px; padding: 1rem; }
.contact-block strong { display: block; color: var(--yellow); margin-bottom: .2rem; }
.contact-block p, .contact-block address { color: var(--muted); margin: 0; font-style: normal; }
.contact-block a { color: #e6f6ff; }
.form-card { background: linear-gradient(160deg, rgba(20,35,59,.97), rgba(8,14,25,.96)); border: 1px solid var(--line); border-radius: 28px; padding: 1.5rem; box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.form-field { display: grid; gap: .38rem; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-weight: 800; font-size: .88rem; }
.form-field input, .form-field select, .form-field textarea { width: 100%; color: var(--ink); background: rgba(255,255,255,.045); border: 1px solid var(--line-strong); border-radius: 13px; padding: .9rem 1rem; outline: none; }
.form-field textarea { min-height: 165px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--cyan); box-shadow: 0 0 0 4px rgba(25,184,255,.08); }
.form-field select option { color: #111; }
.checkbox-row { display: flex; align-items: flex-start; gap: .65rem; color: var(--muted); font-size: .88rem; }
.form-status { min-height: 24px; margin-top: .75rem; font-weight: 760; }
.form-status.success { color: var(--teal); }
.form-status.error { color: var(--danger); }

.footer { background: #050912; border-top: 1px solid var(--line); padding: 4rem 0 1.3rem; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .7fr .9fr .9fr; gap: 1.7rem; }
.footer-logo { width: 110px; border-radius: 18px; border: 1px solid var(--line); margin-bottom: 1rem; }
.footer h3, .footer h4 { margin-top: 0; }
.footer p { color: var(--muted); }
.footer-links { display: grid; gap: .55rem; }
.footer-links a { color: var(--muted); }
.footer-links a:hover { color: var(--yellow); }
.contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; color: var(--muted); font-size: .91rem; }
.contact-list a { color: #e2f5ff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 1.25rem; margin-top: 2.4rem; border-top: 1px solid var(--line); color: var(--muted-2); font-size: .86rem; }

.notice { border-left: 4px solid var(--yellow); padding: 1rem 1.15rem; background: rgba(111,168,208,.065); border-radius: 0 14px 14px 0; color: var(--muted); }
.prose { max-width: 880px; }
.prose h2 { margin-top: 2.1rem; }
.prose p, .prose li { color: var(--muted); }

@media (max-width: 1120px) {
  .header-inner { min-height: 82px; }
  .brand-copy span { display: none; }
  .menu-toggle { display: inline-flex; }
  .main-nav { position: absolute; top: 100%; right: 1.1rem; left: 1.1rem; display: none; flex-direction: column; align-items: stretch; padding: .8rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(7,12,22,.98); box-shadow: var(--shadow); }
  .main-nav.open { display: flex; }
  .main-nav a { width: 100%; }
  .main-nav .nav-cta { margin-left: 0; }
  .hero-grid, .content-split, .contact-layout { grid-template-columns: 1fr; }
  .logo-showcase { max-width: 650px; }
  .grid-4 { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 800px) {
  .utility-socials { display: none; }
  .utility-inner { justify-content: center; }
  .hero { padding-top: 4.7rem; }
  .display-title { font-size: clamp(2.5rem, 12vw, 4.5rem); }
  .page-hero-inner { grid-template-columns: 1fr; }
  .page-hero-badge { max-width: 320px; }
  .grid-3, .grid-2, .trust-inner { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: auto; }
  .cta-band { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 560px) {
  .container { width: min(100% - 1.25rem, var(--container)); }
  .brand img { width: 57px; height: 57px; border-radius: 14px; }
  .brand-copy strong { font-size: 1.2rem; }
  .section { padding: 4.25rem 0; }
  .hero { padding: 4rem 0 3rem; }
  .grid-4, .footer-grid, .world-strip { grid-template-columns: 1fr; }
  .utility-links { gap: .48rem; font-size: .82rem; }
  .tag-row { gap: .45rem; }
}


/* =========================================================
   Raffinement visuel V4 — bleu, blanc et gris
   ========================================================= */
.mission-ticker {
  position: relative;
  z-index: 90;
  overflow: hidden;
  min-height: 38px;
  display: flex;
  align-items: center;
  color: #122333;
  background: linear-gradient(90deg, #eef3f7, #dce6ee 50%, #eef3f7);
  border-bottom: 1px solid rgba(16,32,46,.14);
  font-size: .9rem;
  font-weight: 850;
  letter-spacing: .025em;
}
.mission-ticker-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 5rem;
  padding-left: 100%;
  white-space: nowrap;
  animation: cpntics-ticker 28s linear infinite;
}
.mission-ticker-track span::before {
  content: "•";
  margin-right: 1rem;
  color: #527f9f;
}
@keyframes cpntics-ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .mission-ticker-track {
    width: 100%;
    justify-content: center;
    padding-left: 0;
    animation: none;
  }
  .mission-ticker-track span[aria-hidden="true"] { display: none; }
}

.utility-bar {
  background: #102235;
  color: #e8eff5;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.utility-links a,
.utility-socials a { color: #e8eff5; }
.lang-switch {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.10);
}
.lang-btn { color: #dbe6ee; }
.lang-btn.active {
  background: #edf3f7;
  color: #102235;
}
.social-chip { border-color: rgba(255,255,255,.22); }

.site-header { background: rgba(8,14,22,.93); }
.main-nav { flex-wrap: nowrap; }
.main-nav a,
.main-nav a span {
  white-space: nowrap;
  line-height: 1.15;
}
.main-nav a.active {
  color: #f4f8fb;
  background: rgba(111,168,208,.14);
  box-shadow: inset 0 -2px 0 #7eafd1;
}
.main-nav .nav-cta {
  background: #e5edf3;
  color: #102235;
}
.main-nav .nav-cta:hover {
  background: #cbdbe7;
  color: #102235;
}

.display-title .accent,
.eyebrow,
.card-link,
.footer-links a:hover,
.contact-block strong,
.page-hero-badge strong,
.world-strip strong {
  color: #8bb8d7;
}
.eyebrow::before { background: #8bb8d7; }
.btn-primary {
  color: #f5f8fb;
  background: linear-gradient(135deg, #426f91, #5d8eaf);
  box-shadow: 0 12px 30px rgba(66,111,145,.22);
}
.btn-primary:hover { background: linear-gradient(135deg, #527f9f, #70a0bf); }
.btn-ghost { color: #a9c9df; border-color: rgba(111,168,208,.30); background: rgba(111,168,208,.07); }

/* Les icônes ne sont plus enfermées dans des carrés. */
.card .card-icon {
  width: auto;
  height: auto;
  display: inline-flex;
  place-items: initial;
  margin-bottom: .7rem;
  padding: 0;
  color: #92bdd9;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 1.35rem;
  line-height: 1;
}
.trust-icon {
  width: auto;
  height: auto;
  min-width: 20px;
  color: #94bdd8;
  background: transparent;
  border-radius: 0;
  font-size: 1.15rem;
}
.feature {
  grid-template-columns: 34px 1fr;
  padding: .9rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
.feature-badge {
  width: 32px;
  height: 32px;
  color: #dce9f2;
  background: transparent;
  border: 1px solid rgba(139,184,215,.62);
  border-radius: 50%;
}
.expert-avatar {
  border-radius: 50%;
  color: #102235;
  background: linear-gradient(145deg, #eef3f7, #a9c4d7);
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}

/* Les programmes numérotés deviennent des blocs éditoriaux ouverts. */
.number-card {
  min-height: 0;
  padding: 1rem 1rem 1rem 1.35rem;
  overflow: visible;
  border: 0;
  border-left: 2px solid rgba(139,184,215,.62);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.number-card:hover { border-left-color: #dce8f0; }
.number-card .number {
  position: static;
  display: block;
  margin-bottom: .8rem;
  color: #8bb8d7;
  font-size: .76rem;
  line-height: 1;
  letter-spacing: .18em;
  font-weight: 900;
}
.number-card h3,
.number-card p,
.number-card .card-icon { position: static; }

.steps { gap: 0; }
.step {
  grid-template-columns: 48px 1fr;
  gap: 1rem;
  padding: 1.1rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
.step::before {
  width: auto;
  height: auto;
  display: block;
  padding: .25rem .9rem .25rem 0;
  color: #8bb8d7;
  background: transparent;
  border-right: 1px solid rgba(139,184,215,.36);
  border-radius: 0;
  font-size: .9rem;
  letter-spacing: .08em;
}

.card {
  background: linear-gradient(160deg, rgba(21,32,45,.88), rgba(10,17,25,.90));
  border-color: rgba(181,200,214,.11);
  box-shadow: 0 14px 34px rgba(0,0,0,.13);
}
.card:hover { border-color: rgba(139,184,215,.32); }
.sector-card:nth-child(2n)::after {
  background: rgba(142,173,196,.06);
  border-color: rgba(142,173,196,.15);
}
.visual-panel::after { border-color: rgba(142,173,196,.22); }
.logo-frame::before { background: radial-gradient(circle, rgba(111,168,208,.12), transparent 68%); }
.cta-band {
  border-color: rgba(139,184,215,.25);
  background: linear-gradient(135deg, rgba(74,113,142,.13), rgba(111,168,208,.075), rgba(16,27,46,.88));
}
.notice {
  border-left-color: #7daaca;
  background: rgba(111,168,208,.065);
}

/* Footer épuré, sans répétition du logo. */
.footer { background: #070c13; }
.footer-grid-refined {
  grid-template-columns: .9fr .65fr 1.15fr;
  gap: 3rem;
  align-items: start;
}
.footer-about h3 {
  margin-bottom: .7rem;
  color: #f5f8fb;
  font-size: 1.45rem;
}
.footer-primary-links {
  grid-template-columns: repeat(2, minmax(0,1fr));
  margin-top: 1.25rem;
}
.contact-list-emails { gap: .75rem; }
.international-addresses {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}
.address-item {
  display: grid;
  gap: .05rem;
  margin: 0;
  padding: 0 0 .9rem 1rem;
  color: var(--muted);
  font-style: normal;
  line-height: 1.45;
  border-left: 2px solid rgba(139,184,215,.48);
}
.address-item strong {
  display: block;
  margin-bottom: .2rem;
  color: #eef4f8;
}
.address-item span { display: block; }

@media (max-width: 1380px) {
  .brand-copy span { display: none; }
  .menu-toggle { display: inline-flex; }
  .main-nav {
    position: absolute;
    top: 100%;
    right: 1.1rem;
    left: 1.1rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: .8rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(7,12,22,.99);
    box-shadow: var(--shadow);
  }
  .main-nav.open { display: flex; }
  .main-nav a { width: 100%; }
  .main-nav .nav-cta { margin-left: 0; }
}
@media (max-width: 900px) {
  .footer-grid-refined { grid-template-columns: 1fr; gap: 2.2rem; }
  .footer-primary-links { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .mission-ticker { font-size: .78rem; min-height: 34px; }
  .mission-ticker-track { gap: 3rem; }
  .footer-primary-links { grid-template-columns: 1fr; }
}

/* Ajustements finaux : texte de la bande visible immédiatement et numéros uniques. */
.mission-ticker-track {
  padding-left: 1.5rem;
  animation-name: cpntics-ticker-visible;
}
@keyframes cpntics-ticker-visible {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - 2.5rem)); }
}
.number-card .card-icon { display: none; }
.card.number-card {
  background: transparent;
  border: 0;
  border-left: 2px solid rgba(139,184,215,.62);
  border-radius: 0;
  box-shadow: none;
}
.card.number-card:hover {
  border-left-color: #dce8f0;
  box-shadow: none;
}

/* =========================================================
   V5 — Thème institutionnel clair : blanc, gris et bleu
   ========================================================= */
:root {
  --ink: #14253a;
  --muted: #56697d;
  --muted-2: #75869a;
  --bg: #f5f7fa;
  --bg-2: #edf2f6;
  --surface: #ffffff;
  --surface-2: #f0f4f8;
  --surface-3: #e6edf4;
  --yellow: #1c67a3;
  --yellow-deep: #0f4f86;
  --cyan: #2d7fbd;
  --teal: #477e9f;
  --line: rgba(20, 54, 84, .12);
  --line-strong: rgba(20, 54, 84, .20);
  --shadow: 0 18px 48px rgba(31, 64, 92, .11);
  --container: 1480px;
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 87% 5%, rgba(45,127,189,.10), transparent 30rem),
    radial-gradient(circle at 0% 34%, rgba(74,130,168,.07), transparent 28rem),
    linear-gradient(180deg, #ffffff 0%, #f4f7fa 44%, #eef3f7 100%);
}
body::before {
  opacity: .30;
  background-image:
    linear-gradient(rgba(22,74,115,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22,74,115,.035) 1px, transparent 1px);
  mask-image: linear-gradient(to bottom, black, transparent 68%);
}
.surface-section {
  background: linear-gradient(180deg, rgba(232,239,245,.88), rgba(245,248,250,.95));
  border-block-color: var(--line);
}

/* Bande de mission : bleu institutionnel, sans jaune agressif. */
.mission-ticker {
  color: #ffffff;
  background: linear-gradient(90deg, #0d487b, #1f6ca5 50%, #0d487b);
  border-bottom-color: rgba(255,255,255,.18);
}
.mission-ticker-track span::before { color: #b9d9ef; }

.utility-bar {
  color: #17324b;
  background: #e8eef3;
  border-bottom: 1px solid rgba(17,72,113,.12);
}
.utility-links a,
.utility-socials a { color: #244761; }
.lang-switch {
  background: #ffffff;
  border-color: rgba(21,74,113,.15);
}
.lang-btn { color: #31546f; }
.lang-btn.active {
  color: #ffffff;
  background: #1c67a3;
}
.social-chip { border-color: rgba(21,74,113,.20); }

.site-header {
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(20,54,84,.12);
  box-shadow: 0 8px 28px rgba(38,74,104,.06);
}
.header-inner {
  min-height: 92px;
  gap: 1rem;
}
.brand {
  min-width: 190px;
  flex: 0 0 auto;
}
.brand img {
  width: 66px;
  height: 66px;
  border-color: rgba(20,54,84,.16);
  box-shadow: 0 10px 28px rgba(34,67,94,.12);
}
.brand-copy strong {
  color: #173550;
  font-size: 1.55rem;
}
.brand-copy > span { display: none; }

.main-nav {
  flex: 1 1 auto;
  justify-content: flex-end;
  gap: .15rem;
}
.main-nav a,
.main-nav a span {
  color: #314c63;
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
}
.main-nav a { padding: .72rem .62rem; }
.main-nav a:hover,
.main-nav a:focus-visible {
  color: #0f4f86;
  background: #edf4f9;
}
.main-nav a.active {
  color: #0f4f86;
  background: #e5f0f8;
  box-shadow: inset 0 -3px 0 #2d7fbd;
}
.main-nav .nav-cta {
  color: #ffffff;
  background: linear-gradient(135deg, #155b94, #2d7fbd);
}
.main-nav .nav-cta:hover {
  color: #ffffff;
  background: linear-gradient(135deg, #0f4f86, #236da7);
}
.menu-toggle {
  color: #173550;
  background: #f2f6f9;
  border-color: rgba(20,54,84,.18);
}

.eyebrow,
.display-title .accent,
.card-link,
.contact-block strong,
.page-hero-badge strong,
.world-strip strong { color: #1c67a3; }
.eyebrow::before { background: #2d7fbd; }
.display-title,
.page-title,
.section-title,
.cta-band h2 { color: #14253a; }
.section-intro,
.lead,
.card p,
.feature p,
.step p,
.cta-band p,
.contact-block p,
.contact-block address,
.footer p { color: var(--muted); }

.hero {
  background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(239,244,248,.74));
}
.hero::after {
  border-color: rgba(45,127,189,.14);
  box-shadow: inset 0 0 0 70px rgba(45,127,189,.018), inset 0 0 0 140px rgba(45,127,189,.012);
}
.btn-primary {
  color: #ffffff;
  background: linear-gradient(135deg, #155b94, #2d7fbd);
  box-shadow: 0 12px 28px rgba(21,91,148,.20);
}
.btn-primary:hover { background: linear-gradient(135deg, #0f4f86, #236da7); }
.btn-secondary {
  color: #173550;
  background: #ffffff;
  border-color: rgba(20,54,84,.18);
}
.btn-secondary:hover { background: #edf4f9; }
.btn-ghost {
  color: #155b94;
  border-color: rgba(21,91,148,.22);
  background: rgba(45,127,189,.06);
}
.tag,
.pill {
  color: #31536f;
  background: rgba(255,255,255,.82);
  border-color: rgba(20,54,84,.13);
}
.logo-frame {
  background: #ffffff;
  border-color: rgba(20,54,84,.14);
  box-shadow: var(--shadow);
}
.logo-frame::before { background: radial-gradient(circle, rgba(45,127,189,.10), transparent 68%); }
.world-strip div {
  background: #ffffff;
  border-color: rgba(20,54,84,.12);
}
.world-strip span { color: #66798b; }

.trust-bar {
  background: #ffffff;
  border-color: rgba(20,54,84,.10);
}
.trust-item { border-right: 1px solid rgba(20,54,84,.10); }
.trust-item:last-child { border-right: 0; }
.trust-icon { color: #1c67a3; }
.trust-item strong { color: #173550; }
.trust-item span { color: #63778a; }

.card,
.form-card,
.contact-block,
.page-hero-badge {
  background: rgba(255,255,255,.94);
  border-color: rgba(20,54,84,.12);
  box-shadow: 0 14px 36px rgba(31,64,92,.08);
}
.card:hover { border-color: rgba(45,127,189,.34); }
.card h3,
.feature h3,
.step h3 { color: #173550; }
.card .card-icon,
.trust-icon { color: #1f70ad; }
.feature {
  border-bottom-color: rgba(20,54,84,.12);
}
.feature-badge {
  color: #155b94;
  border-color: rgba(21,91,148,.45);
}
.number-card,
.card.number-card {
  border-left-color: rgba(28,103,163,.55);
}
.number-card:hover,
.card.number-card:hover { border-left-color: #155b94; }
.number-card .number,
.step::before { color: #1c67a3; }
.step { border-bottom-color: rgba(20,54,84,.12); }
.step::before { border-right-color: rgba(28,103,163,.25); }
.expert-avatar {
  color: #ffffff;
  background: linear-gradient(145deg, #155b94, #5a99c4);
}
.expert-card .role,
.resource-meta { color: #1f70ad; }
.sector-card::after,
.sector-card:nth-child(2n)::after {
  background: rgba(45,127,189,.055);
  border-color: rgba(45,127,189,.12);
}
.visual-panel {
  color: #ffffff;
  background: linear-gradient(155deg, #174d75, #0f3150);
  border-color: rgba(20,54,84,.18);
}
.visual-panel .section-intro,
.visual-panel p { color: #d7e5f0; }
.standard-chip {
  color: #ffffff;
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.16);
}
.page-hero {
  background: linear-gradient(180deg, #ffffff, #edf3f7);
  border-bottom-color: rgba(20,54,84,.11);
}
.cta-band {
  border-color: rgba(21,91,148,.20);
  background: linear-gradient(135deg, #e7f0f7, #f9fbfc);
  box-shadow: 0 16px 42px rgba(31,64,92,.09);
}
.notice {
  color: #405b72;
  background: #eaf2f8;
  border-left-color: #2d7fbd;
}
.prose p,
.prose li { color: #53697c; }

.form-field input,
.form-field select,
.form-field textarea {
  color: #14253a;
  background: #ffffff;
  border-color: rgba(20,54,84,.16);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: #2d7fbd;
  box-shadow: 0 0 0 4px rgba(45,127,189,.10);
}
.checkbox-row { color: #586c7f; }
.contact-block a { color: #155b94; }

/* Statistiques de réalisations sur la page d'accueil. */
.achievement-section {
  padding: 4rem 0;
  background: linear-gradient(135deg, #0f4f86, #216fa8);
  color: #ffffff;
}
.achievement-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}
.achievement-heading .eyebrow { color: #d9ecf8; margin-bottom: 0; }
.achievement-heading .eyebrow::before { background: #d9ecf8; }
.achievement-heading h2 {
  max-width: 720px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.7rem, 2.8vw, 2.75rem);
  line-height: 1.15;
}
.achievement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1rem;
}
.achievement-item {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 20px;
  backdrop-filter: blur(5px);
}
.achievement-item strong {
  color: #ffffff;
  font-size: clamp(2.4rem, 4vw, 4.2rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.achievement-item span {
  margin-top: .7rem;
  color: #dbeaf4;
  font-weight: 750;
}

/* Pied de page sans répétition du logo. */
.footer {
  color: #ffffff;
  background: #0e2f4a;
  border-top-color: rgba(255,255,255,.12);
  padding: 3.5rem 0 0;
}
.footer-main {
  display: grid;
  grid-template-columns: 1.15fr .8fr .75fr;
  gap: 3rem;
  align-items: start;
  padding-bottom: 2.5rem;
}
.footer h3,
.footer h4 { color: #ffffff; }
.footer p { color: #c5d5e2; }
.footer-links a,
.contact-list { color: #d5e2eb; }
.footer-links a:hover,
.contact-list a { color: #ffffff; }
.footer-primary-links {
  grid-template-columns: repeat(2, minmax(0,1fr));
  margin-top: 0;
}
.international-presence {
  padding: 1.7rem 0 1.9rem;
  color: #173550;
  background: #f7f9fb;
  border-top: 1px solid rgba(20,54,84,.10);
  border-bottom: 1px solid rgba(20,54,84,.10);
}
.international-presence h4 {
  margin: 0 0 1rem;
  color: #173550;
  font-size: 1.05rem;
}
.international-addresses {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 2rem;
}
.address-item {
  min-width: 0;
  display: block;
  margin: 0;
  padding: .25rem 1rem;
  color: #314e66;
  font-style: normal;
  line-height: 1.45;
  border-left: 3px solid #2d7fbd;
}
.address-item strong {
  display: block;
  margin-bottom: .25rem;
  color: #102f4b;
}
.address-item span { display: block; }
.footer-bottom {
  margin-top: 0;
  padding: 1.15rem 0;
  color: #b9cad7;
  border-top: 0;
}
.footer-bottom a { color: #dce8f0; }

/* Navigation complète sur ordinateur; menu mobile seulement quand nécessaire. */
@media (min-width: 1051px) {
  .menu-toggle { display: none !important; }
  .main-nav {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

@media (max-width: 1240px) and (min-width: 1051px) {
  .container { width: min(100% - 1.3rem, 1480px); }
  .brand { min-width: 168px; }
  .brand img { width: 58px; height: 58px; }
  .brand-copy strong { font-size: 1.35rem; }
  .main-nav a { padding-inline: .48rem; }
  .main-nav a,
  .main-nav a span { font-size: .70rem; letter-spacing: .02em; }
}

@media (max-width: 1050px) {
  .menu-toggle { display: inline-flex; }
  .main-nav {
    color: #173550;
    background: rgba(255,255,255,.99);
    border-color: rgba(20,54,84,.14);
  }
  .main-nav a,
  .main-nav a span { color: #314c63; font-size: .86rem; }
  .main-nav .nav-cta,
  .main-nav .nav-cta span { color: #ffffff; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-about { grid-column: 1 / -1; }
  .international-addresses { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .achievement-heading { display: block; }
  .achievement-heading .eyebrow { margin-bottom: .8rem; }
}

@media (max-width: 760px) {
  .achievement-grid,
  .international-addresses,
  .footer-main { grid-template-columns: 1fr; }
  .footer-about { grid-column: auto; }
  .trust-item { border-right: 0; border-bottom: 1px solid rgba(20,54,84,.10); }
  .trust-item:last-child { border-bottom: 0; }
}

/* =========================================================
   Version 6 — logos bilingues, cartes uniformes et détails
   ========================================================= */

/* Logo institutionnel horizontal dans l'en-tête. */
.brand {
  min-width: 330px;
  max-width: 380px;
}
.brand img.brand-logo-full {
  width: 100%;
  height: auto;
  max-height: 78px;
  object-fit: contain;
  object-position: left center;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.logo-frame img.language-logo {
  width: 100%;
  height: auto;
  max-height: 330px;
  object-fit: contain;
}

/* La bande commence par la signification complète de l'acronyme. */
.mission-ticker-track {
  animation-duration: 42s;
  gap: 5rem;
}

/* Cartes d'expertise uniformes sur la page d'accueil. */
.expert-uniform-grid {
  align-items: stretch;
  grid-auto-rows: 1fr;
}
.expert-uniform-grid .card {
  display: flex;
  min-height: 245px;
  height: 100%;
  flex-direction: column;
}
.expert-uniform-grid .card h3 {
  min-height: 3.2rem;
}
.expert-uniform-grid .card p {
  margin-top: auto;
}

/* Numéros plus grands et plus visibles dans les axes et programmes. */
.number-card .number,
.card.number-card .number {
  margin-bottom: 1rem;
  font-size: clamp(1.85rem, 2.4vw, 2.7rem);
  letter-spacing: .06em;
  font-weight: 900;
  color: #155b94;
}

/* Cinq implantations internationales sur une même ligne large. */
.international-addresses {
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 1.15rem;
}
.address-item {
  padding-inline: .85rem;
}

@media (max-width: 1320px) and (min-width: 1051px) {
  .brand { min-width: 270px; max-width: 290px; }
  .brand img.brand-logo-full { max-height: 68px; }
  .main-nav a,
  .main-nav a span { font-size: .67rem; }
}

@media (max-width: 1050px) {
  .brand { min-width: 250px; max-width: 310px; }
  .brand img.brand-logo-full { max-height: 68px; }
  .international-addresses { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .brand { min-width: 0; width: min(72vw, 290px); }
  .brand img.brand-logo-full { max-height: 62px; }
  .international-addresses { grid-template-columns: 1fr; }
  .expert-uniform-grid .card { min-height: 0; }
}

/* =========================================================
   V7 — Page d'accueil compacte fidèle à la maquette validée
   ========================================================= */
.home-compact {
  --home-blue: #0067b9;
  --home-blue-deep: #003f78;
  --home-navy: #102e50;
  --home-text: #173656;
  --home-muted: #536b83;
  --home-line: #d9e3ec;
  --home-soft: #f4f8fb;
  --home-white: #ffffff;
  color: var(--home-text);
  background: #fff;
  font-size: 15px;
  line-height: 1.45;
}
.home-compact::before { display: none; }
.home-compact .container { width: min(1540px, calc(100% - 3rem)); }

.home-utility {
  min-height: 38px;
  display: flex;
  align-items: center;
  color: #163c60;
  background: #f8fafc;
  border-bottom: 1px solid #dbe4ec;
  font-size: .78rem;
  font-weight: 760;
}
.home-utility-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.home-languages,
.home-utility-contact {
  display: flex;
  align-items: center;
  gap: .8rem;
}
.home-utility-contact a { color: #173c60; }
.home-utility .lang-btn {
  padding: 0;
  color: #173c60;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: .78rem;
}
.home-utility .lang-btn.active { color: var(--home-blue); background: transparent; }
.home-utility-contact a[aria-label] { color: #005aa7; font-size: .9rem; font-weight: 900; }

.home-header {
  position: sticky;
  top: 0;
  z-index: 70;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid #dce5ed;
  box-shadow: 0 5px 18px rgba(27,64,96,.05);
}
.home-header-inner {
  min-height: 136px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.home-brand {
  flex: 0 0 470px;
  width: 470px;
}
.home-brand img {
  width: 100%;
  height: 118px;
  object-fit: contain;
  object-position: left center;
}
.home-compact .home-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
  flex: 1 1 auto;
}
.home-compact .home-nav a,
.home-compact .home-nav a span {
  white-space: nowrap;
  color: #173656;
  text-transform: uppercase;
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .015em;
}
.home-compact .home-nav a {
  padding: .8rem .65rem;
  border-radius: 0;
  background: transparent;
}
.home-compact .home-nav a:hover,
.home-compact .home-nav a:focus-visible {
  color: var(--home-blue);
  background: transparent;
}
.home-compact .home-nav a.active {
  position: relative;
  color: var(--home-blue);
  background: transparent;
  box-shadow: none;
}
.home-compact .home-nav a.active::after {
  content: "";
  position: absolute;
  left: .65rem;
  right: .65rem;
  bottom: .3rem;
  height: 3px;
  background: var(--home-blue);
}
.home-compact .home-nav .home-search {
  font-size: 1.55rem;
  color: var(--home-blue);
  padding-right: 0;
}
.home-menu-toggle {
  color: #173656;
  background: #f5f8fb;
  border: 1px solid #d3dee8;
}

.home-mission-band {
  color: #fff;
  background: linear-gradient(90deg, #00539a, #0879c9, #00539a);
  border-bottom: 1px solid rgba(0,49,92,.15);
}
.home-mission-inner {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  text-align: center;
}
.home-mission-stack {
  padding-top: .45rem;
  padding-bottom: .25rem;
}
.home-mission-definition {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  font-weight: 700;
}
.home-mission-inner p {
  margin: 0;
  max-width: 1200px;
  font-size: 1.08rem;
  line-height: 1.35;
}
.home-info-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  font-weight: 900;
}
.home-marquee {
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.15);
  background: rgba(0,0,0,.08);
}
.home-marquee-track {
  width: max-content;
  min-width: 100%;
  display: flex;
  align-items: center;
  gap: 3rem;
  padding: .52rem 0;
  animation: homeMarquee 22s linear infinite;
}
.home-marquee-track span {
  white-space: nowrap;
  font-size: 1.02rem;
  font-weight: 400;
}
.home-marquee-track span::after {
  content: " • ";
  margin-left: 3rem;
  opacity: .75;
}
@keyframes homeMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.home-hero {
  padding: 2.4rem 0 1.4rem;
  background:
    radial-gradient(circle at 49% 20%, rgba(0,103,185,.07), transparent 24rem),
    linear-gradient(135deg, #ffffff 0%, #f7fafc 48%, #eef5fa 100%);
  border-bottom: 1px solid #dbe5ed;
}
.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(430px,.9fr) minmax(650px,1.4fr);
  gap: 3.5rem;
  align-items: center;
}
.home-hero-copy h1 {
  max-width: 570px;
  margin: 0 0 .85rem;
  color: #183b61;
  font-size: clamp(2rem, 3vw, 3.25rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}
.home-accent { display: block; color: var(--home-blue); }
.home-hero-copy > p {
  max-width: 590px;
  margin: 0;
  color: #526b84;
  font-size: 1rem;
  line-height: 1.48;
}
.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.15rem;
  margin-top: 1.55rem;
}
.home-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: .78rem 1.2rem;
  border-radius: 4px;
  text-transform: uppercase;
  font-size: .78rem;
  font-weight: 880;
  letter-spacing: .015em;
}
.home-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, #005aa7, #0a79c7);
  box-shadow: 0 8px 20px rgba(0,91,167,.17);
}
.home-btn-outline {
  color: #0065b5;
  background: #fff;
  border: 1px solid #0a75c2;
}
.home-stats {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: stretch;
}
.home-stat {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem 2rem;
  text-align: center;
  border-left: 1px solid #d6e1e9;
}
.home-stat:first-child { border-left: 0; }
.home-stat-icon {
  width: 52px;
  height: 52px;
  color: #0072c6;
}
.home-stat-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-stat strong {
  margin-top: .25rem;
  color: #0066b6;
  font-size: clamp(2.5rem, 4vw, 4.2rem);
  line-height: 1;
  letter-spacing: -.04em;
}
.home-stat span {
  max-width: 170px;
  margin-top: .5rem;
  color: #24445f;
  font-size: 1.05rem;
  font-weight: 750;
}

.home-expertise-wrap { margin-top: 1.75rem; }
.home-section-heading,
.home-approach-heading {
  text-align: center;
}
.home-section-heading h2,
.home-approach-heading h2 {
  display: inline-block;
  position: relative;
  margin: 0 0 1.4rem;
  color: #173656;
  font-size: 1.35rem;
}
.home-section-heading h2::after,
.home-approach-heading h2::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 3px;
  left: 50%;
  bottom: -.65rem;
  transform: translateX(-50%);
  background: #0a75c2;
}
.home-expertise-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1.4rem;
}
.home-expertise-card {
  min-height: 158px;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.35rem;
  background: rgba(255,255,255,.98);
  border: 1px solid #e2e9ef;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(32,73,106,.08);
}
.home-expertise-icon {
  min-height: 54px;
  display: grid;
  place-items: center;
}
.home-expertise-icon img {
  width: 44px;
  height: 44px;
  display: block;
  object-fit: contain;
}
.home-expertise-card strong {
  display: inline-block;
  margin-right: .5rem;
  color: #0768b4;
  font-size: 1.38rem;
}
.home-expertise-card h3 {
  display: inline;
  margin: 0;
  color: #173656;
  font-size: .96rem;
}
.home-expertise-card p {
  margin: .55rem 0 0;
  color: #526a82;
  font-size: .84rem;
  line-height: 1.45;
}

.home-approach {
  padding: .55rem 0 1.25rem;
  color: #fff;
  background: linear-gradient(120deg, #004b85, #0069af 52%, #004d88);
}
.home-approach-heading h2 {
  color: #fff;
  margin: 0 0 .9rem;
  padding-top: .1rem;
  font-size: 1.35rem;
}
.home-approach-heading h2::after { background: #7ec9ff; }
.home-approach-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
}
.home-axis {
  min-height: 140px;
  padding: .55rem 1.6rem .4rem;
  border-left: 1px solid rgba(255,255,255,.55);
}
.home-axis:first-child { border-left: 0; }
.home-axis-top {
  display: grid;
  grid-template-columns: 54px 68px 1fr;
  gap: .8rem;
  align-items: center;
}
.home-axis-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.82);
  border-radius: 50%;
}
.home-axis-icon img {
  width: 29px;
  height: 29px;
  display: block;
  object-fit: contain;
}
.home-axis strong {
  color: #fff;
  font-size: 2.8rem;
  line-height: 1;
}
.home-axis h3 {
  margin: 0;
  color: #fff;
  font-size: .98rem;
  line-height: 1.24;
}
.home-axis p {
  margin: .65rem 0 0 9.4rem;
  color: #e8f3fb;
  font-size: .82rem;
  line-height: 1.4;
}

.home-footer {
  color: #173656;
  background: #fff;
  border-top: 1px solid #d8e3eb;
  padding: 0;
}
.home-footer-grid {
  display: grid;
  grid-template-columns: 1.15fr repeat(5,1fr);
  gap: 0;
  align-items: stretch;
}
.home-footer-contact,
.home-footer-address {
  min-width: 0;
  margin: 0;
  padding: 1.05rem 1.2rem;
  border-left: 1px solid #d5e0e8;
  font-style: normal;
}
.home-footer-contact { border-left: 0; }
.home-footer h2 {
  margin: 0 0 .55rem;
  color: #183b5d;
  text-transform: uppercase;
  font-size: .78rem;
  line-height: 1.25;
  letter-spacing: .02em;
}
.home-footer-contact a,
.home-footer-address span {
  display: block;
  color: #354f67;
  font-size: .78rem;
  line-height: 1.52;
}
.home-footer-contact a:first-of-type { color: #075f9f; }
.home-footer-bottom {
  color: #fff;
  background: #102f50;
  font-size: .75rem;
}
.home-footer-bottom .container {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.home-footer-bottom a { color: #fff; }
.home-back-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 80;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #0874c2;
  border-radius: 50%;
  box-shadow: 0 8px 22px rgba(0,74,133,.28);
  font-size: 1.35rem;
}

@media (min-width: 1121px) {
  .home-compact .home-menu-toggle { display: none !important; }
  .home-compact .home-nav {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

@media (max-width: 1320px) and (min-width: 1121px) {
  .home-brand { flex-basis: 400px; width: 400px; }
  .home-brand img { height: 104px; }
  .home-compact .home-nav a,
  .home-compact .home-nav a span { font-size: .66rem; }
  .home-compact .home-nav a { padding-inline: .45rem; }
  .home-hero-grid { grid-template-columns: minmax(390px,.85fr) minmax(580px,1.25fr); gap: 2rem; }
  .home-axis { padding-inline: 1rem; }
  .home-axis-top { grid-template-columns: 48px 58px 1fr; gap: .55rem; }
  .home-axis strong { font-size: 2.4rem; }
  .home-axis p { margin-left: 7.1rem; }
}

@media (max-width: 1120px) {
  .home-utility-contact span { display: none; }
  .home-header-inner { min-height: 116px; }
  .home-brand { flex-basis: 370px; width: 370px; }
  .home-brand img { height: 96px; }
  .home-compact .home-menu-toggle { display: inline-flex; }
  .home-compact .home-nav {
    position: absolute;
    top: 100%;
    left: 1rem;
    right: 1rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: .75rem;
    background: #fff;
    border: 1px solid #d7e2eb;
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(26,65,97,.16);
  }
  .home-compact .home-nav.open { display: flex; }
  .home-compact .home-nav a { width: 100%; }
  .home-hero-grid { grid-template-columns: 1fr; }
  .home-hero-copy { max-width: 720px; }
  .home-expertise-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-approach-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-axis:nth-child(3) { border-left: 0; }
  .home-footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .home-footer-contact { border-bottom: 1px solid #d5e0e8; }
}

@media (max-width: 760px) {
  .home-compact .container { width: min(100% - 1.25rem, 1540px); }
  .home-utility-inner { justify-content: center; }
  .home-utility-contact { display: none; }
  .home-header-inner { min-height: 96px; }
  .home-brand { width: min(78vw,320px); flex-basis: min(78vw,320px); }
  .home-brand img { height: 86px; }
  .home-mission-inner { align-items: flex-start; padding-block: .75rem; text-align: left; }
  .home-mission-definition { justify-content: flex-start; align-items: flex-start; }
  .home-mission-inner p { font-size: .92rem; }
  .home-marquee-track { padding: .45rem 0; animation-duration: 18s; }
  .home-marquee-track span { font-size: .92rem; }
  .home-hero { padding-top: 1.7rem; }
  .home-stats { grid-template-columns: 1fr; }
  .home-stat { min-height: 135px; border-left: 0; border-top: 1px solid #d6e1e9; }
  .home-stat:first-child { border-top: 0; }
  .home-expertise-grid,
  .home-approach-grid,
  .home-footer-grid { grid-template-columns: 1fr; }
  .home-axis { border-left: 0; border-top: 1px solid rgba(255,255,255,.45); }
  .home-axis:first-child { border-top: 0; }
  .home-axis p { margin-left: 0; }
  .home-footer-contact,
  .home-footer-address { border-left: 0; border-top: 1px solid #d5e0e8; }
  .home-footer-contact { border-top: 0; }
  .home-footer-bottom .container { align-items: flex-start; flex-direction: column; padding-block: .75rem; }
}

@media (max-width: 460px) {
  .home-expertise-card { grid-template-columns: 44px 1fr; padding: 1rem; }
  .home-axis-top { grid-template-columns: 46px 58px 1fr; }
  .home-axis strong { font-size: 2.2rem; }
  .home-actions { flex-direction: column; }
  .home-btn { width: 100%; }
}

/* Ajustement compact pour retrouver les proportions de la maquette d'accueil. */
.home-compact .home-utility { min-height: 34px; }
.home-compact .home-mission-inner { min-height: 58px; }
.home-compact .home-mission-inner p { font-size: 1rem; }
.home-compact .home-hero { padding: 1.5rem 0 .7rem; }
.home-compact .home-stat { min-height: 165px; }
.home-compact .home-expertise-wrap { margin-top: .9rem; }
.home-compact .home-section-heading h2 { margin-bottom: 1.1rem; }
.home-compact .home-expertise-card { min-height: 140px; padding: 1rem 1.15rem; }
.home-compact .home-approach { padding: .25rem 0 .65rem; }
.home-compact .home-approach-heading h2 { margin-bottom: .55rem; }
.home-compact .home-axis { min-height: 122px; padding-top: .35rem; }
.home-compact .home-axis p { margin-top: .35rem; }
.home-compact .home-footer-contact,
.home-compact .home-footer-address { padding-top: .78rem; padding-bottom: .78rem; }

/* V9 — hiérarchie de la bande institutionnelle */
.home-mission-definition p,
.home-mission-definition p span { font-weight: 700; }
.home-marquee-track span { font-weight: 400; }
@media (prefers-reduced-motion: reduce) {
  .home-marquee-track { animation: none; transform: none; }
}

/* =========================================================
   V10 — Pages intérieures harmonisées avec la page d’accueil
   ========================================================= */
body.inner-page-compact {
  --ink: #173656;
  --muted: #5c7186;
  --muted-2: #7b8c9d;
  --bg: #f4f7fa;
  --bg-2: #eef4f8;
  --surface: #ffffff;
  --surface-2: #f7fafc;
  --surface-3: #eaf2f8;
  --yellow: #0b67b2;
  --yellow-deep: #084f8b;
  --cyan: #0b72c6;
  --teal: #4b91c6;
  --line: #d9e4ec;
  --line-strong: #c6d6e2;
  --shadow: 0 14px 34px rgba(24, 67, 103, .10);
  color: var(--ink);
  background: linear-gradient(180deg, #ffffff 0%, #f5f8fb 42%, #edf3f7 100%);
}
body.inner-page-compact::before { display: none; }

.inner-page-compact .home-header { position: sticky; top: 0; }
.inner-page-compact .home-mission-band { position: relative; }
.inner-page-compact .page-hero {
  padding: 4rem 0 3rem;
  color: #173656;
  background:
    radial-gradient(circle at 85% 20%, rgba(11,103,178,.09), transparent 24rem),
    linear-gradient(135deg, #ffffff 0%, #f5f9fc 58%, #eaf2f8 100%);
  border-bottom: 1px solid #d8e3eb;
}
.inner-page-compact .page-hero-inner { align-items: center; }
.inner-page-compact .page-title,
.inner-page-compact .section-title,
.inner-page-compact h1,
.inner-page-compact h2,
.inner-page-compact h3,
.inner-page-compact h4 { color: #173656; }
.inner-page-compact .lead,
.inner-page-compact .section-intro,
.inner-page-compact .card p,
.inner-page-compact .feature p,
.inner-page-compact .step p,
.inner-page-compact .prose p,
.inner-page-compact .prose li,
.inner-page-compact .contact-block p,
.inner-page-compact .contact-block address,
.inner-page-compact .checkbox-row { color: #5c7186; }
.inner-page-compact .eyebrow,
.inner-page-compact .page-hero-badge strong,
.inner-page-compact .card-link,
.inner-page-compact .resource-meta,
.inner-page-compact .expert-card .role,
.inner-page-compact .contact-block strong { color: #0b67b2; }
.inner-page-compact .eyebrow::before { background: #0b67b2; }
.inner-page-compact .page-hero-badge {
  min-width: 230px;
  color: #173656;
  background: rgba(255,255,255,.92);
  border-color: #d3e0e9;
  box-shadow: var(--shadow);
}
.inner-page-compact .page-hero-badge span { color: #64798d; }

.inner-page-compact .section { padding: 4.7rem 0; }
.inner-page-compact .section-sm { padding: 2.6rem 0; }
.inner-page-compact .surface-section {
  background: linear-gradient(180deg, #edf4f8, #f7fafc);
  border-block-color: #d9e4ec;
}
.inner-page-compact .card,
.inner-page-compact .feature,
.inner-page-compact .step,
.inner-page-compact .contact-block,
.inner-page-compact .form-card,
.inner-page-compact .logo-frame,
.inner-page-compact .visual-panel {
  color: #173656;
  background: #ffffff;
  border-color: #d7e2ea;
  box-shadow: var(--shadow);
}
.inner-page-compact .card:hover { border-color: #9fc3dd; }
.inner-page-compact .card .card-icon {
  color: #0b67b2;
  background: transparent;
}
.inner-page-compact .feature {
  border-radius: 14px;
  padding: 1rem 0;
  box-shadow: none;
  border-width: 0 0 1px;
}
.inner-page-compact .feature-badge {
  color: #ffffff;
  background: #0b67b2;
  border-radius: 50%;
}
.inner-page-compact .step {
  grid-template-columns: 72px 1fr;
  border-radius: 18px;
}
.inner-page-compact .step::before {
  width: 72px;
  height: 72px;
  color: #0b67b2;
  background: #e7f1f8;
  border: 1px solid #bed6e7;
  border-radius: 50%;
  font-size: 1.2rem;
}
.inner-page-compact .visual-panel {
  min-height: 430px;
  background: linear-gradient(145deg, #0b5c9e, #0b77c6);
}
.inner-page-compact .visual-panel h2,
.inner-page-compact .visual-panel h3,
.inner-page-compact .visual-panel p { color: #ffffff; }
.inner-page-compact .standard-chip {
  color: #173656;
  background: #ffffff;
  border-color: rgba(255,255,255,.75);
}
.inner-page-compact .logo-frame {
  padding: 1rem;
  overflow: hidden;
}
.inner-page-compact .logo-frame::before { background: radial-gradient(circle, rgba(11,103,178,.08), transparent 68%); }
.inner-page-compact .logo-frame img { background: #ffffff; }
.inner-page-compact .pill {
  color: #214866;
  background: #ffffff;
  border-color: #d5e1e9;
}
.inner-page-compact .expert-avatar {
  color: #ffffff;
  background: linear-gradient(135deg, #0b67b2, #5b9ac8);
}
.inner-page-compact .sector-card::after {
  background: rgba(11,103,178,.05);
  border-color: rgba(11,103,178,.12);
}
.inner-page-compact .number-card .number { color: rgba(11,103,178,.10); }
.inner-page-compact .cta-band {
  color: #ffffff;
  background: linear-gradient(135deg, #075a9c, #0b75c4);
  border-color: #0b67b2;
  box-shadow: 0 16px 36px rgba(11,103,178,.18);
}
.inner-page-compact .cta-band h2,
.inner-page-compact .cta-band p { color: #ffffff; }
.inner-page-compact .btn-primary {
  color: #ffffff;
  background: #0b67b2;
}
.inner-page-compact .btn-primary:hover { background: #084f8b; }
.inner-page-compact .btn-secondary,
.inner-page-compact .btn-ghost {
  color: #0b67b2;
  background: #ffffff;
  border-color: #a9c8de;
}
.inner-page-compact .form-card { padding: 1.6rem; }
.inner-page-compact .form-field input,
.inner-page-compact .form-field select,
.inner-page-compact .form-field textarea {
  color: #173656;
  background: #f8fbfd;
  border-color: #cbdbe6;
}
.inner-page-compact .form-field input:focus,
.inner-page-compact .form-field select:focus,
.inner-page-compact .form-field textarea:focus {
  border-color: #0b67b2;
  box-shadow: 0 0 0 4px rgba(11,103,178,.10);
}
.inner-page-compact .contact-block a { color: #0b67b2; }
.inner-page-compact .notice {
  color: #5c7186;
  background: #eef5fa;
  border-left-color: #0b67b2;
}
.inner-page-compact .prose { background: #ffffff; padding: 2rem; border: 1px solid #d7e2ea; border-radius: 20px; box-shadow: var(--shadow); }

@media (max-width: 1120px) {
  .inner-page-compact .home-header-inner { min-height: 112px; }
  .inner-page-compact .home-brand { width: 330px; flex-basis: 330px; }
  .inner-page-compact .home-brand img { height: 94px; }
}
@media (max-width: 760px) {
  .inner-page-compact .page-hero { padding: 2.8rem 0 2.2rem; }
  .inner-page-compact .section { padding: 3.5rem 0; }
  .inner-page-compact .prose { padding: 1.25rem; }
}

/* =========================================================
   V11 — Pages intérieures professionnelles
   Accueil et Expertise conservés sans modification structurelle.
   ========================================================= */
.professional-page {
  --pro-blue: #075fae;
  --pro-blue-dark: #0b3158;
  --pro-sky: #eaf5ff;
  --pro-cyan: #1aa4d9;
  --pro-ink: #102d4b;
  --pro-muted: #5c7188;
  --pro-line: #d9e5ef;
  --pro-soft: #f3f7fa;
  background: #fff;
  color: var(--pro-ink);
}
.professional-page .pro-inner-main { overflow: hidden; }
.professional-page .pro-inner-main h1,
.professional-page .pro-inner-main h2,
.professional-page .pro-inner-main h3 { color: var(--pro-ink); }
.professional-page .pro-inner-main p { color: var(--pro-muted); }
.professional-page .pro-kicker {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .85rem;
  color: var(--pro-blue);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.professional-page .pro-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, var(--pro-blue), var(--pro-cyan));
}
.professional-page .pro-lead {
  max-width: 760px;
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  line-height: 1.7;
}
.professional-page .pro-hero {
  position: relative;
  padding: clamp(3.5rem, 7vw, 6.6rem) 0;
  background:
    radial-gradient(circle at 88% 15%, rgba(26,164,217,.13), transparent 24rem),
    radial-gradient(circle at 18% 100%, rgba(7,95,174,.08), transparent 23rem),
    linear-gradient(135deg, #fff 0%, #f5f9fc 100%);
  border-bottom: 1px solid var(--pro-line);
}
.professional-page .pro-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 5px;
  background: linear-gradient(90deg, var(--pro-blue-dark), var(--pro-blue), var(--pro-cyan));
}
.professional-page .pro-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(360px,.75fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}
.professional-page .pro-hero-copy h1 {
  margin: 0 0 1.25rem;
  max-width: 850px;
  font-size: clamp(2.35rem, 4.4vw, 4.8rem);
  line-height: 1.04;
  letter-spacing: -.04em;
}
.professional-page .pro-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 1.7rem;
}
.professional-page .pro-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .8rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 9px;
  font-weight: 800;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.professional-page .pro-btn:hover,
.professional-page .pro-btn:focus-visible { transform: translateY(-2px); }
.professional-page .pro-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--pro-blue-dark), var(--pro-blue));
  box-shadow: 0 12px 25px rgba(7,95,174,.20);
}
.professional-page .pro-btn-light {
  color: var(--pro-blue-dark);
  background: #fff;
  border-color: #b9d2e5;
}
.professional-page .pro-btn-white {
  color: var(--pro-blue-dark);
  background: #fff;
}
.professional-page .pro-section { padding: clamp(4rem, 7vw, 7rem) 0; }
.professional-page .pro-soft { background: var(--pro-soft); }
.professional-page .pro-section-heading { margin-bottom: 2.4rem; }
.professional-page .pro-section-heading h2,
.professional-page .process-intro h2,
.professional-page .sector-method-copy h2,
.professional-page .faq-layout > div > h2,
.professional-page .form-heading h2 {
  margin: 0;
  font-size: clamp(1.9rem, 3.2vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.professional-page .pro-section-heading.centered {
  max-width: 900px;
  margin-inline: auto;
  text-align: center;
}
.professional-page .pro-section-heading.centered .pro-kicker { justify-content: center; }
.professional-page .split-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}
.professional-page .split-heading > p { max-width: 450px; margin: 0; }
.professional-page .pro-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  color: var(--pro-blue);
  background: var(--pro-sky);
  border: 1px solid #c8e0f2;
  border-radius: 14px;
}
.professional-page .pro-icon svg {
  width: 29px;
  height: 29px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.professional-page .pro-cta {
  padding: 1.25rem 0 3.5rem;
  background: #fff;
}
.professional-page .pro-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(1.8rem, 4vw, 3rem);
  color: #fff;
  background: linear-gradient(125deg, var(--pro-blue-dark), #086ebc 65%, var(--pro-cyan));
  border-radius: 22px;
  box-shadow: 0 22px 50px rgba(10,62,105,.20);
}
.professional-page .pro-cta-inner h2 { margin: 0 0 .35rem; color: #fff; }
.professional-page .pro-cta-inner p { margin: 0; color: rgba(255,255,255,.82); }

/* About */
.professional-page .orbit-card {
  position: relative;
  width: min(100%, 430px);
  aspect-ratio: 1;
  margin-inline: auto;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 20%, #eaf5ff 21% 42%, #f8fbfd 43% 100%);
  box-shadow: 0 30px 60px rgba(20,78,122,.16);
}
.professional-page .orbit-ring {
  position: absolute;
  inset: 14%;
  border: 1px solid #9dcced;
  border-radius: 50%;
}
.professional-page .orbit-two { inset: 28%; border-style: dashed; animation: proSpin 18s linear infinite reverse; }
.professional-page .orbit-one { animation: proSpin 24s linear infinite; }
.professional-page .orbit-center {
  position: absolute;
  inset: 35%;
  display: grid;
  place-content: center;
  text-align: center;
  color: #fff;
  background: linear-gradient(145deg, var(--pro-blue-dark), var(--pro-blue));
  border-radius: 50%;
  box-shadow: 0 12px 30px rgba(7,95,174,.30);
}
.professional-page .orbit-center strong { font-size: 1.1rem; }
.professional-page .orbit-center span { font-size: .75rem; opacity: .8; }
.professional-page .orbit-node {
  position: absolute;
  padding: .48rem .75rem;
  color: var(--pro-blue-dark);
  background: #fff;
  border: 1px solid #c7ddec;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(20,78,122,.12);
}
.professional-page .node-1 { top: 7%; left: 37%; }
.professional-page .node-2 { right: -2%; top: 45%; }
.professional-page .node-3 { bottom: 5%; left: 38%; }
.professional-page .node-4 { left: -5%; top: 47%; }
@keyframes proSpin { to { transform: rotate(360deg); } }
.professional-page .pillar-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1.25rem;
}
.professional-page .pillar-card {
  position: relative;
  min-height: 330px;
  padding: 1.8rem;
  background: #fff;
  border: 1px solid var(--pro-line);
  border-radius: 20px;
  box-shadow: 0 15px 35px rgba(27,74,111,.07);
  transition: transform .3s ease, box-shadow .3s ease;
}
.professional-page .pillar-card:hover { transform: translateY(-7px); box-shadow: 0 22px 45px rgba(27,74,111,.13); }
.professional-page .pillar-card.featured { color: #fff; background: linear-gradient(145deg, var(--pro-blue-dark), var(--pro-blue)); }
.professional-page .pillar-card.featured h3,
.professional-page .pillar-card.featured p,
.professional-page .pillar-card.featured .pillar-index { color: #fff; }
.professional-page .pillar-card.featured .pro-icon { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); }
.professional-page .pillar-index { position: absolute; top: 1.6rem; right: 1.6rem; color: #9ab5ca; font-weight: 900; }
.professional-page .pillar-card h3 { margin: 3rem 0 .65rem; font-size: 1.45rem; }
.professional-page .pillar-card p { line-height: 1.7; }
.professional-page .flip-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.professional-page .flip-card { min-height: 260px; perspective: 1000px; outline: none; }
.professional-page .flip-card-inner { position: relative; width: 100%; height: 100%; min-height: 260px; transition: transform .7s cubic-bezier(.2,.8,.2,1); transform-style: preserve-3d; }
.professional-page .flip-card:hover .flip-card-inner,
.professional-page .flip-card:focus .flip-card-inner { transform: rotateY(180deg); }
.professional-page .flip-card-front,
.professional-page .flip-card-back {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.7rem;
  backface-visibility: hidden;
  border: 1px solid var(--pro-line);
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(27,74,111,.08);
}
.professional-page .flip-card-front { align-items: center; text-align: center; background: #fff; }
.professional-page .flip-card-back { color: #fff; background: linear-gradient(145deg, var(--pro-blue-dark), var(--pro-blue)); transform: rotateY(180deg); }
.professional-page .flip-card-back p { color: rgba(255,255,255,.86); }
.professional-page .value-monogram { width: 78px; height: 78px; display:grid; place-items:center; margin-bottom:1rem; color:var(--pro-blue); background:var(--pro-sky); border-radius:50%; font-size:1.35rem; font-weight:900; }
.professional-page .process-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem,5vw,5rem); align-items:start; }
.professional-page .process-intro { position: sticky; top: 175px; }
.professional-page .process-intro p { line-height: 1.75; }
.professional-page .process-timeline { position: relative; }
.professional-page .process-timeline::before { content:""; position:absolute; left:36px; top:32px; bottom:32px; width:2px; background:linear-gradient(var(--pro-blue),#bcd9ec); }
.professional-page .process-step { position:relative; display:grid; grid-template-columns:74px 1fr; gap:1.25rem; padding:0 0 2.2rem; }
.professional-page .process-step > span { position:relative; z-index:1; width:74px; height:74px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--pro-blue-dark),var(--pro-blue)); border:7px solid #fff; border-radius:50%; font-size:1.2rem; font-weight:900; box-shadow:0 8px 24px rgba(7,95,174,.22); }
.professional-page .process-step > div { padding:1.1rem 1.3rem; background:#fff; border:1px solid var(--pro-line); border-radius:16px; box-shadow:0 10px 25px rgba(27,74,111,.06); }
.professional-page .process-step h3 { margin:0 0 .35rem; }
.professional-page .process-step p { margin:0; }

/* Programs */
.professional-page .program-dashboard { padding:1.8rem; background:#fff; border:1px solid var(--pro-line); border-radius:22px; box-shadow:0 25px 55px rgba(27,74,111,.13); }
.professional-page .dashboard-top { display:flex; justify-content:space-between; align-items:center; }
.professional-page .dashboard-top span { color:var(--pro-muted); font-weight:800; }
.professional-page .dashboard-top strong { color:var(--pro-blue); font-size:4rem; line-height:1; }
.professional-page .dashboard-bars { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; height:190px; align-items:end; padding:1.5rem 0; border-bottom:1px solid var(--pro-line); }
.professional-page .dashboard-bars i { display:block; height:var(--v); background:linear-gradient(180deg,var(--pro-cyan),var(--pro-blue)); border-radius:8px 8px 2px 2px; animation:barGrow 1.1s ease both; transform-origin:bottom; }
@keyframes barGrow { from { transform:scaleY(.05); } }
.professional-page .dashboard-labels { display:flex; justify-content:space-between; padding-top:1rem; color:var(--pro-muted); font-size:.78rem; }
.professional-page .program-bento { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.professional-page .program-card { position:relative; min-height:300px; padding:1.5rem; overflow:hidden; background:#fff; border:1px solid var(--pro-line); border-radius:18px; box-shadow:0 12px 28px rgba(27,74,111,.07); transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.professional-page .program-card::after { content:""; position:absolute; right:-45px; bottom:-45px; width:130px; height:130px; background:radial-gradient(circle,rgba(26,164,217,.16),transparent 70%); }
.professional-page .program-card:hover { transform:translateY(-6px); border-color:#9cc7e4; box-shadow:0 20px 38px rgba(27,74,111,.13); }
.professional-page .program-large { grid-row:span 2; min-height:616px; background:linear-gradient(160deg,#f9fcff,#eaf5ff); }
.professional-page .program-wide { grid-column:span 2; min-height:300px; }
.professional-page .program-code { position:absolute; top:1.45rem; right:1.45rem; color:#8aa7bd; font-weight:900; }
.professional-page .program-card h3 { margin:2rem 0 .7rem; font-size:1.3rem; }
.professional-page .program-card p { line-height:1.7; }
.professional-page .program-meta,.professional-page .sector-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.1rem; }
.professional-page .program-meta span,.professional-page .sector-tags span { padding:.35rem .65rem; color:var(--pro-blue-dark); background:#eaf5ff; border-radius:999px; font-size:.72rem; font-weight:800; }
.professional-page .service-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--pro-line); border-bottom:1px solid var(--pro-line); }
.professional-page .service-row article { padding:1.7rem; border-left:1px solid var(--pro-line); }
.professional-page .service-row article:first-child { border-left:0; }
.professional-page .service-row article > span { color:var(--pro-blue); font-size:1.8rem; font-weight:900; }
.professional-page .service-row h3 { margin:.8rem 0 .45rem; }
.professional-page .number-ribbon { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.professional-page .number-ribbon article { position:relative; padding:1.5rem 1.6rem 1.5rem 2rem; border-left:2px solid #8fc4e7; }
.professional-page .number-ribbon strong { display:block; margin-bottom:.65rem; color:var(--pro-blue); font-size:clamp(3rem,5vw,5.5rem); line-height:.85; letter-spacing:-.06em; }
.professional-page .number-ribbon h3 { margin:.7rem 0 .35rem; }

/* Sectors */
.professional-page .impact-wheel { position:relative; width:min(100%,430px); aspect-ratio:1; margin:auto; border:1px dashed #8cbfdf; border-radius:50%; animation:proSpin 50s linear infinite; }
.professional-page .impact-center { position:absolute; inset:35%; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--pro-blue-dark),var(--pro-blue)); border-radius:50%; font-size:1.5rem; font-weight:900; box-shadow:0 14px 32px rgba(7,95,174,.25); animation:proSpin 50s linear infinite reverse; }
.professional-page .impact-wheel > span { --r:43%; position:absolute; left:50%; top:50%; transform:rotate(var(--a)) translateX(var(--r)) rotate(calc(-1 * var(--a))); padding:.45rem .65rem; color:var(--pro-blue-dark); background:#fff; border:1px solid #c8deed; border-radius:999px; font-size:.72rem; font-weight:800; animation:proSpin 50s linear infinite reverse; }
.professional-page .sector-bento { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.professional-page .sector-pro-card { position:relative; min-height:285px; padding:1.45rem; overflow:hidden; background:#fff; border:1px solid var(--pro-line); border-radius:18px; transition:transform .3s ease,box-shadow .3s ease; }
.professional-page .sector-pro-card:hover { transform:translateY(-5px); box-shadow:0 18px 35px rgba(27,74,111,.12); }
.professional-page .sector-pro-card::before { content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px; background:linear-gradient(90deg,var(--pro-blue-dark),var(--pro-cyan)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.professional-page .sector-pro-card:hover::before { transform:scaleX(1); }
.professional-page .sector-pro-card h3 { margin:1.5rem 0 .55rem; }
.professional-page .sector-pro-card p { line-height:1.65; }
.professional-page .sector-featured { grid-column:span 2; background:linear-gradient(145deg,#fff,#edf7ff); }
.professional-page .sector-method { display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem; align-items:center; }
.professional-page .sector-method-steps { display:grid; gap:.8rem; }
.professional-page .sector-method-steps article { display:grid; grid-template-columns:80px 1fr; gap:1rem; padding:1.1rem; background:#fff; border:1px solid var(--pro-line); border-radius:15px; }
.professional-page .sector-method-steps strong { grid-row:span 2; align-self:center; color:var(--pro-blue); font-size:2.7rem; }
.professional-page .sector-method-steps h3,.professional-page .sector-method-steps p { margin:0; }

/* Resources */
.professional-page .resource-search-panel { padding:1.7rem; background:#fff; border:1px solid var(--pro-line); border-radius:20px; box-shadow:0 22px 45px rgba(27,74,111,.12); }
.professional-page .resource-search-panel label { display:block; margin-bottom:.7rem; color:var(--pro-ink); font-weight:850; }
.professional-page .resource-search-panel > div { display:flex; }
.professional-page .resource-search-panel input { width:100%; min-height:52px; padding:0 1rem; border:1px solid #bcd3e4; border-right:0; border-radius:10px 0 0 10px; font:inherit; }
.professional-page .resource-search-panel button { width:56px; color:#fff; background:var(--pro-blue); border:0; border-radius:0 10px 10px 0; font-size:1.4rem; }
.professional-page .resource-filter { display:flex; flex-wrap:wrap; gap:.65rem; margin-bottom:1.6rem; }
.professional-page .resource-filter button { padding:.65rem 1rem; color:var(--pro-blue-dark); background:#fff; border:1px solid #c9dce9; border-radius:999px; font-weight:800; }
.professional-page .resource-filter button.active { color:#fff; background:var(--pro-blue); border-color:var(--pro-blue); }
.professional-page .resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.professional-page .resource-card { position:relative; min-height:320px; display:flex; flex-direction:column; padding:1.5rem; background:#fff; border:1px solid var(--pro-line); border-radius:18px; box-shadow:0 12px 28px rgba(27,74,111,.06); transition:transform .3s ease,opacity .25s ease; }
.professional-page .resource-card:hover { transform:translateY(-6px); }
.professional-page .resource-card[hidden] { display:none; }
.professional-page .resource-featured { color:#fff; background:linear-gradient(145deg,var(--pro-blue-dark),var(--pro-blue)); }
.professional-page .resource-featured h3,.professional-page .resource-featured p,.professional-page .resource-featured a,.professional-page .resource-featured .resource-type { color:#fff; }
.professional-page .resource-featured .pro-icon { color:#fff; background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.25); }
.professional-page .resource-type { position:absolute; top:1.5rem; right:1.5rem; color:#7b96ab; font-size:.68rem; font-weight:900; letter-spacing:.1em; }
.professional-page .resource-card h3 { margin:1.5rem 0 .6rem; }
.professional-page .resource-card p { line-height:1.65; }
.professional-page .resource-card a { margin-top:auto; color:var(--pro-blue); font-weight:850; }
.professional-page .resource-empty { text-align:center; padding:2rem; }
.professional-page .newsletter-pro { padding:2rem 0 4rem; }
.professional-page .newsletter-pro-inner { display:grid; grid-template-columns:90px 1fr minmax(330px,.8fr); gap:1.5rem; align-items:center; padding:2rem; background:linear-gradient(145deg,#eaf5ff,#f9fcff); border:1px solid #c9deed; border-radius:22px; }
.professional-page .newsletter-visual { width:78px; height:78px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--pro-blue-dark),var(--pro-blue)); border-radius:18px; }
.professional-page .newsletter-visual svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:2; }
.professional-page .newsletter-pro-form { display:grid; grid-template-columns:1fr auto; gap:.65rem; }
.professional-page .newsletter-pro-form input { min-height:46px; padding:0 .9rem; border:1px solid #bcd3e4; border-radius:9px; font:inherit; }
.professional-page .newsletter-pro-form .form-status { grid-column:1/-1; margin:0; }

/* Membership */
.professional-page .membership-network { position:relative; width:min(100%,430px); aspect-ratio:1; margin:auto; background:radial-gradient(circle,#fff 0 24%,#eef7ff 25% 55%,transparent 56%); border:1px solid #c7deed; border-radius:50%; }
.professional-page .member-core { position:absolute; inset:34%; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--pro-blue-dark),var(--pro-blue)); border-radius:50%; font-weight:900; }
.professional-page .member-dot { position:absolute; padding:.45rem .7rem; color:var(--pro-blue-dark); background:#fff; border:1px solid #bad6e9; border-radius:999px; font-size:.72rem; font-weight:850; box-shadow:0 8px 18px rgba(27,74,111,.1); animation:floatDot 4s ease-in-out infinite; }
.professional-page .dot-a { top:8%; left:38%; }.professional-page .dot-b { right:0; top:46%; animation-delay:.6s }.professional-page .dot-c { bottom:6%; left:38%; animation-delay:1.2s }.professional-page .dot-d { left:-2%; top:46%; animation-delay:1.8s }
@keyframes floatDot { 50% { transform:translateY(-8px); } }
.professional-page .membership-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.professional-page .membership-card { display:flex; flex-direction:column; min-height:500px; padding:1.5rem; background:#fff; border:1px solid var(--pro-line); border-radius:18px; box-shadow:0 12px 28px rgba(27,74,111,.07); }
.professional-page .membership-card.featured { border:2px solid var(--pro-blue); box-shadow:0 18px 38px rgba(7,95,174,.14); transform:translateY(-10px); }
.professional-page .membership-label { margin:1.2rem 0 .4rem; color:var(--pro-blue); font-size:.68rem; font-weight:900; letter-spacing:.12em; }
.professional-page .membership-card h3 { margin:.3rem 0 .55rem; }
.professional-page .membership-card ul { padding-left:1.1rem; color:var(--pro-muted); }
.professional-page .membership-card li { margin:.45rem 0; }
.professional-page .membership-card a { margin-top:auto; color:var(--pro-blue); font-weight:850; }
.professional-page .membership-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; background:#fff; border:1px solid var(--pro-line); border-radius:18px; overflow:hidden; }
.professional-page .membership-process article { padding:1.6rem; border-left:1px solid var(--pro-line); }
.professional-page .membership-process article:first-child { border-left:0; }
.professional-page .membership-process strong { color:var(--pro-blue); font-size:3rem; }
.professional-page .faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem; }
.professional-page .pro-accordion details { margin-bottom:.75rem; background:#fff; border:1px solid var(--pro-line); border-radius:12px; overflow:hidden; }
.professional-page .pro-accordion summary { position:relative; padding:1.1rem 3rem 1.1rem 1.2rem; cursor:pointer; color:var(--pro-ink); font-weight:850; list-style:none; }
.professional-page .pro-accordion summary::after { content:"+"; position:absolute; right:1.2rem; top:.8rem; color:var(--pro-blue); font-size:1.5rem; }
.professional-page .pro-accordion details[open] summary::after { content:"−"; }
.professional-page .pro-accordion details p { padding:0 1.2rem 1.2rem; margin:0; }

/* Contact */
.professional-page .contact-response-card { padding:2rem; text-align:center; background:#fff; border:1px solid var(--pro-line); border-radius:20px; box-shadow:0 22px 45px rgba(27,74,111,.12); }
.professional-page .contact-response-card span { display:block; color:var(--pro-blue); font-weight:850; }
.professional-page .contact-response-card strong { display:block; margin:.4rem 0; color:var(--pro-blue-dark); font-size:clamp(4rem,8vw,7rem); line-height:1; }
.professional-page .contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:2rem; align-items:start; }
.professional-page .contact-sidebar { display:grid; gap:.85rem; }
.professional-page .contact-channel { display:grid; grid-template-columns:56px 1fr; gap:1rem; padding:1.2rem; background:#fff; border:1px solid var(--pro-line); border-radius:15px; }
.professional-page .contact-channel h3 { margin:0 0 .45rem; }
.professional-page .contact-channel a { display:block; margin:.2rem 0; color:var(--pro-blue); }
.professional-page .contact-channel p { margin:0; }
.professional-page .contact-form-shell { padding:2rem; background:#f6f9fb; border:1px solid var(--pro-line); border-radius:22px; }
.professional-page .form-heading { margin-bottom:1.5rem; }
.professional-page .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.professional-page .pro-contact-form label { display:grid; gap:.45rem; color:var(--pro-ink); font-weight:750; }
.professional-page .pro-contact-form input,.professional-page .pro-contact-form select,.professional-page .pro-contact-form textarea { width:100%; padding:.85rem .9rem; color:var(--pro-ink); background:#fff; border:1px solid #bfd2e0; border-radius:9px; font:inherit; }
.professional-page .pro-contact-form textarea { resize:vertical; }
.professional-page .form-full { grid-column:1/-1; }
.professional-page .form-consent { display:flex !important; grid-template-columns:auto 1fr; align-items:start; }
.professional-page .form-consent input { width:auto; margin-top:.3rem; }
.professional-page .office-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.8rem; }
.professional-page .office-grid article { padding:1.2rem; background:#fff; border:1px solid var(--pro-line); border-radius:15px; }
.professional-page .office-grid strong { display:block; margin:1rem 0 .45rem; color:var(--pro-blue-dark); }
.professional-page .office-grid p { margin:0; font-size:.9rem; line-height:1.6; }

/* Legal */
.professional-page .legal-pro-hero { padding-block:4.2rem; }
.professional-page .legal-hero-inner { max-width:900px; }
.professional-page .legal-hero-inner h1 { margin:0 0 .8rem; font-size:clamp(2.4rem,4.2vw,4.4rem); }
.professional-page .legal-layout { display:grid; grid-template-columns:260px 1fr; gap:3rem; align-items:start; }
.professional-page .legal-toc { position:sticky; top:175px; display:grid; gap:.35rem; padding:1.1rem; background:#f5f9fc; border:1px solid var(--pro-line); border-radius:14px; }
.professional-page .legal-toc strong { margin-bottom:.5rem; color:var(--pro-ink); }
.professional-page .legal-toc a { padding:.6rem .65rem; color:var(--pro-muted); border-radius:7px; font-size:.88rem; }
.professional-page .legal-toc a:hover { color:var(--pro-blue); background:#e7f3fb; }
.professional-page .legal-document { display:grid; gap:1rem; }
.professional-page .legal-document > section { position:relative; padding:1.8rem 1.8rem 1.8rem 5rem; background:#fff; border:1px solid var(--pro-line); border-radius:16px; box-shadow:0 10px 24px rgba(27,74,111,.05); }
.professional-page .legal-document > section > span:first-child { position:absolute; left:1.5rem; top:1.65rem; color:var(--pro-blue); font-size:1.25rem; font-weight:900; }
.professional-page .legal-document h2 { margin:0 0 .75rem; font-size:1.45rem; }
.professional-page .legal-document p { line-height:1.75; }
.professional-page .legal-document ul { color:var(--pro-muted); line-height:1.75; }

/* Reveal animation */
.js-enabled .professional-page .reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.js-enabled .professional-page .reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1120px) {
  .professional-page .pro-hero-grid,
  .professional-page .process-layout,
  .professional-page .sector-method,
  .professional-page .faq-layout,
  .professional-page .contact-layout { grid-template-columns:1fr; }
  .professional-page .process-intro,.professional-page .legal-toc { position:static; }
  .professional-page .pillar-grid,.professional-page .program-bento,.professional-page .resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .professional-page .program-large { grid-row:auto; min-height:300px; }
  .professional-page .program-wide { grid-column:auto; }
  .professional-page .sector-bento { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .professional-page .flip-grid,.professional-page .membership-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .professional-page .membership-card.featured { transform:none; }
  .professional-page .office-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .professional-page .legal-layout { grid-template-columns:1fr; }
  .professional-page .newsletter-pro-inner { grid-template-columns:80px 1fr; }
  .professional-page .newsletter-pro-form { grid-column:1/-1; }
}
@media (max-width: 760px) {
  .professional-page .pro-hero { padding-block:3.2rem; }
  .professional-page .pro-hero-grid { grid-template-columns:1fr; }
  .professional-page .orbit-card,.professional-page .impact-wheel,.professional-page .membership-network { width:min(88vw,350px); }
  .professional-page .pillar-grid,.professional-page .program-bento,.professional-page .sector-bento,.professional-page .resource-grid,.professional-page .flip-grid,.professional-page .membership-grid,.professional-page .office-grid { grid-template-columns:1fr; }
  .professional-page .sector-featured { grid-column:auto; }
  .professional-page .split-heading,.professional-page .pro-cta-inner { align-items:flex-start; flex-direction:column; }
  .professional-page .service-row,.professional-page .number-ribbon,.professional-page .membership-process { grid-template-columns:1fr; }
  .professional-page .service-row article,.professional-page .membership-process article { border-left:0; border-top:1px solid var(--pro-line); }
  .professional-page .service-row article:first-child,.professional-page .membership-process article:first-child { border-top:0; }
  .professional-page .number-ribbon article { border-left:0; border-top:2px solid #8fc4e7; }
  .professional-page .newsletter-pro-inner { grid-template-columns:1fr; }
  .professional-page .newsletter-pro-form { grid-template-columns:1fr; }
  .professional-page .form-grid { grid-template-columns:1fr; }
  .professional-page .form-full { grid-column:auto; }
  .professional-page .legal-document > section { padding:1.5rem 1.2rem 1.5rem 3.7rem; }
}
@media (prefers-reduced-motion: reduce) {
  .js-enabled .professional-page .reveal { opacity:1; transform:none; transition:none; }
  .professional-page .orbit-ring,.professional-page .impact-wheel,.professional-page .impact-wheel > span,.professional-page .member-dot,.professional-page .dashboard-bars i { animation:none !important; }
  .professional-page .flip-card-inner { transition:none; }
}

/* =========================================================
   V12 — Navigation interactive inspirée des interfaces média
   ========================================================= */

.home-nav a:not([aria-label="Recherche"]) {
  --nav-move-x: 0px;
  --nav-move-y: 0px;
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: visible;
  transform: translate3d(var(--nav-move-x), var(--nav-move-y), 0);
  transition:
    color .26s ease,
    transform .34s cubic-bezier(.2,.8,.2,1),
    text-shadow .26s ease;
  will-change: transform;
}

.home-nav a:not([aria-label="Recherche"])::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: .30rem .12rem;
  border: 1px solid rgba(0, 103, 185, .12);
  border-radius: 999px;
  background:
    linear-gradient(135deg, rgba(224, 242, 255, .88), rgba(244, 249, 253, .64));
  box-shadow: 0 10px 24px rgba(0, 82, 148, 0);
  opacity: 0;
  transform: scale(.78, .72);
  transition:
    opacity .25s ease,
    transform .34s cubic-bezier(.2,.8,.2,1),
    box-shadow .34s ease;
}

.home-nav a:not([aria-label="Recherche"])::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: .18rem;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #075fa8, #28a3df);
  opacity: 0;
  transition:
    left .34s cubic-bezier(.2,.8,.2,1),
    right .34s cubic-bezier(.2,.8,.2,1),
    opacity .2s ease;
}

.home-nav a:not([aria-label="Recherche"]) span {
  position: relative;
  display: inline-block;
  transform-origin: center;
  transition:
    transform .34s cubic-bezier(.2,.8,.2,1),
    opacity .24s ease,
    letter-spacing .34s ease;
}

.home-nav a.active:not([aria-label="Recherche"])::after {
  left: .65rem;
  right: .65rem;
  opacity: 1;
}

.home-nav a.active:not([aria-label="Recherche"])::before {
  opacity: .28;
  transform: scale(1);
}

.home-nav a[aria-label="Recherche"] {
  position: relative;
  transition:
    color .25s ease,
    transform .32s cubic-bezier(.2,.8,.2,1),
    filter .25s ease;
}

@media (hover: hover) and (pointer: fine) {
  .home-nav:hover a:not(:hover):not(.active) span {
    opacity: .62;
    transform: scale(.965);
  }

  .home-nav a:not([aria-label="Recherche"]):hover,
  .home-nav a:not([aria-label="Recherche"]):focus-visible {
    color: #005fa9 !important;
    transform: translate3d(var(--nav-move-x), calc(var(--nav-move-y) - 3px), 0) scale(1.035);
    text-shadow: 0 8px 18px rgba(0, 86, 153, .12);
  }

  .home-nav a:not([aria-label="Recherche"]):hover::before,
  .home-nav a:not([aria-label="Recherche"]):focus-visible::before {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 10px 24px rgba(0, 82, 148, .12);
  }

  .home-nav a:not([aria-label="Recherche"]):hover::after,
  .home-nav a:not([aria-label="Recherche"]):focus-visible::after {
    left: .65rem;
    right: .65rem;
    opacity: 1;
  }

  .home-nav a:not([aria-label="Recherche"]):hover span,
  .home-nav a:not([aria-label="Recherche"]):focus-visible span {
    transform: translateY(-1px) scale(1.025);
    letter-spacing: .035em;
    opacity: 1;
  }

  .home-nav a[aria-label="Recherche"]:hover,
  .home-nav a[aria-label="Recherche"]:focus-visible {
    color: #0085cf !important;
    transform: translateY(-3px) rotate(-8deg) scale(1.16);
    filter: drop-shadow(0 7px 10px rgba(0, 94, 166, .22));
  }
}

/* Le clavier conserve un indicateur clair. */
.home-nav a:focus-visible {
  outline: 2px solid #2f9ed6;
  outline-offset: 4px;
}

/* Sur mobile, les liens restent simples, stables et faciles à toucher. */
@media (max-width: 1120px) {
  .home-nav a:not([aria-label="Recherche"]) {
    transform: none !important;
  }

  .home-nav a:not([aria-label="Recherche"])::before {
    inset: .18rem .12rem;
    border-radius: 10px;
  }

  .home-nav a:not([aria-label="Recherche"])::after {
    left: .7rem;
    right: auto;
    bottom: .28rem;
    width: 0;
  }

  .home-nav a.active:not([aria-label="Recherche"])::after,
  .home-nav a:not([aria-label="Recherche"]):focus-visible::after {
    left: .7rem;
    right: auto;
    width: 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-nav a,
  .home-nav a::before,
  .home-nav a::after,
  .home-nav a span {
    animation: none !important;
    transition-duration: .01ms !important;
    transform: none !important;
  }
}

/* =========================================================
   V13 — En-tête statique, arrière-plan institutionnel,
   assistant de bienvenue et statistiques
   ========================================================= */

/* En-tête et bannière strictement identiques sur toutes les pages. */
body.home-compact .home-header-inner {
  min-height: 132px;
}
body.home-compact .home-brand {
  flex: 0 0 430px;
  width: 430px;
}
body.home-compact .home-brand img {
  width: 100%;
  height: 112px;
  object-fit: contain;
  object-position: left center;
}
body.home-compact .home-mission-inner {
  min-height: 58px;
}
body.home-compact .home-mission-definition p {
  font-size: 1rem;
}


/* Assistant de bienvenue. */
.cpntics-chat-launcher {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 120;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #075fae, #0a8fd3);
  box-shadow: 0 16px 34px rgba(7,95,174,.28);
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}
.cpntics-chat-launcher:hover,
.cpntics-chat-launcher:focus-visible {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 20px 42px rgba(7,95,174,.34);
}
.cpntics-chat-launcher svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}
.cpntics-chat-panel {
  position: fixed;
  right: 1.25rem;
  bottom: 5.6rem;
  z-index: 121;
  width: min(410px, calc(100vw - 2rem));
  max-height: min(720px, calc(100vh - 7rem));
  display: none;
  overflow: auto;
  color: #173656;
  background: #fff;
  border: 1px solid #d5e2ec;
  border-radius: 22px;
  box-shadow: 0 24px 64px rgba(12,51,85,.24);
}
.cpntics-chat-panel.open {
  display: block;
  animation: cpnticsChatOpen .32s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes cpnticsChatOpen {
  from { opacity: 0; transform: translateY(18px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.cpntics-chat-head {
  position: relative;
  padding: 1.2rem 3.4rem 1.1rem 1.25rem;
  color: #fff;
  background:
    radial-gradient(circle at 90% 15%, rgba(255,255,255,.18), transparent 7rem),
    linear-gradient(135deg, #074f8e, #0879c9);
  border-radius: 21px 21px 0 0;
}
.cpntics-chat-head strong {
  display: block;
  font-size: 1.16rem;
}
.cpntics-chat-head span {
  display: block;
  margin-top: .28rem;
  color: rgba(255,255,255,.82);
  font-size: .9rem;
  line-height: 1.45;
}
.cpntics-chat-close {
  position: absolute;
  top: .85rem;
  right: .85rem;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.08);
  font-size: 1.2rem;
  cursor: pointer;
}
.cpntics-chat-body {
  padding: 1.2rem;
}
.cpntics-chat-intro {
  margin: 0 0 1rem;
  color: #5c7186;
  font-size: .94rem;
}
.cpntics-chat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}
.cpntics-chat-field {
  display: grid;
  gap: .38rem;
}
.cpntics-chat-field.full {
  grid-column: 1 / -1;
}
.cpntics-chat-field label {
  color: #173656;
  font-size: .82rem;
  font-weight: 800;
}
.cpntics-chat-field input,
.cpntics-chat-field select,
.cpntics-chat-field textarea {
  width: 100%;
  min-height: 44px;
  padding: .75rem .82rem;
  color: #173656;
  background: #f7fafc;
  border: 1px solid #cbdbe6;
  border-radius: 10px;
  font: inherit;
}
.cpntics-chat-field textarea {
  min-height: 84px;
  resize: vertical;
}
.cpntics-chat-field input:focus,
.cpntics-chat-field select:focus,
.cpntics-chat-field textarea:focus {
  outline: 0;
  border-color: #0b67b2;
  box-shadow: 0 0 0 4px rgba(11,103,178,.10);
}
.cpntics-chat-consent {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: .95rem 0;
  color: #60758a;
  font-size: .79rem;
  line-height: 1.4;
}
.cpntics-chat-consent input {
  margin-top: .2rem;
}
.cpntics-chat-submit {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, #075fae, #0b7bc6);
  font-weight: 850;
  cursor: pointer;
}
.cpntics-chat-submit:disabled {
  opacity: .65;
  cursor: wait;
}
.cpntics-chat-status {
  display: none;
  margin: .85rem 0 0;
  padding: .75rem .85rem;
  border-radius: 9px;
  font-size: .84rem;
}
.cpntics-chat-status.show { display: block; }
.cpntics-chat-status.success { color: #0c5c3a; background: #e9f7f0; }
.cpntics-chat-status.error { color: #8c2f2f; background: #fff0f0; }

/* Tableau local des statistiques et état de la connexion GA4. */
.analytics-dashboard {
  display: grid;
  gap: 1.4rem;
}
.analytics-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1rem;
}
.analytics-kpi {
  padding: 1.35rem;
  background: #fff;
  border: 1px solid #d7e3ec;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(24,67,103,.08);
}
.analytics-kpi strong {
  display: block;
  color: #075fae;
  font-size: 2rem;
}
.analytics-kpi span {
  color: #60758a;
  font-size: .88rem;
}
.analytics-table-wrap {
  overflow: auto;
  background: #fff;
  border: 1px solid #d7e3ec;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(24,67,103,.08);
}
.analytics-table {
  width: 100%;
  border-collapse: collapse;
}
.analytics-table th,
.analytics-table td {
  padding: .9rem 1rem;
  border-bottom: 1px solid #e2ebf1;
  text-align: left;
}
.analytics-table th {
  color: #173656;
  background: #f5f9fc;
}
.analytics-status-card {
  padding: 1.4rem;
  background: linear-gradient(135deg, #075a9c, #0b75c4);
  border-radius: 18px;
  color: #fff;
}
.analytics-status-card h2,
.analytics-status-card p { color: #fff; }
.analytics-code {
  overflow-x: auto;
  padding: 1rem;
  color: #dceeff;
  background: rgba(0,0,0,.22);
  border-radius: 10px;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .86rem;
}

@media (max-width: 1320px) and (min-width: 1121px) {
  body.home-compact .home-brand {
    flex-basis: 360px;
    width: 360px;
  }
  body.home-compact .home-brand img { height: 108px; }
}
@media (max-width: 1120px) {
  body.home-compact .home-header-inner { min-height: 124px; }
  body.home-compact .home-brand {
    flex-basis: 345px;
    width: 345px;
  }
  body.home-compact .home-brand img { height: 98px; }
  .analytics-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  body.home-compact .home-header-inner { min-height: 96px; }
  body.home-compact .home-brand {
    width: min(78vw,320px);
    flex-basis: min(78vw,320px);
  }
  body.home-compact .home-brand img { height: 86px; }
  body.inner-page-compact .pro-hero::before,
  body.inner-page-compact .page-hero::before {
    right: -5rem;
    width: 360px;
    opacity: .08;
  }
  .cpntics-chat-panel {
    right: .75rem;
    bottom: 5rem;
    width: calc(100vw - 1.5rem);
  }
  .cpntics-chat-launcher {
    right: .85rem;
    bottom: .85rem;
  }
  .cpntics-chat-grid { grid-template-columns: 1fr; }
  .cpntics-chat-field.full { grid-column: auto; }
  .analytics-kpis { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .cpntics-chat-panel.open { animation: none; }
  .cpntics-chat-launcher { transition: none; }
}


/* =========================================================
   V14 — Pages internes épurées et visualisation programmes
   ========================================================= */

/* La bande institutionnelle défilante est réservée à l'accueil. */
body.inner-page-compact .home-mission-band { display: none !important; }

/* Aucun logo ni filigrane en arrière-plan des pages internes. */
body.inner-page-compact .pro-hero::before,
body.inner-page-compact .page-hero::before {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Carte professionnelle du portefeuille de programmes. */
.professional-page .program-dashboard-v14 {
  position: relative;
  min-height: 540px;
  padding: 1.6rem 1.6rem 1.35rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 8%, rgba(31,151,220,.12), transparent 14rem),
    linear-gradient(160deg, #ffffff 0%, #f8fbfe 58%, #eef6fb 100%);
  border: 1px solid #cbdde9;
  border-radius: 24px;
  box-shadow: 0 28px 65px rgba(23,70,107,.15);
}
.professional-page .program-dashboard-v14::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(6,96,170,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(6,96,170,.045) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 78%, transparent);
}
.professional-page .program-dashboard-v14 > * {
  position: relative;
  z-index: 1;
}
.professional-page .program-dashboard-v14 .dashboard-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #d5e3ec;
}
.professional-page .dashboard-title-group {
  display: grid;
  gap: .25rem;
}
.professional-page .dashboard-overline {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #173656;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: .03em;
}
.professional-page .dashboard-overline::before {
  content: "";
  width: 4px;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(180deg, #075fae, #27a8df);
}
.professional-page .dashboard-title-group small {
  padding-left: .55rem;
  color: #6a7f92;
  font-size: .78rem;
  font-weight: 700;
}
.professional-page .dashboard-count {
  display: grid;
  justify-items: end;
  line-height: 1;
}
.professional-page .dashboard-count > span {
  color: #075fae;
  font-size: clamp(3.8rem, 7vw, 5.9rem);
  font-weight: 950;
  letter-spacing: -.06em;
  text-shadow: 0 10px 24px rgba(7,95,174,.13);
}
.professional-page .dashboard-count small {
  margin-top: .15rem;
  color: #6b8093;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.professional-page .dashboard-chart {
  height: 330px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  align-items: end;
  gap: 1rem;
  padding: 1.35rem 0 0;
}
.professional-page .dashboard-pillar {
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0,1fr) auto auto;
  align-items: end;
  gap: .35rem;
  text-align: center;
}
.professional-page .dashboard-bar {
  position: relative;
  width: min(100%, 104px);
  height: var(--v);
  min-height: 105px;
  margin: auto auto 0;
  overflow: hidden;
  border: 1px solid rgba(5,100,176,.16);
  border-radius: 18px 18px 8px 8px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.24), transparent 28%),
    linear-gradient(180deg, #34b5e8 0%, #098bcf 48%, #0757ad 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 14px 28px rgba(7,95,174,.17);
  transform-origin: bottom;
  animation: dashboardBarRise .9s cubic-bezier(.2,.8,.2,1) var(--delay) both;
  transition: transform .28s ease, box-shadow .28s ease, filter .28s ease;
}
.professional-page .dashboard-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.34) 42%, transparent 62%);
  transform: translateX(-140%);
  animation: dashboardShine 4.8s ease-in-out calc(var(--delay) + .9s) infinite;
}
.professional-page .dashboard-bar-index {
  position: absolute;
  top: .65rem;
  left: 50%;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #fff;
  background: rgba(0,58,116,.28);
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 50%;
  font-size: .74rem;
  font-weight: 900;
  backdrop-filter: blur(5px);
}
.professional-page .dashboard-pillar h3 {
  margin: .2rem 0 0;
  color: #173656;
  font-size: .9rem;
}
.professional-page .dashboard-pillar p {
  min-height: 2.3em;
  margin: 0;
  color: #6a7f92;
  font-size: .68rem;
  line-height: 1.35;
}
.professional-page .dashboard-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #d5e3ec;
}
.professional-page .dashboard-footer span {
  padding: .38rem .7rem;
  color: #31546f;
  background: rgba(233,243,250,.78);
  border: 1px solid #d3e3ed;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
}
@keyframes dashboardBarRise {
  from { opacity: 0; transform: scaleY(.08) translateY(12px); }
  to { opacity: 1; transform: scaleY(1) translateY(0); }
}
@keyframes dashboardShine {
  0%, 62% { transform: translateX(-140%); }
  82%, 100% { transform: translateX(140%); }
}
@media (hover:hover) and (pointer:fine) {
  .professional-page .dashboard-pillar:hover .dashboard-bar {
    transform: translateY(-7px) scale(1.025);
    filter: saturate(1.08);
    box-shadow: 0 22px 38px rgba(7,95,174,.24);
  }
}

/* Chatbot plus professionnel : halo discret et libellé au survol. */
.cpntics-chat-launcher::before {
  content: "";
  position: absolute;
  inset: -7px;
  z-index: -1;
  border: 1px solid rgba(8,121,201,.28);
  border-radius: 50%;
  animation: cpnticsChatPulse 2.8s ease-out infinite;
}
.cpntics-chat-launcher::after {
  content: "Besoin d’aide ?";
  position: absolute;
  right: calc(100% + .7rem);
  width: max-content;
  padding: .55rem .75rem;
  color: #173656;
  background: #fff;
  border: 1px solid #d4e1eb;
  border-radius: 10px;
  box-shadow: 0 10px 26px rgba(20,59,91,.15);
  font-size: .76rem;
  font-weight: 800;
  opacity: 0;
  transform: translateX(8px);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.cpntics-chat-launcher:hover::after,
.cpntics-chat-launcher:focus-visible::after {
  opacity: 1;
  transform: translateX(0);
}
@keyframes cpnticsChatPulse {
  0% { opacity: .7; transform: scale(.92); }
  70%,100% { opacity: 0; transform: scale(1.28); }
}

@media (max-width: 760px) {
  .professional-page .program-dashboard-v14 { min-height: auto; padding: 1.2rem; }
  .professional-page .dashboard-chart {
    height: auto;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1.2rem .75rem;
  }
  .professional-page .dashboard-pillar { min-height: 220px; }
  .professional-page .dashboard-bar { height: min(var(--v), 145px); }
  .cpntics-chat-launcher::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .professional-page .dashboard-bar,
  .professional-page .dashboard-bar::after,
  .cpntics-chat-launcher::before { animation: none !important; }
}
html[lang="en"] .cpntics-chat-launcher::after { content: "Need help?"; }

/* V21 language flags */
.lang-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.lang-btn .lang-flag {
  font-size: 1rem;
  line-height: 1;
  display: inline-block;
}
.lang-btn .lang-label {
  font-weight: 800;
  letter-spacing: .02em;
}
.home-utility .lang-btn {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
}
.home-utility .lang-btn .lang-flag {
  font-size: .95rem;
}
.home-utility .lang-btn .lang-label {
  font-size: .78rem;
}
.home-axis-icon img[src*="axis-reseau-handshake"] {
  width: 31px;
  height: 31px;
  object-fit: contain;
}

/* V22 flags and sector media */
.lang-btn {
  display:inline-flex;
  align-items:center;
  gap:.42rem;
}
.lang-flag-img {
  width:18px;
  height:12px;
  border-radius:2px;
  display:block;
  object-fit:cover;
  box-shadow:0 0 0 1px rgba(20,54,84,.12);
}
.home-utility .lang-btn .lang-label,
.lang-btn .lang-label {
  font-weight:800;
  letter-spacing:.02em;
}
.home-axis-icon img[src*="axis-reseau-handshake.svg"] {
  width:28px;
  height:28px;
}
.home-footer-bottom .container {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
.home-footer-bottom .container > span:empty { display:none; }

.professional-page .sector-featured-media {
  grid-column: span 2;
  padding: 0;
  overflow: hidden;
}
.professional-page .sector-feature-layout {
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(280px, 38%);
  min-height: 285px;
}
.professional-page .sector-feature-copy {
  padding:1.45rem;
}
.professional-page .sector-feature-media {
  position:relative;
  background:
    radial-gradient(circle at 18% 22%, rgba(35,148,232,.18), transparent 26%),
    radial-gradient(circle at 82% 18%, rgba(10,85,157,.15), transparent 28%),
    linear-gradient(145deg, #eef7ff, #dfeefa);
  border-left:1px solid rgba(28,103,163,.10);
  display:flex;
  align-items:stretch;
  justify-content:center;
  padding:1.2rem;
}
.professional-page .sector-media-card {
  width:100%;
  min-height:100%;
  border-radius:18px;
  border:1px dashed rgba(28,103,163,.28);
  background:rgba(255,255,255,.66);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:1.2rem;
  position:relative;
  overflow:hidden;
}
.professional-page .sector-media-card::before,
.professional-page .sector-media-card::after {
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(35,148,232,.08);
}
.professional-page .sector-media-card::before { width:150px; height:150px; top:-35px; right:-25px; }
.professional-page .sector-media-card::after { width:110px; height:110px; bottom:-22px; left:-20px; }
.professional-page .sector-media-logo {
  width:72px;
  height:72px;
  object-fit:contain;
  margin-bottom:.85rem;
  position:relative;
  z-index:1;
}
.professional-page .sector-media-play {
  width:54px;
  height:54px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, #1c67a3, #35a4ea);
  color:#fff;
  font-size:1.1rem;
  box-shadow:0 14px 30px rgba(28,103,163,.26);
  margin-bottom:.85rem;
  position:relative;
  z-index:1;
}
.professional-page .sector-media-card strong,
.professional-page .sector-media-card p,
.professional-page .sector-media-link { position:relative; z-index:1; }
.professional-page .sector-media-card strong {
  color:#173550;
  font-size:1.02rem;
  margin-bottom:.45rem;
}
.professional-page .sector-media-card p {
  margin:0 0 1rem;
  max-width:270px;
  color:#4e6d87;
  line-height:1.55;
  font-size:.92rem;
}
.professional-page .sector-media-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.72rem 1rem;
  border-radius:999px;
  text-decoration:none;
  color:#fff;
  background:linear-gradient(135deg, #1c67a3, #35a4ea);
  font-weight:800;
  font-size:.86rem;
}
@media (max-width: 900px) {
  .professional-page .sector-feature-layout {
    grid-template-columns:1fr;
  }
  .professional-page .sector-feature-media {
    border-left:0;
    border-top:1px solid rgba(28,103,163,.10);
    min-height:220px;
  }
}

/* V23 refinements */
.lang-flag-img {
  width: 14px;
  height: 10px;
  border-radius: 2px;
}
.home-utility .lang-btn .lang-label,
.lang-btn .lang-label {
  font-size: .78rem;
  font-weight: 800;
}
.home-utility .lang-btn {
  gap: .28rem;
}
.home-languages {
  gap: .45rem;
}

.home-axis-icon img[src*="axis-reseau-handshake-v2"] {
  width: 26px;
  height: 26px;
  object-fit: contain;
  filter: drop-shadow(0 0 0 rgba(0,0,0,0));
}

/* Uniform sector cards */
.professional-page .sector-bento {
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1rem;
}
.professional-page .sector-pro-card,
.professional-page .sector-standard-card,
.professional-page .sector-featured,
.professional-page .sector-featured-media {
  grid-column: auto;
  min-height: 285px;
  padding: 1.45rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.professional-page .sector-pro-card h3,
.professional-page .sector-standard-card h3 {
  margin: 1.2rem 0 .55rem;
}
.professional-page .sector-pro-card p,
.professional-page .sector-standard-card p {
  margin: 0;
}
.professional-page .sector-tags {
  margin-top: auto;
  padding-top: 1rem;
}
.professional-page .sector-feature-layout,
.professional-page .sector-feature-copy,
.professional-page .sector-feature-media,
.professional-page .sector-media-card,
.professional-page .sector-media-card::before,
.professional-page .sector-media-card::after {
  all: unset;
}
.professional-page .sector-placeholder-card {
  background: linear-gradient(180deg, #ffffff, #f6fbff);
}
.professional-page .sector-placeholder-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #edf6fd;
  color: #1c67a3;
  font-weight: 800;
  font-size: 1.35rem;
}
@media (max-width: 1100px) {
  .professional-page .sector-bento { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .professional-page .sector-bento { grid-template-columns: 1fr; }
}
