.page--formations { overflow-x: clip; }
.page--formations main { min-width: 0; background: var(--white); }
.training-hero > *, .training-path__lead > *, .training-path__body > *, .training-private > * { min-width: 0; }

.training-hero {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(400px,.85fr);
  min-height: calc(100svh - 76px);
  background: var(--paper);
}
.training-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(5rem,9vw,9rem) 5vw; }
.training-hero h1 { max-width: 900px; margin: 2rem 0; font-size: clamp(3.5rem,7.5vw,8.5rem); font-weight: 500; line-height: .82; letter-spacing: -.065em; }
.training-hero h1 em { display: block; color: var(--anchor); font-family: var(--serif); font-weight: 400; }
.training-hero__copy > p { max-width: 700px; margin: 0 0 2.5rem; font-family: var(--serif); font-size: clamp(1.12rem,1.5vw,1.4rem); }
.training-hero__copy > small { margin-top: 1.5rem; font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }

.training-diagnostic { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem,6vw,6rem); color: var(--white); background: var(--deep); }
.training-diagnostic h2 { max-width: 650px; margin: 1.5rem 0 3rem; font-family: var(--serif); font-size: clamp(2.2rem,4.3vw,5rem); font-weight: 400; line-height: .94; letter-spacing: -.045em; }
.training-diagnostic nav { border-top: 1px solid rgba(255,255,255,.4); }
.training-diagnostic a { display: grid; grid-template-columns: 2rem 1fr auto; gap: 1rem; align-items: center; min-height: 108px; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.4); text-decoration: none; }
.training-diagnostic a:nth-child(1) { padding-left: 1rem; box-shadow: inset 4px 0 0 var(--accent); }
.training-diagnostic a:nth-child(2) { padding-left: 1rem; box-shadow: inset 4px 0 0 #dfcbd2; }
.training-diagnostic a:nth-child(3) { padding-left: 1rem; box-shadow: inset 4px 0 0 #b88ba0; }
.training-diagnostic a span { color: var(--accent); font-size: .65rem; letter-spacing: .12em; }
.training-diagnostic a:nth-child(1) span { color: var(--accent); }
.training-diagnostic a:nth-child(2) span { color: #dfcbd2; }
.training-diagnostic a:nth-child(3) span { color: #e1c9d3; }
.training-diagnostic a strong { max-width: 430px; font-size: clamp(1rem,1.5vw,1.3rem); font-weight: 500; line-height: 1.25; }
.training-diagnostic a i { font-family: var(--serif); font-size: .8rem; font-style: normal; text-decoration: underline; text-underline-offset: .25rem; }
.training-diagnostic a:hover strong { color: var(--accent); }

.training-intro { display: grid; grid-template-columns: minmax(160px,.5fr) minmax(0,1.7fr); gap: 6vw; padding: clamp(5rem,10vw,10rem) 5vw; background: var(--white); }
.training-intro h2 { max-width: 1050px; margin: 0; font-size: clamp(3rem,6vw,7rem); font-weight: 500; line-height: .88; letter-spacing: -.06em; }
.training-intro h2 em { display: block; color: var(--anchor); font-family: var(--serif); font-weight: 400; }
.training-intro > p { grid-column: 2; max-width: 720px; margin: 0; font-family: var(--serif); font-size: 1.2rem; }

.training-key { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 5vw clamp(8rem,13vw,14rem); border: 1px solid var(--line); }
.training-key a { display: grid; grid-template-columns: 2rem 1fr; gap: .55rem 1rem; align-content: center; min-height: 190px; padding: 2rem; text-decoration: none; transition: filter .2s ease, transform .25s cubic-bezier(.22,1,.36,1); }
.training-key a + a { border-left: 1px solid rgba(59,48,53,.22); }
.training-key a:hover { filter: saturate(1.15) contrast(1.04); transform: translateY(-5px); }
.training-key span { grid-row: 1 / 3; padding-top: .2rem; font-size: .66rem; font-weight: 700; letter-spacing: .14em; }
.training-key strong { font-size: clamp(1.35rem,2vw,2.2rem); font-weight: 500; line-height: 1; letter-spacing: -.035em; }
.training-key small { font-family: var(--serif); font-size: .88rem; }
.training-key__nano { color: #2b2025; background: var(--accent); }
.training-key__nano span { color: var(--white); }
.training-key__lamination { color: var(--deep); background: #dfcbd2; }
.training-key__lamination span { color: #8c5369; }
.training-key__mapping { color: var(--white); background: var(--anchor); }
.training-key__mapping span { color: #f4b6cb; }

.training-path { position: relative; scroll-margin-top: 76px; overflow: clip; background: var(--white); }
.training-path + .training-path { margin-top: clamp(9rem,16vw,18rem); }
.training-chapter { position: sticky; z-index: 60; top: 76px; display: grid; grid-template-columns: 90px minmax(180px,1fr) auto; gap: 1.5rem; align-items: center; min-height: 76px; padding: .75rem 5vw; border-bottom: 1px solid rgba(59,48,53,.22); }
.training-chapter span { font-size: .64rem; font-weight: 700; letter-spacing: .14em; }
.training-chapter strong { font-size: clamp(1.15rem,1.8vw,1.65rem); font-weight: 600; letter-spacing: -.025em; }
.training-chapter small { font-family: var(--serif); font-size: .85rem; }
.training-chapter--nano { color: #2b2025; background: var(--accent); }
.training-chapter--nano span { color: var(--white); }
.training-chapter--lamination { color: var(--deep); background: #dfcbd2; }
.training-chapter--lamination span { color: #8c5369; }
.training-chapter--mapping { color: var(--white); background: var(--anchor); }
.training-chapter--mapping span { color: #f4b6cb; }
.training-path__lead { position: relative; display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.55fr); grid-template-rows: auto auto 1fr; gap: 1.5rem 8vw; align-items: start; min-height: 62svh; padding: clamp(5rem,9vw,9rem) 5vw; border-top: 1px solid var(--line); background: var(--white); isolation: isolate; }
.training-path__lead::after { position: absolute; z-index: -1; right: 1.5vw; bottom: -0.2em; color: rgba(107,75,88,.055); font-family: var(--serif); font-size: clamp(14rem,31vw,36rem); font-style: italic; line-height: .72; letter-spacing: -.09em; }
.training-path--nano .training-path__lead::after { content: "01"; }
.training-path--lamination .training-path__lead::after { content: "02"; }
.training-path--mapping .training-path__lead::after { content: "03"; }
.training-path--nano .training-path__lead, .training-path--lamination .training-path__lead, .training-path--mapping .training-path__lead { border-top: 0; }
.training-path__index { grid-column: 1; align-self: start; padding-top: .75rem; border-top: 1px solid var(--ink); color: var(--accent); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.training-path--nano .training-path__index { color: var(--accent); }
.training-path--lamination .training-path__index { color: #a26079; }
.training-path--mapping .training-path__index { color: var(--anchor); }
.training-path__persona { grid-column: 1; max-width: 330px; margin: 1.25rem 0 0; font-family: var(--serif); font-size: clamp(1.15rem,1.7vw,1.55rem); line-height: 1.25; }
.training-path__lead h2 { grid-column: 2; grid-row: 1 / 4; align-self: center; max-width: 1000px; margin: 0; font-size: clamp(3.4rem,6.8vw,7.8rem); font-weight: 500; line-height: .82; letter-spacing: -.065em; }
.training-path__lead h2 em { display: block; color: var(--anchor); font-family: var(--serif); font-weight: 400; }
.training-path__audiences { grid-column: 1; align-self: end; display: grid; gap: 0; width: min(100%,340px); border-top: 1px solid var(--line); }
.training-path__audiences span { display: grid; grid-template-columns: minmax(92px,.7fr) 1fr; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: .88rem; }
.training-path__audiences b { font-family: var(--sans); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.training-path__body { display: grid; grid-template-columns: minmax(320px,.72fr) minmax(0,1.28fr); min-height: 84svh; border-top: 1px solid var(--line); }
.training-path__fit, .training-path__focus { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(4.5rem,8vw,8.5rem) 5vw; }
.training-path__fit ul { margin: 2rem 0 0; padding: 0; list-style: none; }
.training-path__fit li { position: relative; padding: 1.25rem 0 1.25rem 1.8rem; font-family: var(--serif); font-size: 1.08rem; }
.training-path__fit li::before { content: "→"; position: absolute; left: 0; font-family: var(--sans); }
.training-path__focus { background: var(--white); }
.training-path__focus h3 { max-width: 850px; margin: 1.5rem 0; font-size: clamp(2.4rem,4.6vw,5.4rem); font-weight: 500; line-height: .9; letter-spacing: -.055em; }
.training-path__focus > p:not(.training-path__prerequisite) { max-width: 730px; font-family: var(--serif); font-size: 1.15rem; }
.training-path__meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 3rem 0 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.training-path__meta span { padding: 1rem 1rem 1rem 0; font-size: .64rem; letter-spacing: .09em; text-transform: uppercase; }
.training-path__meta b { display: block; margin-bottom: .25rem; color: var(--anchor); font-size: 1rem; letter-spacing: 0; text-transform: none; }
.training-path__prerequisite { margin: 0 0 2rem; font-size: .78rem; }
.training-path__certificate { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 1rem; align-items: center; width: min(100%,520px); margin: 0 0 2rem; padding: 1rem; border: 1px solid var(--line); }
.training-path__certificate > span { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; font-family: var(--serif); font-size: 1.7rem; font-style: italic; }
.training-path__certificate p { margin: 0; font-family: var(--serif); font-size: .88rem; }
.training-path__certificate strong { display: block; margin-bottom: .2rem; font-family: var(--sans); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }

/* Nano: the hero offer gets the brightest signal, anchored by deep prune. */
.training-path--nano .training-path__lead h2 em { color: var(--accent); }
.training-path--nano .training-path__fit { color: #2b2025; background: var(--accent); }
.training-path--nano .training-path__fit ul { border-top: 1px solid rgba(43,32,37,.36); }
.training-path--nano .training-path__fit li { border-bottom: 1px solid rgba(43,32,37,.36); }
.training-path--nano .training-path__fit li::before { color: var(--white); }
.training-path--nano .training-path__focus .button { color: #2b2025; background: var(--accent); border-color: var(--accent); }
.training-path--nano .training-path__focus .button:hover { color: var(--white); background: var(--deep); border-color: var(--deep); }
.training-path--nano .training-path__certificate { border-color: var(--accent); }
.training-path--nano .training-path__certificate > span { color: #2b2025; background: var(--accent); }

/* Lamination: colour becomes a vertical editorial band, not another full box. */
.training-path--lamination .training-path__body { grid-template-columns: minmax(0,1.28fr) minmax(320px,.72fr); }
.training-path--lamination .training-path__fit { grid-column: 2; color: var(--deep); background: var(--white); overflow: hidden; }
.training-path--lamination .training-path__fit::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: clamp(18px,5vw,76px); background: #dfcbd2; }
.training-path--lamination .training-path__fit > * { position: relative; margin-left: clamp(1.25rem,3vw,3.5rem); }
.training-path--lamination .training-path__focus { grid-column: 1; grid-row: 1; }
.training-path--lamination .training-path__fit ul { border-top: 1px solid rgba(59,48,53,.3); }
.training-path--lamination .training-path__fit li { border-bottom: 1px solid rgba(59,48,53,.3); }
.training-path--lamination .training-path__fit li::before { color: var(--deep); }
.training-path--lamination .training-path__focus .button { color: var(--deep); background: #dfcbd2; border-color: #dfcbd2; }
.training-path--lamination .training-path__focus .button:hover { color: var(--white); background: var(--deep); border-color: var(--deep); }
.training-path--lamination .training-path__certificate { border-color: #c79aaa; }
.training-path--lamination .training-path__certificate > span { color: var(--deep); background: #dfcbd2; }

/* Mapping: a purple analytical field with a restrained rose axis. */
.training-path--mapping .training-path__fit { color: var(--white); background-color: var(--anchor); background-image: linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-position: center; background-size: 50% 50%; }
.training-path--mapping .training-path__fit::after { content: ""; position: absolute; top: 12%; right: 12%; bottom: 12%; left: 12%; border: 1px solid rgba(244,182,203,.78); pointer-events: none; }
.training-path--mapping .training-path__fit > * { position: relative; z-index: 1; }
.training-path--mapping .training-path__fit ul { border-top: 1px solid rgba(255,255,255,.42); }
.training-path--mapping .training-path__fit li { border-bottom: 1px solid rgba(255,255,255,.42); }
.training-path--mapping .training-path__fit li::before { color: #f4b6cb; }
.training-path--mapping .training-path__focus .button { color: var(--white); background: var(--anchor); border-color: var(--anchor); }
.training-path--mapping .training-path__focus .button:hover { color: var(--white); background: var(--deep); border-color: var(--deep); }
.training-path--mapping .training-path__certificate { border-color: var(--anchor); }
.training-path--mapping .training-path__certificate > span { color: var(--white); background: var(--anchor); }

.nano-program { padding: clamp(5rem,9vw,9rem) 5vw; color: var(--white); background: var(--deep); border-top: 10px solid var(--accent); }
.nano-program__head { display: grid; grid-template-columns: minmax(170px,.52fr) minmax(0,1.48fr); gap: 1.5rem 7vw; margin-bottom: clamp(4rem,7vw,7rem); }
.nano-program__head .eyebrow { grid-row: 1 / 3; padding-top: .75rem; border-top: 1px solid rgba(255,255,255,.55); }
.nano-program__head h3 { max-width: 1050px; margin: 0; font-size: clamp(3rem,5.8vw,6.8rem); font-weight: 500; line-height: .86; letter-spacing: -.06em; }
.nano-program__head h3 em { display: block; color: #dfcbd2; font-family: var(--serif); font-weight: 400; }
.nano-program__head > p { grid-column: 2; max-width: 720px; margin: 1rem 0 0; font-family: var(--serif); font-size: 1.15rem; }
.nano-program__days { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.55); border-bottom: 1px solid rgba(255,255,255,.55); }
.nano-program__days > section { min-width: 0; padding: 2rem clamp(1.25rem,2.5vw,3rem) 3rem 0; }
.nano-program__days > section + section { padding-left: clamp(1.25rem,2.5vw,3rem); border-left: 1px solid rgba(255,255,255,.28); }
.nano-program__days > section > span { color: var(--accent); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.nano-program__days h4 { min-height: 2.4em; margin: 1.5rem 0 2rem; font-size: clamp(1.65rem,2.4vw,2.7rem); font-weight: 500; line-height: 1; letter-spacing: -.04em; }
.nano-program__days p { margin: 0; padding: 1.15rem 0; border-top: 1px solid rgba(255,255,255,.24); font-family: var(--serif); font-size: 1rem; }
.nano-program__days p strong { display: block; margin-bottom: .35rem; color: #dfcbd2; font-family: var(--sans); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }

.training-private { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; margin-top: clamp(6rem,10vw,12rem); padding: clamp(5rem,10vw,10rem) 5vw; background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.training-private h2 { margin: 1.5rem 0 0; font-size: clamp(3.2rem,6vw,7rem); font-weight: 500; line-height: .86; letter-spacing: -.06em; }
.training-private h2 em { color: var(--anchor); font-family: var(--serif); font-weight: 400; }
.training-private__points { border-top: 1px solid var(--line); }
.training-private__points p { display: grid; grid-template-columns: 2rem 1fr; gap: .5rem 1rem; margin: 0; padding: 1.5rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); }
.training-private__points p span { grid-row: 1 / 3; color: var(--accent); font-family: var(--sans); font-size: .65rem; letter-spacing: .12em; }
.training-private__points p strong { font-family: var(--sans); font-size: 1rem; }

.page--formations .section--deep { color: var(--ink); background: var(--white); border-top: 1px solid var(--line); }
.training-final { padding: clamp(5rem,10vw,10rem) 5vw; color: var(--white); background: var(--deep); }
.training-final h2 { max-width: 1100px; margin: 2rem 0 4rem; font-family: var(--serif); font-size: clamp(3.2rem,6vw,7rem); font-weight: 400; line-height: .88; letter-spacing: -.055em; }
.training-final__links { display: grid; grid-template-columns: repeat(3,1fr); margin-bottom: 3rem; border-top: 1px solid rgba(255,255,255,.4); }
.training-final__links a { display: grid; grid-template-columns: 2rem 1fr; gap: 1rem; min-height: 110px; padding: 1.5rem 1.5rem 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.4); text-decoration: none; font-size: clamp(1.15rem,2vw,1.8rem); }
.training-final__links a:not(:last-child) { margin-right: 1.5rem; }
.training-final__links span { color: var(--accent); font-size: .65rem; letter-spacing: .12em; }
.training-final__links a:nth-child(1) { border-top: 5px solid var(--accent); }
.training-final__links a:nth-child(2) { border-top: 5px solid #dfcbd2; }
.training-final__links a:nth-child(3) { border-top: 5px solid #b88ba0; }
.training-final__links a:nth-child(1) span { color: var(--accent); }
.training-final__links a:nth-child(2) span { color: #dfcbd2; }
.training-final__links a:nth-child(3) span { color: #e1c9d3; }
.training-final__links a:hover { color: var(--accent); }

@media (max-width: 900px) {
  .training-hero { grid-template-columns: 1fr; min-height: auto; }
  .training-hero__copy { width: 100%; min-height: calc(100svh - 66px); padding: 7rem 1rem 5rem; }
  .training-hero h1 { font-size: clamp(3.5rem,14vw,6.5rem); }
  .training-hero__copy > p, .training-hero__copy > small { max-width: 100%; overflow-wrap: anywhere; }
  .training-diagnostic { padding: 5rem 1rem; }
  .training-diagnostic a { grid-template-columns: 2rem 1fr; }
  .training-diagnostic a i { grid-column: 2; }
  .training-intro { grid-template-columns: 1fr; padding: 6rem 1rem; }
  .training-intro > p { grid-column: auto; }
  .training-key { grid-template-columns: 1fr; margin: 0 1rem 6rem; }
  .training-key a { min-height: 132px; padding: 1.5rem; }
  .training-key a + a { border-top: 1px solid rgba(59,48,53,.22); border-left: 0; }
  .training-path { scroll-margin-top: 66px; }
  .training-path + .training-path { margin-top: 4rem; }
  .training-chapter { top: 66px; grid-template-columns: 62px 1fr; min-height: 68px; padding: .65rem 1rem; }
  .training-chapter small { display: none; }
  .training-path__lead { grid-template-columns: 1fr; grid-template-rows: auto; gap: 2rem; min-height: auto; padding: 6rem 1rem; }
  .training-path__lead::after { right: -1rem; bottom: 0; font-size: clamp(12rem,44vw,20rem); }
  .training-path__index, .training-path__persona, .training-path__audiences, .training-path__lead h2 { grid-column: 1; grid-row: auto; }
  .training-path__lead h2 { font-size: clamp(3.2rem,13vw,6rem); }
  .training-path__body, .training-path--lamination .training-path__body { grid-template-columns: 1fr; }
  .training-path--lamination .training-path__fit, .training-path--lamination .training-path__focus { grid-column: auto; grid-row: auto; }
  .training-path__fit, .training-path__focus { padding: 4.5rem 1rem; }
  .training-path--lamination .training-path__fit { padding-left: 2rem; }
  .training-path--lamination .training-path__fit > * { margin-left: 1rem; }
  .training-path__meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nano-program { padding: 6rem 1rem; }
  .nano-program__head { grid-template-columns: 1fr; margin-bottom: 4rem; }
  .nano-program__head .eyebrow, .nano-program__head > p { grid-column: auto; grid-row: auto; }
  .nano-program__head h3 { font-size: clamp(3rem,12vw,5.8rem); }
  .nano-program__days { grid-template-columns: 1fr; }
  .nano-program__days > section { padding: 2.5rem 0; }
  .nano-program__days > section + section { padding-left: 0; border-top: 1px solid rgba(255,255,255,.45); border-left: 0; }
  .nano-program__days h4 { min-height: 0; }
  .training-private { grid-template-columns: 1fr; padding: 6rem 1rem; }
  .training-final { padding: 6rem 1rem; }
  .training-final__links { grid-template-columns: 1fr; }
  .training-final__links a:not(:last-child) { margin-right: 0; }
}

@media (max-width: 620px) {
  .training-path__focus .button, .training-final > .button { width: 100%; text-align: center; }
}
