@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Yeseva+One&display=swap");

/* kakao floating btn */
.kakao-floating-btn {
  position: fixed;
  right: 2.4rem;
  bottom: 2.4rem;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}
.kakao-floating-btn:hover {
  transform: scale(1.08);
}
.kakao-floating-btn img {
  width: 5.6rem;
  height: 5.6rem;
  display: block;
}

/* cursor follower */
.cursor-dot {
  width: 1rem;
  height: 1rem;
  background: #63a7c7;
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  transition:
    transform 0.25s ease,
    opacity 0.25s ease;
  will-change: transform;
}
.cursor-dot.is-hover {
  transform: translate(-50%, -50%) scale(4);
  opacity: 0.2;
}
.cursor-dot.is-hidden {
  opacity: 0;
}
@media (hover: none), (max-width: 768px) {
  .cursor-dot {
    display: none;
  }
}

html {
  font-size: 10px;
}

/* header */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: #0f172a;
}
section {
  padding: 6rem 0;
}
header .s__row {
  height: 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.header-logo img {
  height: 3.2rem;
}
.title {
  color: var(--Gray-900, #111827);
  text-align: center;
  font-family: Pretendard;
  font-size: 2.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.subtitle {
  color: var(--Gray-500, #687280);
  text-align: center;
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.title-box.title-box-left {
  align-items: flex-start;
}
.title-box-left .title,
.title-box-left .subtitle {
  text-align: left;
}
.title-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  width: 100%;
}
.form-box {
  display: flex;
  max-width: 62.3rem;
  width: 100%;
  padding: 3.6rem;
  flex-direction: column;
  align-items: flex-start;
  gap: 4.8rem;
  border-radius: 1.6rem;
  border: 1px solid var(--Gray-200, #e8e8e8);
  background: #fff;
  margin: 0 auto;
}
.sec09 {
  background: url(../image/img_background.png) no-repeat center center;
  background-size: cover;
}
.sec09 .s__row {
  gap: 10rem;
  display: flex;
  flex-direction: column;
}
.form-list {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  width: 100%;
}
.line {
  display: flex;
  align-items: center;
  gap: 2.4rem;
}
.input-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
  flex: 1 0 0;
}
.input-wrap label {
  color: var(--Gray-800, #1f2b37);
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
}
.input-wrap label strong {
  color: #ff5d5d;
  font-family: Pretendard;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
.bottom-text {
  color: var(--Gray-800, #1f2b37);
  font-family: Pretendard;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.address-input {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
}
.address-input input {
  flex: 1;
}
.address-input button {
  display: flex;
  height: 4.8rem;
  padding: 1.4rem 2rem 1.5rem 2rem;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  border-radius: 0.8rem;
  border: 1px solid #0f172a;
  background: var(--White, #fff);
  color: #0f172a;
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  transition: all 0.3s ease;
}
.address-input button:hover {
  background: #0f172a;
  color: #fff;
}
.line-col {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.input-wrap input,
.input-wrap textarea {
  display: flex;
  height: 4.8rem;
  padding: 1.4rem 2rem 1.5rem 2rem;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  align-self: stretch;
  border-radius: 0.8rem;
  border: 1px solid var(--Gray-300, #d1d5db);
  background: var(--White, #fff);
  color: var(--Gray-800, #1f2b37);
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  min-width: 0;
}
.input-wrap input:read-only {
  background: var(--Gray-100, #f3f4f6);
  color: var(--Gray-400, #9ca3af);
}
.input-wrap textarea {
  color: var(--Gray-700, #374151);
  font-family: Pretendard;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 400;
  line-height: 140%;
  height: 13.4rem;
  resize: none;
}
.input-wrap input::placeholder,
.input-wrap textarea::placeholder {
  color: var(--Gray-400, #9ca3af);
}
.row-line {
  width: 100%;
  height: 0.1rem;
  background: #e8e8e8;
  margin: 2.4em 0;
}
.sec09-form {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
  align-items: center;
  width: 100%;
}
.form-btn {
  color: var(--White, #fff);
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  transition: all 0.3s ease;
  display: flex;
  height: 4.8rem;
  padding: 1.4rem 2rem 1.5rem 2rem;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  align-self: stretch;
  border-radius: 0.8rem;
  background: #0f172a;
}
.form-btn:hover {
  background: #002232;
}
footer {
  border-top: 1px solid var(--Gray-200, #e8e8e8);
  background: var(--White, #fff);
  padding: 2.2rem;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 2.4rem;
}
.footer-info {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.footer-logo img {
  height: 2.4rem;
}
.footer-link {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  align-self: stretch;
}
.footer-link a {
  color: #fff;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.032rem;
}
.footer-sns {
  display: inline-flex;
  height: 2.4rem;
  align-items: flex-start;
  gap: 1.2rem;
}
.footer-bottom {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
}
.company-info {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
}
.company-info-item {
  display: flex;
}
.company-info-item p {
  color: #fff;
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: -0.032rem;
  opacity: 0.5;
}
.company-info-item:not(:last-child):after {
  content: "";
  display: block;
  width: 0.1rem;
  height: 1.4rem;
  opacity: 0.5;
  background: #fff;
  margin-left: 1.2rem;
  margin-top: 0.2rem;
}
.copyright {
  color: var(--Gray-400, #9ca3af);
  text-align: center;
  font-family: Pretendard;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
.company-map {
  width: 100%;
  height: 70rem;
}
.mobile-only {
  display: none;
}
.top-title {
  height: 25rem;
  padding: 0;
  margin-top: 6rem;
  background: url(../image/img_top_title.png) no-repeat center center;
  background-size: cover;
}
.top-title .s__row {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.6rem;
}
.top-title h2 {
  color: #fff;
  text-align: center;
  font-family: Pretendard;
  font-size: 3.8rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
}
.top-title p {
  color: #fff;
  text-align: center;
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
}
/* 테블릿 가로, 테블릿 세로 (해상도 768px ~ 1023px)*/
@media all and (max-width: 1023px) {
}
/* 모바일 가로, 모바일 세로 (해상도 480px ~ 767px)*/
@media all and (max-width: 767px) {
  .mobile-only {
    display: block;
  }
  html {
    font-size: 9px;
  }
  .s__row {
    padding: 1.6rem;
  }
  .form-box {
    padding: 3.6rem 1.6rem;
  }
  footer {
    padding: 0;
  }
  .top-title h2 {
    font-size: 2.8rem;
  }
  .top-title {
    height: 16rem;
  }
}
/* 모바일 이상 */
@media all and (min-width: 768px) {
  .hamburger-btn {
    display: none;
  }
  .mobile-nav,
  .mobile-nav-overlay {
    display: none !important;
  }
}

/* modal */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.modal-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}
.modal {
  background: #fcf9f5;
  padding: 3.6rem 2.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
  max-width: 46rem;
  width: 90%;
  transform: translateY(2rem);
  transition: transform 0.3s ease;
}
.modal-overlay.is-open .modal {
  transform: translateY(0);
}

.modal-title {
  color: #003147;
  font-family: Pretendard;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.modal-desc {
  color: #555;
  font-family: Pretendard;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 160%;
  text-align: center;
}
.modal-close-btn {
  margin-top: 1.6rem;
  display: flex;
  padding: 1.2rem 4rem;
  justify-content: center;
  align-items: center;
  background: #003147;
  color: #fff;
  font-family: Pretendard;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: -0.032rem;
  cursor: pointer;
  width: 100%;
}

/* checkbox styles */
.checkbox-wrap {
  display: flex;
  align-items: center;
  margin-top: 1.2rem;
}
.checkbox-wrap input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  color: var(--Gray-800, #1f2b37);
  font-family: Pretendard;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.checkbox-icon {
  width: 2.4rem;
  height: 2.4rem;
  transition: all 0.2s ease;
}
.checkbox-label:hover .checkbox-icon {
  transform: scale(1.08);
}

/* =====================
   Scroll Animation
   ani01 ~ ani99 클래스를 요소에 붙이면
   스크롤로 진입 시 순차적으로 부드럽게 나타납니다.
   ===================== */

/* 기본 스타일: 요소 전체 페이드 + 슬라이드업 */
[class*="ani"] {
  opacity: 0;
  transform: translateY(3rem);
  transition:
    opacity 0.7s ease,
    transform 0.7s ease;
}
[class*="ani"].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ani-style01: 글자별 순차 노출 */
/* 부모 요소는 즉시 보이도록 기본 애니메이션을 원짜 정의 */
[class*="ani"].ani-style01 {
  opacity: 1 !important;
  transform: none !important;
}
/* 각 글자 span */
.ani-style01 .ani-char {
  opacity: 0;
  display: inline-block;
  transform: translateY(0.6em);
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
}
/* 스크롤 진입 후 글자 노출 */
.ani-style01.is-visible .ani-char {
  opacity: 1;
  transform: translateY(0);
}
