.loader {
  position: fixed;
  inset: 0;
  z-index: var(--z-loader);
  background: var(--bg);
  overflow: hidden;
}
.loader__label {
  position: absolute;
  inset-block-end: 4vh;
  inset-inline-start: 5vw;
  font-size: clamp(16px, 1.15em, 19px);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.loader__center {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: baseline;
  gap: .04em;
  z-index: 2;
}
.loader__number {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 11.25em;
  line-height: .85;
  letter-spacing: -.02em;
  font-variation-settings: "wght" 500;
  font-variant-numeric: tabular-nums;
}
.loader__pct {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 4.5em;
  line-height: .85;
}
html.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: visible;
}
.loader__field {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.lword {
  position: absolute;
  white-space: nowrap;
  opacity: 0;
  will-change: transform, opacity;
}
.lword.is-sans {
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-40);
}
.lword.is-serif {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-60);
}
.lword.is-accent {
  color: var(--cta);
}
@media (max-width:767px) {
  .loader__number {
    font-size: 6em;
  }
  .loader__pct {
    font-size: 2.5em;
  }
}
.nav {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--z-nav);
  padding-block: 1.5em;
  color: var(--ink);
  background: transparent;
  transition: color .4s ease;
  pointer-events: none;
}
.nav__brand,
.nav__actions {
  pointer-events: auto;
}
.nav__brand.is-on-ink,
.nav__actions.is-on-ink {
  color: var(--on-ink);
}
.is-menu-open .nav,
.is-menu-open .nav__brand,
.is-menu-open .nav__actions {
  color: var(--ink);
}
.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2em;
}
.nav__brand {
  display: flex;
  align-items: center;
  gap: .7em;
}
.nav__brand-text {
  display: flex;
  flex-direction: column;
  gap: .15em;
}
.nav__mark {
  position: relative;
  flex: none;
  display: block;
  width: 2.42em;
  height: 2.5em;
}
.nav__mark img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .4s ease;
}
.nav__mark-alt {
  opacity: 0;
}
.nav__brand.is-on-ink .nav__mark img:not(.nav__mark-alt) {
  opacity: 0;
}
.nav__brand.is-on-ink .nav__mark img.nav__mark-alt {
  opacity: 1;
}
.nav__brand-name {
  font-size: clamp(17px, 1.3em, 21px);
  font-weight: 600;
  letter-spacing: -.01em;
}
.nav__actions {
  display: flex;
  align-items: center;
  gap: 1.25em;
}
.nav__brand {
  --nav-halo:rgba(240,246,249,.9);
}
.nav__brand.is-on-ink {
  --nav-halo:rgba(18,27,63,.9);
}
.nav__brand-text,
.nav__mark {
  transition: text-shadow .4s ease, filter .4s ease;
}
.nav__brand.is-over-photo .nav__brand-text {
  text-shadow:
    0 0 1px var(--nav-halo),
    0 0 3px var(--nav-halo),
    0 0 6px var(--nav-halo),
    0 0 10px var(--nav-halo),
    0 0 18px var(--nav-halo);
}
.nav__brand.is-over-photo .nav__mark {
  filter: drop-shadow(0 0 3px var(--nav-halo)) drop-shadow(0 0 8px var(--nav-halo));
}
.is-menu-open .nav__brand .nav__brand-text {
  text-shadow: none;
}
.is-menu-open .nav__brand .nav__mark {
  filter: none;
}
.nav__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3em;
  height: 3em;
  padding: 0;
  background: transparent;
  border: 1px solid currentColor;
  border-radius: 100px;
  color: inherit;
  cursor: pointer;
  transition:
    background-color .3s ease,
    color .3s ease,
    border-color .3s ease;
}
.nav__burger {
  position: relative;
  display: block;
  width: 1.45em;
  height: 1em;
}
.nav__burger span {
  position: absolute;
  inset-inline: 0;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition:
    background-color .3s ease,
    transform .4s cubic-bezier(.25, .1, .25, 1),
    opacity .2s ease;
}
.nav__burger span:nth-child(1) {
  inset-block-start: 0;
}
.nav__burger span:nth-child(2) {
  inset-block-start: calc(50% - 1px);
}
.nav__burger span:nth-child(3) {
  inset-block-end: 0;
}
.nav__toggle:hover {
  background: currentColor;
}
.nav__toggle:hover .nav__burger span {
  background: var(--bg);
}
.nav__actions.is-on-ink .nav__toggle:hover .nav__burger span,
.is-menu-open .nav__toggle:hover .nav__burger span {
  background: var(--plate);
}
.is-menu-open .nav__burger span:nth-child(1) {
  transform: translateY(calc(.5em - 1px)) rotate(45deg);
}
.is-menu-open .nav__burger span:nth-child(2) {
  opacity: 0;
  transform: scaleX(.2);
}
.is-menu-open .nav__burger span:nth-child(3) {
  transform: translateY(calc(-.5em + 1px)) rotate(-45deg);
}
html.js .js-menu-close {
  display: none !important;
}
@media (max-width:767px) {
  .nav__mark {
    width: 1.84em;
    height: 1.9em;
  }
  .nav__brand {
    gap: .55em;
  }
  .nav__toggle {
    width: 2.75em;
    height: 2.75em;
  }
  .nav__burger {
    width: 1.25em;
    height: .9em;
  }
  .is-menu-open .nav__burger span:nth-child(1) {
    transform: translateY(calc(.45em - 1px)) rotate(45deg);
  }
  .is-menu-open .nav__burger span:nth-child(3) {
    transform: translateY(calc(-.45em + 1px)) rotate(-45deg);
  }
}
.menu-panel {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--z-menu);
  overflow: hidden;
  background: var(--bg-gold);
  color: var(--ink);
}
.menu-panel__inner {
  display: grid;
  gap: 1.85em;
  align-content: center;
  min-height: 100svh;
  max-height: 100svh;
  overflow-y: auto;
  padding-block: 6em 3em;
  align-content: safe center;
}
@media (max-height:1000px) {
  .menu-panel__inner {
    align-content: start;
  }
}
.menu-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 3em 5em;
  align-items: start;
}
.menu-panel__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75em 1.75em;
}
.menu-panel__home svg {
  margin-block-start: -.1em;
}
.menu-col {
  display: grid;
  gap: 1.15em;
  align-content: start;
}
.menu-col__head {
  color: var(--cta-hover);
}
.menu-list {
  display: grid;
}
.menu-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: baseline;
  padding-block: .6em;
  border-block-start: 1px solid var(--ink-20);
  transition: opacity .3s ease, transform .5s cubic-bezier(.25, .1, .25, 1);
}
.menu-list > li:last-child > .menu-item {
  border-block-end: 1px solid var(--ink-20);
}
.menu-item:hover {
  transform: translateX(.25em);
  opacity: .75;
}
.menu-item__note {
  margin-block-start: .2em;
  color: var(--ink-80);
}
.menu-item.is-current .menu-item__title {
  color: var(--cta-hover);
}
.menu-item.is-current .menu-item__note::after {
  content: " — vous êtes ici";
}
.menu-panel__cta {
  justify-self: start;
  margin-block-start: .5em;
}
.menu-panel__bottom {
  display: grid;
  gap: .4em;
}
.menu-panel__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5em;
  color: var(--ink-80);
}
@media (max-width:991px) {
  .menu-grid {
    grid-template-columns: 1fr;
    gap: 2.5em;
  }
  .menu-panel__inner {
    padding-block: 6em 3em;
  }
}
.js-menu-close {
  position: fixed;
  inset-block-start: 1.75em;
  inset-inline-end: 2.5em;
  z-index: calc(var(--z-menu) + 1);
  align-items: center;
  justify-content: center;
  width: 3em;
  height: 3em;
  padding: 0;
  background: transparent;
  border: 1px solid var(--ink-20);
  border-radius: 100px;
  color: var(--ink);
  cursor: pointer;
}
.js-menu-close:hover {
  background: var(--ink);
  color: var(--on-ink);
}
.hero {
  position: relative;
  background: var(--bg);
  color: var(--ink);
  padding-block-start: calc(100svh - 50em);
  padding-block-end: 14.625em;
}
.hero__stack {
  display: flex;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  text-align: center;
}
.hero__figure {
  position: sticky;
  inset-block-start: calc(100svh - 50em);
  z-index: 30;
  height: 39.375em;
  width: 29.53em;
  margin: 0;
  isolation: isolate;
  overflow: hidden;
  background: var(--bg);
  -webkit-mask-image:
    linear-gradient(
      to bottom,
      #000 0 76%,
      transparent 100%);
  mask-image:
    linear-gradient(
      to bottom,
      #000 0 76%,
      transparent 100%);
}
.hero__image {
  height: 100%;
  width: 100%;
  object-fit: cover;
  transform: scale(1.004);
}
.hero__veil {
  position: absolute;
  inset: -1px;
  background: var(--bg);
  opacity: 0;
  pointer-events: none;
}
.hero__line-1 {
  font-family: var(--sans);
  font-size: 9.375em;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.06em;
  text-transform: uppercase;
  margin-block-start: .125em;
}
.hero__line-2,
.hero__line-3 {
  position: relative;
  z-index: 50;
  font-family: var(--serif);
  font-size: 11.25em;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
}
.hero__line-2 {
  margin-block-start: .25em;
}
.hero__subtitle {
  position: sticky;
  z-index: 10;
  max-width: min(100%, 450px);
  margin: 2em auto 0;
  text-align: center;
  display: grid;
  gap: 1.375em;
  justify-items: center;
}
.hero__scroll {
  position: absolute;
  inset-block-end: 2.5em;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  color: var(--ink-60);
  transition: color .3s ease;
}
.hero__scroll:hover {
  color: var(--hover);
}
@media (max-width:991px) {
  .hero__line-1 {
    font-size: 7.5em;
  }
  .hero__line-2,
  .hero__line-3 {
    font-size: 9em;
  }
}
@media (max-width:479px) {
  .hero {
    padding-block-start: 4.375em;
    padding-block-end: 2em;
  }
  .hero__figure {
    width: 16.25em;
    height: auto;
    inset-block-start: 4.375em;
  }
  .hero__line-1 {
    margin-block-start: 1em;
    font-size: 3.4em;
  }
  .hero__line-2,
  .hero__line-3 {
    font-size: 4em;
  }
  .hero__line-2 {
    margin-block-start: max(.15em, calc(100svh - 147vw));
  }
  .hero__subtitle {
    margin-block-start: 1.875em;
  }
  .hero__scroll {
    display: none;
  }
}
.bridge {
  min-height: 140svh;
  padding-block: 6em calc(6em + 72px);
  overflow-x: clip;
}
@media (max-width:767px) {
  .bridge {
    display: none;
  }
}
.section__head {
  margin-block-end: 4em;
  column-gap: 2.5em;
}
.section__head p {
  align-self: start;
}
@media (max-width:767px) {
  .section__head {
    margin-block-end: 2.5em;
  }
  .grid-title.section__head {
    grid-template-columns: 1fr;
  }
  .grid-title.section__head > span:first-child {
    display: block;
    margin-block-end: .5em;
  }
  .grid-title.section__head > p {
    grid-column: 1;
  }
}
.recognise {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--ink-20);
}
.recognise__item {
  display: flex;
  align-items: baseline;
  gap: 1.25em;
  padding-block: 1.35em;
  border-bottom: 1px solid var(--ink-20);
}
.recognise__item::before {
  content: "";
  flex: 0 0 auto;
  width: .45em;
  height: .45em;
  border-radius: 50%;
  background: var(--cta);
  transform: translateY(-.25em);
}
.gap-note {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 3em;
  margin-block-start: 5em;
  align-items: start;
}
@media (max-width:767px) {
  .gap-note {
    grid-template-columns: 1fr;
    gap: 1.5em;
    margin-block-start: 3em;
  }
}
.method__brand {
  display: grid;
  gap: 1.5em;
  justify-items: start;
}
.method__logo {
  width: 14em;
  height: auto;
}
@media (max-width:767px) {
  .method__logo {
    width: 11em;
  }
}
.pillar {
  display: grid;
  gap: .75em;
  align-content: start;
}
.pillar__index {
  color: var(--ink-60);
  letter-spacing: .1em;
}
.pillar__title {
  letter-spacing: -.02em;
}
.pillar__lead {
  color: var(--ink);
}
.results {
  margin-block-start: clamp(40px, 4em, 64px);
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  grid-template-areas: "head head" "list punch";
  column-gap: clamp(32px, 3.25em, 52px);
  row-gap: clamp(26px, 2.5em, 40px);
  align-items: stretch;
  padding: clamp(32px, 3.25em, 52px) clamp(28px, 3em, 48px);
  background: var(--bg);
  border: 1px solid var(--ink-20);
  border-radius: 2px;
}
.results .results__head {
  grid-area: head;
  margin-block-end: 0;
  color: var(--ink);
}
.results__list {
  grid-area: list;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-content: start;
}
.results__item {
  display: flex;
  align-items: flex-start;
  gap: .7em;
  padding-block: .75em;
  border-block-start: 1px solid var(--ink-10);
}
.results__item:first-child {
  border-block-start: 0;
  padding-block-start: 0;
}
.results__item:last-child {
  padding-block-end: 0;
}
.results__check {
  flex: 0 0 auto;
  color: var(--cta);
  margin-block-start: .28em;
}
.results__aside {
  grid-area: punch;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: clamp(20px, 1.75em, 28px);
  padding-inline-start: clamp(28px, 3em, 48px);
  border-inline-start: 1px solid var(--ink-20);
}
.results__punch {
  max-width: min(100%, 660px);
  font-size: clamp(26px, 2.75em, 44px);
  line-height: 1.15;
  text-wrap: balance;
}
.results__cta {
  justify-self: start;
  width: auto;
  text-align: start;
}
@media (max-width:1279px) {
  .results {
    grid-template-columns: 1fr;
    grid-template-areas: "head" "list" "punch";
  }
  .results__aside {
    padding-inline-start: 0;
    border-inline-start: 0;
    padding-block-start: clamp(24px, 2.25em, 36px);
    border-block-start: 1px solid var(--ink-20);
  }
  .results__punch {
    max-width: min(100%, 34ch);
  }
}
@media (max-width:479px) {
  .results {
    margin-block-start: 32px;
    padding: 26px 20px;
    row-gap: 22px;
  }
  .results__aside {
    gap: 20px;
    padding-block-start: 22px;
  }
  .results__item {
    padding-block: .65em;
  }
  .results__punch {
    font-size: clamp(21px, 1.5em, 26px);
    max-width: none;
  }
}
.formats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--ink-20);
  border-block: 1px solid var(--ink-20);
}
.format {
  display: grid;
  gap: 1em;
  align-content: start;
  padding: 2.75em 2em 3em;
  background: var(--surface);
}
.is-gold .format,
.is-gold .module {
  background: var(--bg);
}
@media (max-width:767px) {
  .formats {
    grid-template-columns: 1fr;
  }
  .format {
    padding: 2em 0 2.25em;
  }
  .is-gold .format {
    padding-inline: 1.5em;
  }
}
.entreprise {
  margin-block-start: 5em;
  display: grid;
  gap: 2em;
}
.jeudis {
  margin-block-start: 6em;
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 4em;
  align-items: start;
}
.jeudis__text {
  display: grid;
  gap: 1.5em;
  justify-items: start;
}
.jeudis__media {
  display: grid;
}
.jeudis__fig img {
  width: 100%;
  border-radius: 2px;
}
@media (max-width:767px) {
  .jeudis {
    grid-template-columns: 1fr;
    gap: 2.5em;
    margin-block-start: 3.5em;
  }
}
.parcours {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 3em;
  align-items: start;
}
.parcours__media {
  position: relative;
  display: grid;
  gap: 1.25em;
}
.parcours__figure {
  position: relative;
  z-index: 1;
  width: min(100%, 30em);
}
.parcours__figure img {
  width: 100%;
  border-radius: 2px;
}
.parcours__figure figcaption {
  margin-block-start: .75em;
}
.parcours__figure--now {
  width: 90%;
  margin-inline-start: auto;
  margin-block-start: 5.5em;
}
.facts {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--ink-20);
}
.fact {
  display: grid;
  grid-template-columns: 14em 1fr;
  gap: 1.5em;
  padding-block: 1.15em;
  border-bottom: 1px solid var(--ink-20);
  align-items: baseline;
}
.fact__k {
  color: var(--ink-60);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.is-ink .facts {
  border-top-color: var(--ink-20);
}
.is-ink .fact {
  border-bottom-color: var(--ink-20);
}
.is-ink .fact__k {
  color: var(--ink-80);
}
.pull {
  display: grid;
  gap: 1.25em;
}
.pull__mark {
  color: var(--cta);
}
.pull cite {
  font-style: normal;
}
@media (max-width:767px) {
  .parcours {
    grid-template-columns: 1fr;
    gap: 2.5em;
  }
  .fact {
    grid-template-columns: 1fr;
    gap: .3em;
  }
}
.gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5em 2em;
}
.vcard {
  display: grid;
  gap: .75em;
  align-content: start;
}
.vcard__frame {
  position: relative;
  aspect-ratio: 5/4;
  overflow: hidden;
  background: var(--ink-10);
  border-radius: var(--r-video);
}
.vcard__frame video,
.vcard__frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vcard__frame video,
.vcard__frame img {
  border-radius: inherit;
}
.vcard__video {
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.vcard__frame.is-playing .vcard__video {
  opacity: 1;
  pointer-events: auto;
}
.vcard__frame.is-playing .vcard__poster,
.vcard__frame.is-playing .vcard__play {
  opacity: 0;
  pointer-events: none;
}
.vcard__poster,
.vcard__play {
  transition: opacity .3s ease;
}
.vcard__play {
  position: absolute;
  inset-block-end: 1em;
  inset-inline-start: 1em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(46px, 3.25em, 60px);
  height: clamp(46px, 3.25em, 60px);
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--ink-20);
  border-radius: 100px;
  cursor: pointer;
  transition:
    background-color .3s ease,
    color .3s ease,
    transform .3s ease;
}
.vcard__play:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--on-cta);
  transform: scale(1.06);
}
.vcard__title {
  line-height: 1.25;
}
.gallery__more {
  margin-block-start: 2.5em;
}
@media (max-width:991px) {
  .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:479px) {
  .gallery {
    grid-template-columns: 1fr;
  }
}
.apropos__hero {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 4em;
  align-items: start;
}
.secrets-teaser {
  display: grid;
  gap: 1.25em;
  align-content: start;
  padding: 1.5em;
  border: 1px solid var(--ink-20);
  border-radius: 6px;
}
.secrets-teaser__figure img {
  width: 100%;
  border-radius: 4px;
}
.secrets-teaser a svg {
  display: inline-block;
  vertical-align: middle;
  width: 1.375em;
  height: 1.03em;
  margin-inline-start: .4em;
}
.entretiens-head {
  margin-block-start: 6em;
  margin-block-end: 1.5em;
  scroll-margin-block-start: 6rem;
}
@media (min-width:768px) {
  .entretiens-head {
    scroll-margin-block-start: 5rem;
  }
}
.voixoff {
  margin-block-start: 6em;
  display: grid;
  gap: 2em;
}
.voixoff__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3em;
}
.voixoff__grid > div {
  display: grid;
  gap: 1em;
  align-content: start;
}
@media (max-width:767px) {
  .apropos__hero {
    grid-template-columns: 1fr;
    gap: 2em;
  }
  .secrets-teaser {
    padding: 1.25em;
  }
  .entretiens-head {
    margin-block-start: 3.5em;
  }
  .voixoff {
    margin-block-start: 3.5em;
  }
  .voixoff__grid {
    grid-template-columns: 1fr;
    gap: 2em;
  }
}
.player {
  display: grid;
  gap: .85em;
  padding: 1.5em;
  border: 1px solid var(--ink-20);
  border-radius: 6px;
  background: var(--bg);
}
.player__row {
  display: flex;
  align-items: center;
  gap: 1em;
}
.player__btn {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3em;
  height: 3em;
  padding: 0;
  cursor: pointer;
  background: var(--plate);
  color: var(--ink);
  border: 1px solid var(--ink-40);
  border-radius: 100px;
  transition: background-color .3s ease, color .3s ease;
}
.player__btn:hover {
  background: var(--ink);
  color: var(--on-cta);
}
.player__btn .i-pause,
.player.is-playing .player__btn .i-play {
  display: none;
}
.player.is-playing .player__btn .i-pause {
  display: block;
}
.player__bar {
  flex: 1 1 auto;
  height: 3px;
  background: var(--ink-20);
  border-radius: 3px;
  cursor: pointer;
}
.player__fill {
  width: 0;
  height: 100%;
  background: var(--cta);
  border-radius: 3px;
}
.player__time {
  flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
  color: var(--ink-60);
  font-size: clamp(16px, 1.1em, 18px);
  min-width: 6.5em;
  text-align: end;
}
.player__meta {
  display: grid;
  gap: .25em;
}
.events {
  display: grid;
  border-top: 1px solid var(--ink-20);
}
.event {
  display: grid;
  grid-template-columns: 6em minmax(0, 1fr) minmax(0, 14em);
  gap: 1.5em;
  align-items: baseline;
  padding-block: 1.35em;
  border-bottom: 1px solid var(--ink-20);
}
@media (max-width:767px) {
  .event {
    grid-template-columns: 4.5em 1fr;
  }
}
.booking {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 1px;
  background: var(--ink-20);
  border: 1px solid var(--ink-20);
  border-radius: 6px;
  overflow: hidden;
}
.booking__panel {
  display: flex;
  flex-direction: column;
  background: var(--bg);
  padding: 2.5em 2.5em 2.75em;
}
.booking__step {
  display: flex;
  align-items: baseline;
  gap: .75em;
  margin-block-end: 2em;
  font-size: clamp(17px, 1.15em, 18px);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.booking__step-num {
  color: var(--cta);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  margin-block-end: 1.5em;
}
.cal__month {
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(18px, 1.375em, 22px);
  line-height: 1;
  letter-spacing: -.01em;
  text-transform: capitalize;
}
.cal__navs {
  display: flex;
  gap: .5em;
}
.cal__nav {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5em;
  height: 2.5em;
  padding: 0;
  border: 1px solid var(--ink-20);
  border-radius: 100px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition:
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease;
}
.cal__nav:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--bg);
}
.cal__nav svg {
  width: 1em;
  height: 1em;
}
.cal__nav[disabled] {
  opacity: .3;
  cursor: not-allowed;
}
.cal__nav[disabled]:hover {
  background: transparent;
  border-color: var(--ink-20);
  color: var(--ink);
}
.cal__dows {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-block-end: .5em;
  font-size: clamp(15px, 1em, 16px);
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: center;
  color: var(--ink-60);
}
.cal__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  column-gap: .25em;
  row-gap: .5em;
}
.cal__cell {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cal__day {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3em;
  height: 3em;
  padding: 0;
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(18px, 1.2em, 20px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 100px;
  cursor: pointer;
  transition:
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease;
}
.cal__day:hover {
  background: var(--ink-10);
}
.cal__day::after {
  content: "";
  position: absolute;
  inset-block-end: .4em;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  width: .25em;
  height: .25em;
  border-radius: 50%;
  background: var(--cta);
  opacity: 0;
  transition: opacity .2s ease, background-color .2s ease;
}
.cal__day.has-slots::after {
  opacity: 1;
}
.cal__day.is-selected {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--on-cta);
}
.cal__day.is-selected:hover {
  background: var(--ink);
  border-color: var(--ink);
}
.cal__day.is-selected::after {
  background: var(--on-cta);
}
.cal__day.is-today {
  border-color: var(--ink-40);
}
.cal__day[disabled] {
  color: var(--ink-40);
  cursor: not-allowed;
}
.cal__day[disabled]:hover {
  background: transparent;
}
.cal__cell.is-blank {
  pointer-events: none;
}
.cal__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25em;
  margin-block-start: auto;
  padding-block-start: 1.5em;
  border-block-start: 1px solid var(--ink-20);
  font-size: clamp(16px, 1.05em, 17px);
  color: var(--ink-60);
}
.cal__legend span {
  display: inline-flex;
  align-items: center;
  gap: .5em;
}
.cal__legend span::before {
  content: "";
  width: .5em;
  height: .5em;
  border-radius: 50%;
  flex: none;
  background: var(--cta);
}
.cal__legend span.is-off::before {
  background: var(--ink-40);
}
.slots__day {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(19px, 1.5em, 24px);
  line-height: 1.15;
  margin-block-end: .35em;
}
.slots__day::first-letter {
  text-transform: uppercase;
}
.slots__zone {
  font-size: clamp(16px, 1.05em, 17px);
  color: var(--ink-60);
  margin-block-end: 1.75em;
}
.slots__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .625em;
}
.slot {
  padding: .95em .5em;
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(18px, 1.15em, 19px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--ink-20);
  border-radius: 100px;
  cursor: pointer;
  transition:
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease;
}
.slot:hover {
  border-color: var(--ink);
  background: var(--ink-10);
}
.slot.is-selected {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--on-cta);
}
.slot.is-selected:hover {
  background: var(--ink);
  border-color: var(--ink);
}
.slot[disabled] {
  color: var(--ink-40);
  border-color: var(--ink-10);
  background: var(--ink-10);
  cursor: not-allowed;
}
.slot[disabled]:hover {
  border-color: var(--ink-10);
  background: var(--ink-10);
}
.slots__empty[hidden],
.booking__done[hidden],
[data-slots-body][hidden] {
  display: none;
}
.slots__empty {
  display: grid;
  place-content: center;
  gap: .5em;
  min-height: 14em;
  text-align: center;
  font-size: clamp(17px, 1.15em, 18px);
  color: var(--ink-60);
}
.slots__empty svg {
  width: 2em;
  height: 2em;
  margin-inline: auto;
  opacity: .5;
}
.booking__form {
  margin-block-start: 1.5em;
  background: var(--bg);
  border: 1px solid var(--ink-20);
  border-radius: 6px;
  padding: 2.5em 2.5em 2.75em;
}
.booking__recap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35em 1em;
  margin-block-end: 2em;
  padding-block-end: 1.5em;
  border-block-end: 1px solid var(--ink-20);
}
.booking__recap-label {
  font-size: clamp(16px, 1.05em, 17px);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.booking__recap-value {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(19px, 1.35em, 22px);
  color: var(--cta);
}
.booking__recap-value::first-letter {
  text-transform: uppercase;
}
.booking__recap-edit {
  margin-inline-start: auto;
  font-size: clamp(17px, 1.15em, 18px);
  color: var(--ink-60);
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .25em;
}
.booking__recap-edit:hover {
  color: var(--hover);
}
.booking__fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5em;
}
.booking__foot {
  display: grid;
  gap: 1.5em;
  margin-block-start: 2em;
}
.booking__submit {
  justify-self: start;
}
.booking__done {
  display: grid;
  gap: .75em;
  padding-block: 1em;
}
.booking__done-title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(21px, 1.75em, 28px);
  line-height: 1.15;
}
@media (max-width:991px) {
  .booking {
    grid-template-columns: 1fr;
  }
  .booking__panel {
    padding: 2em 1.75em 2.25em;
  }
  .booking__form {
    padding: 2em 1.75em 2.25em;
  }
  .booking__fields {
    grid-template-columns: 1fr 1fr;
  }
  .slots__empty {
    min-height: 8em;
  }
}
@media (max-width:639px) {
  .booking__fields {
    grid-template-columns: 1fr;
  }
  .booking__panel {
    padding: 1.75em 1.25em 2em;
  }
  .booking__form {
    padding: 1.75em 1.25em 2em;
  }
  .cal__cell {
    aspect-ratio: auto;
    min-height: 2.65em;
  }
  .booking__recap-edit {
    margin-inline-start: 0;
  }
}
#temoignages {
  background: var(--bg);
  --surface:var(--bg);
}
.reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--ink-20);
  border-block: 1px solid var(--ink-20);
}
.review {
  display: grid;
  gap: 1.25em;
  align-content: space-between;
  padding: 2.5em 2em 3em;
  background: var(--surface);
}
.review blockquote {
  line-height: 1.4;
}
.review figcaption {
  letter-spacing: .04em;
  text-transform: uppercase;
}
@media (max-width:991px) {
  .reviews {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:479px) {
  .reviews {
    grid-template-columns: 1fr;
  }
  .review {
    padding: 2em 0 2.25em;
  }
}
.faq {
  display: grid;
  border-top: 1px solid var(--ink-20);
}
.faq__item {
  border-bottom: 1px solid var(--ink-20);
}
.faq__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2em;
  width: 100%;
  padding-block: 1.6em;
  text-align: start;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color .3s ease;
}
.faq__head:hover {
  color: var(--hover);
}
.faq__q {
  line-height: 1.2;
}
.faq__icon {
  position: relative;
  flex: 0 0 auto;
  width: 1.25em;
  height: 1.25em;
}
.faq__line {
  position: absolute;
  background: currentColor;
}
.faq__line.horizontal {
  inset-block-start: 50%;
  inset-inline: 0;
  height: 1px;
  transform: translateY(-50%);
}
.faq__line.vertical {
  inset-inline-start: 50%;
  inset-block: 0;
  width: 1px;
  transform: translateX(-50%);
}
.faq__answer {
  overflow: hidden;
}
.faq__a {
  padding-block-end: 1.75em;
}
.faq__spacer {
  overflow: hidden;
}
.contact {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 5em;
  align-items: start;
}
.contact__form {
  justify-items: stretch;
}
.contact__form {
  background: var(--bg);
  border: 1px solid var(--ink-20);
  border-radius: 6px;
  padding: 2.5em 2.5em 2.75em;
}
@media (max-width:767px) {
  .contact {
    grid-template-columns: 1fr;
    gap: 3em;
  }
  .contact__form {
    padding: 2em 1.5em 2.25em;
  }
}
.footer-section {
  background: var(--bg);
  color: var(--ink);
  padding-block: 6em 2.5em;
}
.footer__inner {
  display: grid;
  gap: 5em;
}
.footer__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12em), 1fr));
  gap: 2.5em;
}
.footer__col {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .6em;
  justify-items: start;
  align-content: start;
}
.footer__col a {
  overflow-wrap: break-word;
  max-width: 100%;
}
.footer__col .eyebrow {
  color: var(--cta-hover);
  margin-block-end: .5em;
}
.footer__cookies {
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-align: start;
  color: inherit;
}
.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1em;
  padding-block-start: 2em;
  border-top: 1px solid var(--ink-20);
}
@media (max-width:767px) {
  .footer-section {
    padding-block: 4em 2em;
  }
  .footer__inner {
    gap: 3em;
  }
  .footer__cols {
    grid-template-columns: 1fr;
    gap: 2em;
  }
}
.consent-bar {
  position: fixed;
  inset-block-end: 0;
  inset-inline: 0;
  z-index: var(--z-cookie);
  padding: 1.25em;
}
.consent-bar[hidden] {
  display: none;
}
.consent-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5em 2em;
  width: min(var(--container), var(--container-max));
  margin-inline: auto;
  padding: 1.5em 1.75em;
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--ink-20);
  border-radius: 8px;
  box-shadow: 0 8px 40px #121b3f1f;
}
.consent-box[hidden] {
  display: none;
}
.consent-box__text {
  display: grid;
  gap: .35em;
  max-width: min(100%, 736px);
}
.consent-box__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
}
.consent-panel {
  display: block;
  max-height: 72svh;
  overflow: auto;
}
.consent-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  margin-block-end: 1.25em;
}
.consent-panel__close {
  background: transparent;
  border: 0;
  padding: .25em;
  cursor: pointer;
  color: var(--ink-60);
}
.consent-panel__close:hover {
  color: var(--ink);
}
.consent-panel__list {
  display: grid;
  gap: 1.25em;
  margin-block-end: 1.75em;
}
.consent-cat {
  display: grid;
  gap: .35em;
  padding-block-end: 1.25em;
  border-bottom: 1px solid var(--ink-10);
}
.consent-cat:last-child {
  border-bottom: 0;
  padding-block-end: 0;
}
.consent-cat__head {
  display: flex;
  align-items: center;
  gap: .85em;
  cursor: pointer;
}
.consent-cat__box {
  appearance: none;
  flex: 0 0 auto;
  width: 1.35em;
  height: 1.35em;
  margin: 0;
  border: 1px solid var(--ink-40);
  border-radius: 3px;
  background: transparent;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
.consent-cat__box:checked {
  background: var(--cta);
  border-color: var(--cta);
}
.consent-cat__box:checked::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: no-repeat center/.75em url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E");
}
.consent-cat__box:disabled {
  opacity: .5;
  cursor: not-allowed;
}
.consent-cat__text {
  padding-inline-start: 2.2em;
}
.consent-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
}
@media (max-width:479px) {
  .consent-box {
    width: 100%;
    padding: 1.25em;
  }
  .consent-box__actions {
    width: 100%;
  }
  .consent-box__actions .btn,
  .consent-panel__actions .btn {
    flex: 1 1 auto;
  }
}
.shell-legal {
  width: min(72em, 100%);
}
.legal {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25em;
  margin-block-start: 3em;
  max-width: min(100%, 704px);
}
.legal h2 {
  margin-block-start: 1.75em;
}
.legal p {
  line-height: 1.55;
}
.legal__list {
  display: grid;
  gap: .6em;
}
.legal__list li {
  display: flex;
  align-items: baseline;
  gap: .75em;
  font-size: clamp(18px, 1.25em, 20px);
  line-height: 1.5;
}
.legal__list li::before {
  content: "";
  flex: 0 0 auto;
  width: 1em;
  height: 1px;
  background: var(--ink-40);
  transform: translateY(-.35em);
}
.legal__dl {
  display: grid;
  grid-template-columns: minmax(0, 16em) minmax(0, 1fr);
  gap: .75em 1.5em;
  margin: 0;
  font-size: clamp(18px, 1.25em, 20px);
}
.legal__dl dt {
  color: var(--ink-60);
  font-size: clamp(16px, 1.05em, 17px);
  letter-spacing: .06em;
  text-transform: uppercase;
  align-self: baseline;
  padding-block-start: .25em;
}
.legal__dl dd {
  margin: 0;
}
.legal__table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(18px, 1.2em, 20px);
}
.legal__table th,
.legal__table td {
  text-align: start;
  padding: .85em .75em;
  border-bottom: 1px solid var(--ink-20);
  vertical-align: top;
  line-height: 1.45;
}
.legal__table th {
  font-size: clamp(16px, 1.05em, 17px);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-60);
  font-weight: 500;
  border-bottom-color: var(--ink);
}
.legal__inline-btn {
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
.legal__date {
  margin-block-start: 2em;
}
@media (max-width:991px) {
  .legal__dl {
    grid-template-columns: 1fr;
    gap: .2em;
  }
  .legal__dl dd {
    margin-block-end: .85em;
  }
  .legal__table {
    font-size: clamp(17px, 1.1em, 18px);
  }
  .legal__table th,
  .legal__table td {
    padding: .6em .4em;
  }
  .legal__table th,
  .legal__table td {
    overflow-wrap: break-word;
  }
}
@media (max-width:767px) {
  .legal__dl {
    grid-template-columns: 1fr;
    gap: .2em;
  }
  .legal__dl dd {
    margin-block-end: .85em;
  }
  .legal__table {
    font-size: clamp(17px, 1.1em, 18px);
  }
  .legal__table th,
  .legal__table td {
    padding: .6em .4em;
  }
}
@media (max-width:479px) {
  .legal__table {
    table-layout: fixed;
  }
  .legal__table th,
  .legal__table td {
    overflow-wrap: anywhere;
    padding: .55em .3em;
  }
}
.linked-block {
  margin-block-start: 6em;
  display: grid;
  gap: 1.5em;
  justify-items: start;
}
.linked-list {
  display: grid;
  border-top: 1px solid var(--ink-20);
  width: 100%;
}
.linked {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 1.5em;
  padding-block: 1.35em;
  border-bottom: 1px solid var(--ink-20);
  align-items: baseline;
}
@media (max-width:767px) {
  .linked-block {
    margin-block-start: 3.5em;
  }
  .linked {
    grid-template-columns: 1fr;
    gap: .3em;
  }
}
.hero__title {
  display: contents;
  font-size: inherit;
  font-weight: inherit;
}
.hero__claim {
  position: relative;
  z-index: 50;
  font-family: var(--serif);
  font-size: 3.25em;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin-block-start: .35em;
}
@media (max-width:991px) {
  .hero__claim {
    font-size: 2.75em;
  }
}
@media (max-width:479px) {
  .hero__claim {
    font-size: 1.75em;
    margin-block-start: .5em;
  }
}
.results__cta {
  margin-block-start: 0;
}
.format__lead {
  color: var(--ink);
}
.format__claim {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(19px, 1.5em, 24px);
  line-height: 1.3;
  color: var(--ink);
  margin-block-start: .25em;
}
@media (max-width:767px) {
  .format__claim {
    font-size: clamp(19px, 1.25em, 24px);
  }
}
.parcours__more {
  margin-block-start: .5em;
}
.parcours__more a {
  display: inline-flex;
  align-items: center;
  gap: .6em;
}
.pull__label {
  color: var(--ink-60);
}
.format__title,
.pillar__title,
.jeudis__text h3 {
  font-weight: 600;
}
.section__head > .b-14:first-child,
.section__head > .u-faint:first-child {
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--cta);
}
.section.is-ink .section__head > .b-14:first-child,
.section.is-ink .section__head > .u-faint:first-child {
  color: var(--ink);
}
.vcard__title {
  font-size: clamp(19px, 1.375em, 22px);
  font-weight: 600;
  line-height: 1.25;
}
.vcard__play svg {
  width: clamp(26px, 2em, 32px);
  height: clamp(26px, 2em, 32px);
}
.btn svg {
  width: clamp(17px, 1.35em, 22px);
  height: clamp(17px, 1.35em, 22px);
}
.vmodal__close svg {
  width: clamp(20px, 1.5em, 24px);
  height: clamp(20px, 1.5em, 24px);
}
.pillars-marquee {
  --card: clamp(280px, 34em, 544px);
  --gap: clamp(14px, 1.25em, 20px);
  --roll: 60s;
  margin-block-start: 4em;
  overflow: hidden;
  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0,
      #000 5%,
      #000 95%,
      transparent 100%);
  mask-image:
    linear-gradient(
      90deg,
      transparent 0,
      #000 5%,
      #000 95%,
      transparent 100%);
}
.pillars-marquee__track {
  display: flex;
  width: max-content;
  animation: pillars-roll var(--roll) linear infinite;
  will-change: transform;
}
.pillars-marquee__group {
  display: flex;
}
@keyframes pillars-roll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
.pillars-marquee:hover .pillars-marquee__track,
.pillars-marquee:focus-within .pillars-marquee__track,
.pillars-marquee.is-paused .pillars-marquee__track {
  animation-play-state: paused;
}
.pillars-marquee.is-draggable {
  cursor: grab;
  touch-action: pan-y;
}
.pillars-marquee.is-draggable .pillars-marquee__track {
  animation: none;
}
.pillars-marquee.is-draggable.is-grabbing {
  cursor: grabbing;
}
.pillars-marquee.is-draggable .pillar {
  user-select: none;
  -webkit-user-select: none;
}
.pillars-marquee .pillar {
  flex: 0 0 auto;
  width: var(--card);
  margin-inline-end: var(--gap);
  min-height: clamp(260px, 20em, 340px);
  align-content: center;
  padding: 2.5em 2em;
  background: var(--bg);
  border: 1px solid var(--ink-20);
  border-radius: 2px;
}
.pillars-marquee .pillar__index {
  color: var(--ink-60);
}
.pillars-marquee .pillar__title {
  font-size: clamp(32px, 3.25em, 52px);
  line-height: 1.05;
}
.pillars-marquee .pillar__lead {
  font-size: clamp(22px, 1.6em, 26px);
  line-height: 1.4;
}
@media (max-width:479px) {
  .pillars-marquee {
    --card: clamp(240px, 17em, 300px);
    --gap: clamp(12px, .75em, 14px);
    --roll: 90s;
  }
  .pillars-marquee .pillar {
    padding: 2em 1.5em;
    min-height: clamp(240px, 15em, 280px);
  }
  .pillars-marquee .pillar__title {
    font-size: clamp(30px, 2.4em, 40px);
  }
  .pillars-marquee .pillar__lead {
    font-size: clamp(21px, 1.4em, 23px);
  }
}
@media (prefers-reduced-motion: reduce), (max-width:767px), (pointer:coarse) and (max-width:900px) {
  .pillars-marquee {
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .pillars-marquee__track {
    animation: none;
    width: 100%;
  }
  .pillars-marquee__group[aria-hidden=true] {
    display: none;
  }
  .pillars-marquee__group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gap);
    width: min(100%, var(--container-max));
    margin-inline: auto;
    padding-inline: var(--gutter);
  }
  .pillars-marquee .pillar {
    width: auto;
    margin-inline-end: 0;
  }
}
@media (prefers-reduced-motion: reduce) and (max-width:991px), (max-width:767px), (pointer:coarse) and (max-width:900px) {
  .pillars-marquee__group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) and (max-width:479px), (max-width:479px) {
  .pillars-marquee__group {
    grid-template-columns: 1fr;
  }
}
.format {
  position: relative;
  z-index: 0;
  transition: scale .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s cubic-bezier(.22, 1, .36, 1);
}
.format__title {
  transition: color .3s ease;
}
@media (hover:hover) and (pointer:fine) {
  .format:hover {
    z-index: 1;
    scale: 1.012 !important;
    box-shadow: 0 1.25em 3em -1em rgba(18, 36, 58, .22);
  }
  .format:hover .format__title {
    color: var(--hover);
  }
}
.format:focus-within {
  z-index: 1;
  box-shadow: 0 1.25em 3em -1em rgba(18, 36, 58, .22);
}
@media (prefers-reduced-motion: reduce) {
  .format {
    transition: box-shadow .45s ease;
  }
  .format:hover {
    scale: none !important;
  }
}
.modules {
  margin-block-start: 5em;
}
.module {
  height: 100%;
  width: 100%;
  display: grid;
  gap: .65em;
  align-content: start;
  padding: 2em 1.75em 1.75em;
  text-align: start;
  cursor: pointer;
  background: var(--surface);
  border: 1px solid var(--ink-20);
  border-radius: 2px;
  transition: border-color .3s ease, box-shadow .45s cubic-bezier(.22, 1, .36, 1);
}
.module__index {
  color: var(--ink-60);
  letter-spacing: .1em;
}
.module__title {
  display: block;
  font-weight: 600;
  line-height: 1.2;
}
.module__teaser {
  color: var(--ink-60);
  line-height: 1.45;
}
.module__more {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  margin-block-start: .35em;
  color: var(--cta);
}
.module__more svg {
  width: 1em;
  height: 1em;
  transition: transform .3s ease;
}
@media (hover:hover) and (pointer:fine) {
  .module:hover {
    border-color: var(--ink-40);
    box-shadow: 0 .75em 2em -.75em rgba(18, 36, 58, .18);
  }
  .module:hover .module__more svg {
    transform: translateY(.15em);
  }
}
.module.is-open {
  border-color: var(--cta);
}
.module.is-open .module__more svg {
  transform: rotate(180deg);
}
.module-panel {
  overflow: hidden;
}
.module-panel__inner {
  display: grid;
  gap: 1em;
  align-content: start;
  max-width: min(100%, 720px);
  padding: 2em 0 .5em;
  border-block-start: 1px solid var(--ink-20);
}
.module-panel__title {
  font-weight: 600;
}
.module-panel__turn {
  color: var(--cta);
  display: flex;
  gap: .5em;
  align-items: baseline;
}
.module-panel__turn::before {
  content: "→";
  flex: 0 0 auto;
}
.module-panel__price {
  color: var(--ink-60);
}
.module-panel__inner .btn {
  justify-self: start;
  margin-block-start: .5em;
}
@media (max-width:767px) {
  .modules {
    margin-block-start: 3.5em;
  }
}
.section.is-ink.pull-plate {
  background: var(--bg);
  --surface:var(--bg);
}
.pull-plate {
  padding-block: var(--py-150);
}
.pull-plate .pull {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 0;
  align-items: stretch;
  max-width: none;
  text-align: start;
}
.pull__side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5em;
  padding-inline-end: 3em;
  border-inline-end: 2px solid var(--ink);
}
.pull-plate .pull__label {
  color: var(--ink);
}
.pull-plate .pull__label::before {
  content: "";
  display: block;
  inline-size: 3.5em;
  block-size: 4px;
  margin-block-end: 1.1em;
  background: var(--ink);
}
.pull-plate .pull__mark {
  width: 3.5em;
  height: auto;
  margin-block-start: auto;
  color: var(--ink);
  filter: none;
}
.pull__photo {
  margin: 0;
  inline-size: 100%;
}
.pull__photo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 1 / 1;
}
.pull__main {
  display: grid;
  gap: 2.75em;
  align-content: start;
  padding-inline-start: 4.5em;
}
.pull-plate .pull__quote {
  display: grid;
  justify-items: start;
  gap: .06em;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 5.4em, 72px);
  line-height: 1.12;
  letter-spacing: -.015em;
  color: var(--ink);
  max-width: 100%;
}
.pull__line {
  display: block;
}
.pull__voix {
  position: relative;
  display: block;
  justify-self: start;
  margin-block-start: .3em;
  padding: .02em .3em .16em;
  font-size: 1.7em;
  line-height: 1.05;
  letter-spacing: -.02em;
  white-space: nowrap;
  background: var(--ink);
  color: var(--bg);
}
.pull__voix-caret {
  position: absolute;
  inset-block: .14em .2em;
  inset-inline-start: calc(100% - .28em);
  inline-size: .035em;
  min-inline-size: 2px;
  border-radius: 1px;
  background: var(--bg);
  pointer-events: none;
  animation: pull-caret 1.06s linear infinite;
}
@keyframes pull-caret {
  0%, 42% {
    opacity: 1;
  }
  50%, 92% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.pull__voix.is-typing .pull__voix-caret {
  animation: none;
  opacity: 1;
}
.pull__voix.is-offscreen .pull__voix-caret {
  animation-play-state: paused;
}
.pull__voix.is-armed .pull__ch {
  opacity: 0;
}
.pull__voix.is-armed .pull__ch.is-on {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .pull__voix-caret {
    display: none;
  }
}
.pull-plate .pull .pull__support {
  max-width: 34em;
  padding-inline-start: 1.5em;
  border-inline-start: 2px solid var(--ink);
  color: var(--ink);
}
.pull-plate cite {
  display: flex;
  align-items: center;
  gap: 1em;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--ink);
}
.pull-plate cite::before {
  content: "";
  inline-size: 3em;
  block-size: 2px;
  background: var(--ink);
}
@media (max-width:991px) {
  .pull-plate .pull {
    grid-template-columns: 1fr;
  }
  .pull__side {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 1.5em;
    margin-block-end: 2.25em;
    border-inline-end: 0;
    border-block-end: 2px solid var(--ink);
  }
  .pull__photo {
    order: 3;
    flex: 0 0 100%;
    max-inline-size: 520px;
    margin-block-start: 1.5em;
  }
  .pull-plate .pull__label::before {
    display: none;
  }
  .pull-plate .pull__mark {
    margin-block-start: 0;
    width: 3em;
  }
  .pull__main {
    padding-inline-start: 0;
    gap: 2.25em;
  }
  .pull-plate .pull__quote {
    font-size: clamp(22px, 6.4vw, 56px);
  }
  .pull-plate .pull .pull__support {
    padding-inline-start: 1em;
  }
}
.fmt-hero .eyebrow {
  margin-block-end: 1.25em;
}
.fmt-hero__grid {
  display: grid;
  margin-block-start: 2.5em;
}
.fmt-hero__text {
  max-width: min(100%, 760px);
}
.fmt-hero__who {
  color: var(--ink);
}
@media (max-width:767px) {
  .fmt-hero__grid {
    margin-block-start: 1.5em;
  }
}
.fmt-hero .shell {
  position: relative;
}
.fmt-head {
  display: grid;
  gap: 1em;
  justify-items: start;
  margin-block-end: 4em;
}
.fmt-head h2 {
  max-width: min(100%, 1100px);
}
.fmt-head__lead {
  max-width: min(100%, 720px);
}
@media (max-width:767px) {
  .fmt-head {
    margin-block-end: 2.5em;
  }
}
.fmt-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--ink-20);
  border-block: 1px solid var(--ink-20);
}
.fmt-stat {
  display: grid;
  gap: .85em;
  align-content: start;
  padding: 2.5em 2em 2.75em;
  background: var(--surface);
}
.fmt-stat__num {
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(34px, 4em, 64px);
  line-height: 1;
  letter-spacing: -.04em;
}
.fmt-stat__txt {
  color: var(--ink);
}
.fmt-source {
  margin-block-start: 1.25em;
  color: var(--ink-60);
}
@media (max-width:767px) {
  .fmt-stats {
    grid-template-columns: 1fr;
  }
  .fmt-stat {
    padding: 2em 0 2.25em;
  }
}
@media (max-width:479px) {
  .fmt-stat__num {
    font-size: 2.25em;
  }
}
.fmt-gap {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 3em;
  margin-block-start: 5em;
  align-items: start;
}
@media (max-width:767px) {
  .fmt-gap {
    grid-template-columns: 1fr;
    gap: 1.5em;
    margin-block-start: 3em;
  }
}
.fmt-lead {
  margin-block-start: 3em;
}
.fmt-pillars {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--ink-20);
  border-block: 1px solid var(--ink-20);
}
.fmt-pillars .pillar {
  padding: 2.5em 1.75em 3em;
  background: var(--surface);
}
@media (max-width:991px) {
  .fmt-pillars {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:479px) {
  .fmt-pillars {
    grid-template-columns: 1fr;
  }
  .fmt-pillars .pillar {
    padding: 2em 0 2.25em;
  }
}
.fmt-punch {
  margin-block-start: 3em;
  max-width: min(100%, 900px);
}
.fmt-punch.has-accents {
  margin-block-start: calc(3em - var(--accent-room-serif));
}
.fmt-checks {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1em;
}
.fmt-checks__item {
  display: flex;
  align-items: flex-start;
  gap: .85em;
}
.fmt-checks__mark {
  flex: 0 0 auto;
  width: 1.25em;
  height: 1.25em;
  margin-block-start: .15em;
  color: var(--cta);
}
.is-ink .fmt-checks__mark {
  color: var(--cta-hover);
}
.section.is-ink .fmt-head .u-cta-color {
  color: var(--cta-hover);
}
.fmt-progs {
  display: grid;
  border-top: 1px solid var(--ink-20);
}
.fmt-prog {
  display: grid;
  grid-template-columns: 5.625em minmax(0, 1fr);
  column-gap: 2.5em;
  row-gap: .75em;
  padding-block: 2.5em;
  border-bottom: 1px solid var(--ink-20);
}
.fmt-prog > * {
  grid-column: 2;
  max-width: min(100%, 900px);
}
.fmt-prog__index {
  grid-column: 1;
  grid-row: 1 / span 3;
  color: var(--ink-60);
  letter-spacing: .1em;
  padding-block-start: .4em;
}
.fmt-prog__meta {
  color: var(--cta);
}
@media (max-width:767px) {
  .fmt-prog {
    grid-template-columns: 1fr;
    padding-block: 2em;
    row-gap: .6em;
  }
  .fmt-prog > * {
    grid-column: 1;
  }
  .fmt-prog__index {
    grid-row: auto;
    padding-block-start: 0;
  }
}
.fmt-prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5em;
}
.fmt-price {
  display: grid;
  gap: .6em;
  align-content: start;
  padding: 2.25em 2em 2.5em;
  background: var(--surface);
  border: 1px solid var(--ink-20);
  border-radius: 2px;
}
.fmt-price__meta {
  color: var(--ink-60);
}
.fmt-price__num {
  margin-block-start: .4em;
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(24px, 2.25em, 36px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--cta);
}
.fmt-note {
  margin-block-start: 2.5em;
  color: var(--ink-60);
  max-width: min(100%, 760px);
}
@media (max-width:767px) {
  .fmt-prices {
    grid-template-columns: 1fr;
  }
}
.fmt-quotes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--ink-20);
  border-block: 1px solid var(--ink-20);
}
.fmt-quote {
  display: grid;
  gap: 1em;
  align-content: start;
  padding: 2.5em 2em 3em;
  background: var(--surface);
}
.fmt-quote__mark {
  width: 2.5em;
  height: auto;
  color: var(--cta);
}
.fmt-quote__text {
  line-height: 1.4;
}
.fmt-quote__who {
  color: var(--ink-60);
  letter-spacing: .04em;
  text-transform: uppercase;
}
@media (max-width:991px) {
  .fmt-quotes {
    grid-template-columns: 1fr;
  }
}
@media (max-width:767px) {
  .fmt-quote {
    padding: 2em 0 2.25em;
  }
}
.fmt-cta {
  display: grid;
  gap: 1.5em;
  justify-items: center;
  text-align: center;
  max-width: min(100%, 900px);
  margin-inline: auto;
}
.fmt-cta__note {
  max-width: min(100%, 560px);
}
.format__more {
  display: inline-flex;
  justify-self: start;
  align-items: center;
  gap: .5em;
  margin-block-start: .35em;
  color: var(--cta);
}
.format__more svg {
  width: 1.5em;
  height: 1.125em;
  transition: transform .3s ease;
}
@media (hover:hover) and (pointer:fine) {
  .format:hover .format__more svg {
    transform: translateX(.2em);
  }
}
.capsules {
  margin-block-start: 4em;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5em 2em;
}
.capsules .vcard__frame {
  aspect-ratio: 16/9;
  max-block-size: min(62svh, 560px);
}
.capsules .vcard__frame video,
.capsules .vcard__frame img {
  object-position: 50% 20%;
}
.capsules .vcard__frame[data-video-modal*=avant-apres] video,
.capsules .vcard__frame[data-video-modal*=avant-apres] img {
  object-position: 50% 57%;
}
@media (max-width:767px) {
  .capsules {
    margin-block-start: 3em;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:479px) {
  .capsules {
    grid-template-columns: 1fr;
  }
}
.introvid {
  margin-block-start: 1em;
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 4fr);
  gap: 4em;
  align-items: center;
}
.introvid__text {
  display: grid;
  gap: 1.25em;
  justify-items: start;
}
.introvid__card {
  inline-size: min(100%, 240px);
  margin-inline: auto;
}
.introvid .vcard__frame {
  aspect-ratio: 1/1;
}
@media (max-width:767px) {
  .introvid {
    grid-template-columns: 1fr;
    gap: 2em;
  }
  .introvid__card {
    max-inline-size: none;
  }
}
.vmodal {
  position: fixed;
  inset: 0;
  z-index: var(--z-vmodal);
  display: grid;
  place-items: center;
  padding: clamp(12px, 4vw, 40px);
  opacity: 0;
  transition: opacity .28s ease;
}
.vmodal[hidden] {
  display: none;
}
.vmodal.is-open {
  opacity: 1;
}
.vmodal__scrim {
  position: absolute;
  inset: 0;
  background: #021926e6;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.vmodal__box {
  position: relative;
  display: flex;
  transform: scale(.96);
  transition: transform .28s ease;
}
.vmodal.is-open .vmodal__box {
  transform: scale(1);
}
.vmodal__video {
  display: block;
  width: auto;
  height: auto;
  max-width: min(92vw, 460px);
  max-height: 86svh;
  border-radius: var(--r-video);
  background: #000;
  box-shadow: 0 30px 80px #02192680;
}
.vmodal__close {
  position: absolute;
  inset-block-start: .75em;
  inset-inline-end: .75em;
  inline-size: 2.75em;
  block-size: 2.75em;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #02192699;
  color: var(--on-ink);
  cursor: pointer;
  transition: background-color .25s ease;
}
.vmodal__close:hover {
  background: var(--ink);
}
@media (max-width:479px) {
  .vmodal {
    padding: 8px;
  }
  .vmodal__video {
    max-width: 96vw;
    max-height: 82svh;
  }
}
@media (prefers-reduced-motion: reduce) {
  .vmodal,
  .vmodal__box {
    transition: none;
  }
}
@media (pointer:coarse) {
  .nav__toggle {
    min-width: 44px;
    min-height: 44px;
  }
  .cal__nav {
    min-width: 44px;
    min-height: 44px;
  }
  .cal__grid {
    column-gap: 2px;
  }
  .cal__day {
    min-height: 44px;
    width: 100%;
    max-width: 3.5em;
  }
  .skip-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .nav__brand {
    min-height: 44px;
  }
  .footer__col {
    gap: 0;
  }
  .footer__col a,
  .footer__col button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .consent-cat__box,
  input[type=checkbox] {
    min-width: 24px;
    min-height: 24px;
  }
}
.nav__toggle,
.cal__nav,
.consent-cat__box,
.vmodal__close {
  min-width: 24px;
  min-height: 24px;
}
.float-btns {
  position: fixed;
  inset-block-end: calc(1.25em + env(safe-area-inset-bottom, 0px));
  inset-inline-end: 1.25em;
  z-index: var(--z-float);
  pointer-events: none;
}
.float-btns__book {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: .7em;
  min-height: 56px;
  padding: 1.15em 2em;
  font-family: var(--sans);
  font-weight: 600;
  font-size: clamp(18px, 1.25em, 21px);
  line-height: 1;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  color: var(--on-cta, #fff);
  background: var(--ink);
  border: 2px solid var(--bg);
  border-radius: 100px;
  box-shadow: 0 2px 6px rgba(18, 27, 63, .25), 0 10px 30px rgba(18, 27, 63, .3);
  transition:
    background-color .3s ease,
    color .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}
.float-btns__book:hover,
.float-btns__book:focus-visible {
  background: var(--bg);
  color: var(--ink);
  border-color: var(--ink);
  box-shadow: 0 2px 8px rgba(18, 27, 63, .35), 0 14px 38px rgba(18, 27, 63, .4);
}
.float-btns__book svg {
  flex: 0 0 auto;
}
@media (max-width:479px) {
  .float-btns {
    inset-block-end: calc(.85em + env(safe-area-inset-bottom, 0px));
    inset-inline-end: .85em;
  }
  .float-btns__book {
    min-height: 54px;
    padding: 1.05em 1.6em;
    font-size: clamp(18px, 1.1em, 20px);
  }
  .float-btns__book svg {
    display: none;
  }
}
@media (max-width:359px) {
  .float-btns__book {
    padding: 1.05em 1.25em;
  }
}
@media (prefers-reduced-motion: reduce), (max-width:767px), (pointer:coarse) and (max-width:900px) {
  .float-btns__book {
    transform: none !important;
  }
}
.grid-title.section__head {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  row-gap: .6em;
}
.section__head :is(h1, h2, h3) {
  font-weight: 700;
}
.grid-title.section__head > p {
  grid-column: 1;
  max-width: min(100%, 40em);
  margin-block-start: .4em;
}
.method__brand {
  justify-items: center;
  text-align: center;
}
.sub-head {
  text-align: center;
  font-weight: 700;
  justify-self: center;
  margin-inline: auto;
  color: var(--ink);
}
.sub-head {
  margin-block-end: 1.75em;
}
.introvid {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  gap: 2.5em;
}
.introvid__text {
  justify-items: center;
  max-width: min(100%, 40em);
}
.gap-note {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}
.gap-note__stack {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3em;
  max-width: min(100%, 92em);
  margin-inline: auto;
  align-items: start;
}
@media (max-width:767px) {
  .gap-note__stack {
    grid-template-columns: 1fr;
    gap: 1.6em;
  }
}
.gap-note__strong {
  font-weight: 700;
}
.pillars-marquee .pillar__index {
  font-size: clamp(28px, 2.5em, 40px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--cta);
}
.modules-grid .module__index {
  font-size: clamp(24px, 2em, 32px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--cta);
}
.formats__meta {
  margin-block: -2.5em 3em;
  text-align: end;
  color: var(--ink-60);
  line-height: 1.5;
}
.formats__opco {
  color: var(--cta);
  font-weight: 600;
}
.formats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5em;
  background: none;
  border-block: 0;
}
.format {
  padding: 2.5em 1.75em 2.75em;
  border: 2px solid var(--ink);
  border-radius: 0;
}
.format::before {
  content: "";
  display: block;
  inline-size: 3.5em;
  block-size: 4px;
}
.is-gold .format--dirigeant {
  background: var(--cta-lift);
  color: var(--ink);
}
.format--dirigeant::before {
  background: var(--ink);
}
.format--dirigeant .format__title {
  color: var(--ink);
}
.format--dirigeant .format__lead {
  color: var(--ink-80);
}
.format--dirigeant .format__claim {
  color: var(--ink-90);
}
.format--dirigeant .format__more {
  color: var(--ink);
}
@media (hover:hover) and (pointer:fine) {
  .format--dirigeant:hover .format__title {
    color: var(--hover);
  }
}
.is-gold .format--feminin {
  background: var(--bg);
}
.format--feminin::before {
  background: var(--cta);
}
.is-gold .format--jeunes {
  background: var(--bg);
}
.format--jeunes::before {
  background: var(--cta);
}
.format--jeunes .format__title {
  color: var(--cta-hover);
}
@media (max-width:991px) {
  .formats {
    grid-template-columns: 1fr;
  }
}
.cv {
  display: grid;
  gap: 2.5em;
}
.cv__group {
  display: grid;
  gap: .85em;
  border-top: 1px solid var(--ink-20);
  padding-block-start: 1.25em;
}
.cv__head {
  color: var(--cta);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cv__list {
  display: grid;
  gap: .5em;
}
.cv__list li {
  position: relative;
  padding-inline-start: 1.15em;
}
.cv__list li::before {
  content: "";
  position: absolute;
  inset-block-start: .6em;
  inset-inline-start: 0;
  inline-size: .35em;
  block-size: .35em;
  border-radius: 50%;
  background: var(--cta);
}
.cv__year {
  font-weight: 700;
}
.parcours__figure img {
  max-width: min(100%, 30em);
}
.parcours__figure.parcours__figure--now img {
  max-width: 100%;
}
.parcours__caption {
  margin-block-start: .9em;
  max-width: min(100%, 30em);
  color: var(--ink);
  font-weight: 700;
}
@media (max-width:767px) {
  .gap-note {
    justify-items: center;
    text-align: center;
  }
  .formats__meta {
    margin-block: -1em 2em;
    text-align: center;
  }
  .sub-head {
    margin-block-end: 1.25em;
  }
  .cv {
    gap: 2em;
  }
}
.introvid__text h2 {
  font-weight: 700;
}
.parcours__more {
  margin-block-start: 1.75em;
}
@media (min-width:992px) {
  .formats.formats--solo {
    grid-template-columns: calc((100% - 3em) / 3);
    justify-content: center;
  }
}
.bloc-ecoles {
  margin-block-start: 6em;
}
@media (max-width:767px) {
  .bloc-ecoles {
    margin-block-start: 3.5em;
  }
}
@media (min-width:992px) {
  .formats.formats--quad {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width:1280px) {
  .formats.formats--quad {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.is-gold .format--managers {
  background: var(--bg);
}
.format--managers::before {
  background: var(--ink);
}
.is-gold .format--jeunes-ent {
  background: var(--cta-lift);
  color: var(--ink);
}
.format--jeunes-ent::before {
  background: var(--ink);
}
.format--jeunes-ent .format__title {
  color: var(--ink);
}
.format--jeunes-ent .format__lead {
  color: var(--ink-80);
}
.format--jeunes-ent .format__claim {
  color: var(--ink-90);
}
.format--jeunes-ent .format__more {
  color: var(--ink);
}
@media (hover:hover) and (pointer:fine) {
  .format--jeunes-ent:hover .format__title {
    color: var(--hover);
  }
}
.method-link {
  display: grid;
  gap: 1.25em;
  justify-items: center;
}
.module-panel__inner--wide {
  max-width: 100%;
}
.module-panel .jeudis {
  margin-block-start: 0;
}
main > section + section,
main + .footer-section {
  border-block-start: 2px solid var(--ink);
}
.format__more,
.module__title,
.module__more,
.vcard__title,
.menu-item__title,
.link-underline,
.link-dot,
.footer__cookies,
.legal__inline-btn {
  transition: color .3s ease;
}
@media (hover:hover) and (pointer:fine) {
  .format:hover .format__more,
  .module:hover .module__title,
  .module:hover .module__more,
  .vcard:hover .vcard__title,
  .menu-item:hover .menu-item__title,
  .link-underline:hover,
  .link-dot:hover,
  .footer__cookies:hover,
  .legal__inline-btn:hover {
    color: var(--hover);
  }
  .menu-item:hover {
    opacity: 1;
  }
}
.format:focus-within .format__title,
.format:focus-within .format__more,
.module:focus-visible .module__title,
.module:focus-visible .module__more,
.menu-item:focus-visible .menu-item__title {
  color: var(--hover);
}
.formats__lead {
  color: var(--ink);
  font-weight: 500;
}
.modules-grid .module {
  gap: 1em;
  padding: 2.5em 1.75em 2.75em;
  border: 2px solid var(--ink);
  border-radius: 0;
}
@media (hover:hover) and (pointer:fine) {
  .modules-grid .module:hover {
    border-color: var(--ink);
  }
}
@media (max-width:767px) {
  .modules-grid .module {
    padding-inline: 1.5em;
  }
}
.fmt-quotes--solo {
  grid-template-columns: minmax(0, 820px);
  background: none;
}
.facts {
  margin: 0;
}
.facts dd {
  margin: 0;
}
@media (max-width:767px) {
  .fact {
    grid-template-columns: 1fr;
    gap: .35em;
  }
}
.fmt-gap--constat {
  margin-block-start: 0;
}
.fmt-gap--constat .fmt-source {
  margin-block-start: 0;
}
.method-panel {
  overflow: hidden;
}
.method-panel__inner {
  padding-block-start: 4em;
}
.method-toggle__chev {
  transition: transform .3s ease;
}
.method-toggle[aria-expanded=true] .method-toggle__chev {
  transform: rotate(180deg);
}
@media (max-width:767px) {
  .method-panel__inner {
    padding-block-start: 2.5em;
  }
}
.formats__label {
  text-transform: uppercase;
  letter-spacing: .02em;
  font-weight: 700;
  text-align: center;
  justify-self: center;
  margin-block-end: .2em;
}
.section__num {
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--cta);
}
.formats__who {
  font-weight: 700;
}

.modules-grid {
  grid-auto-flow: row dense;
  row-gap: 0;
  margin-block-end: -1.5em;
}
.modules-grid .module {
  height: auto;
  margin-block-end: 1.5em;
}
.modules-grid .module-panel {
  grid-column: 1 / -1;
}
.modules-grid .module-panel__inner {
  padding-block: 1.75em 2.5em;
}
.modules-grid .module.is-open {
  background: var(--ink);
  color: var(--bg);
}
.modules-grid .module.is-open .module__index,
.modules-grid .module.is-open .module__title,
.modules-grid .module.is-open .module__teaser,
.modules-grid .module.is-open .module__more {
  color: var(--bg);
}
@media (max-width:479px) {
  .pillars-marquee__group,
  .capsules,
  #medias .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.fmt-hero__photo,
.method__photo,
.apropos__photo {
  margin: 0;
}
.fmt-hero__photo img,
.method__photo img,
.apropos__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}
.photo-credit {
  margin-block-start: .6em;
}
@media (min-width:768px) {
  .fmt-hero__grid:has(.fmt-hero__photo) {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 4em;
    align-items: start;
  }
}
@media (max-width:767px) {
  .fmt-hero__grid:has(.fmt-hero__photo) {
    gap: 1.5em;
  }
  .fmt-hero__photo {
    order: -1;
  }
}
.method__photo {
  max-width: 900px;
  margin: 3em auto 0;
}
.apropos__photo {
  max-width: min(100%, 460px);
  margin-block-start: 1em;
}
@media (max-width:479px) {
  .pillars-marquee .pillar {
    align-content: start;
    padding: 1.5em .75em;
  }
  .pillars-marquee .pillar__index {
    justify-self: center;
    text-align: center;
  }
  .pillars-marquee .pillar__title {
    font-size: clamp(21px, 6.2vw, 28px);
    text-align: center;
  }
  .pillars-marquee .pillar__lead {
    font-size: clamp(15px, 4.4vw, 18px);
    text-align: center;
  }
}
@media (max-width:767px) {
  .capsules > .vcard:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 2em) / 2);
  }
}
@media (max-width:991px) {
  #medias .gallery > .vcard:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 2em) / 2);
  }
}
.promo-bar {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: calc(var(--z-menu) - 1);
  background: var(--ink);
  color: var(--on-ink);
  transition: transform .35s ease;
}
html.promo-away .promo-bar {
  transform: translateY(-100%);
}
.promo-bar__text {
  padding-block: .7em;
  font-family: var(--sans);
  font-weight: 400;
  font-size: clamp(15px, 1.1em, 18px);
  line-height: 1.4;
  text-align: center;
  text-wrap: balance;
}
.promo-bar__title {
  font-weight: 600;
}
.promo-bar__link {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  margin-inline-start: .5em;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}
.promo-bar__link::after {
  content: "";
  position: absolute;
  inset: 0;
}
.promo-bar__link svg {
  flex: none;
  width: 1.25em;
  height: .95em;
  transition: transform .3s ease;
}
@media (hover:hover) and (pointer:fine) {
  .promo-bar:hover .promo-bar__link svg {
    transform: translateX(.25em);
  }
}
.promo-bar__link:focus-visible {
  outline: none;
}
.promo-bar__link:focus-visible::after {
  outline: 2px solid var(--on-ink);
  outline-offset: -4px;
}
.promo-bar ~ .nav {
  transform: translateY(var(--promo-h, 0px));
  transition: color .4s ease, transform .35s ease;
}
html.promo-away .promo-bar ~ .nav,
html.is-menu-open .promo-bar ~ .nav {
  transform: none;
}
@media (max-width:767px), (pointer:coarse) and (max-width:900px) {
  .promo-bar__text {
    padding-block: .6em;
    font-size: 15px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .promo-bar,
  .promo-bar ~ .nav {
    transition: none;
  }
}
.brochure {
  display: grid;
  gap: 3em;
  max-width: min(100%, 1180px);
  margin-inline: auto;
}
.brochure__pages {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5em;
}
.brochure__page {
  display: block;
  overflow: hidden;
  border-radius: 2px;
  box-shadow: 0 0 0 1px var(--ink-10), 0 14px 32px -18px rgba(18, 27, 63, .45);
  transition: transform .4s ease, box-shadow .4s ease;
}
.brochure__page img {
  display: block;
  width: 100%;
  height: auto;
}
@media (hover:hover) and (pointer:fine) {
  .brochure__page:hover {
    transform: translateY(-4px);
    box-shadow: 0 0 0 1px var(--ink-20), 0 22px 40px -20px rgba(18, 27, 63, .5);
  }
}
.brochure__page:focus-visible {
  outline: 2px solid var(--cta);
  outline-offset: 4px;
}
.brochure__actions {
  display: grid;
  justify-items: center;
  gap: 1.5em;
  text-align: center;
}
.brochure__ask {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1em 1.5em;
}
@media (max-width:767px) {
  .brochure {
    gap: 2em;
  }
  .brochure__pages {
    grid-template-columns: 1fr;
    gap: 1em;
  }
  .brochure__ask {
    flex-direction: column;
  }
}
.cmodal {
  position: fixed;
  inset: 0;
  z-index: var(--z-vmodal);
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 40px);
  opacity: 0;
  transition: opacity .3s ease;
}
.cmodal[hidden] {
  display: none;
}
.cmodal.is-open {
  opacity: 1;
}
.cmodal__scrim {
  position: absolute;
  inset: 0;
  padding: 0;
  border: 0;
  background: #121b3f8c;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  cursor: pointer;
}
.cmodal__box {
  position: relative;
  display: grid;
  gap: .6em;
  justify-items: start;
  width: min(100%, 560px);
  padding: 3em 3em 3.25em;
  background: var(--bg);
  color: var(--ink);
  border-radius: var(--r-video);
  box-shadow: 0 30px 80px #02192659;
  transform: translateY(14px) scale(.97);
  transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}
.cmodal.is-open .cmodal__box {
  transform: none;
}
.cmodal__box .eyebrow {
  margin-block-end: .5em;
  color: var(--cta-hover);
}
.cmodal__box a {
  max-width: 100%;
  overflow-wrap: break-word;
}
.cmodal__close {
  position: absolute;
  inset-block-start: 1em;
  inset-inline-end: 1em;
  display: grid;
  place-items: center;
  width: 2.75em;
  height: 2.75em;
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  border: 1px solid var(--ink-20);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition:
    transform .45s cubic-bezier(.22, 1, .36, 1),
    background-color .3s ease,
    border-color .3s ease,
    color .3s ease;
}
.cmodal__close svg {
  width: 45%;
  height: 45%;
}
@media (hover:hover) and (pointer:fine) {
  .cmodal__close:hover {
    transform: rotate(90deg);
    background: var(--ink);
    border-color: var(--ink);
    color: var(--on-ink);
  }
}
.cmodal__close:focus-visible {
  outline: 2px solid var(--cta);
  outline-offset: 3px;
}
@media (max-width:479px) {
  .cmodal__box {
    padding: 3em 1.5em 2.5em;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cmodal,
  .cmodal__box,
  .cmodal__close {
    transition: none;
  }
}
