
/* =========================================
   1. 기본 설정 및 레이아웃
   ========================================= */
* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    background-color: #ffffff;
    color: #333;
}

#battery-leaders-wrap {
    width: 100%;
    margin: 0 auto;    
    background-color: #ffffff; 
    position: relative;
}

/* 공통: 이미지 및 중앙 정렬 */
img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.inner {
    width: 100%;
    max-width: 855px;
    margin: auto;
    position: relative;
}


/* =========================================
   2. 섹션별 스타일 (Hero, Intro)
   ========================================= */

/* Hero 섹션 (배경 + 그라데이션) */
.sec-hero {
    width: 100%;
    height: auto;
    max-height: 1040px;
    aspect-ratio: 1920 / 1040; /* 비율 유지 */
    padding-top: 50px;
    background-image: url(../images/bg-main.png), linear-gradient(to bottom, #070329, #1e0e48, #3f2875);
    background-size: contain, cover;
    background-position: top center, center;
    background-repeat: no-repeat, no-repeat;
}

.sec-hero img {
    margin-top: 50px;
    margin-left: 30px;
}

/* Intro 섹션 */
.sec-intro {
    background-color: #4f3db4; 
    padding: 70px 0; 
}


/* =========================================
   3. 섹션별 스타일 (Session, Details, Apply)
   ========================================= */

/* 설명회 섹션 (민트색 박스) */
.sec-session {
    padding: 80px 0 50px;
    background-color: #fff; 
}

.session-box {
    background-color: #daf4f4; 
    border-radius: 30px;     
    padding: 80px 20px;      
    margin: 0 auto;            
    text-align: center;    
}

.session-box .info-img {
    margin-bottom: 40px; 
}

/* 상세, 일정, 지원 섹션 공통 */
.sec-details, 
.sec-schedule, 
.sec-apply {
    background-color: #ffffff;
    padding: 40px 0;
}

.sec-apply {
    padding: 60px 0 120px;
}

/* 투명 버튼 영역 (필요 시 사용) */
.link-session {
    position: absolute;
    display: block;
    width: 60%;    
    height: 12%;   
    bottom: 10%;   
    left: 50%;
    transform: translateX(-50%);
    cursor: pointer;
    z-index: 10;
}


/* =========================================
   4. 푸터 및 유틸리티
   ========================================= */
.footer-area {
    background-color: #eaeaea;
    padding: 80px 0;
    text-align: center;
}

.social-links {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-bottom: 30px;
}

.social-links img {
    width: 56px;
}

/* 숨김 텍스트 (웹 접근성 준수) */
.blind {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* =========================================
   5. 팝업
   ========================================= */

.stop_scroll {
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: none;
}

.popup_wrap {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background: rgba(0, 0, 0, 0.5);
  z-index: 99;
}

.popup_wrap .popup {
  position: relative;
  width: 36rem;
  margin: 5rem auto;
  text-align: center;
  display: block;
  /*background: url(../assets/images/popup-bg.jpg) no-repeat top center;*/
  background-size: 100% 100%;
  box-shadow: 0px 0px 50px RGBA(255, 255, 255, 0.7);
}

.image-box {
  display: block;
}

@media (max-width: 575.98px) {
  .popup_wrap .popup {
    width: calc(100% - 40px) !important;
  }
}

/* =========================================
   5. 반응형 (Media Queries)
   ========================================= */

/* 노트북 및 작은 PC */
@media screen and (max-width: 1400px) {
    .sec-hero img {
        max-width: 75%;
        margin-top: 20px;
        margin-left: 0;
    }
}

/* 태블릿 */
@media screen and (max-width: 1024px) {
    .inner {
        padding-left: 20px;
        padding-right: 20px;
    }
    .sec-hero img {
        max-width: 50%;
        margin-top: 0;
    }
}

/* 모바일 */
@media screen and (max-width: 768px) {
    
    /* Hero: 모바일에서는 높이 고정 및 배경 꽉 채우기 */
    .sec-hero {
        height: 500px;
        background-size: cover;
    }
    .sec-hero img {
        max-width: 60%;
        margin-top: 0;
    }

    /* 여백 및 패딩 조정 */
    .sec-intro { padding: 36px 0; }
    .sec-session { padding: 30px 0 20px; }
    .session-box { padding: 50px 40px; border-radius: 15px; }
    
    .sec-details, 
    .sec-schedule, 
    .sec-apply { padding: 20px 0; }
    .sec-apply { padding: 20px 0 40px; }

    /* 푸터 및 버튼 사이즈 조정 */
    .footer-area { padding: 40px; }
    .social-links img { width: 33px; }
    
    .btn-apply img { width: 80%; }
    .btn-main-apply img { width: 60%; }
}
