/* 基本自定义样式 */
:root{
  --primary:#2b8ac6;
  --secondary:#1a5a8a;
  --accent:#4da6d9;
  --light:#f8f9fa;
  --dark:#343a40;
  --gray:#6c757d;
  --light-gray:#e9ecef;
}
body{
  font-family: system-ui,-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Microsoft YaHei", sans-serif;
  color:var(--dark);
  line-height:1.6;
}
*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}
.site-header{
  box-shadow:0 2px 10px rgba(0,0,0,0.1);
  background:white;
  position:relative;
  z-index:1000;
}
/* 确保下拉菜单显示在最上层 */
.navbar-collapse{
  z-index:1001;
}
.navbar-nav{
  position:relative;
  z-index:1002;
}
.site-header .navbar-brand{
  padding:1rem 0;
  transition:all 0.3s ease;
}
.site-header .navbar-brand:hover{
  transform:translateX(5px);
}
.site-header .navbar-brand strong{color:var(--primary); font-size:1.4rem; font-weight:700}
.site-header .navbar-brand span{font-size:1.1rem; color:var(--dark); margin-left:0.5rem}
.site-header .navbar-brand small{font-size:0.85rem; line-height:1.2; color:var(--gray); margin-top:0.25rem}
/* Navigation bar styling */
.navbar-nav .nav-link{
  color:var(--dark);
  padding:0.85rem 1.5rem;
  font-weight:500;
  min-width:110px;
  text-align:center;
  transition:all 0.3s ease;
  position:relative;
  overflow:hidden;
}
.navbar-nav .nav-link::before{
  content:'';
  position:absolute;
  top:0;
  left:-100%;
  width:100%;
  height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transition:all 0.6s ease;
}
.navbar-nav .nav-link:hover::before{
  left:100%;
}
.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover{
  background-color:var(--primary);
  color:white;
  border-radius:0;
  transform:translateY(-3px);
  box-shadow:0 4px 12px rgba(43, 138, 198, 0.3);
}
/* Hero section */
#heroCarousel img{
  height:400px;
  object-fit:cover;
}
.hero-placeholder{
  height:450px;
  background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  position:relative;
  overflow:hidden;
}
.hero-placeholder::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><rect width="100" height="100" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="1"/></svg>');
  opacity:0.3;
}
.hero-placeholder h2{
  font-weight:700;
  font-size:2.5rem;
  margin-bottom:1rem;
  text-shadow:2px 2px 4px rgba(0,0,0,0.3);
  animation:fadeInDown 1s ease-out;
}
.hero-placeholder p{
  font-size:1.25rem;
  opacity:0.95;
  text-shadow:1px 1px 2px rgba(0,0,0,0.3);
  animation:fadeInUp 1s ease-out 0.3s both;
}
@media (max-width:768px){
  .hero-placeholder{height:350px}
  .hero-placeholder h2{font-size:2rem}
  .hero-placeholder p{font-size:1.1rem}
}
@media (max-width:576px){
  .hero-placeholder{height:280px}
  .hero-placeholder h2{font-size:1.75rem}
  .hero-placeholder p{font-size:1rem}
}
/* Animations */
@keyframes fadeInDown{
  from{
    opacity:0;
    transform:translateY(-30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
/* Feature sections */
.feature{
  background:white;
  border:1px solid var(--light-gray);
  min-height:140px;
  padding:2rem 1.5rem;
  box-shadow:0 4px 15px rgba(0,0,0,0.08);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:8px;
  transition:all 0.4s ease;
  position:relative;
  overflow:hidden;
}
.feature::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  transform:scaleX(0);
  transition:transform 0.3s ease;
}
.feature:hover{
  transform:translateY(-8px);
  box-shadow:0 8px 25px rgba(0,0,0,0.12);
}
.feature:hover::before{
  transform:scaleX(1);
}
.feature p{
  margin:0;
  font-size:0.95rem;
  color:var(--dark);
  line-height:1.5;
}
/* Speaker placeholder styling */
.speaker-placeholder{
  width:80px;
  height:80px;
  background-color:var(--light-gray);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gray);
  font-weight:500;
  border:2px solid var(--accent);
  transition:all 0.3s ease;
}
.speaker-placeholder:hover{
  transform:scale(1.05);
  box-shadow:0 4px 12px rgba(43, 138, 198, 0.3);
}
/* Speaker photo styling */
.speaker-photo{
  width:80px;
  height:80px;
  object-fit:cover;
  border:2px solid var(--accent);
  transition:all 0.3s ease;
}
.speaker-photo:hover{
  transform:scale(1.05);
  box-shadow:0 4px 12px rgba(43, 138, 198, 0.3);
}


/* Member photo placeholder */
.member-photo-placeholder{
  width:100px;
  height:100px;
  background-color:var(--light-gray);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gray);
  font-weight:500;
  border:2px solid var(--accent);
  transition:all 0.3s ease;
}
.member-photo-placeholder:hover{
  transform:scale(1.05);
  box-shadow:0 4px 12px rgba(43, 138, 198, 0.3);
}


/* Stat card styling */
.stat-card{
  background:linear-gradient(135deg, rgba(43, 138, 198, 0.1) 0%, rgba(77, 166, 217, 0.1) 100%);
  border:2px solid var(--accent);
  border-radius:10px;
  transition:all 0.3s ease;
}
.stat-card:hover{
  transform:translateY(-5px);
  box-shadow:0 8px 25px rgba(43, 138, 198, 0.2);
}
.stat-label{
  font-size:1rem;
  font-weight:500;
}
/* Text sizing */
.text-sm{
  font-size:0.9rem;
  line-height:1.5;
}
.text-md{
  font-size:1rem;
  line-height:1.6;
}
.text-lg{
  font-size:1.1rem;
  line-height:1.7;
}
/* Card styling */
.card-title{
  color:var(--primary);
  font-weight:700;
  margin-bottom:1.25rem;
  font-size:1.35rem;
  position:relative;
  padding-bottom:0.5rem;
}
.card-title::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:60px;
  height:3px;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  border-radius:2px;
}
.card{
  transition:all 0.4s ease;
  min-height:250px;
  display:flex;
  flex-direction:column;
  border-radius:10px;
  overflow:hidden;
  border:none;
  box-shadow:0 5px 20px rgba(0,0,0,0.08);
  position:relative;
  background:white;
}
/* Flexbox container for equal height cards */
.row{
  display:flex;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
}
.row > [class*="col-"]{
  display:flex;
  flex-direction:column;
  margin-bottom:1rem;
}
.row > [class*="col-"] > .card{
  flex-grow:1;
  min-height:250px;
}
/* Meeting card specific styling */
.meeting-card{
  border-left:4px solid var(--primary);
  padding-left:1.5rem;
}
/* Space adjustments */
.mb-6{
  margin-bottom:3rem;
}
.mb-4{
  margin-bottom:1.5rem;
}
.card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg, var(--primary), var(--accent));
}
.card-body{
  flex-grow:1;
  display:flex;
  flex-direction:column;
  padding:2rem;
}
.card-text{
  flex-grow:1;
  margin-bottom:2rem;
  line-height:1.7;
  color:var(--dark);
}
.card:hover{
  transform:translateY(-10px);
  box-shadow:0 15px 30px rgba(0,0,0,0.12);
}
.card .btn{
  align-self:flex-start;
  background:var(--primary);
  color:white;
  border:none;
  padding:0.75rem 1.5rem;
  border-radius:50px;
  font-weight:500;
  transition:all 0.3s ease;
  box-shadow:0 4px 12px rgba(43, 138, 198, 0.3);
}
.card .btn:hover{
  background:var(--secondary);
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(43, 138, 198, 0.4);
}
/* Responsive adjustments */
@media (max-width:768px){
  #heroCarousel img{
    height:250px;
  }
  .feature{
    min-height:80px;
    padding:1rem;
  }
  .navbar-nav .nav-link{
    padding:0.5rem 0.75rem;
  }
}
/* Conference schedule styling */
.conference-schedule .card-body{
  padding:2rem;
  font-size:1rem;
  line-height:1.8;
  background:linear-gradient(180deg, rgba(43,138,198,0.02), rgba(255,255,255,0));
  border-radius:8px;
}

/* Gallery styling for past meetings */
.gallery-thumb{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:6px;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
  display:block; /* avoid inline baseline gap */
  margin:0; /* ensure no gaps */
}
.gallery-thumb:hover{ transform:scale(1.03); box-shadow:0 8px 20px rgba(0,0,0,0.12); }
.modal-img{ width:100%; height:auto; display:block; }
@media (max-width:576px){ .gallery-thumb{height:160px} }

/* Ensure images inside cards sit flush to the top and match card rounding */
.card > img{ display:block; width:100%; margin:0; border-top-left-radius:8px; border-top-right-radius:8px }
.card{ overflow:hidden; }

/* Edition thumbnails (可点击的大图样式) 🔧 */
.edition-thumb{
  height:320px;
  object-fit:cover;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
  width:100%;
}
.edition-thumb:hover{ transform:scale(1.02); box-shadow:0 10px 30px rgba(0,0,0,0.12); }
@media (max-width:768px){ .edition-thumb { height:220px; } }

/* Modal image & caption */
.modal-img{ max-height:75vh; object-fit:contain; display:block; margin:0 auto; }
.modal-caption{ max-width:80%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Figure caption tweak */
.figure-caption{ margin-top:0.5rem; color:var(--gray); }


/* Edition-specific styles */
.edition-hero{ width:100%; height:240px; object-fit:cover; display:block; margin-bottom:1rem }
@media (max-width:576px){ .edition-hero{height:160px} }

.accordion-button{ font-weight:600; }
.accordion-body .card{ border-radius:8px }

/* Edition banner (centered title like the image) */
.edition-banner{
  background:linear-gradient(180deg,#1f5f8f,#2b7fb0);
  color:#ffd84d;
  padding:0.75rem 1rem;
  text-align:center;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
}
.edition-banner h3{ font-size:1.6rem; margin:0; font-weight:700; letter-spacing:1px }
.edition-banner p{ color:#fff9e6; opacity:0.95; margin:0; font-size:0.95rem }

@media (max-width:768px){ .edition-banner h3{ font-size:1.25rem } .edition-banner p{ font-size:0.85rem } }
.conference-schedule h5{
  font-size:1.2rem;
  font-weight:700;
  color:var(--dark);
  margin-bottom:1rem;
}
.conference-schedule h6{
  font-size:1.04rem;
  font-weight:600;
  color:var(--primary);
  margin-bottom:0.5rem;
}
.conference-schedule .session{
  padding:1rem;
  border-left:4px solid var(--primary);
  background:rgba(43,138,198,0.02);
  border-radius:6px;
  margin-bottom:1rem;
}
.conference-schedule .schedule-list li{
  margin-bottom:0.65rem;
  color:var(--gray);
}
.conference-schedule .schedule-list li strong{
  color:var(--dark);
}
@media (max-width:768px){
  .conference-schedule .card-body{padding:1rem}
  .conference-schedule h5{font-size:1.05rem}
}

/* Footer styling */
footer{
  background:linear-gradient(135deg, var(--dark) 0%, var(--secondary) 100%);
  color:white;
  padding:3rem 0 2rem;
  position:relative;
  overflow:hidden;
}
footer::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><rect width="100" height="100" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="1"/></svg>');
  opacity:0.3;
}
footer .container{
  position:relative;
  z-index:1;
}
footer .footer-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
footer .footer-info{
  margin-bottom:1.5rem;
}
footer .footer-links{
  display:flex;
  gap:2rem;
  margin-top:1rem;
}
footer p{
  margin:0;
  color:rgba(255,255,255,0.8);
}
footer a{
  color:rgba(255,255,255,0.8);
  text-decoration:none;
  transition:all 0.3s ease;
  position:relative;
  padding:0.5rem 1rem;
  border-radius:4px;
}
footer a:hover{
  color:white;
  background-color:rgba(255,255,255,0.1);
  transform:translateY(-2px);
}
footer a::before{
  display:none;
}

/* Responsive adjustments */
@media (max-width:768px){
  #heroCarousel img{
    height:250px;
  }
  .feature{
    min-height:120px;
    padding:1.5rem 1rem;
  }
  .navbar-nav .nav-link{
    padding:0.75rem 1rem;
    min-width:90px;
  }
  .card-body{
    padding:1.5rem;
  }
  .hero-placeholder h2{
    font-size:1.75rem;
  }
  .hero-placeholder p{
    font-size:1rem;
  }
}
@media (max-width:576px){
  #heroCarousel img{
    height:200px;
  }
  .site-header .navbar-brand span{
    font-size:1rem;
  }
  .site-header .navbar-brand small{
    font-size:0.7rem;
  }
  .feature{
    min-height:100px;
    padding:1rem;
  }
  .card-body{
    padding:1.25rem;
  }
  .hero-placeholder{
    height:250px;
  }
  .hero-placeholder h2{
    font-size:1.5rem;
  }
  .hero-placeholder p{
    font-size:0.9rem;
  }
}

/* General animations */
@keyframes fadeIn{
  from{
    opacity:0;
  }
  to{
    opacity:1;
  }
}

/* Scroll animations */
@media (prefers-reduced-motion: no-preference){
  .feature,
  .card,
  h4{
    animation:fadeIn 0.8s ease-out;
  }
}
