/* LOT100 COMPLEMENT3 START
   Primary fill only: no link, handler, calculator or form-owner change.
   Match all FC primary placements, including controls outside main.
   Three known app IDs intentionally outrank FC79's double-ID rule. */
body:is([data-route="/formation-continue"],[data-route^="/formation-continue/"]):has(#app#app#app)
  :is(.btn-primary,.fcv-btn-primary){
  background:var(--lot97b-public-primary) !important;
  background-image:none !important;
  border-color:var(--lot97b-public-primary) !important;
  color:var(--lot97b-public-primary-ink) !important;
  -webkit-text-fill-color:var(--lot97b-public-primary-ink) !important;
}
body[data-route="/formation-continue"] #app#app .fcv-partner-strip .hero-marquee{
  background:#0e2438 !important;
  padding-block:20px;
  min-height:76px;
  mask-image:none !important;
}
body[data-route="/formation-continue"] #app#app .fcv-partner-strip .hero-marquee .hero-marquee-logo{
  height:36px !important;
  max-height:36px !important;
  width:auto !important;
  max-width:200px !important;
  object-fit:contain;
  background:none !important;
  filter:none !important;
  mix-blend-mode:normal;
  opacity:1 !important;
  border:0;
  box-shadow:none;
}
body[data-route="/formation-continue"] #app#app .fcv-partner-strip .marquee-track{
  width:min(100%,920px) !important;
  transform:none !important;
  animation:none !important;
  justify-content:space-evenly;
  gap:clamp(12px,2vw,40px);
  margin-inline:auto;
}
@media(max-width:640px){
  body[data-route="/formation-continue"] #app#app .fcv-partner-strip .hero-marquee .hero-marquee-logo{
    height:32px !important;
    max-height:32px !important;
    max-width:180px !important;
  }
  body[data-route="/formation-continue"] #app#app .fcv-partner-strip .marquee-track{gap:12px;}
}
/* LOT100 COMPLEMENT3 END */

/* LOT100 C45 START: scoped presentation, no estimator or booking behavior. */
@media (max-width: 1340px) {
  /* NK detail pages isolate the base sheet; keep these menu targets in polish. */
  #navLinks#navLinks :is(.nav-wa, .lang-toggle, .lang-toggle button) {
    height: 48px !important;
    min-height: 48px !important;
    box-sizing: border-box;
  }
}
html.nav-menu-open #navLinks#navLinks .nav-cta::after {
  flex: 0 0 auto;
  align-self: center;
}
body[data-route="/formation-continue"] #app#app .fcv-calculator .fcv-container > .fcv-actions {
  margin: 24px auto !important;
  padding: 0 24px;
  box-sizing: border-box;
  justify-content: flex-end;
}
/* C5bis: paint the shared src, never an earlier CSS substitute. NK home only. */
body[data-route="/numeriklub"] #app#app #formats :is(#format-annuel,#format-petites,#format-grandes,#format-surmesure) .ic-chip-logo img {
  content: normal !important;
}
/* LOT100 C45 END */

/* LOT100 C6 START — preserve the LP custom card's pre-existing frame. */
body[data-route="/lp/numeriklub/sur-mesure"] #app#app .prog-cover:has(> img[src$="/ui-c/hub/sur-mesure-cutout.webp"]) {
  height: auto;
  aspect-ratio: 1430 / 1100;
}
/* LOT100 C6 END */
/* Optical, not just box-size, normalization of the institutional seals.
   These particular assets use white paper/circle backgrounds and dark marks:
   grayscale + inversion + screen removes the paper on the dark rail, without
   changing their originals or inverting transparent white studio wordmarks. */
:root {
  --lot97b-public-primary: #FE9F14;
  --lot97b-public-primary-ink: #1C1C1C;
}

/* The Academy navigation anchor has no btn-primary class. Normalize that
   public primary action too, leaving the global contact ghost action alone. */
#site-nav .nav-cta:not(.nav-cta-ghost) {
  background: var(--lot97b-public-primary) !important;
  color: var(--lot97b-public-primary-ink) !important;
  border-color: var(--lot97b-public-primary) !important;
}

body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee-logo:is(
  [src*="/certifs/"], [src*="/partners/france-2030"]
) {
  height: 44px !important;
  max-height: 44px !important;
  opacity: 1 !important;
  filter: grayscale(1) invert(1) !important;
  mix-blend-mode: screen;
}

body[data-route="/formation-continue"] #app .page .hero-marquee {
  background: var(--fc-ink, #0e2438) !important;
  color: #fff;
  min-height: 80px;
  padding-block: 18px;
  mask-image: none !important;
}

body[data-route="/formation-continue"] #app .page .hero-marquee .hero-marquee-logo {
  height: 44px !important;
  max-height: 44px !important;
  max-width: 160px !important;
  opacity: 1 !important;
  filter: grayscale(1) invert(1) !important;
  mix-blend-mode: screen;
}

body[data-route="/formation-continue"] #app .page .hero-marquee .marquee-track {
  min-width: 100%;
  justify-content: space-evenly;
  gap: 36px;
}

@media (max-width: 759px) {
  body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub
    .hero-marquee-logo:is([src*="/certifs/"], [src*="/partners/france-2030"]),
  body[data-route="/formation-continue"] #app .page .hero-marquee .hero-marquee-logo {
    height: 36px !important;
    max-height: 36px !important;
  }
  body[data-route="/formation-continue"] #app .page .hero-marquee .marquee-track { gap: 20px; }
}
/* LOT97b — tightly scoped visual corrections from review.
   No content, pricing, forms, or interaction styling outside these surfaces. */

/* Annual hero metadata has no textual separators; spacing belongs to layout. */
body[data-route="/numeriklub/parcours-annuel"]
  #app .page-hero .lead[data-nk50-meta-split] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

/* The band's dualLogo already contains the proper white lockup. Explicitly
   expose only its dark-surface variant on this dark NK band. */
body[data-route="/"] #app .page-home:has(> .page-hero-hub) > section#decouverte
  .hub-band.theme-orange .hub-band-logo.lg-on-dark {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  filter: none !important;
}

body[data-route="/"] #app .page-home:has(> .page-hero-hub) > section#decouverte
  .hub-band.theme-orange .hub-band-logo.lg-on-light {
  display: none !important;
}

/* The global home hero already identifies Parallel 14 in its navigation.
   Remove only the second, oversized in-hero lockup. */
body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub .hub-hero-brand {
  display: none !important;
}

/* Home detail-title emphasis should read as typography, not blue/grey chips.
   Factual badges and highlights inside those badges retain their treatment. */
body[data-route="/"] #app .page-home:has(> .page-hero-hub)
  .home84-highlight:not(:where(.home84-fact *)) {
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Align these two section heads with their existing content container. */
body[data-route="/"] #app .page-home:has(> .page-hero-hub)
  > section:is(#pourquoi, #comment) > .container > .section-head {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
  text-align: left;
}

body[data-route="/"] #app .page-home:has(> .page-hero-hub)
  > section:is(#pourquoi, #comment) > .container > .section-head > :is(h2, p) {
  margin-inline: 0;
  text-align: left;
}

/* On the NK hub, the ateliers heading belongs to the same container edge as
   its orbit. Replace the narrower, centered legacy head without touching the
   three-column orbit or its central scene. */
html:has(.page-numeriklub-hub) .page-numeriklub-hub
  #ateliers > .container > .section-head {
  width: 100%;
  max-width: none !important;
  margin: 0 0 28px !important;
  padding-inline: 0 !important;
  align-items: flex-start;
  text-align: left;
}

html:has(.page-numeriklub-hub) .page-numeriklub-hub
  #ateliers > .container > .section-head > :is(h2, p) {
  margin-inline: 0 !important;
  text-align: left;
}

@media (max-width: 759px) {
  html:has(.page-numeriklub-hub) .page-numeriklub-hub
    #ateliers > .container > .section-head {
    margin-bottom: 20px !important;
  }
}

/* FC activity-intro content shares the established container edge, without
   its former nested inset or compensating margin. */
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  #app .fc-cs-sec .fc-cs {
  padding-inline: 0;
}

body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  #app .fc-cs-sec .fc-cs-text {
  margin-inline: 0;
  padding-inline: 0;
}

body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  #app .fc-cs-sec .fc-cs-block {
  margin-inline: 0;
  padding-inline: 0;
}

/* Optical consistency for partner marks. Native colour artwork stays native;
   only assets already classified as white receive their existing theme mask. */
body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee-logo {
  box-sizing: content-box;
  width: auto;
  height: 30px;
  max-width: 144px;
  object-fit: contain;
  opacity: .94;
}

body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub
  .hero-marquee-logo.is-white {
  filter: none;
}

@media (max-width: 640px) {
  body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee {
    overflow: hidden;
  }

  body[data-route="/"] #app .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee-logo {
    height: 25px;
    max-width: 120px;
  }
}

/* Shared primary CTA decision: the review-approved warm orange/ink pair.
   Keep reservation, form, dialog, and checkout owners outside this layer. */
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  #site-nav :is([data-fc-budget-open], .fcv-btn-primary, .nav-cta:not(.nav-cta-ghost)),
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  .fc-budget-dock [data-fc-budget-open],
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  #app :is(.fcv-actions .fcv-btn-primary, .fcv-hero-actions .btn-primary),
body[data-route="/"] #app .page-home:has(> .page-hero-hub)
  > section#decouverte a.btn-primary[href^="/formation-continue"] {
  background: #FE9F14 !important;
  background-image: none !important;
  border-color: #FE9F14 !important;
  color: #1C1C1C !important;
  -webkit-text-fill-color: #1C1C1C !important;
}

/* The owner appends the dock after main: keep it in normal flow at every
   width, show its useful copy, and retain the existing button handler. */
body:has(#app#app):is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  .fc-budget-dock {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: flex;
  box-sizing: border-box;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  width: min(calc(100% - 32px), 720px);
  margin: 24px auto 32px;
  padding: 12px 14px;
  border: 1px solid #D8DFE4;
  border-left: 3px solid #0E2438;
  border-radius: 4px;
  background: #FFF;
  box-shadow: 0 3px 12px rgb(14 36 56 / 7%);
}

body:has(#app#app):is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  .fc-budget-dock .fc-budget-dock-copy {
  position: static;
  width: auto;
  height: auto;
  flex: 1 1 220px;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  color: #536575;
  font-size: .84rem;
  line-height: 1.45;
  white-space: normal;
}

body:has(#app#app):is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
  .fc-budget-dock [data-fc-budget-open] {
  flex: 0 0 auto;
  width: auto;
  min-height: 48px;
  padding: .55rem .9rem;
  border-radius: 4px;
  box-shadow: none;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

/* Academy immersive-video restoration: use the original scroll hero styles
   and media source again. Keep only the unrelated empty text backdrop fix. */
body[data-route="/academy"] #app .page-hero-scroll .hero-left::before {
  content: none !important;
}

/* Existing bar is the final child of the Academy page: leave its content,
   links and events alone, but show it in flow after scrolling, never over the
   first-screen portrait or text. Applies to both motion preferences/mobile. */
body[data-route="/academy"] #app .academy-floatbar {
  position: static;
  inset: auto;
  transform: none;
  width: min(960px, calc(100% - 32px));
  margin: var(--space-6) auto;
}

/* Observed owner of the thin empty square: a lazy decorative image without
   src, not any of the four authored presentation photos/cards. */
body[data-route="/academy"] #app #presentation .lot81-decor {
  display: none !important;
}

/* Same helmet theme, using an existing truly transparent flat character.
   The original summer file contains an opaque black strip; leave it intact.
   Presentation-only replacement, with a 16:9 sky-backed derivative. */
body[data-route="/numeriklub"] #app #formats #format-grandes .ic-chip-logo img {
  content: url("/assets/lot97b/grandes-vacances-flat.webp") !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center;
  filter: none;
}

@media (max-width: 520px) {
  body:has(#app#app):is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
    .fc-budget-dock {
    align-items: stretch;
  }

  body:has(#app#app):is([data-route="/formation-continue"], [data-route^="/formation-continue/"])
    .fc-budget-dock [data-fc-budget-open] {
    width: 100%;
  }
}
