@charset "utf-8";

/* 섹션 공통 */
.section{position:relative}
.section-pad{padding:96px 0}
.section-alt{padding:96px 0;background:#f6f7fb}
.inner{max-width:1180px;margin:0 auto;padding:0 16px}
.sec-title{text-align:center;font-size:clamp(22px,3.8vw,36px);margin:0 0 28px;font-weight:800}

/* 메인 비주얼 */
/* 섹션 배경과 위아래 배치 */
#visual{
  position:relative;
  
  padding-top:78px;            /* 헤더 높이만큼 */
  overflow:hidden;
}
@media (max-width:1024px){ #visual{ padding-top:70px; } }

/* 상단 텍스트 (고정 블록) */
#visual .visual-head{
	background-size:cover; background-position:center; background-repeat:no-repeat;
	background-image:url('../img/main/bg_visual.jpg');
	text-align:center;
	padding:8vh 16px 7.125vh;     /* 위 여백 넉넉히 */
	color:#222;                 /* 이미지처럼 진한 회색 톤 */
}

/* 큰 제목: "왜?" */
#visual .visual-head .vh-q{
  margin:0 0 1.5rem;
  font-weight:900;
  line-height:1;
  letter-spacing:-0.02em;
  /* 이미지 느낌의 큼직한 사이즈 */
  font-size:clamp(56px, 9vw, 150px);
  /* 아주 은은한 그림자(가독성 보강) */
  text-shadow:0 1px 0 rgba(0,0,0,.04);
}

/* 두 줄 카피 */
#visual .visual-head .vh-line{
  margin:.2em 0;
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1.25;
  /* 이미지처럼 두껍고 큼직하게 */
  font-size:clamp(18px, 3.2vw, 44px);
  color:#2f2f2f;
  text-shadow:0 1px 0 rgba(0,0,0,.04);
}

/* 하단 텍스트 (고정 블록) */
#visual .visual-tail {
	background-size:cover; background-position:center; background-repeat:no-repeat;
	background-image:url('../img/main/bg_visual1.jpg');
  text-align:center;
  padding:18vh 16px 18.125vh;     /* 위 여백 넉넉히 */
  color:#191919;                 /* 이미지처럼 진한 회색 톤 */
}

/* 큰 제목: "?" */
#visual .visual-tail .vh-q{
	
  margin:0 0 1.5rem;
  font-weight:700;
  line-height:1;
  letter-spacing:-0.02em;
  /* 이미지 느낌의 큼직한 사이즈 */
  font-size:clamp(18px, 3.2vw, 32px);
  /* 아주 은은한 그림자(가독성 보강) */
  text-shadow:0 1px 0 rgba(0,0,0,.04);
}

/* 두 줄 카피 */
#visual .visual-tail .vh-line{
  margin:.2em 0;
  font-weight:900;
  letter-spacing:-0.02em;
  line-height:1.25;
  /* 이미지처럼 두껍고 큼직하게 */
  font-size:clamp(24px, 4vw, 82px);
  color:#2f2f2f;
  text-shadow:0 1px 0 rgba(0,0,0,.04);
}

#visual .visual-tail .vh-line2 {
  margin:.2em 0;
  font-weight:700;
  /* 이미지처럼 두껍고 큼직하게 */
  font-size:clamp(16px, 3.2vw, 38px);
}

/* 스테이지는 넓게(원본 960이 가운데 꽉 차고, 좌우 반쯤 보이도록) */
#visual .visual-stage{ position:relative; max-width:1280px; margin:0 auto; padding:0 24px; }

/* Swiper: 이 컨테이너 폭이 960보다 넓기 때문에 좌우 반쯤이 자연히 보임 */
#visual .visual-swiper{ position:relative; overflow:visible; }
#visual .visual-swiper .swiper-wrapper{ margin:0; }

/* 각 슬라이드 = 고정폭 960px (PC), 가운데 정렬 */
#visual .visual-swiper .swiper-slide{
  width:960px !important;              /* ★ 핵심: PC에서 원본폭 그대로 */
  display:flex; align-items:center; justify-content:center;
  margin:0 !important; border:0; border-radius:0;
  transition:transform .6s ease, filter .6s ease;
  filter:brightness(.86); 
}

/* 슬라이드 이미지: 원본 960×480 표시(크롭/늘림 X) */
#visual .visual-swiper .swiper-slide img{
  width:960px; height:480px; display:block;
  object-fit:none; object-position:center center;  /* 원본 그대로 */
}

/* 활성 슬라이드 강조 */
#visual .visual-swiper .swiper-slide-active{ filter:brightness(1); transform:scale(1); z-index:2; }

/* 네비/페이지네이션 */
#visual .swiper-btn{
  position:absolute; top:50%; width:44px; height:44px; margin-top:-22px;
  border:0; border-radius:999px; background:rgba(255,255,255,.85);
  box-shadow:0 2px 10px rgba(0,0,0,.15); cursor:pointer; z-index:4;
}
#visual .swiper-btn.prev{ left:-8px; }
#visual .swiper-btn.next{ right:-8px; }
#visual .swiper-pagination{ bottom:14px !important; z-index:4; }

/* 반응형: 화면이 960보다 좁아지면 슬라이드 폭을 화면 폭에 맞춤 */
@media (max-width:1024px){
  #visual .visual-stage{ padding:0 16px; }
  #visual .visual-swiper .swiper-slide{ width:90vw !important; }
  #visual .visual-swiper .swiper-slide img{
    width:100%; height:auto; object-fit:contain;
  }
}
@media (max-width:640px){

	#visual .visual-head{ padding:5vh 14px 1.8vh; }
	#visual .vh-q{ font-size:clamp(44px, 12vw, 96px); }
	#visual .vh-line{ font-size:clamp(16px, 4.2vw, 26px); }

	#visual .swiper-btn{ display:none; }
	#visual .visual-swiper .swiper-slide{ width:88vw !important; }
	
	#visual .visual-tail {
	  padding:100px 16px;
	}
}



/* 영역 */
/* 영역 */
#features.section-features{
  background:#f8f1e3;             /* 연한 베이지 배경 */
  padding:120px 0;
  color:#222;
}
#features .inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}

/* 헤더 카피 */
#features .feat-head .eyebrow{
  font-size:16px; line-height:1.6; color:#6d6d6d; margin:0 0 10px;
}
#features .feat-head .title{
  font-size:18px; line-height:1.35; margin:0 0 50px; font-weight:700;
}
#features .feat-head .title strong{ font-weight:900; font-size:45px; }

/* 2열 그리드 */
#features .grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:35px 50px;
}

/* ───────── 카드 공통 ───────── */
#features .card{
  display:flex; align-items:stretch; flex-wrap:nowrap;
  min-height:400px;
  border-radius:10px; overflow:hidden;
  background:transparent;          /* ★ 부모 배경 제거 (비침 방지) */
  padding:0; gap:0;
  color:#fff;
}

/* 좌측 텍스트 60% (여기에만 배경 적용) */
#features .card .card-body{
  flex:0 0 60%;
  background:#39a3d3;             /* ★ 카드 색상은 여기서만 */
  box-sizing:border-box;
  padding:50px 25px 30px;
  display:flex; flex-direction:column; gap:12px;
}

/* 제목 크게 */
#features .card .card-body h3{
  margin:0 0 8px;
  font-weight:900;
  font-size:35px;                  /* 업 */
  line-height:1.15;
  letter-spacing:-0.01rem;
}
#features .card .card-body p{ font-size:15px; line-height:1.5; letter-spacing:-0.01rem; }

/* 우측 이미지 40% + 1px 겹치기(틈 제거) */
#features .card .card-media{
  flex:0 0 calc(40% + 1px);        /* ★ 1px 넓게 */
  margin-left:-1px;                /* ★ 왼쪽으로 1px 당겨 겹침 */
  position:relative; overflow:hidden;
  background:#fff; line-height:0;
}
#features .card .card-media img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .35s ease;
}
#features .card:hover .card-media img{ transform:scale(1.06); }

/* ───────── 프로필 카드 ───────── */
#features .profile{
  background:#004fb8;
  border-radius:10px;
  color:#fff;
  display:flex; align-items:center;
}
#features .profile .profile-inner{
  display:grid; grid-template-columns:230px 1fr;
  gap:18px; align-items:center; padding:26px 22px;
}


#features .profile .logo img{ width:100%; height:auto; display:block; }
#features .profile .badge{
  display:inline-block; 
  font-size:15px; margin:0;
}


/* 새로 추가: 텍스트 + 사진 헤더 */
#features .profile .txt-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
/* 텍스트 쪽 */
#features .profile .txt-main{ flex:1 1 auto; }

/* 동그란 사진 */
#features .profile .photo{
  flex:0 0 auto;
}
#features .profile .photo img{
  width:90px;
  height:90px;
  border-radius:50%;
  object-fit:cover;
  border:3px solid rgba(255,255,255,.8);
  box-shadow:0 4px 10px rgba(0,0,0,.25);
}

#features .profile h3{ font-size:32px; margin:0 0 15px; font-weight:900; }
#features .profile .desc{ margin:0 0 15px; line-height:1.6; font-size:15px; opacity:.95; word-break:keep-all; }
#features .profile .btn_teacher{
  display:inline-block; padding:10px 16px; border:1px solid rgba(57,163,211,.7);
  border-radius:8px; color:#fff; text-decoration:none; font-weight:700;
  font-size:15px;
  transition:all .3s;
  line-height:1;
}

/* 버튼 안 아이콘 정렬 및 효과 */
#features .profile .btn_teacher i {
  margin-left:6px;
  font-size:16px;
  vertical-align:middle;
  transition:transform .25s ease;
}
#features .profile .btn_teacher:hover{ background:rgba(57,163,211,1);  }

#features .profile .btn_teacher:hover i {
  transform:translateX(3px);
}

/* ───────── 반응형 ───────── */
@media (max-width:1024px){
  #features .grid{ grid-template-columns:1fr; }
  #features .card .card-body h3{ font-size:28px; }
}
@media (max-width:768px){
  #features .card{ flex-direction:column; }
  #features .card .card-media{
    flex:0 0 auto; width:100%; height:400px;
    margin-left:0;                 /* ★ 겹침 보정 원복 */
    order:-1;                      /* 이미지 상단 */
  }
  #features .card .card-body{
    flex:0 0 auto; width:100%;
    padding:20px 18px;
  }
}
@media (max-width:640px){
  #features{ padding:50px 0 70px; }
  #features .profile .profile-inner{ grid-template-columns:80px 1fr; }
  
  #features .profile .txt-head{
    align-items:flex-start;
    gap:12px;
  }
  #features .profile .photo img{
    width:70px;
    height:70px;
  }
  #features .profile h3{ font-size:26px; }
  #features .profile .desc{ font-size:13px; }
}


/* 섹션 베이스 */
#insurance.ins-hero{
  position:relative; overflow:hidden; color:#fff;
  background-image:url('../img/main/bg_insurance.jpg');  
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}


/* 레이아웃 */
#insurance .ins-inner{
  position:relative; z-index:1;
  max-width:1280px; height:480px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns: 520px 1fr; align-items:center; gap:24px;
}

/* 좌측 인물 PNG */
#insurance .ins-visual{
  position:relative; height:100%;
  display:flex; align-items:flex-end; justify-content:center;
}
#insurance .ins-visual img{
  height:90%; width:auto; display:block;
  transform:translateX(-6%);
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.35));
}

/* 우측 텍스트 */
#insurance .ins-copy{ text-align:left; padding-right:24px; }
#insurance .ins-copy .eyebrow{ margin:0 0 6px; font-size:38px; font-weight:300; opacity:.95; }
#insurance .ins-copy .headline{ margin:0 0 35px; font-size:46px; font-weight:700; line-height:1.1; letter-spacing:-.01em; }
#insurance .ins-copy .desc{ margin:0; font-size:16px; line-height:1.8; opacity:.95; word-break:keep-all; }
#insurance .ins-copy .desc strong{ font-weight:700; }

/* 반응형 */
@media (max-width:1200px){
  #insurance .ins-inner{ grid-template-columns:460px 1fr; height:440px; }
  #insurance .ins-copy .headline{ font-size:42px; }
}
@media (max-width:992px){
  #insurance .ins-inner{ grid-template-columns:1fr; height:auto; padding:28px 16px 32px; }
  #insurance .ins-visual{ height:280px; justify-content:center; margin-bottom:10px; }
  #insurance .ins-visual img{ height:100%; transform:none; }
  #insurance .ins-copy{ text-align:center; padding-right:0; }
  #insurance .ins-copy .eyebrow{ font-size:20px; }
  #insurance .ins-copy .headline{ font-size:36px; }
}
@media (max-width:560px){
  #insurance .ins-visual{ height:230px; }
  #insurance .ins-copy .headline{ font-size:30px; }
  #insurance .ins-copy .desc{ font-size:14px; }
}


/* INFO */
#info.info-section{
  background:#fff; /* 연한 베이지 */
  padding:80px 0 90px;
  color:#434343;
}
#info .inner{ max-width:1200px; margin:0 auto; padding:0 24px; }

#info .info-info { line-height:1.5; font-size:clamp(12px, 4.2vw, 18px); margin-bottom:30px; word-break:keep-all;}
#info .info-info.info-mt { margin-top:30px; margin-bottom:0; }

#info .info-title{
  font-size:40px; font-weight:900; letter-spacing:-.02em;
  margin:0 0 20px; color:#1e1e1e;
}









/* FAQ */
#faq.faq-section{
  background:#f6efdf; /* 연한 베이지 */
  padding:120px 0 90px;
  color:#222;
}
#faq .inner{ max-width:1200px; margin:0 auto; padding:0 24px; }

#faq .faq-info { line-height:1.5; font-size:clamp(14px, 4.2vw, 20px); margin-bottom:30px; word-break:keep-all;}
#faq .faq-info.info-mt { margin-top:30px; margin-bottom:0; }

#faq .faq-title{
  font-size:44px; font-weight:900; letter-spacing:-.02em;
  margin:0 0 28px; color:#1e1e1e;
}

/* 리스트 */
#faq .faq-list{ list-style:none; margin:0; padding:0; }
#faq .faq-item{ border-top:1px solid rgba(0,0,0,.08); }
#faq .faq-item:last-child{ border-bottom:1px solid rgba(0,0,0,.08); }

/* 질문 버튼 */
#faq .faq-q{
  position:relative; width:100%;
  text-align:left; background:#f6efdf; border:0;
  font-size:18px; line-height:1.6; font-weight:700; color:#2a2a2a;
  padding:18px 56px 18px 16px; cursor:pointer;
}
#faq .faq-q:hover{ background:rgba(255,255,255,.5); }

/* 플러스 버튼 박스 */
#faq .faq-q .ico{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border:1px solid rgba(0,0,0,.18);
  border-radius:4px; background:#fff; display:inline-flex; align-items:center; justify-content:center;
}
#faq .faq-q .ico i{ font-size:16px; }

/* 답변 */
/* 답변: jQuery가 애니메이션 제어하므로 hidden은 쓰지 않음 */
#faq .faq-a{
  display:block;
  overflow:hidden;            /* 애니메이션 중 넘침 숨김 */
  padding:30px 15px;     /* 기본 패딩 */
  background:#fff;
  opacity:1;                  /* 열린 상태 기준 값 */
}
#faq .faq-a p{ margin:0; font-size:16px; line-height:1.8; color:#444; }



/* 리뷰 */
/* 섹션/헤더 */
#reviews.reviews{ background:#e7f5ff; padding:100px 0px 120px; color:#222; overflow:hidden; }
#reviews .inner{ max-width:1280px; margin:0 auto; padding:0 24px; }
#reviews .head{
  text-align:left;
  margin-bottom:28px;
  padding-left:24px; /* 필요시 살짝 들여쓰기 */
}
#reviews .head h2{ margin:0 0 6px; font-size:40px; font-weight:900; color:#0d47a1; letter-spacing:-.01em; }
#reviews .head h2 strong{ color:#000; }
#reviews .head p{ margin:0 0 50px; color:#557; font-size:14px;}

/* 풀 블리드 행 */
#reviews .marquee-row{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow:hidden;
  padding:0 24px;
}
#reviews .marquee-row + .marquee-row{ margin-top:22px; }

/* 마퀴 기본 */
#reviews .marquee{
  --gap: 10px;                 /* 카드 간격 */
  --dur: 40s;                  /* JS에서 실제 길이에 맞춰 덮어씀 */
  position:relative;
  width:100%;
}
#reviews .marquee.reverse .marquee-track{ animation-direction: reverse; }

#reviews .marquee-track{
  display:flex;
  gap: var(--gap);
  will-change: transform;
  animation: marquee var(--dur) linear infinite;
}
#reviews .marquee-track.paused{ animation-play-state: paused; }

#reviews .item{ flex: 0 0 auto; width:330px; }
#reviews .item img{
  display:block; width:100%; height:auto; 
}

/* 반응형 */
@media (max-width:1200px){
  #reviews .item{ width:320px; }
}
@media (max-width:768px){
  #reviews .head h2{ font-size:32px; }
  #reviews .marquee{ --gap: 14px; }
  #reviews .marquee-row{ padding:0 16px; }
  
  #reviews .item{ width:280px; }
}

/* 모션 최소화 환경 */
@media (prefers-reduced-motion: reduce){
  #reviews .marquee-track{ animation-duration: 1ms; }
}

/* 키프레임: 트랙 전체를 한 폭 만큼 왼→오(또는 반대)로 이동 */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(var(--move)); } /* 예: -2400px 이런식으로 들어감 */
}



/* 강습신청 전체 배경 영역 */
.lesson-apply-hero {
  position: relative;
  background: #f5efe0;   /* 전체 배경색 */
  overflow: hidden;
  padding: 80px 0;       /* 위/아래 여백 */
}

/* 가운데 폼 & 텍스트를 위한 가운데 박스 */
.lesson-apply-inner {
  position: relative;
  z-index: 1;            /* 배경 이미지보다 위에 오도록 */
  max-width: 1200px;
  margin: 0 auto;
}

/* 왼쪽 어린이 이미지 */
.lesson-apply-hero::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 480px;                 /* 필요에 따라 조정 */
  max-width: 32%;
  height: 100%;
  background: url("../img/main/kids2.png") no-repeat left bottom;
  background-size: contain;
  pointer-events: none;         /* 클릭 안 잡게 */
}

/* 오른쪽 어린이 이미지 */
.lesson-apply-hero::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 520px;                 /* 필요에 따라 조정 */
  max-width: 34%;
  height: 100%;
  background: url("../img/main/kids3.png") no-repeat right bottom;
  background-size: contain;
  pointer-events: none;
}

/* 가운데 폼이 너무 좌우에 붙지 않도록 여백 */
.lesson-apply-inner {
  padding: 0 120px;   /* 좌우 여백: 이미지가 차지하는 만큼 (조정 가능) */
}

@media (max-width: 2000px) {
	.lesson-apply-inner {
	  padding: 0 200px; 
	}
}

@media (max-width: 1680px) {
	.lesson-apply-inner {
	  padding: 0 300px; 
	}
	
	 .lesson-apply-hero::before {
		width: 400px;
		max-width: 40%;
	  }
	  .lesson-apply-hero::after {
		width: 400px;
		max-width: 40%;
	  }
}

/* 반응형: 태블릿 이하에서는 한쪽/둘 다 숨기기 */
@media (max-width: 1024px) {
  .lesson-apply-inner {
    padding: 0 150px;
  }
  
  .lesson-apply-hero::before {
	width: 200px;
  }
  .lesson-apply-hero::after {
	width: 200px;
  }
 
}

@media (max-width: 768px) {
  .lesson-apply-hero {
    padding: 40px 0;
  }
  .lesson-apply-inner {
    padding: 0 16px;
  }
  .lesson-apply-hero::before,
  .lesson-apply-hero::after {
    display: none;  /* 모바일에서는 배경이미지 감추기 */
  }
}
