:root{
    --purple:#3d2274;
    --purple-2 : #3d2173;
    --lightpurple : #4c5cb0;
    --magenta:#ff3790;
    --offwhite:#f6f6f6;
    --text-color:#b0b1b3;
    --font-site:'FuturaStdBook',sans-serif
}
html,body{
    height:100%;
    margin:0;
    padding:0;
    font-family:var(--font-site)
}
section {
  position: relative;
  min-height: 840px;
}

/* Scroll down button */
    .scroll-btn {
      position:absolute;
      bottom:20px;
      left:50%;
      transform:translateX(-50%);
      background:transparent;
      border:none;
      cursor:pointer;
      color:var(--purple);
      font-size:14px;
      text-align:center;
      animation:float 2s ease-in-out infinite;
    }
    .scroll-btn span {
      display:block;
      width:30px;
      height:50px;
      border:2px solid var(--purple);
      border-radius:25px;
      margin:0 auto 10px;
      position:relative;
    }
    .scroll-btn span::before {
      content:'';
      position:absolute;
      top:10px;
      left:50%;
      width:6px;
      height:6px;
      background:var(--purple);
      border-radius:50%;
      transform:translateX(-50%);
      animation:scrollDown 1.5s infinite;
    }
    .scroll-btn:focus-visible {
        outline: unset;
    }

    @keyframes scrollDown {
      0% {opacity:0; transform:translate(-50%,0)}
      50% {opacity:1; transform:translate(-50%,15px)}
      100% {opacity:0; transform:translate(-50%,25px)}
    }

    @keyframes float {
      0%,100%{transform:translate(-50%,0)}
      50%{transform:translate(-50%,5px)}
    }
    
/*******************************************************************************/
.page{
    min-height:100vh;
    display:flex;
    flex-direction:column;
}

/* Top hero with split image */
.hero {
    display: grid;
    grid-template-columns: 1fr 32%;
    gap: 0;
    align-items: stretch;
    background: #fff;
    position: relative;
}
.hero-left{
    position:relative;
    background:url('../PHOTOS/01/01.webp') no-repeat center left/cover;
    min-height:calc(840px - 220px);     
}
/* Create a black-and-white effect for left area with overlay box */
.bw-overlay {
    position: absolute;
    mix-blend-mode: normal;
    display: flex;
    align-items: flex-end;
    left: 10%;
    bottom: 38px;
}
.caption-box {
    background: rgb(231 16 130);
    padding: 20px 25px;
    max-width: 59.4%;
}
.caption-box h1 {
    font-size: 40px;
    letter-spacing: 2px;
    color: #fff;
    font-family: 'FuturaStdBold';
    margin: 0;
    word-break: break-word;
}
.caption-box p {
    margin: 0;
    color: #fff;
    font-size: 20px;
    font-family: "FuturaStdLight";
    letter-spacing: 1.3px;
    margin-top: 20px;
    line-height: 1;
    word-break: break-word;
}

.hero-right{
    background: url('../PHOTOS/01/02.webp') no-repeat center right/cover;
    min-height:calc(840px - 220px);
    display:flex;
    align-items:center;
    justify-content:center;
}
/* Lower white section */
.hero-content {
    position: relative;
    height: 220px;
}
.content{
    display:flex;
    align-items:flex-start;
    gap:0px;
    padding: 6% 10% 5%;
    background:white;
    flex-wrap:wrap;
}
.program-title {
    color: var(--purple);
    font-size: 34px;
    line-height: 1.05;
    font-family: "FuturaStdHeavyOblique";
}
.program-sub {
    font-size: 30px;
    color: var(--purple);
    font-family: "FuturaStdCondensed";
    letter-spacing: 1px;
}

.logos {
    display: flex;
    gap: 40px;
    align-items: center;
    position: absolute;
    top: 40px;
    left: -60px;
    max-width: 100%;
    max-height: 100%;
}
.logo-box{
    width:188px;
    height:188px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700
}

.grid-section {
    display: grid;
    grid-template-columns: 1fr 50%;
    gap: 0;
    align-items: stretch;
}


.page-2-content {
    background: var(--purple-2);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.bloc-1 {
    font-size: 28px;
    font-family: "FuturaStdBookOblique";
    background: var(--lightpurple);
    color: #fff;
    height: 280px;
    display: flex;
    align-items: center;
    padding: 10%;
}
.bloc-1 p{
    margin:0;
}
.bloc-2 {
    display: flex;
    align-items: center;
    padding: 10%;
    height: -webkit-fill-available;
}

.bloc-2 h2 {
    font-size: 24px;
    font-family: "FuturaStdBookOblique";
    color: #fff;
    margin-bottom: 2.5rem;
}

.bloc-2 .bloc-2-text p {
    font-size: 18px;
    color: var(--text-color);
    margin: 0;
}
.img-section {
    height: 100%;
}
.img-section img{
    width: 100%;
    height: 100%;
    object-fit:cover;
}

.sommaire {
    display: grid;
    grid-template-columns:  29.5% 1fr;
    gap: 0;
    align-items: stretch;
    background: #fff;
    position: relative;
}
.sommaire-left{
    background: url('../PHOTOS/03.webp') no-repeat center left/cover;
    min-height:840px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.sommaire-right {
    padding: 10%;
    display: flex;
    align-items: flex-end;
}
.sommaire-right_content h2 {
    color: var(--purple);
    font-size: 114px;
    font-family: "FuturaStdMedium";
    text-transform: uppercase;
}
.sommaire-right_content ul {
    list-style-type: none;
    padding: 0;
}
.sommaire-right_content ul li a {
    text-decoration: none;
    display: flex;
    width: 100%;
    color: var(--purple);
    font-family: "FuturaStdMedium";
    font-size:16px;
}
.sommaire-right_content ul li:not(li:nth-last-child(-n+3)) {
    position: relative;
    counter-increment: item;
    display: flex;
}

.sommaire-right_content ul li:not(li:nth-last-child(-n+3))::before {
    content: counter(item) ". "; 
    font-weight: bold;
    margin-right: 8px;
    color: var(--purple);
}
.sommaire-line {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    position: relative;
    margin: 0 10px;
}
.sommaire-line::after {
    content: '';
    display: block;
    border-bottom: 1px solid var(--purple);
    position: absolute;
    bottom: 0.45rem;
    left: 0;
    right: 0;
    margin: 0;
}

.page-4 {
    background: url('../PHOTOS/04.webp') no-repeat bottom left/cover;
}

.list-1 .caption-box ,.page-6 .caption-box{
    max-width: 59%;
    background: rgb(178 30 132);
}
.list-1 .bw-overlay {
    left: 2%;
    bottom: 20px;
}

.list-1_box {
    padding: 60px;
    height:100%;
}

.list-1_content {
    background: rgb(168 63 160 / 85%);
    display: flex;
    flex-direction: column;
    height:100%;
    padding:16% 14%;
}

.list-2_content {
    background: rgb(35 190 185 / 85%);
    display: flex;
    flex-direction: column;
    height:100%;
    padding:16% 14%;
}
.list-1_content h2,.list-2_content h2 {
    gap: 20px;
    display: grid;
    grid-template-columns: 139px 1fr;
    font-size: 38px;
    color: #fff;
    align-items: center;
    text-transform: uppercase;
}
.list-1_content h2{ font-family: "FuturaStdHeavy"; }
.list-2_content h2{ font-family: "FuturaStdHeavy"; }
.list-2_content h2 span{ font-family: "FuturaStdBook"; }

.number-square {
    border: 2px solid #fff;
    height: 139px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 83px;
    font-family: "FuturaStdMedium"!important;
}

.underline {
    border-bottom: 2px solid #fff;
    padding: 100px 0 0;
    margin-bottom:20px;
}

.list-1_text p {
    color: #fff;
    font-family: "FuturaStdBookOblique";
    font-size: 28px;
    margin: 0;
}

.list-1_text p:not(:last-child) {
  margin-bottom: 2.5rem; /* space between paragraphs */
}

.page-6 {
    background: url('../PHOTOS/05.webp') no-repeat top left/cover;
}

.page-6 .bw-overlay {
    bottom: unset;
    left: 2.7%;
    top: 35px;
}

.page-7 {
    background: url('../PHOTOS/06.webp') no-repeat bottom left/cover;
}

.list-2_box {
    padding: 50px;
    width: 80%;
    margin-left: auto;
}

.list-2_text h3 {
    color: #fff;
    font-family: "FuturaStdHeavy";
    font-size: 20px;
}
.list-2_text p {
    color: #d3f1f0;
    font-family: "FuturaStdBookOblique";
    font-size: 18px;
    margin: 0;
}
.page-pos-abs {
    position: absolute;
    height: 100%;
    inset: 0;
}

.page-5 h2 {
    color: #a83fa0;
    font-size: 80px;
    margin: 0;
    font-family: var(--font-site);
}
.page-5 h2 span{
    font-size: 105px;
    font-family: "FuturaStdBold";
}

.list-page-5 {
    background: #a83fa0;
    color: #fff;
    padding:10%;
}
.list-page-5 ul {
    list-style: none;
    padding: 0;
    margin:0;
}
.list-page-5 ul li {
    border-bottom: 1px solid #fff;
    margin-bottom: 20px;
}
.list-page-5 ul li h3,.list-page-5 p b {
    font-size: 16px;
    font-family: "FuturaStdBold";
    margin-bottom: 5px;
}
.list-page-5 p{
    font-size:18px;
    font-family: var(--font-site);
}


/* --- Style du bouton "Retour au Sommaire" --- */
.back-to-sommaire {
  position: fixed;
  right: 30px;
  bottom: 30px;
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(180deg, #b21e84, #891364); /* Couleurs Cogedim */
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 9999;
}

.back-to-sommaire.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-sommaire:hover {
  transform: translateY(-3px);
  background: linear-gradient(180deg, #e71082, #53226b);
}

.back-to-sommaire svg {
  width: 22px;
  height: 22px;
}

/* Respecte les préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
  .back-to-sommaire,
  .back-to-sommaire.show,
  .back-to-sommaire:hover {
    transition: none;
    transform: none;
  }
}


/* Responsive */
@media (max-width:1200px){
    .sommaire-right_content h2 { font-size: 90px; }
    .grid-section {
        grid-template-columns: 1fr;
    }
    .page-2-pos-abs {
        position: absolute;
        height: 100%;
        inset: 0;
    }
}
@media (max-width:992px){
    .sommaire-right_content h2 { font-size: 80px; }
    .hero{ grid-template-columns:1fr; }
    .content{ flex-direction:column;padding:28px }
    .list-1_text p {
        font-size: 22px;
    }
    
}
@media (max-width:900px){
    .list-1_content h2,.list-2_content h2{ 
        grid-template-columns:80px 1fr;
        font-size: 22px; 
    }
    .sommaire-right_content h2 { font-size: 70px; }
    .number-square {
        height: 80px;
        width: 80px;
        font-size: 43px;
    }
    .list-1_text p {
        font-size: 22px;
    }
}


@media (max-width:768px){
    .logos {
        left: 0;
        position: relative;
        top: 0;
        justify-content: center;
        margin: 30px 10px 0;
        gap: 10px;
    }
    .hero-content {
        height: -webkit-fill-available;
    }
    .caption-box,.list-1 .caption-box {
        max-width: 70%;
    }
    .logo-box {
        width: 180px;
        height: 180px;
    }
    .logos img {
        width: 100%;
        height: -webkit-fill-available;
        object-fit: cover;
    }
    .scroll-btn{
        position:relative;
    }
    .sommaire {
        grid-template-columns: 1fr;
    }
    .sommaire-right_content h2 {
        font-size: 50px;
    }
    .list-1_box {
        padding: 40px;
        display: contents;
    }
    /*.list-1_content h2,.list-2_content h2 {*/
    /*    grid-template-columns: 1fr;*/
    /*    font-size: 22px;*/
    /*}*/
    .underline {
        padding-top: 80px;
    }
    .list-1_text p {
        font-size: 18px;
    }
    .list-1_text p:not(:last-child) {
        margin-bottom: 2rem;
    }
    .page-pos-abs,.page-2-pos-abs{ position:relative; }
}

@media (max-width:575px){
    .list-1_content h2 {
        grid-template-columns: 80px 1fr;
        font-size: 22px;
    }
    .list-2_content h2 {
        grid-template-columns: 1fr;
        font-size: 22px;
    }
    .caption-box{
        max-width: 90%!important;
    }
    .caption-box h1 {
        font-size: 26px;
    }
    .caption-box p {
        font-size: 16px;
        margin-top: 10px;
    }
    .bw-overlay {
        bottom: 20px;
    }
    .list-1_content {
        padding: 60px 45px;
    }
    
    .list-2_box {
        padding: 20px;
        width: 100%;
        margin: auto;
    }
    
}

