/* Home-only safety during SPA chrome teardown; estimator remains unchanged elsewhere. */
body[data-route="/"] :is([data-fc-budget-dock], [data-fc-budget-overlay]) {
  display: none !important;
}
/* LOT84 — global home only, loaded after home-lot01.css.
   Presentation-only refinements for the global home renderHub. */

body[data-route="/"] .page-home:has(> .page-hero-hub) {
  --home84-ink: var(--home-ink, #0E2438);
  --home84-secondary: var(--home-secondary, #39556F);
  --home84-sky: #DCEAF4;
  --home84-line: rgba(14, 36, 56, .16);
  --home84-night: #0E2438;
  --home84-night-text: #F4F8FB;
  --home84-night-secondary: #DCE7EF;
}

/* Retire only the CSS-added latitude marker; retain the hero and its motion. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hub-hero-copy::after {
  content: none;
  display: none;
}

/* Certification cards are white in either theme. The renderer uses .card-title
   (a div), so set real text colors rather than relying on inherited aliases. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#certifs .certif-card {
  background: #FFFFFF !important;
  color: var(--home84-ink) !important;
  --heading: var(--home84-ink);
  --heading-soft: var(--home84-secondary);
  --text: var(--home84-ink);
  --text-primary: var(--home84-ink);
  --text-secondary: var(--home84-secondary);
  --text-muted: var(--home84-secondary);
  --grad-heading: linear-gradient(115deg, var(--home84-ink), var(--home84-secondary));
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#certifs .certif-card .card-title {
  color: var(--home84-ink);
  -webkit-text-fill-color: var(--home84-ink);
  background: none;
  -webkit-background-clip: border-box;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#certifs .certif-card .card-body {
  color: var(--home84-secondary);
  -webkit-text-fill-color: var(--home84-secondary);
}

/* The renderer's child is .cta-final, not .card. Keep the panel and its copy
   legible over the deliberately dark section in both global color modes. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section.cta-final-section .cta-final {
  --heading: var(--home84-night-text);
  --heading-soft: var(--home84-night-secondary);
  --text: var(--home84-night-text);
  --text-primary: var(--home84-night-text);
  --text-secondary: var(--home84-night-secondary);
  --text-muted: rgba(220, 231, 239, .82);
  color: var(--home84-night-text);
  background-color: var(--home84-night) !important;
  border-color: rgba(220, 231, 239, .18);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section.cta-final-section .cta-final h2 {
  color: var(--home84-night-text);
  -webkit-text-fill-color: var(--home84-night-text);
  background: none;
  -webkit-background-clip: border-box;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section.cta-final-section .cta-final :is(p, .form-note) {
  color: var(--home84-night-secondary);
  -webkit-text-fill-color: var(--home84-night-secondary);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section.cta-final-section .cta-reassurances span {
  color: var(--home84-night-secondary);
  -webkit-text-fill-color: var(--home84-night-secondary);
  border-color: rgba(220, 231, 239, .28);
}

/* Shared compact motifs for the existing card families. These classes are
   added by the owning renderer; no card, label, copy, or action is generated. */
body[data-route="/"] .page-home:has(> .page-hero-hub) :is(.home84-icon, .home84-fact, .home84-highlight) {
  box-sizing: border-box;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-icon {
  display: inline-flex;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--home84-line);
  border-radius: 8px;
  background: var(--home84-sky);
  color: var(--home84-ink);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-icon > svg {
  display: block;
  width: 17px;
  height: 17px;
  stroke: currentColor;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-check {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  align-items: center;
  justify-content: center;
  vertical-align: -.16em;
  border: 1px solid rgba(44, 92, 136, .30);
  border-radius: 50%;
  background: rgba(220, 234, 244, .72);
  color: var(--home84-ink);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-check::before {
  width: 6px;
  height: 3px;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  content: "";
  transform: translateY(-1px) rotate(-45deg);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-fact {
  display: inline-flex;
  max-width: 100%;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 7px;
  padding: 4px 9px;
  border: 1px solid var(--home84-line);
  border-radius: 7px;
  background: rgba(220, 234, 244, .72);
  color: var(--home84-ink);
  -webkit-text-fill-color: var(--home84-ink);
  line-height: 1.4;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-highlight {
  display: inline;
  padding: .08em .34em .12em;
  border-radius: 4px;
  background: rgba(245, 184, 6, .28);
  color: var(--home84-ink);
  -webkit-text-fill-color: var(--home84-ink);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* The existing KPI is the one emphasis on each stats card—no second chip. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#chiffres .stat .stat-num {
  display: inline-block;
  align-self: center;
  align-items: baseline;
  padding: 5px 9px 6px;
  border-radius: 6px;
  background: rgba(245, 184, 6, .20);
  color: var(--home84-ink);
  --heading: var(--home84-ink);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#chiffres .stat .stat-num .unit {
  color: var(--home84-ink);
}

/* Existing facts become check-led without introducing copy or pseudo-text. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers .u-card ul li::before,
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-cursus-meta li::before {
  top: 5px;
  left: 0;
  width: 6px;
  height: 3px;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--home84-secondary);
  transform: rotate(-45deg);
}

/* Preserve the existing equal-height universe-card CTA baseline. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers .u-card .u-cta {
  margin-top: auto;
}

/* One compact factual emphasis per card, no extra information or animation. */
body[data-route="/"] .page-home:has(> .page-hero-hub) :is(.hub-atelier-name,.hub-parc-title,.pourquoi-card .card-title,.step h4,.campus h4,#contact .card:not(.contact-form-card) .card-title) {
  display: flex;
  align-items: center;
  gap: 10px;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) :is(.hub-atelier-meta,.hub-parc-cert) {
  margin-top: 12px;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .badge:has(> .home84-highlight) {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  padding: 0;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-highlight {
  background: #FBE7A8;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-fact {
  background: var(--home84-sky);
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .stat-num {
  background: #FBE7A8 !important;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-check:has(svg)::before {
  content: none;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-check svg {
  width: 12px;
  height: 12px;
  display: block;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) :is(.u-card ul li,.hub-cursus-meta li):has(.home84-check) {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding-left: 0;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) :is(.u-card ul li,.hub-cursus-meta li):has(.home84-check)::before {
  content: none;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-check {
  margin-top: .18em;
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-fact {
  font-size: .875rem;
}

/* The contact card already becomes white in light mode; its inherited muted
   ink must be readable there. No form control, field or behavior is changed. */
html.light body[data-route="/"] .page-home:has(> .page-hero-hub) > section#contact .contact-form-card {
  --text-muted: var(--home84-secondary);
}

/* LOT85 — one editorial scale across the four existing hub heroes.
   Keep each hub's typography family, color, copy, layout and art intact. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hub-hero-copy h1,
body[data-route="/numeriklub"] #app .page-numeriklub-hub > .page-hero-home h1,
body[data-route="/academy"] #app .page-hero-scroll .hero-left-inner h1,
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"]) #app#app .fc79-page .fcv-hero h1 {
  font-size: clamp(34px, 4.166667vw, 60px) !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hub-hero-copy h1 :is(em, i, strong, b, span),
body[data-route="/numeriklub"] #app .page-numeriklub-hub > .page-hero-home h1 :is(em, i, strong, b, span),
body[data-route="/academy"] #app .page-hero-scroll .hero-left-inner h1 :is(em, i, strong, b, span),
body:is([data-route="/formation-continue"], [data-route^="/formation-continue/"]) #app#app .fc79-page .fcv-hero h1 :is(em, i, strong, b, span) {
  font-style: normal !important;
  font-weight: 700 !important;
}

/* Extend the same H1-only treatment to authored Numériklub editorial and
   landing-page heroes. This allowlist deliberately omits reservation/tunnel
   routes; no modal, form or non-hero heading is selected. */
body:is(
  [data-route="/numeriklub/parcours-annuel"],
  [data-route="/numeriklub/stage-vacances-scolaires"],
  [data-route="/numeriklub/stage-grandes-vacances"],
  [data-route="/numeriklub/sur-mesure"],
  [data-route="/numeriklub/calendrier"],
  [data-route="/numeriklub/entreprises"],
  [data-route="/numeriklub/equipe"],
  [data-route="/numeriklub/etablissements"],
  [data-route="/numeriklub/faq"],
  [data-route="/numeriklub/galerie"],
  [data-route="/numeriklub/parents"],
  [data-route="/numeriklub/programmes"],
  [data-route="/numeriklub/tarifs-paiement"],
  [data-route="/numeriklub/temoignages"],
  [data-route^="/numeriklub/thematiques/"],
  [data-route="/lp/numeriklub"],
  [data-route="/lp/numeriklub/parcours-annuel"],
  [data-route="/lp/numeriklub/petites-vacances"],
  [data-route="/lp/numeriklub/grandes-vacances"],
  [data-route="/lp/numeriklub/sur-mesure"]
) #app :is(.page-hero h1, .nk70-hero h1) {
  --nk70-h1-size: clamp(34px, 4.166667vw, 60px) !important;
  --nk70-title-weight: 700 !important;
  font-size: clamp(34px, 4.166667vw, 60px) !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

body:is(
  [data-route="/numeriklub/parcours-annuel"],
  [data-route="/numeriklub/stage-vacances-scolaires"],
  [data-route="/numeriklub/stage-grandes-vacances"],
  [data-route="/numeriklub/sur-mesure"],
  [data-route="/numeriklub/calendrier"],
  [data-route="/numeriklub/entreprises"],
  [data-route="/numeriklub/equipe"],
  [data-route="/numeriklub/etablissements"],
  [data-route="/numeriklub/faq"],
  [data-route="/numeriklub/galerie"],
  [data-route="/numeriklub/parents"],
  [data-route="/numeriklub/programmes"],
  [data-route="/numeriklub/tarifs-paiement"],
  [data-route="/numeriklub/temoignages"],
  [data-route^="/numeriklub/thematiques/"],
  [data-route="/lp/numeriklub"],
  [data-route="/lp/numeriklub/parcours-annuel"],
  [data-route="/lp/numeriklub/petites-vacances"],
  [data-route="/lp/numeriklub/grandes-vacances"],
  [data-route="/lp/numeriklub/sur-mesure"]
) #app :is(.page-hero h1, .nk70-hero h1) :is(em, i, strong, b, span) {
  font-style: normal !important;
  font-weight: 700 !important;
}

/* LOT88 — precise home-only refinements. The hero's own size, composition,
   loader and image requests remain untouched; only the following section's
   lead-in is shortened. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers {
  padding-block-start: clamp(40px, 4.4vw, 60px);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-band-head > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: start;
  gap: 12px;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-band-logo-nk {
  width: min(220px, 100%);
  height: 48px;
  object-fit: contain;
  object-position: left center;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-band-head h3 {
  margin: 0;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-nk-media {
  display: grid;
  place-items: center;
  background: #F5F8F9;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-nk-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-atelier-price,
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-program-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  margin-top: 14px;
  color: var(--home-ink);
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px 7px;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-price-amount {
  color: var(--home-ink);
  font-size: clamp(1.08rem, 1.45vw, 1.3rem);
  font-weight: 800;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-price-qualifier,
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-price-note {
  color: var(--home-secondary);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.4;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .home88-program-price .home88-price-qualifier {
  flex-basis: 100%;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#decouverte .hub-cursus-meta li::before {
  content: none;
}

/* Certified marks use one quiet, light tile without recolouring authentic art. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#certifs .home88-cert-logo {
  display: grid;
  width: 72px;
  height: 56px;
  flex: 0 0 72px;
  place-items: center;
  border: 1px solid rgba(14, 36, 56, .10);
  border-radius: 8px;
  background: #F4F7F8;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#certifs .home88-cert-logo .certif-icon {
  display: block;
  width: 58px;
  height: 42px;
  margin: 0;
  object-fit: contain;
}

/* Retire only LOT84's yellow treatment on the requested home details. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section#chiffres .stat-num {
  padding: 0 !important;
  border-radius: 0;
  background: transparent !important;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#chiffres .stat-num .unit {
  color: inherit;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section:is(#certifs, #campus, #contact) .home84-highlight {
  padding: 0;
  background: transparent;
  color: inherit;
  -webkit-text-fill-color: currentColor;
}

/* LOT88b — tighten only the home’s two seams around the existing partner band.
   The hero itself, its artwork and its internal layout remain untouched. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee {
  margin-top: 0;
}

body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers {
  margin-top: -24px;
}

@media (max-width: 720px) {
  body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers {
    margin-top: -40px;
  }
}

/* The requested details stay editorial, not highlighted; the contact rule
   includes the existing phone and WhatsApp card headings without touching CTA. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > section:is(#chiffres, #certifs, #campus, #contact) .home84-highlight {
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  -webkit-text-fill-color: currentColor;
}

/* Literal utility classes requested for the selected home highlights.
   This site uses plain CSS, not a Tailwind arbitrary-value compiler. */
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-highlight[class~="bg-[color:var(--border)]"] {
  background: var(--border);
}
body[data-route="/"] .page-home:has(> .page-hero-hub) .home84-highlight[class~="bg-[color:var(--blue-050)]"] {
  background: var(--blue-050);
}

/* Bring the partner strip closer to the certifications without changing
   the horizontal gap, the artwork or the marquee itself. */
body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hub-hero-grid {
  row-gap: var(--space-4);
}
@media (min-width: 981px) {
  body[data-route="/"] .page-home:has(> .page-hero-hub) > .page-hero-hub .hero-marquee {
    /* Match the copy's existing visual lift; it still occupies its old
       height in the grid, otherwise leaving an extra empty 28–52 px. */
    margin-top: clamp(-52px, -4vw, -28px);
  }
}

/* The shared desktop stagger rule offsets the second .cols-3 card by 18px.
   Remove it for this section and keep the same 3px hover lift on every card. */
@media (min-width: 921px) {
  body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers .cols-3 > .u-card {
    transform: none;
  }

  body[data-route="/"] .page-home:has(> .page-hero-hub) > section#univers .cols-3 > .u-card:hover {
    transform: translateY(-3px);
  }
}
