@charset "utf-8";
/* =========================================================
   소요 기간 (process/period.html) — period.css
   로드 순서: style.css → sub.css → period.css
   ========================================================= */
.svi { display: block; flex: none; fill: none; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.pd { padding: 120px 0 120px; }
.pd-head { text-align: center; }
.pd-head .a2-h2 em { font-style: normal; white-space: nowrap; background: linear-gradient(90deg, #2454C6, #6A9BFF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pd-head > p:last-child { margin-top: 20px; font-size: 17px; line-height: 1.85; color: var(--sub); }

.pd-block { margin-top: 72px; }
.pd-block__title { padding-bottom: 16px; border-bottom: 2px solid var(--navy); font-size: 24px; font-weight: 800; letter-spacing: -.03em; color: var(--ink); }

/* 단계별 예상 기간 : 상단 타임라인 + 카드 */
.pd-steps { position: relative; margin-top: 40px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.pd-steps::before { content: ""; position: absolute; left: 10px; right: 10px; top: 9px; height: 2px; background: linear-gradient(90deg, #9CC6FF, #2454C6 60%, #0B2E6E); }
.pd-step { position: relative; display: flex; flex-direction: column; }
.pd-step__dot { position: relative; z-index: 1; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 5px solid #2454C6; }
.pd-step:first-child .pd-step__dot { border-color: #6A9BFF; }
.pd-step:last-child .pd-step__dot { border-color: #0B2E6E; }
.pd-step__no { margin-top: 14px; font-size: 13px; font-weight: 800; letter-spacing: .1em; color: #8FA6D6; }
.pd-step__card { flex: 1; margin-top: 12px; display: flex; flex-direction: column; align-items: flex-start; padding: 30px 28px 30px; border: 1px solid #DCE3EE; border-radius: 22px; background: #fff; transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.pd-step__card:hover { transform: translateY(-4px); border-color: #C9D6EA; box-shadow: 0 18px 40px rgba(16, 38, 76, .08); }
.pd-step__ico { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: #EEF3FC; }
.pd-step__ico .svi { width: 42px; height: 42px; stroke-width: 2.7; }
.pd-step__title { margin: 20px 0 0; font-size: 21px; font-weight: 800; letter-spacing: -.03em; color: var(--navy); }
.pd-step__time { margin-top: 10px; display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; background: linear-gradient(100deg, #00316B, #2454C6); font-size: 14px; font-weight: 800; color: #fff; }
.pd-step__desc { margin-top: 12px; font-size: 15px; line-height: 1.75; color: var(--sub); }

/* 소요 기간이 달라지는 요인 */
.pd-factor { padding: 100px 0 130px; background: #F4F6FA; }
.pd-factors { margin-top: 24px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.pd-factors li { display: flex; flex-direction: column; gap: 14px; min-height: 140px; padding: 24px 22px; border-radius: 18px; background: #fff; border: 1px solid #E3E9F3; font-size: 16px; font-weight: 700; line-height: 1.55; color: var(--ink); word-break: keep-all; }
.pd-factors span { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #EEF3FC; font-size: 13px; font-weight: 800; color: #2454C6; }

.pd-notice { margin-top: 32px; display: flex; align-items: center; gap: 18px; padding: 28px 36px; border-radius: 20px; background: #fff; border: 1px solid #C9D6EA; box-shadow: 0 14px 32px rgba(16, 38, 76, .06); }
.pd-notice__mark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--navy); color: #fff; font-size: 20px; font-weight: 800; }
.pd-notice p { font-size: 17px; line-height: 1.7; color: var(--body); }
.pd-notice strong { color: var(--navy); font-weight: 800; }

@media (max-width: 1180px) {
  .pd-factors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .pd { padding: 88px 0 88px; }
  .pd-factor { padding: 80px 0 96px; }
  /* 세로 타임라인 */
  .pd-steps { grid-template-columns: 1fr; gap: 16px; padding-left: 36px; }
  .pd-steps::before { left: 9px; right: auto; top: 10px; bottom: 10px; width: 2px; height: auto; background: linear-gradient(#9CC6FF, #2454C6 60%, #0B2E6E); }
  .pd-step__dot { position: absolute; left: -36px; top: 0; }
  .pd-step__no { margin-top: 0; }
  .pd-step__card { display: grid; grid-template-columns: 72px 1fr; column-gap: 22px; align-items: center; }
  .pd-step__ico { grid-row: span 3; }
  .pd-step__title { margin-top: 0; }
  .pd-step__time { justify-self: start; margin-top: 6px; }
  .pd-step__desc { grid-column: 2; margin-top: 8px; }
}

@media (max-width: 768px) {
  .pd { padding: 64px 0 64px; }
  .pd-head { text-align: left; }
  .pd-head > p:last-child { font-size: 15px; }
  .pd-block { margin-top: 44px; }
  .pd-block__title { font-size: 20px; padding-bottom: 12px; }
  .pd-steps { margin-top: 24px; padding-left: 30px; }
  .pd-step__dot { left: -30px; width: 18px; height: 18px; border-width: 4px; }
  .pd-steps::before { left: 8px; }
  .pd-step__card { grid-template-columns: 52px 1fr; column-gap: 14px; padding: 20px 18px; border-radius: 18px; }
  .pd-step__ico { width: 52px; height: 52px; }
  .pd-step__ico .svi { width: 30px; height: 30px; stroke-width: 3; }
  .pd-step__title { font-size: 18px; }
  .pd-step__time { height: 28px; font-size: 13px; }
  .pd-step__desc { grid-column: 1 / -1; margin-top: 12px; font-size: 14px; }
  .pd-factor { padding: 64px 0 72px; }
  .pd-factors { grid-template-columns: 1fr; gap: 8px; margin-top: 16px; }
  .pd-factors li { flex-direction: row; align-items: center; min-height: 0; padding: 14px 16px; font-size: 14px; }
  .pd-factors span { flex: none; width: 30px; height: 30px; font-size: 12px; }
  .pd-notice { align-items: flex-start; gap: 12px; padding: 20px 18px; border-radius: 16px; }
  .pd-notice__mark { width: 30px; height: 30px; font-size: 16px; }
  .pd-notice p { font-size: 14px; }
}
