/* ══════════════════════════════════════════════
   ACTINUANCE — Page d'accueil
   Chargée après style.css, uniquement sur index.html.
   Tout est préfixé .ax-page / .ax- pour ne toucher
   aucune autre page du site.
════════════════════════════════════════════════ */

.ax-page {
  --ax-ink: #16131a;
  --ax-muted: #5a6070;
  --ax-line: #d9d9de;
  --ax-grey: #f5f5f7;
  --ax-purple: #68017f;
  --ax-dark: #371846;
  --ax-orange: #f18847;
  --ax-on-dark: rgba(255, 255, 255, 0.72);
  --ax-line-dark: rgba(255, 255, 255, 0.16);
  --ax-radius: 28px;
  --ax-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  color: var(--ax-ink);
}

.ax-page main {
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.6;
}

.ax-page main h1,
.ax-page main h2,
.ax-page main h3 {
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.ax-page main p { text-wrap: pretty; }

.ax-page main a:focus-visible,
.ax-page main button:focus-visible {
  outline: 2px solid var(--ax-orange);
  outline-offset: 4px;
}

.ax-skip {
  position: absolute;
  left: 16px;
  top: -60px;
  z-index: 2000;
  padding: 10px 18px;
  border-radius: 980px;
  background: #fff;
  color: var(--ax-ink);
  font-size: 0.9rem;
  transition: top 0.2s;
}
.ax-skip:focus { top: 12px; }

.ax-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ─── NAV (accueil) ─────────────────────────────── */
.ax-page #navbar.scrolled {
  background: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.ax-page .nav-links { gap: 30px; }

.ax-page .nav-links > li > a,
.ax-page .nav-dropdown-trigger {
  font-size: 0.84rem;
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
}

.ax-page #navbar.scrolled .nav-dropdown-trigger:hover,
.ax-page #navbar.scrolled .nav-item-dropdown.open .nav-dropdown-trigger {
  font-weight: 400;
  color: var(--ax-purple);
}
.ax-page #navbar.scrolled .nav-links > li > a:hover { color: var(--ax-purple); }

.ax-page .nav-cta {
  padding: 9px 18px;
  border-radius: 980px;
  font-size: 0.84rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ax-dark);
  white-space: nowrap;
}

.ax-page .nav-cta-join,
.ax-page .nav-cta-join:hover {
  padding-inline: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.86);
  font-weight: 400;
}
.ax-page .nav-cta-join:hover { color: #fff; }
.ax-page #navbar.scrolled .nav-cta-join { color: var(--ax-ink); }
.ax-page #navbar.scrolled .nav-cta-join:hover { color: var(--ax-purple); }

@media (max-width: 1200px) {
  .ax-page #navbar { padding: 0 28px; }
  .ax-page .nav-inner { gap: 24px; }
  .ax-page .nav-links { gap: 20px; }
}

/* ─── BRIQUES COMMUNES ──────────────────────────── */
.ax-wrap {
  width: 100%;
  max-width: 1168px;
  margin-inline: auto;
  padding-inline: 24px;
}

.ax-section { padding-block: clamp(88px, 11vw, 152px); }
.ax-section--grey { background: var(--ax-grey); }

.ax-head { max-width: 760px; margin-bottom: clamp(40px, 5vw, 64px); }

.ax-h2 {
  font-size: clamp(2.1rem, 4.6vw, 3.5rem);
  font-weight: 700;
  line-height: 1.06;
  color: var(--ax-ink);
}

.ax-lead {
  margin-top: 20px;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  line-height: 1.5;
  color: var(--ax-muted);
}

.ax-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 30px;
}

.ax-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  border-radius: 980px;
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  transition: background 0.25s ease;
}
.ax-btn--accent { background: var(--ax-orange); color: var(--ax-dark); }
.ax-btn--accent:hover { background: #f7a674; }
.ax-btn--primary { background: var(--ax-purple); color: #fff; }
.ax-btn--primary:hover { background: #7f1a97; }

.ax-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  font-size: 1.0625rem;
  font-weight: 400;
  color: var(--ax-purple);
}
.ax-link::after {
  content: '';
  width: 0.42em;
  height: 0.42em;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.3s var(--ax-ease);
}
a.ax-link:hover,
a:hover > .ax-link { text-decoration: underline; text-underline-offset: 4px; }
a.ax-link:hover::after,
a:hover > .ax-link::after { transform: translateX(4px) rotate(45deg); }
.ax-link--light { color: #fff; }
.ax-link--accent { color: var(--ax-orange); }

/* ─── HERO ──────────────────────────────────────── */
.ax-hero {
  position: sticky;
  top: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  min-height: 100svh;
  padding: calc(var(--nav-height) + 40px) 0 72px;
  background:
    radial-gradient(70% 60% at 78% 50%, rgba(142, 42, 168, 0.5) 0%, rgba(142, 42, 168, 0) 70%),
    var(--ax-dark);
  color: #fff;
  overflow: hidden;
}

.ax-hero-inner {
  position: relative;
  width: 100%;
  max-width: 1168px;
  margin-inline: auto;
  padding-inline: 24px;
}

.ax-slides { display: grid; max-width: 640px; }

.ax-slide {
  grid-area: 1 / 1;
  visibility: hidden;
  transition: visibility 0s 0.45s;
}
.ax-slide.is-active { visibility: visible; transition-delay: 0s; }

.ax-slide > * {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.ax-slide.is-active > * {
  opacity: 1;
  transform: none;
  transition: opacity 0.6s var(--ax-ease), transform 0.6s var(--ax-ease);
}
.ax-slide.is-active > :nth-child(1) { transition-delay: 0.15s; }
.ax-slide.is-active > :nth-child(2) { transition-delay: 0.2s; }
.ax-slide.is-active > :nth-child(3) { transition-delay: 0.27s; }
.ax-slide.is-active > :nth-child(4) { transition-delay: 0.33s; }
.ax-slide.is-active > :nth-child(5) { transition-delay: 0.4s; }

.ax-slide-label {
  margin-bottom: 20px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ax-orange);
}

.ax-page main .ax-slide-title {
  font-size: clamp(2.7rem, 6.4vw, 5.25rem);
  font-weight: 700;
  line-height: 1.03;
  letter-spacing: -0.035em;
  text-wrap: initial;
}

.ax-hero-lead {
  max-width: 540px;
  margin-top: 26px;
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.55;
  color: var(--ax-on-dark);
}

.ax-slide .ax-btn { margin-top: 34px; }

.ax-slide-stat {
  position: absolute;
  right: 24px;
  bottom: 0;
  font-size: 0.95rem;
  color: var(--ax-on-dark);
  text-align: right;
}
.ax-slide-stat strong {
  display: block;
  font-family: 'Raleway', sans-serif;
  font-size: clamp(3.2rem, 6vw, 5.5rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #fff;
}
.ax-slide-stat span {
  margin-left: 4px;
  font-size: 0.42em;
  letter-spacing: -0.01em;
  color: var(--ax-orange);
}

.ax-hero-nav {
  display: flex;
  gap: 28px;
  max-width: 600px;
  margin-top: 64px;
}

.ax-hero-tab {
  position: relative;
  flex: 1;
  padding: 16px 0 4px;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.55);
  font-family: 'Poppins', sans-serif;
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
  transition: color 0.3s ease;
}
.ax-hero-tab:hover,
.ax-hero-tab[aria-selected='true'] { color: #fff; }
.ax-hero-tab::before,
.ax-hero-tab i {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.2);
}
.ax-hero-tab i {
  background: var(--ax-orange);
  transform: scaleX(0);
  transform-origin: left;
}

/* Triangles de marque : ils se recomposent à chaque offre,
   suivent le curseur et se dispersent au défilement. */
.ax-hero-art {
  position: absolute;
  top: 50%;
  right: -5%;
  width: min(60vw, 840px);
  aspect-ratio: 1;
  transform: translate(calc(var(--mx, 0) * 1px), calc(-50% + var(--my, 0) * 1px));
  transition: transform 0.8s ease-out;
  pointer-events: none;
}

.ax-tri-s { position: absolute; inset: 0; will-change: transform; }

.ax-tri {
  position: absolute;
  transition: transform 1.6s cubic-bezier(0.65, 0, 0.2, 1);
}
.ax-tri i {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 0.88;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}

.ax-tri--a { top: 10%; left: 16%; width: 70%; }
.ax-tri--a i { background: linear-gradient(165deg, rgba(178, 96, 208, 0.8), rgba(104, 1, 127, 0.12) 75%); }
.ax-tri--b { top: 44%; left: 50%; width: 42%; }
.ax-tri--b i { background: linear-gradient(200deg, rgba(199, 160, 255, 0.55), rgba(199, 160, 255, 0.05)); }
.ax-tri--c { top: 60%; left: 8%; width: 19%; }
.ax-tri--c i { background: linear-gradient(170deg, #f18847, rgba(241, 136, 71, 0.4)); }
.ax-tri--d { top: 6%; left: 66%; width: 12%; }
.ax-tri--d i { background: rgba(255, 255, 255, 0.16); }

.ax-hero[data-slide='1'] .ax-tri--a { transform: translate(-10%, 6%) rotate(-18deg) scale(0.92); }
.ax-hero[data-slide='1'] .ax-tri--b { transform: translate(-34%, -58%) rotate(24deg) scale(1.2); }
.ax-hero[data-slide='1'] .ax-tri--c { transform: translate(300%, 60%) rotate(42deg) scale(1.2); }
.ax-hero[data-slide='1'] .ax-tri--d { transform: translate(-420%, 260%) rotate(-32deg) scale(1.5); }

.ax-hero[data-slide='2'] .ax-tri--a { transform: translate(6%, 2%) rotate(26deg) scale(1.04); }
.ax-hero[data-slide='2'] .ax-tri--b { transform: translate(-86%, 6%) rotate(-30deg) scale(0.82); }
.ax-hero[data-slide='2'] .ax-tri--c { transform: translate(250%, -190%) rotate(-52deg) scale(1.35); }
.ax-hero[data-slide='2'] .ax-tri--d { transform: translate(-80%, 520%) rotate(70deg) scale(2); }

@media (prefers-reduced-motion: no-preference) {
  .ax-tri i { animation: ax-float 9s ease-in-out infinite alternate; }
  .ax-tri-s:nth-child(2) i { animation-duration: 11s; animation-delay: -3s; }
  .ax-tri-s:nth-child(3) i { animation-duration: 7s; animation-delay: -5s; }
  .ax-tri-s:nth-child(4) i { animation-duration: 13s; animation-delay: -2s; }
}
@keyframes ax-float {
  from { transform: translateY(-10px) rotate(-1.5deg); }
  to { transform: translateY(12px) rotate(2deg); }
}
@keyframes ax-rise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}

/* Le contenu glisse par-dessus le hero, qui reste en place. */
.ax-over { position: relative; z-index: 1; margin-top: -36px; background: #fff; border-radius: 36px 36px 0 0; }
.ax-over > :first-child { border-radius: 36px 36px 0 0; }

/* Titres : apparition mot à mot (activée par home.js). */
.ax-w {
  display: inline-block;
  overflow: hidden;
  padding-bottom: 0.16em;
  margin-bottom: -0.16em;
  vertical-align: top;
}
.ax-w > span {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 0.9s var(--ax-ease);
  transition-delay: calc(var(--k) * 50ms);
}
.is-in .ax-w > span { transform: none; }

/* ─── EXPERTISES ────────────────────────────────── */
.ax-stack { display: grid; gap: 28px; }

.ax-xcard {
  position: sticky;
  top: calc(var(--ax-top, var(--nav-height)) + 20px + var(--i) * 16px);
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  align-items: center;
  gap: 32px;
  min-height: 430px;
  padding: clamp(28px, 4.4vw, 60px);
  border-radius: var(--ax-radius);
  background: var(--ax-dark);
  color: #fff;
  transform-origin: center top;
  will-change: transform;
}
.ax-xcard--2 { background: #56246b; }
.ax-xcard--3 { background: #762a91; }
.ax-xcard--4 { background: #efe4f5; color: var(--ax-ink); }

.ax-xcard h3 { font-size: clamp(1.9rem, 3.4vw, 2.9rem); font-weight: 700; line-height: 1.06; }
.ax-xcard p { max-width: 54ch; margin-top: 16px; color: rgba(255, 255, 255, 0.78); }
.ax-xcard--4 p { color: var(--ax-muted); }

.ax-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 24px 0 30px;
  list-style: none;
  font-size: 0.8125rem;
  font-weight: 500;
}
.ax-tags li {
  padding: 5px 12px;
  border-radius: 980px;
  background: rgba(255, 255, 255, 0.12);
}
.ax-xcard--4 .ax-tags li { background: rgba(104, 1, 127, 0.1); color: var(--ax-purple); }

.ax-xcard .ax-link { color: #fff; }
.ax-xcard--1 .ax-link { color: var(--ax-orange); }
.ax-xcard--4 .ax-link { color: var(--ax-purple); }

.ax-xcard-art { display: grid; place-items: center; }
.ax-xcard-art svg {
  width: min(100%, 230px);
  height: auto;
  color: rgba(255, 255, 255, 0.92);
  overflow: visible;
}
.ax-xcard--4 .ax-xcard-art svg { color: var(--ax-purple); }

/* Chaque pictogramme a son geste. */
.ax-xcard--1 svg path:nth-of-type(1) { stroke: var(--ax-orange); transform-origin: 24px 24px; }
.ax-xcard--2 svg path:nth-of-type(2),
.ax-xcard--3 svg path:nth-of-type(2) { stroke: var(--ax-orange); stroke-dasharray: 22; }
.ax-xcard--4 svg circle { transform-box: fill-box; transform-origin: center; }

@media (prefers-reduced-motion: no-preference) {
  .ax-xcard--1 svg path:nth-of-type(1) { animation: ax-sweep 5s linear infinite; }
  .ax-xcard--2 svg path:nth-of-type(2),
  .ax-xcard--3 svg path:nth-of-type(2) { animation: ax-draw 3.2s var(--ax-ease) infinite; }
  .ax-xcard--4 svg circle { animation: ax-pulse 2.4s ease-in-out infinite; }
  .ax-xcard--4 svg circle:nth-of-type(2) { animation-delay: 0.8s; }
  .ax-xcard--4 svg circle:nth-of-type(3) { animation-delay: 1.6s; }
}
@keyframes ax-sweep { to { transform: rotate(360deg); } }
@keyframes ax-draw {
  0% { stroke-dashoffset: 22; }
  45%, 85% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -22; }
}
@keyframes ax-pulse {
  0%, 100% { transform: scale(1); }
  30% { transform: scale(1.28); }
}

@media (max-height: 640px) {
  .ax-xcard { position: static; }
}

/* ─── CHIFFRES ──────────────────────────────────── */
.ax-stats {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 40px 28px;
}

.ax-stat {
  padding-top: 22px;
  border-top: 1px solid var(--ax-line);
}

.ax-stat-figure {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: 'Raleway', sans-serif;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: lining-nums tabular-nums;
}

.ax-page .ax-stat .number-val {
  font-size: clamp(2.8rem, 5vw, 4.25rem);
  font-weight: 700;
  color: var(--ax-ink);
  transition: none;
}

.ax-stat-unit {
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  color: var(--ax-orange);
}

.ax-stat-label {
  margin-top: 14px;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--ax-muted);
}

/* ─── REJOINDRE ─────────────────────────────────── */
.ax-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 88px);
  align-items: center;
}

.ax-rows { margin-top: clamp(32px, 4vw, 48px); }

.ax-row {
  padding-block: 22px;
  border-top: 1px solid var(--ax-line);
}
.ax-row:last-child { border-bottom: 1px solid var(--ax-line); }

.ax-row h3 { font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em; }
.ax-row p { margin-top: 6px; font-size: 1rem; color: var(--ax-muted); }

.ax-split .ax-actions { margin-top: 36px; }

.ax-photo {
  overflow: hidden;
  border-radius: var(--ax-radius);
  background: #e6e6ea;
}
.ax-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2; /* format d'origine de la photo de groupe */
  object-fit: cover;
}

/* ─── SECTEURS ──────────────────────────────────── */
.ax-seg {
  display: inline-flex;
  max-width: 100%;
  padding: 4px;
  border-radius: 980px;
  background: var(--ax-grey);
  overflow-x: auto;
  scrollbar-width: none;
}
.ax-seg::-webkit-scrollbar { display: none; }

.ax-seg button {
  flex: none;
  padding: 10px 20px;
  border: 0;
  border-radius: 980px;
  background: transparent;
  color: var(--ax-ink);
  font-family: 'Poppins', sans-serif;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease;
}
.ax-seg button:hover { color: var(--ax-purple); }
.ax-seg button[aria-selected='true'] { background: var(--ax-dark); color: #fff; }

.ax-panel {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  margin-top: 24px;
  border-radius: var(--ax-radius);
  background: var(--ax-dark);
  color: #fff;
  overflow: hidden;
}
.ax-panel[hidden] { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .ax-panel:not([hidden]) > * { animation: ax-rise 0.5s var(--ax-ease) both; }
}

.ax-panel-text { padding: clamp(32px, 5vw, 72px); }

.ax-panel h3 {
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 700;
  line-height: 1.06;
}

.ax-panel-text > p { margin-top: 18px; color: var(--ax-on-dark); }

.ax-panel h4 {
  margin-top: 34px;
  font-family: 'Poppins', sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ax-orange);
}

.ax-panel ul { margin: 10px 0 34px; list-style: none; }
.ax-panel li {
  padding-block: 13px;
  border-bottom: 1px solid var(--ax-line-dark);
  font-size: 1rem;
}

.ax-panel-art { padding: 24px; }
.ax-panel-art svg {
  display: block;
  width: min(100%, 380px);
  height: auto;
  margin-inline: auto;
}

/* ─── À PROPOS ──────────────────────────────────── */
.ax-about {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 96px);
}

.ax-about-body p { color: var(--ax-muted); font-size: 1.125rem; line-height: 1.65; }
.ax-about-body p + p { margin-top: 20px; }
.ax-about-body strong { font-weight: 500; color: var(--ax-ink); }
.ax-about-body .ax-link { margin-top: 32px; }

.ax-commit-title {
  margin-top: clamp(64px, 8vw, 104px);
  font-size: clamp(1.5rem, 2.2vw, 1.9rem);
  font-weight: 700;
}

.ax-commits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 28px;
}

.ax-commit {
  padding: clamp(24px, 3vw, 36px);
  border-radius: var(--ax-radius);
  background: #fff;
}
.ax-commit h4 { font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em; }
.ax-commit p { margin-top: 10px; font-size: 1rem; color: var(--ax-muted); }

/* ─── CONTACT ───────────────────────────────────── */
.ax-contact {
  position: relative;
  overflow: hidden;
  padding: clamp(104px, 13vw, 176px) 24px;
  background: var(--ax-dark);
  color: #fff;
  text-align: center;
}

.ax-contact h2 {
  font-size: clamp(2.4rem, 6vw, 4.75rem);
  font-weight: 700;
  line-height: 1.03;
  letter-spacing: -0.035em;
}

.ax-contact > :not(.ax-contact-art) { position: relative; }

.ax-contact-art { position: absolute; inset: 0; pointer-events: none; }
.ax-tri--e { bottom: -12%; left: -4%; width: 30%; }
.ax-tri--e i { background: linear-gradient(165deg, rgba(178, 96, 208, 0.6), rgba(104, 1, 127, 0.08) 75%); }
.ax-tri--f { top: 12%; right: 6%; width: 13%; transform: rotate(18deg); }
.ax-tri--f i { background: linear-gradient(200deg, rgba(199, 160, 255, 0.45), rgba(199, 160, 255, 0.05)); }
.ax-tri--g { bottom: 16%; right: 20%; width: 5%; transform: rotate(-24deg); }
.ax-tri--g i { background: linear-gradient(170deg, #f18847, rgba(241, 136, 71, 0.4)); }

.ax-contact p {
  margin-top: 22px;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  color: var(--ax-on-dark);
}

.ax-contact .ax-btn { margin-top: 36px; }

.ax-contact address {
  margin-top: 28px;
  font-style: normal;
  font-size: 0.95rem;
  color: var(--ax-on-dark);
}

.ax-page footer { border-top: 1px solid var(--ax-line-dark); }

/* ─── RESPONSIVE ────────────────────────────────── */
@media (max-width: 1000px) {
  .ax-stats { grid-template-columns: repeat(3, 1fr); }
  .ax-split,
  .ax-about { grid-template-columns: 1fr; }
  .ax-commits { grid-template-columns: 1fr; }
  .ax-panel { grid-template-columns: 1fr; }
  .ax-panel-art { display: none; }
}

@media (max-width: 760px) {
  .ax-xcard { grid-template-columns: 1fr; gap: 20px; min-height: 0; }
  .ax-xcard-art { order: -1; justify-items: start; }
  .ax-xcard-art svg { width: 72px; }
  .ax-hero-art { top: 34%; right: -38%; width: 120vw; opacity: 0.55; }
  .ax-slide-stat { display: none; }
  .ax-hero-nav { gap: 14px; margin-top: 44px; }
  .ax-hero-tab { font-size: 0.75rem; }
  .ax-stats { grid-template-columns: repeat(2, 1fr); }
  .ax-hero { padding-bottom: 48px; }
  .ax-page { --ax-radius: 22px; }
}

/* ─── COULEUR : REJOINDRE, À PROPOS, ENGAGEMENTS ── */
.ax-join-art,
.ax-about-art { position: absolute; inset: 0; pointer-events: none; }
.ax-join > .ax-wrap,
.ax-aboutsec > .ax-wrap { position: relative; }

.ax-join {
  position: relative;
  overflow: hidden;
  background: var(--ax-purple);
  color: #fff;
}
.ax-join .ax-h2 { color: #fff; }
.ax-join .ax-row { border-color: rgba(255, 255, 255, 0.24); }
.ax-join .ax-row h3 { color: #ffa466; }
.ax-join .ax-row p { color: rgba(255, 255, 255, 0.86); }
.ax-join .ax-photo { background: var(--ax-dark); }

.ax-tri--h { top: -16%; right: -8%; width: 38%; transform: rotate(14deg); }
.ax-tri--h i { background: linear-gradient(165deg, rgba(199, 160, 255, 0.4), rgba(199, 160, 255, 0.03) 75%); }
.ax-tri--j { bottom: 5%; right: 3%; width: 7%; transform: rotate(-20deg); }
.ax-tri--j i { background: linear-gradient(170deg, #f18847, rgba(241, 136, 71, 0.45)); }

.ax-btn--lg { min-height: 56px; padding: 0 34px; font-size: 1.0625rem; font-weight: 600; }

.ax-page .nav-cta-join,
.ax-page .nav-cta-join:hover {
  padding: 8px 17px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  font-weight: 500;
}
.ax-page .nav-cta-join:hover { background: rgba(255, 255, 255, 0.14); }
.ax-page #navbar.scrolled .nav-cta-join,
.ax-page #navbar.scrolled .nav-cta-join:hover {
  border-color: var(--ax-purple);
  background: var(--ax-purple);
  color: #fff;
}
.ax-page #navbar.scrolled .nav-cta-join:hover { background: #7f1a97; }

.ax-aboutsec {
  position: relative;
  overflow: hidden;
  background: #f4ecf8;
}
.ax-aboutsec .ax-h2 em { color: var(--ax-purple); }
.ax-aboutsec .ax-h2 em.ax-o { color: var(--ax-orange); }
.ax-aboutsec .ax-about-body p { color: var(--ax-ink); }
.ax-aboutsec .ax-about-body strong { font-weight: 600; color: var(--ax-purple); }
.ax-aboutsec .ax-commit-title { color: var(--ax-purple); }

.ax-tri--k { bottom: -10%; left: -7%; width: 30%; transform: rotate(-10deg); }
.ax-tri--k i { background: linear-gradient(165deg, rgba(142, 42, 168, 0.2), rgba(142, 42, 168, 0.02) 80%); }
.ax-tri--m { top: 5%; right: 1.5%; width: 5%; transform: rotate(24deg); }
.ax-tri--m i { background: linear-gradient(170deg, rgba(241, 136, 71, 0.85), rgba(241, 136, 71, 0.3)); }

.ax-commit {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  background: var(--ax-dark);
  color: #fff;
}
.ax-commit h4 { position: relative; font-size: 1.35rem; }
.ax-commit p { position: relative; color: rgba(255, 255, 255, 0.86); }
.ax-commit--1 { background: var(--ax-orange); color: var(--ax-dark); }
.ax-commit--1 p { color: rgba(55, 24, 70, 0.9); }
.ax-commit--2 { background: #7030a0; }

.ax-commit-tri {
  position: absolute;
  right: -30px;
  bottom: -40px;
  width: 170px;
  aspect-ratio: 1 / 0.88;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: rgba(255, 255, 255, 0.2);
}
.ax-commit--1 .ax-commit-tri { background: rgba(55, 24, 70, 0.16); }
.ax-commit--3 .ax-commit-tri { background: rgba(241, 136, 71, 0.75); }

@media (prefers-reduced-motion: no-preference) {
  .ax-commit-tri { animation: ax-sway 6s ease-in-out infinite alternate; }
  .ax-commit--2 .ax-commit-tri { animation-delay: -2s; }
  .ax-commit--3 .ax-commit-tri { animation-delay: -4s; }
}
@keyframes ax-sway {
  from { transform: rotate(-10deg) translateY(6px); }
  to { transform: rotate(16deg) translateY(-10px) scale(1.12); }
}

@media (max-width: 760px) {
  .ax-commit { min-height: 0; padding-bottom: 72px; }
  .ax-commit-tri { width: 110px; }
}

/* ═══ PAGES PILIER ET OFFRE ═══════════════════════ */
.ax-inner main section[id] { scroll-margin-top: calc(var(--nav-height) + 12px); }

/* Hero plus court, même langage que l'accueil. */
.ax-hero--page { min-height: min(82svh, 760px); }
.ax-hero--page .ax-hero-art { right: -8%; width: min(54vw, 720px); }
.ax-hero-copy { max-width: 720px; }

.ax-crumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 26px;
  font-size: 0.9rem;
  color: var(--ax-on-dark);
}
.ax-crumb a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.ax-crumb span[aria-current] { color: var(--ax-orange); font-weight: 500; }

.ax-page main .ax-hero--page h1 {
  font-size: clamp(2.5rem, 5.6vw, 4.5rem);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.035em;
}
.ax-hero--page .ax-hero-lead { max-width: 600px; }
.ax-hero--page .ax-actions { margin-top: 36px; }

.ax-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 30px;
  list-style: none;
  font-size: 0.875rem;
}
.ax-pills li {
  padding: 7px 15px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 980px;
  color: #fff;
}

@media (prefers-reduced-motion: no-preference) {
  .ax-hero-copy > * { animation: ax-rise 0.9s var(--ax-ease) both; }
  .ax-hero-copy > :nth-child(2) { animation-delay: 0.08s; }
  .ax-hero-copy > :nth-child(3) { animation-delay: 0.18s; }
  .ax-hero-copy > :nth-child(4) { animation-delay: 0.28s; }
  .ax-hero-copy > :nth-child(5) { animation-delay: 0.38s; }
}

/* Barre de sections : posée en haut du contenu, puis ancrée en bas de l'écran
   (version sombre) dès qu'on défile. */
.ax-subnav {
  position: relative;
  z-index: 60;
  display: flex;
  justify-content: center;
  height: 0;
  padding-inline: 16px;
  pointer-events: none;
}
.ax-subnav-bar {
  display: flex;
  align-items: center;
  gap: 2px;
  max-width: 100%;
  height: 50px;
  margin-top: 18px;
  padding: 5px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 980px;
  background: rgba(255, 255, 255, 0.82);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  overflow-x: auto;
  overflow-y: hidden; /* les liens dépassent de 2 px : sans ça, la molette fait bouger le texte */
  scrollbar-width: none;
  pointer-events: auto;
}
.ax-subnav-bar::-webkit-scrollbar { display: none; }
.ax-subnav a {
  flex: none;
  padding: 9px 17px;
  border-radius: 980px;
  font-size: 0.9rem;
  color: var(--ax-ink);
  white-space: nowrap;
  transition: background 0.25s ease, color 0.25s ease;
}
.ax-subnav a:hover { color: var(--ax-purple); }
.ax-subnav a.ax-subnav-back { color: var(--ax-purple); font-weight: 500; }
.ax-subnav a.ax-subnav-cta { background: var(--ax-orange); color: var(--ax-dark); font-weight: 600; }

.ax-subnav.is-docked {
  position: fixed;
  right: 0;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  left: 0;
}
.ax-subnav.is-docked .ax-subnav-bar {
  margin-top: 0;
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(55, 24, 70, 0.94);
  box-shadow: 0 12px 40px rgba(30, 8, 40, 0.35);
  transform: translateY(-100%);
  transition: transform 0.5s var(--ax-ease), opacity 0.3s ease;
}
.ax-subnav.is-docked a { color: rgba(255, 255, 255, 0.82); }
.ax-subnav.is-docked a:hover { color: #fff; }
.ax-subnav.is-docked a.ax-subnav-back { color: #ffa466; }
.ax-subnav.is-docked a.is-on { background: #fff; color: var(--ax-dark); font-weight: 500; }
.ax-subnav.is-docked a.ax-subnav-cta { background: var(--ax-orange); color: var(--ax-dark); }
.ax-subnav.is-docked.is-away .ax-subnav-bar { transform: translateY(40px); opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .ax-subnav.is-docked .ax-subnav-bar { animation: ax-dock 0.5s var(--ax-ease); }
}
@keyframes ax-dock {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(-100%); opacity: 1; }
}
.ax-subnav + .ax-section { padding-top: clamp(128px, 13vw, 184px); border-radius: 36px 36px 0 0; }

.ax-kicker {
  margin-bottom: 16px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ax-purple);
}
.ax-join .ax-kicker,
.ax-quote .ax-kicker { color: #ffa466; }

.ax-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.ax-prose p { font-size: 1.125rem; line-height: 1.65; color: var(--ax-ink); }
.ax-prose p + p { margin-top: 20px; }
.ax-prose strong { font-weight: 600; color: var(--ax-purple); }

/* Tuiles de couleur (enjeux, questions, atouts). */
.ax-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: clamp(40px, 5vw, 64px);
}
.ax-trio .ax-commit svg {
  position: relative;
  width: 36px;
  height: 36px;
  margin-bottom: 22px;
  stroke: currentColor;
}
.ax-trio .ax-commit h3 {
  position: relative;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

/* Grande phrase sur fond violet. */
.ax-quote {
  position: relative;
  overflow: hidden;
  background: var(--ax-purple);
  color: #fff;
}
.ax-quote > .ax-wrap { position: relative; }
.ax-quote-text {
  max-width: 20ch;
  font-family: 'Raleway', sans-serif;
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.ax-quote-text--long { max-width: 26ch; font-size: clamp(1.7rem, 3.4vw, 2.75rem); }
.ax-quote p:not(.ax-quote-text):not(.ax-kicker) {
  max-width: 62ch;
  margin-top: 28px;
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.86);
}

.ax-words {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 40px;
  list-style: none;
}
.ax-words li {
  padding: 12px 24px;
  border-radius: 980px;
  background: rgba(255, 255, 255, 0.14);
  font-family: 'Raleway', sans-serif;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  font-weight: 700;
}
.ax-words li:nth-child(2) { background: var(--ax-orange); color: var(--ax-dark); }

/* Cartes empilées avec liste (axes d'une offre). */
.ax-xcard-list { list-style: none; }
.ax-xcard-list li {
  padding-block: 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 1rem;
}
.ax-xcard-list li:first-child { border-top: 1px solid rgba(255, 255, 255, 0.2); }
.ax-xcard--4 .ax-xcard-list li,
.ax-xcard--4 .ax-xcard-list li:first-child { border-color: rgba(104, 1, 127, 0.18); }
.ax-xcard--list { grid-template-columns: 1fr 1fr; align-items: start; }
.ax-xcard--list .ax-xcard-text p { margin-bottom: 0; }

/* Lignes numérotées « Nos atouts ». */
.ax-aboutsec .ax-row h3 { color: var(--ax-purple); font-size: 1.35rem; }
.ax-aboutsec .ax-row p { color: var(--ax-ink); }
.ax-aboutsec .ax-row { border-color: rgba(104, 1, 127, 0.18); padding-block: 28px; }

/* Blocs alimentés par Sanity (client stories, articles). */
.ax-feed { margin-top: clamp(56px, 7vw, 88px); }
.ax-feed:first-child { margin-top: 0; }
.ax-feed h3 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); font-weight: 700; margin-bottom: 24px; }
.ax-page .offer-retex-grid,
.ax-page .offer-related-feed {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.ax-page .offer-retex-link,
.ax-page .offer-related-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(24px, 3vw, 36px);
  border-radius: var(--ax-radius);
  background: var(--ax-grey);
  color: var(--ax-muted);
  font-size: 0.95rem;
  transition: background 0.3s ease;
}
.ax-page a.offer-retex-link:hover,
.ax-page a.offer-related-card:hover { background: #ece2f2; }
.ax-page .offer-retex-link strong,
.ax-page .offer-related-card strong {
  font-family: 'Raleway', sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ax-ink);
}
.ax-page .offer-retex-link span:first-of-type,
.ax-page .offer-related-card span { font-weight: 500; color: var(--ax-purple); }

/* Tuiles de liens (offres sœurs, autres expertises) : pleines couleurs. */
.ax-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.ax-links--2 { grid-template-columns: repeat(2, 1fr); }
.ax-linkcard {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: clamp(26px, 3.2vw, 40px);
  border-radius: var(--ax-radius);
  background: var(--ax-orange);
  color: var(--ax-dark);
  overflow: hidden;
}
.ax-linkcard:nth-child(3n + 2) { background: #7030a0; color: #fff; }
.ax-linkcard:nth-child(3n) { background: var(--ax-dark); color: #fff; }
.ax-linkcard::after {
  content: '';
  position: absolute;
  right: -34px;
  bottom: -44px;
  width: 190px;
  aspect-ratio: 1 / 0.88;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: rgba(55, 24, 70, 0.16);
  transition: transform 0.7s var(--ax-ease);
}
.ax-linkcard:nth-child(3n + 2)::after { background: rgba(255, 255, 255, 0.2); }
.ax-linkcard:nth-child(3n)::after { background: rgba(241, 136, 71, 0.8); }
.ax-linkcard:hover::after { transform: translate(-14px, -18px) rotate(-18deg) scale(1.3); }
.ax-linkcard > * { position: relative; z-index: 1; }
.ax-linkcard h3 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); font-weight: 700; line-height: 1.12; }
.ax-linkcard p { max-width: 34ch; margin: 12px 0 28px; font-size: 1rem; color: inherit; opacity: 0.88; }
.ax-linkcard .ax-link { margin-top: auto; font-weight: 500; color: inherit; }

/* Porteur de l'offre. */
.ax-owner {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(28px, 5vw, 64px);
  max-width: 900px;
  margin-inline: auto;
  text-align: left;
}
/* Photo du porteur : carré aux coins arrondis, comme Équipe dirigeante.
   script.js peut envelopper l'image (.team-photo-wrap) pour le badge LinkedIn :
   le cadre est alors porté par l'enveloppe, l'image la remplit. */
.ax-owner > img,
.ax-owner .team-photo-wrap {
  position: relative;
  display: block;
  width: clamp(150px, 19vw, 230px);
  height: auto;
  aspect-ratio: 1;
  border-radius: var(--ax-radius);
  overflow: hidden;
  object-fit: cover;
  background: var(--ax-dark);
  box-shadow: 0 24px 50px -28px rgba(0, 0, 0, 0.55);
}
.ax-owner .team-photo-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}
.ax-owner .team-photo-wrap::after {
  content: '';
  position: absolute;
  z-index: 1;
  left: -22px;
  bottom: -26px;
  width: 92px;
  aspect-ratio: 1 / 0.88;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: var(--ax-orange);
  transform: rotate(-12deg);
  pointer-events: none;
}
.ax-owner .team-linkedin-badge {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  right: 10px;
  bottom: 10px;
  border-radius: 50%;
  background: #fff;
  color: var(--ax-purple);
  font-size: 14px;
}
.ax-owner .team-linkedin-badge:hover { color: var(--ax-dark); background: var(--ax-orange); }
.ax-contact .ax-owner h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); letter-spacing: -0.03em; }
.ax-contact .ax-owner .ax-kicker { margin: 0 0 12px; font-size: 0.95rem; color: #ffa466; }
.ax-contact .ax-owner p { font-size: 1.0625rem; }

@media (max-width: 1000px) {
  .ax-two,
  .ax-trio,
  .ax-links,
  .ax-links--2 { grid-template-columns: 1fr; }
  .ax-xcard--list { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ax-hero--page { min-height: 0; padding-top: calc(var(--nav-height) + 56px); }
  .ax-page .offer-retex-grid,
  .ax-page .offer-related-feed { grid-template-columns: 1fr; }
  .ax-owner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .ax-subnav-bar { justify-content: flex-start; }
}

.ax-section--grey .offer-retex-link,
.ax-section--grey .offer-related-card { background: #fff; }
.ax-page .ax-section--grey a.offer-retex-link:hover,
.ax-page .ax-section--grey a.offer-related-card:hover { background: #ece2f2; }
.ax-aboutsec .ax-lead { color: var(--ax-ink); }
.ax-owner img { color: transparent; font-size: 0; }

/* ─── PAGES SANS HERO (listes, équipe) : le contenu commence sous la barre ── */
.ax-nohero .ax-over { margin-top: 0; padding-top: var(--nav-height); border-radius: 0; }
.ax-nohero .ax-over > :first-child { border-radius: 0; }
.ax-nohero .ax-over > .ax-section:first-child { padding-top: clamp(56px, 6vw, 88px); }
.ax-nohero .ax-subnav + .ax-section { padding-top: clamp(80px, 7vw, 104px); }

/* ─── MENU MOBILE : panneau plein écran ─────────── */
#mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  flex-direction: column;
  padding: calc(var(--nav-height) + 12px) 24px calc(28px + env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  background:
    radial-gradient(90% 50% at 100% 0%, rgba(124, 58, 237, 0.35), transparent 60%),
    radial-gradient(70% 40% at 0% 100%, rgba(241, 136, 71, 0.22), transparent 65%),
    #1f0d2b;
  color: #fff;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity 0.35s ease, transform 0.45s var(--ax-ease, ease), visibility 0s linear 0.45s;
}
#mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
html.m-lock, html.m-lock body { overflow: hidden; }

#mobile-nav .m-inner { display: flex; flex-direction: column; min-height: 100%; }
#mobile-nav .m-group { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
#mobile-nav summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  list-style: none;
  font-family: 'Raleway', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  cursor: pointer;
}
#mobile-nav summary::-webkit-details-marker { display: none; }
#mobile-nav summary::after {
  content: '';
  width: 12px;
  height: 11px;
  background: #f18847;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transition: transform 0.35s var(--ax-ease, ease);
}
#mobile-nav .m-group[open] summary::after { transform: rotate(180deg); }
#mobile-nav .m-group[open] summary { color: #ffb37f; }
#mobile-nav summary:focus-visible,
#mobile-nav a:focus-visible { outline: 2px solid #f18847; outline-offset: 3px; border-radius: 6px; }

#mobile-nav .m-sub { display: grid; padding: 0 0 18px; }
#mobile-nav .m-group[open] .m-sub > a { animation: m-in 0.4s var(--ax-ease, ease) both; }
#mobile-nav .m-group[open] .m-sub > a:nth-child(2) { animation-delay: 0.04s; }
#mobile-nav .m-group[open] .m-sub > a:nth-child(3) { animation-delay: 0.08s; }
#mobile-nav .m-group[open] .m-sub > a:nth-child(4) { animation-delay: 0.12s; }
#mobile-nav .m-group[open] .m-sub > a:nth-child(5) { animation-delay: 0.16s; }
@keyframes m-in { from { opacity: 0; transform: translateX(-10px); } }
#mobile-nav .m-sub a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding-left: 2px;
  font-family: 'Poppins', sans-serif;
  font-size: 1.02rem;
  color: rgba(255, 255, 255, 0.8);
}
#mobile-nav .m-sub a::before {
  content: '';
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(199, 160, 255, 0.5);
}
#mobile-nav .m-sub a:active,
#mobile-nav .m-sub a:hover { color: #fff; }
#mobile-nav .m-sub a[aria-current="page"] { color: #fff; font-weight: 600; }
#mobile-nav .m-sub a[aria-current="page"]::before { width: 10px; height: 9px; border-radius: 0; background: #f18847; clip-path: polygon(50% 0, 100% 100%, 0 100%); }

#mobile-nav .m-actions { display: grid; gap: 10px; margin-top: 32px; }
#mobile-nav .m-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  border-radius: 980px;
  background: #f18847;
  color: #2a0f3a;
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 600;
}
#mobile-nav .m-cta--ghost { background: transparent; border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
#mobile-nav .m-foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 28px;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
}
#mobile-nav .m-foot a { color: rgba(255, 255, 255, 0.72); }

/* Barre de navigation pendant que le menu est ouvert : transparente, logo et croix en blanc. */
#navbar.m-open { background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
#navbar.m-open .nav-logo-img { filter: brightness(0) invert(1); }
#navbar.m-open .burger span { background: #fff !important; }
.burger { position: relative; width: 44px; height: 44px; align-items: center; justify-content: center; }
.burger span { transition: transform 0.35s var(--ax-ease, ease), opacity 0.2s ease, background-color 0.3s ease; }
.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; }
.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (prefers-reduced-motion: reduce) {
  #mobile-nav, #mobile-nav .m-sub > a, .burger span { transition: none; animation: none; }
}

/* ─── MOBILE : pas de barre de sections ─────────── */
/* Sur petit écran la barre n'apporte rien : on la retire et on rend
   à la première section un espacement normal (prioritaire sur les
   feuilles de page chargées après). */
@media (max-width: 768px) {
  .ax-subnav { display: none !important; }
  .ax-page .ax-subnav + .ax-section,
  .ax-page .ax-subnav + .lx-sec,
  .ax-page .ax-subnav + .sp-sec,
  .ax-page .ax-subnav + .nr-sec { padding-top: 72px !important; }
  .ax-nohero .ax-subnav + .ax-section { padding-top: 48px !important; }
}
#mobile-nav .m-solo {
  display: flex;
  align-items: center;
  min-height: 64px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-family: 'Raleway', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
}

/* Blocs alimentés par Sanity : cachés tant qu'il n'y a pas de contenu. */
.ax-feed[hidden], .lx-sec[hidden], .ax-section[hidden] { display: none !important; }

/* Cartes des articles et Client Stories liés (toutes pages d'offre).
   Les éditions « À la une » gardent leurs propres couleurs (ax-unes, ax-spot-*). */
.ax-feeds .ax-pubs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ax-feeds .ax-pubcard {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(24px, 3vw, 34px);
  border-radius: var(--ax-radius);
  background: #fff;
  box-shadow: 0 0 0 1px rgba(42, 15, 58, 0.06);
  color: var(--ax-muted);
  transition: transform 0.4s var(--ax-ease), box-shadow 0.4s ease;
}
.ax-feeds a.ax-pubcard:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -26px rgba(42, 15, 58, 0.45); }
.ax-feeds .rex-sector { font-size: 0.85rem; font-weight: 600; color: var(--ax-orange); }
.ax-feeds .ax-pubcard h4 { margin: 0; font-family: 'Raleway', sans-serif; font-size: 1.25rem; font-weight: 700; line-height: 1.25; color: var(--ax-ink); }
.ax-feeds .ax-pubcard p { font-size: 0.98rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ax-feeds .ax-pubcard .ax-link { margin-top: auto; padding-top: 8px; font-weight: 500; color: var(--ax-purple); }
/* Espacements quand un bloc est caché. */
.ax-feeds > .ax-feed[hidden] + .ax-feed { margin-top: 0; }
.ax-feeds:not(:has(> .ax-feed:not([hidden]))) + .ax-feed { margin-top: 0; }
@media (max-width: 900px) { .ax-feeds .ax-pubs { grid-template-columns: 1fr; } }

/* ─── BARRE DE SECTIONS VERTICALE (body.ax-sidenav : expertises, secteurs, offres à la une) ───────────
   Sur grand écran, un rail compact dans la marge gauche : pictos seuls
   pendant le défilement, libellés déployés au survol ou au clavier (et un
   instant à son apparition, classe .is-open posée par ax.js). Déployé, il
   reste borné à la marge pour ne jamais chevaucher le texte.
   En dessous de 1360 px, la barre en bas d'écran reste, sans pictos.
   Sélecteurs préfixés par body : ils priment sur les styles de barre des
   pages secteur et « À la une », chargés après ax.css. */
body.ax-sidenav .sn-ico { display: none; }
@media (min-width: 1360px) {
  body.ax-sidenav .ax-subnav,
  body.ax-sidenav .ax-subnav.is-docked {
    position: fixed;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 20px;
    display: block;
    height: auto;
    padding: 0;
    transform: translateY(-50%);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  }
  body.ax-sidenav .ax-subnav.is-docked:not(.is-away):not(.is-masked) { opacity: 1; visibility: visible; transition-delay: 0s; }
  body.ax-sidenav .ax-subnav-bar,
  body.ax-sidenav .ax-subnav.is-docked .ax-subnav-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: auto;
    max-width: calc((100vw - 1168px) / 2 - 12px);
    height: auto;
    margin: 0;
    padding: 6px;
    border: 1px solid rgba(99, 42, 124, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    box-shadow: 0 18px 40px -22px rgba(42, 15, 58, 0.5);
    overflow: hidden;
    transform: none;
    animation: none;
    transition: border-radius 0.35s ease, box-shadow 0.35s ease;
  }
  body.ax-sidenav .ax-subnav a,
  body.ax-sidenav .ax-subnav.is-docked a {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 9px;
    border-radius: 999px;
    background: none;
    font-size: 0.86rem;
    line-height: 1.2;
    color: var(--ax-ink);
    white-space: nowrap;
    transition: background-color 0.25s ease, color 0.25s ease, gap 0.35s ease;
  }
  body.ax-sidenav .sn-ico { display: grid; place-items: center; flex: none; width: 22px; height: 22px; }
  body.ax-sidenav .sn-ico svg { width: 20px; height: 20px; }
  /* Libellé replié : largeur nulle, il se déploie au survol. */
  body.ax-sidenav .sn-label {
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-width 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.25s ease;
  }
  /* Déployé au survol ou au clavier : il peut alors dépasser la marge le
     temps de la lecture (replié, il ne chevauche jamais le texte). */
  body.ax-sidenav .ax-subnav .ax-subnav-bar:hover,
  body.ax-sidenav .ax-subnav .ax-subnav-bar:focus-within { max-width: 260px; border-radius: 22px; box-shadow: 0 24px 50px -24px rgba(42, 15, 58, 0.6); }
  body.ax-sidenav .ax-subnav-bar:hover a,
  body.ax-sidenav .ax-subnav-bar:focus-within a { gap: 10px; padding-right: 14px; border-radius: 14px; }
  body.ax-sidenav .ax-subnav-bar:hover .sn-label,
  body.ax-sidenav .ax-subnav-bar:focus-within .sn-label { max-width: 180px; opacity: 1; transition-delay: 0s, 0.08s; }
  /* Repli rapide : après un clic (.is-shut), ou dès que la souris part. */
  body.ax-sidenav .sn-label { transition-duration: 0.22s, 0.15s; }
  body.ax-sidenav .ax-subnav.is-shut .ax-subnav-bar { max-width: calc((100vw - 1168px) / 2 - 12px); border-radius: 999px; box-shadow: 0 18px 40px -22px rgba(42, 15, 58, 0.5); }
  body.ax-sidenav .ax-subnav.is-shut a { gap: 0 !important; padding: 9px !important; border-radius: 999px !important; }
  body.ax-sidenav .ax-subnav.is-shut .sn-label { max-width: 0 !important; opacity: 0 !important; }

  body.ax-sidenav .ax-subnav a:hover { background: rgba(99, 42, 124, 0.08); color: var(--ax-purple); }
  /* Section en cours : picto sur pastille violette. */
  body.ax-sidenav .ax-subnav a.is-on,
  body.ax-sidenav .ax-subnav.is-docked a.is-on { background: var(--ax-purple); color: #fff; font-weight: 500; }
  body.ax-sidenav .ax-subnav a.ax-subnav-back { color: var(--ax-purple); }
  body.ax-sidenav .ax-subnav a.ax-subnav-cta,
  body.ax-sidenav .ax-subnav.is-docked a.ax-subnav-cta { margin-top: 4px; background: var(--ax-orange); color: var(--ax-dark); font-weight: 600; }
}
/* Ouverture automatique à l'apparition : seulement si la marge contient le rail déployé. */
@media (min-width: 1600px) {
  body.ax-sidenav .ax-subnav.is-open .ax-subnav-bar { border-radius: 22px; box-shadow: 0 24px 50px -24px rgba(42, 15, 58, 0.6); }
  body.ax-sidenav .ax-subnav.is-open a { gap: 10px; padding-right: 14px; border-radius: 14px; }
  body.ax-sidenav .ax-subnav.is-open .sn-label { max-width: 180px; opacity: 1; }
}
/* Lien vers une section masquée (ex. flux Sanity vide) : caché, quel que soit le style du lien. */
.ax-subnav a[hidden] { display: none !important; }

/* ─── OFFRES D'UN PILIER : cartes fixes, toutes visibles d'un coup d'œil ─── */
.ax-stack--grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.ax-stack--grid .ax-xcard {
  position: relative;
  top: auto;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 22px;
  min-height: 0;
  padding: clamp(26px, 2.6vw, 34px);
  transform: none !important;
  will-change: auto;
  transition: transform 0.35s var(--ax-ease), box-shadow 0.35s ease;
}
.ax-stack--grid .ax-xcard:hover { transform: translateY(-6px) !important; box-shadow: 0 26px 50px -30px rgba(42, 15, 58, 0.6); }
.ax-stack--grid .ax-xcard-art { order: -1; justify-items: start; }
.ax-stack--grid .ax-xcard-art svg { width: 52px; height: 52px; }
.ax-stack--grid .ax-xcard h3 { font-size: clamp(1.35rem, 1.8vw, 1.6rem); line-height: 1.15; }
.ax-stack--grid .ax-xcard p { margin-top: 12px; font-size: 0.98rem; }
.ax-stack--grid .ax-xcard .ax-link { margin-top: 18px; }
