/* 실용음악·드럼 세계 · "밤 9시 합주실" (📚 보드 07_실용음악 §4)
 * 흡음 패널 크림 #F3F0EA(로비 면) · 합주실 웜 차콜 #2A2622(첫 화면·다른 점·연습실·무대·끝 상담) · 스틱 블랙 #171513(밝은 면 글·고정 막대·푸터)
 * 심벌 브라스 #C9973F — 딱 3곳: 상담 버튼 면(글자 #171513) · 첫 화면 비트 점 · 과정 "체험 레슨 가능" 점. 밝은 면에서 글자색으로 쓰지 않음(대비 2.31)
 * 제목 = Black Han Sans(굵기 1개 → font-weight 400 고정, 가짜 굵게 없음) · 본문 Pretendard 400/600/700 · 그라데이션 0 · 빛 번짐 0 */
:root{--head:"Black Han Sans",var(--font);--anchor:#171513;--cream:#F3F0EA;--wall:rgba(243,240,234,.34)}
html{background:var(--mood)}
.h-l,.sec-title,.cta-end h2,.setlist .n,.season,.flow p{font-family:var(--head);font-weight:400}

/* 어두운 면 — 토큰만 바꿔서 공용 조각(라벨·선·보조 글)이 그대로 맞게 */
.dk,.top,.bar,.foot{--ink:#F3F0EA;--ink-2:#B8B1A7;--line:rgba(243,240,234,.14);--surface:#34302B;color:var(--ink)}
.dk{background:var(--mood);padding-bottom:var(--sec)}
.dk-mid{margin-top:var(--sec)}
.dk-sec{padding-top:var(--sec)}

/* 버튼 — 상담 = 브라스 면 + 스틱 블랙 글자 · 보조 = 테두리 */
.btn-main{background:var(--accent);color:var(--anchor)}
.btn-line svg{margin-right:8px;flex:none}
.dk .btn-line{border-color:rgba(243,240,234,.3)}
.sec-title{font-size:32px;line-height:1.22;letter-spacing:-.01em}
@media (min-width:1024px){ .sec-title{font-size:48px;line-height:1.18} }

/* 머리 막대 · 아래 고정 막대 · 푸터 — 불투명 · backdrop-filter 없음 */
.top{background:var(--mood)}
.top-nav .btn{color:var(--anchor)}
.bar{background:var(--anchor);border-top-color:rgba(243,240,234,.1)}
.bar .b-sub{border-color:rgba(243,240,234,.22)}
.bar .b-main{background:var(--accent);color:var(--anchor)}
.foot{background:var(--anchor);border-top:0}
.foot strong{color:var(--ink)}
@media (min-width:1024px){ .bar{border:1px solid rgba(243,240,234,.14)} }

/* ── 첫 화면 ───────────────────────────── */
.hero{padding:32px 0 0}
.hero-in{position:relative}
.eyebrow{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin-bottom:16px}
.h-l{display:block;font-size:56px;line-height:1.1;letter-spacing:-.01em}
.hero-sub{margin-top:20px;font-size:16px;line-height:1.65;color:var(--ink-2)}
.hero-act{margin-top:28px;display:grid;grid-template-columns:1.25fr 1fr;grid-gap:8px;gap:8px}
.hero-act .btn{padding:0 12px}

/* 카운트인 그림 — 막대 16개(16분음표) · 박 점 4개. 멈춘 모습 = --f (잔잔한 파형) */
.beat{margin-top:44px}
.bars{position:relative;height:120px;display:grid;grid-template-columns:repeat(16,1fr);grid-column-gap:6px;column-gap:6px}
.bars .mid{position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:var(--line)}
.bt{position:relative;justify-self:center;width:6px;height:100%;border-radius:3px;background:var(--ink);opacity:.5;transform:scaleY(var(--f));transform-origin:50% 50%}
.bt.on{opacity:1}
.count{display:grid;grid-template-columns:repeat(4,1fr);grid-column-gap:6px;column-gap:6px;margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.ct{display:flex;align-items:center;margin-left:calc((100% - 18px) / 8 - 5px)}
.ct i{position:relative;flex:none;width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--wall)}
.ct i::after{content:"";position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.ct b{margin-left:8px;font-size:13px;font-weight:600;color:var(--ink-2)}

/* 한눈에 — 교습비 · 연습실 · 체험 (학부모·수강생이 제일 먼저 찾는 값) */
.quick{margin-top:56px}
.quick .q{display:flex;align-items:baseline;justify-content:space-between;padding:16px 0;border-top:1px solid var(--line)}
.quick .q:last-child{border-bottom:1px solid var(--line)}
.quick dt{font-size:14px;color:var(--ink-2)}
.quick dd{font-size:16px;font-weight:600}

/* 재생 전 모습은 html.fx 에서만 · .go 가 붙으면 한 마디 재생하고 멈춤 (transform · opacity 만) */
.fx .hero .h-in{opacity:0;transform:translate3d(0,12px,0)}
.fx .hero.go .h-in{opacity:1;transform:none;transition:opacity 600ms var(--ease-out) var(--d),transform 600ms var(--ease-out) var(--d)}
.fx .hero .h-drop{opacity:0;transform:translate3d(0,-16px,0)}
.fx .hero.go .h-drop{opacity:1;transform:none;transition:opacity 320ms var(--ease-out) var(--d),transform 520ms cubic-bezier(.2,.8,.2,1) var(--d)}
.fx .hero .bt{transform:scaleY(.06)}
.fx .hero.go .bt{animation:hit 880ms var(--ease-out) var(--d) both}
@keyframes hit{0%{transform:scaleY(.06)}20%{transform:scaleY(var(--p))}100%{transform:scaleY(var(--f))}}
.fx .hero .ct i::after{opacity:0;transform:scale(.3)}
.fx .hero.go .ct i::after{opacity:1;transform:none;transition:opacity 160ms linear var(--d),transform 300ms var(--ease-out) var(--d)}
.fx .hero .ct b{opacity:.4}
.fx .hero.go .ct b{opacity:1;transition:opacity 200ms linear var(--d)}

@media (min-width:1024px){
  .hero{padding:72px 0 0}
  .hero-in{display:grid;grid-template-columns:6fr 5fr;grid-column-gap:72px;column-gap:72px;align-items:center;min-height:440px}
  .eyebrow{font-size:15px;margin-bottom:24px}
  .h-l{font-size:104px;line-height:1.04}
  .hero-sub{font-size:18px;margin-top:28px}
  .hero-act{margin-top:40px;display:flex;align-items:center}
  .hero-act .btn{padding:0 28px;margin-right:12px}
  .beat{margin-top:0}
  .bars{height:260px;grid-column-gap:10px;column-gap:10px}
  .bt{width:8px;border-radius:4px}
  .count{grid-column-gap:10px;column-gap:10px;margin-top:8px;padding-top:18px}
  .ct{margin-left:calc((100% - 30px) / 8 - 5px)}
  .ct b{font-size:14px}
  .quick{margin-top:88px;display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:32px;column-gap:32px}
  .quick .q,.quick .q:last-child{display:block;padding:24px 0 0;border-bottom:0}
  .quick dd{margin-top:6px;font-size:22px}
}

/* ── 다른 점: 드럼 세트 선 그림 + 셋리스트 3줄 ───── */
.kit-wrap{margin:0 0 32px;color:var(--ink)}
.kit{width:100%;max-width:360px;height:auto}
.kit .thin{opacity:.35}
.kit .floor{opacity:.3}
.setlist li{display:grid;grid-template-columns:48px 1fr;padding:24px 0;border-top:1px solid var(--line)}
.setlist li:last-child{border-bottom:1px solid var(--line)}
.setlist .n{font-size:32px;line-height:1;color:var(--ink-2)}
.setlist h3{font-size:19px;font-weight:700;line-height:1.4;letter-spacing:-.02em}
.setlist p{margin-top:6px;font-size:15px;line-height:1.6;color:var(--ink-2)}
@media (min-width:1024px){
  .diff-in{display:grid;grid-template-columns:5fr 6fr;grid-column-gap:96px;column-gap:96px;align-items:start}
  .kit-wrap{margin:8px 0 0}
  .kit{max-width:420px}
  .setlist{margin-top:40px}
  .setlist li{grid-template-columns:80px 1fr;padding:40px 0}
  .setlist .n{font-size:44px}
  .setlist h3{font-size:24px}
  .setlist p{font-size:16px;margin-top:8px}
}

/* ── 과정: 목표 탭 3 · 크림 로비 ─────────── */
.tabs{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.tab{min-height:48px;border:0;border-radius:8px;background:transparent;font-size:15px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background-color 200ms,color 200ms,transform 160ms var(--ease-out)}
.tab:active{transform:scale(.96)}
.tab[aria-selected=true]{background:var(--ink);color:var(--bg)}
.goal:not(.is-tabs) .tabs{display:none}
.goal:not(.is-tabs) .panel+.panel{margin-top:32px}
.panel{margin-top:16px}
.fx .panel.shown{animation:panel-in 280ms var(--ease-out)}
@keyframes panel-in{from{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}}
.cards{display:grid;grid-row-gap:12px;row-gap:12px}
.card{background:var(--surface);border-radius:12px;padding:20px}
.card .grade{display:block;font-size:13px;font-weight:600;color:var(--ink-2)}
.card h4{margin:4px 0 0;font-size:19px;font-weight:700;line-height:1.4;letter-spacing:-.02em}
.card p{margin-top:8px;font-size:15px;line-height:1.6;color:var(--ink-2)}
.card .meta{display:inline-block;margin-top:14px;font-size:14px;font-weight:600}
.trial-mark{display:inline-flex;align-items:center;margin:14px 0 0 16px;font-size:14px;font-weight:600}
.trial-mark i{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:8px;flex:none}
@media (min-width:1024px){
  .tabs{display:inline-grid;grid-template-columns:repeat(3,160px)}
  .panel{margin-top:24px}
  .card{display:grid;grid-template-columns:200px 1fr 240px;grid-column-gap:32px;column-gap:32px;align-items:center;padding:28px 32px}
  .card .grade{grid-column:1;grid-row:1 / span 2;font-size:14px}
  .card h4{grid-column:2;margin:0;font-size:21px}
  .card p{grid-column:2;margin-top:4px}
  .card .meta{grid-column:3;grid-row:1;margin:0;justify-self:end;font-size:15px}
  .trial-mark{grid-column:3;grid-row:2;margin:4px 0 0;justify-self:end}
}

/* ── 연습실: 평면도 (사진 대신 · 벽 = 2px 틈) ───── */
.plan{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(4,72px);grid-gap:2px;gap:2px;padding:2px;background:var(--wall);border-radius:4px}
.room{position:relative;background:var(--mood);padding:10px 12px;overflow:hidden}
.room b{display:block;font-size:14px;font-weight:600;line-height:1.35}
.room small{display:block;font-size:12px;color:var(--ink-2);line-height:1.4;margin-top:2px}
.room.free{background:var(--surface)}
.r-band{grid-column:1 / 5;grid-row:1 / 3}
.r-lesson{grid-column:5 / 7;grid-row:1}
.r-vocal{grid-column:5 / 7;grid-row:2}
.r-p1{grid-column:1 / 3;grid-row:3}
.r-p2{grid-column:3 / 5;grid-row:3}
.r-p3{grid-column:5 / 7;grid-row:3}
.r-lobby{grid-column:1 / 5;grid-row:4}
.r-door{grid-column:5 / 7;grid-row:4;padding-left:40px}
.r-door .door{position:absolute;left:8px;bottom:8px;color:var(--ink-2)}
.r-band b{font-size:16px}
.facts{margin-top:24px}
.facts div{display:grid;grid-template-columns:64px 1fr;padding:14px 0;border-top:1px solid var(--line)}
.facts div:last-child{border-bottom:1px solid var(--line)}
.facts dt{font-size:14px;color:var(--ink-2)}
.facts dd{font-size:15px;font-weight:600;line-height:1.55}
@media (min-width:1024px){
  .studio-in{display:grid;grid-template-columns:4fr 7fr;grid-column-gap:80px;column-gap:80px;align-items:start}
  .plan{grid-template-rows:repeat(4,96px)}
  .room{padding:16px 20px}
  .room b{font-size:16px}
  .room small{font-size:13px}
  .r-band b{font-size:20px}
  .r-door{padding-left:52px}
  .facts{display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:24px;column-gap:24px;margin-top:32px}
  .facts div,.facts div:last-child{display:block;border-bottom:0;padding:16px 0 0}
  .facts dd{margin-top:4px}
}

/* ── 무대: 두 줄 반대 방향 흐름 띠(M-H07 · 0.9초 한 번) + 계절 3줄 ── */
.flow{overflow:hidden;margin:8px 0 40px}
.flow p{white-space:nowrap;font-size:40px;line-height:1.3;will-change:auto}
.flow i{font-style:normal;margin:0 .35em;color:var(--ink-2)}
.flow .f1{transform:translate3d(-14%,0,0)}
.flow .f2{color:transparent;-webkit-text-stroke:1px var(--wall);transform:translate3d(-24%,0,0)}
.flow .f2 i{color:transparent}
.fx .flow .f1{transform:translate3d(-4%,0,0)}
.fx .flow .f2{transform:translate3d(-34%,0,0)}
.fx .flow.is-in .f1{transform:translate3d(-14%,0,0);transition:transform 900ms var(--ease-out)}
.fx .flow.is-in .f2{transform:translate3d(-24%,0,0);transition:transform 900ms var(--ease-out)}
.seasons li{display:grid;grid-template-columns:64px 1fr;padding:20px 0;border-top:1px solid var(--line)}
.seasons li:last-child{border-bottom:1px solid var(--line)}
.season{grid-row:1 / span 2;font-size:22px;line-height:1.2}
.seasons h3{font-size:18px;font-weight:700;line-height:1.4}
.seasons p{margin-top:4px;font-size:15px;line-height:1.6;color:var(--ink-2)}
@media (min-width:1024px){
  .flow{margin:16px 0 64px}
  .flow p{font-size:80px;line-height:1.2}
  .seasons{display:grid;grid-template-columns:repeat(3,1fr)}
  .seasons li,.seasons li:last-child{display:block;padding:32px 32px 0;border-bottom:0;border-left:1px solid var(--line)}
  .seasons li:first-child{padding-left:0;border-left:0}
  .season{display:block;font-size:28px;margin-bottom:16px}
  .seasons h3{font-size:21px}
}

/* ── 시간표: 요일 × 시간대 칸 · 저녁 칸만 차콜로 ("퇴근하고도") ── */
.wk{display:grid;grid-row-gap:6px;row-gap:6px}
.wk-row{display:grid;grid-template-columns:56px repeat(6,1fr);grid-column-gap:4px;column-gap:4px;align-items:center}
.wk-head span{text-align:center;font-size:13px;font-weight:600;color:var(--ink-2)}
.wk-t{font-size:15px;font-weight:700;line-height:1.3}
.wk-t small{display:block;font-size:11px;font-weight:400;color:var(--ink-2)}
.cell{display:flex;align-items:center;justify-content:center;min-height:56px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:-.03em;border:1px dashed var(--line)}
.cell.on{background:var(--surface);border:1px solid transparent}
.eve .cell.on{background:var(--mood);color:var(--cream)}
.wk-note{margin-top:20px;font-size:14px;line-height:1.7;color:var(--ink-2)}
@media (min-width:1024px){
  .wk{max-width:880px;grid-row-gap:8px;row-gap:8px}
  .wk-row{grid-template-columns:120px repeat(6,1fr);grid-column-gap:8px;column-gap:8px}
  .wk-head span{font-size:14px}
  .wk-t{font-size:17px}
  .wk-t small{font-size:13px}
  .cell{min-height:72px;font-size:15px;letter-spacing:0}
}

/* ── 원장 인사 (크림 · 철학만) ─────────── */
.director blockquote{margin:0}
.director blockquote p{font-size:28px;font-weight:700;line-height:1.4;letter-spacing:-.03em}
.dir-body{margin-top:32px;max-width:32em}
.dir-body p{color:var(--ink-2);font-size:16px;line-height:1.75}
.dir-body p+p{margin-top:12px}
.dir-body .sign{margin-top:28px;color:var(--ink);font-weight:600;font-size:15px}
.dir-body .sign::before{content:"";display:inline-block;width:24px;height:2px;background:var(--ink);vertical-align:middle;margin-right:12px}
@media (min-width:1024px){
  .dir-in{display:grid;grid-template-columns:6fr 5fr;grid-column-gap:96px;column-gap:96px;align-items:end}
  .director .sec-label{grid-column:1 / -1}
  .director blockquote p{font-size:44px;line-height:1.3}
  .dir-body{margin:0}
}

/* ── 교습비 + 체험 레슨 한 줄 ─────────── */
.trial{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:20px;background:var(--surface);border-radius:12px}
.trial b{display:block;font-size:16px;font-weight:700}
.trial span{display:block;font-size:14px;color:var(--ink-2);margin-top:2px}
.trial strong{font-size:19px;font-weight:700;white-space:nowrap;margin-left:16px}
.fee-note{line-height:1.7}
@media (min-width:1024px){
  .fees-in{display:grid;grid-template-columns:4fr 7fr;grid-column-gap:80px;column-gap:80px;align-items:start}
  .trial{padding:24px 32px}
  .fees td.fee strong{font-size:20px}
}

/* ── 끝 상담 (차콜) ─────────────────── */
.cta-end.dk{margin-top:var(--sec);padding:var(--sec) 0}
.cta-end .wrap>div{border-top:0;padding-top:0}
.cta-end h2{font-size:36px;line-height:1.2;letter-spacing:-.01em}
.cta-end p{line-height:1.65}
.end-act{display:grid;grid-row-gap:8px;row-gap:8px;margin-top:32px}
.end-act .btn{margin:0;width:100%}
@media (min-width:1024px){
  .cta-end h2{font-size:56px}
  .end-act{display:flex;align-items:center}
  .end-act .btn{width:auto;padding:0 32px;margin-right:12px}
}
