/* ═══════════════════════════════════════════════════════════════════════════
   EMOTION — Global Stylesheet
   Palette officielle ALS Emotion — Aegis Label Studio
   v3 — dédoublonnage complet + cercles univers pleine largeur (06.2026)
   ═══════════════════════════════════════════════════════════════════════════

   INDEX
   1. PALETTE & VARIABLES
   2. RESETS
   3. KEYFRAMES
   5. SHARED UTILITIES
   6. BUTTONS
   7. REVEAL ANIMATION (d1 → d5)
   8. PROGRESS BAR
   10. FOOTER
   A. HEADER GABARIT (.h-*)
   B. REVEAL d6 → d8
   C. UNIVERS — structure partagée (.u-*)
   ═══════════════════════════════════════════════════════════════════════════ */


/* ── 1. PALETTE & VARIABLES ─────────────────────────────────────────────── */

:root {

  /* Fonds — du plus profond au plus lumineux */
  --ink-deep:    #2A0F14;   /* prune nocturne — fond racine */
  --ink:         #38111A;   /* intermédiaire */
  --ink-soft:    #45181D;   /* bordeaux profond (layer contenu) */

  /* Accents */
  --bordeaux:    #45181D;   /* bordeaux profond */
  --bordeaux-w:  #5E2028;   /* bordeaux lumineux */
  --copper:      #B36D53;   /* cuivre organique — chaleur incarnée */
  --rose:        #C48D76;   /* rose terre — accent principal */
  --rose-soft:   #D9C2AF;   /* beige chaleureux — accent doux */
  --rose-faint:  rgba(196, 141, 118, .16);

  /* Texte */
  --cream:       #EDE3D8;   /* texte principal */
  --cream-mid:   rgba(237, 227, 216, .78);
  --cream-mute:  rgba(237, 227, 216, .55);
  --cream-faint: rgba(237, 227, 216, .32);
  --cream-line:  rgba(237, 227, 216, .10);
  --cream-soft:  rgba(237, 227, 216, .06);

  /* Typographie */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Inter Tight', -apple-system, system-ui, sans-serif;

  /* Layout */
  --max:       1180px;
  --max-narrow: 780px;
  --pad-y:     clamp(80px, 12vw, 140px);
  --pad-x:     clamp(20px, 5vw, 48px);

  /* Easings */
  --ease:      cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.4, 0, 0.2, 1);

  /* Rythme */
  --breath: 16s;
}


/* ── 2. RESETS ──────────────────────────────────────────────────────────── */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--ink-deep); /* évite les bords blancs */
}

body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 300;
  color: var(--cream);
  background: var(--ink-deep);
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a   { color: inherit; }
button { font-family: inherit; border: none; background: none; cursor: pointer; color: inherit; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; }
}


/* ── 3. KEYFRAMES ───────────────────────────────────────────────────────── */

@keyframes breathRing {
  0%   { transform: scale(.92); opacity: 0; }
  25%  { transform: scale(1.08); opacity: .5; }
  50%  { transform: scale(1.08); opacity: .5; }
  75%  { transform: scale(.92); opacity: 0; }
  100% { transform: scale(.92); opacity: 0; }
}

@keyframes breathGlow {
  0%   { opacity: .20; filter: blur(60px); }
  25%  { opacity: .50; filter: blur(40px); }
  50%  { opacity: .50; filter: blur(40px); }
  75%  { opacity: .20; filter: blur(60px); }
  100% { opacity: .20; filter: blur(60px); }
}

@keyframes breathSquare {
  0%   { transform: scale(1); opacity: .35; }
  25%  { transform: scale(1.15); opacity: .75; }
  50%  { transform: scale(1.15); opacity: .75; }
  75%  { transform: scale(1); opacity: .35; }
  100% { transform: scale(1); opacity: .35; }
}

@keyframes heroFade {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes treeDraw {
  from { stroke-dashoffset: 1000; }
  to   { stroke-dashoffset: 0; }
}


/* ── 5. SHARED UTILITIES ────────────────────────────────────────────────── */

section { isolation: isolate; }

.section {
  position: relative;
  z-index: 1;
  padding: var(--pad-y) var(--pad-x);
}

.inner {
  max-width: var(--max);
  margin: 0 auto;
}

/* Eyebrow */
.eyebrow {
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 1.2rem;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}

.eyebrow::before {
  content: '';
  width: 28px; height: 1px;
  background: var(--rose);
  opacity: .6;
}

.eyebrow--center {
  display: block;
  text-align: center;
}

.eyebrow--center::before {
  display: inline-block;
  vertical-align: middle;
  margin-right: 14px;
}

/* Heading h2 */
.h2 {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(28px, 4.4vw, 48px);
  line-height: 1.15;
  color: var(--cream);
  margin: 0 0 1.4rem;
}

.h2 em { font-style: italic; color: var(--rose); }

/* Corps de texte */
.body {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(17px, 1.6vw, 19px);
  line-height: 1.85;
  color: var(--cream-mid);
  margin: 0 auto 1.4rem;
  max-width: 660px;
}

.body em { color: var(--rose-soft); font-style: italic; }


/* ── 6. BUTTONS ─────────────────────────────────────────────────────────── */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  padding: 14px 30px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background .4s var(--ease), color .4s var(--ease),
              border-color .4s var(--ease), transform .4s var(--ease),
              box-shadow .4s var(--ease);
}

.btn--solid {
  background: var(--bordeaux);
  border-color: var(--bordeaux);
  color: var(--cream);
}

.btn--solid:hover {
  background: var(--copper);
  border-color: var(--copper);
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -10px rgba(179, 109, 83, .5);
}

.btn--rose {
  background: transparent;
  border-color: var(--rose);
  color: var(--rose);
}

.btn--rose:hover {
  background: var(--rose-faint);
  color: var(--rose-soft);
  border-color: var(--rose-soft);
}

.btn--ghost {
  background: transparent;
  border-color: var(--cream-line);
  color: var(--cream-mid);
}

.btn--ghost:hover {
  border-color: var(--rose);
  color: var(--rose-soft);
}

.btn--copper {
  background: var(--copper);
  border-color: var(--copper);
  color: var(--cream);
}

.btn--copper:hover {
  background: var(--rose);
  border-color: var(--rose);
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -10px rgba(196, 141, 118, .5);
}


/* ── 7. REVEAL ANIMATION ────────────────────────────────────────────────── */

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-d1 { transition-delay: .10s; }
.reveal-d2 { transition-delay: .20s; }
.reveal-d3 { transition-delay: .30s; }
.reveal-d4 { transition-delay: .40s; }
.reveal-d5 { transition-delay: .50s; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}


/* ── 8. PROGRESS BAR ────────────────────────────────────────────────────── */

#em-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: linear-gradient(to right, var(--copper), var(--rose));
  z-index: 200;
  pointer-events: none;
  transition: width .1s linear;
}


/* ── 10. FOOTER ──────────────────────────────────────────────────────────── */

.footer {
  background: #1A080B;
  border-top: 1px solid var(--cream-line);
  padding: 60px var(--pad-x) 32px;
}

.footer__inner {
  max-width: var(--max);
  margin: 0 auto;
}

.footer__top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}

@media (max-width: 900px) { .footer__top { grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 540px) { .footer__top { grid-template-columns: 1fr; } }

.footer__brand {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.6rem;
  color: var(--rose);
  margin: 0 0 12px;
}

.footer__brand img {
  height: 32px;
  width: auto;
  margin-bottom: 12px;
}

.footer__tag {
  font-family: var(--font-display);
  font-style: italic;
  font-size: .95rem;
  color: var(--cream-mute);
  line-height: 1.7;
  max-width: 280px;
  margin: 0 0 1.4rem;
}

.footer__col h4 {
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 16px;
}

.footer__col ul { list-style: none; padding: 0; margin: 0; }
.footer__col li { margin-bottom: 10px; }

.footer__col a {
  font-family: var(--font-body);
  font-size: .84rem;
  color: var(--cream-mid);
  text-decoration: none;
  transition: color .3s;
}

.footer__col a:hover { color: var(--rose-soft); }

/* Famille ALS */
.footer__family {
  padding: 24px 0;
  border-top: 1px solid var(--cream-line);
  border-bottom: 1px solid var(--cream-line);
  margin-bottom: 24px;
}

.footer__family-label {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 1rem;
  text-align: center;
}

.footer__family-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 4vw, 48px);
  flex-wrap: wrap;
}

.footer__family-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  transition: transform .3s, color .3s;
  text-align: center;
}

.footer__family-link:hover { transform: translateY(-2px); }

.footer__family-name {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--cream);
}

.footer__family-link:hover .footer__family-name { color: var(--rose-soft); }

.footer__family-domain {
  font-family: var(--font-body);
  font-size: .7rem;
  letter-spacing: .14em;
  color: var(--cream-faint);
}

.footer__family-tag {
  font-family: var(--font-display);
  font-style: italic;
  font-size: .82rem;
  color: var(--cream-mute);
  margin-top: 2px;
}

/* Bottom */
.footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.footer__copy {
  font-family: var(--font-body);
  font-size: .72rem;
  color: var(--cream-mute);
  letter-spacing: .05em;
  margin: 0;
}

.footer__legals {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.footer__legals a {
  font-family: var(--font-body);
  font-size: .72rem;
  color: var(--cream-mute);
  text-decoration: none;
  transition: color .3s;
}

.footer__legals a:hover { color: var(--rose-soft); }


/* ═══════════════════════════════════════════════════════════════════════════
   UNIVERS — structure partagée (source unique)
   ═══════════════════════════════════════════════════════════════════════════ */


/* ─── A. HEADER GABARIT ─────────────────────────────────────────────────── */
.h-header{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(42,15,20,.80);backdrop-filter:saturate(160%) blur(18px);-webkit-backdrop-filter:saturate(160%) blur(18px);border-bottom:1px solid transparent;transition:border-color .4s var(--ease-soft),background .4s var(--ease-soft)}
.h-header.is-scrolled{border-bottom-color:var(--cream-line);background:rgba(42,15,20,.94)}
.h-bar{max-width:1280px;margin:0 auto;padding:14px var(--pad-x);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(16px,3vw,40px)}
.h-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,30px)}
.h-nav--left{justify-content:flex-start}
.h-nav--right{justify-content:flex-end}
.h-nav a{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-mid);text-decoration:none;position:relative;padding:6px 0;white-space:nowrap;transition:color .3s var(--ease-soft)}
.h-nav a::after{content:'';position:absolute;left:50%;bottom:0;width:0;height:1px;background:var(--rose);transition:width .35s var(--ease),left .35s var(--ease)}
.h-nav a:hover{color:var(--rose-soft)}
.h-nav a:hover::after,.h-nav a.is-current::after{width:100%;left:0}
.h-nav a.is-current{color:var(--rose)}
.h-logo{display:inline-flex;align-items:center;gap:clamp(11px,1.4vw,16px);text-decoration:none}
.h-logo__mark{height:clamp(42px,4.8vw,58px);width:auto;display:block;filter:drop-shadow(0 4px 18px rgba(179,109,83,.40));transition:height .4s var(--ease-soft),filter .4s var(--ease-soft)}
.h-header.is-scrolled .h-logo__mark{height:clamp(36px,4vw,48px)}
.h-logo:hover .h-logo__mark{filter:drop-shadow(0 6px 26px rgba(196,141,118,.60))}
.h-logo__text{display:flex;flex-direction:column;justify-content:center;line-height:1;gap:5px}
.h-logo__word{font-family:var(--font-display);font-weight:400;font-size:clamp(1.15rem,2.1vw,1.7rem);letter-spacing:.28em;text-transform:uppercase;color:var(--cream);padding-left:.28em;transition:color .4s var(--ease-soft)}
.h-logo:hover .h-logo__word{color:var(--rose-soft)}
.h-logo__sub{font-family:var(--font-body);font-size:8.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--rose);padding-left:.12em}
@media(max-width:520px){.h-logo__sub{display:none}}
.h-burger{display:none;width:38px;height:38px;align-items:center;justify-content:center;color:var(--cream);justify-self:end}
.h-mobile{display:none;position:fixed;left:0;right:0;top:0;margin-top:72px;background:rgba(42,15,20,.98);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);flex-direction:column;padding:24px var(--pad-x) 32px;gap:4px;border-top:1px solid var(--cream-line);z-index:55}
.h-mobile.is-open{display:flex}
.h-mobile a{font-family:var(--font-body);font-size:.86rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-mid);text-decoration:none;padding:14px 4px;border-bottom:1px solid var(--cream-line);transition:color .3s}
.h-mobile a:last-child{border-bottom:none}
.h-mobile a:hover{color:var(--rose-soft)}
.h-mobile__group{font-family:var(--font-body);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--rose);padding:14px 4px 6px}
@media(max-width:980px){.h-bar{grid-template-columns:auto 1fr auto}.h-nav{display:none}.h-logo{justify-self:start}.h-burger{display:inline-flex}}


/* ─── B. REVEAL d6 → d8 ─────────────────────────────────────────────────── */
.reveal-d6{transition-delay:.48s}
.reveal-d7{transition-delay:.56s}
.reveal-d8{transition-delay:.64s}


/* ─── C. UNIVERS — structure partagée, pilotée par --u-* ────────────────────
   Chaque page univers déclare seulement sa palette :
     :root{ --u-ink-deep; --u-ink; --u-ink-soft; --u-accent; --u-accent-soft;
            --u-accent-faint; --u-glow; --u-breath; --u-light; }
   …et l'image de son hero : .u-hero__img{ background-image:url('…') }
   ─────────────────────────────────────────────────────────────────────────── */

/* Overrides accent dans les sections .u-* (le header/footer gardent le rose ALS) */
.u-hero .eyebrow,.u-desc .eyebrow,.u-provoque .eyebrow,.u-traj .eyebrow,.u-howto .eyebrow,.u-cta .eyebrow,.u-pont .eyebrow{color:var(--u-accent)}
.u-hero .eyebrow::before,.u-desc .eyebrow::before,.u-provoque .eyebrow::before,.u-traj .eyebrow::before,.u-howto .eyebrow::before,.u-cta .eyebrow::before,.u-pont .eyebrow::before{background:var(--u-accent)}
.u-hero .h2 em,.u-desc .h2 em,.u-provoque .h2 em,.u-traj .h2 em,.u-howto .h2 em,.u-cta .h2 em,.u-pont .h2 em{color:var(--u-accent-soft)}
.u-hero .body em,.u-desc .body em,.u-provoque .body em,.u-traj .body em,.u-howto .body em,.u-cta .body em,.u-pont .body em{color:var(--u-accent-soft)}

/* HERO UNIVERS — image plein cadre derrière le header transparent */
.u-hero{position:relative;min-height:90vh;display:flex;align-items:center;justify-content:center;padding:140px var(--pad-x) clamp(80px,12vw,140px);overflow:hidden;background:var(--u-ink-deep)}
.u-hero__img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55;z-index:0}
.u-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--u-ink-deep) 55%,transparent) 0%,color-mix(in srgb,var(--u-ink-deep) 35%,transparent) 50%,color-mix(in srgb,var(--u-ink-deep) 94%,transparent) 100%)}
.u-hero__halo{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 50% 35% at 50% 45%,var(--u-accent-faint) 0%,transparent 70%);animation:breathGlow var(--breath) ease-in-out infinite}
.u-hero__breath{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;pointer-events:none;width:min(1100px,120vw);height:min(1100px,120vw)}
.u-hero__breath span{position:absolute;inset:0;border:1px solid var(--u-accent);border-radius:50%;opacity:0;animation:breathRing var(--breath) ease-in-out infinite}
.u-hero__breath span:nth-child(2){inset:10%;animation-delay:-2s;border-color:var(--u-accent-soft)}
.u-hero__breath span:nth-child(3){inset:20%;animation-delay:-4s;border-color:var(--u-breath)}
.u-hero__inner{position:relative;z-index:5;max-width:780px;text-align:center;animation:heroFade 1.6s var(--ease) both}
.u-hero__num{font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--u-accent);margin:0 0 1.6rem;animation:heroFade 1.4s .2s var(--ease) both}
.u-hero__title{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:clamp(44px,7.5vw,82px);line-height:1.05;color:var(--u-light);margin:0 0 1.4rem;letter-spacing:-0.01em;animation:heroFade 1.6s .5s var(--ease) both}
.u-hero__phrase{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(18px,2vw,22px);line-height:1.6;color:var(--u-accent-soft);max-width:520px;margin:0 auto 2rem;animation:heroFade 1.6s .9s var(--ease) both}
.u-hero__mots{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--u-accent);animation:heroFade 1.6s 1.3s var(--ease) both}

/* DESCRIPTION LONGUE */
.u-desc{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink)}
.u-desc__inner{max-width:var(--max-narrow);margin:0 auto;text-align:center}
.u-desc__lead{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(20px,2.4vw,28px);line-height:1.5;color:var(--cream);margin:0 0 2rem}
.u-desc__lead em{color:var(--u-accent-soft);font-style:italic}
.u-desc__body{font-family:var(--font-display);font-weight:300;font-size:clamp(17px,1.7vw,20px);line-height:1.85;color:var(--cream-mid);margin:0 0 1.4rem}
.u-desc__body em{color:var(--u-accent-soft);font-style:italic}

/* BREATH DIVIDER univers */
.u-breath-div{padding:24px 0;display:flex;align-items:center;justify-content:center;gap:16px;background:var(--u-ink-deep)}
.u-breath-div__line{width:60px;height:1px;background:var(--cream-line)}
.u-breath-div__dot{width:8px;height:8px;border-radius:50%;background:var(--u-accent);animation:breathSquare var(--breath) ease-in-out infinite}

/* PROVOQUE & USAGE */
.u-provoque{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink-deep)}
.u-provoque__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px)}
@media(max-width:800px){.u-provoque__inner{grid-template-columns:1fr;gap:48px}}
.u-provoque__label{font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--u-accent);margin:0 0 1.6rem;display:flex;align-items:center;gap:14px}
.u-provoque__label::before{content:'';width:28px;height:1px;background:var(--u-accent);opacity:.6}
.u-provoque__title{font-family:var(--font-display);font-weight:400;font-style:italic;font-size:clamp(24px,3vw,32px);line-height:1.2;color:var(--cream);margin:0 0 1.4rem}
.u-provoque__title em{color:var(--u-accent-soft)}
.u-provoque__list{list-style:none;padding:0;margin:0}
.u-provoque__list li{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--cream-mid);padding:14px 0;border-bottom:1px solid var(--u-accent-faint);display:flex;align-items:center;gap:14px}
.u-provoque__list li:last-child{border-bottom:none}
.u-provoque__list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--u-accent);flex-shrink:0}
.u-provoque__usage{font-family:var(--font-display);font-style:italic;font-size:1.15rem;line-height:1.8;color:var(--cream-mid)}
.u-provoque__usage strong{color:var(--u-accent-soft);font-weight:400}

/* TRAJECTOIRES */
.u-traj{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink)}
.u-traj__inner{max-width:var(--max);margin:0 auto}
.u-traj__head{text-align:center;margin-bottom:clamp(40px,6vw,80px)}
.u-traj__lead{font-family:var(--font-display);font-style:italic;font-size:clamp(17px,1.7vw,19px);line-height:1.7;color:var(--cream-mid);max-width:600px;margin:0 auto}
.u-traj__lead em{color:var(--u-accent-soft)}
.u-traj__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,32px)}
@media(max-width:900px){.u-traj__grid{grid-template-columns:1fr;gap:24px}}
.u-traj-card{background:var(--u-ink-soft);border:1px solid var(--u-accent-faint);border-radius:18px;padding:clamp(28px,4vw,40px);position:relative;overflow:hidden;transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);display:flex;flex-direction:column}
.u-traj-card:hover{transform:translateY(-4px);border-color:var(--u-accent);box-shadow:0 30px 60px -30px var(--u-glow)}
.u-traj-card__num{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--u-accent);margin:0 0 1rem}
.u-traj-card__name{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(22px,2.4vw,28px);line-height:1.2;color:var(--cream);margin:0 0 .8rem}
.u-traj-card__phrase{font-family:var(--font-display);font-style:italic;font-size:1rem;line-height:1.6;color:var(--u-accent-soft);margin:0 0 1.4rem}
.u-traj-card__desc{font-family:var(--font-body);font-size:.94rem;line-height:1.7;color:var(--cream-mid);margin:0 0 1.6rem;flex-grow:1}
.u-traj-card__listen-label{font-family:var(--font-body);font-size:9px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--cream-faint);margin:0 0 .8rem}
.u-traj-card__links{display:flex;flex-direction:column;gap:8px}
.u-traj-card__link{display:flex;align-items:center;gap:10px;padding:11px 16px;font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.1em;color:var(--cream);background:var(--u-ink-deep);border:1px solid var(--u-accent-faint);border-radius:100px;text-decoration:none;transition:all .3s var(--ease)}
.u-traj-card__link:hover{border-color:var(--u-accent);color:var(--u-accent-soft);transform:translateX(4px)}
.u-traj-card__link svg{flex-shrink:0;opacity:.7}

/* COMMENT ÇA SE CHOISIT */
.u-howto{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink-deep)}
.u-howto__inner{max-width:var(--max-narrow);margin:0 auto;text-align:center}
.u-howto__phrase{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(18px,2vw,22px);line-height:1.7;color:var(--cream-mid);margin:0 0 1.4rem}
.u-howto__phrase em{color:var(--u-accent-soft)}

/* CTA — deux chemins (Essential / Moment) + note des niveaux Gravité/Expansion */
.u-cta{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink);position:relative;overflow:hidden}
.u-cta__halo{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 50% 35% at 50% 50%,var(--u-accent-faint) 0%,transparent 70%);animation:breathGlow var(--breath) ease-in-out infinite}
.u-cta__inner{max-width:var(--max);margin:0 auto;position:relative;z-index:2;text-align:center}
.u-cta__head{margin-bottom:clamp(32px,5vw,48px)}
.u-cta__head .h2 em{color:var(--u-accent-soft)}
.u-cta__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,32px);max-width:880px;margin:0 auto}
@media(max-width:700px){.u-cta__grid{grid-template-columns:1fr;gap:20px}}
.u-cta-card{padding:clamp(28px,4vw,36px);background:var(--u-ink-soft);border:1px solid var(--u-accent-faint);border-radius:18px;text-align:left;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);position:relative;overflow:hidden}
.u-cta-card:hover{transform:translateY(-4px);border-color:var(--u-accent);box-shadow:0 30px 60px -30px var(--u-glow)}
.u-cta-card--featured{border-color:var(--u-accent-faint);background:linear-gradient(180deg,var(--u-ink-soft) 0%,color-mix(in srgb,var(--u-ink-deep) 80%,transparent) 100%)}
.u-cta-card__num{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--u-accent);margin:0 0 .8rem}
.u-cta-card__name{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:1.4rem;color:var(--cream);margin:0 0 .8rem;line-height:1.2}
.u-cta-card__desc{font-family:var(--font-body);font-size:.9rem;line-height:1.65;color:var(--cream-mid);margin:0 0 1.4rem;flex-grow:1}
.u-cta-card__action{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--u-accent-soft);border-bottom:1px solid var(--u-accent-faint);padding-bottom:4px;align-self:flex-start;transition:all .3s}
.u-cta-card:hover .u-cta-card__action{color:var(--u-accent);border-color:var(--u-accent)}
.u-cta__niveaux{font-family:var(--font-display);font-style:italic;font-size:clamp(15px,1.5vw,17px);line-height:1.8;color:var(--cream-mid);max-width:620px;margin:clamp(28px,4vw,36px) auto 0}
.u-cta__niveaux strong{color:var(--u-accent-soft);font-weight:500;font-style:normal}

/* PONTS — univers voisins */
.u-pont{padding:clamp(60px,10vw,120px) var(--pad-x);background:var(--u-ink-deep)}
.u-pont__inner{max-width:var(--max);margin:0 auto}
.u-pont__head{text-align:center;margin-bottom:clamp(40px,6vw,60px)}
.u-pont__head .h2 em{color:var(--u-accent-soft)}
.u-pont__head .eyebrow{color:var(--u-accent)}
.u-pont__head .eyebrow::before{background:var(--u-accent)}
.u-pont__phrase{font-family:var(--font-display);font-style:italic;font-size:clamp(17px,1.7vw,19px);line-height:1.7;color:var(--cream-mid);max-width:600px;margin:0 auto}
.u-pont__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,32px)}
@media(max-width:700px){.u-pont__grid{grid-template-columns:1fr}}
.u-voisin{position:relative;aspect-ratio:1.4/1;border-radius:18px;overflow:hidden;cursor:pointer;display:block;text-decoration:none;color:inherit;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.u-voisin:hover{transform:translateY(-4px);box-shadow:0 30px 60px -20px var(--u-glow)}
.u-voisin img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;transition:opacity .5s,transform 1.2s var(--ease)}
.u-voisin:hover img{opacity:.85;transform:scale(1.04)}
.u-voisin__overlay{position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--u-ink-deep) 20%,transparent) 0%,color-mix(in srgb,var(--u-ink-deep) 95%,transparent) 90%);pointer-events:none}
.u-voisin__content{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,3vw,32px);z-index:2}
.u-voisin__num{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--u-accent);margin:0 0 .4rem}
.u-voisin__name{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(20px,2.4vw,28px);color:var(--cream);margin:0 0 .4rem;line-height:1.2}
.u-voisin__phrase{font-family:var(--font-display);font-style:italic;font-size:.92rem;color:var(--cream-mid);margin:0 0 .8rem;line-height:1.5}
.u-voisin__action{font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--u-accent-soft)}
.u-pont__all{display:block;text-align:center;margin-top:2.4rem}
.u-pont__all a{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-mute);text-decoration:none;border-bottom:1px solid var(--u-accent-faint);padding-bottom:4px;transition:all .3s}
.u-pont__all a:hover{color:var(--u-accent-soft);border-color:var(--u-accent-faint)}

@media (max-width: 560px){ :root{ --pad-x: 16px; } }


/* ── CERCLES « QUI RESPIRENT » ───────────────────────────────────────────────
   La taille est désormais calculée par emotion-global.js (initBreathFit) sur
   la boîte réelle de chaque héro — les unités d'écran (vw/vh/svh) coupaient
   les anneaux contre les sections contraintes par Divi. Aucune règle de
   taille ici : les valeurs locales des pages servent de pose avant que le JS
   ajuste au chargement. */
