@charset "utf-8";



.hero-wrapper {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: 1;
    overflow: hidden;
}
.hero-cover {
    width: 100%;
    height: 100%;
}

.hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-title {
    position: absolute;
    top: 26%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
    z-index: 2;
    padding: 0 20px;
}
.hero-title__sub {
    font-size: clamp(16px, 1.86vw, 22px);
    font-weight: 400;
    margin-bottom: 12px;
    color: #333;
}

.hero-title__main {
    font-size: clamp(40px, 6.78vw, 80px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #000;
}
@media (max-width: 768px) {
    .hero-title{
        width: 90vw;
    }
    .hero-title__main {
        font-size: clamp(40px, 6.78vw, 80px);
    }

}
.hero-scroll-hint {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    backdrop-filter: blur(4px);
}
.hero-scroll-hint img {
    width: 24px;
    height: 24px;
    animation: bounce 2s infinite;
}
.content-wrapper {
    position: relative;
    z-index: 10;
    background-color: #fff;
    min-height: 100vh;
    width: 100%;
}
.section{
    width: 1180px;
    margin: 0 auto;
}
@media (max-width: 1180px){
    .section{
        width: 90vw;
    }
}
.section-about{
    padding: 120px 0 0;
}

.title-group {
    text-align: center;
    max-width: 800px;
    width: 85vw;
    margin: 0 auto;
}
.title {
    font-size: clamp(28px, 5.08vw, 60px);
    font-weight: 700;
    color: var(--black);
    margin-bottom: 12px;
}
.subtitle {
    font-size: clamp(16px, 1.52vw, 18px);
    font-weight: 400;
    color: var(--black);
}
.s1-contents {
    margin-top: 60px;
    display: flex;
    justify-content: center;
}

.content-wrap .img-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.s1-contents .img-cover{
    width: 528px;
}

@media (max-width: 640px) {
    .s1-contents .img-cover{
        width: 80vw;
    }
}


.section-card{
    width: 100%;
    padding: 200px 20px 0;
    position: relative;
}
.section-card .title-group {
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.card-box {
    position: relative;
    max-width: 1544px;
    width: 100%;
    max-height: 1026px;
    background: var(--item-bg);
    border-radius: clamp(20px, 7.45vw + -7.95px, 80px);
    overflow: hidden;
    margin: 0 auto;
}
.card-box img {
    width: 100%;
    height: auto;
    display: block;
    /* 만약 모든 이미지의 비율이 16:9 등으로 일정하다면 설정 */
    /* aspect-ratio: 16 / 9; */
}
@media (max-width: 1580px) {
    .card-box{
        max-width: 1024px;
    }
}




.section-shopping{
    width: 100%;
    padding: 180px 0 0;
    background: linear-gradient(180deg, #FFF 0%, #F5F5F5 100%);
}
.s3-contents .img-cover{
    width: 792px;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}
@media (max-width: 832px) {
    .s3-contents .img-cover{
        width: 100%;
    }
}


.section-guide{
    padding-top: 300px;
    width: 100%;
    overflow: hidden;
}
.section-guide .title-group{
    width: 1180px;
    max-width: none;
    text-align: left;
}
@media (max-width: 1180px) {
    .section-guide .title-group{
        width: 100%;
        padding-left: 20px;
    }
}
/* 슬라이더 전체 간격 */
.mySwiper {
    padding-bottom: 50px;
    overflow: visible;
}





.swiper-slide{
    width: 740px;
}
@media (max-width: 1180px) {
    .swiper-slide{
        width: 530px;
    }
}
@media (max-width: 640px) {
    .swiper-slide{
        width: 80vw;
    }
}

.slide-card .img-box {
    border-radius: clamp(20px, 2.48vw + 10.68px, 40px);
    overflow: hidden;
}



/* 하단 텍스트 영역 */
.slide-card .text-box {
    margin-top: 30px;
    padding: 0 10px;
}

.slide-card .text-box strong {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--black);
}

.slide-card .text-box p {
    font-size: 16px;
    line-height: 1.6;
    color:var(--gray);
    word-break: keep-all;
    display: inline;
}

/* 네비게이션 버튼 커스텀 (화살표 모양) */
.nav-wrapper {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    width: 1180px;
    margin: 80px auto 0;
}
@media (max-width: 1180px){
    .nav-wrapper{
        width: auto;
        padding-right: 20px;
    }
}
.swiper-button-next, .swiper-button-prev {
    position: static; /* 기본 위치 해제 */
    width: 45px;
    height: 45px;
    background: #eee;
    border-radius: 50%;
    color: #000;
}
.swiper-button-next:after, .swiper-button-prev:after {
    font-size: 18px; /* 화살표 크기 */
}

.section-contact{
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding-top: 200px;
}
@media (max-width: 1180px){
    .section-contact{
        padding: 100px 20px 0;
    }
}
.section-contact .title-group{
    flex-shrink: 0;
    width: 350px;
    text-align: left;
}
@media (max-width: 1180px){
    .section-contact{
        flex-direction: column;
    }
    .section-contact .title-group{
        width: auto;
    }
}

.section-contact .title-group .title{
    font-size: clamp(28px, 5.08vw, 60px);
}





.contact-wrap { 
    flex: 1;
    margin: 0 auto; 
}

/* 필드 공통 레이아웃 */
.contact-field {
    position: relative;
    margin-bottom: 20px;
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: all 0.2s ease;
    min-height: 80px;
}

.contact-field--focus,
.contact-field:focus-within {
    border-color: var(--primary-color);
}

/* 인풋 & 라벨 스타일 */
.contact-input {
    width: 100%;
    height: 80px;
    padding: 28px 20px 10px;
    border: none;
    background: transparent;
    font-size: 20px;
    outline: none;
}

/* 1. 기본 상태의 라벨을 위로 올림 */
.contact-field--textarea .contact-label {
    top: 20px; /* 상단 여백 설정 */
    transform: translateY(0); /* 중앙 정렬 해제 */
}

/* 2. 포커스 시 또는 입력 시 위치 유지 (글자 크기만 조절) */
.contact-field--textarea .contact-input:focus + .contact-label,
.contact-field--textarea .contact-input:not(:placeholder-shown) + .contact-label {
    top: 10px; /* 조금 더 위로 올림 */
    font-size: 12px;
}

/* 3. 인풋 패딩 조정 (글자와 라벨이 겹치지 않게) */
.contact-field--textarea .contact-input {
    padding-top: 40px; 
    height: 300px;
}

.contact-label {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: var(--black);
    pointer-events: none;
    transition: all 0.2s ease;
}

/* 필수 항목 점 */
.contact-required::after {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    background: var(--contact-red);
    border-radius: 50%;
    margin-left: 0;
    vertical-align: top;
    margin-top: 7px;
}

/* 포커스 시 라벨 이동 효과 */
.contact-input:focus + .contact-label,
.contact-input:not(:placeholder-shown) + .contact-label {
    top: 14px;
    font-size: 12px;
    color: var(--gray);
    transform: translateY(0);
}

/* 약관 동의 영역 */
.contact-agreement {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-bottom: 40px;
    gap: 20px;
}

.contact-checkbox-group { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
}
.contact-checkbox{
    width: 24px;
    height: 24px;
}
.contact-agree-label { 
    font-size: 17px; 
    color: var(--black); 
    cursor: pointer; 
}
.contact-link-more { font-size: 15px; color: var(--black); text-decoration: underline; }

/* 제출 버튼 */
.contact-submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 auto;
    padding: 18px 45px;
    background: var(--item-bg);
    color: var(--primary-color);
    border: none;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
}


.contact-icon-arrow::after {
    content: '→';
    font-size: 18px;
}

.footer{
    width: 1180px;
    margin: 120px auto 80px;
    border-top: 1px solid var(--line);
    padding: 20px 0;
}
@media (max-width: 1180px) {
    .footer{
        width: 100%;
    }
}

.footer-info{
    font-size: 14px;
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 8px;
    padding: 0 20px 20px;
}
.footer-info span{
    flex-shrink: 0;
}
@media (max-width: 640px) {
    .footer{
        width: 100%;
    }
    .footer-info{
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }
}
.copyright{
    font-size: 14px;
    border-top: 1px solid var(--line);
    padding: 20px;
}
.link-group{
    border-top: 1px solid var(--line);
    padding: 20px;
}
.link-group a{
    font-size: 14px;
}

.contact-agreement-text {
    padding: 20px;
    background: var(--item-bg);
    max-height: 200px; /* 팝업일 경우 스크롤 처리 */
    overflow-y: auto;
}

.contact-agreement-text p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--black);
    margin-bottom: 15px;
    word-break: keep-all; /* 한글 단어 끊김 방지 */
}

.contact-agreement-text p strong {
    color: var(--black);
    font-weight: 600;
}




/* ── 오버레이 ── */
.popup-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}
.popup-overlay.active { display: flex; }

/* ── 팝업 박스 ── */
.popup-box {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  width: min(560px, 92vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── 헤더 (고정) ── */
.popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.popup-header h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
}
.popup-close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid #ddd;
  border-radius: 8px;
  cursor: pointer;
  font-size: 18px;
  color: #666;
  transition: background 0.15s;
}
.popup-close:hover { background: #f5f5f5; }

/* ── 본문 (스크롤) ── */
.popup-body {
  overflow-y: auto;
  padding: 20px 24px;
  flex: 1;
  font-size: 14px;
  line-height: 1.8;
  color: #222;
}
.popup-body h3 {
  font-size: 14px;
  font-weight: 500;
  margin: 20px 0 6px;
}
.popup-body h3:first-child { margin-top: 0; }
.popup-body p  { margin: 0 0 8px; color: #555; }
.popup-body ul { margin: 0 0 8px; padding-left: 18px; color: #555; }
.popup-body li { margin-bottom: 4px; }

/* ── 푸터 (고정) ── */
.popup-footer {
  padding: 14px 24px;
  border-top: 1px solid #eee;
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}
.btn-confirm {
  padding: 8px 20px;
  font-size: 14px;
  font-weight: 500;
  background: #fff;
  color: #111;
  border: 1px solid #ccc;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-confirm:hover { background: #f5f5f5; }