@charset "utf-8";
.one-footer-bg {
  background-color: #191a1b;
  padding: 40px 0 120px;
  color: var(--white-c);
}
.one-footer-inner {
  display: flex;
  align-items: flex-start;
  gap: var(--space-lg);
  max-width: 1300px;
  margin: 0 auto;
}
.one-footer-logo{
  margin-top: 10px;
}
.one-footer-logo img {
  width: 100%;
}

.one-footer-info p {
  margin: 0;
  padding: 0;
  font-size: var(--p-body);
  font-weight: var(--font-w-m);
  line-height: 1.9;
  color: var(--white-c);
}
/* 상호와 주소는 PC 한 줄, 모바일에서 자동으로 줄바꿈된다 */
.one-footer-info .ft_line {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--space-md);
}
/* 항목명 뒤 구분선 */
.one-footer-info b::after {
  content: '|';
  margin: 0 8px;
  font-weight: var(--font-w-r);
  color: rgba(255, 255, 255, 0.4);
}
.one-footer-info a {
  color: inherit;
}
.one-footer-info .ft_copy {
  margin-top: var(--space-sm);
  font-size: var(--p-caption);
  color: rgba(255, 255, 255, 0.45);
}

.one-footer-privacy {
  flex: none;
  margin-left: auto;
  padding: 11px 18px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  font-size: var(--p-caption);
  color: rgba(255, 255, 255, 0.8);
  white-space: nowrap;
  transition: border-color 0.3s ease, color 0.3s ease;
}
.one-footer-privacy:hover {
  border-color: var(--main-c);
  color: var(--main-c);
}

@media all and (max-width: 900px) {
  .one-footer-inner {
    flex-wrap: wrap;
    gap: 0;
    padding: 0 var(--space-xs);
  }
  /* 로고·버튼이 첫 줄, 정보가 그 아래로. DOM 순서와 달라 order 로 내린다 */
  .one-footer-info {
    order: 1;
    flex: 0 0 100%;
    margin-top: var(--space-lg);
  }
  .one-footer-logo {
    margin-top: 0px;
  }
  .one-footer-logo img {
    width: 90%;
  }
  .one-footer-privacy {
    padding: 9px 14px;
  }
}
#ast-scroll-top {
  padding: 27px 12px 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  background-color: var(--main-c);
  position: fixed;
  right: 19px;
  bottom: 48px;
  z-index: 10;
  text-align: center;
  line-height: 1em;
  border-radius: 50%;
  cursor: pointer;
  transition: 0.3s;
}
#ast-scroll-top:hover {
  background-color: #12254e;
}
#ast-scroll-top .ast-arrow-svg {
  width: 15px;
  fill: #f9f9f9;
  color: #f9f9f9;
  transform: rotate(180deg);
}
/* 테블릿 */
@media all and (max-width: 1024px) {
}

/* 모바일 */
@media all and (max-width: 639px) {
  #ast-scroll-top {
    padding: 14px 8px 11px;
    width: 46px;
    height: 46px;
    right: 16px;
    bottom: 100px;
  }

  .one-footer-logo {
    width: 60%;
  }
}

/* ============================
   개인정보처리방침 팝업
   footer.php 에서 출력. 본문(.privacy_doc)은 전용 페이지와 공용이다.
============================ */
.privacy_modal,
.form_alert {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: var(--space-sm);
  border: 0;
  background: transparent;
  overflow: hidden;
}
/* dialog 기본 display:none 을 덮으므로 [open] 에만 적용한다 */
.privacy_modal[open],
.form_alert[open] {
  display: grid;
  place-items: center;
}
.privacy_modal::backdrop,
.form_alert::backdrop {
  background: rgba(18, 25, 51, 0.62);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.privacy_modal_inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 880px;
  max-height: 86vh;
  background: var(--white-c);
  border-radius: 2px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}

.privacy_modal_head {
  position: relative;
  flex: none;
  padding: var(--space-md) var(--space-md) var(--space-sm);
  border-bottom: 1px solid #e6e6e6;
}
.privacy_modal_mark {
  display: block;
  margin-bottom: 6px;
  font-size: var(--p-caption);
  font-weight: var(--font-w-bm);
  letter-spacing: 0.06em;
  color: var(--main-c);
}
.privacy_modal_head h2 {
  margin: 0;
  padding: 0;
  font-family: var(--font-mj);
  font-size: var(--h3-size);
  font-weight: var(--font-w-bm);
  color: var(--sub-c-03);
}

.privacy_modal_close {
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.privacy_modal_close::before,
.privacy_modal_close::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 17px;
  height: 1px;
  background: #333;
  transition: background-color 0.3s ease;
}
.privacy_modal_close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.privacy_modal_close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.privacy_modal_close:hover::before,
.privacy_modal_close:hover::after {
  background: var(--main-c);
}

.privacy_modal_body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--space-md);
  -webkit-overflow-scrolling: touch;
}
.privacy_modal_body::-webkit-scrollbar {
  width: 6px;
}
.privacy_modal_body::-webkit-scrollbar-thumb {
  background: #d5d5d5;
  border-radius: 3px;
}

.privacy_modal_foot {
  flex: none;
  padding: var(--space-sm) var(--space-md);
  border-top: 1px solid #e6e6e6;
  text-align: right;
}
.privacy_modal_btn,
.form_alert_btn {
  min-width: 120px;
  padding: 12px 24px;
  border: 0;
  background: var(--sub-c-03);
  color: var(--white-c);
  font-size: var(--p-caption);
  font-weight: var(--font-w-bm);
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.privacy_modal_btn:hover,
.form_alert_btn:hover {
  background: var(--main-c);
}

@keyframes privacy_modal_in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes privacy_backdrop_in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.privacy_modal[open] .privacy_modal_inner,
.form_alert[open] .form_alert_inner {
  animation: privacy_modal_in 0.32s ease-out;
}
.privacy_modal[open]::backdrop,
.form_alert[open]::backdrop {
  animation: privacy_backdrop_in 0.32s ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .privacy_modal[open] .privacy_modal_inner,
  .form_alert[open] .form_alert_inner,
  .privacy_modal[open]::backdrop,
  .form_alert[open]::backdrop {
    animation: none;
  }
}

/* ============================
   상담 접수 결과 팝업
   CF7 기본 한 줄 안내를 대신한다
============================ */
.form_alert_inner {
  width: 100%;
  max-width: 420px;
  padding: var(--space-lg) var(--space-md);
  background: var(--white-c);
  border-radius: 2px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
  text-align: center;
}

.form_alert_ico {
  position: relative;
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto var(--space-sm);
  border: 1px solid var(--main-c);
  border-radius: 50%;
}

/* 체크 표시 : 두 변만 남긴 사각형을 기울인다 */
.form_alert_ico::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 10px;
  margin: -8px 0 0 -10px;
  border-left: 1px solid var(--main-c);
  border-bottom: 1px solid var(--main-c);
  transform: rotate(-45deg);
}

.form_alert.is_error .form_alert_ico {
  display: none;
}

/* 접수 중 : 같은 원을 회전시켜 대기 상태를 보여준다 */
.form_alert.is_loading .form_alert_ico {
  border-color: #e6e6e6;
  border-top-color: var(--main-c);
  animation: form_alert_spin 0.8s linear infinite;
}

.form_alert.is_loading .form_alert_ico::before {
  display: none;
}

/* 응답을 기다리는 동안에는 닫을 수 없다 */
.form_alert.is_loading .form_alert_btn {
  display: none;
}

/* 버튼이 없는 만큼 아래 여백을 줄인다 */
.form_alert.is_loading .form_alert_inner p {
  margin-bottom: 0;
}

@keyframes form_alert_spin {
  to {
    transform: rotate(360deg);
  }
}

.form_alert_inner h2 {
  margin: 0;
  padding: 0;
  font-family: var(--font-mj);
  font-size: var(--p-title);
  font-weight: var(--font-w-bm);
  line-height: 1.5;
  color: var(--sub-c-03);
}

.form_alert_inner p {
  margin: var(--space-xs) 0 var(--space-md);
  padding: 0;
  font-size: var(--p-caption);
  line-height: 1.9;
  color: #666;
  /* 안내문의 줄바꿈을 JS 문자열(\n)로 관리한다 */
  white-space: pre-line;
}

/* 결과와 오류 내용은 모두 팝업(#formAlert)이 안내하므로
   CF7 이 폼 안에 출력하는 문구와 스피너는 감춘다 */
.wpcf7 .wpcf7-response-output,
.wpcf7 .wpcf7-not-valid-tip,
.wpcf7 .wpcf7-spinner {
  display: none;
}

/* 메일 발송을 기다리는 동안 버튼이 눌린 상태임을 보여준다 */
.wpcf7 form.submitting input[type='submit'] {
  opacity: 0.6;
  cursor: wait;
}

@media all and (max-width: 900px) {
  .form_alert_inner {
    padding: var(--space-md) var(--space-sm);
  }
}

/* ── 방침 본문 (팝업 · 전용 페이지 공용) ── */
.privacy_doc h3 {
  margin: var(--space-md) 0 var(--space-xs);
  padding: 0 0 0 14px;
  border-left: 2px solid var(--main-c);
  font-size: var(--p-title);
  font-weight: var(--font-w-bm);
  line-height: 1.4;
  color: var(--sub-c-03);
}
.privacy_doc p,
.privacy_doc li {
  font-size: var(--p-caption);
  line-height: 1.9;
  color: #555;
}
.privacy_doc p {
  margin: 0 0 var(--space-xs);
  padding: 0;
}
.privacy_doc ul {
  margin: 0 0 var(--space-xs);
}
.privacy_doc li {
  position: relative;
  padding-left: 14px;
}
.privacy_doc li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.9em;
  width: 5px;
  height: 1px;
  background: var(--main-c);
}
.privacy_doc strong {
  color: #333;
}

@media all and (max-width: 900px) {
  .privacy_modal {
    padding: var(--space-xs);
  }
  .privacy_modal_inner {
    max-height: 92vh;
  }
  .privacy_modal_head {
    padding: var(--space-sm) var(--space-sm) var(--space-xs);
  }
  .privacy_modal_close {
    top: 10px;
    right: 10px;
  }
  .privacy_modal_body {
    padding: var(--space-sm);
  }
  .privacy_modal_foot {
    padding: var(--space-xs) var(--space-sm);
  }
  .privacy_modal_btn {
    min-width: 100px;
    padding: 10px 20px;
  }
}
