/**
* Template Name: TheEvent (Customized for EDiS'2026 - Oran Theme)
* Updated: July 2024
* Author: BootstrapMade.com
* Customization by AI for EDiS'2026
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

/* === THEME COLOR PALETTE === */
:root {
  --primary-color: #1E90FF; /* Vibrant Blue - "Mer Méditerranée" */
  --accent-color: #FF4500;  /* Warm Orange/Red - "Soleil d'Oran" */
  --dark-blue: #0e1b4d;
  --text-color: #2f3138;
  --light-bg: #f6f7fd;
}

body {
  background: #fff;
  color: var(--text-color);
  font-family: "Open Sans", sans-serif;
}

a {
  color: var(--primary-color);
  text-decoration: none;
  transition: 0.3s;
}

a:hover,
a:active,
a:focus {
  color: var(--accent-color);
  outline: none;
  text-decoration: none;
}

p {
  padding: 0;
  margin: 0 0 30px 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Raleway", sans-serif;
  font-weight: 400;
  margin: 0 0 20px 0;
  padding: 0;
  color: var(--dark-blue);
}

/* Prelaoder */
#preloader {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 999;
  width: 100%;
  height: 100%;
  overflow: visible;
  background: #fff url("../img/preloader.svg") no-repeat center center;
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 996;
  background: var(--primary-color);
  width: 40px;
  height: 40px;
  border-radius: 50px;
  transition: all 0.4s;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.back-to-top i {
  font-size: 28px;
  color: #fff;
  line-height: 0;
}

.back-to-top:hover {
  background: var(--accent-color);
  color: #fff;
}

.back-to-top.active {
  visibility: visible;
  opacity: 1;
}

/* Sections Header
--------------------------------*/
.section-header {
  margin-bottom: 60px;
  position: relative;
  padding-bottom: 20px;
}

.section-header::before {
  content: "";
  position: absolute;
  display: block;
  width: 60px;
  height: 5px;
  background: var(--primary-color);
  bottom: 0;
  left: calc(50% - 30px);
  border-radius: 3px;
}

.section-header h2 {
  font-size: 36px;
  text-transform: uppercase;
  text-align: center;
  font-weight: 700;
  margin-bottom: 10px;
}

.section-header p {
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  color: #9195a2;
}

.section-with-bg {
  background-color: var(--light-bg);
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
  height: 90px;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  transition: all 0.5s;
  z-index: 997;
  background: rgba(1, 22, 64, 0.5); /* Transparent background for hero */
}

#header.header-scrolled,
#header.header-inner {
  background: rgba(1, 22, 64, 0.95); /* Dark blue solid background on scroll */
  height: 70px;
  box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1);
}

#header #logo {
  padding: 0;
  margin: 0;
}

#header #logo img {
  max-height: 50px; /* Adjusted for better alignment */
  margin-top: -5px;
}

@media (max-width: 992px) {
  #header #logo img {
    max-height: 40px;
  }
}

#header .logo-img {
  transition: all 0.3s ease-in-out;
  /* Ajoute une légère ombre blanche pour détacher le logo du fond */
  filter: drop-shadow(0px 0px 5px rgba(255, 255, 255, 0.4));
}

#header:hover .logo-img {
  /* Renforce l'effet au survol du header */
  filter: drop-shadow(0px 0px 8px rgba(255, 255, 255, 0.7));
}


/* --- Logo de Gauche (Université Oran 1) --- */
#logo-left .logo-img {
  max-height: 65px; /* Contrôle par la hauteur car il est plutôt carré */
}
#header.header-scrolled #logo-left .logo-img {
  max-height: 55px;
}


/* --- Logo de Droite (LAPECI) --- */
#logo-right .logo-img {
  /* On contrôle ce logo par la largeur car il est rectangulaire */
  max-width: 180px; 
}
#header.header-scrolled #logo-right .logo-img {
  max-width: 160px;
}

/*--------------------------------------------------------------
# Buy Tickets Button
--------------------------------------------------------------*/
.buy-tickets {
  color: #fff;
  background: var(--primary-color);
  padding: 8px 25px;
  margin: 0 0 0 15px;
  border-radius: 50px;
  border: 2px solid var(--primary-color);
  transition: all ease-in-out 0.3s;
  font-weight: 600;
  line-height: 1;
  font-size: 14px;
  white-space: nowrap;
}

.buy-tickets:hover {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: #fff;
}

/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
.navbar {
  padding: 0;
}

.navbar ul {
  margin: 0;
  padding: 0;
  display: flex;
  list-style: none;
  align-items: center;
}

.navbar li {
  position: relative;
}

.navbar>ul>li {
  white-space: nowrap;
  padding: 10px 0 10px 12px;
}

.navbar a,
.navbar a:focus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: rgba(255, 255, 255, 0.8);
  font-family: "Raleway", sans-serif;
  font-weight: 600;
  font-size: 15px;
  white-space: nowrap;
  transition: 0.3s;
  position: relative;
  padding: 6px 4px;
}

.navbar>ul>li>a:before {
  content: "";
  position: absolute;
  width: 0;
  height: 2px;
  bottom: -6px;
  left: 0;
  background-color: var(--primary-color);
  visibility: hidden;
  transition: all 0.3s ease-in-out 0s;
}

.navbar a:hover:before,
.navbar li:hover>a:before,
.navbar .active:before {
  visibility: visible;
  width: 100%;
}

.navbar a:hover,
.navbar .active,
.navbar .active:focus,
.navbar li:hover>a {
  color: #fff;
}

.mobile-nav-toggle {
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  display: none;
  line-height: 0;
  transition: 0.5s;
}

@media (max-width: 991px) {
  .mobile-nav-toggle {
    display: block;
  }
  .navbar ul {
    display: none;
  }
}

.navbar-mobile {
  position: fixed;
  overflow: hidden;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.9);
  transition: 0.3s;
  z-index: 999;
}

.navbar-mobile .mobile-nav-toggle {
  position: absolute;
  top: 15px;
  right: 15px;
}

.navbar-mobile ul {
  display: block;
  position: absolute;
  top: 55px;
  right: 15px;
  bottom: 15px;
  left: 15px;
  padding: 10px 0;
  background-color: #fff;
  overflow-y: auto;
  transition: 0.3s;
}

.navbar-mobile a,
.navbar-mobile a:focus {
  padding: 10px 20px;
  font-size: 15px;
  color: var(--dark-blue);
}

.navbar-mobile a:hover,
.navbar-mobile .active,
.navbar-mobile li:hover>a {
  color: var(--primary-color);
}


/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
#hero {
  width: 100%;
  height: 100vh;
  background: url(../img/hero-bg.jpg) center center; 
  background-size: cover;
  overflow: hidden;
  position: relative;
}

@media (min-width: 1024px) {
  #hero {
    background-attachment: fixed;
  }
}

#hero:before {
  content: "";
  /* A dark blue overlay to ensure text is readable over the image */
  background: rgba(1, 22, 64, 0.6); 
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
}

#hero .hero-container {
  position: absolute;
  bottom: 0;
  left: 0;
  top: 90px;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  padding: 0 15px;
}

#hero h1 {
  color: #fff;
  font-family: "Raleway", sans-serif;
  font-size: 52px;
  font-weight: 700;
  text-transform: uppercase;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

#hero h1 span {
  color: #fff; /* Keep the sub-title white, the main highlight is the colored text below */
}

@media (max-width: 991px) {
  #hero h1 {
    font-size: 34px;
  }
}

#hero h2 {
  color: #eee;
  margin-bottom: 30px;
  font-size: 24px;
  font-weight: 400;
}

#hero h2 span {
  color: #fff;
  font-weight: 600;
}

#hero p {
  color: #ebebeb;
  font-weight: 700;
  font-size: 22px;
}

@media (max-width: 991px) {
  #hero p {
    font-size: 18px;
  }
}

/*--------------------------------------------------------------
# About Section
--------------------------------------------------------------*/
#about {
  background: #fff;
  color: var(--text-color);
  padding: 80px 0;
}

#about h2, #about h3 {
  color: var(--dark-blue);
  font-weight: 700;
}

#about h3 {
  font-size: 20px;
}

#about p {
  color: #444;
  line-height: 1.7;
}

#about ul {
  list-style: none;
  padding-left: 0;
}

#about ul li {
  padding-bottom: 10px;
}

#about .col-lg-3 h3 {
  color: var(--primary-color);
}

#about .col-lg-3 b {
  color: var(--accent-color);
}

/*--------------------------------------------------------------
# Speakers Section
--------------------------------------------------------------*/
#speakers {
  padding: 60px 0 30px 0;
}

#speakers .speaker {
  position: relative;
  overflow: hidden;
  margin-bottom: 30px;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease-in-out;
}

#speakers .speaker:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

/* --- C'EST ICI LA MODIFICATION IMPORTANTE --- */
#speakers .speaker img {
  width: 100%; /* L'image prend toute la largeur de sa colonne */
  height: 350px; /* ON FORCE UNE HAUTEUR FIXE ET IDENTIQUE POUR TOUTES LES IMAGES. Vous pouvez changer cette valeur (ex: 300px) */
  object-fit: cover; /* La magie est ici : l'image remplit l'espace sans se déformer. L'excédent est rogné. */
  object-position: center; /* S'assure que l'image est centrée dans son cadre (utile pour les portraits) */
}
/* --- FIN DE LA MODIFICATION IMPORTANTE --- */


#speakers .speaker .details {
  background: linear-gradient(to top, rgba(1, 22, 64, 0.95) 0%, rgba(1, 22, 64, 0) 100%);
  position: absolute;
  left: 0;
  bottom: -60px;
  right: 0;
  text-align: center;
  padding-top: 30px;
  padding-bottom: 20px;
  transition: all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

#speakers .speaker:hover .details {
  bottom: 0;
}

#speakers .speaker .details h3 {
  color: #fff;
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 5px;
}

#speakers .speaker .details p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 15px;
  margin-bottom: 10px;
  font-style: italic;
}

#speakers .speaker .details .presentation-topic {
  color: #fff;
  font-size: 14px;
  font-style: italic;
  margin-top: 10px;
  padding: 0 10px;
  font-weight: 500;
}
/*--------------------------------------------------------------
# F.A.Q & Committees Section (Unified Style)
--------------------------------------------------------------*/
#faq, #commi {
  padding: 60px 0;
}

#faq .faq-list, 
#commi .faq-list {
  padding: 0;
  list-style: none;
}

#faq .faq-list li, 
#commi .faq-list li {
  /* Transforme chaque item en carte */
  background: #fff;
  margin-bottom: 15px;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.07);
  border: 1px solid #eef0f2;
  transition: all 0.3s ease-in-out;
  border-bottom: 0; /* On enlève l'ancienne bordure */
}

#faq .faq-list li:hover,
#commi .faq-list li:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

#faq .faq-list .question, 
#commi .faq-list .question {
  display: block;
  position: relative;
  font-size: 18px;
  line-height: 24px;
  font-weight: 600;
  padding-right: 20px; /* Espace pour l'icône chevron */
  padding-left: 0; /* Le padding est maintenant sur la carte parente */
  cursor: pointer;
  color: var(--dark-blue);
  transition: 0.3s;
}

#faq .faq-list .question:hover,
#commi .faq-list .question:hover {
  color: var(--primary-color);
}

/* Style quand l'accordéon est ouvert */
#faq .faq-list .question[aria-expanded="true"],
#commi .faq-list .question[aria-expanded="true"] {
  color: var(--primary-color);
}

/* Positionnement de l'icône chevron */
#faq .faq-list i, 
#commi .faq-list i {
  font-size: 20px;
  position: absolute;
  right: 0;
  top: 0;
}

/* Contenu de l'accordéon */
#faq .faq-list .collapse,
#commi .faq-list .collapse {
  padding-top: 15px;
}

/* --- LE STYLE AMÉLIORÉ POUR LES LISTES DE MEMBRES --- */
#commi .faq-list ul {
  padding-left: 5px;
  list-style: none; /* On supprime les puces par défaut */
}

#commi .faq-list ul li {
  padding: 5px 0;
  margin: 0;
  box-shadow: none; /* Annule l'effet de carte pour les membres */
  border: none;
  font-size: 16px;
  color: #444;
  position: relative;
  padding-left: 25px; /* Espace pour notre icône personnalisé */
}
#commi .faq-list ul li:hover {
  transform: none; /* Annule l'effet de survol pour les membres */
  box-shadow: none;
  background-color: transparent;
}


/* Crée une puce personnalisée et élégante */
#commi .faq-list ul li::before {
  content: "■"; /* Vous pouvez aussi utiliser '•' ou '\2023' */
  position: absolute;
  left: 0;
  top: 5px;
  font-size: 12px;
  color: var(--primary-color);
  line-height: 1.2;
}
/* ----------------------------------------------------------- */

#faq .faq-list p {
  margin-bottom: 0;
  padding: 10px 0 0 0;
}

#faq .faq-list .icon-show, 
#commi .faq-list .icon-show {
  display: none;
}

#faq .faq-list .collapsed .icon-show, 
#commi .faq-list .collapsed .icon-show {
  display: inline-block;
  transition: 0.6s;
}

#faq .faq-list .collapsed .icon-close, 
#commi .faq-list .collapsed .icon-close {
  display: none;
  transition: 0.6s;
}

/*--------------------------------------------------------------
# Submission & Placeholder Sections
--------------------------------------------------------------*/
#submission, #buy-tickets, #schedule, #hotels {
  padding: 60px 0;
}
#submission h3, #buy-tickets h3, #schedule h3, #hotels h3 {
  font-weight: 400;
  color: #555;
}
#submission h4, #buy-tickets h4, #schedule h4, #hotels h4 {
  color: var(--primary-color);
  font-weight: 600;
}

/*--------------------------------------------------------------
# Gallery (Past Editions)
--------------------------------------------------------------*/
#gallery {
  padding: 60px 0;
  overflow: hidden;
  background-color: #f6f7fd; /* Gris très léger pour contraster */
}

/* La Grille : C'est ici que la magie opère pour la mise en page */
.gallery-grid {
  display: grid;
  /* Crée des colonnes automatiques : min 280px, max 1 fraction de l'espace */
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px; /* Espace entre les cartes */
  padding: 10px;
}

/* La Carte individuelle */
.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 12px; /* Coins bien arrondis */
  box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.1); /* Ombre douce et élégante */
  background: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  aspect-ratio: 16/9; /* Force un ratio rectangulaire standard (style YouTube/Cinéma) */
}

/* Effet de "levitation" au survol de la carte */
.gallery-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.2);
}

/* L'Image */
.gallery-item img {
  width: 100%;
  height: 100%; /* Remplit toute la carte */
  object-fit: cover; /* Coupe l'image pour qu'elle remplisse le cadre sans se déformer */
  transition: transform 0.5s ease; /* Zoom fluide */
}

/* Zoom sur l'image au survol */
.gallery-item:hover img {
  transform: scale(1.1);
}

/* Le filtre de couleur au-dessus de l'image (Overlay) */
.gallery-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(1, 22, 64, 0.7); /* Bleu foncé transparent */
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0; /* Invisible par défaut */
  transition: opacity 0.3s ease;
  backdrop-filter: blur(2px); /* Léger flou artistique sur l'image derrière */
}

/* Apparition de l'overlay au survol */
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

/* Le texte (EDiS 2024, etc.) */
.gallery-overlay h4 {
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0;
  transform: translateY(20px); /* Part d'un peu plus bas */
  transition: transform 0.3s ease;
}

/* Animation du texte qui remonte */
.gallery-item:hover .gallery-overlay h4 {
  transform: translateY(0);
}

/*--------------------------------------------------------------
# Sponsors Section
--------------------------------------------------------------*/
#supporters {
  padding: 60px 0;
}

#supporters .supporters-wrap {
  border-top: 1px solid #e0e5fa;
  border-left: 1px solid #e0e5fa;
  margin-bottom: 30px;
}

#supporters .supporter-logo {
  padding: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-right: 1px solid #e0e5fa;
  border-bottom: 1px solid #e0e5fa;
  overflow: hidden;
  background: #fff;
  height: 160px;
}

#supporters .supporter-logo:hover img {
  transform: scale(1.15);
}

#supporters img {
  transition: all 0.4s ease-in-out;
  max-width: 80%; /* Prevent logos from being too large */
  filter: grayscale(100%);
  opacity: 0.7;
}

#supporters .supporter-logo:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/*--------------------------------------------------------------
# Contact Section
--------------------------------------------------------------*/
#contact {
  padding: 60px 0;
}

#contact .contact-info {
  margin-bottom: 20px;
  text-align: center;
}

#contact .contact-info i {
  font-size: 48px;
  display: inline-block;
  margin-bottom: 10px;
  color: var(--primary-color);
}

#contact .contact-info address,
#contact .contact-info p {
  margin-bottom: 0;
  color: var(--dark-blue);
}

#contact .contact-info h3 {
  font-size: 18px;
  margin-bottom: 15px;
  font-weight: bold;
  text-transform: uppercase;
  color: #112363;
}

#contact .contact-info a:hover {
  color: var(--accent-color);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
#footer {
  background: #011640; /* Darker blue for footer */
  padding: 30px 0;
  color: #eee;
  font-size: 14px;
}

#footer .copyright {
  text-align: center;
}

#footer .credits {
  text-align: center;
  font-size: 13px;
  color: #ddd;
}

#footer .credits a {
  color: var(--primary-color);
}

#footer .credits a:hover {
  color: #fff;
}

/*--------------------------------------------------------------
# About Section
--------------------------------------------------------------*/
#about {
  background: url("../img/hero-bg.jpg") center center; /* Utilise la même image de fond */
  background-size: cover;
  background-attachment: fixed; /* Crée l'effet de parallaxe */
  position: relative;
  padding: 80px 0;
  color: #fff; /* Le texte doit être blanc sur un fond sombre */
}

#about::before {
  content: "";
  /* Superposition sombre pour la lisibilité */
  background: rgba(1, 22, 64, 0.85); 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

/* Assurer que le contenu est au-dessus de la superposition */
#about .container {
  position: relative; 
}

#about h2, #about h3 {
  color: #fff; /* Titres en blanc */
  font-weight: 700;
}

#about h3 {
  font-size: 20px;
}

#about p {
  color: #f0f0f0; /* Texte principal en blanc cassé pour un meilleur confort de lecture */
  line-height: 1.7;
}

#about ul {
  list-style: none;
  padding-left: 0;
}

#about ul li {
  padding-bottom: 10px;
  color: #f0f0f0;
}

#about .col-lg-3 h3 {
  color: var(--primary-color);
}

#about .col-lg-3 b {
  color: var(--accent-color);
}

