/* Homepage refinement. Scoped to the existing ACF page-index template.
   Rubik, SCFP blue and all editorial content remain the site's authority. */
.scfp-home {
  --home-blue: #00468a;
  --home-ink: #082853;
  --home-muted: #526273;
  --home-paper: #f1f4f6;
  --home-line: #d9e1e7;
  --home-width: 120rem;
  --home-gutter: clamp(2rem, 5vw, 8rem);
  --home-space: clamp(4.8rem, 6vw, 8rem);
  color: var(--home-ink);
  background: #fff;
  margin-top: var(--home-header-height, 146px);
}
.scfp-home *, .scfp-home *::before, .scfp-home *::after { box-sizing: border-box; }
body.scfp-home-page .reveal { display: none; }
@media (max-width: 1035px) {
  .scfp-home { --home-header-height: 8.8rem; }
  body.scfp-home-page .mobile-container { top: 0; width: 100%; background: #fff; }
  body.scfp-home-page .topnav { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; min-height: 8.8rem; padding: 1.2rem 2rem; box-sizing: border-box; }
  body.scfp-home-page .topnav .logo { float: none; height: auto !important; padding: 0 !important; border-radius: 0; background: #fff; flex: 0 1 13rem; min-width: 0; }
  body.scfp-home-page .topnav .logo img { display: block; width: 100%; height: auto; max-height: 6.4rem; }
  body.scfp-home-page .topnav .logo:hover { transform: none; }
  body.scfp-home-page .topnav .syndiquer_bouton { display: flex; align-items: center; justify-content: center; min-height: 4.4rem; padding: .8rem 1.2rem; margin: 0 !important; }
  body.scfp-home-page .topnav .syndiquer_bouton p { font-size: 1.4rem !important; letter-spacing: 0; white-space: nowrap; }
  body.scfp-home-page .topnav .top-left-navigation { float: none; position: relative; flex: 0 0 4.4rem; height: 4.4rem; margin: 0; }
  body.scfp-home-page .topnav .toggler-wrapper { position: relative; width: 4.4rem; height: 4.4rem; margin: 0; background: #00468a; border-radius: 50%; border: 0; padding: 0; appearance: none; }
  body.scfp-home-page .topnav .toggler-bg { background: #00468a; border-radius: 50%; transform: none !important; }
  body.scfp-home-page .topnav .toggler { top: 50%; left: 50%; transform: translate(-50%,-50%); }
  body.scfp-home-page .menu-display.open { height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 399px) {
  body.scfp-home-page .topnav { gap: .8rem; padding-inline: 1.2rem; }
  body.scfp-home-page .topnav .logo { flex-basis: 10rem; }
  body.scfp-home-page .topnav .syndiquer_bouton { padding-inline: .8rem; }
  body.scfp-home-page .topnav .syndiquer_bouton p { font-size: 1.3rem !important; }
}
.scfp-home ::selection { background: #c7d34e; color: var(--home-ink); }
.scfp-home p { letter-spacing: 0; line-height: 1.7; }
.scfp-home :is(h1,h2,h3,h4,h5,h6) { letter-spacing: -.02em; text-wrap: balance; overflow-wrap: anywhere; }
.scfp-home a { text-underline-offset: .2em; }
.scfp-home :is(a,button):focus-visible { outline: 3px solid #c7d34e; outline-offset: 4px; }
.scfp-home button { font: inherit; cursor: pointer; }
.scfp-home button[hidden], .scfp-home [hidden] { display: none !important; }
.scfp-home-banner { background: var(--home-paper); }
.scfp-home-slider { position: relative; overflow: hidden; width: 100%; }
.scfp-home-slider .swiper-wrapper { align-items: flex-start; }
.scfp-home-slide { height: auto; background: var(--home-paper); }
.scfp-home-slide-panel { background: var(--home-blue); color: #fff; }
.scfp-home-slide-content {
  max-width: calc(var(--home-width) + 2 * var(--home-gutter));
  margin: auto; padding: 2rem var(--home-gutter);
  display: flex; align-items: center; justify-content: space-between; gap: 2.4rem;
}
.scfp-home-slide-copy { min-width: 0; max-width: 80rem; }
.scfp-home-slide-copy > br:first-child { display: none; }
.scfp-home-slide-copy :is(h1,h2,h3,h4,h5,h6) { font-size: clamp(2.6rem, 2.7vw, 4rem); line-height: 1.15; font-weight: 500; color: #fff; margin: 0 0 .8rem; }
.scfp-home-slide-copy p { font-size: 1.8rem; line-height: 1.45; margin: 0 0 .8rem; max-width: 65ch; }
.scfp-home-slide-copy > :last-child { margin-bottom: 0; }
.scfp-home-slide-copy a { color: #fff; }
.scfp-home-slide-link {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 2.4rem;
  flex: 0 1 auto; max-width: 36rem; min-height: 4.4rem; padding: 1.2rem 2rem;
  color: var(--home-ink); background: #fff; text-decoration: none; font-weight: 500;
  font-size: 1.6rem; line-height: 1.4; border-radius: .4rem; overflow-wrap: anywhere;
  transition: background-color 160ms ease;
}
.scfp-home-slide-link:hover { background: #c7d34e; color: var(--home-ink); }
.scfp-home-slide-link img { flex: 0 0 2rem; }
.scfp-home-slide-media { height: clamp(24rem, 32vw, 48rem); display: flex; justify-content: center; align-items: center; }
.scfp-home-slide-media img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: contain; }
.scfp-home-slider-controls {
  position: relative; z-index: 2; display: flex; align-items: center; gap: 2.4rem;
  max-width: calc(var(--home-width) + 2 * var(--home-gutter));
  margin: auto; padding: 1.6rem var(--home-gutter); min-height: 7.6rem;
}
.scfp-home-slider-position { font-size: 1.4rem; font-variant-numeric: tabular-nums; min-width: 4rem; }
.scfp-home-slider-buttons { margin-left: auto; display: flex; align-items: center; gap: .8rem; }
.scfp-home-slider-buttons button {
  display: inline-flex; align-items: center; justify-content: center; min-width: 4.4rem; min-height: 4.4rem;
  border: 1px solid var(--home-line); border-radius: .4rem; padding: .8rem; color: var(--home-ink); background: #fff;
}
.scfp-home-slider-buttons button:hover { background: #e1e9ef; }
.scfp-home-slider-buttons button:disabled { opacity: .45; cursor: default; }
.scfp-home-prev img { transform: rotate(180deg); }
/* All slides stay readable if the carousel library fails to load. */
.scfp-home-slider:not(.swiper-container-initialized) .swiper-wrapper { display: block; }
.scfp-home-slider:not(.swiper-container-initialized) .scfp-home-slide + .scfp-home-slide { margin-top: 2.4rem; }

/* Replace the old spacer divs and column offsets with content-based rhythm. */
.scfp-home > :is(.news,.latest-news,.formation2,.action,.stats) { padding: var(--home-space) var(--home-gutter); }
.scfp-home > :is(.news,.latest-news,.formation2,.action,.stats) > .row { max-width: var(--home-width); margin-inline: auto; }
.scfp-home :is(.news,.latest-news,.formation2,.action,.stats) [class^="divider-"] { display: none; }
.scfp-home :is(.news,.latest-news,.formation2,.action,.stats) .columns { min-width: 0; }
.scfp-home :is(.news,.latest-news,.formation2,.action,.stats) :is(.animate,.animate-2,.content-wrapper,.post) {
  transform: none !important; opacity: 1 !important; visibility: visible !important;
}
.scfp-home :is(.news,.latest-news) .button {
  position: relative; inset: auto; padding: 1.4rem 2rem; min-height: 4.8rem;
  border-radius: .4rem; margin-top: 1.6rem; max-width: 100%;
}
.scfp-home :is(.news,.latest-news) .button .text { letter-spacing: 0; font-weight: 500; margin-right: 1.6rem; }
.scfp-home :is(.news,.latest-news) .button .icon { width: 2rem; height: 2rem; }
.scfp-home :is(.news,.latest-news) .date { color: var(--home-muted) !important; letter-spacing: 0; margin-bottom: 1.6rem !important; }
.scfp-home .news {
  display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 3.2rem 4.8rem;
  max-width: calc(var(--home-width) + 2 * var(--home-gutter)); margin-inline: auto;
}
.scfp-home .news > .row { width: 100%; }
.scfp-home .news > .scfp-home-news-heading { grid-column: 1 / -1; }
.scfp-home .news .columns { width: 100%; flex: auto; max-width: none; margin: 0; padding: 0; }
.scfp-home .news .featured-news h1 { color: var(--home-ink); opacity: 1; font-size: clamp(3.2rem,3vw,4.4rem); margin: 0; }
.scfp-home .news > .scfp-home-news-image { align-self: stretch; }
.scfp-home .news > .scfp-home-news-image > .columns { position: relative; min-height: 34rem; height: 100%; }
.scfp-home .news .bg-img { border-radius: .4rem; background-position: center; }
.scfp-home .news > .scfp-home-news-image .bg-color, .scfp-home .news .featured-row { display: none; }
.scfp-home .news .featured-news-content { align-self: center; }
.scfp-home .news .featured-news-content .content { border: 0; padding: 0; }
.scfp-home .news .content h4 { font-size: clamp(2.6rem,2.2vw,3.2rem); margin: 0 0 1.6rem; line-height: 1.25; }
.scfp-home .news .content p:not(.date) { margin-bottom: 1.6rem; }
.scfp-home .latest-news { padding-top: 0; }
.scfp-home .latest-news .columns { width: 100%; flex: auto; max-width: none; margin: 0; padding: 0; }
.scfp-home .latest-news .news-fix { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3.2rem; }
.scfp-home .latest-news .post { display: flex; flex-direction: column; height: auto; border: 0; margin: 0; padding: 0; }
.scfp-home .latest-news .news-border { display: none; }
.scfp-home .latest-news .img-wrapper { position: relative; height: auto; }
.scfp-home .latest-news .post-img { position: relative; aspect-ratio: 16/10; border-radius: .4rem; }
.scfp-home .latest-news .post-img .link { display: block; position: absolute; inset: 0; }
.scfp-home .latest-news .content { padding: 2.4rem 0 0; flex: 1; display: flex; flex-direction: column; align-items: flex-start; height: auto; min-height: 0; }
.scfp-home .latest-news .content > div:first-child { flex: 1; }
.scfp-home .latest-news .content h4 { font-size: 2.2rem; margin-bottom: 1.2rem; }
.scfp-home .latest-news .content p { margin-bottom: 1.6rem; }
.scfp-home .latest-news .content p:empty, .scfp-home .news .content p:empty { display: none; }
.scfp-home .latest-news .content .button { position: relative; bottom: auto; left: auto; }
.scfp-home .latest-news .call-to-action { margin-top: 4rem; border-top: 1px solid var(--home-line); padding-top: 2.4rem; display: inline-flex; align-items: center; gap: 2.4rem; color: var(--home-blue); }
.scfp-home .latest-news .call-to-action h4 { margin: 0; font-size: 2rem; }
.scfp-home .latest-news .call-to-action .icon { position: static; transform: none; width: 2.4rem; height: 2.4rem; }
.scfp-home .formation2 { background: var(--home-blue); color: #fff; }
.scfp-home .formation2 > .bg-color, .scfp-home .stats > .bg-color, .scfp-home .action > .bg-color { display: none; }
.scfp-home .formation2 > .row { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 6.4rem; align-items: center; }
.scfp-home :is(.formation2,.stats) > .row > .columns { width: 100%; max-width: none; flex: auto; padding: 0; margin: 0; }
.scfp-home .formation2 h1 { font-size: clamp(3.2rem,3vw,4.4rem); margin-bottom: 2.4rem; }
.scfp-home .formation2 p { max-width: 70ch; margin-bottom: 1.6rem; }
.scfp-home .formation2 .animate .content-wrapper { margin: 0; aspect-ratio: 4/3; border-radius: .4rem; }
.scfp-home .formation2 .animate .content-wrapper .bg-img { background-size: contain; background-repeat: no-repeat; background-color: #fff; }
.scfp-home .formation2 .animate .content-wrapper:hover .bg-img { transform: none; }
.scfp-home .formation2 .content { padding: 2rem 0 0; }
.scfp-home .formation2 .content a { display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; }
.scfp-home .formation2 .content h6 { font-size: 2rem; margin: 0; }
.scfp-home .formation2 .content .icon { position: static; opacity: 1; }
.scfp-home .formation2 .content a:hover { color: #c7d34e; }
.scfp-home .stats { background: var(--home-ink); color: #fff; }
.scfp-home .stats > .row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); align-items: center; gap: 8rem; }
.scfp-home .stats .stats-wrapper { text-align: left; padding-block: 2.4rem; border-bottom: 1px solid #36516f; }
.scfp-home .stats .stats-wrapper:first-child { padding-top: 0; }
.scfp-home .stats .stats-wrapper:last-child { border: 0; padding-bottom: 0; }
.scfp-home .stats .stats-wrapper h1 { font-size: clamp(3.2rem,3.5vw,4.8rem); line-height: 1.2; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.scfp-home .stats .stats-wrapper p { opacity: 1; color: #d8e4ef; text-transform: none; font-size: 1.6rem; margin-top: .8rem; }
.scfp-home .stats .content-wrapper p { margin-bottom: 2rem; max-width: 70ch; }
.scfp-home .stats .button { border: 1px solid #7993ad; border-radius: .4rem; padding: 1.4rem 2rem; max-width: 100%; }
.scfp-home .stats .button .text { letter-spacing: 0; margin-right: 1.6rem; }
.scfp-home .action { background: var(--home-paper); color: var(--home-ink); }
.scfp-home .action .big-title { color: var(--home-ink); opacity: 1; font-size: clamp(3.2rem,3vw,4.4rem); margin: 0 0 3.2rem; }
.scfp-home .action > .row .eight.columns { width: 100%; margin: 0; max-width: none; flex: auto; }
.scfp-home .action > .row:has(.two.columns) { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2.4rem; margin-top: 2.4rem; }
.scfp-home .action .two.columns { width: 100%; max-width: none; margin: 0; padding: 0; }
.scfp-home .action .content-wrapper { margin: 0; border-radius: .4rem; }
.scfp-home .action .content-wrapper .divider-288 { display: block; height: auto; aspect-ratio: 4/3; }
.scfp-home .action .content { padding: 1.6rem 0 0; }
.scfp-home .action .content h6 { margin: 0; font-size: 1.8rem; padding-right: 3.2rem; }
.scfp-home .action .content .icon { opacity: 1; top: 1.6rem; right: 0; }
.scfp-home > .container-fluid:has(.parallax) .divider-640 { height: clamp(24rem,30vw,40rem); }
@media (max-width: 999px) {
  .scfp-home-slide-content { align-items: flex-start; flex-direction: column; gap: 2.4rem; }
  .scfp-home .news { gap: 3.2rem; }
  .scfp-home .formation2 > .row, .scfp-home .stats > .row { gap: 4rem; }
  .scfp-home .latest-news .news-fix { gap: 2.4rem; }
  .scfp-home .action > .row:has(.two.columns) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 749px) {
  .scfp-home .news { grid-template-columns: minmax(0,1fr); }
  .scfp-home .news > .scfp-home-news-image > .columns { min-height: 0; aspect-ratio: 16/10; }
  .scfp-home .latest-news .news-fix, .scfp-home .formation2 > .row, .scfp-home .stats > .row { grid-template-columns: minmax(0,1fr); }
  .scfp-home .latest-news .news-fix { gap: 4rem; }
  .scfp-home .latest-news .post { padding-bottom: 3.2rem; border-bottom: 1px solid var(--home-line); }
  .scfp-home .latest-news .post:last-child { padding-bottom: 0; border: 0; }
  .scfp-home .stats .stats-wrapper { text-align: left; }
  .scfp-home-slider-controls { gap: .4rem; flex-wrap: wrap; padding-block: .8rem; min-height: 0; }
.scfp-home-pagination .swiper-pagination-bullet { flex: 0 0 clamp(3.2rem, 8vw, 4.4rem); width: clamp(3.2rem, 8vw, 4.4rem); min-height: 4.4rem; margin: 0; }
  .scfp-home-slider-buttons { margin-left: auto; }
  .scfp-home-slide-link { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .scfp-home *, .scfp-home *::before, .scfp-home *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
/* Override the incumbent deeply nested article selectors without global changes. */
.scfp-home .latest-news .featured-news-content .content-wrapper .content {
  padding: 2.4rem 0 0; font-size: 1.6rem; line-height: 1.7;
}
.scfp-home .latest-news .featured-news-content .content-wrapper .content p { margin-bottom: 1.6rem; }
.scfp-home .latest-news .featured-news-content .content-wrapper .content .button { position: relative; bottom: auto; left: auto; }
.scfp-home .news .featured-news-content .content-wrapper .content p:not(.date) { margin-bottom: 1.6rem; }
.scfp-home .latest-news .news-fix { margin: 0; }
.scfp-home .latest-news .featured-news-content > .content-wrapper,
.scfp-home .news .featured-news,
.scfp-home .formation2 .animate-2 > .content-wrapper,
.scfp-home .stats .four.columns > .content-wrapper { padding: 0; }
.scfp-home .latest-news > .row > .featured-news-content,
.scfp-home .latest-news .content-wrapper > .row > .columns { width: 100%; max-width: none; flex: 0 0 100%; padding: 0; margin: 0; }
.scfp-home :is(.news,.latest-news,.formation2,.stats) :is(h1,h4,h6) { text-transform: none; }
.scfp-home .latest-news .img-wrapper:hover .post-img { transform: none; }
/* The shared footer has a fixed 360px column; constrain it only on this template. */
body.scfp-home-page .footer .flex-item { min-width: 0; max-width: 100%; }
body.scfp-home-page .footer .content-wrapper { max-width: 100%; }
body.scfp-home-page .footer *, body.scfp-home-page .footer *::before, body.scfp-home-page .footer *::after { box-sizing: border-box; }
body.scfp-home-page .footer .button { max-width: 100%; }
body.scfp-home-page .footer :is(a,li) { white-space: normal; overflow-wrap: anywhere; }
body.scfp-home-page .footer .custom-menu-class ul.menu li > a,
body.scfp-home-page .footer ul.sub-menu li a { white-space: normal; max-width: 100%; }
@media (max-width: 749px) {
  body.scfp-home-page .footer .flex-item { width: 100%; margin-right: 0; }
  body.scfp-home-page .footer .content-wrapper.flex-item { padding: 0; }
  body.scfp-home-page .footer .custom-menu-class, body.scfp-home-page .footer ul.menu { max-width: 100%; }
}
/* Tablets keep readable article measures; phones use the full available width. */
@media (min-width: 750px) and (max-width: 1035px) {
  .scfp-home .latest-news .news-fix { grid-template-columns: minmax(0,1fr); gap: 3.2rem; }
  .scfp-home .latest-news .post { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.3fr); gap: 2.4rem; align-items: start; }
  .scfp-home .latest-news .featured-news-content .content-wrapper .content { padding-top: 0; }
}
@media (max-width: 999px) {
  .scfp-home .formation2 > .row { grid-template-columns: minmax(0,1fr); gap: 3.2rem; }
  .scfp-home .formation2 > .row > .two.columns { max-width: 48rem; }
}
@media (max-width: 900px) {
  .scfp-home .news { grid-template-columns: minmax(0,1fr); }
  .scfp-home .news > .scfp-home-news-image > .columns { min-height: 0; aspect-ratio: 16/10; }
}
@media (max-width: 749px) {
  .scfp-home-slide-content { padding-block: 1.6rem; gap: 1.2rem; }
  .scfp-home-slide-copy p { font-size: 1.6rem; }
  .scfp-home-slide-link { width: 100%; max-width: 36rem; }
  .scfp-home-slide-media { height: clamp(18rem,56.25vw,32rem); }
  .scfp-home .stats > .row { gap: 3.2rem; }
  .scfp-home .stats .stats-wrapper { padding-block: 1.6rem; }
  .scfp-home .action > .row:has(.two.columns) { grid-template-columns: minmax(0,1fr); }
}

/* Legacy CTA wrappers share one shape; background layers must not retain pills. */
.scfp-home .button {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 1.6rem;
  min-height: 4.4rem; max-width: 100%; padding: 1.2rem 2rem;
  border-radius: .4rem; background: var(--home-blue); color: #fff;
  white-space: normal; box-shadow: none;
}
.scfp-home .button :is(.bg-color,.bg-color-alt) { display: none; }
.scfp-home .button .link { border-radius: inherit; }
.scfp-home .button .text { margin: 0; font-size: 1.6rem; line-height: 1.4; font-weight: 500; letter-spacing: 0; color: inherit; }
.scfp-home .button .icon { flex: 0 0 2rem; width: 2rem; height: 2rem; margin: 0; }
.scfp-home .stats .button { background: transparent; border: 1px solid #7993ad; padding: 1.2rem 2rem; }
.scfp-home .stats .button .text { margin: 0; }
.scfp-home .stats .button:hover { background: #234268; border-color: #fff; }
.scfp-home .formation2 .button { background: #fff; color: var(--home-ink); }
.scfp-home .formation2 .button .icon { filter: brightness(0); }
