.home-content { width: min(1280px, calc(100% - 64px)); margin: 0 auto; }
.home-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.home-hero { padding: 24px 0 0; background: transparent; }
.home-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: 12px; font-weight: 700; line-height: 1.4; }
.home-start-section { padding: 54px 0 50px; }
.home-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 23px; }
.home-kicker { display: inline-block; color: #7e90c8; font-size: 11px; letter-spacing: .1px; font-weight: 700; }
.home-section-heading h2 { margin: 9px 0 0; color: #2c3652; font-size: 27px; line-height: 1.45; letter-spacing: -1px; font-weight: 750; word-break: keep-all; }
.home-section-heading > p { margin: 0 0 4px; color: #8a98b1; font-size: 12px; line-height: 1.7; }
.home-start-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.start-card { display: flex; flex-direction: column; padding: 26px 30px 20px; border: 1px solid transparent; border-radius: 20px; min-height: 242px; transition: border-color .2s, transform .2s; }
.child-start-card { background: #edf2ff; border-color: #dfe7fb; }
.check-start-card { background: #f3f0ff; border-color: #e5dff7; }
.start-card:hover { transform: translateY(-3px); border-color: #bdcbf4; }
.check-start-card:hover { border-color: #cec2ee; }
.start-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 17px; }
.start-icon { display: grid; place-items: center; width: 40px; height: 40px; color: #8497db; }
.check-start-card .start-icon { color: #a393d1; }
.start-icon svg { width: 32px; height: 32px; }
.start-step { color: #92a2c8; font-size: 10px; font-weight: 750; letter-spacing: 1.1px; display: flex; align-items: center; gap: 12px; }
.check-start-card .start-step { color: #ada0c9; }
.start-step b { font-size: 10px; color: #9a88ca; font-weight: 600; letter-spacing: 0; background: #fbfaff; border-radius: 5px; padding: 4px 8px; }
.start-card h3 { font-size: 23px; color: #364867; margin: 0 0 10px; font-weight: 750; letter-spacing: -.6px; }
.check-start-card h3 { color: #4c4a75; }
.start-card p { color: #7d8faa; font-size: 13px; line-height: 1.8; margin: 0; word-break: keep-all; }
.check-start-card p { color: #9388ae; }
.start-card-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 22px; color: #7188d1; font-size: 12px; font-weight: 700; }
.check-start-card .start-card-bottom { color: #9d8bd1; }
.start-arrow { display: grid; place-items: center; border-radius: 50%; width: 32px; height: 32px; background: #ffffffa8; font-size: 19px; font-weight: 400; }
.home-center-section { padding: 8px 0 52px; }
.center-count { display: inline-flex; align-items: center; gap: 6px; color: #8e9db6; font-size: 11px; margin-bottom: 4px; }
.center-count strong { color: #7f93cf; font-weight: 750; }
.center-panel { display: grid; grid-template-columns: 300px minmax(0, 1fr); background: #fafbff; border: 1px solid #e2e8f5; border-radius: 22px; overflow: hidden; }
.center-information { padding: 29px 29px 24px; display: flex; flex-direction: column; align-items: flex-start; }
.center-location-icon { color: #8a9dd9; width: 32px; height: 32px; margin-bottom: 15px; }
.center-location-icon svg { width: 100%; height: 100%; }
.center-information h3 { font-size: 25px; line-height: 1.4; margin: 0 0 12px; letter-spacing: -.7px; color: #3e5278; }
.center-information > p { margin: 0; font-size: 12px; line-height: 1.8; color: #8494af; }
.location-button { background: #fff; border: 1px solid #dfe6f8; color: #7c90cc; padding: 12px 17px; min-height: 44px; font-size: 12px; margin-top: 20px; gap: 9px; }
.location-button:hover { background: #f0f4ff; }
.location-button > span { font-size: 18px; line-height: 1; }
.location-button:disabled { opacity: .6; cursor: wait; }
.center-information .center-location-status { font-size: 10px; line-height: 1.6; margin-top: 8px; min-height: 32px; }
.center-current { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; border-top: 1px solid #e4eaf7; margin-top: 15px; padding-top: 17px; width: 100%; }
.center-current-caption { color: #98a7c1; font-size: 10px; }
.center-current > strong { color: #647ca6; font-size: 14px; line-height: 1.6; word-break: keep-all; }
.center-current > span:not(.center-current-caption), .center-current > small { font-size: 11px; color: #92a1bb; line-height: 1.6; }
.center-current > a { display: inline-flex; align-items: center; gap: 15px; color: #8195ce; margin-top: 3px; padding: 5px 0; font-size: 11px; font-weight: 700; }
.home-map-frame { min-width: 0; position: relative; background: #edf2fb; min-height: 398px; }
.home-center-map { width: 100%; height: 100%; min-height: 398px; z-index: 1; }
.map-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #91a0be; width: 100%; height: 100%; min-height: 398px; background: #edf2fb; }
.map-loading > span { font-size: 36px; font-weight: 300; }
.map-loading p { font-size: 12px; }
.home-map-notice { position: absolute; bottom: 30px; left: 12px; right: 12px; z-index: 500; margin: 0; border: 1px solid #e0e7f8; border-radius: 8px; background: #fffffff5; padding: 10px 13px; color: #8a9bb9; font-size: 11px; line-height: 1.7; pointer-events: none; }
.home-map-pin { width: 32px; height: 40px; background: transparent; border: 0; }
.home-map-pin svg { display: block; width: 32px; height: 40px; filter: drop-shadow(0 3px 3px #495d9626); }

.home-banner-section { padding: 0 0 55px; }
.image-carousel { position: relative; border-radius: 22px; overflow: hidden; background: #edf2ff; }
.image-banner-slide[hidden] { display: none; }
.image-banner-link, .image-banner-link picture { display: block; }
.image-banner-link img { display: block; width: 100%; height: auto; aspect-ratio: 1440 / 500; object-fit: cover; }
.image-carousel-bottom .image-banner-link img { aspect-ratio: 1440 / 330; }
.image-banner-controls { position: absolute; bottom: 16px; right: 25px; display: flex; align-items: center; gap: 22px; padding: 4px 7px 4px 11px; border: 1px solid #ffffffb3; border-radius: 24px; background: #ffffffdf; }
.image-banner-dots, .image-banner-navigation { display: flex; align-items: center; gap: 5px; }
.image-banner-dots button { position: relative; border: 0; padding: 0; width: 23px; height: 28px; background: transparent; cursor: pointer; }
.image-banner-dots button::after { content: ''; position: absolute; width: 6px; height: 6px; left: 9px; top: 11px; border-radius: 8px; background: #c4cce6; }
.image-banner-dots button[aria-pressed="true"]::after { width: 18px; left: 3px; background: #8194dc; }
.image-banner-navigation { gap: 8px; }
.image-banner-navigation button { width: 29px; height: 29px; border-radius: 50%; background: #fff; border: 1px solid #e0e6f5; color: #7e91c9; cursor: pointer; }
[data-banner-counter] { font-size: 10px; color: #93a3c5; min-width: 37px; text-align: center; }
.map-loading { padding: 35px 20px; text-align: center; gap: 10px; background: #f0f4fc; }
.map-loading .map-brand-label { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #fff; color: #66a274; font-size: 24px; font-weight: 800; margin-bottom: 6px; }
.map-loading strong { color: #7b8eaf; font-size: 20px; font-weight: 600; letter-spacing: -.5px; }
.map-loading p { margin: 0; line-height: 1.7; }
.map-loading a { margin-top: 13px; padding: 10px 17px; background: #fff; border: 1px solid #e0e7f7; border-radius: 22px; font-size: 12px; color: #7d92cd; }
.home-map-notice[hidden] { display: none; }
.naver-center-popup { padding: 16px; color: #61789d; line-height: 1.7; font-size: 13px; }
.naver-center-popup p { font-size: 11px; color: #8a9ab6; margin: 5px 0 0; }
.home-center-map img { max-width: none; }
.image-carousel a:focus-visible, .image-carousel button:focus-visible, .home-start-section a:focus-visible, .home-center-section button:focus-visible, .home-center-section a:focus-visible { outline: 3px solid #8b9ee8; outline-offset: -4px; }
@media (max-width: 1050px) {
 .center-panel { grid-template-columns: 265px minmax(0, 1fr); }
 .center-information { padding: 25px; }
 .home-section-heading > p { display: none; }
}
@media (max-width: 760px) {
 .home-content { width: calc(100% - 36px); }
 .home-hero { padding-top: 17px; }
 .image-carousel { border-radius: 18px; }
 .image-banner-link img { aspect-ratio: 720 / 840; }
 .image-carousel-bottom .image-banner-link img { aspect-ratio: 720 / 540; }
 .image-banner-controls { bottom: 10px; right: 10px; gap: 8px; padding: 2px 5px 2px 8px; }
 .image-banner-dots { gap: 1px; }
 .image-banner-navigation { gap: 5px; }
 .home-start-section { padding: 31px 0; }
 .home-section-heading { margin-bottom: 18px; gap: 10px; }
 .home-section-heading h2 { font-size: 23px; margin-top: 7px; }
 .home-kicker { font-size: 10px; }
 .home-start-grid { gap: 12px; }
 .start-card { padding: 18px 16px 15px; min-height: 235px; border-radius: 16px; }
 .start-card-top { align-items: flex-start; margin-bottom: 15px; gap: 6px; }
 .start-step { font-size: 8px; flex-direction: column; align-items: flex-end; gap: 5px; letter-spacing: .4px; }
 .start-step b { font-size: 8px; padding: 2px 6px; }
 .start-icon { width: 30px; height: 30px; }
 .start-icon svg { width: 27px; height: 27px; }
 .start-card h3 { font-size: 17px; line-height: 1.4; letter-spacing: -.6px; }
 .start-card p { font-size: 11px; }
 .start-card p br { display: none; }
 .start-card-bottom { margin-top: auto; padding-top: 19px; font-size: 10px; gap: 6px; }
 .start-arrow { width: 27px; height: 27px; font-size: 17px; flex-shrink: 0; }
 .home-center-section { padding-bottom: 30px; }
 .center-count { font-size: 9px; white-space: nowrap; }
 .center-panel { grid-template-columns: 1fr; border-radius: 18px; }
 .center-information { padding: 22px; display: grid; grid-template-columns: 1fr auto; column-gap: 12px; }
 .center-location-icon { display: none; }
 .center-information h3 { grid-column: 1; font-size: 20px; margin-bottom: 8px; }
 .center-information h3 br, .center-information > p:first-of-type br { display: none; }
 .center-information > p:first-of-type { grid-column: 1; font-size: 11px; }
 .location-button { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; font-size: 10px; padding: 10px 12px; min-height: 40px; }
 .center-information .center-location-status { grid-column: 1 / -1; font-size: 9px; min-height: 0; margin-top: 10px; }
 .center-current { grid-column: 1 / -1; padding-top: 13px; margin-top: 13px; gap: 4px; }
 .center-current > strong { font-size: 13px; }
 .home-map-frame, .home-center-map, .map-loading { min-height: 285px; height: 285px; }
 .home-banner-section { padding-bottom: 35px; }
}
@media (max-width: 380px) {
 .home-start-grid { grid-template-columns: 1fr; }
 .start-card { min-height: 220px; padding: 22px; }
 .start-card h3 { font-size: 21px; }
 .start-card p { font-size: 12px; }
 .start-step { flex-direction: row; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .start-card { transition: none; } }
