@font-face {
    font-family: 'stolzl';
    src: url('../fonts/stolzl_bold-webfont.woff2') format('woff2'),
    url('../fonts/stolzl_bold-webfont.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}
@font-face {
    font-family: 'stolzl';
    src: url('../fonts/stolzl_light-webfont.woff2') format('woff2'),
    url('../fonts/stolzl_light-webfont.woff') format('woff');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'stolzl';
    src: url('../fonts/stolzl_regular-webfont.woff2') format('woff2'),
    url('../fonts/stolzl_regular-webfont.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

:root {
    --redButton: #e8423b;
    --redLink: #e8423b;
}

body {
    font-family: "stolzl", Arial, sans-serif;
    margin: 0;
    padding: 0;
    overflow-x:hidden;
}
input, select, textarea {
    font-family: "stolzl", Arial, sans-serif;
    font-weight: 300;
}
.topHeader {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: grid;
    grid-template-columns: 1fr 3fr;
    grid-template-rows: auto auto;
    align-items: center;
    padding: 10px 20px;
    background: white;
    border-bottom: 1px solid #ccc;
    transition: top 0.3s ease-in-out;
}

.hiddenMenu {
    top: -160px;
}
.mobile_visible {
    display: none;
}
#ad-megaban {
    margin-bottom:20px;
}
.lctn_header {
    display: flex;
    gap:20px;
    justify-content: space-between;
}
.topHeader .logo {
    grid-column: 1;
    grid-row: 1 / span 2;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    min-height:80px;
    max-height: 200px;
}
.topHeader .logo a {
    height: 100%;
    display: flex;
}
.topHeader .logo img {
    height: 100%;
    width: auto;
}

.topHeader .socials {
    grid-column: 2; /* Réseaux sociaux dans la deuxième colonne */
    grid-row: 1; /* Première ligne */
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.topHeader .socials a {
    color: black;
    text-decoration: none;
    font-size: 1.2em;
}

.topMenu {
    grid-column: 2; /* Menu dans la deuxième colonne */
    grid-row: 2; /* Deuxième ligne */
    display: flex;
    justify-content: flex-end;
    gap: 20px;
}

.topMenu ul.menu {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.topMenu ul.menu li a {
    text-decoration: none;
    color: black;
    font-weight: 400;
    padding: 5px 1px;
}

.topMenu ul.menu li a:hover {
    color: var(--redLink);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

.burger {
    display: none; /* Caché par défaut, affiché en mobile */
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
}

.burger span {
    width: 100%;
    height: 3px;
    background: black;
    border-radius: 2px;
    transition: all 0.3s linear;
}

/* Menu Mobile */
.mobileMenu {
    position: fixed;
    top: 0;
    left: -130vw;
    width: calc(100% - 40px);
    height: 100%;
    background: white;
    display: flex;
    flex-direction: column;
    padding: 20px;
    transition: left 0.3s ease-in-out;
    z-index: 1000;
}

.mobileMenu.active {
    left: 0;
}

.mobileMenuHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mobileMenuHeader .logo img {
    height: 60px;
}

.closeMenu {
    background: transparent;
    border: none;
    font-size: 4em;
    cursor: pointer;
    margin: 0 0 0 auto;
}

/* Liste du Menu Mobile */
.mobileMenuList {
    list-style: none;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.mobileMenuList li a {
    text-decoration: none;
    color: black;
    font-size: 1.5em;
}



.banner.section {
    height: 280px;
}
.banner {
    position: relative;
    color: white;
}
.banner .headerTitle {
    position: absolute;
    left:10%;
    top:30%;
    color:#FFF;
    font-weight: 400;
    margin:0;
}
.banner img {
    width: 100%;
    height: auto;
}
.banner.section img {
    max-height: 280px;
    object-fit: cover;
}
.banner .banner-text {
    position: absolute;
    top: 50%;
    right: 10%;
    transform: translateY(-50%);
    text-align: right;
}
.banner-text h1, h2 {
    margin:0;
    padding:0;
}
h4 {
    font-weight: 400;
}
.banner-text h1 {
    font-size:72px;
}
.banner-text h2 {
    font-size:32px;
}
.banner-text .date {
    font-size:38px;
}

.banner .banner-actions {
    margin-top: 20px;
}

.banner .btn {
    display: inline-block;
    padding: 10px 20px;
    margin: 10px 0;
    background: rgba(31,41,254,0.6);
    color: white;
    text-decoration: none;
    font-weight: 400;
    border-radius: 5px;
    transition: background 0.3s;
}
.banner .btn + .btn {
    margin-left:20px;
}
.banner .btn:hover {
    background: rgba(31,41,254,1);
}
.banner-sponsors {
    position: absolute;
    bottom: 10%;
    left: 10%;
    text-align: left;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 5px;
    padding: 12px;
}

.banner-sponsors h4 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 400;
    color: #000;
}

.sponsor-logos {
    display: flex;
    gap: 35px;
    align-items: center;
}

.sponsor-logos a {
    display: inline-block;
}

.sponsor-logos img {
    max-height: 80px;
    height: auto;
    max-width: 180px;
    object-fit: contain;
    transition: transform 0.3s ease;
}

.sponsor-logos img:hover {
    transform: scale(1.1);
}


section {
    padding: 50px 20px;
    text-align: center;
    font-weight: 300;
}
section#intro {
    max-width: 760px;
    width: 80%;
    margin:auto;
    font-size:20px;
}
section h2 {
    margin-bottom: 20px;
    font-size: 2em;
}

section p {
    margin-bottom: 20px;
    font-size: 1.2em;
    line-height: 1.5;
}

section .btn {
    background: blue;
    color: white;
    text-decoration: none;
    padding: 10px 15px;
    border-radius: 5px;
    font-weight: 300;
}

section .btn:hover {
    background: darkblue;
}

footer {
    background: #333;
    color: white;
    text-align: center;
    padding: 10px 0;
}
.footerInner {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin:auto;
}
.footerInner div {
    margin:auto auto auto 0;
}
.footerInner a.legal {
    margin:auto 0 auto auto;
}

.eventInfos {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Deux colonnes de taille égale */
    max-width: 1200px;
    width: 90%;
    margin: 50px auto;
    gap: 50px;
}

.eventInfos .program,
.eventInfos .info {
    width: calc(100% - 40px);
    background: #f9f9f9;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.eventInfos .program h2,
.eventInfos .info h2 {
    font-size: 1.8em;
    margin-bottom: 15px;
    color: #333;
}
.eventInfos .info {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap:20px;
}
.eventInfos .info .ad {

}
.eventInfos .info .content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.eventInfos .program-item,
.eventInfos .info {
    margin-bottom: 0;
}

.eventInfos .program-item h3,
.eventInfos .info h3 {
    font-size: 1.2em;
    margin: 10px 0;
    color: #555;
}

.eventInfos .program-item p,
.eventInfos .info p {
    font-size: 1em;
    line-height: 1.6;
    color: #666;
}

.eventInfos .info img {
    width: 100%;
    height: auto;
    border-radius: 5px;
    margin-bottom: 10px;
}

.eventInfos .btn {
    display: inline-block;
    background: #ff4c4c;
    color: white;
    text-decoration: none;
    padding: 10px 15px;
    border-radius: 5px;
    font-weight: 300;
    transition: background 0.3s ease;
    width: fit-content;
    margin:auto auto 0 0;
}

.eventInfos .btn:hover {
    background: #e04343;
}



.eventInfos .program {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.eventInfos .tabs {
    margin-bottom: 20px;
}

.eventInfos .tab-header {
    display: flex;
    gap: 15px;
    margin-bottom: 10px;
    list-style: none;
    padding: 0;
    border-bottom: 2px solid #ccc;
}

.eventInfos .tab-header .tab {
    padding: 10px 15px;
    cursor: pointer;
    font-weight: 400;
    text-align: center;
    color: #555;
    border-radius: 5px 5px 0 0;
}
.eventInfos .tab-pane {
    display: none;
}
.eventInfos .tab-pane.active {
    display: block;
}
.eventInfos .tab-header .tab.active {
    background: #ff5e13;
    color: #fff;
}
.tab-content {
    overflow: hidden;
}
.eventInfos .tab-content {
    position: relative;
    padding: 20px;
    border: 1px solid #ccc;
    border-radius: 10px;
    background: #fff;
}
/* Conteneur principal Swiper */




/* Wrapper des slides */
.program {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    background: #f9f9f9;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.tabs {
    margin-bottom: 20px;
}

.tab-header {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.tab-header .tab {
    cursor: pointer;
    padding: 10px 20px;
    background: #eee;
    border-radius: 5px;
}

.tab-header .tab.active {
    background: #ff5e13;
    color: #fff;
}

.tab-content {
    margin-top: 20px;
    max-height: 400px;
}

.swiper-container {
    max-height: 800px;
    overflow: hidden;
    position: relative;
}

.swiper-wrapper {
    display: flex;
    flex-direction: column;
    transition-timing-function: linear !important;
}

.swiper-slide {
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #ddd;
    color:#e8423b;
}
h3 {
    margin:0;
    padding:0;
}
.swiper-slide > h3 {
    font-size: 26px;
    display: flex;
    padding:20px 5px 0;
    height: 50px;
}
.program-item {
    padding: 10px;
    background: #fff;
    color:#e8423b;
    gap: 5px;
}

.program-item.pause {
    background: #f3e0df;
    color:#87bd9f;
}
.program-item.common {
    background: #ef7d00;
    color:#FFF;
}
.program-item.common .time-slot, .program-item.explore .time-slot {
    color:#FFF;
}
.program-item.explore {
    background: #f0846f;
    color:#FFF;
}
.program-item.workshop {
    background: #87bd9f;
    color:#FFF;
}
.program-item.explore span {
    color: #000;
}
.program-item .time-slot {
    font-size: 0.9em;
    color: #000;
    margin-bottom: 5px;
}

h4 {
    font-size: 1.1em;
    margin: 0;
}

.program-item .content p {
    font-size: 0.9em;
    color: #666;
}


#days_fieldset {
    padding:0 15px 20px 15px;
    display: block;
    width: calc(100% - 30px);
}
.sub_form span.ast {
    font-size:12px;
    color:#000;
}


/* Bouton pour voir plus */

.program .btn {
    margin-top: 20px;
    display: inline-block;
    background: #ff5e13;
    color: #fff;
    padding: 10px 15px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 300;
}

.program .btn:hover {
    background: #e54d0f;
}


.headerTitle {
    margin:0 auto 50px auto;
    font-size:50px;
    font-weight: bold;
    color:#000;
}

.schdleCtn, .spsr_sponsors-page, .cntctCont, .genericPage {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.cntctCont {
    margin:50px auto;
}
.cntctCont .headerTitle {
    margin:100px auto 30px auto;
}

/* Container principal */
.schdleCtn, .news_block {
    max-width: 1200px;
    width: 90%;
    margin: auto;
}

/* Titre principal */
.schdleMainTitle {
    text-align: center;
    font-size: 1.8rem;
    margin: 2rem 0;
}

/*.schdleDayContainer {*/
/*    display: grid;*/
/*    grid-template-rows: auto auto auto;*/
/*    grid-gap: 1rem;*/
/*    margin-bottom: 2rem;*/
/*}*/
.schdleDayContainer {
    margin-bottom: 2rem;
}
.schdleHallsContainer {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1rem;
}

/* Titre de la journée */
.schdleDayTitle {
    margin-top:40px;
    font-size: 2rem;
    font-weight: 400;
    padding: 1rem 0;
    grid-column: 1 / -1; text-align: center;
}

/* Couleurs selon le type d’événement */
.schdleColor-default {
    background-color: #f9f9f9;
}
.schdleColor-explore {
    background: #f0846f;
    color: #fff;
}
.schdleColor-pause {
    background: #f3e0df;
    color: #87bd9f;
}
.schdleColor-workshop {
    background: #87bd9f;
    color: #fff;
}
.schdleColor-workshop .schdleEventInner, .schdleColor-explore .schdleEventInner {
    color:#000;
}
.schdleColor-common {
    background-color: #ef7d00;
    color: #fff;
}

.schdleEventHeader {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Titre dans l’en-tête (optionnel, déjà stylé inline) */
.schdleEventTitle {
    /* flex: 1; */
}

/* Bloc de contenu de l’événement (accordéon) */
.schdleEventContent {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out;
}
.schdleEvent a {
    text-decoration: none;
    color:#000;
}
.schdleEvent.schdleColor-explore .schdleEvent  a, .schdleEvent.schdleColor-workshop a {
    color:#FFF;
}
.schdleEvent.schdleColor-explore .schdleEventIntroductionLink img, .schdleEvent.schdleColor-explore .schdleEventSummaryLink img,
.schdleEvent.schdleColor-workshop .schdleEventIntroductionLink img, .schdleEvent.schdleColor-workshop .schdleEventSummaryLink img
{
    filter: invert();
}
.schdleEventIntroductionLink, .schdleEventSummaryLink {
    padding:0.5rem;
    display: flex;
    align-items: center;
    gap:10px;
}
.schdleEventIntroductionLink img, .schdleEventSummaryLink img {
    height: 30px;
    width: auto;
}
.schdleEvent a:hover {
    text-decoration: underline;
}
.schdleEventToggle {
    cursor: pointer;
}
/* Ouverture de l’événement (animation via max-height) */
.schdleOpen .schdleEventContent {
    max-height: 1500px;
}

/* Flèche */
.schdleArrowDown {
    border: solid black;
    border-width: 0 3px 3px 0;
    display: inline-block;
    position: relative;
    top:-3px;
    padding: 3px;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transition: transform 0.4s ease-in-out;

}
/* Lorsque le parent .schdleEvent a .schdleOpen,
   la flèche est tournée */
.schdleEvent.schdleOpen .schdleArrowDown {
    transform: rotate(-135deg);
    -webkit-transform: rotate(-135deg);
}

/* Événement sans contenu */
.schdleNoEvent {
    font-style: italic;
    color: #777;
}

/* Contenu interne (description, intervenants…) */
.schdleEventInner {
    padding: 1rem;
    background: #fff;
    border-top: 1px solid #ccc;
}

/* Description de l’événement */
.schdleDesc {
    margin-bottom: 1rem;
    color: #000;
    font-weight: 300;
}
.schdleDesc strong {
    font-weight: 400;
}
/* Liste des intervenants */
.schdleSpeakers ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.schdleSpeakers.speakersList, .schdleSpeakers.host {
    text-align: center;
}
.schdleSpeakers.host ul {
    margin-top:-12px;
}
.schdleSpeakerHost {
    display: flex;
    gap:10px;
    align-items: center;
}
.schdleSpeakerPosition {
    font-weight: 300;
}
.schdleSpeakers.speakersList ul {
   display: flex;
    gap:10px;
}
.schdleSpeakers .schdleSpeakerInfos {
    text-align: left;
}
.schdleSpeakers h4 {
    margin: 1rem 0 0;
}
.schdleSpeaker {
    display: flex;
    align-items: center;
    margin-bottom: 0.5rem;
}
.schdleSpeakerPhoto {
    width: 80px;
    height: 120px;
    object-fit: cover;
    border-radius: 20px;
    margin-right: 0.5rem;
}
.schdleSpeakerInfos {
    margin-right: 0.5rem;
}
.schdleSpeakerLogo {
    max-width: 200px;
    max-height: 100px;
    margin:auto 0 auto auto;
}
/* .schdleSpeakerSubject, .schdleSpeakerPosition, etc. à styliser si besoin */


/* ========== Présentation "pitch" ========== */
.pitchLayoutWrapper {
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.pitchRow {
    display: flex;
    /*flex-wrap: wrap;*/
    gap: 1rem;
    border: 2px solid var(--redButton);
    border-radius: 12px;
}
.pitchItem {
    flex: 1 1 200px;
    padding: 1rem;
    text-align: center;
}
.pitchLogo {
    min-height: 100px;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
}
.pitchLogo img {
    width: 100%;
    object-fit: contain;
    max-width: 200px;
    max-height: 100px;
}
.pitchSpeaker {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.pitchSpeakerPhoto {
    width: 80px;
    height: 100px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 0.5rem;
}
.pitchSpeakerText .pitchSpeakerName {
    font-weight: 400;
    margin-top:0.25rem;
    margin-bottom: 0.25rem;
    color:#666;
}


.schdleSpeakerHost .schdleSpeakerPhoto {
    width: 40px;
    height: 50px;
    border-radius: 12px;
    object-fit: cover;
    margin:auto;
}


/* ========== Présentation "keynote" ========== */
.keynoteWrapper {
    border: 2px solid var(--redButton);
    border-radius: 12px;
    padding: 1rem;
    margin: 1rem 0;
}
.keynoteSpeaker {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.keynotePhotoContainer .schdleSpeakerPhoto {
    width: 100px;
    height: 140px;
    border-radius: 12px;
    object-fit: cover;
}

.keynoteInfo {
    flex: 1;
}
.keynoteLogoContainer .schdleSpeakerLogo {
    max-width: 200px;
    max-height: 100px;
}
.keynoteName {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 0.25rem;
}

.schdleHallContainer #ad-carre {
    display: flex;
    justify-content: center;
    align-items: center;
}
.schdleHallName {
    background: #f5f5f5;
    padding: 0.5rem;
    text-align:center;
}
.schdleHallEvents {
    padding: 0.5rem;
}
.schdleEventHeader {
    padding: 0.5rem;
    display: flex;
    align-items:center;
    justify-content: space-between;
}
.schdleEventTime {
    margin-right:1rem;
    white-space: nowrap;
}
.schdleEventTitle {
    flex-grow:1;
}
.schdleArrowDown {
    display:inline-block;
}
.schdleEventInner {
    padding: 1rem;
    background:#fff;
}
.schdleEventArrow {
    width:24px;
    text-align:right;
}


.rex_contact-box {
    display: flex;
    align-items: flex-start;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.rex_contact-photo {
    width: 120px;
    height: 160px;
    border-radius: 12px;
    margin-right: 20px;
    object-fit: cover;
}

.rex_contact-info h2 {
    font-size: 1.5em;
    margin: 0;
}

.rex_contact-info p {
    margin: 5px 0;
}

.rex_contact-info .rex_contact-email,
.rex_contact-info .rex_contact-phone {
    font-size: 0.9em;
    color: #555;
}

/* Form styling */
#rex_contact_form {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    max-width: 600px;
    margin: 0 auto;
}

.rex_form-row {
    display: flex;
    margin-bottom: 15px;
    align-items: center;
}

.rex_form-row label {
    flex: 1;
    text-align: right;
    margin-right: 10px;
    font-weight: 400;
    color: #333;
}
.rex_form-row.top label {
    margin:0 10px auto 0;
}
.rex_form-row input,
.rex_form-row textarea {
    flex: 2;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1em;
}

.rex_form-row textarea {
    resize: vertical;
    height: 400px;
}

#rex_contact_form button[type="submit"] {
    display: block;
    width: 100%;
    background: var(--redButton);
    color: #fff;
    border: none;
    padding: 10px 15px;
    font-size: 1em;
    border-radius: 5px;
    cursor: pointer;
    text-transform: uppercase;
    transition: all ease-in-out 150ms;
}

#rex_contact_form button[type="submit"]:hover {
    background: #0056b3;
}
/* Conteneur principal */
.spsr_sponsors-page {
}

/* Titres des sections */
.spsr_level-title {
    font-size: 32px;
    margin-bottom: 20px;
    text-transform: uppercase;
    text-align: center;
    color: #333;
}

/* Grille des sponsors */
.spsr_sponsor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, 30%);
    gap: 25px;
    margin-bottom: 40px;
    justify-content: center;
}

/* Carte sponsor */
.spsr_sponsor-card {
    background: #f9f9f9;
    border-radius: 10px;
    overflow: hidden;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
}

.spsr_sponsor-card:hover {
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
}
.spsr_sponsor-logo {
    background: white;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
}

.spsr_sponsor-logo img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

/* Section des détails sponsor avec fond gris clair */
.spsr_sponsor-details {
    padding: 15px;
    background: #f0f0f0; /* Gris clair */
    flex:1;
    display: none;
    flex-direction: column;
}



.spsr_sponsor-description, .spsr_sponsor-details p {
    font-size: 14px;
    color: #555;
    margin: 10px 0;
    text-align: left;
    font-weight: 300;
}

.spsr_sponsor-link {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spsr_sponsor-link:hover {

}
.spsr_sponsor-card {
    transition: transform ease-in-out 350ms;
}
.spsr_sponsor-card:hover {
    transform: scale(1.05);
}
/* Box shadow coloré par niveau */
.spsr_level-10 .spsr_sponsor-card {
    box-shadow: 0 4px 10px rgba(227, 97, 90, 0.5); /* Red */
}

.spsr_level-4 .spsr_sponsor-card {
    box-shadow: 0 4px 10px rgba(0, 92, 153, 0.5); /* Bleu */
}

.spsr_level-3 .spsr_sponsor-card {
    box-shadow: 0 4px 10px rgba(255, 215, 0, 0.5); /* Or */
}

.spsr_level-2 .spsr_sponsor-card {
    box-shadow: 0 4px 10px rgba(192, 192, 192, 0.5); /* Argent */
}

.spsr_level-1 .spsr_sponsor-card {
    box-shadow: 0 4px 10px rgba(205, 127, 50, 0.5); /* Bronze */
}


.subContainer {
    width: 90%;
    max-width: 1200px;
    margin: 50px auto;
}
.subContainer .sub_form {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    max-width: 800px;
    margin: 0 auto;
    padding: 1rem;
    background: #f9f9f9;
    border: 1px solid #ccc;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all ease-in-out 150ms;
}
.subContainer .sub_form.disabled .inputLine {
    pointer-events: none;
    filter: blur(5px);
}
.subContainer .form_row {
    grid-column: span 6;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: center;
}
.subContainer .form_row .daysList {
    grid-column: span 6;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    padding: 5px 25px 10px 25px;
}
.form_row.checkboxes label {
    font-weight: 300;
}
.flex {
    display: flex;
}
.form_row.flex .info {
  margin:auto auto auto 0;
}
.form_row.flex .ast {
    margin:auto 0 auto auto;
    text-align: right;
}
.form_row p {
    margin: 0;
    padding: 0;
    font-weight: 300;
}
.payingSubCtn {
    background: #ffffff;
    border: 1px solid #ddd;
    font-weight: 300;
    padding: 20px;
    border-radius: 4px;
}
.payingSubCtn div + div {
    margin-top:15px;
}
.subContainer .form_row > * {
    flex: 1;
    min-width: 120px;
}
.subContainer .form_row label {
    flex: 0;
    text-align: right;
}
.subContainer .form_row label.civilite_label {
    text-align: center;
}
.subContainer fieldset.form_row label  {
    text-align: left;
}
.subContainer fieldset.form_row label {
    display: flex;
    justify-content: center;
    flex-direction: column;
}
.subContainer fieldset.form_row label span + span {
    font-size:12px;
    color:#999999;
}
.subContainer .form_row.column {
    flex-direction: column;
}
.subContainer input,
.subContainer select,
.subContainer button {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
}
.subContainer .civilite_buttons {
    display: flex;
    gap: 1rem;
    justify-content: flex-start;
    grid-column: span 6;
    padding: 0;
    border: 0;
}
.subContainer .civilite_label {
    display: inline-block;
    padding: 0.8rem 1.2rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    background: transparent;
    font-size: 1rem;
    text-align: center;
}
.subContainer .civilite_label.active {
    background-color: #c33;
    color: white;
    border-color: #c33;
}
.subContainer .civilite_label input {
    display: none;
}
.subContainer button {
    background: #c33;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    transition: background 0.3s ease;
}
.subContainer button:disabled {
    background: #ccc;
    cursor: not-allowed;
    opacity: 0.5;
}
.subContainer button:hover:not(:disabled) {
    background: #0056b3;
}
.subContainer #status_message {
    font-size: 14px;
    color: #333;
    font-weight: 400;
    text-align: center;
    letter-spacing: 1px;
    transition: all ease-in-out 150ms;
}
.subContainer fieldset {
    border: 1px solid #ddd;
    padding: 1rem;
    border-radius: 4px;
}
.subContainer legend {
    font-weight: 400;
    font-size: 24px;
    padding: 0 0.5rem;
}
.subContainer .schedule_label {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    color: #000;
    border: 1px solid #37a377;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    grid-column: span 2;
    text-align: center;
    flex: 0;
    height: 40px;
}
.subContainer .schedule_label:hover {
    background-color: #37a377;
}
.subContainer .schedule_label input {
    display: none;
}

#days_fieldset .schedule_label {
    flex:1;
    min-height: 65px;
}

fieldset .formDetail, .formDetail {
    font-size:12px;
    color:#888;
    font-style: italic;
    padding:4px 10px;
}
.subContainer .schedule_label input:checked + span {
    height: 100%;
    width: 100%;
    background-color: #37a377;
    color: #fff;
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.subContainer .schedule_label span {
    height: 100%;
    width: 100%;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.subContainer .schedule_label span small {
    color:#ca1606;
    font-size:12px;
}
.subContainer .checkbox_condition {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    grid-column: span 6;
    padding: 0.5rem 0;
}
.subContainer .checkbox_condition input {
    width: 1.5rem;
    height: 1.5rem;
    flex-shrink: 0;
}
.subContainer .checkbox_condition label {
    flex: 1;
    cursor: pointer;
    font-size: 0.9rem;
}
.subContainer .checkbox_condition.required label {
    font-weight: bold;
    color: #d9534f;
}
.subContainer .checkbox_condition.required input:checked + label {
    color: green;
}
#payant_message {
    margin: 0.5rem 0;
}

#lctn_map {
    width: 100%;
    height: 400px;
    margin: 20px 0;
    border: 1px solid #ccc;
    border-radius: 10px;
}
.lctn_info_container {
    line-height: 1.6;
    color: #333;
    max-width: 800px;
    margin: 50px auto;
}
.lctn_additional_info {
    font-size:22px;
    margin-top:60px;
}
.lctn_additional_info figure {
    margin: auto;
    padding: 0;
}
.lctn_additional_info table td img {
    width: 100%;
    height:auto;
    object-fit: contain;
}
.lctn_additional_info table {
    border-collapse: collapse;
}
.lctn_additional_info table td {
    border:1px solid #eee;
    padding:20px;
}
.lctn_additional_info table td:first-of-type {
    padding-left:5px;
    padding-right:5px;
}
.lctn_title {
    font-size: 34px;
    font-weight: bold;
    margin-bottom: 10px;
}
.lctn_description {
    margin-bottom: 20px;
}

#summary .media_embed_container {
    width: 50vw;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
}
#summary .media_embed_container iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

footer {
    margin-top:50px;
}
footer a {
    color:#FFF;
    text-decoration: none;
}
footer a:hover {
    text-decoration: underline;
}
.image-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 20px;
    background: #f2f2f2;
}
@media (min-width: 1000px) {
    .image-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media (min-width: 1200px) {
    .image-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}



.media_container_video {
    display: flex;
    justify-content: center;
    gap:3%;
}
.media_container_video .media_block {
    overflow: unset;
    width: 36%;
    box-shadow:unset;
    border:unset;
}
.media_container_video .media_block_header {
    background: transparent;
}
.media_block {
    border: 1px solid #ddd;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
}
.media_block_header {
    background-color: #fafafa;
    margin-top:50px;
    padding: 10px;
    font-size: 28px;
    font-weight: 400;
    text-align: center;
    border-bottom: 1px solid #eee;
}
.mediaCopyright {
    margin:10px 0 5px 20px;
}
.media_block_body {
    padding: 10px;
    position: relative;
}
/* Grille interne pour la galerie d'images (dans chaque bloc média) */
.image-grid {
    display: grid;
    /*grid-template-columns: repeat(4, 1fr);*/
    grid-auto-rows: 200px;
    gap: 10px;
}
.grid-item {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: all ease-in-out 350ms;
}
.grid-item:hover {
    transform:scale(1.15);
    z-index: 100;
}
.grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
    transition: transform 0.3s ease;
    display: block;
}
/* Classes pour la gestion de l'orientation : */
.grid-item.horizontal { grid-row: span 1; }
.grid-item.vertical   { grid-row: span 2; }

/* Zoom overlay */
#zoomOverlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}
#zoomOverlay img {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    border-radius: 4px;
    transition: transform 0.3s ease;
}

/* Bloc pour médias de type fichier */
.media_file_container {
    text-align: left;
    padding: 20px;
}
.media_file_container .file-icon {
    font-size: 48px;
    margin-bottom: 10px;
}
.media_file_container .download-link {
    display: inline-block;
    margin: 10px auto;
    padding: 8px 12px;
    background: #007BFF;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
}

.media_block_footer {
    padding: 10px;
    font-size: 14px;
    color: #555;
    border-top: 1px solid #eee;
    background: #fafafa;
}
.media_embed_container {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin:auto;
    aspect-ratio: 16 / 9;
    min-height: 400px;
    /*overflow: hidden;*/
}
.media_embed_container .playlistInfo {
    position: absolute;
    right:-70px;
    top:10px;
    background:#FFF;
    padding:10px 10px;
    color:#000;
    z-index: 100;
}
.media_embed_container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.arrow-container {
    display: flex;
    align-items: center;
    position: absolute;
    right: -190px;
    top: -4px;
}

.arrow {
    position: absolute;
    top: 25px;
    left: -5px;
    width: 10px;
    height: 10px;
    border-top: 2px solid black;
    border-right: 2px solid black;
    transform: rotate(225deg);
}
.box {
    border: 2px solid #000;
    border-radius: 10px;
    padding: 10px;
    width: 180px;
    box-sizing: border-box;
    font-family: "stolzl", Arial, sans-serif;
}
.quickAccess {
    display: flex;
    justify-content: center;
    gap:20px;
    margin:40px 0;
}
.quickAccess button, .quickAccess a {
    display: inline-block;
    font-family: "stolzl", Arial, sans-serif;
    padding: 0.8rem 1.2rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.35s ease, color 0.35s ease;
    font-size: 1rem;
    text-align: center;
    background-color: #c33;
    color: white;
    margin: 5px;
    text-decoration: none;
    font-weight: 300;
    border: 0;
}


.quickAccess button:hover, .quickAccess a:hover {
    transform: scale(1.10);
}
.news_grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(2, 1fr);
}
.news_content img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}
.news_content strong {
    font-size:20px;
}
.news_content .image-style-align-left {
    float:left;
    margin-right:15px;
    margin-bottom:10px;
}
.news_content .image-style-align-right {
    float:right;
    margin-left:12px;
    margin-bottom:10px;
}
.news_item_title {
    text-align: left;
}
.news_item a {
    text-decoration: none;
    color:#000;
}
.news_item a:hover {
    color:var(--redLink);
}
.news_block .news_header {
    margin-top:40px;
}
.news_header_title {
    margin-bottom:5px;
}
.news_header_date {
    font-size:14px;
    color:#666;
}
@media (max-width: 1000px) {
    .scdCtn {
        flex-direction: column;
        gap:30px;
    }
    #summary .media_embed_container {
        width: 90vw;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 900px) {
    .schdleCtn  {
        width: 100vw;
        overflow: hidden;
    }
    .topMenu {
        display: none; /* Masquer le menu desktop */
    }
    .topHeader {
        position: absolute;
        width: calc(100% - 40px);
    }
    .burger.visible {
        display: flex; /* Afficher le bouton burger */
        grid-column: 2;
        grid-row: 1 / span 2;
        justify-self: end;
    }
    .schdleSpeakerLogo {
        display: none;
    }
    .schdleSpeakers.speakersList ul {
        flex-direction: column;
    }
    .schdleSpeakers.host ul {
        margin-top:0;
    }
    .pitchLogo img {
        max-width: 100%;
    }
    .pitchRow {
        flex-direction: column;
    }

    .banner {
        height: 100vh;
    }
    .banner img {
        height: 100%;
        object-fit: cover;
    }
    .media_container_video {
        flex-direction: column;
        overflow: hidden;
    }
    .media_container_video .media_block {
        width: 72%;
        margin:auto;
    }
    .banner .sponsor-logos img {
        height: 50px;
        object-fit: contain;
    }
    .banner-sponsors {
        left: 0;
        bottom:0;
        border-radius: 0;
    }
    .banner .banner-text {
        top:40%;
    }
    .news_grid {
        grid-template-columns: repeat(2, 1fr);
    }
    section {
        padding:0;
        margin:0 auto;
    }
    /* Ajuster la grille si nécessaire */
    .topHeader {
        grid-template-columns: 1fr 1fr;
    }
    .banner .headerTitle {
        top: 50%;
        transform: translateY(-50%);
        left:0;
        width: 100%;
        text-align: center;
    }
    .spsr_sponsor-grid {
        grid-template-columns: repeat(auto-fit, 90%);
    }
}


@media (max-width: 768px) {
    .news_grid {
        grid-template-columns: 1fr;
    }
    .mobile_visible, .topHeader .mobileMenuHeader .logo {
        display: block;
    }
    .mobile_hidden, .topHeader .logo, .topHeader .socials, .topHeader .topMenu {
        display: none;
    }
    .schdleHallsContainer {
        grid-template-columns: 1fr !important;
    }
    .schdleEvent {
        width: 90vw;
        margin:auto;
    }
    .lctn_additional_info p {
        text-align: center;
    }

    .lctn_additional_info table tr {
        display: flex;
        flex-direction: row;
        gap:10px;
        justify-content: center;
        width: 100vw;
    }
    .lctn_additional_info figure {
        width: 12vw;
    }
    .lctn_additional_info table td {
        flex:1;
    }
    .lctn_additional_info table td:first-of-type {
        margin:auto auto auto 0;
        flex:0;
        border:unset;
    }
    .lctn_additional_info table tr + tr td {
        border:unset;
        border-top:1px solid #CCC;
    }
    .rex_contact-info .rex_contact-email, .rex_contact-info .rex_contact-phone {
        text-align: center;
    }
    .headerTitle {
        font-size:32px;
    }
    .banner .headerTitle {
        font-size:50px;
    }
    .spsr_sponsors-page {
        margin-top:80px;
    }
    .rex_contact-info {
        margin-top:10px;
        text-align: center;
    }
    .rex_form-row {
        flex-direction: column;
    }
    .spsr_level + .spsr_level  {
        margin-top:70px;
    }
    .sprs_level .headerTitle {
        margin-bottom:10px;
    }
    .rex_form-row textarea {
        width: 100%;
        min-height: 300px;
    }
    .rex_contact-box {
        flex-direction: column;
        align-items: center;
    }
    .topHeader {
        background: transparent !important;
        border-bottom: 0;
    }
    .banner .headerTitle {
        top: 50%;
        transform: translateY(-50%);
    }
    .subContainer .form_row input + label {
        display: inline-block;
        margin-top: 10px;
    }
    .subContainer .sub_form {
        grid-template-columns: 1fr;
    }
    .subContainer .form_row:not(#invited_by_container,#civcontainer,#payingSubCtn) {
        display: block !important;
    }
    /* Les lignes de formulaire s'étendent sur 100% de la largeur */
    .subContainer .form_row,
    .subContainer .daysList,
    .subContainer .civilite_buttons,
    .subContainer .checkbox_condition,
    .subContainer .schedule_label {
        grid-column: 1 / -1;
    }
    /* Facultatif : ajuster les éléments flex si besoin */
    .subContainer .form_row > * {
        min-width: auto;
    }
    .eventInfos {
        grid-template-columns: 1fr;
    }
    .subContainer .schedule_label {
        grid-column: span 2;
        text-align: center !important;
        margin-bottom:15px;
    }

    .subContainer .checkbox_condition {
        flex-wrap: wrap;
    }
}