/* Contact */
.contact-visual { --sv-dim: 0.3; --sv-dim-mo: 0.4; }

/* 안내 문구 */
.contact-intro { padding: 150px var(--size-wrap-padding); text-align: center; }
.contact-intro p { margin: 0; font-size: 22px; font-weight: 300; line-height: 1.8; color: var(--color-neutral-7); word-break: keep-all; }

/* 정보 — 사진 + 목록 */
.contact-info { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding: 0 var(--size-wrap-padding) 150px; }
.contact-info-img { flex: 0 0 57.9%; min-width: 0; aspect-ratio: 1053 / 972; }
.contact-swiper, .contact-swiper .swiper-slide { width: 100%; height: 100%; }
/* 진행 막대 — 장 수만큼 흰 선이 채워진다 */
.contact-swiper .contact-swiper-pagination { top: auto; bottom: 30px; left: 50%; width: 80px; height: 2px; transform: translateX(-50%); background-color: rgba(255, 255, 255, 0.4); }
.contact-swiper .swiper-pagination-progressbar-fill { background-color: var(--color-neutral-1); }
.contact-info-list { flex: 0 1 593px; }
.contact-block { padding: 48px 0; }
.contact-block + .contact-block { border-top: 1px solid var(--color-neutral-3); }
.contact-block-title { display: flex; align-items: baseline; gap: 16px; margin: 0 0 28px; font-family: var(--font-point); font-size: 32px; font-weight: 400; line-height: 1.2; color: var(--color-neutral-7); }
.contact-block-title span { font-family: var(--font-base); font-size: 16px; font-weight: 300; color: var(--color-neutral-4); }
.contact-en { display: block; font-family: var(--font-point); color: var(--color-neutral-4); }

.contact-hours, .contact-reach { margin: 0; }
.contact-hours-row { display: flex; align-items: flex-start; gap: 24px; }
.contact-hours-row + .contact-hours-row { margin-top: 20px; }
.contact-hours dt { display: flex; flex-direction: column; flex: 0 0 200px; font-size: 16px; line-height: 1.2; color: var(--color-neutral-7); }
.contact-hours dd { margin: 0; font-family: var(--font-point); font-size: 22px; font-weight: 500; line-height: 1.2; color: var(--color-neutral-7); }
.contact-note { margin: 28px 0 0; font-size: 15px; font-weight: 300; line-height: 1.3; color: var(--color-neutral-4); }
.contact-note .contact-en { font-size: 17px; }

.contact-reach-row { display: flex; align-items: baseline; gap: 24px; font-family: var(--font-point); }
.contact-reach-row + .contact-reach-row { margin-top: 10px; }
.contact-reach dt { font-size: 18px; color: var(--color-neutral-4); }
.contact-reach dd { margin: 0; font-size: 22px; font-weight: 500; color: var(--color-neutral-7); }
.contact-reach-row--tel dd { font-size: 24px; }

.contact-channels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 32px; }
.contact-channels .btn-line { width: 100%; height: 44px; padding: 0 10px; }

.contact-address { margin: 0; font-size: 17px; line-height: 1.7; color: var(--color-neutral-7); }
.contact-address .contact-en { font-size: 17px; line-height: 1.3; }
.contact-parking { display: flex; flex-direction: column; gap: 6px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--color-icon-1); }
.contact-parking strong { font-size: 14px; font-weight: 500; color: var(--color-neutral-7); }
.contact-parking p { margin: 0; font-size: 15px; font-weight: 300; line-height: 1.8; color: var(--color-neutral-4); }
.contact-parking .contact-parking-note { font-size: 14px; line-height: 1.3; }

/* 지도 */
.contact-map { padding: 0 var(--size-wrap-padding) 150px; }
.contact-map iframe { display: block; width: 100%; height: 560px; border: 0; }

@media all and (max-width: 1440px) {
    .contact-intro p { font-size: 20px; }
    .contact-block-title { font-size: 28px; }
    .contact-hours dd, .contact-reach dd { font-size: 20px; }
    .contact-reach-row--tel dd { font-size: 22px; }
}

@media all and (max-width: 1023px) {
    .contact-intro { padding-block: 100px; }
    .contact-info { flex-direction: column; align-items: stretch; padding-bottom: 100px; }
    .contact-info-img, .contact-info-list { flex: none; }
    .contact-map { padding-bottom: 100px; }
}

@media all and (max-width: 767px) {
    .contact-intro { padding: 64px 20px; text-align: left; }
    .contact-intro p { font-size: 18px; }

    .contact-info { padding: 0 20px 64px; }
    .contact-info-img { aspect-ratio: 335 / 309; }
    .contact-swiper .contact-swiper-pagination { bottom: 20px; }
    .contact-block { padding: 29px 0; }
    .contact-block-title { gap: 10px; margin-bottom: 17px; font-size: 24px; }
    .contact-block-title span { font-size: 14px; }

    .contact-hours-row { gap: 14px; }
    .contact-hours-row + .contact-hours-row { margin-top: 12px; }
    .contact-hours dt { flex-basis: 90px; font-size: 14px; }
    .contact-hours dd { font-size: 18px; }
    .contact-note { margin-top: 17px; font-size: 13px; }
    .contact-note .contact-en { font-size: 15px; }

    .contact-reach-row { gap: 14px; }
    .contact-reach-row + .contact-reach-row { margin-top: 6px; }
    .contact-reach dt { font-size: 15px; }
    .contact-reach dd { font-size: 18px; }
    .contact-reach-row--tel dd { font-size: 20px; }
    .contact-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 19px; }

    .contact-address { font-size: 14px; }
    .contact-address .contact-en { font-size: 15px; }
    .contact-parking { gap: 4px; margin-top: 17px; padding-top: 14px; }
    .contact-parking strong, .contact-parking p, .contact-parking .contact-parking-note { font-size: 13px; }

    .contact-map { padding: 0 20px 64px; }
    .contact-map iframe { height: 260px; }
}
