@import url('https://fonts.googleapis.com/css?family=Roboto:300');
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&display=swap');




/* - - - - - - - Paramètres Généraux - - - - - - */
html {
    scroll-behavior: smooth;
}


header {
  background: none;
}

body {
  margin: 0px;
  background: var(--fond-principal);
  font-family: "Roboto", sans-serif;
}

main {
  background: var(--fond-principal);
  margin:auto;
}







/* ------------------ HEADER ---------------------- */
.site-header {
    background-color: #111;
    position: relative;
    background-size: cover;
    background-position: center;
    transition: background-image 0.5s ease;
    color: #fff;
}
/* HOME */
.site-header.header-home {
    height: 100vh;
}
/* AUTRES PAGES */
.site-header.header-inner {
    height: 70vh;
}

.site-header .overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
}







/* ==========================
   NAVIGATION
========================== */

nav {
    width: 100%;
    position: static;
    top: 0;
    z-index: 1000;

    display: flex;
    justify-content: center;

    background: rgba(20,20,20,.95);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(212,175,55,.25);
}

.nav-links {
    width: 1200px;
    max-width: calc(100% - 40px);
    height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.logo {
    display: flex;
    align-items: center;
    padding: 0 !important;
}

.logo img {
    height: 46px;
    width: auto;
    display: block;
}

.nav-links a {
    color: white;
    text-decoration: none;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    transition: all .25s ease;
    text-decoration: none;
}

.nav-links a:not(.btn-inscription, .logo):hover {
    color: #D4AF37;
    background: rgba(212,175,55,.10);
    text-decoration: none;
}

.btn-inscription {
    background: linear-gradient(135deg,#D4AF37,#F2D675);
    color: #222 !important;
    font-weight: 700;
    border-radius: 999px;
    box-shadow: 0 5px 18px rgba(212,175,55,.35);
}

.btn-inscription:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(212,175,55,.45);
    font-weight: 800;
    text-decoration: none;
}


.mobile-nav-toggle{
    display:none;

    position:absolute;
    right:20px;
    top:50%;
    transform:translateY(-50%);

    width:34px;
    height:24px;

    border:none;
    background:none;
    cursor:pointer;
    z-index:1100;
}

.mobile-nav-toggle span{
    position:absolute;
    left:0;

    width:100%;
    height:2px;

    background:white;
    border-radius:2px;

    transition:.3s;
}

.mobile-nav-toggle span:nth-child(1){
    top:0;
}

.mobile-nav-toggle span:nth-child(2){
    top:11px;
}

.mobile-nav-toggle span:nth-child(3){
    bottom:0;
}

.mobile-nav-toggle.activated span:nth-child(1){
    transform:translateY(11px) rotate(45deg);
}

.mobile-nav-toggle.activated span:nth-child(2){
    opacity:0;
}

.mobile-nav-toggle.activated span:nth-child(3){
    transform:translateY(-11px) rotate(-45deg);
}

.mobile-nav{

    position:fixed;

    top:0;
    left:0;

    width:280px;
    max-width:85%;

    height:100vh;

    background:#151515;

    padding:30px;

    display:flex;
    flex-direction:column;
    justify-content: flex-start;
    gap:10px;

    transform:translateX(-100%);
    transition:.35s;

    z-index:1050;
}

.mobile-nav.open{
    transform:translateX(0);
}

.mobile-nav a{

    color:white;
    text-decoration:none;

    padding:14px 18px;

    border-radius:8px;

    transition:.25s;
}

.mobile-nav a:not(.logo):hover{
    background:rgba(212,175,55,.10);
    color:#D4AF37;
    text-decoration:none;
}

.mobile-nav::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    opacity:0;
    pointer-events:none;
    transition:.3s;
}

.mobile-cta{
    border: 1px solid #D4AF37;
    text-align:center;
}

.mobile-cta:hover{
    background:#D4AF37;
    font-weight:700;
    text-decoration:none;
}

@media (max-width:900px){

    .navbar{
        position:fixed;
        justify-content:flex-start;
    }

    .nav-links {
        justify-content: left;
        padding-left: 20px;
    }
    .nav-links a:not(.logo){
        display:none;
    }

    .mobile-nav-toggle{
        display:block;
    }

    .logo img{
        height:42px;
    }

    .logout-form {
        display: none;
    }

}







/* - - - - - - - La partie haute du site qui ne bouge pas HERO - - - - - - */
.site-header{
    position: relative;
    height: 100vh;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    overflow:hidden;
}

/* Slider d'images de fond */

.hero-slider{
    position:absolute;
    inset:0;
    z-index:0;
}

.hero-slide{
    position:absolute;
    inset:0;

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    opacity:0;

    transform:scale(1);

    transition:
        opacity 1.5s ease,
        transform 8s ease;
}

.hero-slide.active{
    opacity:1;
    transform:scale(1.06);
}

.hero-content {
    position: absolute;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    text-align: center;
    color: white;
    z-index: 2;
}


.hero-pretitle{
    margin: 0 0 35px;

    font-family: "Playfair Display", serif;
    font-size: clamp(3rem, 3vw, 4rem);
    font-style: italic;
    font-weight: 500;
}

.hero-pretitle sup{
    font-size: .45em;
    vertical-align: super;
    line-height: 0;
    margin-left: 1px;
}

.hero-title{
    margin: 0 0 8px;

    font-family: "Bebas Neue", sans-serif;
    font-size: clamp(3.5rem, 7vw, 7rem);
    font-weight: 400;

    text-transform: uppercase;
    letter-spacing: 5px;
    line-height: .9;

    color: white;
}

.hero-subtitle{
    margin: 0;

    max-width: 1200px;

    font-family: "Bebas Neue", sans-serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 400;

    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1;

    opacity: .95;
}

.hero-cta{
    position: relative;
    overflow: hidden;

    margin-top: 60px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 18px 42px;

    background: linear-gradient(135deg,#D4AF37,#F2D675);

    color: #222;

    font-family: "Bebas Neue", sans-serif;
    font-size: 1.8rem;
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;

    text-decoration: none;

    clip-path: polygon(
        12px 0,
        100% 0,
        calc(100% - 12px) 100%,
        0 100%
    );

    box-shadow: 0 8px 25px rgba(212,175,55,.35);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

/* reflet lumineux */
.hero-cta::before{
    content:"";

    position:absolute;

    top:0;
    left:-100%;

    width:60%;
    height:100%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.45),
        transparent
    );

    transform:skewX(-25deg);

    transition:.6s;
}


.hero-cta:hover{

    transform:translateY(-5px);

    background-position:right center;

    box-shadow:
        0 15px 40px rgba(212,175,55,.55),
        inset 0 1px 0 rgba(255,255,255,.7);

    color:#111;

    text-decoration:none;
}


.hero-cta:hover::before{
    left:130%;
}
.hero-pretitle,
.hero-title,
.hero-subtitle{
    text-shadow:
        0 2px 10px rgba(0,0,0,.35),
        0 8px 30px rgba(0,0,0,.25);
}

.hero-date{
    margin-top:25px;

    font-family:"Cinzel", serif;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight:500;

    letter-spacing:2px;
    text-transform:uppercase;

    color:#D4AF37;

    text-shadow:
        0 2px 10px rgba(0,0,0,.4);
}











/* - - - - - - - Réseaux sociaux du HERO - - - - - - */
/* Réseaux sociaux */
.hero-social{
    position:absolute;
    right:40px;
    bottom:35px;

    display:flex;
    align-items:flex-end;
    gap:22px;

    z-index:5;
}

/* Uniquement les icônes classiques */
.hero-social a img:not(.hero-mascot){
    width:44px;
    height:44px;
    object-fit:contain;

    transition:.25s ease;
}

.hero-social a:hover img:not(.hero-mascot){
    transform:translateY(-4px) scale(1.08);
}

/* Mascotte */
.hero-mascot{
    width:88px;
    height:auto;

    margin-left:8px;

    filter:drop-shadow(0 8px 20px rgba(0,0,0,.35));

    animation:mascotFloat 4s ease-in-out infinite;

    transition:transform .25s ease;
}

/* Hover uniquement sur Germain */
.hero-social a:hover .hero-mascot{
    transform:scale(1.08) rotate(-4deg);
}

@keyframes mascotFloat{
    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-8px);
    }
}



/* ------------- Partie connecté (connectedblade) -------------------- */

.logout-form{
    margin-left:20px;
}

.logout-form button{
    border:none;
    cursor:pointer;
}

.logout-cta,
.mobile-logout{

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    padding:16px 34px;

    background:linear-gradient(135deg,#D4AF37,#F2D675);

    color:#222;

    font-family:"Bebas Neue",sans-serif;
    font-size:1.4rem;
    letter-spacing:1px;

    text-transform:uppercase;

    clip-path:polygon(
        12px 0,
        100% 0,
        calc(100% - 12px) 100%,
        0 100%
    );

    text-decoration:none;

    transition:
        transform .25s,
        box-shadow .25s;

    box-shadow:0 8px 25px rgba(212,175,55,.35);
}

.logout-cta:hover,
.mobile-logout:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 40px rgba(212,175,55,.45);
}

.logout-cta img,
.mobile-logout img{

    width:20px;
    height:20px;

    object-fit:contain;
}

.mobile-nav form{
    width:100%;
    display:flex;
    justify-content:center;
    margin-top:18px;
}








/* ==========================
   PROGRAMME
========================== */

.programme-section{
    padding:100px 40px;

    background:#fff;
}


.programme-header{
    text-align:center;
    margin-bottom:70px;
}


.section-title{
    margin:0;

    font-family:"Bebas Neue",sans-serif;
    font-size:clamp(3.5rem,7vw,5.8rem);

    letter-spacing:4px;
    text-transform:uppercase;

    color:#222;
}


.programme-header h2{

    margin:15px 0;

    font-family:"Bebas Neue",sans-serif;

    font-size:clamp(2.5rem,5vw,4rem);

    text-transform:uppercase;
    letter-spacing:3px;

    color:#222;
}



/* CARTES */

.programme-grid{

    max-width:1400px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:10px;
}

.programme-card{

    position:relative;

    height:320px;

    overflow:hidden;

    display:flex;

    align-items:flex-end;

    padding:35px;

    text-decoration:none;

    background-size:cover;
    background-position:center;

    clip-path:polygon(
        15px 0,
        100% 0,
        calc(100% - 15px) 100%,
        0 100%
    );

    cursor:pointer;
    transition:
        box-shadow .3s ease,
        border-color .3s ease;
}

.programme-card.active{
    box-shadow:
    0 0 0 3px #D4AF37,
    0 20px 40px rgba(212,175,55,.25);
}


.programme-card::before{

    content:"";

    position:absolute;

    inset:0;

    background-size:cover;
    background-position:center;
}


.programme-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        0deg,
        rgba(0,0,0,.75),
        rgba(0,0,0,.15)
    );
}



.programme-card h3{

    position:relative;

    z-index:2;

    margin:0;

    font-family:"Bebas Neue",sans-serif;

    font-size:2.2rem;

    line-height:1;

    letter-spacing:2px;

    text-transform:uppercase;

    color:white;

    text-align:left;

    transition:
        color .3s ease,
        text-shadow .3s ease;
}

.programme-card.active h3{

    color:#D4AF37;

    text-shadow:
        0 0 15px rgba(212,175,55,.5);
}

.programme-description{

    max-width:1000px;

    margin:60px auto 0;

    padding:45px 55px;

    background:
    linear-gradient(
        135deg,
        #151515,
        #222
    );

    color:white;

    border-left:5px solid #D4AF37;

    position:relative;

    box-shadow:
    0 15px 40px rgba(0,0,0,.25);

    display:none;

    animation:fadeProgramme .4s ease;
}


.programme-description.visible{
    display:block;
}


.programme-description h4{

    margin:0 0 20px;

    font-family:"Bebas Neue", sans-serif;

    font-size:3rem;

    letter-spacing:3px;

    text-transform:uppercase;

    color:#D4AF37;
}


.programme-description p{

    margin:0;

    max-width:850px;

    font-family:"Roboto", sans-serif;

    font-size:1.15rem;

    line-height:1.8;

    color:rgba(255,255,255,.9);
}

@keyframes fadeProgramme{

    from{
        opacity:0;
        transform:translateY(15px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}


@media(max-width:1100px){

    .programme-section{
        padding:70px 20px;
    }


    .programme-grid{
        grid-template-columns:1fr;

    }


    .programme-card{

        height:260px;

    }

}

.programme-downloads{
    margin-top: 25px;

    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px;

    font-size: .95rem;
}

.programme-downloads a{
    color: #555;
    text-decoration: none;
    font-weight: 500;

    transition: color .25s ease;
}

.programme-downloads a:hover{
    color: #D4AF37;
    text-decoration: none;
}

.programme-separator{
    color: #bbb;
}

@media (max-width:768px){

    .programme-downloads{
        flex-direction: column;
        gap: 10px;
    }

    .programme-separator{
        display:none;
    }

}












/*=====================================
 APPEL A COMMUNICATION
=====================================*/

.call-section{
    position:relative;

    padding:110px 20px;

    background:url("../image/communication/recherche.png") center center/cover no-repeat;

    overflow:hidden;
}

.call-overlay{
    position:absolute;
    inset:0;

    background:rgba(10,10,10,.82);
}

.call-container{
    position:relative;
    z-index:2;

    width:1200px;
    max-width:95%;
    margin:auto;
}

.call-section .section-title{
    margin-bottom:18px;

    color:white;
}

.call-section .section-subtitle{
    max-width:900px;
    margin:0 auto 70px;

    text-align:center;

    color:rgba(255,255,255,.85);

    font-size:1.15rem;

    line-height:1.7;
}

.call-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:35px;

    margin-bottom:60px;
}

.call-card{

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(14px);

    border:1px solid rgba(212,175,55,.25);

    border-radius:18px;

    padding:35px 40px;

    color:white;

    box-shadow:0 15px 40px rgba(0,0,0,.25);
}

.call-card h3{

    margin:0 0 22px;

    color:#D4AF37;

    font-family:"Bebas Neue",sans-serif;

    font-size:2rem;

    letter-spacing:1px;

    text-transform:uppercase;
}

.call-card ul{

    margin:0;

    padding-left:22px;
}

.call-card li{

    margin-bottom:18px;

    font-size:1.05rem;

    line-height:1.8;
}

.communication-button{

    display:flex;

    width:max-content;
    white-space: normal;

    margin:auto;
}

@media (max-width:900px){

    .call-section{

        padding:80px 20px;
    }

    .call-grid{

        grid-template-columns:1fr;
    }

    .call-card{

        padding:28px;
    }

    .communication-button{
        width: 100%;
        max-width: 340px;

        margin: 0 auto;

        padding: 14px 20px;

        font-size: 1.25rem;
        text-align: center;
        justify-content: center;

        line-height: 1.2;
    }


}


















.infos-section{

    padding:100px 20px;

    background:#f7f7f7;

}


.infos-container{

    max-width:1200px;

    margin:auto;

}


.infos-location{

    display:grid;

    grid-template-columns:1.2fr 1fr;

    gap:40px;

    margin-top:50px;

}



.infos-map iframe{

    width:100%;

    height:450px;

    border:0;

    border-radius:20px;

}



.infos-card,
.transport-card,
.infos-hotel{


    background:white;

    padding:35px;

    border-radius:18px;

    box-shadow:
    0 15px 40px rgba(0,0,0,.08);

}

.infos-block {
    margin: 50px 0px;
}

.infos-card h3,
.infos-block h3,
.infos-hotel h3{
    margin: 15px 0px;

    font-family:"Bebas Neue",sans-serif;

    font-size:2.5rem;

    letter-spacing:2px;

    text-transform:uppercase;

}



.infos-card h4,
.transport-card h4{

    color:#D4AF37;

    font-size:1.4rem;

}



.transport-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:35px;

}



.infos-link{

    display:inline-block;

    margin-top:20px;

    color:#D4AF37;

    font-weight:bold;

}



.infos-hotel{

    margin-top:50px;

    text-align:center;

}



@media(max-width:900px){


.infos-location,
.transport-grid{

    grid-template-columns:1fr;

}


.infos-map iframe{

    height:300px;

}

}

/* ================================
   ENTRÉE DU CONGRÈS
================================ */

.entrance-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;

    margin-top: 30px;
}


/* Chaque image */

.entrance-image {
    width: 100%;
    overflow: hidden;

    border-radius: 12px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.15);

    position: relative;
}


/* Image */

.entrance-image img {
    display: block;

    width: 100%;
    height: 350px;

    object-fit: cover;

    transition: transform 0.4s ease;
}


/* Effet au survol */

.entrance-image:hover img {
    transform: scale(1.03);
}


/* Bandeau sur la première image */

.entrance-image:first-child::after {
    content: "ENTRÉE SCHWEITZER";

    position: absolute;

    bottom: 15px;
    left: 15px;

    padding: 8px 16px;

    background: rgba(0, 0, 0, 0.75);

    color: white;

    font-family: "Bebas Neue", sans-serif;

    font-size: 1.2rem;

    letter-spacing: 1px;

    border-left: 4px solid #D97706;
}


/* Bandeau sur le plan */

.entrance-image:nth-child(2)::after {
    content: "PLAN D'ACCÈS";

    position: absolute;

    bottom: 15px;
    left: 15px;

    padding: 8px 16px;

    background: rgba(0, 0, 0, 0.75);

    color: white;

    font-family: "Bebas Neue", sans-serif;

    font-size: 1.2rem;

    letter-spacing: 1px;

    border-left: 4px solid #D97706;
}


/* ================================
   MOBILE
================================ */

@media(max-width:900px) {

    .entrance-images {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .entrance-image img {
        height: 300px;
    }

}

















/* =========================
   ARCHIVES sur la page d'accueil
========================= */

.archives-section {

    position: relative;

    min-height: 80vh;

    display: flex;
    align-items: center;
    justify-content: center;

    background-image: url("../image/imgArchives.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    color: white;

    overflow: hidden;
}


/* VOILE SOMBRE */

.archives-overlay {

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            rgba(10,10,10,.68),
            rgba(10,10,10,.72)
        );

    z-index: 1;
}


/* CONTENU */

.archives-content {

    position: relative;

    z-index: 2;

    width: 100%;
    max-width: 850px;

    padding: 80px 30px;

    text-align: center;

}


/* PETIT TEXTE */

.archives-pretitle {

    margin: 0 0 10px;

    font-family: "Playfair Display", serif;

    font-size: 1.35rem;

    font-style: italic;

    opacity: .9;

}


/* TITRE */

.archives-title {

    margin: 0 0 20px;

    font-family: "Bebas Neue", sans-serif;

    font-size: clamp(3rem, 6vw, 5rem);

    font-weight: 400;

    letter-spacing: 3px;

    text-transform: uppercase;

    color: white;

}


/* DESCRIPTION */

.archives-text {

    max-width: 650px;

    margin: 0 auto;

    font-family: "Lato", sans-serif;

    font-size: 1.1rem;

    line-height: 1.7;

    color: rgba(255,255,255,.9);

}


/* BOUTON */

.archives-cta {

    margin-top: 35px;

}


/* MOBILE */

@media (max-width: 768px) {

    .archives-content {

        padding: 65px 25px;

    }

    .archives-pretitle {

        font-size: 1.1rem;

    }

    .archives-title {

        font-size: 3rem;

        letter-spacing: 2px;

    }

    .archives-text {

        font-size: 1rem;

        line-height: 1.6;

    }

    .archives-cta {

        max-width: 100%;
        box-sizing: border-box;

    }

}















/* ==========================
   EXPOSANTS
========================== */

.exposants-section {
    position: relative;

    padding: 100px 30px;

    background-image: url("../image/exposants/exposants.jpg");
    background-size: cover;
    background-position: center;

    /* L'image reste fixe pendant le scroll */
    background-attachment: fixed;

    color: black;
    overflow: hidden;
}

.exposants-overlay {
    position: absolute;
    inset: 0;

    background: rgba(245, 245, 245, .72);

    z-index: 0;
}

.exposants-container {
    position: relative;
    z-index: 1;

    max-width: 1200px;
    margin: auto;
}


/* TITRE */

.exposants-header {
    text-align: center;
    margin-bottom: 55px;
}

.exposants-header .section-title {
    margin: 0 0 12px;

    font-family: "Bebas Neue", sans-serif;
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 400;

    letter-spacing: 3px;
    text-transform: uppercase;
}

.exposants-intro {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: 1.25rem;
    font-style: italic;

    opacity: .9;
}


/* GRILLE */

.exposants-grid {
    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 20px;
}


/* CARTE LOGO */

.exposants-grid a {
    height: 120px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: transparent;
    border: none;

    text-decoration: none;

    transition:
        transform .25s ease,
        filter .25s ease;
}


/* LOGOS */

.exposants-grid img {
    display: block;

    width: 100%;
    height: 80px;

    object-fit: contain;

    transition: transform .25s ease;
}


/* HOVER */

.exposants-grid a:hover {
    transform: translateY(-5px);
    background: transparent;
    box-shadow: none;
    text-decoration: none;
}

.exposants-grid a:hover img {
    transform: scale(1.08);
    filter: drop-shadow(0 5px 12px rgba(0,0,0,.35));
}


/* ==========================
   TABLETTE
========================== */

@media (max-width: 1000px) {

    .exposants-grid {
        grid-template-columns: repeat(4, 1fr);
    }

}


/* ==========================
   MOBILE
========================== */

@media (max-width: 700px) {

    .exposants-section {
        padding: 70px 20px;

        /*
         * background-attachment: fixed peut être
         * problématique sur certains mobiles.
         */
        background-attachment: scroll;
    }

    .exposants-header {
        margin-bottom: 35px;
    }

    .exposants-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .exposants-grid a {
        height: 100px;
        padding: 15px;
    }

    .exposants-grid img {
        height: 65px;
    }

}


/* PETITS TELEPHONES */

@media (max-width: 420px) {

    .exposants-grid {
        grid-template-columns: 1fr 1fr;
    }

    .exposants-grid a {
        height: 90px;
    }

}
















/* ==========================
   SECTION QUESTIONS
========================== */

.questions-section {
    position: relative;

    width: 100%;
    min-height: 80vh;

    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #111;
}


/* ==========================
   SLIDER
========================== */

.questions-slider {
    position: absolute;
    inset: 0;

    z-index: 0;
}

.question-slide {
    position: absolute;
    inset: 0;

    background-size: cover;
    background-position: center;

    opacity: 0;

    transform: scale(1);

    transition:
        opacity 1.2s ease,
        transform 6s ease;
}

.question-slide.active {
    opacity: 1;

    /* Petit mouvement très subtil */
    transform: scale(1.04);
}


/* ==========================
   OVERLAY
========================== */

.questions-overlay {
    position: absolute;
    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            135deg,
            rgba(0,0,0,.68),
            rgba(0,0,0,.42)
        );
}


/* ==========================
   CONTENU
========================== */

.questions-content {
    position: relative;

    z-index: 2;

    width: 100%;

    display: flex;
    justify-content: center;
    align-items: center;

    padding: 40px 20px;

    box-sizing: border-box;
}


/* ==========================
   PETIT CADRE
========================== */

.questions-card{
    position: relative;

    width: min(620px, 100%);

    padding: 55px 60px;

    box-sizing: border-box;

    text-align: center;

    background: rgba(15,15,15,.72);

    backdrop-filter: blur(10px);

    clip-path: polygon(
        28px 0,
        100% 0,
        calc(100% - 28px) 100%,
        0 100%
    );

    box-shadow:
        0 20px 60px rgba(0,0,0,.45);

    overflow: hidden;
}

.questions-card::before{
    content:"";

    position:absolute;
    inset:10px;

    clip-path: polygon(
        22px 0,
        100% 0,
        calc(100% - 22px) 100%,
        0 100%
    );

    pointer-events:none;
}

.questions-card::after{
    content:"";

    position:absolute;

    top:-40%;
    left:-40%;

    width:30%;
    height:180%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );

    transform:rotate(18deg);

    animation:questionShine 8s infinite;

    pointer-events:none;
}

@keyframes questionShine{

    0%{
        left:-40%;
    }

    18%{
        left:140%;
    }

    100%{
        left:140%;
    }

}

/* Petit texte au-dessus */

.questions-kicker {
    margin: 0 0 12px;

    font-family: "Playfair Display", serif;

    font-size: 1.2rem;

    font-style: italic;

    color: rgba(255,255,255,.85);
}


/* Texte */

.questions-card > p:not(.questions-kicker) {
    max-width: 500px;

    margin: 0 auto;

    font-family: "Lato", sans-serif;

    font-size: 1.05rem;

    line-height: 1.7;

    color: rgba(255,255,255,.9);
}


/* ==========================
   BOUTON
========================== */

.questions-button {
    margin-top: 35px;
}


/* ==========================
   MOBILE
========================== */

@media (max-width: 700px) {

    .questions-section {
        min-height: 100vh;
    }

    .questions-content {
        padding: 25px 18px;
    }

    .questions-card {
        padding: 40px 25px;
    }

    .questions-card h2 {
        font-size: 3rem;
    }

    .questions-card > p:not(.questions-kicker) {
        font-size: .95rem;
        line-height: 1.6;
    }

    .questions-button {
        width: auto;
        max-width: 100%;
        box-sizing: border-box;
        white-space: nowrap;
    }

}

















/* ======================================================
   PAGE INSCRIPTIONS
====================================================== */

.registration-page{
    width:min(1200px, calc(100% - 40px));
    margin:auto;
    padding:100px 0;
}

.registration-intro{
    text-align:center;
    margin-bottom:70px;
}

.registration-intro h2{

    margin-bottom:20px;

    font-family:"Bebas Neue",sans-serif;
    font-size:4rem;
    font-weight:400;
    letter-spacing:3px;

    color:#222;
}

.registration-intro p{

    max-width:750px;
    margin:auto;

    font-size:1.15rem;
    line-height:1.8;

    color:#666;
}


/* =====================
   CARTES
===================== */

.registration-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:30px;

    margin-bottom:100px;

}

.registration-card{
    display:flex;
    flex-direction:column;

    position:relative;

    overflow:hidden;

    padding:45px;

    background:white;

    border:3px solid rgba(212,175,55,.25);

    cursor:pointer;

    transition:.35s;

    box-shadow:
        0 15px 40px rgba(0,0,0,.05);

}

.registration-card::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:5px;
    height:100%;

    background:#D4AF37;

    transform:scaleY(0);

    transition:.35s;

}

.registration-card:hover{

    transform:translateY(-10px);

    box-shadow:
        0 25px 60px rgba(0,0,0,.12);

}

.registration-card:hover::before{

    transform:scaleY(1);

}

.registration-icon{
    display: flex;
    justify-content: center;
    align-items: center;

    height: 90px; /* même hauteur pour toutes les cartes */
    margin-bottom: 20px;
}

.registration-icon img{
    display: block;
    max-height: 100%;
    max-width: 100%;

    width: auto;
    height: auto;

    object-fit: contain;
}

.registration-card h3{

    padding:0;
    margin-bottom:18px;

    text-align:left;

    font-size:1.9rem;

    color:#222;

    border:none;

}

.registration-card p{

    color:#666;

    line-height:1.8;

    min-height:90px;

}


/* =====================
   BOUTON
===================== */

.registration-button{
    margin-top:auto;

    display:inline-flex;
    align-items:center;
    gap:12px;

    padding:14px 28px;

    font-family:"Bebas Neue",sans-serif;
    font-size:1.4rem;
    letter-spacing:1px;

    background:#D4AF37;
    color: white;

    transition:.25s;

}

.registration-button::after{

    content:"→";

    transition:.25s;

}

.registration-card:hover .registration-button::after{

    transform:translateX(6px);

}


/* =====================
   FORMULAIRE
===================== */

.success-message{

    max-width:900px;

    margin:40px auto;

    padding:35px;

    background:#f8f8f8;

    border-left:5px solid #D4AF37;

    text-align:center;

}


.success-message h3{

    font-family:"Bebas Neue",sans-serif;

    font-size:2.5rem;

    margin-bottom:20px;

}

.registration-form{

    margin-top:60px;

    padding:60px;

    background:#fafafa;

    border:1px solid rgba(212,175,55,.25);

    box-shadow:
        0 20px 60px rgba(0,0,0,.05);

}

.registration-form.hidden{

    display:none;

}

.registration-form h2{

    margin-bottom:10px;

    font-family:"Bebas Neue",sans-serif;

    font-size:3rem;

    letter-spacing:2px;

}

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:25px;

}

.form-group{

    display:flex;
    flex-direction:column;

}

.form-group.full{

    grid-column:1/-1;

}

.form-group label{

    margin-bottom:10px;

    font-weight:700;

    color:#333;

}

.form-group input,
.form-group textarea{

    padding:16px 20px;

    border:1px solid #ddd;

    background:white;

    transition:.25s;

    font-size:15px;

}

.form-group input:focus,
.form-group textarea:focus{

    outline:none;

    border-color:#D4AF37;

    box-shadow:0 0 0 5px rgba(212,175,55,.12);

}

.form-group textarea{

    resize:vertical;

}
.form-required{
    margin-bottom:20px;
    color:#666;
    font-size:.95rem;
    font-style:italic;
}

.required{
    color:#d32f2f;
    font-weight:700;
}


/* =====================
   RESPONSIVE
===================== */

@media(max-width:900px){

    .registration-page{

        padding:70px 0;

    }

    .registration-grid{

        grid-template-columns:1fr;

    }

    .form-grid{

        grid-template-columns:1fr;

    }

    .registration-form{

        padding:35px;

    }

    .registration-intro h2{

        font-size:3rem;

    }

}

















/* ==========================
   ARCHIVES CONNEXION
========================== */

.archives-login{

    display:flex;
    justify-content:center;

    padding:80px 20px 120px;
}

.archives-card{

    position:relative;

    width:min(650px,100%);

    padding:60px;

    text-align:center;

    background:white;

    border:2px solid rgba(212,175,55,.65);

    box-shadow:
        0 25px 70px rgba(0,0,0,.12);

    overflow:hidden;
}

/* Reflet */

.archives-card::after{

    content:"";

    position:absolute;

    top:-40%;
    left:-40%;

    width:30%;
    height:180%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.55),
        transparent
    );

    transform:rotate(18deg);

    animation:archivesShine 8s infinite;
}

@keyframes archivesShine{

    0%{
        left:-40%;
    }

    18%{
        left:140%;
    }

    100%{
        left:140%;
    }

}

.archives-icon{

    font-size:4rem;

    margin-bottom:20px;
}

.archives-card h2{

    margin:0;

    font-family:"Bebas Neue",sans-serif;

    font-size:3.3rem;

    font-weight:400;

    letter-spacing:2px;

    text-transform:uppercase;
}

.archives-intro{

    max-width:520px;

    margin:25px auto 40px;

    font-size:1.05rem;

    line-height:1.8;

    color:#666;
}

.archives-form{

    display:flex;
    flex-direction:column;
    gap:20px;

    margin-bottom:35px;
}

.archives-form input{

    padding:18px 22px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:1rem;

    transition:.25s;
}

.archives-form input:focus{

    border-color:#D4AF37;

    box-shadow:0 0 0 4px rgba(212,175,55,.15);

    outline:none;
}

.archives-card .hero-cta{

    margin-top:10px;
}













/* ===================================
   LISTE ARCHIVES
=================================== */

.archives-page{

    width:min(1200px,92%);
    margin:70px auto;

    text-align:center;
}

.archives-intro{

    max-width:850px;
    margin:20px auto 35px;

    color:#555;
    line-height:1.7;
}


.archives-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(260px,1fr));

    gap:28px;
}


.archive-card{

    position:relative;

    padding:35px 25px;

    text-decoration:none;

    border-radius:18px;

    transition:.25s;

    overflow:hidden;
}


.archive-card h3{

    margin:0 0 12px;

    font-family:"Bebas Neue";

    font-size:2rem;

    letter-spacing:1px;
}

/* Congrès avec PowerPoint */
.archive-card.complete h3{
    color:#D4AF37;
}

/* Congrès avec programme uniquement */
.archive-card.program h3{
    color:#111;
}

.archive-card p{

    margin:0;

    color:#666;
}


.archive-card:hover{

    transform:translateY(-8px);

    box-shadow:
        0 18px 40px rgba(0,0,0,.12);
}


/* AVEC POWERPOINT */

.archive-card.complete{

    background:#eef8f2;

    border-left:6px solid #2E8B57;
}


/* PROGRAMME SEUL */

.archive-card.program{

    background:#f6f6f6;

    border-left:6px solid #b5b5b5;
}


/* BADGE */

.archive-badge{

    position:absolute;

    top:18px;
    right:-32px;

    background:#D4AF37;

    color:white;

    padding:7px 45px;

    transform:rotate(40deg);

    font-size:.72rem;

    font-weight:bold;

    text-transform:uppercase;

    letter-spacing:1px;
}

@media(max-width:768px){

    .archives-grid{

        grid-template-columns:1fr;
    }

}













/* ===============================
   ARCHIVES CONGRES
================================ */

.archive-page {
    max-width: 1200px;

    margin: 80px auto;

    padding: 0 30px;
}


/* ===============================
   HEADER ARCHIVE
================================ */

.archive-header {
    display: flex;
    align-items: center;
    gap: 20px;

    margin-bottom: 70px;

    text-align: left;
}


/* ===============================
   MINIATURE AFFICHAGE
================================ */

.archive-poster {
    flex: 0 0 160px;
}

.archive-poster img {
    display: block;

    width: 160px;
    height: 215px;

    object-fit: cover;

    border-radius: 8px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.15);
}


/* ===============================
   CONTENU DU HEADER
================================ */

.archive-header-content {
    flex: 1;
}


/* ===============================
   TITRE
================================ */

.archive-header h1 {
    font-family: "Bebas Neue", sans-serif;

    font-size: clamp(2.5rem, 5vw, 4.5rem);

    letter-spacing: 3px;

    color: #333;

    margin: 0;
}


.archive-header sup {
    font-size: .5em;
}


/* ===============================
   SOUS-TITRE
================================ */

.archive-header p {
    font-family: "Playfair Display", serif;

    font-size: 2rem;

    color: #555;

    margin: 10px 0;
}


/* ===============================
   DATE
================================ */

.archive-header span {
    display: inline-block;

    margin-top: 20px;

    font-family: "Cinzel", serif;

    font-size: 1.5rem;

    color: #D4AF37;
}


/* ===============================
   MOBILE
================================ */

@media (max-width: 650px) {

    .archive-header {
        flex-direction: column;

        text-align: center;

        gap: 20px;
    }

    .archive-poster {
        flex: none;
    }

    .archive-poster img {
        width: 100px;
        height: 135px;
    }

    .archive-header p {
        font-size: 1.5rem;
    }

    .archive-header span {
        font-size: 1.2rem;
    }

}



/* cartes sessions */


.archive-session{

    background:white;

    padding:35px 45px;

    margin-bottom:35px;

    border-left:6px solid #D4AF37;

    box-shadow:
        0 10px 35px rgba(0,0,0,.08);

}



.archive-session h2{

    font-family:"Bebas Neue",sans-serif;

    font-size:2.2rem;

    letter-spacing:2px;

    color:#C76A00;

    margin-top:0;

    margin-bottom:30px;

}



.archive-session a{

    display:block;

    color:#1692DA;

    font-size:1.2rem;

    font-weight:bold;

    text-decoration:none;

    margin-top:20px;

}



.archive-session a:hover{

    color:#D4AF37;

}



.archive-session p{

    margin:5px 0 15px;

    color:#555;

    font-size:1rem;

}


.archive-session small{

    color:#777;

}

.archive-gallery{

    margin-top:90px;

}

.archive-gallery-header{

    text-align:center;

    margin-bottom:45px;

}

.archive-gallery-header h2{

    font-family:"Bebas Neue",sans-serif;

    font-size:3rem;

    color:#D98C00;

}

.archive-gallery-header p{

    max-width:850px;

    margin:auto;

    color:#666;

    line-height:1.7;

}

.gallery-grid{
    margin-bottom: 20px;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:20px;

}

.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:18px;

    aspect-ratio:4/3;

    box-shadow:0 10px 30px rgba(0,0,0,.12);

}

.gallery-item img,
.gallery-item video{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.4s;

}

.gallery-item:hover img,
.gallery-item:hover video{

    transform:scale(1.08);

}

.play-icon{

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:4rem;

    color:white;

    background:rgba(0,0,0,.25);

}

/* ===============================
   MESSAGE D'AVERTISSEMENT
================================ */

.warninginfo {
    width: 100%;
    box-sizing: border-box;

    margin: 0 0 50px;
    padding: 18px 25px;

    background: #b91c1c;
    color: white;

    text-align: center;

    font-family: "Bebas Neue", sans-serif;
    font-size: 1.5rem;
    letter-spacing: 1px;

    border-radius: 8px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.12);
}














/* ==========================================
   MENTIONS LEGALES
========================================== */

.legal-page{

    max-width:1100px;
    margin:90px auto;
    padding:0 25px;

}

.titleContent{

    text-align:center;
    margin-bottom:60px;

}

.titleContent h3{

    font-family:"Bebas Neue",sans-serif;
    font-size:4rem;
    letter-spacing:2px;
    color:#222;

}


/* ==========================================
   BLOCS
========================================== */

.legal-section{

    margin-bottom:45px;

    padding:35px 40px;

    background:#fff;

    border-left:6px solid #D4AF37;

    box-shadow:0 12px 35px rgba(0,0,0,.06);

    border-radius:8px;

}

.legal-section h6{

    margin:0 0 22px;

    font-family:"Bebas Neue",sans-serif;
    font-size:2rem;
    letter-spacing:1px;

    color:#D4AF37;

}

.legal-section h7{

    display:block;

    margin-bottom:15px;

    font-size:1.2rem;

    font-weight:700;

    color:#222;

}

.legal-section p{

    margin-bottom:18px;

    font-family:"Lato",sans-serif;

    font-size:1.05rem;

    line-height:1.9;

    color:#555;

}

.legal-section ul{

    margin:18px 0 0 20px;

}

.legal-section li{

    margin-bottom:12px;

    font-family:"Lato",sans-serif;

    color:#555;

    line-height:1.8;

}


/* ==========================================
   AUTEURS
========================================== */

.legal-authors{

    margin-top:60px;

    padding:35px;

    background:linear-gradient(135deg,#1b1b1b,#2a2a2a);

    color:white;

    border-left:6px solid #D4AF37;

    box-shadow:0 18px 40px rgba(0,0,0,.15);

}

.legal-authors h6{

    margin-bottom:25px;

    font-family:"Bebas Neue",sans-serif;

    font-size:2rem;

    letter-spacing:1px;

    color:#D4AF37;

}

.legal-authors ul{

    margin-left:20px;

}

.legal-authors li{

    margin-bottom:15px;

    line-height:1.8;

    font-size:1rem;

}

.legal-authors strong{

    color:#F2D675;

}


/* ==========================================
   LIENS
========================================== */

.legal-page a{

    color:#C89B1F;

    text-decoration:none;

    font-weight:700;

}

.legal-page a:hover{

    color:#D4AF37;

    text-decoration:underline;

}


/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:768px){

    .titleContent h3{

        font-size:3rem;

    }

    .legal-section{

        padding:28px;

    }

    .legal-authors{

        padding:28px;

    }

}























/* ======================================================
   FOOTER
====================================================== */

.site-footer{

    background:linear-gradient(
        135deg,
        #c9a63b,
        #d8b74f,
        #b78f25
    );

    color:white;
}

.footer-container{

    max-width:1400px;

    margin:auto;

    padding:70px 40px;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:70px;

    align-items:flex-start;
}

.footer-column h4{

    margin-bottom:25px;

    font-family:"Bebas Neue",sans-serif;

    font-size:2rem;

    font-weight:400;

    letter-spacing:2px;

    text-transform:uppercase;
}

.footer-logo{

    width:140px;
}

.footer-title{

    margin:0;

    font-family:"Bebas Neue",sans-serif;

    font-size:2rem;

    letter-spacing:2px;

    text-transform:uppercase;
}

.footer-subtitle{

    margin-top:8px;

    font-family:"Playfair Display",serif;

    font-style:italic;

    font-size:1.2rem;
}

.footer-nav{
    background: transparent;

    display:flex;

    flex-direction:column;

    gap:12px;
}

.footer-nav a{

    color:white;

    text-decoration:none;

    font-size:1.05rem;

    font-weight:500;

    transition:.25s;
}

.footer-column p{

    color:white;

    text-decoration:none;

    font-size:1.05rem;

    font-weight:500;

    transition:.25s;
}

.footer-nav a:hover{

    padding-left:8px;

    color:#222;
}

.footer-social{

    display:flex;

    gap:18px;

    margin-top:25px;
}

.footer-social img{

    width:38px;

    height:38px;

    transition:.25s;
}

.footer-social img:hover{

    transform:translateY(-4px) scale(1.08);
}

.footer-bottom{

    background:#171717;

    padding: 30px 22px 30px;

    text-align:center;

    font-size:.95rem;
}

.footer-bottom a{

    color:#F2D675;

    text-decoration:none;
}

.footer-bottom a:hover{

    text-decoration:underline;
}

@media (max-width:900px){

    .footer-container{

        grid-template-columns:1fr;

        gap:50px;

        text-align:center;
    }

    .footer-nav{

        align-items:center;
    }

    .footer-social{

        justify-content:center;
    }

}



/* ---------------- SCROLL TO TOP ---------------- */
#scrollTopBtn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background: #c9a74d;
    color: #000;
    border: none;
    font-size: 22px;
    font-weight: bold;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.35s ease;
    z-index: 999;
    box-shadow: 0 8px 20px rgba(0,0,0,0.25);
    display: flex;
    align-items: center;
    justify-content: center;
}

#scrollTopBtn img {
    width: 30px;
    height: 30px;
}

#scrollTopBtn:hover {
    background: #b08f3e;
    transform: translateY(0) scale(1.1);
}

/* visible */
#scrollTopBtn.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* responsive */
@media (max-width: 768px) {
    #scrollTopBtn {
        bottom: 20px;
        right: 20px;
        width: 50px;
        height: 50px;
        font-size: 20px;
    }

    #scrollTopBtn img {
        width: 25px;
        height: 25px;
    }
}