@font-face{font-family:P;font-weight:400;font-display:swap;src:url(fonts/P-400.woff2) format("woff2")}
@font-face{font-family:P;font-weight:600;font-display:swap;src:url(fonts/P-600.woff2) format("woff2")}
@font-face{font-family:P;font-weight:700;font-display:swap;src:url(fonts/P-700.woff2) format("woff2")}
:root{
  --ink:#1a1f1b; --muted:#666b63; --paper:#f5f3ed; --white:#fff; --line:#d9d4c7; --line-strong:#1a1f1b;
  --green:#1f3d2c; --green-ink:#f5f3ed; --open:#1f6b3f; --warn:#9a3b1e;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:40px; --s7:64px; --s8:104px;
  --r:2px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font:16px/1.65 P,-apple-system,"Apple SD Gothic Neo",sans-serif;color:var(--ink);background:var(--paper);word-break:keep-all;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--s5)}
.eyebrow{font-size:13px;letter-spacing:.14em;font-weight:600;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 var(--s5);border:1px solid var(--line-strong);border-radius:var(--r);background:var(--ink);color:var(--paper);font-weight:600;text-decoration:none;cursor:pointer}
.btn.line{background:transparent;color:inherit;border-color:currentColor}
.btn:disabled{background:var(--line);border-color:var(--line);color:var(--muted);cursor:default}
.demo-bar{background:var(--ink);color:var(--paper);font-size:13px;text-align:center;padding:6px var(--s4)}
.demo-bar a{color:var(--paper)}
:focus-visible{outline:2px solid var(--open);outline-offset:2px}
@media (max-width:640px){.wrap{padding:0 var(--s4)}}

/* ── 메인 ───────────────────────── */
.top{position:absolute;left:0;right:0;z-index:5;color:#fff}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{text-decoration:none;line-height:1.2}
.logo b{display:block;font-size:19px;letter-spacing:-.01em}
.logo span{font-size:11px;letter-spacing:.24em;opacity:.85}
.nav{display:flex;gap:var(--s5);list-style:none;font-size:15px}
.nav a{text-decoration:none;opacity:.92}
.nav a.go{border-bottom:1px solid #fff;padding-bottom:2px;opacity:1;font-weight:600}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.7);border-radius:var(--r);padding:6px 12px;color:#fff}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:0;background:var(--ink);padding:var(--s2) var(--s4)}
  .nav.on{display:flex}
  .nav a{display:block;padding:var(--s3) 0;border-bottom:1px solid #3a403b}
  .nav a.go{border-bottom-color:#3a403b}
}
.hero{position:relative;height:min(92vh,860px);min-height:560px;color:#fff;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,11,.45) 0,rgba(10,14,11,0) 28%,rgba(10,14,11,0) 45%,rgba(10,14,11,.72) 100%)}
.hero .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:var(--s7)}
.hero h1{font-size:clamp(36px,6vw,68px);line-height:1.15;letter-spacing:-.025em;font-weight:700;margin:var(--s3) 0 var(--s4)}
.hero p{font-size:18px;max-width:30em;opacity:.95}
.hero .acts{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}
.hero .btn{background:#fff;color:var(--ink);border-color:#fff}
.hero .btn.line{background:transparent;color:#fff;border-color:#fff}
.hero .eyebrow{color:#fff;opacity:.9}

.tee-now{background:var(--green);color:var(--green-ink)}
.tee-now .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding-top:var(--s5);padding-bottom:var(--s5);flex-wrap:wrap}
.tee-now dl{display:flex;gap:var(--s6)}
.tee-now dt{font-size:13px;opacity:.75}
.tee-now dd{font-size:28px;font-weight:700;line-height:1.2}
.tee-now dd small{font-size:15px;font-weight:400;margin-left:2px}
.tee-now .btn{background:var(--paper);color:var(--green);border-color:var(--paper)}

section.blk{padding:var(--s8) 0;border-bottom:1px solid var(--line)}
.blk h2{font-size:clamp(26px,3.4vw,38px);line-height:1.25;letter-spacing:-.02em;margin:var(--s2) 0 var(--s5)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:center}
.split p+p{margin-top:var(--s3)}
.split .lead{font-size:18px}
.facts{display:flex;gap:var(--s6);margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line)}
.facts b{display:block;font-size:26px}
.facts span{font-size:14px;color:var(--muted)}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:var(--s5)}section.blk{padding:var(--s7) 0}}

.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:240px 240px;gap:var(--s2)}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery img:first-child{grid-row:span 2}
@media (max-width:640px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:220px 140px}.gallery img:first-child{grid-column:span 2;grid-row:auto}}

.rows{list-style:none;border-top:1px solid var(--line-strong)}
.rows li{display:grid;grid-template-columns:140px 1fr auto;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line);align-items:baseline}
.rows .k{font-size:14px;color:var(--muted)}
.rows .v{font-weight:600}
.rows .x{font-size:14px;color:var(--muted)}
.rows a{text-decoration:none}
@media (max-width:640px){.rows li{grid-template-columns:1fr auto}.rows .k{grid-column:1/-1}}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7)}
@media (max-width:860px){.cols{grid-template-columns:1fr;gap:var(--s6)}}
h3{font-size:18px;margin-bottom:var(--s3)}
.lock{font-size:14px;color:var(--muted);margin-top:var(--s3)}
footer{background:var(--ink);color:#b9bdb5;font-size:13px;padding:var(--s6) 0}
footer p+p{margin-top:var(--s2)}
footer b{color:var(--paper)}

/* ── 골프 예약 (모바일 우선) ─────── */
.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--white);border-left:1px solid var(--line);border-right:1px solid var(--line);padding-bottom:var(--s7)}
.app-head{position:sticky;top:0;z-index:4;background:var(--green);color:var(--green-ink)}
.app-head .bar{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 var(--s4)}
.app-head a{text-decoration:none;font-size:14px}
.app-head h1{font-size:17px}
.tabs{display:flex;border-top:1px solid #2f5440}
.tabs button{flex:1;background:none;border:0;color:var(--green-ink);opacity:.7;padding:var(--s3) 0;border-bottom:3px solid transparent;cursor:pointer}
.tabs button.on{opacity:1;font-weight:600;border-bottom-color:var(--paper)}
.who{padding:var(--s3) var(--s4);font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}
.who b{color:var(--ink)}
.days{display:flex;overflow-x:auto;gap:0;border-bottom:1px solid var(--line);scrollbar-width:none}
.days::-webkit-scrollbar{display:none}
.days button{flex:0 0 64px;background:none;border:0;border-bottom:3px solid transparent;padding:var(--s3) 0;cursor:pointer;line-height:1.3}
.days .w{display:block;font-size:12px;color:var(--muted)}
.days .d{display:block;font-size:20px;font-weight:700}
.days .c{display:block;font-size:11px;color:var(--open);font-weight:600;min-height:15px}
.days .c.zero{color:var(--muted);font-weight:400}
.days button.on{border-bottom-color:var(--ink)}
.days .sun .w,.days .sun .d{color:var(--warn)}
.list{list-style:none}
.list li{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);border-bottom:1px solid var(--line)}
.list .t{font-size:22px;font-weight:700;width:68px;font-variant-numeric:tabular-nums}
.list .m{flex:1;font-size:14px;color:var(--muted);line-height:1.4}
.list .m b{display:block;color:var(--ink);font-size:15px}
.list .btn{min-height:44px;min-width:88px;padding:0 var(--s4)}
.st{min-width:88px;text-align:center;font-size:14px;color:var(--muted)}
.st.mine{color:var(--open);font-weight:600}
li.closed .t{color:#b5b1a6}
.empty{padding:var(--s7) var(--s4);text-align:center;color:var(--muted)}
.note{padding:var(--s4);font-size:13px;color:var(--muted);background:var(--paper);line-height:1.6}

.dim{position:fixed;inset:0;background:rgba(15,18,16,.55);z-index:10;display:none}
.dim.on{display:block}
.sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;background:var(--white);z-index:11;padding:var(--s5) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom));display:none;border-top:3px solid var(--green)}
.sheet.on{display:block}
.sheet h2{font-size:20px;margin-bottom:var(--s4)}
.sheet dl{display:grid;grid-template-columns:72px 1fr;gap:var(--s2) var(--s3);font-size:15px;margin-bottom:var(--s4)}
.sheet dt{color:var(--muted)}
.seg{display:flex;border:1px solid var(--ink);border-radius:var(--r);margin-bottom:var(--s4)}
.seg button{flex:1;min-height:44px;background:none;border:0;border-left:1px solid var(--ink);cursor:pointer}
.seg button:first-child{border-left:0}
.seg button.on{background:var(--ink);color:var(--paper);font-weight:600}
.sheet .btn{width:100%}
.sheet .sub{display:block;width:100%;margin-top:var(--s2);background:none;border:0;padding:var(--s3);color:var(--muted);cursor:pointer}
.err{color:var(--warn);font-size:14px;margin-bottom:var(--s3)}
.done{padding:var(--s6) var(--s4) var(--s4)}
.done h2{font-size:24px;margin:var(--s2) 0 var(--s3)}
.msg{margin-top:var(--s5);border:1px solid var(--line);border-radius:var(--r);font-size:14px}
.msg .h{background:#fae100;color:#3b1e1e;font-weight:600;padding:var(--s2) var(--s3)}
.msg .b{padding:var(--s3);white-space:pre-line}
.cancel{background:none;border:1px solid var(--line);border-radius:var(--r);min-height:44px;padding:0 var(--s3);cursor:pointer;font-size:14px}
.cancel.sure{border-color:var(--warn);color:var(--warn);font-weight:600}

/* ── 관리자 ───────────────────────── */
.adm{background:#eeece6}
.adm-head{background:var(--ink);color:var(--paper)}
.adm-head .wrap{display:flex;align-items:center;gap:var(--s6);height:56px}
.adm-head b{font-size:15px}
.adm-nav{display:flex;gap:var(--s5);list-style:none;font-size:14px;overflow-x:auto}
.adm-nav li{opacity:.6;white-space:nowrap}
.adm-nav li.on{opacity:1;font-weight:600;border-bottom:2px solid var(--paper)}
.adm main{padding:var(--s6) 0}
.adm h1{font-size:24px;margin-bottom:var(--s5)}
.adm-grid{display:grid;grid-template-columns:320px 1fr;gap:var(--s5);align-items:start}
@media (max-width:900px){.adm-grid{grid-template-columns:1fr}}
.panel{background:var(--white);border:1px solid var(--line);padding:var(--s5)}
.panel+.panel{margin-top:var(--s4)}
.panel h2{font-size:16px;margin-bottom:var(--s4)}
.fld{display:block;margin-bottom:var(--s3);font-size:13px;color:var(--muted)}
.fld input,.fld select{display:block;width:100%;margin-top:var(--s1);min-height:42px;border:1px solid var(--line);border-radius:var(--r);padding:0 var(--s3);background:var(--white);color:var(--ink);font-size:15px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.panel .btn{width:100%;min-height:44px}
.panel .btn.line{margin-top:var(--s2)}
.hint{font-size:13px;color:var(--muted);margin-top:var(--s2)}
.ok{font-size:13px;color:var(--open);margin-top:var(--s2);min-height:20px}
.dayhead{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap}
.dayhead input{min-height:42px;border:1px solid var(--line);border-radius:var(--r);padding:0 var(--s3);background:var(--white)}
.sum{font-size:14px;color:var(--muted)}
.sum b{color:var(--ink)}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:13px;border-bottom:1px solid var(--ink);padding:var(--s2)}
td{border-bottom:1px solid var(--line);padding:var(--s2);vertical-align:middle}
td.t{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.tag{font-size:13px;font-weight:600}
.tag.open{color:var(--open)}.tag.closed{color:var(--muted)}.tag.booked,.tag.mine{color:var(--ink)}
.acts-cell{display:flex;gap:var(--s1);flex-wrap:wrap}
.mini{background:var(--white);border:1px solid var(--line);border-radius:var(--r);min-height:32px;padding:0 var(--s2);font-size:13px;cursor:pointer}
.mini.del{color:var(--warn)}
.phone[hidden]{display:none}
.phone{display:flex;gap:var(--s1);flex-wrap:wrap;margin-top:var(--s1)}
.phone input{width:76px;min-height:32px;border:1px solid var(--line);border-radius:var(--r);padding:0 var(--s2);font-size:13px}
.tbl-wrap{overflow-x:auto}
