@charset "utf-8";
/* ======= header ======= */
.header {
    background-color: var(--black);
    position: relative;
    width: 100%;
    z-index: 101;
    margin: 0 auto;
    height: 90px;
}
.header.sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;  /* 또는 width: 100%; */
  z-index: 101;
}

.header .container {
  padding: 24px 120px;
  justify-content: space-between;
  width: 100%;
  margin: 0 auto;
}
.header .container .logo{
  margin: 0;
  padding: 0;
  line-height: 0;
  font-size: 0;   
  display: inline-block;
}
.header .container .logo a{
  display: inline-block;
  vertical-align: top;

}
.header .container .logo a img{
  display: block;
  height: 32px; 
  width: auto;
}
.header .container .menu{
  min-width: 0px;
  width: 100%;
  gap: 48px;
  list-style: none;
  padding: 0;
  height: 40px;
}
.header .container .menu li {
    position: relative; /* ::after의 기준이 될 부모 */
    /* padding: 0 15px; */
}

.header .container .menu li a {
    padding: 0 20px;
    font-size: 1.15em;
    letter-spacing: -0.05em;
    color: #fff;
    text-decoration: none;
    position: relative; /* ::after의 기준 */
    display: inline-block;
    transition: font-size 0.5s, font-weight 0.5s;
    font-family: pretendard-semiBold;
}

/* ::after 밑줄 효과 */
.header .container .menu li a::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background-color: var(--red);
    transition: width 0.4s ease;
}

/* hover 시 변화 */
.header .container .menu li a:hover {
    font-weight: 700;
    font-size: 1.2em;
    padding-bottom: 10px; /* 밑줄 아래 간격 */
}

/* 밑줄 width 확장 */
.header .container .menu li a:hover::after {
    width: 100%;
}
.header .container .sns{}
.header .container .sns ul{}
.header .container .sns ul li {
    position: relative;
    background-color: #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    margin: 0 9px;
    overflow: hidden;
}

.header .container .sns ul li a {
    display: block;
    width: 100%;
    height: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65%;
    transition: all 0.3s ease;
}

/* 기본 아이콘 */
.youtube {
  background-image: url('../images/youtube.png');}
.instagram { background-image: url('../images/instagram.png'); }
.naverband { background-image: url('../images/naverband.png'); }

/* 호버 시 다른 이미지 + 확대 */
.youtube:hover {
    background-image: url('../images/youtube_hover.png');
}
.instagram:hover {
    background-image: url('../images/instagram_hover.png');
}
.naverband:hover {
    background-image: url('../images/naverband_hover.png');   
}
.header .container .sns ul li a .sns-icon{
    position: absolute;
    width: 2em;
    top: 5px;
    left: 5px;
}
/* ======= main ======= */
.main{ 
    /* padding-top: 125px; */
    overflow: hidden;
}
/* ====== visual ====== */
/* ====== visual ====== */
.visual {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #000;
}

/* 유튜브 영상 */
.youtube-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

/* 반응형 커버 */
.youtube-bg iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 177.78vh; /* 16:9 비율 */
  height: 100vh;
  min-width: 100vw;
  min-height: 56.25vw;
  border: none;
}

/* 텍스트 (공통) */
.visual .visual-wrap-box {
  position: absolute;
  left: 50%;
  top: 53%;
  transform: translate(-50%, -50%);
  z-index: 5;
  width: 100%;
  text-align: center;
  color: #fff;
}

/* PC용 텍스트 */
.pc-only .txt1 {
  font-family: Kanit-medium;
  font-size: 8rem;
  font-weight: 400;
  line-height: 100%;
  display: block;
}

.pc-only .txt2 {
  font-family: 'SUIT', sans-serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 100%;
  margin-top: 2rem;
  display: block;
}

/* 모바일용 텍스트 */
.mobile-only .txt1 {
  color: #fff;
  text-align: center;
  font-family: 'SUIT', sans-serif;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: normal;
  display: block;
}

.mobile-only .txt2 {
  color: #fff;
  text-align: center;
  font-family: Kanit-medium;
  font-size: 3rem;
  font-weight: 400;
  line-height: normal;
  display: block;
  margin-top: 1rem;
}

/* 반응형 표시 제어 */
@media (max-width: 1024px) {
  .pc-only {
    display: none !important;
  }
}

.mobile-only {
  display: none !important;
}

@media (max-width: 1024px) {
  .mobile-only {
    display: block !important;
  }
}
/* rolling event */
.marquee-container {
    background-color: var(--red);
    overflow: hidden;
    white-space: nowrap;
    z-index: 7777;
    /* position: fixed;
    left: 0; */
    width: 100%;
    height: 50px;
    display: flex;
    align-items: center;
  }
  
  .marquee-container .marquee-content {
    display: inline-block;
    animation: marquee 15s linear infinite;
  }
  
  .marquee-container .marquee-content .marquee-text {
    color: var(--white);
    font-family: Kanit-Bold;
    font-weight: 700;
    display: inline-block;
    font-size: 24px;
    margin-right: 40px;
  }
  
  @keyframes marquee {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(-50%);
    }
  }
/* ====== about-me =====*/
.about-me{
  background-color:#FFFEFB;
  padding:72px 0;
}

.about-me .container{
  position: relative;
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
  padding: 0 190px;          
  box-sizing: border-box;
}
.section-head{
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  gap:65px;
  margin-bottom:70px;
}
.section-head .section-title{
  font-size:35px;
  font-family: Kanit-Bold;
  font-weight: 700;
  color:#3d3d3d;
  letter-spacing:.2px;
  text-align:center;
}
.section-head .section-title span{
  font-size: 40px;
}
.title0::after{
  content:"Coach Information";
  display:block;
  margin-top:4px;
  font-family:"pretendard-medium";
  font-size:20px;
  font-weight:500;
  opacity:.75;
  text-align:center;
}
/* 본문 3열(좌 텍스트 / 세로선 / 우 이미지) 그리드 */
.about-grid{
  display:grid;
  grid-template-columns: 1fr 1px 520px; /* 필요 시 우측폭 조정 */
  gap:40px;
  align-items:center;
}

/* 세로 구분선 */
.v-divider{
  background: rgba(0,0,0,.25);
  width:1px;
}

/* 좌측 영역 */
.about-left{
  display: flex;
  padding-right: 8px;
  flex-direction: column;
}
.name-box{
  display: flex;
  flex-direction: column;
}
.name{
  line-height:0.05;
  display: inline-block;
}
.en-name{
  display:inline-block;
  color:var(--red);           /* 빨강 */
  text-transform:uppercase;
  font-family: Kanit-Bold;
  font-weight: 700;
}
.name1{ font-size:98px; }
.name2{
   font-size:50px; 
   font-family: Kanit-Bold;
   font-weight: 700;
   line-height: 0;
   position:absolute;
   top: 14px;
   left: 175px;
}
.name3{
   font-size:88px;
  }
.coach-name .kr{
  font-size:36px;
  font-weight:800;
  color:#222;
}

/* 블록 타이틀 & 리스트 */
.bio{ margin-bottom:22px; }
.awards{ margin-top:14px; }

.coach-info{
  padding-top: 20px;
}
.bio-title{
  padding-left: 18px;
  font-size:20px;
  font-weight:800;
  color:var(--red);
  margin: 12px 0 8px;
}
.bio-list{
  margin:0;
  padding-left:18px;
  line-height:1.9;
  color:#222;
  white-space: nowrap;
}
.bio-list span{
  font-weight: 700;
  padding-right: 10px;
}

/* 우측 이미지 */
.about-right{ 
	display:flex; 
	justify-content:flex-start; 
}
.coach-photo{
  position:relative;
  width:100%;
  /* aspect-ratio: 3 / 4;*/        /* 이미지 비율 (원본 비슷하게) */
  background:#e0e7ff;           /* 요구사항: 임의의 배경색 */
  border-radius:4px;
  overflow:hidden;
}
.coach-photo img{
  min-width: 520px;
  width: 100%;
  object-fit:cover;
  display:block;
}

/* ‘수상 더보기’ 버튼 (이미지 좌하) */
.more-awards{
  position:absolute;
  right:-5px;
  bottom:16px;
  background-color:var(--red);
  font-weight:700;
  text-decoration:none;
  display:inline-block;
  box-shadow:0px 3px 10px rgb(155 1 1 / 90%);
  padding:30px 220px;
}
.more-awards a{
  position: absolute;
  font-size: 22px;
  color:#fff;
  top: 18px;
  left: 45px;
}


/* ======= main bg ======= */
.main-bg{
  padding: 30px 0;
  position: relative;
  width: 100%;
  height: 30.5vh;
  overflow: hidden;
}
.main-bg .ba-wrapper{
  position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: -1;
    pointer-events: none;
}
.main-bg .bg{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    /* 이미지 사이즈 2000 */
    background: url(../images/bg-01.jpg) no-repeat center;
    background-size: cover;
    z-index: -1;
}

/* ======= Facility ======= */

.facilty{
  background-color: #FFFEFB;
  padding:100px 0;
  overflow: hidden;
  position: relative;
  width: 100%;
  overflow: hidden;
}

.facilty .container{
  max-width: 100%;
  width: 100%;
  margin: 0 auto;  
}
.title01::after{
  content:"Facility Information";
  display:block;
  margin-top:4px;
  font-family:"pretendard-medium";
  font-size:20px;
  font-weight:500;
  opacity:.75;
  text-align:center;
}
.section-head p{
  text-align: center;
  line-height: 1.5;
  font-size: 21px;
  letter-spacing: -1.55px;
}
.section-head p span{
  font-size: 22px;
}
/* img 무한 스크롤 */
.facility-marquee{
  position: relative;
  margin-top: 20px;
  padding: 45px 20px ;
  border-top: 1px solid rgb(14 14 14 / 50%);
  border-bottom: 1px solid rgb(14 14 14 / 50%);
  /* box-shadow: 0 6px 20px rgba(0 0 0 / .5); */
  backdrop-filter: blur(35px);
  overflow: hidden;
  display: flex;
  /* -webkit-mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%); */
}

/* ============ 트랙(ul) ============ */
.facility-marquee .marquee__group{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: var(--gap);
  flex: 0 0 auto; /*줄바꿈/축소 방지*/
  width: max-content;
  animation: facility-scroll var(--duration) linear infinite;
  will-change: transform;
}

.facility-marquee .marquee__group:nth-child(2){
  margin-left: 50px;
}

/* hover 시 트랙 정지 */
.facility-marquee:hover .marquee__group{
  animation-play-state: paused;
}

/* 스크롤 애니메이션 */
@keyframes facility-scroll{
  from{ transform: translateX(0); }
  to  { transform: translateX(-100%); }
}

/* ============ 타일(배경이미지) ============ */
.tile{
  flex: 0 0 auto;
  min-width: 400px;        
  height: 400px;
  overflow: hidden;
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform .35s ease;
}
.tile-img01{
  background-image: url(../images/img01.jpg);
}
.tile-img02{
  background-image: url(../images/img02.jpg);
}
.tile-img03{
  background-image: url(../images/img03.jpg);
}
.tile-img04{
  background-image: url(../images/img04.jpg);
}
.tile-img05{
  background-image: url(../images/img05.jpg);
}
.tile:hover{ transform: scale(1.05); }

.facility-marquee .more:hover{ opacity: 1; }

/* 접근성: 모션 최소화 선호 시 애니메이션 끄기 */
@media (prefers-reduced-motion: reduce){
  .facility-marquee .marquee__group{ animation: none; transform: none; }
}

/* ======= map ======= */
.map{
  background-color: #f8f6f0;
  padding-top: 60px;
  padding-bottom: 60px;
}
.map .container{
  max-width: 100%;
  width: 100%;
  margin: 0 auto;  
}
.root_daum_roughmap {
  width: 100% !important;
  position: relative;
}
.title02::after{
  content:"Location Information";
  display:block;
  margin-top:4px;
  font-family:"pretendard-medium";
  font-size:20px;
  font-weight:500;
  opacity:.75;
  text-align:center;
}
.way_cont {
  margin:6rem auto;
  border-bottom: 1px solid #e2e2e2;width:80%;
}
.way_cont h3 {
  font-size:2rem;
  color:#222222;
  margin-bottom: 2.5rem;
  font-weight: bold;
}
.way_cont .lo_num {
  padding-top: 2.5rem;
  border-top: 2px solid #000000;
}
.way_cont .lo_num ul {}
.way_cont .lo_num ul li{
  font-size: 1.25rem;
  color: #242424;
  line-height: 2;
  display: flex;
  justify-content: flex-start;
  margin-bottom: 1rem;
}
.way_cont .lo_num ul li .lo-sub{
  font-size: 1rem;
  color: #8f8d8d;
  display: flex;
}
.way_cont .lo_num ul li span{
  font-size: 1.15rem;
  display: inline-block;
  width: 16rem;
  font-weight: 500;
}
.way_cont .lo_num ul li i{
 margin-top: 11px;
}
.way {
  margin-top:10rem;
}
.way h3 {
  font-size:2rem;
  color:#222222;
  margin-bottom: 4rem;
}
.way .cont {
  padding: 2rem 0;
  border-top: 2px solid #000000;
}
.way .cont h4 {
  font-size: 1.3rem;
  color: #222222;
  margin-bottom: 1.5rem;
  font-weight: bold;
}
.way .cont h4:not(:first-of-type) {
   margin-top: 5rem;
}
.way .cont p {
  font-size: 1.25rem;
  line-height: 2;
  display: list-item;
  list-style:disc;
  list-style-position:inside;
}
.root_daum_roughmap .map {
    height: 100%;
    position: relative;
    margin: 0 auto;
    width: 80% !important;
}
.root_daum_roughmap .border1 {
    border: 0 !important;
}
.wrap_controllers{
	display:none;
}
/* ======= notice ======= */

.board-wrap {
  max-width: 100%;
  margin: 0 auto;
}
.board-box {
  max-width: 75rem;
  padding-top: 15rem;
  margin: 0 auto;
}

.tit-wrap {
  display: flex;
}

.tit-wrap h3 {
  padding-left: 3rem;
  font-size: 2rem;
  color: #333333;
  font-weight: 600;
  margin-bottom: 20px;
  background: url(../images/ttc-small.png) no-repeat left center;
}

/* ======= footer ======= */
.footer {
  background-color: #131313;
  padding: 1.5em 0;
}
.footer .container{
  position: relative;
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
}

/* footer top */
.footer .footer-top {
  /* 기존 스타일 유지 */
}

.footer .footer-top ul {
  display: block;
}

.footer .footer-top ul li img {
  padding-bottom: 10px; /* container padding 과 같은 값 */
}

/* footer bottom */
.footer .footer-bottom {
  border-top: 1.3px solid white;
  padding-top: 1.5em;
}

.footer .footer-bottom ul li {
  color: #eeeeee;
  text-align: center;
  font-family: Pretendard-Regular;
  line-height: 1.85em;
  font-size: 0.93em;
  letter-spacing: -0.5px;
}

.footer .footer-bottom ul li .f-info {
  font-weight: 700;
  font-family: Pretendard-Bold;
}

/* design info */
.footer .design-info {
  padding-top: 1em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
  padding: 0px 100px;
  font-size: 0.75em;
  color: #8f8d8d;
}

.footer .design-info .design-info_left p {
  text-align: left;
}

.footer .design-info .design-info_right p {
  text-align: right;
}

/* === Modal === */
/* 초기 상태: 전부 숨김 */
.window-mask,
.window-content,
.window-content-close { display: none; }

/* 열림 상태 토글용 클래스 */
.modal-open .window-mask,
.modal-open .window-content,
.modal-open .window-content-close { display: block; }

/* 마스크 */
.window-mask{
  position:fixed; inset:0;
  background:rgba(0,0,0,.5);
  z-index: 99998;
}

/* 모달 박스 */
.window-content{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  background:#fff;
  padding:20px;
  border-radius:10px;
  box-shadow:0 20px 40px rgba(0,0,0,.4);
  z-index: 99999;
  width:min(850px, 90vw);
  max-height:95vh;
  overflow:auto;
}
.window-content img{
  width:100%; 
  height:auto;
  display:block;
}

/* 닫기 버튼: 뷰포트 기준 고정 */
.window-content-close {
  position: fixed;
  top: 10vh; 
  right: 10vw;
  font-size: 40px;
  cursor: pointer;
  z-index: 100000;
  color: #ffffff;
  background: none;
  border: none;
  appearance: none;
  -webkit-appearance: none;
}

/* 모달 열렸을 때 배경 스크롤 잠금 (선택) */
.modal-open { overflow: hidden; }
.pop-bg{
  background-color: rgba(0,0,0,.25);
}