/* 강남 엘리트 — 스카이라인 나이트뷰 */
:root{
  --bg:#060a1c;--bg2:#0a1230;--bg3:#101c44;
  --panel:rgba(17,28,68,.58);--panel2:rgba(10,18,48,.72);
  --line:rgba(255,190,100,.22);--line2:rgba(150,178,255,.15);
  --amber:#ffb547;--amber2:#ffd98f;--glow:rgba(255,181,71,.38);
  --sky:#8fb0ff;--rose:#ff6b7d;
  --text:#e9edf9;--muted:#a6b1d3;
  --ok:#5fe0a8;--mid:#ffcf5a;--hot:#ff7a6b;
  --radius:18px;--shadow:0 24px 60px -28px rgba(0,0,0,.75);
  --num:"Montserrat","Noto Sans KR",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;color-scheme:dark;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:"Noto Sans KR",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:16px;line-height:1.78;word-break:keep-all;overflow-wrap:break-word;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:200;background:var(--amber);color:#1a1200;padding:8px 14px;border-radius:8px;font-weight:700}
.num{font-family:var(--num);font-weight:800;letter-spacing:-.01em}

/* ---------- 헤더 ---------- */
.top{position:fixed;inset:0 0 auto;z-index:60;transition:background .35s,border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
.top.scrolled,.top.solid{background:rgba(6,10,28,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line2)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:66px}
.brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand svg{width:34px;height:34px;flex:none}
.brand-txt{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.brand-txt strong{font-size:17px;font-weight:900;letter-spacing:.02em;white-space:nowrap}
.brand-txt span{font-family:var(--num);font-size:9.5px;letter-spacing:.34em;color:var(--amber);white-space:nowrap}
.top-right{display:flex;align-items:center;gap:10px;flex:none}
.age{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.6px solid var(--rose);color:var(--rose);font-family:var(--num);font-weight:800;font-size:12px}
.top-call{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:linear-gradient(135deg,var(--amber2),var(--amber));color:#1b1300;font-weight:700;font-size:14px;box-shadow:0 8px 24px -8px var(--glow);transition:transform .2s,box-shadow .2s;white-space:nowrap}
.top-call:hover{transform:translateY(-2px);box-shadow:0 12px 30px -8px var(--glow)}
.top-call svg{width:16px;height:16px}

/* ---------- 히어로 ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-start;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#03061a 0%,#081033 30%,#141a52 52%,#3a2560 70%,#7c3d6a 83%,#d9795f 94%,#f4a45c 100%)}
.hero::after{content:"";position:absolute;left:50%;bottom:8%;width:140%;height:46%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 100%,rgba(255,170,90,.42),transparent 62%);z-index:-1;pointer-events:none}
.stars,.stars2{position:absolute;inset:0 0 35% 0;z-index:-2;pointer-events:none}
.stars i,.stars2 i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff}
.stars2{animation:twinkle 4.6s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.25}to{opacity:1}}
.moon{position:absolute;top:13%;right:11%;width:86px;height:86px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle at 36% 34%,#fffaf0 0%,#ffe9c2 45%,#f2cf96 100%);box-shadow:0 0 60px 18px rgba(255,226,170,.28),0 0 160px 40px rgba(255,200,130,.12)}
.moon::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 64% 60%,rgba(190,150,100,.28) 0 9%,transparent 10%),radial-gradient(circle at 40% 68%,rgba(190,150,100,.22) 0 6%,transparent 7%),radial-gradient(circle at 58% 30%,rgba(190,150,100,.2) 0 5%,transparent 6%)}
.sky-layer{position:absolute;left:0;right:0;bottom:0;pointer-events:none;will-change:transform}
.sky-layer svg{width:100%;height:100%}
.l-far{height:clamp(200px,44vh,430px);z-index:-1;opacity:.75}
.l-mid{height:clamp(170px,36vh,350px);z-index:0}
.l-near{height:clamp(120px,24vh,240px);z-index:1}
.win{fill:#1b2656;transition:fill .6s}
.win.on{fill:#ffc86e}
.l-mid .win.on{fill:#f7b865;opacity:.75}
.l-far .win.on{fill:#d9a36a;opacity:.55}
.beacon{fill:var(--rose);animation:beacon 1.8s steps(1) infinite}
@keyframes beacon{0%,55%{opacity:1}56%,100%{opacity:.12}}
.road{position:absolute;left:0;right:0;bottom:0;height:12px;z-index:2;background:linear-gradient(180deg,#05081a,#020410);overflow:hidden}
.trail{position:absolute;top:4px;height:2px;width:140px;border-radius:2px;opacity:.9}
.trail.r{background:linear-gradient(90deg,transparent,#ff5a5a);animation:drive-l 7s linear infinite}
.trail.w{top:7px;background:linear-gradient(90deg,#fff6d6,transparent);animation:drive-r 6s linear infinite}
@keyframes drive-l{from{transform:translateX(110vw)}to{transform:translateX(-160px)}}
@keyframes drive-r{from{transform:translateX(-160px)}to{transform:translateX(110vw)}}
.hero-inner{position:relative;z-index:5;width:100%;padding-top:clamp(118px,17vh,170px);padding-bottom:clamp(220px,40vh,420px)}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(8,14,40,.5);font-size:13px;color:var(--amber2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero-kicker .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(95,224,168,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(95,224,168,0)}100%{box-shadow:0 0 0 0 rgba(95,224,168,0)}}
.hero h1{margin:22px 0 18px;font-size:clamp(2.05rem,5.4vw,4.1rem);font-weight:900;line-height:1.2;letter-spacing:-.02em;text-shadow:0 6px 30px rgba(0,0,0,.45)}
.hero h1 .glow{background:linear-gradient(100deg,#fff4dc 0%,var(--amber2) 35%,var(--amber) 60%,#fff4dc 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s linear infinite}
.hero h1 .sub{display:block;margin-top:10px;font-size:.5em;font-weight:700;color:#dfe5fb;letter-spacing:0}
@keyframes sheen{to{background-position:-220% 0}}
.hero-lead{max-width:620px;color:#cfd7f3;font-size:clamp(15px,1.6vw,17.5px)}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 24px;border-radius:999px;font-weight:700;font-size:15.5px;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn-main{background:linear-gradient(135deg,var(--amber2),var(--amber));color:#1b1300;box-shadow:0 14px 34px -12px var(--glow)}
.btn-main:hover{transform:translateY(-3px);box-shadow:0 20px 40px -12px var(--glow)}
.btn-ghost{border:1px solid rgba(255,255,255,.28);background:rgba(10,16,44,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--amber2);transform:translateY(-3px)}
.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:40px;max-width:760px}
.hero-stats > div{padding:14px 16px;border-radius:14px;background:rgba(8,14,40,.5);border:1px solid var(--line2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero-stats dt{font-size:12.5px;color:var(--muted)}
.hero-stats dd{font-family:var(--num);font-weight:800;font-size:clamp(18px,2.4vw,25px);color:var(--amber2);line-height:1.3}
.hero-stats dd small{font-family:"Noto Sans KR",sans-serif;font-size:.55em;font-weight:500;color:#dfe5fb;margin-left:2px}
@media (max-width:720px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.moon{width:58px;height:58px;top:11%;right:7%}}

/* ---------- 공통 섹션 ---------- */
.sec{position:relative;padding:clamp(76px,10vw,124px) 0}
.sec-alt{background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 45%,var(--bg) 100%)}
.sec-grid::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 0%,transparent 70%);mask-image:radial-gradient(ellipse at 50% 40%,#000 0%,transparent 70%)}
.sec > .wrap{position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;color:var(--amber);letter-spacing:.08em}
.eyebrow b{font-family:var(--num);font-weight:800;font-size:12px;padding:3px 8px;border-radius:6px;border:1px solid var(--line);color:var(--amber2)}
.sec h2{font-size:clamp(1.6rem,3.3vw,2.4rem);font-weight:800;line-height:1.35;letter-spacing:-.015em;margin:14px 0 16px}
.sec h3{font-size:1.14rem;font-weight:700;line-height:1.5;margin-bottom:8px}
.sec h4{font-size:.98rem;font-weight:700;color:var(--amber2);margin-bottom:6px}
.lead{color:var(--muted);max-width:760px;font-size:16.5px}
.head{margin-bottom:40px}
.head-center{text-align:center}
.head-center .lead{margin:0 auto}
.card{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line2);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .3s,border-color .3s}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.55}
.card:hover{border-color:var(--line)}
.card p{color:var(--muted);font-size:15.5px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:center}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr);gap:32px}}
.icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;background:linear-gradient(145deg,rgba(255,181,71,.2),rgba(255,181,71,.04));border:1px solid var(--line)}
.icon svg{width:22px;height:22px;stroke:var(--amber2);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.note{margin-top:22px;font-size:14px;color:var(--muted);padding-left:14px;border-left:2px solid var(--amber)}

/* ---------- 표 ---------- */
.tbl{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line2);background:var(--panel2);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.tbl table{width:100%;border-collapse:collapse;min-width:580px}
.tbl caption{caption-side:top;text-align:left;padding:16px 22px 4px;color:var(--muted);font-size:13.5px}
.tbl th,.tbl td{padding:16px 22px;text-align:left;border-top:1px solid var(--line2);font-size:15px;vertical-align:top}
.tbl thead th{border-top:0;color:var(--amber2);font-weight:700;background:rgba(255,181,71,.07);font-size:14px}
.tbl tbody th{font-weight:700;white-space:nowrap}
.tbl td{color:#cdd5f0}
.tbl td.num{white-space:nowrap}
.tbl tbody tr{transition:background .2s}
.tbl tbody tr:hover{background:rgba(255,181,71,.05)}
.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:700;background:rgba(255,181,71,.14);color:var(--amber2);white-space:nowrap}

/* ---------- 예약 현황 대시보드 ---------- */
.dash{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:20px}
@media (max-width:860px){.dash{grid-template-columns:minmax(0,1fr)}}
.dash-now{display:flex;flex-direction:column;gap:22px}
.now-part{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px}
.now-part .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);animation:pulse 2s infinite}
.ring-box{display:flex;align-items:center;gap:22px}
.ring{position:relative;width:128px;height:128px;flex:none}
.ring svg{width:128px;height:128px;transform:rotate(-90deg)}
.ring .track{stroke:rgba(150,178,255,.14)}
.ring .bar{stroke:url(#ringGrad);stroke-linecap:round;transition:stroke-dashoffset 1.2s ease}
.ring-val{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:1.15}
.ring-val strong{font-family:var(--num);font-size:30px;font-weight:800;color:var(--amber2);display:block}
.ring-val span{font-size:12px;color:var(--muted)}
.mini-stats{display:grid;gap:10px;min-width:0}
.mini-stats > div{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted);border-bottom:1px dashed var(--line2);padding-bottom:8px}
.mini-stats b{color:var(--text);font-family:var(--num);font-weight:700;white-space:nowrap}
.stamp{font-size:12.5px;color:var(--muted)}
.slots{display:grid;gap:12px;margin-top:6px}
.slot{display:grid;grid-template-columns:62px minmax(0,1fr) 84px;align-items:center;gap:14px}
.slot-t{font-family:var(--num);font-weight:700;font-size:14px;color:#dfe5fb}
.slot-bar{height:10px;border-radius:999px;background:rgba(150,178,255,.12);overflow:hidden}
.slot-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--ok),var(--mid));transition:width 1.2s ease}
.slot[data-s="hot"] .slot-bar i{background:linear-gradient(90deg,var(--mid),var(--hot))}
.slot-s{justify-self:end;font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.slot[data-s="ok"] .slot-s{color:var(--ok);background:rgba(95,224,168,.12)}
.slot[data-s="mid"] .slot-s{color:var(--mid);background:rgba(255,207,90,.12)}
.slot[data-s="hot"] .slot-s{color:var(--hot);background:rgba(255,122,107,.13)}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line2)}
.legend > div{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted)}
.legend i{width:10px;height:10px;border-radius:3px;flex:none}

/* ---------- 영업 시간 ---------- */
.clock-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:24px;align-items:stretch}
@media (max-width:900px){.clock-wrap{grid-template-columns:minmax(0,1fr)}}
.dial{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.dial svg{width:min(240px,70vw);height:auto}
.dial-legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:13.5px;color:var(--muted)}
.dial-legend span{display:flex;align-items:center;gap:6px}
.dial-legend i{width:12px;height:12px;border-radius:3px}

/* ---------- 시간대 카드 ---------- */
.time-card .time{font-family:var(--num);font-weight:800;font-size:22px;color:var(--amber2);margin:4px 0 10px;display:block}
.time-card.hot .time{color:var(--hot)}

/* ---------- 계산기 ---------- */
.calc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px}
@media (max-width:900px){.calc{grid-template-columns:minmax(0,1fr)}}
.field{margin-bottom:24px}
.field:last-child{margin-bottom:0}
.field-label{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;font-size:15px;margin-bottom:12px}
.field-label output{font-family:var(--num);color:var(--amber2);font-size:20px}
.seg{display:grid;gap:8px;grid-template-columns:repeat(var(--n,2),minmax(0,1fr))}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:8px 6px;text-align:center;border-radius:12px;border:1px solid var(--line2);background:rgba(8,14,40,.55);font-size:14.5px;font-weight:700;line-height:1.35;transition:all .2s}
.seg span small{font-weight:400;font-size:11.5px;color:var(--muted)}
.seg input:checked + span{border-color:var(--amber);background:linear-gradient(145deg,rgba(255,181,71,.22),rgba(255,181,71,.06));box-shadow:0 0 0 1px var(--amber) inset,0 10px 24px -14px var(--glow)}
.seg input:focus-visible + span{outline:2px solid var(--amber);outline-offset:2px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--amber) var(--p,20%),rgba(150,178,255,.16) var(--p,20%));outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff4dc;border:4px solid var(--amber);box-shadow:0 0 0 6px rgba(255,181,71,.18);cursor:pointer}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff4dc;border:4px solid var(--amber);cursor:pointer}
.result{display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(160deg,rgba(40,34,80,.8),rgba(12,18,50,.85));border-color:var(--line)}
.card .result-label{font-size:14px;color:var(--muted)}
.card .result-sum{font-family:var(--num);font-weight:800;font-size:clamp(26px,3.6vw,36px);line-height:1.25;margin:8px 0 4px;color:#fff4dc;text-shadow:0 0 24px rgba(255,181,71,.35)}
.result-sum small{font-family:"Noto Sans KR",sans-serif;font-size:.45em;font-weight:500;color:var(--muted)}
.breakdown{list-style:none;margin:22px 0;display:grid;gap:10px}
.breakdown li{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;color:var(--muted);padding-bottom:10px;border-bottom:1px dashed var(--line2)}
.breakdown li b{color:var(--text);font-family:var(--num);font-weight:700;white-space:nowrap}
.warn{min-height:22px;font-size:13.5px;color:var(--mid)}

/* ---------- 원칙 / 절차 ---------- */
.rule{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:start;padding:26px 0;border-bottom:1px solid var(--line2)}
.rule:first-child{padding-top:0}
.rule:last-child{border-bottom:0}
.rule-no{font-family:var(--num);font-weight:800;font-size:40px;line-height:1;background:linear-gradient(180deg,var(--amber2),rgba(255,181,71,.15));-webkit-background-clip:text;background-clip:text;color:transparent}
.rule p{color:var(--muted)}
.steps{list-style:none;counter-reset:st;display:grid;gap:14px;margin-top:6px}
.steps li{counter-increment:st;display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start}
.steps li::before{content:counter(st);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-family:var(--num);font-weight:800;color:#1b1300;background:linear-gradient(135deg,var(--amber2),var(--amber))}
.steps li > div{padding-top:7px;color:var(--muted);font-size:15.5px}
.steps li strong{color:var(--text)}
.bars{display:grid;gap:16px;margin-top:18px}
.bars > div{display:grid;gap:6px}
.bars .lbl{display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}
.bars .lbl b{font-family:var(--num);color:var(--amber2)}
.bars .track{height:12px;border-radius:999px;background:rgba(150,178,255,.12);overflow:hidden}
.bars .track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--amber),var(--amber2));transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.bars .track i.sky{background:linear-gradient(90deg,#5d7ee8,var(--sky))}

/* ---------- 타임라인 ---------- */
.floors{list-style:none;position:relative;display:grid;gap:18px;padding-left:34px}
.floors::before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--amber),rgba(255,181,71,.08))}
.floors li{position:relative}
.floors li::before{content:"";position:absolute;left:-30px;top:8px;width:14px;height:14px;border-radius:4px;background:var(--bg);border:2px solid var(--amber);box-shadow:0 0 12px var(--glow)}
.floors time{font-family:var(--num);font-weight:700;font-size:13.5px;color:var(--amber2)}
.floors p{color:var(--muted);font-size:15.5px}
.history{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:8px}
@media (max-width:900px){.history{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.history{grid-template-columns:minmax(0,1fr)}}
.history li{padding:18px;border-radius:14px;background:rgba(8,14,40,.55);border:1px solid var(--line2);border-top:3px solid var(--amber)}
.history b{display:block;font-family:var(--num);font-weight:800;font-size:22px;color:var(--amber2)}
.history span{display:block;font-size:14.5px;color:var(--muted);margin-top:4px}
.quote{position:relative;margin-top:28px;padding:30px 30px 30px 34px;border-radius:var(--radius);background:linear-gradient(135deg,rgba(255,181,71,.1),rgba(20,30,72,.6));border:1px solid var(--line)}
.quote::before{content:"\201C";position:absolute;top:-8px;left:18px;font-family:Georgia,serif;font-size:80px;line-height:1;color:var(--amber);opacity:.55}
.quote p{font-size:17px;line-height:1.8;color:#e6ebfb}
.quote cite{display:block;margin-top:12px;font-style:normal;font-size:14px;color:var(--amber2)}
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}
@media (max-width:720px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}
.team > div{text-align:center;padding:18px 10px;border-radius:14px;background:rgba(8,14,40,.55);border:1px solid var(--line2)}
.team b{display:block;font-family:var(--num);font-weight:800;font-size:28px;color:var(--amber2)}
.team span{font-size:13.5px;color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;max-width:880px;margin:0 auto}
.faq details{border-radius:16px;background:var(--panel);border:1px solid var(--line2);transition:border-color .3s,background .3s}
.faq details[open]{border-color:var(--line);background:rgba(24,34,80,.7)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;font-weight:700;font-size:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg) translateY(-3px);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq summary h3{font-size:16px;margin:0;font-weight:700}
.faq .ans{padding:0 24px 22px;color:var(--muted);font-size:15.5px}

/* ---------- 지도 ---------- */
.map-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px;align-items:stretch}
@media (max-width:900px){.map-wrap{grid-template-columns:minmax(0,1fr)}}
.info-list{display:grid;gap:16px;margin-top:6px}
.info-list > div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line2)}
.info-list dt{font-size:14px;color:var(--amber2);font-weight:700}
.info-list dd{font-size:15px;color:#d6ddf5}
.map{position:relative;min-height:380px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.92) hue-rotate(185deg) saturate(.7) brightness(.95)}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;text-align:center;border-radius:28px;padding:clamp(48px,7vw,80px) 24px clamp(110px,14vw,150px);
  background:radial-gradient(ellipse at 50% 120%,rgba(255,170,90,.55),transparent 60%),linear-gradient(180deg,#0b1438,#2a1f58 70%,#5b3160);border:1px solid var(--line);box-shadow:0 40px 90px -40px rgba(255,160,80,.45)}
.cta h2{margin-top:10px}
.cta p{color:#d6ddf5;max-width:560px;margin:0 auto}
.cta .hero-btns{justify-content:center}
.cta-sky{position:absolute;left:0;right:0;bottom:0;height:90px;pointer-events:none}
.cta-sky svg{width:100%;height:100%}

/* ---------- 플로팅 배너 ---------- */
.float{position:fixed;right:22px;bottom:22px;z-index:70;display:flex;align-items:center;gap:8px;padding:8px;border-radius:999px;background:rgba(8,12,34,.86);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 50px -18px rgba(0,0,0,.8),0 0 0 1px rgba(255,181,71,.08);transform:translateY(140%);opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .5s}
.float.show,.no-js .float{transform:none;opacity:1}
.float a{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:999px;font-weight:700;font-size:14.5px;white-space:nowrap}
.float .f-main{padding:0 20px;background:linear-gradient(135deg,var(--amber2),var(--amber));color:#1b1300;position:relative}
.float .f-main::after{content:"";position:absolute;inset:-4px;border-radius:999px;border:2px solid var(--amber);opacity:0;animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{opacity:.7;transform:scale(.96)}100%{opacity:0;transform:scale(1.18)}}
.float .f-sub{width:46px;background:rgba(255,255,255,.07);border:1px solid var(--line2)}
.float svg{width:19px;height:19px}
@media (max-width:640px){
  .float{left:12px;right:12px;bottom:12px;justify-content:stretch;border-radius:18px;padding:7px}
  .float .f-main{flex:1;border-radius:13px}
  .float .f-sub{border-radius:13px;width:50px}
  body{padding-bottom:76px}
}

/* ---------- 푸터 ---------- */
.foot{border-top:1px solid var(--line2);background:#040716;padding:48px 0 40px;font-size:14px;color:var(--muted)}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start}
.foot-links{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px}
.foot-links a{color:#d6ddf5;font-weight:500}
.foot-links a:hover{color:var(--amber2)}
.foot-info{margin-top:24px;line-height:1.9}
.foot-age{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,107,125,.3);background:rgba(255,107,125,.06);font-size:13.5px}

/* ---------- 하위 페이지 ---------- */
.page-hero{position:relative;padding:130px 0 56px;background:linear-gradient(180deg,#03061a,#101a4a 70%,var(--bg));overflow:hidden}
.page-hero .mini-sky{position:absolute;left:0;right:0;bottom:0;height:70px;opacity:.7}
.page-hero .mini-sky svg{width:100%;height:100%}
.crumb{list-style:none;display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--muted);margin-bottom:14px}
.crumb li + li::before{content:"/";margin-right:8px;opacity:.5}
.crumb a:hover{color:var(--amber2)}
.page-hero h1{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:900;line-height:1.3}
.page-hero p{color:var(--muted);margin-top:10px;max-width:720px}
.doc{padding:56px 0 96px}
.doc .wrap{max-width:860px}
.doc h2{font-size:1.3rem;font-weight:800;margin:40px 0 12px;padding-left:14px;border-left:3px solid var(--amber)}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:1.05rem;font-weight:700;margin:22px 0 8px;color:var(--amber2)}
.doc p,.doc li{color:#cdd5f0;font-size:15.5px}
.doc ul,.doc ol{padding-left:22px;display:grid;gap:6px;margin-top:8px}
.doc .tbl{margin-top:14px}
.doc .meta{margin-top:40px;font-size:14px;color:var(--muted)}

/* ---------- 등장 효과 ---------- */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
}
@media (max-width:480px){
  .wrap{padding-left:16px;padding-right:16px}
  .moon{top:84px;right:16px;width:48px;height:48px}
  .hero-inner{padding-bottom:clamp(200px,34vh,300px)}
  .card{padding:22px 18px}
  .tbl th,.tbl td{padding:14px 16px}
  .top-call .t-long{display:none}
  .slot{grid-template-columns:52px minmax(0,1fr) 76px;gap:10px}
  .ring-box{flex-direction:column;align-items:flex-start}
}
