:root{--bg:#0d0d0f;--bg2:#16161a;--line:#2a2a30;--gold:#c9a45c;--txt:#eee;--mut:#8a8a93}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(13,13,15,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-weight:800;letter-spacing:3px;color:var(--gold)}.logo span{color:var(--txt);letter-spacing:0;margin-left:6px;font-weight:500}
.nav nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg2);flex-direction:column}
.nav nav a{padding:14px 20px;border-top:1px solid var(--line)}
.menu-open .nav nav{display:flex}
.menu-btn{background:none;border:0;color:var(--txt);font-size:24px}
.nav-cta{color:var(--gold)}
.hero{min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px 20px;background:radial-gradient(circle at 50% 30%,#2a2216 0%,var(--bg) 70%)}
.hero h1{font-size:44px;line-height:1.2;margin:20px 0;font-weight:300}.hero h1 strong{color:var(--gold);font-weight:800}
.hero p{color:#ccc}.note{color:var(--mut)!important;font-size:14px;margin-top:12px}
.badge{display:inline-block;border:1px solid var(--gold);color:var(--gold);padding:4px 14px;border-radius:20px;font-size:12px;letter-spacing:1px}
.btn{display:inline-block;margin-top:28px;background:var(--gold);color:#111;font-weight:700;padding:14px 36px;border-radius:4px}
.sec{max-width:1100px;margin:0 auto;padding:70px 20px}
.sec h2{text-align:center;font-size:26px;margin-bottom:30px}.sec h2:after{content:"";display:block;width:40px;height:2px;background:var(--gold);margin:12px auto 0}
.lead{text-align:center;max-width:640px;margin:0 auto;color:#ccc}
.muted{color:var(--mut)}.center{text-align:center;margin-bottom:20px}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:36px;text-align:center}
.features div{background:var(--bg2);border:1px solid var(--line);padding:20px 6px}.features b{display:block;color:var(--gold);font-size:22px}.features span{font-size:13px;color:var(--mut)}
.price{list-style:none;max-width:600px;margin:0 auto}.price li{display:flex;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.price em{font-style:normal;font-size:11px;color:var(--gold);border:1px solid var(--gold);padding:0 6px;margin-left:6px;border-radius:3px}.dots{flex:1}
.grid{display:grid;gap:14px}.rooms{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}
.card{background:var(--bg2);border:1px solid var(--line);overflow:hidden}.card-b{padding:14px 16px}.card h3{color:var(--gold);letter-spacing:2px;font-size:16px}
.ph{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#18181c,#18181c 10px,#1d1d22 10px,#1d1d22 20px);color:#555;font-size:13px;aspect-ratio:4/3}
.ph.sq{aspect-ratio:1}.ph.map{aspect-ratio:16/9;margin-top:20px;border:1px solid var(--line)}
.info{display:grid;gap:14px}.info div{background:var(--bg2);border:1px solid var(--line);padding:18px}.info h3{font-size:15px;color:var(--gold)}
.cta,.res{text-align:center}.res{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.res h1{font-size:28px}
.footer{text-align:center;padding:40px 20px;border-top:1px solid var(--line);font-size:13px}.footer p{margin-top:6px}
@media(min-width:768px){.menu-btn{display:none}.nav nav{display:flex;position:static;flex-direction:row;background:none;gap:4px}.nav nav a{border:0;padding:6px 12px}
.hero h1{font-size:68px}.rooms{grid-template-columns:repeat(3,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}.info{grid-template-columns:repeat(3,1fr)}}
/* booking */
.book{max-width:640px}.book h1{text-align:center;font-size:26px;margin-bottom:8px}
.step{background:var(--bg2);border:1px solid var(--line);padding:20px;margin-top:16px}
.step h2{text-align:left;font-size:18px;margin-bottom:14px}.step h2:after{display:none}
.step h2 span{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#111;font-size:13px;align-items:center;justify-content:center;margin-right:8px}
.course-list{display:grid;gap:10px}.course,.slot,.cal button{background:var(--bg);border:1px solid var(--line);color:var(--txt);font:inherit;cursor:pointer}
.course{display:flex;justify-content:space-between;padding:16px;text-align:left}.course span{color:var(--gold);font-weight:700}
.course.on,.slot.on,.cal .d.on{border-color:var(--gold);background:#231d12}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{padding:10px 0}.slot small{display:block;font-size:11px;color:var(--mut)}
.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cal-h button{width:36px;height:36px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cal-g i{font-style:normal;font-size:12px;color:var(--mut)}
.cal .d{aspect-ratio:1}.cal .d:disabled{opacity:.25;cursor:default}
label{display:block;margin-top:12px;font-size:14px;color:#ccc}label.inline{margin-top:16px}
input,select,textarea{display:block;width:100%;margin-top:6px;padding:12px;background:var(--bg);border:1px solid var(--line);color:var(--txt);font:inherit;border-radius:3px}
label.inline select{display:inline-block;width:auto;margin-left:8px}
.btn.block{display:block;width:100%;border:0;font:inherit;font-weight:700;cursor:pointer}.btn-ghost{background:none;border:1px solid var(--gold)!important;color:var(--gold)}
.alert{padding:12px 16px;margin:12px 0;border:1px solid var(--line)}.alert.err{border-color:#a33;color:#f99}.alert.ok{border-color:var(--gold);color:var(--gold)}
.summary{color:var(--gold);font-size:14px}.small{font-size:12px;margin-top:10px;text-align:center}
.confirm-box{background:var(--bg2);border:1px solid var(--line);padding:24px;text-align:center;margin-top:20px}
.code-big{font-size:34px;letter-spacing:4px;color:var(--gold);font-weight:800;margin:16px 0}
.dl{display:grid;grid-template-columns:80px 1fr;gap:8px;text-align:left;margin:16px 0}.dl dt{color:var(--mut)}
.card-form{background:var(--bg2);border:1px solid var(--line);padding:20px}
.price li b{color:var(--gold)}
