/* ============================================================
   BALLET_ACADEMY_MULTI_BAREUM — 바름 발레
   HOW 근거: ellineballet.com 실측 —
     흰 캔버스 지배 · 액센트 오렌지 rgba(242,125,22) · sticky 헤더 98px
     공지·시간표 "리스트" 중심 구성(카드보다 행) · 정보 밀도 높은 표
   번역 원칙: 한글 캠페인 혼합형. 표제 = Gowun Batang(한글 명조 주도),
   본문 = Pretendard Variable. 흰 캔버스 · 오렌지 규선 · 공지 게시 리스트 ·
   레벨 배정 매트릭스 · 복장 체크리스트.
   영상 요소 0. 로고/엠블럼 없음(텍스트 워드마크만).
   ============================================================ */

:root{
  --white:#FFFFFF;
  --shell:#FAF9F7;
  --shell-2:#F2EFEA;
  --orange:#F27D16;
  --orange-dk:#C9620A;
  --orange-tint:#FEF1E4;
  --ink:#1F1D1A;
  --ink-2:#3A3733;
  --body:#55514B;
  --mute:#8B857D;
  --line:#E5E1DA;
  --line-2:#CFC9C0;
  --on-d:rgba(255,255,255,.74);
  --on-d-dim:rgba(255,255,255,.46);
  --on-d-line:rgba(255,255,255,.2);

  --disp:"Gowun Batang","Pretendard Variable",serif;
  --kr:"Pretendard Variable",system-ui,-apple-system,"Malgun Gothic",sans-serif;

  --wrap:1140px;
  --pad:clamp(18px,4vw,40px);
  --sec:clamp(60px,7vw,116px);
  --gap:clamp(16px,2vw,28px);
  --fs-body:15px;
  --lh-body:1.92;
  --hh:98px;
  --t:.3s ease;
  --slow:.8s cubic-bezier(.2,.7,.3,1);
  --ease:cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 12px)}
body{margin:0;background:var(--white);color:var(--body);font-family:var(--kr);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:-0.022em;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;letter-spacing:inherit}
h1,h2,h3,h4,p,figure,dl,dd,ol,ul{margin:0}
ul,ol{list-style:none;padding:0}
table{border-collapse:collapse}
main{display:block}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--orange);color:var(--white);padding:12px 18px}
.skip:focus{left:0}

/* ---------- 조판 ---------- */
.g1{font-family:var(--disp);font-size:clamp(28px,4.4vw,54px);font-weight:700;letter-spacing:-0.04em;line-height:1.36;color:var(--ink)}
.g2{font-family:var(--disp);font-size:clamp(23px,3.2vw,38px);font-weight:700;letter-spacing:-0.038em;line-height:1.4;color:var(--ink)}
.g3{font-family:var(--disp);font-size:clamp(17px,1.9vw,24px);font-weight:700;letter-spacing:-0.034em;line-height:1.46;color:var(--ink)}
.tag{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--orange);margin-bottom:14px
}
.lead{font-size:15.5px;line-height:1.96;letter-spacing:-0.026em;color:var(--body);max-width:58ch;margin-top:16px}
.txt{font-size:var(--fs-body);line-height:var(--lh-body);max-width:60ch}
.tiny{font-size:12.5px;line-height:1.86;letter-spacing:-0.016em;color:var(--mute)}
.num{font-variant-numeric:tabular-nums;letter-spacing:-0.02em}

/* ---------- sticky 헤더 98px ---------- */
.hbar{position:sticky;top:0;z-index:60;background:var(--white);border-bottom:1px solid var(--line)}
.hrow{display:flex;align-items:center;gap:clamp(14px,2.4vw,40px);min-height:var(--hh)}
.lock{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}
.brand{font-family:var(--disp);font-size:30px;font-weight:700;letter-spacing:-0.05em;line-height:1.1;color:var(--ink)}
.brand-sub{font-size:10.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--orange);line-height:1}

.dnav{display:flex;gap:clamp(14px,2.2vw,34px);margin-left:auto}
.dnav a{
  position:relative;font-size:14.5px;font-weight:600;letter-spacing:-0.032em;color:var(--ink-2);
  padding-block:8px;transition:color var(--t)
}
.dnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--orange);transform:scaleX(0);transition:transform var(--t)}
.dnav a:hover,.dnav a.on{color:var(--orange-dk)}
.dnav a:hover::after,.dnav a.on::after{transform:scaleX(1)}

.hcall{
  display:none;align-items:center;gap:7px;background:var(--orange);color:var(--white);
  font-size:13.5px;font-weight:700;letter-spacing:-0.028em;padding:12px 18px;border-radius:3px;
  transition:background var(--t)
}
.hcall svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hcall:hover{background:var(--orange-dk)}

.burger{display:none;width:46px;height:46px;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin-left:auto}
.burger span{display:block;width:24px;height:2px;background:var(--ink);transition:transform var(--t),opacity var(--t)}
.mm-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.mm-open .burger span:nth-child(2){opacity:0}
.mm-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.mobile-nav{
  position:fixed;left:0;right:0;top:var(--mm-top,64px);bottom:0;z-index:59;
  background:var(--white);padding:24px var(--pad) 40px;overflow-y:auto;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--t),visibility var(--t)
}
.mobile-nav.open{opacity:1;visibility:visible;pointer-events:auto}
.mobile-nav a{
  display:flex;align-items:center;font-family:var(--disp);font-size:24px;font-weight:700;
  letter-spacing:-0.045em;color:var(--ink);padding:19px 2px;
  border-bottom:1px solid var(--line);min-height:58px
}
.mobile-nav a.on{color:var(--orange-dk)}
.mn-tel{margin-top:24px;justify-content:center;gap:9px;border-bottom:0!important;background:var(--orange);color:var(--white)!important;min-height:56px;font-family:var(--kr)!important;font-size:16px!important;font-weight:700;border-radius:3px}
.mn-tel svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 버튼 ---------- */
.acts{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
.ctr{justify-content:center}
.bt{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:50px;padding:0 26px;border-radius:3px;
  font-size:14.5px;font-weight:700;letter-spacing:-0.032em;
  transition:background var(--t),color var(--t),border-color var(--t)
}
.bt-org{background:var(--orange);color:var(--white)}
.bt-org:hover{background:var(--orange-dk)}
.bt-ink{background:var(--ink);color:var(--white)}
.bt-ink:hover{background:var(--orange)}
.bt-line{border:1px solid var(--line-2);color:var(--ink)}
.bt-line:hover{border-color:var(--orange);color:var(--orange-dk)}
.bt-inv{border:1px solid var(--on-d-line);color:var(--white)}
.bt-inv:hover{background:var(--white);color:var(--ink);border-color:var(--white)}

/* ---------- 히어로 ---------- */
.hero{background:var(--shell);border-bottom:1px solid var(--line)}
.hero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:center;padding-block:clamp(40px,5vw,80px)}
.hero-im{overflow:hidden;border-radius:3px}
.hero-im img{width:100%;aspect-ratio:4/3;object-fit:cover}
.hero-facts{display:flex;flex-wrap:wrap;gap:0;margin-top:28px;border-top:1px solid var(--line)}
.hero-facts div{padding:16px 24px 16px 0;margin-right:24px;border-right:1px solid var(--line)}
.hero-facts div:last-child{border-right:0;margin-right:0}
.hero-facts b{display:block;font-family:var(--disp);font-size:24px;font-weight:700;color:var(--orange-dk);line-height:1.2;letter-spacing:-0.03em}
.hero-facts span{display:block;font-size:12.5px;color:var(--mute);margin-top:4px;letter-spacing:-0.02em}

/* ---------- 섹션 ---------- */
.sec{padding-block:var(--sec)}
.sec--shell{background:var(--shell)}
.sec--tint{background:var(--orange-tint)}
.sec--ink{background:var(--ink);color:var(--on-d)}
.sec--ink .g1,.sec--ink .g2,.sec--ink .g3{color:var(--white)}
.sec--ink .lead,.sec--ink .txt{color:var(--on-d)}
.sec--ink .tiny{color:var(--on-d-dim)}
.sec--ink .tag{color:var(--white)}

.shd{max-width:60ch;margin-bottom:clamp(28px,3.6vw,54px)}
.shd--c{margin-inline:auto;text-align:center}
.shd--c .lead{margin-inline:auto}
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(26px,4vw,68px);align-items:start}
.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.head-row .more{font-size:13.5px;font-weight:700;letter-spacing:-0.03em;color:var(--orange-dk);min-height:44px;display:inline-flex;align-items:center}
.head-row .more:hover{text-decoration:underline}

/* ---------- 공지 리스트 (ellineballet 리스트 중심 번역) ---------- */
.notice{border-top:2px solid var(--ink)}
.sec--ink .notice{border-top-color:var(--white)}
.notice li{border-bottom:1px solid var(--line)}
.sec--ink .notice li{border-bottom-color:var(--on-d-line)}
.notice a,.notice .row{
  display:grid;grid-template-columns:74px minmax(0,1fr) 96px;gap:clamp(10px,2vw,24px);
  align-items:center;padding:17px 0;min-height:58px;transition:background var(--t)
}
.notice a:hover{background:var(--shell)}
.notice .kind{
  justify-self:start;font-size:11px;font-weight:700;letter-spacing:-0.01em;
  padding:5px 10px;border-radius:2px;background:var(--orange-tint);color:var(--orange-dk);white-space:nowrap
}
.notice .kind--fix{background:var(--ink);color:var(--white)}
.notice .ti{font-size:15px;font-weight:600;letter-spacing:-0.032em;color:var(--ink);line-height:1.6}
.sec--ink .notice .ti{color:var(--white)}
.notice .ti em{display:block;font-style:normal;font-size:13px;font-weight:400;color:var(--mute);margin-top:4px;letter-spacing:-0.022em}
.sec--ink .notice .ti em{color:var(--on-d-dim)}
.notice .dt{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--mute);text-align:right;letter-spacing:-0.01em}
.sec--ink .notice .dt{color:var(--on-d-dim)}

/* ---------- 레벨 배정 매트릭스 ---------- */
.levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.level{background:var(--white);padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column}
.level .lv{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange)}
.level h3{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-0.04em;color:var(--ink);margin:10px 0 4px;line-height:1.32}
.level .exp{
  display:inline-block;align-self:flex-start;margin-bottom:12px;padding:5px 11px;border-radius:2px;
  background:var(--shell-2);font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:-0.022em
}
.level p{font-size:14px;line-height:1.88;letter-spacing:-0.026em;flex:1}
.level .mt{margin-top:16px;padding-top:13px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px 15px;font-size:12px;color:var(--mute);letter-spacing:-0.016em}

/* ---------- 복장 체크리스트 ---------- */
.chk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(20px,3vw,48px)}
.chk li{
  position:relative;padding:15px 0 15px 34px;border-bottom:1px solid var(--line);
  font-size:14.5px;line-height:1.82;letter-spacing:-0.026em
}
.sec--ink .chk li{border-bottom-color:var(--on-d-line)}
.chk li::before{
  content:"";position:absolute;left:0;top:1.36em;width:18px;height:18px;
  border:2px solid var(--orange);border-radius:2px
}
.chk li::after{
  content:"";position:absolute;left:5px;top:1.62em;width:8px;height:4px;
  border-left:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(-45deg)
}
.chk li b{display:block;font-weight:700;color:var(--ink);letter-spacing:-0.032em}
.sec--ink .chk li b{color:var(--white)}

/* ---------- 표 ---------- */
.tw{overflow-x:auto;max-width:100%;border:1px solid var(--line)}
.sec--ink .tw{border-color:var(--on-d-line)}
.tb{width:100%;font-size:14px;letter-spacing:-0.026em;min-width:600px}
.tb caption{text-align:left;padding:0 0 12px}
.tb th,.tb td{padding:14px 13px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.sec--ink .tb th,.sec--ink .tb td{border-bottom-color:var(--on-d-line)}
.tb thead th{font-size:12px;font-weight:700;color:var(--mute);white-space:nowrap;background:var(--shell);padding-block:12px;letter-spacing:-0.018em}
.sec--ink .tb thead th{background:var(--ink-2);color:var(--on-d)}
.tb tbody th{font-weight:700;color:var(--ink);white-space:nowrap}
.sec--ink .tb tbody th{color:var(--white)}
.tb td.n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;color:var(--orange-dk);font-weight:700}
.sec--ink .tb td.n{color:var(--white)}
.tb tbody tr:last-child th,.tb tbody tr:last-child td{border-bottom:0}
.tb tbody tr:hover{background:var(--shell)}
.sec--ink .tb tbody tr:hover{background:var(--ink-2)}

/* ---------- 정의목록 ---------- */
.dl{border-top:2px solid var(--orange)}
.dl div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.sec--ink .dl div{border-bottom-color:var(--on-d-line)}
.dl dt{font-weight:700;color:var(--ink);font-size:14px;letter-spacing:-0.034em}
.sec--ink .dl dt{color:var(--white)}
.dl dd{font-size:14px;line-height:1.9;letter-spacing:-0.026em}

/* ---------- 아코디언 ---------- */
.acc{border-top:2px solid var(--orange)}
.acc .r{border-bottom:1px solid var(--line)}
.sec--ink .acc .r{border-bottom-color:var(--on-d-line)}
.acc .h{width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:19px 0;min-height:58px}
.acc .h .q{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;color:var(--orange);flex:0 0 auto}
.acc .h .t{flex:1;font-size:15.5px;font-weight:700;letter-spacing:-0.036em;color:var(--ink);line-height:1.54}
.sec--ink .acc .h .t{color:var(--white)}
.acc .h .x{position:relative;width:14px;height:14px;flex:0 0 auto}
.acc .h .x::before,.acc .h .x::after{content:"";position:absolute;left:50%;top:50%;background:var(--orange);transition:transform var(--t)}
.acc .h .x::before{width:14px;height:2px;transform:translate(-50%,-50%)}
.acc .h .x::after{width:2px;height:14px;transform:translate(-50%,-50%)}
.acc .r.open .h .x::after{transform:translate(-50%,-50%) scaleY(0)}
.acc .b{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.acc .r.open .b{max-height:620px}
.acc .b p{padding:0 0 22px 30px;font-size:14.5px;line-height:1.94;letter-spacing:-0.026em;max-width:74ch}

/* ---------- 이미지 삼단 ---------- */
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.trio figure{overflow:hidden;border-radius:3px}
.trio img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform var(--slow)}
.trio figure:hover img{transform:scale(1.04)}
.trio figcaption{padding-top:12px;font-size:13px;letter-spacing:-0.026em;color:var(--mute)}

/* ---------- 페이지 머리 ---------- */
.phead{background:var(--shell);border-bottom:1px solid var(--line);padding-block:clamp(36px,4.6vw,74px)}
.crumb{display:block;font-size:11.5px;letter-spacing:-0.014em;color:var(--mute);margin-bottom:14px}

/* ---------- 지도 ---------- */
.mapbox{border:1px solid var(--line);background:var(--shell);aspect-ratio:16/7;display:grid;place-items:center;text-align:center;padding:22px;border-radius:3px}
.mapbox span{font-size:13px;color:var(--mute);letter-spacing:-0.02em;line-height:1.88}

.mt-m{margin-top:clamp(24px,3vw,44px)}
.mt-s{margin-top:16px}

/* ---------- 푸터 ---------- */
.foot{background:var(--ink);color:var(--on-d);padding-block:clamp(44px,5vw,78px) 28px;font-size:13.5px}
.foot-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:var(--gap)}
.foot .brand{display:block;margin-bottom:12px;font-size:28px;color:var(--white)}
.foot-brand p{max-width:30ch;line-height:1.88}
.foot-col h4{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.foot-col a{display:flex;align-items:center;min-height:36px;transition:color var(--t)}
.foot-col a:hover{color:var(--white)}
.foot-meta{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:clamp(28px,3.4vw,50px);padding-top:20px;border-top:1px solid var(--on-d-line);font-size:13px}
.foot-legal{margin-top:15px;font-size:12px;line-height:1.92;color:var(--on-d-dim)}

.mcta{display:none}

/* ---------- 등장 ---------- */
html.js .pop{opacity:0;transform:translateY(20px);transition:opacity var(--slow),transform var(--slow)}
html.js .pop.go{opacity:1;transform:none}
html.js .pop-stag>*{opacity:0;transform:translateY(20px);transition:opacity var(--slow),transform var(--slow)}
html.js .pop-stag.go>*{opacity:1;transform:none}
html.js .pop-stag.go>*:nth-child(2){transition-delay:.07s}
html.js .pop-stag.go>*:nth-child(3){transition-delay:.14s}
html.js .pop-stag.go>*:nth-child(4){transition-delay:.21s}
html.js .pop-stag.go>*:nth-child(5){transition-delay:.28s}
html.js .pop-stag.go>*:nth-child(6){transition-delay:.35s}

@media (prefers-reduced-motion: reduce){
  html.js .pop,html.js .pop-stag>*{opacity:1;transform:none;transition:none}
  *{animation:none!important}
}

/* ---------- 반응 ---------- */
@media (max-width:1024px){
  .levels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split,.hero-in{grid-template-columns:minmax(0,1fr)}
  .foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trio{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .dnav{display:none}
  .hcall{display:none}
  .burger{display:flex}
  .hbar{position:static}
  html{scroll-padding-top:12px}
  .lock{min-height:46px;justify-content:center}
}
@media (max-width:640px){
  .levels{grid-template-columns:minmax(0,1fr)}
  .chk{grid-template-columns:minmax(0,1fr)}
  .foot-top{grid-template-columns:minmax(0,1fr);gap:24px}
  .dl div{grid-template-columns:minmax(0,1fr);gap:5px}
  .notice a,.notice .row{grid-template-columns:66px minmax(0,1fr);row-gap:6px}
  .notice .dt{grid-column:2;text-align:left}
  .hero-facts div{border-right:0;margin-right:0;padding-right:0;width:50%}
  .foot-col a{min-height:44px}
}
@media (max-width:768px){
  .mcta{display:grid;grid-template-columns:1.3fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:70}
  .mcta a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font-size:15px;font-weight:700;letter-spacing:-0.032em}
  .mcta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .c-tel{background:var(--orange);color:var(--white)}
  .c-map{background:var(--ink);color:var(--white)}
  body{padding-bottom:56px}
}
