:root{--navy:#071b35;--blue:#0d3157;--yellow:#ffd42a;--muted:#637186}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;color:#142238;background:#f5f7fb}a{color:inherit;text-decoration:none}.wrap{max-width:1180px;margin:auto;padding:0 24px}header{background:white;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px #0001}.head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 24px}.brand{font-size:26px;font-weight:900;color:var(--navy)}.brand small{display:block;font-size:10px;letter-spacing:3px}.phone{font-weight:bold}nav{background:var(--navy);color:white}nav .wrap{display:flex;gap:30px;overflow-x:auto;padding-top:14px;padding-bottom:14px;white-space:nowrap;font-size:14px}nav a:hover{color:var(--yellow)}.hero{background:linear-gradient(115deg,#06172e,#123d66);color:white;padding:76px 0}.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}.eyebrow{color:var(--yellow);font-weight:800}.hero h1{font-size:clamp(34px,4.2vw,62px);line-height:1.18;margin:16px 0}.hero p{font-size:19px;line-height:1.8;color:#e0e8f2}.btn{display:inline-block;background:var(--yellow);color:#0a1a30;padding:15px 24px;border-radius:10px;font-weight:900;margin-top:16px}.placeholder{min-height:260px;border:2px dashed #9cabc0;border-radius:16px;background:#e8edf4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#59697d;padding:24px;gap:10px}.hero .placeholder{min-height:340px;background:#183b5d;color:#d7e5f5;border-color:#7291b1}.placeholder b{font-size:20px}.placeholder small{font-size:13px}section{padding:68px 0}.section-head{text-align:center;margin-bottom:30px}.section-head h2{font-size:34px;margin:0 0 12px;color:var(--navy)}.section-head p{color:var(--muted);line-height:1.7}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.feature,.panel{background:white;border-radius:16px;padding:26px;box-shadow:0 6px 22px #0b1b3010}.feature strong{display:block;font-size:19px;margin:12px 0}.feature p,.panel p{line-height:1.7;color:#526174}.feature .symbol{font-size:36px}.highlight{border:2px solid var(--yellow)}.split{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:stretch}.panel h3{font-size:24px;color:var(--navy);margin-top:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{background:white;padding:25px;border-radius:14px}.num{display:inline-grid;place-items:center;background:var(--yellow);border-radius:50%;width:38px;height:38px;font-weight:900}.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.course{background:white;border-radius:14px;overflow:hidden}.course .placeholder{min-height:155px;border-radius:0}.course h3,.course p{margin:14px 18px}.course p{color:#637186;font-size:14px;line-height:1.6;padding-bottom:10px}.dark{background:var(--navy);color:white}.dark .section-head h2{color:white}.dark .section-head p{color:#d1d9e5}.notice{font-size:13px;color:#67758a;line-height:1.8}.contact{background:var(--yellow);padding:45px 0}.contact .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.contact h2{margin:0 0 8px}.contact .btn{background:var(--navy);color:white;margin:0}footer{background:#061527;color:#b7c3d3;padding:28px 0;font-size:13px;line-height:1.9}@media(max-width:800px){.hero-grid,.split{grid-template-columns:1fr}.features,.course-grid{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr}.contact .wrap{display:block}.phone{font-size:13px}}@media(max-width:480px){.features,.course-grid{grid-template-columns:1fr}.brand{font-size:19px}.hero{padding:45px 0}.section-head h2{font-size:27px}section{padding:48px 0}}.facility-photo{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 28px #0012}.facility-photo img{display:block;width:100%;height:100%;max-height:440px;object-fit:contain;background:#142238}.facility-photo b{display:block;padding:15px 18px;color:#142238}

.sensor-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;align-self:start}
.sensor-photo,.course-photo{overflow:hidden;border-radius:14px;background:#192638}
.sensor-photo{aspect-ratio:4/3}.course-photo{aspect-ratio:4/3;margin-bottom:15px}
.actual-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:640px){.sensor-photos{gap:7px}.sensor-photo{aspect-ratio:3/4}.course-photo{aspect-ratio:4/3}}

/* 기기별 전화 안내 */
.mobile-call{display:none!important}
.desktop-number{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:800px){.mobile-call{display:inline-flex!important;align-items:center;justify-content:center}.desktop-number{display:none!important}.contact .btn{margin-top:16px}}

#photo-lightbox{padding:60px 70px 62px!important;overflow:hidden}
#photo-lightbox img{display:block!important;width:auto!important;height:auto!important;max-width:calc(100vw - 150px)!important;max-height:calc(100dvh - 145px)!important;object-fit:contain!important;object-position:center!important;border-radius:5px;box-shadow:0 10px 35px #0009}
#lightbox-caption{flex-shrink:0!important;font-weight:700}
#photo-lightbox button{z-index:2}
#photo-lightbox img.zoomed{max-width:none!important;max-height:none!important;width:auto!important;height:auto!important;transform:scale(1.7);cursor:zoom-out}
#lightbox-image{cursor:zoom-in}
@media(max-width:600px){#photo-lightbox{padding:56px 42px 62px!important}#photo-lightbox img{max-width:calc(100vw - 86px)!important;max-height:calc(100dvh - 140px)!important}}

/* 예약 화면 */
#reservation{background:#eef3f9;scroll-margin-top:125px}
.reservation-layout{max-width:780px;margin:0 auto;background:#fff;padding:clamp(20px,4vw,38px);border-radius:20px;box-shadow:0 12px 36px #071b3514}
.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.reservation-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.reservation-field label{font-weight:800;color:#102b4a}
.reservation-field input,.reservation-field select{width:100%;min-height:48px;padding:12px;border:1px solid #b9c8d8;border-radius:10px;background:white;color:#142238;font:inherit}
.reservation-field input:focus,.reservation-field select:focus{outline:3px solid #ffd42a80;border-color:#0d3157}
.reservation-field.full{grid-column:1/-1}
.reservation-info{background:#f2f6fc;border-radius:10px;padding:14px 16px;color:#334c67;line-height:1.7;font-size:14px}
.reservation-submit{border:0;border-radius:10px;background:#ffd42a;color:#071b35;padding:16px 24px;font:inherit;font-weight:900;cursor:pointer;width:100%}
.reservation-submit:hover{background:#f4c900}
#reservation-result{min-height:22px;line-height:1.7;font-weight:700}
@media(max-width:560px){.reservation-grid{grid-template-columns:1fr}}

#reservation .reservation-price{border-radius:14px;background:#eef4f9;padding:20px 22px;color:#172b3e}#reservation .reservation-price>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:17px;font-weight:700;flex-wrap:wrap}#reservation .reservation-price strong{font-size:clamp(24px,4vw,34px);color:#0c5a9a}#reservation .reservation-price p{margin:10px 0 0;color:#40576a;font-size:15px}

.facility-gallery{margin-top:28px}.facility-gallery h3{margin:0 0 15px;font-size:1.3rem}.facility-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.facility-new-photo{margin:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 5px 20px #1a27421c}.facility-new-photo img{display:block;width:100%;height:260px;object-fit:cover;cursor:zoom-in}.facility-new-photo figcaption{padding:12px 16px;font-weight:700;color:#182b45}@media(max-width:680px){.facility-gallery-grid{grid-template-columns:1fr}.facility-new-photo img{height:auto;max-height:380px;object-fit:contain}}

/* 9번 오시는 길: 기존 1~8번 및 예약 화면 변경 없음 */
.location-panel{border:1px solid #dce3eb;border-radius:20px;padding:clamp(20px,4vw,36px);background:#fff;box-shadow:0 8px 24px rgba(18,34,56,.06)}
.location-address{display:flex;gap:16px;align-items:flex-start;color:#263344}
.location-address h3{margin:0 0 14px;font-size:clamp(22px,3vw,28px);color:#172235}
.location-address p{margin:7px 0;line-height:1.7;overflow-wrap:anywhere}
.location-address strong{display:inline-block;min-width:85px;color:#495b70}
.location-pin{font-size:32px;line-height:1.2}
.location-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:25px}
.location-link{display:flex;align-items:center;justify-content:center;min-height:58px;border-radius:12px;padding:12px 16px;text-align:center;font-weight:800;text-decoration:none!important;transition:filter .2s ease}
.location-link:hover{filter:brightness(.95)}
.location-link.tmap{background:#1857d4;color:#fff}
.location-link.kakao{background:#fee500;color:#242424}
.location-link.naver{background:#03c75a;color:#fff}
.location-hint{margin:15px 0 0;color:#657386;font-size:13px;line-height:1.6}
@media(max-width:600px){.location-actions{grid-template-columns:1fr}.location-address{gap:10px}.location-address strong{min-width:75px}.location-panel{padding:18px}}

/* 시설 안내: 항공사진 왼쪽, 야간사진 오른쪽 */
#facility .split>.facility-photo{min-width:0}
#facility .split>.facility-photo img{width:100%;height:360px;max-height:none;object-fit:contain;background:#142238}
@media(max-width:760px){#facility .split{grid-template-columns:1fr}#facility .split>.facility-photo img{height:auto;max-height:440px}}

#reservation-payment[hidden]{display:none!important}
#reservation-payment{border:2px solid #d9b62b;border-radius:14px;background:#fffbea;padding:24px;scroll-margin-top:100px}
#reservation-payment h3{margin:0 0 14px;color:#102c49;font-size:23px}
#reservation-payment dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;margin:20px 0}
#reservation-payment dt{color:#526174}#reservation-payment dd{margin:0;font-weight:800;overflow-wrap:anywhere}
#reservation-payment .payment-account{font-size:clamp(19px,5vw,26px);color:#0d3157}
#copy-payment-account{border:0;border-radius:10px;background:#0d3157;color:white;font:inherit;font-weight:800;padding:14px 20px;cursor:pointer;width:100%}
#payment-copy-status{min-height:1.5em;font-weight:700}

/* 사진 클릭 확대: PC/모바일 공통 */
.photo-zoomable{cursor:zoom-in;transition:filter .18s ease}
.photo-zoomable:hover{filter:brightness(.87)}
#photo-lightbox{display:none;position:fixed;inset:0;z-index:9999;background:rgba(2,9,22,.96);align-items:center;justify-content:center;flex-direction:column;padding:52px 55px 58px}
#photo-lightbox.open{display:flex}
#photo-lightbox img{max-width:100%;max-height:calc(100vh - 140px);width:auto;height:auto;object-fit:contain;user-select:none}
#photo-lightbox button{position:absolute;border:0;background:rgba(255,255,255,.16);color:white;cursor:pointer;border-radius:12px;font-size:30px;min-width:45px;min-height:45px}
#photo-lightbox button:hover{background:rgba(255,255,255,.3)}
#lightbox-close{top:12px;right:16px}#lightbox-prev{left:7px;top:48%}#lightbox-next{right:7px;top:48%}
#lightbox-caption{color:white;font-size:15px;margin-top:15px;text-align:center;line-height:1.5}
@media(max-width:600px){#photo-lightbox{padding:56px 35px 65px}#photo-lightbox button{font-size:25px;min-width:36px;min-height:44px}#lightbox-prev{left:1px}#lightbox-next{right:1px}}

/* 예약 전송 중 로딩 창 */
#reservation-loading{display:none;position:fixed;inset:0;z-index:10000;background:rgba(4,14,30,.62);align-items:center;justify-content:center;padding:20px}
#reservation-loading.open{display:flex}
#reservation-loading:focus{outline:none}
#reservation-loading .loading-box{background:#fff;border-radius:16px;padding:30px 36px;min-width:260px;text-align:center;box-shadow:0 18px 45px #0007}
#reservation-loading p{margin:16px 0 0;font-size:17px;font-weight:800;line-height:1.6;color:#071b35}
#reservation-loading .loading-spinner{display:inline-block;width:46px;height:46px;border:5px solid #e3e9f1;border-top-color:#ffd42a;border-radius:50%;animation:reservation-spin .8s linear infinite}
body.is-loading{overflow:hidden}
@keyframes reservation-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#reservation-loading .loading-spinner{animation-duration:2.4s}}

/* 모바일 길게 눌러 이미지 저장 메뉴 차단 (iOS) */
img{-webkit-touch-callout:none}
