
@font-face {
  font-family: 'Livvic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/livvic-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Livvic';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/livvic-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('assets/fonts/opensans-300-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --anthracite:      #212121;
  --anthracite-deep: #1A1A1A;
  --body:            #3D3D3D;
  --muted:           #5C5C5C;
  --line:            #E3E3E3;
  --line-soft:       #EDEDED;
  --bg:              #F6F6F6;
  --surface:         #FFFFFF;
  --beige:           #F4EEE8;
  --navy-deep:       #001A4D;
  --navy:            #002366;
  --navy-hover:      #001B52;
  --accent-soft:     #D6E2F7;
  --accent-softer:   #EDF2FB;
  --blue:            #0F52BA;
  --blue-ink:        #0F52BA;
  --on-dark:         #FFFFFF;
  --on-dark-muted:   #B9C6E0;
  --on-dark-line:    #1C3A73;
  --on-dark-accent:  #8FB4F5;
  --error-line:      #C4756B;
  --error-line-soft: #E4C4BE;
  --error-surface:   #FBF0EE;
  --error-ink:       #7A3B31;
  --font-display: 'Livvic', 'Trebuchet MS', system-ui, sans-serif;
  --font-sans: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fs-eyebrow: 0.8125rem;
  --fs-sm:      0.9375rem;
  --fs-base:    1rem;
  --fs-lead:    clamp(1.0625rem, 0.98rem + 0.4vw, 1.1875rem);
  --fs-h3:      clamp(1.1875rem, 1.12rem + 0.35vw, 1.375rem);
  --fs-h2:      clamp(1.875rem, 1.45rem + 1.9vw, 2.875rem);
  --fs-h1:      clamp(2.125rem, 1.55rem + 2.5vw, 3.5rem);
  --fs-stat:    clamp(2rem, 1.6rem + 1.8vw, 2.75rem);
  --sp-section: clamp(2rem, 1.28rem + 2.96vw, 3.5rem);
  --sp-section-dark: clamp(2.25rem, 1.44rem + 3.33vw, 4rem);
  --radius:     12px;
  --radius-sm:  8px;
  --radius-lg:  20px;
  --maxw:       1180px;
  --gutter:     clamp(1.25rem, 0.9rem + 1.6vw, 2.5rem);
  --shadow-xs: 0 1px 2px rgba(33, 33, 33, .04);
  --shadow-sm: 0 1px 3px rgba(33, 33, 33, .05), 0 4px 12px -4px rgba(33, 33, 33, .05);
  --shadow-md: 0 2px 6px rgba(33, 33, 33, .05), 0 12px 28px -12px rgba(33, 33, 33, .12);
  --shadow-lg: 0 4px 10px rgba(33, 33, 33, .05), 0 24px 48px -20px rgba(33, 33, 33, .18);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --dur:  240ms;
  --z-nav:     10;
  --z-cta:     15;
  --z-drawer:  20;
  --z-skip:    30;
  --z-panel:   40;
}
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 6.25rem;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--body);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.65;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
[hidden] { display: none !important; }
html.has-panel, html.has-panel body { overflow: hidden; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--anthracite);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.14;
  margin: 0;
  text-wrap: balance;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.3; letter-spacing: -0.015em; }
p { margin: 0; text-wrap: pretty; }
a { color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: 3px; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 3px;
  border-radius: 4px;
}
.on-dark :focus-visible { outline-color: var(--on-dark-accent); }
.skip-link {
  position: absolute;
  left: 1rem; top: -100%;
  z-index: var(--z-skip);
  background: var(--anthracite);
  color: var(--on-dark);
  padding: .75rem 1.25rem;
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: none;
}
.skip-link:focus { top: 1rem; }
.wrap {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section { padding-block: var(--sp-section); }
.section--beige { background: var(--beige); }
.section--immersive,
.section.on-dark { padding-block: var(--sp-section-dark); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0 0 .75rem;
}
.eyebrow::before {
  content: "";
  width: 22px; height: 1px;
  background: var(--blue);
  flex: none;
}
.on-dark .eyebrow { color: var(--on-dark-accent); }
.section-head { max-width: 46rem; margin-bottom: clamp(1.75rem, 1.3rem + 2vw, 2.75rem); }
.section-head p { font-size: var(--fs-lead); color: var(--muted); margin-top: .875rem; }
.lead { font-size: var(--fs-lead); color: var(--muted); }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: .875rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: -0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dur) var(--ease),
              border-color var(--dur) var(--ease),
              color var(--dur) var(--ease),
              box-shadow var(--dur) var(--ease);
}
.btn--primary {
  background: var(--navy);
  color: #FFFFFF;
  box-shadow: var(--shadow-sm);
}
.btn--primary:hover { background: var(--navy-hover); box-shadow: var(--shadow-md); }
.btn--ghost {
  background: transparent;
  color: var(--anthracite);
  border-color: var(--line);
}
.btn--ghost:hover { background: var(--surface); border-color: #D0D0D0; box-shadow: var(--shadow-xs); }
.btn--wide { width: 100%; }
.btn svg { flex: none; }
.btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  padding: .625rem var(--gutter);
}
.nav {
  max-width: var(--maxw);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .375rem .5rem .375rem .875rem;
  background: rgba(255, 255, 255, .88);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border: 1px solid var(--line);
  border-radius: 999px;
  box-shadow: var(--shadow-xs);
  transition: box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease),
              transform var(--dur) var(--ease);
}
.site-header[data-scrolled="true"] .nav {
  background: rgba(255, 255, 255, .95);
  box-shadow: var(--shadow-sm);
  transform: translateY(-5px);
}
.site-header[data-scrolled="true"] .brand__logo { transform: scale(.704); }
.brand {
  display: inline-flex;
  align-items: center;
  gap: .625rem;
  text-decoration: none;
  color: var(--anthracite);
  margin-right: auto;
  padding: 0 .125rem;
}
.brand__logo {
  display: block;
  height: 54px;
  width: auto;
  flex: none;
  transform-origin: left center;
  transition: transform var(--dur) var(--ease);
}
.nav__links { display: none; align-items: center; gap: .25rem; }
.nav__links a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 .875rem;
  border-radius: 999px;
  color: var(--body);
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: none;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nav__links a:hover { background: var(--accent-softer); color: var(--navy-hover); }
.nav__links a { white-space: nowrap; }
.nav__cta { white-space: nowrap; }
@media (min-width: 900px) and (max-width: 1023.98px) {
  .nav { gap: .625rem; }
  .nav__links a { padding: 0 .5rem; }
  .brand__logo { height: 44px; }
}
.nav__cta { display: none; }
.nav__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--anthracite);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease);
}
.nav__toggle:hover { background: var(--beige); }
.nav__toggle .icon-close { display: none; }
.nav__toggle[aria-expanded="true"] .icon-open { display: none; }
.nav__toggle[aria-expanded="true"] .icon-close { display: block; }
.drawer {
  position: fixed;
  inset: 5rem var(--gutter) auto;
  z-index: var(--z-drawer);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: .75rem;
  display: none;
}
.drawer[data-open="true"] { display: block; }
.site-header[data-scrolled="true"] .drawer { inset-block-start: 4.75rem; }
.drawer a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 1rem;
  border-radius: var(--radius);
  color: var(--anthracite);
  font-weight: 500;
  text-decoration: none;
  transition: background-color var(--dur) var(--ease);
}
.drawer a:hover { background: var(--beige); }
.drawer .btn { margin-top: .5rem; }
.drawer a.btn--primary,
.drawer a.btn--primary:link,
.drawer a.btn--primary:visited,
.drawer a.btn--primary:hover,
.drawer a.btn--primary:focus,
.drawer a.btn--primary:focus-visible,
.drawer a.btn--primary:active { color: #FFFFFF; }
.drawer a.btn--primary { background: var(--navy); }
.drawer a.btn--primary:hover,
.drawer a.btn--primary:focus-visible { background: var(--navy-hover); }
.drawer a.btn--primary:active { background: var(--navy-deep); }
@media (min-width: 900px) {
  .nav__links, .nav__cta { display: flex; }
  .nav__toggle { display: none; }
  .drawer { display: none !important; }
}
.hero { position: relative; isolation: isolate; overflow: hidden; }
.hero__media {
  position: relative;
  width: 100%;
  margin-top: -2rem;
}
.hero__media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(33,33,33,.28) 0%, rgba(33,33,33,0) 45%);
  pointer-events: none;
}
.hero__media picture { display: block; }
.hero__media img {
  width: 100%;
  display: block;
  aspect-ratio: 7 / 6;
  max-height: 380px;
  object-fit: cover;
  object-position: 85% 34%;
  background: var(--beige);
  -webkit-mask-image: linear-gradient(to bottom, #000 97%, rgba(0,0,0,.55) 99%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 97%, rgba(0,0,0,.55) 99%, transparent 100%);
}
@media (min-width: 700px) {
  .hero__media img {
    aspect-ratio: 16 / 9;
    max-height: 420px;
    object-position: 60% 32%;
  }
}
.hero__body {
  position: relative;
  display: grid;
  gap: 2rem;
  padding-block: 1.25rem clamp(1.5rem, 1.02rem + 1.98vw, 2.5rem);
}
.hero__rating {
  max-width: 19.5rem;
  padding: 1.25rem 1.375rem 1.3125rem;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(237,242,251,.72));
  border: 1px solid var(--accent-soft);
  border-radius: var(--radius);
  box-shadow: 0 1px 2px rgba(0, 35, 102, .04);
}
.hero__rating-stars { display: flex; gap: .1875rem; }
.hero__rating-stars svg { width: 17px; height: 17px; color: var(--blue); flex: none; }
.hero__rating-score {
  display: flex;
  align-items: baseline;
  gap: .0625rem;
  margin-top: .4375rem;
  font-family: var(--font-display);
  color: var(--navy);
  line-height: 1;
  letter-spacing: -0.02em;
}
.hero__rating-value { font-size: 2.75rem; }
.hero__rating-max { font-size: 1.25rem; color: var(--blue); }
.hero__rating-count {
  margin-top: .4375rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--anthracite);
  line-height: 1.4;
}
.hero__rating-src {
  margin-top: .625rem;
  padding-top: .625rem;
  border-top: 1px solid var(--accent-soft);
  font-size: .8125rem;
  color: var(--muted);
  line-height: 1.4;
}
.hero__copy,
.hero__intro,
.hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.hero__copy p { max-width: 34rem; }
.hero h1 em {
  font-style: italic;
  color: var(--blue);
}
.hero__proof {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  font-size: var(--fs-sm);
  color: var(--muted);
  margin-top: -.25rem;
}
.hero__proof li { display: inline-flex; align-items: center; gap: .4375rem; }
.hero__proof svg { color: var(--navy); flex: none; }
@media (min-width: 900px) {
  .hero__media { margin-top: -6rem; }
  .hero__media img {
    aspect-ratio: 21 / 9;
    max-height: min(52vh, 460px);
    object-position: center 28%;
  }
  .hero__body {
    grid-template-columns: repeat(12, 1fr);
    column-gap: 2.5rem;
    row-gap: 1.5rem;
    padding-top: 1.25rem;
  }
  .hero__copy { display: contents; }
  .hero__intro   { grid-column: 5 / span 8; grid-row: 1; }
  .hero__actions { grid-column: 5 / span 8; grid-row: 2; }
  .hero__rating {
    grid-column: 1 / span 4;
    grid-row: 1;
    align-self: center;
  }
}
.qualify { max-width: 47.5rem; margin-inline: auto; }
.qualify-head {
  max-width: 47.5rem;
  margin-inline: auto;
  margin-bottom: clamp(.875rem, .7rem + .8vw, 1.25rem);
  text-align: center;
}
.section--qualify { padding-block: clamp(1.75rem, 1.1rem + 2.6vw, 3rem); }
.qualify.is-ready::before {
  content: "";
  display: block;
  width: 1px;
  height: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
  margin-inline: auto;
  background: linear-gradient(180deg, transparent, var(--blue));
}
.qualify .quiz { padding: clamp(1.375rem, 1.15rem + 1vw, 2rem); }
.qualify .quiz__actions { margin-top: 1.25rem; }
.qualify .quiz__fineprint { margin-top: .625rem; }
.qualify .quiz__stage { margin-top: 1.25rem; }
.compare { display: grid; gap: 1.25rem; }
.compare__card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
}
.compare__card--muted {
  background: transparent;
  border-color: var(--line);
}
.compare__card--ours {
  background: linear-gradient(180deg, rgba(237,242,251,.6), var(--surface) 58%);
  border-color: var(--accent-soft);
  box-shadow: inset 0 1px 0 var(--navy), var(--shadow-md);
}
.compare__head { display: flex; align-items: center; gap: .75rem; }
.compare__icon {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  flex: none;
  border-radius: 50%;
  background: var(--line-soft);
  color: var(--muted);
}
.compare__card--ours .compare__icon { background: var(--accent-softer); color: var(--navy); }
.compare__title { font-size: var(--fs-h3); }
.compare__card--ours .compare__title { color: var(--navy-deep); }
.compare__claim {
  margin-top: .875rem;
  font-family: var(--font-display);
  font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--muted);
}
.compare__card--ours .compare__claim { color: var(--navy); }
.compare__list {
  margin-top: clamp(1.125rem, .95rem + .7vw, 1.5rem);
  padding-top: clamp(1.125rem, .95rem + .7vw, 1.5rem);
  border-top: 1px solid var(--line-soft);
}
.compare__list li {
  display: flex;
  gap: .75rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
}
.compare__list li + li { margin-top: .875rem; }
.compare__list svg { flex: none; margin-top: 2px; }
.compare__card--muted li  { color: var(--muted); }
.compare__card--muted svg { color: #ADADAD; }
.compare__card--ours li  { color: var(--anthracite); }
.compare__card--ours svg {
  color: var(--navy);
  margin-top: 0;
  padding: 3px;
  box-sizing: content-box;
  border-radius: 50%;
  background: var(--accent-softer);
}
@media (min-width: 860px) {
  .compare { grid-template-columns: 1fr 1fr; gap: 1.75rem; align-items: stretch; }
  .compare__card { display: flex; flex-direction: column; }
  .compare__list { flex: 1; display: grid; align-content: start; gap: .875rem; }
  .compare__list li + li { margin-top: 0; }
}
.method { display: block; }
.steps { max-width: 40rem; --steps-gut: clamp(1.5rem, .8rem + 2.2vw, 2.75rem); }
.steps > li { display: flex; gap: 1.25rem; }
.steps__marker { display: flex; flex-direction: column; align-items: center; }
.steps__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  flex: none;
  border: 1px solid var(--accent-soft);
  border-radius: 50%;
  background: var(--accent-softer);
  color: var(--navy);
}
.steps__line { width: 1px; flex: 1; margin-top: .5rem; background: var(--line); }
.steps > li:last-child .steps__line { display: none; }
.steps__body { padding-bottom: 2.5rem; }
.steps > li:last-child .steps__body { padding-bottom: 0; }
.steps__num {
  display: block;
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-ink);
  margin-bottom: .375rem;
}
.steps__body p { margin-top: .5rem; font-size: var(--fs-sm); color: var(--muted); }
.method__aside {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--beige);
}
.method__aside img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
@media (max-width: 767px) {
  .steps { max-width: none; }
}
@media (min-width: 768px) {
  .steps {
    max-width: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .steps > li {
    padding-block: clamp(1.5rem, 1.1rem + 1.1vw, 2.125rem);
    border-top: 1px solid var(--line);
  }
  .steps > li:nth-child(odd)  { padding-right: var(--steps-gut); }
  .steps > li:nth-child(even) {
    padding-left: var(--steps-gut);
    border-left: 1px solid var(--line);
  }
  .steps__line { display: none; }
  .steps__body,
  .steps > li:last-child .steps__body { padding-bottom: 0; }
}
.pillars__note {
  margin-top: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  padding-top: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  border-top: 1px solid var(--line);
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--muted);
  letter-spacing: .01em;
}
.pillars {
  --pillars-gut: clamp(1.5rem, .8rem + 2.2vw, 2.75rem);
  display: grid;
  gap: 0;
}
.pillar {
  display: flex;
  gap: 1rem;
  padding-block: clamp(1.25rem, 1rem + .9vw, 1.75rem);
  border-top: 1px solid var(--line);
}
.pillar__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  flex: none;
  border-radius: 50%;
  background: var(--accent-softer);
  color: var(--navy);
}
.pillar__body h3 { font-size: 1.0625rem; }
.pillar__body p {
  margin-top: .375rem;
  font-size: var(--fs-sm);
  color: var(--muted);
  max-width: 32rem;
}
@media (min-width: 900px) {
  .pillars { grid-template-columns: repeat(3, 1fr); }
  .pillar {
    flex-direction: column;
    gap: .875rem;
    padding-inline: var(--pillars-gut);
  }
  .pillar:first-child { padding-left: 0; }
  .pillar:last-child  { padding-right: 0; }
  .pillar + .pillar   { border-left: 1px solid var(--line); }
  .pillar__body p     { max-width: none; }
}
.coaches { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .coaches { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1120px) {
  .coaches { grid-template-columns: repeat(6, 1fr); gap: .875rem; }
  .coach__body { padding: .75rem .8125rem .875rem; }
  .coach__body h3 { font-size: 1.0625rem; }
  .coach__role { font-size: .8125rem; line-height: 1.45; }
}
.coach {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.coach:hover { box-shadow: var(--shadow-md); border-color: var(--accent-soft); }
.coach:hover .coach__body h3 { color: var(--navy); }
.coach:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.coach__body h3 { transition: color var(--dur) var(--ease); }
.coach picture {
  display: block;
  overflow: hidden;
}
.coach img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  background: var(--beige);
  transform: scale(var(--z, 1));
  transform-origin: var(--fx, 50%) var(--fy, 32%);
}
.coach__body { padding: 1rem 1.125rem 1.125rem; }
.coach__body h3 { font-size: 1.1875rem; font-weight: 600; }
.coach__role { font-size: var(--fs-sm); color: var(--blue); font-weight: 400; margin-top: .25rem; }
@media (min-width: 1120px) {
  .coach__role {
    font-size: .84375rem;
    letter-spacing: -0.012em;
  }
}
.section--immersive { background: var(--navy); }
.section--immersive h2,
.section--immersive .video-card__who { color: var(--on-dark); }
.section--immersive .section-head p,
.section--immersive .video-note { color: var(--on-dark-muted); }
.section--immersive .eyebrow { color: var(--on-dark-accent); }
.section--immersive .eyebrow::before { background: var(--on-dark-accent); }
.section--immersive :focus-visible { outline-color: var(--on-dark-accent); }
.videorow {
  --vgap: 1rem;
  --vcard: 78%;
  display: flex;
  flex-wrap: nowrap;
  gap: var(--vgap);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: .875rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .3) rgba(255, 255, 255, .09);
}
.videorow > .video-card {
  flex: 0 0 var(--vcard);
  min-width: 0;
  scroll-snap-align: start;
}
.videorow { scroll-padding-inline: 0; }
.videorow:focus-visible { outline: 2px solid var(--on-dark-accent); outline-offset: 4px; border-radius: var(--radius); }
.videorow::-webkit-scrollbar { height: 6px; }
.videorow::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, .09);
  border-radius: 999px;
}
.videorow::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .3);
  border-radius: 999px;
}
.videorow::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .45); }
@media (min-width: 700px) {
  .videorow { --vgap: 1.25rem; --vcard: calc((100% - 2 * var(--vgap)) / 2.4); }
}
@media (min-width: 1080px) {
  .videorow { --vgap: 1.5rem; --vcard: calc((100% - 3 * var(--vgap)) / 4); }
}
.videorow__top { display: grid; gap: 1.25rem; }
.videorow__top .section-head { margin-bottom: 0; }
.videorow__nav { display: flex; gap: .625rem; }
.videorow__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  flex: none;
  border: 1px solid var(--on-dark-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: var(--on-dark);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
              opacity var(--dur) var(--ease);
}
.videorow__btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, .14);
  border-color: var(--on-dark-accent);
}
.videorow__btn:disabled { opacity: .3; cursor: default; }
@media (max-width: 559px) {
  .videorow__nav { display: none; }
}
@media (min-width: 700px) {
  .videorow__top {
    grid-template-columns: 1fr auto;
    align-items: end;
    column-gap: 2rem;
  }
  .videorow__nav { padding-bottom: .25rem; }
}
.video-card__frame {
  position: relative;
  aspect-ratio: 9 / 16;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--anthracite-deep);
  box-shadow: var(--shadow-md);
}
.video-card__frame img,
.video-card__frame iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
}
.video-card__play {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  display: block;
  font-family: var(--font-sans);
}
.video-card__play::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(33,33,33,.62) 0%, rgba(33,33,33,0) 42%);
  transition: opacity var(--dur) var(--ease);
}
.video-card__cue {
  position: absolute;
  left: 0; right: 0; bottom: 1.125rem;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  color: var(--on-dark);
  font-size: var(--fs-sm);
  font-weight: 500;
}
.video-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: 999px;
  background: rgba(250, 250, 249, .92);
  color: var(--navy);
  transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.video-card__play:hover .video-card__icon { background: #FFFFFF; transform: scale(1.06); }
.video-card__play:hover::after { opacity: .82; }
.video-card__who {
  margin-top: .875rem;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--anthracite);
  text-align: center;
}
.video-note {
  margin-top: 1.75rem;
  text-align: center;
  font-size: .8125rem;
  color: var(--muted);
}
.reviews {
  --reviews-gut: clamp(1.5rem, .9rem + 2vw, 2.5rem);
  display: grid;
  gap: 0;
}
.review {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding-block: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);
  border-top: 1px solid var(--line);
}
.review__mark {
  display: block;
  font-family: var(--font-display);
  font-size: 2.75rem;
  line-height: .7;
  color: var(--accent-soft);
  margin-bottom: .375rem;
}
.review blockquote {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.0625rem;
  line-height: 1.5;
  color: var(--anthracite);
  text-wrap: pretty;
}
.review figcaption {
  margin-top: auto;
  padding-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25rem .625rem;
}
.review__name { font-weight: 600; color: var(--anthracite); font-size: var(--fs-sm); }
.review__meta { font-size: var(--fs-sm); color: var(--navy); }
.review__source {
  display: block;
  width: 100%;
  margin-top: .125rem;
  font-size: .75rem;
  color: var(--muted);
}
@media (min-width: 820px) {
  .reviews {
    grid-template-columns: repeat(3, 1fr);
    column-gap: var(--reviews-gut);
    border-top: 1px solid var(--line);
  }
  .review { border-top: 0; }
  .review + .review::before {
    content: "";
    position: absolute;
    inset-block: 0;
    left: calc(-1 * var(--reviews-gut) / 2);
    width: 1px;
    background: var(--line);
  }
}
.studio-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}
.studio-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1.25rem, 1.05rem + .8vw, 1.625rem);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.studio-card:hover { border-color: var(--accent-soft); box-shadow: var(--shadow-md); }
.studio-card__name { font-size: 1.375rem; }
.studio-grid:not([data-enhanced="true"]) .studio-card__name {
  padding-bottom: .875rem;
  border-bottom: 1px solid var(--line-soft);
}
.studio-grid:not([data-enhanced="true"]) .studio-card__trigger { display: none; }
.studio-card__facts { margin: .875rem 0 0; display: grid; gap: .625rem; }
.studio-card__facts > div { display: grid; grid-template-columns: 5.5rem 1fr; gap: .625rem; }
.studio-card__facts dt {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 1px;
}
.studio-card__facts dd { margin: 0; font-size: var(--fs-sm); color: var(--body); }
.studio-card__note {
  display: flex;
  align-items: center;
  gap: .375rem;
  margin-top: .875rem;
  font-size: var(--fs-sm);
  color: var(--muted);
}
.studio-card__note svg { color: var(--blue); flex: none; }
.studio-card__note strong { color: var(--anthracite); font-weight: 600; }
.studio-card__facts a { color: var(--body); text-decoration-color: var(--line); }
.studio-card__facts a:hover { color: var(--navy-hover); text-decoration-color: currentColor; }
.studio-card__hours { margin-top: .875rem; border-top: 1px solid var(--line-soft); }
.studio-card__hours summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-height: 44px;
  cursor: pointer;
  list-style: none;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--navy);
}
.studio-card__hours summary::-webkit-details-marker { display: none; }
.studio-card__hours summary svg { flex: none; transition: transform var(--dur) var(--ease); }
.studio-card__hours[open] summary svg { transform: rotate(45deg); }
.studio-card__hours dl { margin: 0 0 .75rem; display: grid; gap: .375rem; }
.studio-card__hours > dl > div {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: .5rem;
  font-size: .8125rem;
}
.studio-card__hours dt { color: var(--muted); }
.studio-card__hours dd { margin: 0; color: var(--body); font-variant-numeric: tabular-nums; }
.studio-card__cta { margin-top: 1rem; }
.studio-note {
  margin-top: 1.25rem;
  font-size: .8125rem;
  color: var(--muted);
  text-align: center;
}
.studio-grid[data-enhanced="true"] { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .studio-grid[data-enhanced="true"] { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1120px) {
  .studio-grid[data-enhanced="true"] { grid-template-columns: repeat(5, 1fr); gap: .875rem; }
  .studio-grid[data-enhanced="true"] .studio-card { padding: 1.0625rem 1rem 1.125rem; }
  .studio-grid[data-enhanced="true"] .studio-card__name { font-size: 1.0625rem; }
  .studio-grid[data-enhanced="true"] .studio-card__note { font-size: .8125rem; margin-top: .5rem; }
  .studio-grid[data-enhanced="true"] .studio-card__trigger { font-size: .8125rem; padding-top: .75rem; }
}
.studio-grid[data-enhanced="true"] .studio-card {
  cursor: pointer;
  display: flex;
  flex-direction: column;
}
.studio-grid[data-enhanced="true"] .studio-card__detail { display: none; }
.studio-grid[data-enhanced="true"] .studio-card__note { margin-top: .625rem; }
.studio-card__trigger {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: auto;
  padding: .875rem 0 0;
  min-height: 44px;
  border: 0;
  background: none;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  text-align: left;
}
.studio-card__trigger svg {
  flex: none;
  transition: transform var(--dur) var(--ease);
}
.studio-card:hover .studio-card__trigger svg,
.studio-card__trigger:hover svg { transform: translateX(3px); }
.studio-panel {
  position: fixed;
  inset: 0;
  z-index: var(--z-panel);
}
.studio-panel__scrim {
  position: absolute;
  inset: 0;
  background: rgba(26, 26, 26, .52);
  opacity: 0;
  transition: opacity var(--dur) var(--ease);
}
.studio-panel[data-open="true"] .studio-panel__scrim { opacity: 1; }
.studio-panel__sheet {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(27rem, 100%);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: clamp(1.375rem, 1.1rem + 1.1vw, 2rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--surface);
  box-shadow: var(--shadow-lg);
  transform: translateX(100%);
  transition: transform 300ms var(--ease);
}
.studio-panel[data-open="true"] .studio-panel__sheet { transform: none; }
.studio-panel__sheet:focus { outline: none; }
.studio-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.studio-panel__eyebrow {
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--blue);
}
.studio-panel__title { font-size: 1.625rem; margin-top: .375rem; }
.studio-panel__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--body);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.studio-panel__close:hover { background: var(--bg); border-color: var(--muted); }
.studio-panel__body .studio-card__note { margin-top: 0; }
.studio-panel__body .studio-card__facts { margin-top: 1.25rem; }
.studio-panel__body .studio-card__facts a { color: var(--navy); }
.studio-panel__body .studio-card__hours { margin-top: 1.25rem; padding-top: 1.125rem; }
.studio-panel__body .studio-card__hours summary { display: none; }
.studio-panel__body .studio-card__hours::before {
  content: "Horaires";
  display: block;
  margin-bottom: .625rem;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}
.studio-panel__body .studio-card__cta { margin-top: 1.5rem; }
@media (max-width: 699px) {
  .studio-panel__sheet {
    top: auto; left: 0; right: 0; bottom: 0;
    width: auto;
    max-height: 88vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    transform: translateY(100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .studio-panel__scrim,
  .studio-panel__sheet { transition: none; }
}
.studio-card__note--avis { color: var(--muted); }
.studio-card__pending {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.6;
}
.studio-panel__body .studio-card__pending { margin-top: 1.25rem; }
.soon { margin-top: clamp(2.5rem, 1.9rem + 2.4vw, 3.75rem); }
.soon__title { font-size: 1.5rem; }
.soon__lead {
  margin-top: .5rem;
  font-size: var(--fs-sm);
  color: var(--muted);
}
.soon__grid {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .soon__grid { grid-template-columns: repeat(2, 1fr); } }
.soon-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .875rem;
  background: var(--surface);
  border: 1px dashed var(--accent-soft);
  border-radius: var(--radius-lg);
}
.soon-card picture { display: block; flex: none; }
.soon-card img {
  width: 84px;
  height: 105px;
  object-fit: cover;
  border-radius: var(--radius);
  background: var(--beige);
}
.soon-card__badge {
  display: inline-flex;
  align-items: center;
  padding: .25rem .5625rem;
  border-radius: 999px;
  background: var(--accent-softer);
  color: var(--navy);
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.soon-card h4 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--anthracite);
  margin-top: .5rem;
}
.soon-card__coach {
  margin-top: .25rem;
  font-size: var(--fs-sm);
  color: var(--muted);
}
.tailored {
  --tailored-gut: clamp(2rem, 1.2rem + 2.6vw, 3.5rem);
  display: grid;
  gap: clamp(2rem, 1.4rem + 3vw, 3.5rem);
}
.tailored__card {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.tailored__label {
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 1.125rem;
}
.tailored__list li {
  display: flex;
  align-items: baseline;
  gap: .875rem;
  padding: .8125rem 0;
  font-family: var(--font-display);
  font-size: 1.125rem;
  letter-spacing: -0.01em;
  color: var(--anthracite);
}
.tailored__list li + li { border-top: 1px solid var(--line-soft); }
.tailored__list svg { flex: none; color: var(--navy); align-self: center; }
@media (min-width: 900px) {
  .tailored {
    grid-template-columns: 1.05fr .95fr;
    align-items: start;
    column-gap: var(--tailored-gut);
  }
  .tailored__card {
    padding-left: var(--tailored-gut);
    border-left: 1px solid var(--line);
  }
}
.faq { max-width: 46rem; margin-inline: auto; }
.faq details {
  border-bottom: 1px solid var(--line);
}
.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: 56px;
  padding: 1.25rem 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  color: var(--anthracite);
  letter-spacing: -0.015em;
  transition: color var(--dur) var(--ease);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--navy); }
.faq summary svg {
  flex: none;
  color: var(--muted);
  transition: transform var(--dur) var(--ease), color var(--dur) var(--ease);
}
.faq details[open] summary svg { transform: rotate(45deg); color: var(--navy); }
.faq__answer { padding: 0 0 1.5rem; max-width: 40rem; }
.faq__answer p { font-size: var(--fs-sm); color: var(--muted); }
.faq__answer p + p { margin-top: .75rem; }
.on-dark {
  background: var(--anthracite-deep);
  color: var(--on-dark-muted);
  position: relative;
  overflow: hidden;
}
.on-dark h2, .on-dark h3 { color: var(--on-dark); }
.on-dark .section-head p,
.on-dark .lead { color: var(--on-dark-muted); }
.on-dark__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(70% 100% at 88% 6%, rgba(0, 35, 102, .55), transparent 64%),
    radial-gradient(52% 80% at 6% 100%, rgba(15, 82, 186, .12), transparent 66%);
}
.on-dark__bg::after {
  content: "";
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(
    -45deg, rgba(250, 250, 249, .022) 0 1px, transparent 1px 16px);
}
.on-dark .wrap { position: relative; z-index: 1; }
.form {
  background: var(--surface);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 1.1rem + 1.8vw, 2.25rem);
  box-shadow: var(--shadow-lg);
}
.form__grid { display: grid; gap: 1.125rem; }
.field { display: grid; gap: .4375rem; }
.field label {
  font-size: .8125rem;
  font-weight: 500;
  color: var(--anthracite);
  letter-spacing: 0;
}
.field label .opt { color: var(--muted); font-weight: 400; }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 48px;
  padding: .75rem .875rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--bg);
  color: var(--anthracite);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.field textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2357534E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .875rem center;
  padding-right: 2.5rem;
}
.field input:hover, .field select:hover, .field textarea:hover { border-color: #D0D0D0; }
.field input:focus, .field select:focus, .field textarea:focus {
  background: var(--surface);
  border-color: var(--navy);
  outline: 2px solid rgba(0, 35, 102, .22);
  outline-offset: 0;
}
.field input::placeholder, .field textarea::placeholder { color: var(--muted); }
.form__row { display: grid; gap: 1.125rem; }
@media (min-width: 560px) { .form__row { grid-template-columns: 1fr 1fr; } }
.booking-head { max-width: 40rem; margin-bottom: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); }
.booking-proof {
  display: grid;
  gap: .875rem;
  margin-bottom: clamp(1.5rem, 1.2rem + 1.3vw, 2.25rem);
}
.booking-proof li { display: flex; gap: .75rem; font-size: var(--fs-sm); line-height: 1.5; }
.booking-proof svg { color: var(--on-dark-accent); flex: none; margin-top: 3px; }
.booking-proof strong { display: block; color: var(--on-dark); font-weight: 600; }
@media (min-width: 860px) {
  .booking-proof { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
}
.booking-card {
  background: var(--surface);
  border-radius: var(--radius-lg);
  padding: clamp(1.125rem, .9rem + 1vw, 1.75rem);
  box-shadow: var(--shadow-lg);
}
.sb-studios__label {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .625rem;
}
.sb-studios__grid { display: flex; flex-wrap: wrap; gap: .375rem; }
.sb-studios__btn {
  min-height: 40px;
  padding: .375rem .875rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--body);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease),
              background-color var(--dur) var(--ease),
              color var(--dur) var(--ease);
}
.sb-studios__btn:hover { border-color: var(--accent-soft); background: var(--accent-softer); color: var(--navy); }
.sb-studios__btn[aria-selected="true"] {
  background: var(--navy);
  border-color: var(--navy);
  color: #FFFFFF;
  box-shadow: var(--shadow-sm);
}
.sb-agenda {
  position: relative;
  margin-top: clamp(1rem, .85rem + .6vw, 1.375rem);
  padding-top: clamp(1rem, .85rem + .6vw, 1.375rem);
  border-top: 1px solid var(--line-soft);
  min-height: 260px;
}
.sb-agenda__state {
  display: flex;
  align-items: center;
  gap: .625rem;
  justify-content: center;
  min-height: 240px;
  padding: 1rem;
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--muted);
}
.sb-agenda__state svg { color: var(--navy); flex: none; }
.sb-agenda__state--error svg { color: var(--muted); }
.sb-agenda__spinner {
  width: 18px; height: 18px;
  flex: none;
  border: 2px solid var(--line);
  border-top-color: var(--navy);
  border-radius: 50%;
  animation: sb-spin 700ms linear infinite;
}
@keyframes sb-spin { to { transform: rotate(360deg); } }
.sb-agenda__retry {
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.sb-agenda__secours {
  margin-top: .875rem;
  padding-top: .875rem;
  border-top: 1px solid var(--line-soft);
  font-size: .8125rem;
  color: var(--muted);
  text-align: center;
}
.sb-agenda__frame:empty { display: none; }
.sb-agenda__frame iframe {
  display: block;
  width: 100%;
  border: 0;
  min-height: 620px;
}
.recall {
  margin-top: clamp(1rem, .85rem + .6vw, 1.375rem);
  background: rgba(255, 255, 255, .05);
  border: 1px solid var(--on-dark-line);
  border-radius: var(--radius-lg);
}
.recall__toggle {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: clamp(.875rem, .75rem + .5vw, 1.125rem) clamp(1rem, .85rem + .6vw, 1.375rem);
  background: none;
  border: 0;
  border-radius: inherit;
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--on-dark);
  text-align: left;
  cursor: pointer;
}
.recall__sign {
  position: relative;
  flex: none;
  margin-left: auto;
  width: 30px; height: 30px;
  border: 1px solid var(--on-dark-line);
  border-radius: 50%;
  background: rgba(255, 255, 255, .06);
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.recall__sign::before,
.recall__sign::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 11px; height: 1.5px;
  background: var(--on-dark);
  transform: translate(-50%, -50%);
  transition: opacity var(--dur) var(--ease);
}
.recall__sign::after { transform: translate(-50%, -50%) rotate(90deg); }
.recall__toggle:hover .recall__sign { background: rgba(255, 255, 255, .14); }
.recall__toggle[aria-expanded="true"] .recall__sign { transform: rotate(45deg); }
.recall__panel { overflow: hidden; }
.recall__inner {
  padding: 0 clamp(1rem, .85rem + .6vw, 1.375rem) clamp(1.125rem, .95rem + .7vw, 1.5rem);
}
.recall__text { font-size: var(--fs-sm); color: var(--on-dark-muted); max-width: 34rem; }
.recall__form { margin-top: 1.125rem; }
.recall__grid { display: grid; gap: .875rem; }
@media (min-width: 620px) { .recall__grid { grid-template-columns: 1fr 1fr; } }
.recall__form .field label { color: var(--on-dark); }
.recall__form .field input { background: var(--surface); }
.recall__form .field input[aria-invalid="true"] { border-color: var(--error-line); }
.recall__pot {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.recall__consent { display: flex; gap: .625rem; margin-top: 1.125rem; }
.recall__consent input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--navy); }
.recall__consent label { font-size: .8125rem; line-height: 1.5; color: var(--on-dark-muted); }
.recall__consent a { color: var(--on-dark-accent); }
.recall__actions { margin-top: 1.25rem; }
.recall__actions .btn[disabled] { opacity: .6; cursor: default; }
.recall__note { margin-top: .625rem; font-size: .8125rem; color: var(--on-dark-muted); }
.recall__error {
  margin-top: .875rem;
  padding: .75rem .875rem;
  border: 1px solid var(--on-dark-line);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, .06);
  font-size: var(--fs-sm);
  color: var(--on-dark);
}
.recall__done {
  display: flex;
  align-items: center;
  gap: .625rem;
  margin-top: 1.125rem;
  font-size: var(--fs-lead);
  color: var(--on-dark);
}
.recall__done svg { color: var(--on-dark-accent); flex: none; }
@media (prefers-reduced-motion: reduce) {
  .sb-agenda__spinner { animation: none; }
}
.form__legal { font-size: .75rem; color: var(--muted); margin-top: 1rem; line-height: 1.55; }
.form__status {
  margin-top: 1rem;
  padding: .875rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--accent-softer);
  border: 1px solid var(--accent-soft);
  color: var(--navy-deep);
  font-size: var(--fs-sm);
}
.form__status[hidden] { display: none; }
@media (min-width: 940px) {
  .booking { grid-template-columns: .85fr 1.15fr; align-items: center; }
}
.quiz {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: clamp(1.5rem, 1.15rem + 1.55vw, 2.5rem);
  overflow: hidden;
}
.quiz::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, var(--navy), var(--blue));
}
.quiz__title { font-size: var(--fs-h3); }
.quiz__lead { margin-top: .625rem; color: var(--muted); font-size: var(--fs-sm); line-height: 1.65; }
.quiz__actions { margin-top: 1.5rem; }
.quiz__fineprint { margin-top: .75rem; font-size: .8125rem; color: var(--muted); }
.quiz__screen[data-entering] { animation: quiz-screen-in 320ms var(--ease) both; }
@keyframes quiz-screen-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}
.quiz__bar { display: flex; align-items: center; gap: 1rem; min-height: 30px; }
.quiz__back {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .25rem .125rem;
  background: none;
  border: 0;
  border-radius: var(--radius-sm);
  font: inherit;
  font-size: .8125rem;
  color: var(--muted);
  cursor: pointer;
  transition: color var(--dur) var(--ease);
}
.quiz__back:hover { color: var(--navy); }
.quiz__back svg { transition: transform var(--dur) var(--ease); }
.quiz__back:hover svg { transform: translateX(-2px); }
.quiz__count {
  margin-left: auto;
  font-size: .8125rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.quiz__progress {
  margin-top: .625rem;
  height: 3px;
  border-radius: 999px;
  background: var(--line-soft);
  overflow: hidden;
}
.quiz__progress span {
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background: var(--navy);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 380ms var(--ease);
}
.quiz__stage { display: grid; margin-top: 1.5rem; }
.quiz__stage > * { grid-area: 1 / 1; align-self: start; }
.quiz__stage.is-swapping { overflow: hidden; }
.quiz__q { transition: opacity 260ms var(--ease), transform 320ms var(--ease); }
.quiz__q[data-slide="from-right"] { opacity: 0; transform: translateX(28px); }
.quiz__q[data-slide="from-left"]  { opacity: 0; transform: translateX(-28px); }
.quiz__q[data-slide="to-left"]    { opacity: 0; transform: translateX(-28px); pointer-events: none; }
.quiz__q[data-slide="to-right"]   { opacity: 0; transform: translateX(28px); pointer-events: none; }
.quiz__q-title {
  font-family: var(--font-display);
  color: var(--anthracite);
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.quiz__options { display: grid; gap: .625rem; margin-top: 1.25rem; }
.quiz__opt {
  display: flex;
  align-items: center;
  gap: .875rem;
  width: 100%;
  padding: .9375rem 1.0625rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font: inherit;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--body);
  text-align: left;
  cursor: pointer;
  transition: border-color var(--dur) var(--ease),
              background-color var(--dur) var(--ease),
              box-shadow var(--dur) var(--ease),
              transform var(--dur) var(--ease);
}
.quiz__opt:hover {
  border-color: var(--accent-soft);
  background: var(--accent-softer);
  box-shadow: var(--shadow-xs);
}
.quiz__opt-mark {
  flex: none;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--navy);
  transition: border-color var(--dur) var(--ease);
}
.quiz__opt-mark::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0;
  transform: scale(.4);
  transition: opacity 180ms var(--ease), transform 180ms var(--ease);
}
.quiz__opt:hover .quiz__opt-mark { border-color: var(--accent-soft); }
.quiz__opt[data-chosen="true"] {
  border-color: var(--navy);
  background: var(--accent-softer);
  box-shadow: inset 0 0 0 1px var(--navy);
}
.quiz__opt[data-chosen="true"] .quiz__opt-mark { border-color: var(--navy); }
.quiz__opt[data-chosen="true"] .quiz__opt-mark::after { opacity: 1; transform: none; }
.quiz__opt.is-pulse { animation: quiz-pulse 300ms var(--ease); }
@keyframes quiz-pulse {
  0%   { transform: scale(1); }
  45%  { transform: scale(.984); }
  100% { transform: scale(1); }
}
.quiz__studios {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line-soft);
}
.quiz__studios-title {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--anthracite);
  letter-spacing: 0;
}
.quiz__studios-grid { display: grid; gap: .5rem; margin-top: 1rem; }
@media (min-width: 480px) { .quiz__studios-grid { grid-template-columns: 1fr 1fr; } }
.quiz__studio {
  justify-content: space-between;
  min-height: 44px;
  padding: .625rem 1rem;
  color: var(--navy);
  text-align: left;
}
.quiz__studio:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: #FFFFFF;
  box-shadow: var(--shadow-sm);
}
.quiz__exit { margin-top: 1.5rem; }
.quiz__exit a { font-size: var(--fs-sm); color: var(--muted); }
.quiz__exit a:hover { color: var(--navy); }
.quiz__again { margin-top: 1.25rem; }
.quiz__linkbtn {
  padding: .25rem 0;
  background: none;
  border: 0;
  font: inherit;
  font-size: .8125rem;
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color var(--dur) var(--ease);
}
.quiz__linkbtn:hover { color: var(--navy); }
@media (prefers-reduced-motion: reduce) {
  .quiz__q[data-slide] { opacity: 1; transform: none; }
  .quiz__opt.is-pulse { animation: none; }
  .quiz__screen[data-entering] { animation: none; }
}
.digital { display: grid; gap: 1rem; }
.digital-head { margin-bottom: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); }
@media (min-width: 900px) {
  .digital { grid-template-columns: 55fr 45fr; gap: 1.5rem; align-items: stretch; }
  .digital__panel { display: flex; flex-direction: column; }
  .digital__row { flex-grow: 1; align-content: center; }
  .franchise { display: flex; flex-direction: column; }
}
.digital__panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1rem, .85rem + .6vw, 1.25rem) clamp(1.125rem, .95rem + .6vw, 1.25rem);
}
.digital__row { padding-block: .75rem; }
.digital__row:first-child { padding-top: 0; }
.digital__row:last-child { padding-bottom: 0; }
.digital__row + .digital__row { border-top: 1px solid var(--line-soft); }
@media (min-width: 480px) {
  .digital__row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 .75rem;
    align-items: start;
  }
  .digital__label { padding-top: .5rem; white-space: nowrap; }
}
.digital__label {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .375rem;
}
@media (min-width: 480px) { .digital__label { margin-bottom: 0; } }
.digital__chips { display: flex; flex-wrap: wrap; gap: .25rem; }
.digital__chips a {
  display: inline-flex;
  align-items: center;
  gap: .4375rem;
  min-height: 36px;
  padding: .1875rem .625rem .1875rem .5rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--body);
  text-decoration: none;
  transition: border-color var(--dur) var(--ease),
              background-color var(--dur) var(--ease),
              color var(--dur) var(--ease);
}
.digital__chips a svg { color: var(--navy); flex: none; }
.digital__chips a:hover {
  border-color: var(--navy);
  background: var(--accent-softer);
  color: var(--navy);
}
.digital__note {
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--muted);
  margin-bottom: .4375rem;
}
.digital__note strong { color: var(--anthracite); font-weight: 600; }
.digital__network { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; }
.digital__hint { font-size: .8125rem; color: var(--muted); }
.franchise {
  position: relative;
  cursor: pointer;
  background: var(--navy);
  color: var(--on-dark);
  border-radius: var(--radius-lg);
  padding: clamp(1.625rem, 1.35rem + 1.05vw, 2.125rem);
  box-shadow: var(--shadow-sm);
  transition: background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.franchise:hover { background: var(--navy-deep); box-shadow: var(--shadow-md); }
.franchise__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--on-dark-accent);
}
.franchise__title {
  color: var(--on-dark);
  font-size: clamp(1.5rem, 1.3rem + .9vw, 1.875rem);
  margin-top: .5rem;
}
.franchise__text {
  margin-top: .75rem;
  color: var(--on-dark-muted);
  line-height: 1.65;
  max-width: 27rem;
}
.franchise__cta {
  display: inline-flex;
  align-items: center;
  gap: .625rem;
  align-self: flex-start;
  margin-top: 1.625rem;
  min-height: 48px;
  padding: .625rem 1.125rem;
  border: 1px solid var(--on-dark-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--on-dark);
  text-decoration: none;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.franchise__cta::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--radius-lg);
}
.franchise:hover .franchise__cta,
.franchise__cta:hover { background: rgba(255, 255, 255, .16); border-color: var(--on-dark-accent); }
.franchise__cta:focus-visible { outline: none; }
.franchise__cta:focus-visible::after {
  outline: 2px solid var(--on-dark-accent);
  outline-offset: 3px;
}
@media (min-width: 900px) {
  .franchise__cta { margin-top: auto; }
}
.digital__note { margin-top: .625rem; font-size: var(--fs-sm); color: var(--muted); line-height: 1.6; }
.digital__note strong { color: var(--anthracite); font-weight: 600; }
.site-footer .brand { margin-right: 0; }
.site-footer .brand__logo { height: 44px; }
.footer__top { display: grid; gap: 2.5rem; }
.footer__pitch { font-size: var(--fs-sm); max-width: 24rem; margin-top: 1rem; color: var(--muted); }
.footer__cols { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
.footer__cols h3 {
  font-family: var(--font-sans);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--navy-deep);
  margin-bottom: 1rem;
}
.footer__cols li + li { margin-top: .625rem; }
.footer__cols a {
  color: var(--body);
  font-size: var(--fs-sm);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.footer__cols a:hover { color: var(--navy); text-decoration: underline; }
.footer__social { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 1.125rem; }
.footer__social li + li { margin-top: 0; }
.footer__social a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.footer__social a::after { content: ""; position: absolute; inset: -5px; }
.footer__social a:hover { color: var(--navy); border-color: var(--accent-soft); background: var(--accent-softer); }
.footer__franchise { margin-top: .875rem; }
.footer__franchise a {
  display: inline-flex;
  align-items: center;
  gap: .4375rem;
  font-size: .8125rem;
  color: var(--muted);
  text-decoration: none;
}
.footer__franchise a:hover { color: var(--navy); text-decoration: underline; }
.footer__contact { font-size: var(--fs-sm); }
.footer__contact address { font-style: normal; line-height: 1.6; }
@media (max-width: 559px) {
  .footer__cols > :last-child { grid-column: 1 / -1; }
}
.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
  font-size: .8125rem;
}
.footer__bottom ul { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.footer__bottom a {
  color: var(--body);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.footer__bottom a:hover { color: var(--navy); text-decoration: underline; }
.footer__bottom p { margin: 0; color: var(--muted); }
@media (min-width: 860px) {
  .footer__top { grid-template-columns: 1fr 1.8fr; gap: 4rem; }
}
.cta-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: var(--z-cta);
  padding: .75rem var(--gutter);
  padding-bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, .93);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-top: 1px solid var(--line);
  transform: translateY(115%);
  transition: transform 280ms var(--ease);
}
.cta-bar[data-visible="true"] { transform: none; }
@media (min-width: 900px) { .cta-bar { display: none; } }
@media (max-width: 899px)  { .site-footer { padding-bottom: 6.5rem; } }
.ph {
  color: var(--muted);
  font-style: normal;
  text-decoration: underline dotted var(--blue);
  text-underline-offset: 4px;
  text-decoration-thickness: 1.5px;
}
body:not(.show-placeholders) .ph { text-decoration: none; }
.on-dark .ph, .site-footer .ph { color: var(--on-dark-muted); }
.on-dark strong .ph, .site-footer strong .ph { color: var(--on-dark); }
.form .ph { color: var(--muted); }
.ph-tag {
  display: inline-flex;
  align-items: center;
  gap: .3125rem;
  padding: .1875rem .5rem;
  border: 1px solid var(--blue);
  border-radius: 999px;
  background: var(--accent-softer);
  color: var(--blue-ink);
  font-family: var(--font-sans);
  font-size: .6875rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  vertical-align: middle;
}
.ph-tag::before {
  content: "";
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--blue);
}
body:not(.show-placeholders) .ph-tag { display: none; }
.on-dark .ph-tag, .site-footer .ph-tag {
  color: #F4EEE8;
  border-color: rgba(143, 180, 245, .5);
  background: rgba(143, 180, 245, .1);
}
.on-dark .ph-tag::before, .site-footer .ph-tag::before { background: #F4EEE8; }
.form .ph-tag {
  color: var(--blue-ink);
  border-color: var(--blue);
  background: var(--accent-softer);
}
.form .ph-tag::before { background: var(--blue); }
.ph-note {
  display: block;
  margin-top: .5rem;
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--blue-ink);
}
.on-dark .ph-note { color: #F4EEE8; }
body:not(.show-placeholders) .ph-note { display: none; }
.ph-block {
  border: 1px dashed var(--blue);
  border-radius: var(--radius);
  background: var(--accent-softer);
  padding: 1rem 1.125rem;
}
.ph-block p { font-size: var(--fs-sm); color: var(--body); }
.ph-block .ph-tag { margin-bottom: .625rem; }
.on-dark .ph-block { background: rgba(15, 82, 186, .10); border-color: rgba(15, 82, 186, .45); }
.on-dark .ph-block p { color: var(--on-dark-muted); }
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  filter: blur(5px);
  transition: opacity 420ms var(--ease), transform 420ms var(--ease), filter 420ms var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-visible { opacity: 1; transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  [data-reveal] { opacity: 1; transform: none; filter: none; }
}
.page-404 {
  min-height: 100svh;
  display: grid;
  align-content: center;
  padding-block: var(--sp-section);
}
.page-404 .wrap { max-width: 42rem; }
.page-404 .brand { display: inline-block; margin-bottom: 2.5rem; }
.page-404 .brand__logo { height: 40px; width: auto; }
.page-404 .lead { margin-top: 1rem; }
.page-404 .btn-row { margin-top: 2.25rem; }
.fr-hero .hero__media img { object-position: 50% 30%; }
@media (min-width: 700px) {
  .fr-hero .hero__media img { object-position: 50% 32%; }
}
@media (min-width: 900px) {
  .fr-hero .hero__intro,
  .fr-hero .hero__actions { grid-column: 1 / span 9; }
}
.fr-hero__proof { margin-top: .25rem; }
.fr-figures-band { padding-block: clamp(1.5rem, 1.1rem + 2vw, 2.5rem); }
.fr-figures {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 860px) {
  .fr-figures { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
}
.fr-figure {
  display: grid;
  justify-items: start;
  gap: .3125rem;
  padding: clamp(1rem, .85rem + .7vw, 1.375rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: inset 0 1px 0 var(--navy), var(--shadow-xs);
}
.fr-figure__icon {
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  margin-bottom: .375rem;
  border-radius: 50%;
  background: var(--accent-softer);
  color: var(--navy);
}
.fr-figure__value {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 1.25rem + 1.1vw, 2rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--navy-deep);
}
.fr-figure__label {
  font-size: var(--fs-sm);
  line-height: 1.4;
  color: var(--muted);
}
.fr-figure__extra {
  margin-top: .5rem;
  padding-top: .5rem;
  border-top: 1px solid var(--line-soft);
  font-size: .8125rem;
  line-height: 1.4;
  color: var(--muted);
}
.fr-disclaimer {
  max-width: 52rem;
  margin-top: clamp(1rem, .85rem + .7vw, 1.375rem);
  font-size: .8125rem;
  line-height: 1.55;
  color: var(--muted);
}
.fr-disclaimer--dark { color: var(--on-dark-muted); }
.fr-cards { display: grid; gap: 1rem; }
@media (min-width: 640px)  { .fr-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .fr-cards { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }
.fr-card {
  padding: clamp(1.25rem, 1.05rem + .9vw, 1.75rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
}
.fr-card__icon {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  margin-bottom: .875rem;
  border-radius: 50%;
  background: var(--accent-softer);
  color: var(--navy);
}
.fr-card h3 { font-size: 1.0625rem; }
.fr-card p {
  margin-top: .5rem;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--muted);
}
.fr-profiles { display: grid; gap: 0; }
.fr-profile {
  padding-block: clamp(1.25rem, 1rem + .9vw, 1.75rem);
  border-top: 1px solid var(--line);
}
.fr-profile h3 { font-size: 1.125rem; color: var(--navy-deep); }
.fr-profile p {
  margin-top: .5rem;
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--muted);
  max-width: 34rem;
}
@media (min-width: 900px) {
  .fr-profiles {
    --fr-gut: clamp(1.5rem, .8rem + 2.2vw, 2.75rem);
    grid-template-columns: repeat(3, 1fr);
  }
  .fr-profile { padding-inline: var(--fr-gut); }
  .fr-profile:first-child { padding-left: 0; }
  .fr-profile:last-child  { padding-right: 0; }
  .fr-profile + .fr-profile { border-left: 1px solid var(--line); }
  .fr-profile p { max-width: none; }
}
.fr-note {
  max-width: 46rem;
  margin-top: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  padding-top: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--muted);
}
.fr-note--tight { margin-top: clamp(1rem, .85rem + .7vw, 1.375rem); }
.fr-steps { max-width: 44rem; }
@media (min-width: 768px) {
  .fr-steps { grid-template-columns: 1fr; }
  .fr-steps > li:nth-child(odd)  { padding-right: 0; }
  .fr-steps > li:nth-child(even) { padding-left: 0; border-left: 0; }
}
.fr-econ {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 900px) {
  .fr-econ { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
}
.fr-econ__item {
  display: grid;
  gap: .375rem;
  padding-top: 1.125rem;
  border-top: 1px solid var(--on-dark-line);
}
.fr-econ__value {
  font-family: var(--font-display);
  font-size: clamp(1.625rem, 1.3rem + 1.4vw, 2.25rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--on-dark);
}
.fr-econ__label {
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: var(--on-dark-muted);
}
.video-card__frame--wide { aspect-ratio: 16 / 9; }
.fr-video__figure {
  margin: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem) 0 0;
  max-width: 60rem;
}
.fr-video__figure .video-card__play:focus-visible {
  outline: 3px solid var(--on-dark-accent);
  outline-offset: -3px;
  border-radius: 0;
}
.fr-quotes { display: grid; gap: 1.25rem; }
@media (min-width: 820px) { .fr-quotes { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
.fr-quote {
  display: flex;
  flex-direction: column;
  padding: clamp(1.375rem, 1.15rem + 1vw, 2rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
}
.fr-quote__text { margin: 0; position: relative; }
.fr-quote__text::before {
  content: "«";
  display: block;
  margin-bottom: .25rem;
  font-family: var(--font-display);
  font-size: 2.25rem;
  line-height: .8;
  color: var(--accent-soft);
}
.fr-quote__text p {
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: var(--anthracite);
}
.fr-quote__who {
  margin-top: auto;
  padding-top: 1.125rem;
  display: grid;
  gap: .125rem;
}
.fr-quote__who strong {
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--navy-deep);
}
.fr-quote__who span {
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--muted);
}
.fr-form { max-width: 46rem; }
.fr-fieldset { border: 0; padding: 0; margin: 0; }
.fr-fieldset + .fr-fieldset { margin-top: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
.fr-legend {
  padding: 0;
  margin-bottom: .875rem;
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--navy);
}
.fr-fieldnote {
  margin-top: .25rem;
  font-size: .8125rem;
  line-height: 1.55;
  color: var(--muted);
}
.fr-consent { display: flex; gap: .625rem; margin-top: 1.5rem; }
.fr-consent input {
  flex: none;
  width: 18px; height: 18px;
  margin-top: 2px;
  accent-color: var(--navy);
}
.fr-consent label {
  font-size: .8125rem;
  line-height: 1.55;
  color: var(--muted);
}
.fr-form [aria-invalid="true"] { border-color: var(--error-line); }
.fr-consent input[aria-invalid="true"] { outline: 2px solid var(--error-line); outline-offset: 2px; }
.fr-todo-link {
  color: var(--navy);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.fr-actions { margin-top: 1.5rem; }
.fr-form__note {
  margin-top: .875rem;
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--muted);
}
.fr-form__error {
  margin-top: 1rem;
  padding: .875rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--error-surface);
  border: 1px solid var(--error-line-soft);
  color: var(--error-ink);
  font-size: var(--fs-sm);
}
.fr-form__error[hidden] { display: none; }
.section--navy {
  background: var(--navy);
  padding-block: var(--sp-section-dark);
}
.section--navy h2,
.section--navy h3 { color: var(--on-dark); }
.section--navy .section-head p,
.section--navy p { color: var(--on-dark-muted); }
.section--navy .eyebrow { color: var(--on-dark-accent); }
.section--navy .eyebrow::before { background: var(--on-dark-accent); }
.section--navy :focus-visible { outline-color: var(--on-dark-accent); }
.hero h1 {
  font-size: clamp(2.125rem, 1.55rem + 2.55vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
}
.hero .lead {
  max-width: 32rem;
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  line-height: 1.6;
}
.hero__proof--pills {
  gap: .5rem;
  margin-top: .25rem;
}
.hero__proof--pills li {
  gap: .5rem;
  padding: .4375rem .8125rem .4375rem .625rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  font-size: .8125rem;
  color: var(--anthracite);
  box-shadow: var(--shadow-xs);
}
.hero__proof--pills svg {
  color: var(--navy);
  padding: 2px;
  box-sizing: content-box;
  border-radius: 50%;
  background: var(--accent-softer);
}
.section--qualify { background: var(--surface); }
.section--navy .steps__badge {
  border-color: var(--on-dark-line);
  background: rgba(255, 255, 255, .07);
  color: var(--on-dark-accent);
}
.section--navy .steps__line { background: var(--on-dark-line); }
.section--navy .steps__num { color: var(--on-dark-accent); }
.section--navy .steps__body p { color: var(--on-dark-muted); }
@media (min-width: 768px) {
  .method--path .steps {
    display: block;
    max-width: 38rem;
  }
  .method--path .steps > li {
    display: flex;
    padding-block: 0;
    border-top: 0;
  }
  .method--path .steps > li:nth-child(odd)  { padding-right: 0; }
  .method--path .steps > li:nth-child(even) { padding-left: 0; border-left: 0; }
  .method--path .steps__line { display: block; }
  .method--path .steps > li:last-child .steps__line { display: none; }
  .method--path .steps__body { padding-bottom: 2.75rem; }
  .method--path .steps > li:last-child .steps__body { padding-bottom: 0; }
}
@media (min-width: 1000px) {
  .method--path .steps { counter-reset: fx-step; }
  .method--path .steps > li {
    position: relative;
    counter-increment: fx-step;
  }
  .method--path .steps > li::before {
    content: counter(fx-step, decimal-leading-zero);
    position: absolute;
    right: -1.75rem;
    top: -.75rem;
    z-index: 0;
    font-family: var(--font-display);
    font-size: 6.5rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.04em;
    color: rgba(143, 180, 245, .11);
    pointer-events: none;
  }
  .method--path .steps__body { position: relative; z-index: 1; max-width: 27rem; }
}
.method--path .method__aside { display: none; }
@media (min-width: 1000px) {
  .method--path {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(17rem, 30%, 22rem);
    gap: clamp(2rem, 3vw, 3.5rem);
    align-items: start;
  }
  .method--path .method__aside {
    display: block;
    margin: 0;
    position: sticky;
    top: 6.5rem;
    background: var(--navy-deep);
  }
  .method--path .method__aside img {
    width: 100%;
    height: auto;
    display: block;
  }
}
.fx-split { display: grid; gap: 2rem; }
.fx-split__aside { order: -1; }
@media (min-width: 1000px) {
  .fx-split {
    grid-template-columns: minmax(0, 1fr) clamp(20rem, 36%, 26rem);
    gap: clamp(2.5rem, 4vw, 4.5rem);
    align-items: start;
  }
  .fx-split__aside { order: 0; position: relative; }
}
.fx-split__media { margin: 0; border-radius: var(--radius-lg); overflow: hidden; }
.fx-split__media img { width: 100%; height: auto; display: block; }
.fx-split__cta { margin-top: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); }
@media (min-width: 1000px) {
  .fx-overlap {
    position: absolute;
    left: -1.5rem;
    right: 1.5rem;
    bottom: -1rem;
    margin: 0;
    padding: .875rem 1.125rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    text-align: center;
  }
}
@media (min-width: 900px) {
  .pillars--file { grid-template-columns: 1fr; }
  .pillars--file .pillar {
    flex-direction: row;
    gap: 1rem;
    padding-inline: 0;
    border-left: 0;
  }
  .pillars--file .pillar:first-child { padding-left: 0; }
  .pillars--file .pillar:last-child  { padding-right: 0; }
  .pillars--file .pillar + .pillar   { border-left: 0; }
  .pillars--file .pillar__body p { max-width: 34rem; }
}
@media (min-width: 1120px) {
  .coaches--offset { gap: 1.25rem; }
  .coaches--offset .coach:nth-child(n+7) { margin-top: 2.25rem; }
}
.fx-aside-split { display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
  .fx-aside-split {
    grid-template-columns: clamp(15rem, 30%, 20rem) minmax(0, 1fr);
    gap: clamp(2.5rem, 4vw, 4rem);
    align-items: start;
  }
  .fx-aside-split__head {
    position: sticky;
    top: 6.5rem;
    margin-bottom: 0;
  }
  .reviews--stack { grid-template-columns: 1fr; }
  .reviews--stack .review { padding-inline: 0; }
  .reviews--stack .review + .review::before { display: none; }
  .reviews--stack .review + .review {
    margin-top: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
    padding-top: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
    border-top: 1px solid var(--line);
  }
  .reviews--stack blockquote { max-width: 44rem; }
}
.fx-studios-head { display: grid; gap: 1.5rem; }
@media (min-width: 860px) {
  .fx-studios-head {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2.5rem;
    align-items: end;
  }
  .fx-studios-head .section-head { margin-bottom: 0; }
}
.fx-count {
  display: grid;
  gap: .125rem;
  padding-left: 1.25rem;
  border-left: 1px solid var(--navy);
}
.fx-count__value {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 2rem + 2.2vw, 3.75rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--navy-deep);
}
.fx-count__label {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--anthracite);
}
.fx-count__extra {
  margin-top: .3125rem;
  padding-top: .3125rem;
  border-top: 1px solid var(--line);
  font-size: .8125rem;
  color: var(--muted);
}
.fx-band {
  margin: 0 0 clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
}
.fx-band img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 7;
  max-height: 300px;
  object-fit: cover;
  object-position: center 55%;
}
@media (max-width: 699px) {
  .fx-band img { aspect-ratio: 3 / 2; max-height: 200px; }
}
.studio-card__name { font-size: 1.25rem; font-weight: 600; }
.studio-card__note { margin-top: .375rem; }
#faq .section-head { margin-bottom: clamp(2rem, 1.6rem + 1.8vw, 3rem); }
.fx-faq-exit {
  max-width: 46rem;
  margin: clamp(2rem, 1.6rem + 1.8vw, 3.25rem) auto 0;
  text-align: center;
}
#bilan .section-head h2 {
  font-size: clamp(1.875rem, 1.4rem + 2.1vw, 3rem);
  line-height: 1.06;
}
#bilan .section-head p {
  max-width: 34rem;
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.1875rem);
}
.booking-proof--pills li {
  gap: .75rem;
  align-items: flex-start;
  padding: .875rem 1rem;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .06);
}
.booking-proof--pills svg {
  margin-top: 0;
  padding: 7px;
  box-sizing: content-box;
  border-radius: 50%;
  background: rgba(143, 180, 245, .13);
}
@media (min-width: 860px) {
  .booking-proof--pills { gap: .75rem; }
}
.sb-studios--lg .sb-studios__label {
  font-size: var(--fs-sm);
  letter-spacing: .06em;
  color: var(--anthracite);
  margin-bottom: .75rem;
}
.sb-studios--lg .sb-studios__grid { gap: .5rem; }
.sb-studios--lg .sb-studios__btn {
  min-height: 48px;
  padding: .5rem 1.125rem;
  font-size: var(--fs-base);
  background: var(--bg);
}
.sb-studios--lg .sb-studios__btn:hover { background: var(--accent-softer); }
.sb-studios--lg .sb-studios__btn[aria-selected="true"] {
  background: var(--navy);
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(0, 35, 102, .16), var(--shadow-sm);
}
.digital__label {
  padding-left: .625rem;
  border-left: 1px solid var(--navy);
  color: var(--anthracite);
}
@media (min-width: 480px) {
  .digital__label { padding-top: 0; margin-top: .625rem; }
}
.digital__chips a { min-height: 40px; }
.digital__panel {
  border-color: var(--line-soft);
  box-shadow: var(--shadow-sm);
}
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.legal-top {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.legal-top .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 72px;
}
.legal-top .brand__logo { height: 36px; width: auto; display: block; }
.legal-top__back {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--navy);
  white-space: nowrap;
}
.legal-foot {
  border-top: 1px solid var(--line);
  padding-block: 1.75rem;
}
.legal-foot .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem 1.5rem;
}
.legal-foot p { margin: 0; font-size: var(--fs-sm); color: var(--muted); }
.legal {
  padding-block: clamp(2.5rem, 2rem + 2.4vw, 4rem);
}
.legal .wrap { max-width: 46rem; }
.legal h1 {
  font-size: clamp(1.875rem, 1.5rem + 1.8vw, 2.75rem);
  line-height: 1.1;
  margin: 0 0 1rem;
}
.legal .lead { max-width: 34rem; }
.legal h2 {
  margin-top: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
  margin-bottom: .875rem;
  padding-top: clamp(1.5rem, 1.2rem + 1.3vw, 2.25rem);
  border-top: 1px solid var(--line);
  font-size: var(--fs-h3);
}
.legal p { max-width: 34rem; margin: 0 0 1rem; }
.legal p:last-child { margin-bottom: 0; }
.legal p > strong { color: var(--anthracite); font-weight: 600; }
.legal a { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 3px; }
.legal a:hover { color: var(--navy); }
.legal-list {
  max-width: 34rem;
  margin: 0 0 1rem;
  padding-left: 1.125rem;
  list-style: disc;
}
.legal-list li { margin-bottom: .5rem; }
.legal-list li::marker { color: var(--blue); }
.legal-table {
  max-width: 40rem;
  margin: 0 0 1.5rem;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}
.legal-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.legal-table th,
.legal-table td {
  padding: .75rem 1rem;
  text-align: left;
  vertical-align: top;
}
.legal-table thead th {
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
}
.legal-table tbody tr + tr th,
.legal-table tbody tr + tr td { border-top: 1px solid var(--line-soft); }
.legal-table tbody th { font-weight: 600; color: var(--anthracite); white-space: nowrap; }
.legal .ph-block { max-width: 40rem; margin: 1.5rem 0; }
.legal .ph-block p { max-width: none; }
@media (max-width: 599px) {
  .legal-table tbody th { white-space: normal; }
}
@media (max-width: 899.98px) {
  .hero__body { gap: 1.25rem; }
  .hero__copy { order: 1; }
  .hero__intro, .hero__actions { gap: 1.125rem; }
  .hero__copy { gap: 1.125rem; }
  .hero__rating {
    order: 2;
    justify-self: start;
    width: 100%;
    max-width: 24rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 1rem;
    align-items: center;
    padding: .875rem 1.125rem;
  }
  .hero__rating-score { grid-column: 1; grid-row: 1 / span 2; margin-top: 0; }
  .hero__rating-value { font-size: 1.875rem; }
  .hero__rating-stars { grid-column: 2; grid-row: 1; }
  .hero__rating-stars svg { width: 15px; height: 15px; }
  .hero__rating-count { grid-column: 2; grid-row: 2; margin-top: .125rem; font-size: .9375rem; }
  .hero__rating-src { grid-column: 1 / -1; grid-row: 3; margin-top: .75rem; padding-top: .625rem; }
}
.hero__media img {
  aspect-ratio: 5 / 3;
  object-position: 50% 0%;
}
@media (max-width: 899.98px) {
  .hero__media { margin-top: 0; }
}
@media (min-width: 700px) {
  .hero__media img { aspect-ratio: 16 / 9; object-position: 50% 12%; }
}
@media (min-width: 900px) {
  .hero__media img { aspect-ratio: 21 / 9; object-position: center 33%; }
}
#difference .qualify-head { text-align: left; margin-inline: 0; }
#difference .qualify { margin-inline: 0; }
#difference .qualify.is-ready::before { margin-inline: 1.75rem 0; }
@media (min-width: 900px) {
  #difference > .wrap {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(2.5rem, 4vw, 4.5rem);
    align-items: center;
  }
  #difference .qualify-head { max-width: none; margin-bottom: 0; }
  #difference .qualify { max-width: none; }
  #difference .qualify.is-ready::before { display: none; }
}
.pillar__num { color: var(--blue); }
@media (min-width: 900px) {
  .fx-split--band .pillars--file { grid-template-columns: repeat(3, 1fr); }
  .fx-split--band .pillars--file .pillar {
    flex-direction: column;
    gap: .875rem;
    padding-inline: var(--pillars-gut);
  }
  .fx-split--band .pillars--file .pillar:first-child { padding-left: 0; }
  .fx-split--band .pillars--file .pillar:last-child  { padding-right: 0; }
  .fx-split--band .pillars--file .pillar + .pillar   { border-left: 1px solid var(--line); }
  .fx-split--band .pillars--file .pillar__body p { max-width: none; }
}
@media (min-width: 1000px) {
  .fx-split--band {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    row-gap: clamp(2.5rem, 1.8rem + 2vw, 3.5rem);
    align-items: center;
  }
  .fx-split--band .fx-split__main { display: contents; }
  .fx-split--band .section-head { grid-column: 1; grid-row: 1; margin-bottom: 0; }
  .fx-split--band .fx-split__aside { grid-column: 2; grid-row: 1; }
  .fx-split--band .pillars--file { grid-column: 1 / -1; grid-row: 2; align-self: start; }
  .fx-split--band .fx-split__cta { grid-column: 1 / -1; grid-row: 3; margin-top: 0; }
}
@media (max-width: 699.98px) {
  .coaches {
    display: flex;
    gap: .875rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    margin-inline: calc(var(--gutter) * -1);
    padding: .375rem var(--gutter) 1rem;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
  }
  .coaches::-webkit-scrollbar { display: none; }
  .coach { flex: 0 0 min(62%, 15rem); scroll-snap-align: start; }
  .coaches [data-reveal] { opacity: 1; transform: none; filter: none; }
}
@media (max-width: 639.98px) {
  .studio-grid[data-enhanced="true"] {
    gap: 0;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
  }
  .studio-grid[data-enhanced="true"] .studio-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem;
    align-items: center;
    padding: .75rem 1rem;
    border: 0;
    border-radius: 0;
  }
  .studio-grid[data-enhanced="true"] .studio-card:hover { box-shadow: none; background: var(--accent-softer); }
  .studio-grid[data-enhanced="true"] .studio-card + .studio-card { border-top: 1px solid var(--line-soft); }
  .studio-grid[data-enhanced="true"] .studio-card__name { grid-column: 1; grid-row: 1; font-size: 1.0625rem; }
  .studio-grid[data-enhanced="true"] .studio-card__note { grid-column: 1; grid-row: 2; margin-top: .125rem; font-size: .8125rem; }
  .studio-grid[data-enhanced="true"] .studio-card__trigger {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    padding: 0;
    font-size: .8125rem;
  }
  .fx-studios-head { gap: 1rem; }
  .fx-count {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: .875rem;
    align-items: center;
  }
  .fx-count__value { grid-row: 1 / span 2; }
  .fx-count__label { align-self: end; }
  .fx-count__extra { align-self: start; margin-top: .25rem; }
  .soon { margin-top: 1.75rem; }
  .soon__grid {
    display: flex;
    gap: .75rem;
    margin-top: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    margin-inline: calc(var(--gutter) * -1);
    padding: 0 var(--gutter) .25rem;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
  }
  .soon__grid::-webkit-scrollbar { display: none; }
  .soon-card { flex: 0 0 min(80%, 18rem); scroll-snap-align: start; padding: .625rem; gap: .875rem; }
  .soon__grid [data-reveal] { opacity: 1; transform: none; filter: none; }
  .soon-card img { width: 56px; height: 70px; }
  .soon-card h4 { font-size: 1.1875rem; margin-top: .375rem; }
}
#faq .faq { margin-inline: 0; }
#faq .fx-faq-exit { margin-inline: 0; text-align: left; }
@media (min-width: 900px) {
  #faq > .wrap {
    display: grid;
    grid-template-columns: clamp(15rem, 30%, 20rem) minmax(0, 1fr);
    column-gap: clamp(2.5rem, 4vw, 4rem);
    align-items: start;
  }
  #faq .section-head {
    grid-column: 1;
    grid-row: 1 / span 2;
    position: sticky;
    top: 6.5rem;
    margin-bottom: 0;
  }
  #faq .faq,
  #faq .fx-faq-exit { grid-column: 2; }
}
.reviews--feature .review:first-child blockquote {
  font-size: clamp(1.375rem, 1.1rem + 1.1vw, 1.875rem);
  line-height: 1.32;
  letter-spacing: -0.012em;
}
.reviews--feature .review:first-child .review__mark {
  font-size: 4rem;
  line-height: .6;
  margin-bottom: .5rem;
}
.reviews--feature .review:first-child figcaption { padding-top: 1.25rem; }
@media (min-width: 700px) {
  .reviews--feature.reviews--stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--reviews-gut);
    border-top: 0;
  }
  .reviews--feature.reviews--stack .review {
    padding-inline: 0;
    margin-top: 0;
    border-top: 0;
  }
  .reviews--feature.reviews--stack .review:first-child {
    grid-column: 1 / -1;
    padding-top: 0;
    padding-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
  }
  .reviews--feature.reviews--stack .review:first-child blockquote { max-width: 40rem; }
  .reviews--feature.reviews--stack .review + .review {
    margin-top: 0;
    padding-top: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);
    padding-bottom: 0;
    border-top: 1px solid var(--line);
  }
  .reviews--feature.reviews--stack .review:nth-child(3)::before {
    display: block;
    content: "";
    position: absolute;
    top: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);
    bottom: 0;
    left: calc(-1 * var(--reviews-gut) / 2);
    width: 1px;
    background: var(--line);
  }
  .reviews--feature.reviews--stack .review:nth-child(2)::before { display: none; }
}
main:not(:has(#temoignages)) #avis {
  background: var(--navy);
  padding-block: var(--sp-section-dark);
}
main:not(:has(#temoignages)) #avis h2 { color: var(--on-dark); }
main:not(:has(#temoignages)) #avis .eyebrow { color: var(--on-dark-accent); }
main:not(:has(#temoignages)) #avis .eyebrow::before { background: var(--on-dark-accent); }
main:not(:has(#temoignages)) #avis :focus-visible { outline-color: var(--on-dark-accent); }
main:not(:has(#temoignages)) #avis .review blockquote,
main:not(:has(#temoignages)) #avis .review__name { color: var(--on-dark); }
main:not(:has(#temoignages)) #avis .review__meta { color: var(--on-dark-accent); }
main:not(:has(#temoignages)) #avis .review__source { color: var(--on-dark-muted); }
main:not(:has(#temoignages)) #avis .review__mark { color: var(--on-dark-line); }
main:not(:has(#temoignages)) #avis .review,
main:not(:has(#temoignages)) #avis .reviews { border-color: var(--on-dark-line); }
main:not(:has(#temoignages)) #avis .review::before { background: var(--on-dark-line); }
.coachrow__top { display: grid; gap: 1.25rem; margin-bottom: clamp(1.75rem, 1.3rem + 2vw, 2.75rem); }
.coachrow__top .section-head { margin-bottom: 0; }
.coachrow__nav { display: none; gap: .625rem; }
.coachrow__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--navy);
  cursor: pointer;
  box-shadow: var(--shadow-xs);
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
              opacity var(--dur) var(--ease);
}
.coachrow__btn:hover:not(:disabled) { background: var(--accent-softer); border-color: var(--accent-soft); }
.coachrow__btn:disabled { opacity: .3; cursor: default; box-shadow: none; }
@media (min-width: 1120px) {
  .coachrow__top {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    column-gap: 2rem;
  }
  .coachrow__nav { display: flex; padding-bottom: .25rem; }
  .coaches--row {
    --cgap: 1.25rem;
    display: flex;
    gap: var(--cgap);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 6px;
    margin: -6px;
    scroll-padding-inline: 6px;
  }
  .coaches--row::-webkit-scrollbar { display: none; }
  .coaches--row:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; border-radius: var(--radius-lg); }
  .coaches--row.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
  .coaches--row.is-dragging .coach { pointer-events: none; }
  .coaches--row .coach {
    flex: 0 0 calc((100% - 4 * var(--cgap)) / 4.3);
    min-width: 0;
    margin-top: 0;
    scroll-snap-align: start;
  }
  .coaches--row [data-reveal] { opacity: 1; transform: none; filter: none; }
  .coaches--row .coach__body { padding: 1rem 1.125rem 1.125rem; padding-right: 2.75rem; }
  .coaches--row .coach__body h3 { font-size: 1.1875rem; }
  .coaches--row .coach__role { font-size: var(--fs-sm); letter-spacing: normal; }
}
.coach__body { position: relative; padding-right: 2.75rem; }
.coach__body::after {
  content: "";
  position: absolute;
  right: 1.125rem;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  background: var(--navy);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.coach:hover .coach__body::after,
.coach:focus-visible .coach__body::after { opacity: 1; transform: none; }
.sb-agenda { min-height: 0; }
.sb-agenda__state[data-sb-invite] {
  min-height: 7.5rem;
  border: 1px dashed var(--accent-soft);
  border-radius: var(--radius);
  background: var(--accent-softer);
  color: var(--body);
}
@media print {
  .site-header, .drawer, .on-dark__bg { display: none; }
  body { background: #fff; }
}
