/* 키즈 스포츠·태권도 세계 · "체육관 마루의 검은 라인 위, 공이 튀는 한 순간" (📚 보드 04_키즈스포츠 §4)
 * 도복 흰 #F5F4EF · 검은 띠 #15171A(글자·라인·어두운 면) · 체육관 마루 #E4C394(시간표 띠만) · 농구공 오렌지 #D46F2A(상담 버튼 면 · 궤적 점 · 시간표 오늘 · 5%)
 * 오렌지 버튼 글자는 검정(5.22:1) · 흰 글자 ✕(3.44) · 마루 면 위 버튼은 검정
 * 제목 = Do Hyeon(도현체) · 본문·숫자 Pretendard 400/600/800 · 모서리 0~4 · 격자 대신 바닥 라인과 궤적 */
:root{--head:"Do Hyeon",var(--font);--r-card:4px;--r-btn:4px;--on-accent:#15171A}
.h-l,.sec-title,.cta-end h2,.director blockquote p,.diff-grid h3,.belt-t,.lineup h3{font-family:var(--head);font-weight:400;letter-spacing:-.01em}
.sec-title{font-size:30px;line-height:1.22}
.cta-end h2{font-size:30px;line-height:1.22}
@media (min-width:1024px){ .sec-title,.cta-end h2{font-size:46px;line-height:1.16} }

/* 상담 버튼 = 오렌지 면 + 검정 글자 (보드 강조 ①) */
.btn-main{background:var(--accent);color:var(--on-accent)}
.top-nav .btn{color:var(--on-accent)}
.bar .b-main{background:var(--accent);color:var(--on-accent)}
img,svg{max-width:none}

/* ── 첫 화면 ───────────────────────────── */
.hero{position:relative;padding:20px 0 0;overflow:hidden}
.hero-head{position:relative}
.eyebrow{display:block;font-size:14px;line-height:20px;font-weight:600;color:var(--ink-2);margin-bottom:12px;white-space:nowrap}
.gap{display:block;padding-top:45.14%}               /* 158/350 — 무대 높이만큼 비움 */
.hero-fig{position:absolute;left:0;right:0;top:32px;pointer-events:none}
.stage{display:block;width:100%;height:auto;overflow:visible}
.stage-w{display:none}
.stage .floor{stroke:var(--ink);stroke-width:3;stroke-linecap:square}
.stage .ct{fill:none;stroke:rgba(21,23,26,.14);stroke-width:1.5}
.stage .kk{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;opacity:var(--o)}
.stage .bs{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}
.stage .tr{fill:var(--accent);opacity:var(--o)}
.bl{fill:#FFFFFF}
.pg{fill:var(--ink)}
.sl{fill:none;stroke:var(--ink);stroke-linecap:round}
.bo{fill:none;stroke:var(--ink)}
.h-l{display:block;font-size:70px;line-height:1.04;margin-top:12px;color:var(--ink);white-space:nowrap}
.h-l+.h-l{margin-top:2px}
.h-l .w{display:inline-block;transform-origin:50% 100%}
.spd{display:inline-block;vertical-align:middle;width:56px;margin-left:6px;transform:skewX(-28deg)}
.spd i{display:block;height:6px;background:var(--ink);transform-origin:0 50%}
.spd i+i{margin-top:6px}
.spd i:nth-child(1){width:48px}
.spd i:nth-child(2){width:32px;margin-left:10px}
.spd i:nth-child(3){width:40px;margin-left:4px}
.hero-sub{margin-top:18px;font-size:17px;line-height:1.6;color:var(--ink-2)}
.hero-act{margin-top:24px;display:flex;align-items:center;flex-wrap:wrap}
.hero-act .btn{margin-right:20px;padding:0 28px;font-weight:700}
.quick{display:grid;grid-template-columns:1fr 1fr 1fr;margin:32px 0 0;border-top:2px solid var(--ink)}
.quick div{padding:14px 0 16px 12px;border-left:1px solid var(--line)}
.quick div:first-child{padding-left:0;border-left:0}
.quick dt{font-size:12px;font-weight:600;color:var(--ink-2)}
.quick dd{margin:2px 0 0;font-size:16px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}

/* 재생 전 모습은 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 560ms var(--ease-out) var(--d),transform 560ms var(--ease-out) var(--d)}
.fx .hero .w{opacity:0;transform:translate3d(0,-34px,0) scale(1.1)}
.fx .hero.go .w{opacity:1;transform:none;transition:opacity 160ms linear var(--d),transform 420ms cubic-bezier(.3,.7,.2,1) var(--d)}
.fx .hero .spd i{transform:scaleX(0)}
.fx .hero.go .spd i{transform:scaleX(1);transition:transform 360ms var(--ease-out) var(--d)}
.fx .hero .floor{transform:scaleX(0);transform-box:fill-box;transform-origin:0 50%}
.fx .hero.go .floor{transform:scaleX(1);transition:transform 620ms cubic-bezier(.65,0,.35,1)}
.fx .hero .ct{opacity:0}
.fx .hero.go .ct{opacity:1;transition:opacity 600ms var(--ease-out) 700ms}
.fx .hero .kk,.fx .hero .tr{opacity:0}
.fx .hero.go .kk,.fx .hero.go .tr{opacity:var(--o);transition:opacity 140ms linear var(--d)}
.fx .hero .bs{transform:scaleX(0);transform-box:fill-box;transform-origin:0 50%}
.fx .hero.go .bs{transform:scaleX(1);transition:transform 260ms var(--ease-out) var(--d)}
.fx .hero .ball{opacity:0}
.fx .hero.go .ball{opacity:1;transition:opacity 160ms linear 60ms}
.spin{transform-box:fill-box;transform-origin:50% 50%}
.fx .hero.go .spin{animation:spin var(--D) cubic-bezier(.3,.6,.4,1) var(--d) 1 both}
@keyframes spin{from{transform:rotate(-40deg)}to{transform:rotate(520deg)}}

@media (min-width:640px){
  .stage-m{display:none}
  .stage-w{display:block}
  .gap{padding-top:21.69%}                          /* 236/1088 */
  .h-l{font-size:92px}
  .spd{width:80px;margin-left:12px}
  .spd i{height:8px}
  .spd i:nth-child(1){width:70px}
  .spd i:nth-child(2){width:46px;margin-left:14px}
  .spd i:nth-child(3){width:58px;margin-left:6px}
}
@media (min-width:1024px){
  .hero{padding:40px 0 0}
  .hero-in{display:grid;grid-template-columns:1fr 340px;grid-column-gap:48px;column-gap:48px}
  .hero-head{grid-column:1 / -1;grid-row:1}
  .hero-side{grid-column:2;grid-row:1;align-self:end;padding-bottom:10px}
  .quick{grid-column:1 / -1;margin-top:48px}
  .eyebrow{font-size:16px;line-height:22px;margin-bottom:14px}
  .hero-fig{top:36px}
  .h-l{font-size:120px;line-height:1;margin-top:18px}
  .h-l+.h-l{margin-top:4px}
  .spd{width:104px;margin-left:16px}
  .spd i{height:10px}
  .spd i+i{margin-top:9px}
  .spd i:nth-child(1){width:92px}
  .spd i:nth-child(2){width:60px;margin-left:18px}
  .spd i:nth-child(3){width:76px;margin-left:8px}
  .hero-sub{margin-top:0;font-size:18px}
  .hero-act{margin-top:28px}
  .quick div{padding:18px 0 20px 24px}
  .quick dt{font-size:13px}
  .quick dd{font-size:20px}
}

/* ── 나이별 반: 라인업 표 (큰 나이 숫자 + 반) ── */
.lineup>li{display:grid;grid-template-columns:92px 1fr;grid-column-gap:16px;column-gap:16px;padding:24px 0;border-top:1px solid var(--line)}
.lineup>li:first-child{border-top:2px solid var(--ink)}
.lineup>li:last-child{border-bottom:1px solid var(--line)}
.age .grp{display:block;font-size:12px;font-weight:600;color:var(--ink-2);line-height:1.4}
.age b{display:block;font-size:34px;font-weight:800;line-height:1.1;letter-spacing:-.04em;margin-top:4px}
.age small{font-size:14px;font-weight:600;letter-spacing:0;margin-left:2px}
.lineup h3{font-size:24px;line-height:1.2}
.info p{margin-top:6px;font-size:15px;line-height:1.6;color:var(--ink-2)}
.meta{margin-top:12px;display:flex;flex-wrap:wrap}
.meta li{font-size:13px;font-weight:600;padding:3px 8px;margin:0 6px 6px 0;border:1px solid var(--line);border-radius:2px;background:var(--surface)}
@media (min-width:1024px){
  .lineup>li{grid-template-columns:200px 280px 1fr auto;grid-column-gap:32px;column-gap:32px;align-items:center;padding:32px 0}
  .info{display:contents}
  .age b{font-size:48px}
  .lineup h3{font-size:30px}
  .info p{margin:0;font-size:16px}
  .meta{margin:0;flex-wrap:nowrap}
  .meta li{margin:0 0 0 6px}
}

/* ── 시간표: 체육관 마루 면 (오늘 = 오렌지 한 점) ── */
.maple{margin-top:var(--sec);padding:96px 0;background:var(--mood);color:var(--ink)}
.maple .sec-label{color:var(--ink)}
.tt{display:block}
.tt-row{display:grid;grid-template-columns:40px 1fr 1fr 1fr;grid-column-gap:6px;column-gap:6px;margin-top:6px}
.tt-head{margin:0 0 4px;font-size:13px;font-weight:800;color:var(--ink)}
.tt-head span{padding:0 4px}
.tt-d{position:relative;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;border-radius:var(--r-card)}
.today-tag{display:none}
.cell{display:flex;align-items:center;min-height:52px;padding:8px 10px;background:var(--surface);border-radius:var(--r-card);font-size:14px;font-weight:600;line-height:1.3}
.cell.off{background:transparent;border:1px dashed rgba(21,23,26,.22)}
.tt-row.today .tt-d{background:var(--ink);color:var(--on-ink)}
.tt-row.today .tt-d::after{content:"";position:absolute;right:-3px;top:-3px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--mood)}
.tt-note{margin-top:20px;font-size:14px;line-height:1.6;color:var(--ink)}
@media (min-width:1024px){
  .maple{padding:144px 0}
  .week .wrap{display:grid;grid-template-columns:4fr 7fr;grid-column-gap:64px;column-gap:64px;align-items:start}
  .week .tt,.week .tt-note{grid-column:2}
  .tt-row{grid-template-columns:64px 1fr 1fr 1fr;grid-column-gap:8px;column-gap:8px;margin-top:8px}
  .tt-head{font-size:14px}
  .cell{min-height:60px;padding:10px 16px;font-size:15px}
  .tt-d{font-size:17px}
}

/* ── 차량 운행: 노선도 한 줄 (폰 세로 · PC 가로) ── */
.route{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:24px 20px 8px}
.route-name{display:inline-block;font-size:13px;font-weight:800;padding:3px 10px;background:var(--ink);color:var(--on-ink);border-radius:2px;margin-bottom:20px}
.stops{position:relative}
.stops li{position:relative;display:grid;grid-template-columns:52px 1fr;grid-column-gap:48px;column-gap:48px;align-items:baseline;padding:0 0 22px}
.stops li::before{content:"";position:absolute;left:69px;top:12px;bottom:-12px;width:4px;background:var(--ink)}
.stops li:last-child::before{display:none}
.stops i{position:absolute;left:62px;top:4px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:4px solid var(--ink);z-index:1}
.stops .end i{border-radius:2px;background:var(--ink)}
.stops .time{font-size:15px;font-weight:800;grid-row:1 / span 2}
.stops b{font-size:17px;font-weight:800;line-height:1.3}
.stops small{grid-column:2;font-size:14px;color:var(--ink-2)}
.bus-facts{display:grid;grid-template-columns:1fr;margin-top:24px}
.bus-facts div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.bus-facts div:first-child{border-top:1px solid var(--line)}
.bus-facts dt{color:var(--ink-2)}
.bus-facts dd{font-weight:600}
@media (min-width:1024px){
  .route{padding:32px 40px 36px}
  .route-name{margin-bottom:36px}
  .stops{display:grid;grid-template-columns:repeat(5,1fr)}
  .stops li{display:block;padding:40px 16px 0 0}
  .stops li::before{left:9px;right:-9px;top:7px;bottom:auto;width:auto;height:4px}
  .stops i{left:0;top:0}
  .stops .time{display:block;font-size:14px;color:var(--ink-2);margin-bottom:4px}
  .stops b{display:block;font-size:22px}
  .stops small{display:block;margin-top:2px}
  .bus-facts{grid-template-columns:repeat(3,1fr);grid-column-gap:32px;column-gap:32px;margin-top:32px}
  .bus-facts div{display:block;border-top:2px solid var(--ink);border-bottom:0;padding:16px 0 0}
  .bus-facts div:first-child{border-top:2px solid var(--ink)}
  .bus-facts dd{margin-top:4px;font-size:18px}
}

/* ── 다른 점: 크기가 다른 세 면 (큰 검정 1 + 작은 흰 2) ── */
.diff-grid{display:grid;grid-row-gap:12px;row-gap:12px}
.diff-grid article{position:relative;border-radius:var(--r-card);padding:28px 20px}
.diff-grid .n{display:block;font-size:13px;font-weight:800;margin-bottom:16px}
.diff-grid h3{font-size:30px;line-height:1.18}
.diff-grid p{margin-top:12px;font-size:15px;line-height:1.65}
.diff-grid .big{background:var(--ink);color:var(--bg);padding-bottom:136px}
.diff-grid .big .n{color:rgba(245,244,239,.6)}
.diff-grid .big p{color:rgba(245,244,239,.78);max-width:24em}
.diff-grid .small{background:var(--surface);border:1px solid var(--line)}
.diff-grid .small h3{font-size:26px}
.diff-grid .small p{color:var(--ink-2)}
.diff-grid .small .n{color:var(--ink-2)}
.coach{position:absolute;right:20px;bottom:20px;width:100px;height:auto}
.coach .c-ring{fill:none;stroke:var(--accent);stroke-width:3}
.coach .c-dot{fill:var(--bg)}
.coach .c-orbit{fill:none;stroke:rgba(245,244,239,.28);stroke-width:1.5;stroke-dasharray:3 5}
.coach .c-floor{stroke:rgba(245,244,239,.35);stroke-width:2}
@media (min-width:1024px){
  .diff-grid{grid-template-columns:7fr 5fr;grid-template-rows:auto auto;grid-gap:24px;gap:24px}
  .diff-grid .big{grid-row:1 / span 2;padding:48px 48px 200px}
  .diff-grid .small{padding:40px}
  .diff-grid h3{font-size:52px}
  .diff-grid .small h3{font-size:34px}
  .diff-grid p{font-size:16px}
  .coach{right:48px;bottom:48px;width:150px}
}

/* ── 수업 한 번의 흐름: 시간 막대 하나 + 띠 단계 ── */
.tl{position:relative}
.tl-bar{display:flex;height:56px;border-radius:var(--r-card);overflow:hidden}
.tl-bar span{display:flex;align-items:flex-end;padding:0 0 8px 8px;min-width:0}
.tl-bar span+span{margin-left:2px}
.tl-bar b{font-size:13px;font-weight:800;white-space:nowrap}
.p0,.p3{background:rgba(21,23,26,.1);color:var(--ink)}
.p1{background:var(--ink-2);color:var(--on-ink)}
.p2{background:var(--ink);color:var(--on-ink)}
.tl-cap{display:block;margin-top:10px;font-size:13px;color:var(--ink-2)}
.tl-list{margin-top:28px;display:grid;grid-row-gap:18px;row-gap:18px}
.tl-list li{display:grid;grid-template-columns:24px 1fr;grid-column-gap:12px;column-gap:12px}
.tl-list .k{grid-row:1 / span 2;width:14px;height:14px;border-radius:2px;margin-top:5px}
.tl-list h3{font-size:17px;font-weight:700;line-height:1.4}
.tl-list h3 span{font-weight:600;color:var(--ink-2);font-size:14px;margin-left:4px}
.tl-list p{font-size:15px;color:var(--ink-2);line-height:1.6;margin-top:2px}
.belt{margin-top:72px;padding-top:40px;border-top:2px solid var(--ink)}
.belt-t{font-size:28px;line-height:1.2}
.belt-bar{display:grid;grid-template-columns:repeat(6,1fr);grid-column-gap:4px;column-gap:4px;margin-top:28px}
.belt-bar i{display:block;height:18px;border-radius:2px;border:1px solid rgba(21,23,26,.18)}
.belt-bar span{display:block;margin-top:8px;font-size:12px;font-weight:600;text-align:center;white-space:nowrap}
.b0 i{background:#FFFFFF}
.b1 i{background:#E6E4DE}
.b2 i{background:#C3C1BB}
.b3 i{background:#8F9094}
.b4 i{background:#55575C}
.b5 i{background:var(--ink);border-color:var(--ink)}
.belt-bar li{transform-origin:0 50%}
.belt-note{margin-top:20px;font-size:14px;color:var(--ink-2)}
@media (min-width:1024px){
  .flow .wrap{display:grid;grid-template-columns:5fr 7fr;grid-column-gap:64px;column-gap:64px}
  .flow .sec-head{grid-column:1;grid-row:1 / span 2}
  .tl,.tl-list{grid-column:2}
  .tl-bar{height:88px}
  .tl-bar span{padding:0 0 12px 14px}
  .tl-bar b{font-size:15px}
  .tl-list{grid-template-columns:repeat(4,1fr);grid-column-gap:24px;column-gap:24px}
  .tl-list li{grid-template-columns:1fr}
  .tl-list .k{grid-row:auto;margin:0 0 12px}
  .belt{grid-column:1 / -1;display:grid;grid-template-columns:5fr 7fr;grid-column-gap:64px;column-gap:64px;margin-top:112px;padding-top:56px}
  .belt-t{font-size:40px;grid-row:1 / span 2}
  .belt-bar{margin-top:8px;grid-column-gap:6px;column-gap:6px}
  .belt-bar i{height:24px}
  .belt-bar span{font-size:14px}
  .belt-note{grid-column:2}
}

/* ── 관장 인사: 검은 띠 면 + 오렌지 궤적 한 줄 ── */
.dark{margin-top:var(--sec);padding:96px 0;background:var(--ink);color:var(--bg)}
.dark .sec-label{color:rgba(245,244,239,.7)}
.dir-in{position:relative}
.director blockquote{margin:0}
.director blockquote p{font-size:34px;line-height:1.2}
.dir-body{margin-top:36px;max-width:32em}
.dir-body p{color:rgba(245,244,239,.8);font-size:16px;line-height:1.7}
.dir-body p+p{margin-top:12px}
.dir-body .sign{margin-top:28px;color:var(--bg);font-weight:600;font-size:15px}
.dir-arc{display:block;width:200px;height:auto;margin-top:48px}
.dir-arc circle{fill:var(--accent)}
.dir-arc .df{stroke:rgba(245,244,239,.35);stroke-width:2}
@media (min-width:1024px){
  .dark{padding:144px 0}
  .dir-in{display:grid;grid-template-columns:7fr 5fr;grid-column-gap:64px;column-gap:64px;align-items:end}
  .director .sec-label{grid-column:1 / -1}
  .director blockquote p{font-size:64px;line-height:1.1}
  .dir-body{margin:0}
  .dir-arc{grid-column:1;width:280px;margin-top:56px}
}

/* ── 교습비 + 체험 + 시작 4단계 ── */
.fees td.fee strong{font-size:20px;font-weight:800}
.trial{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:18px 20px;border:2px solid var(--ink);border-radius:var(--r-card)}
.trial b{display:block;font-size:17px;font-weight:800}
.trial span{display:block;font-size:13px;color:var(--ink-2);margin-top:2px}
.trial strong{font-size:18px;font-weight:800;white-space:nowrap;margin-left:12px}
@media (min-width:1024px){
  .fees-in{display:grid;grid-template-columns:4fr 7fr;grid-column-gap:64px;column-gap:64px;align-items:start}
  .trial{padding:22px 28px}
  .trial b{font-size:18px}
}
.steps{display:grid;grid-row-gap:0;row-gap:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:48px 1fr;grid-column-gap:12px;column-gap:12px;padding:18px 0;border-top:1px solid var(--line)}
.steps li:first-child{border-top:2px solid var(--ink)}
.steps .n{grid-row:1 / span 2;font-size:30px;font-weight:800;line-height:1;letter-spacing:-.04em}
.steps h3{font-size:18px;font-weight:700;line-height:1.4}
.steps p{font-size:15px;color:var(--ink-2);line-height:1.6;margin-top:2px}
.start-btn{margin-top:36px;width:100%}
@media (min-width:1024px){
  .steps{grid-template-columns:repeat(4,1fr);grid-column-gap:24px;column-gap:24px}
  .steps li{grid-template-columns:1fr;border-top:2px solid var(--ink);padding:24px 0 0}
  .steps .n{grid-row:auto;font-size:44px;margin-bottom:16px}
  .steps h3{font-size:20px}
  .start-btn{width:auto;padding:0 40px;margin-top:56px}
}
