/* HELLO BUDDY ACADEMY
   Pages: 홈(4개 섹션) + 하위 페이지 7개(소개·오프라인·온라인·강사진·커리어·공간 대관·문의하기)
   Layout: 넓은 여백의 단일 컬럼 섹션, 좌측 정렬 헤드라인(모바일은 가운데), 카드형 교육과정
   Palette: 기획안 컬러(Warm Ivory · Soft Beige · Buddy Yellow · Deep Charcoal) */
@font-face { font-family:'Jalnan Brand'; font-weight:400; font-style:normal; font-display:swap; src:url('../fonts/jalnan-brand.woff2') format('woff2'); }
@font-face { font-family:'Pretendard Variable'; font-weight:45 920; font-style:normal; font-display:swap; src:url('../fonts/pretendard-var.woff2') format('woff2-variations'); }

:root {
  --ivory:#F7F4EE;
  --beige:#E8E0D2;
  --beige-2:#F0EADF;
  --yellow:#D4B866;
  --yellow-ink:#8A7224;
  --charcoal:#333A35;
  --ink:#1F2421;
  --muted:#6B706B;
  --line:#DDD5C6;
  --white:#FFFDF9;
  --font:'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  --wrap:1200px;
  --gutter:clamp(16px, 4vw, 40px);
  color-scheme:light;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; animation:none !important; } }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:var(--font); font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; word-break:keep-all; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid var(--yellow-ink); outline-offset:3px; }
.wrap { max-width:var(--wrap); margin:0 auto; padding-inline:var(--gutter); }
.nw { white-space:nowrap; }

/* ---------- 공통 타이포 ---------- */
.eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow-ink); }
.eyebrow::before { content:''; width:18px; height:2px; background:var(--yellow); }
.h2 { margin:14px 0 0; font-size:clamp(28px, 3.4vw, 44px); font-weight:800; line-height:1.28; letter-spacing:-0.03em; color:var(--ink); text-wrap:balance; }
.lead { margin:16px 0 0; max-width:620px; font-size:clamp(15px, 1.2vw, 17px); color:var(--muted); font-weight:500; }
.sec { padding-block:clamp(72px, 9vw, 128px); }
.sec-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:clamp(32px, 4vw, 52px); }
.sec-head > div { min-width:0; }
.tag-sample[hidden] { display:none; }
.tag-sample { display:inline-block; margin-left:8px; padding:2px 8px; border-radius:4px; background:var(--beige); color:var(--muted); font-size:11px; font-weight:700; letter-spacing:0; vertical-align:middle; text-transform:none; }

/* ---------- 버튼 ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:52px; padding:0 26px; border-radius:6px; font:700 15.5px var(--font); letter-spacing:-0.01em; cursor:pointer; border:1.5px solid transparent; transition:background .2s, color .2s, border-color .2s; }
.btn-dark { background:var(--charcoal); color:var(--white); }
.btn-dark:hover { background:var(--ink); }
.btn-yellow { background:var(--yellow); color:var(--ink); }
.btn-yellow:hover { background:#C9AB52; }
.btn-line { border-color:var(--charcoal); color:var(--charcoal); background:transparent; }
.btn-line:hover { background:var(--charcoal); color:var(--white); }
.arrow { display:inline-block; transition:transform .2s; }
a:hover .arrow { transform:translateX(3px); }

/* ---------- 헤더 ---------- */
.family { background:var(--charcoal); color:#CFCBC2; font-size:12.5px; }
.family .wrap { display:flex; justify-content:space-between; align-items:center; height:34px; gap:12px; }
.family a { color:#EDE7DA; font-weight:600; }
.family a:hover { color:var(--yellow); }
.hd { position:sticky; top:env(safe-area-inset-top, 0px); z-index:50; background:rgba(247,244,238,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.hd .wrap { display:flex; align-items:center; gap:28px; height:72px; }
.logo { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.logo-mark { width:34px; height:auto; filter:brightness(0) opacity(.82); }
.logo-tx { display:flex; flex-direction:column; line-height:1.05; }
.logo-tx b { font-size:15px; font-weight:900; letter-spacing:.02em; color:var(--ink); }
.logo-tx span { font-size:10.5px; font-weight:700; letter-spacing:.42em; color:var(--yellow-ink); }
.gnb { display:flex; gap:4px; flex:1; justify-content:center; min-width:0; }
.gnb a { padding:8px 12px; border-radius:6px; font-size:15px; font-weight:600; color:#3B403C; white-space:nowrap; }
.gnb a:hover { background:var(--beige-2); color:var(--ink); }
.gnb a[aria-current="page"] { color:var(--ink); box-shadow:inset 0 -2px 0 var(--yellow); border-radius:0; }
.hd .btn { height:42px; padding:0 18px; font-size:14px; }
.hd .hd-cta { height:38px; padding:0 16px; gap:6px; border-radius:999px; font-size:14px; white-space:nowrap; flex-shrink:0; box-shadow:0 4px 12px rgba(51,58,53,.14); }
.burger { display:none; width:42px; height:42px; border:0; background:transparent; cursor:pointer; padding:0; position:relative; }
.burger span, .burger span::before, .burger span::after { position:absolute; left:10px; width:22px; height:2px; background:var(--ink); content:''; transition:transform .2s; }
.burger span { top:20px; } .burger span::before { top:-7px; left:0; } .burger span::after { top:7px; left:0; }
.drawer { display:none; }

/* ---------- 히어로 ---------- */
.hero { padding-block:clamp(48px, 6vw, 88px) clamp(56px, 7vw, 104px); }
.hero .wrap { display:grid; grid-template-columns:minmax(0, 1.02fr) minmax(0, 1fr); gap:clamp(32px, 5vw, 72px); align-items:center; }
.hero-tx { min-width:0; }
.hero h1 { margin:18px 0 0; font-size:clamp(40px, 5.6vw, 76px); font-weight:900; line-height:1.14; letter-spacing:-0.045em; color:var(--ink); }
.hero h1 em { font-style:normal; position:relative; white-space:nowrap; }
.hero h1 em::after { content:''; position:absolute; left:-2px; right:-2px; bottom:.08em; height:.28em; background:var(--yellow); opacity:.55; z-index:-1; }
.hero h1 { position:relative; z-index:0; }
.hero p { margin:22px 0 0; max-width:480px; font-size:clamp(16px, 1.3vw, 18px); color:#4E544F; font-weight:500; }
.hero-cta { display:flex; gap:10px; flex-wrap:wrap; margin-top:34px; }
.hero-photo { position:relative; min-width:0; }
.hero-photo img { width:100%; height:auto; aspect-ratio:5/4; object-fit:cover; border-radius:4px; }
.hero-badge { position:absolute; left:-20px; bottom:-22px; background:var(--charcoal); color:var(--white); padding:18px 22px; border-radius:4px; max-width:270px; }
.hero-badge small { display:block; font-size:11.5px; letter-spacing:.14em; color:var(--yellow); font-weight:700; }
.hero-badge b { display:block; margin-top:6px; font-size:15px; line-height:1.5; font-weight:700; }

/* ---------- 홈 롤링 배너 ---------- */
.hb[hidden] { display:none; }
.hb { position:relative; background:var(--charcoal); color:var(--white); overflow:hidden; isolation:isolate; }
.hb-track { position:relative; height:clamp(360px, 46vh, 460px); }
.hb-slide { position:absolute; inset:0; display:flex; align-items:center; opacity:0; visibility:hidden; transition:opacity .7s ease, visibility 0s .7s; }
.hb-slide.is-on { opacity:1; visibility:visible; transition:opacity .7s ease; z-index:1; }
.hb-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transform:scale(1.04); transition:transform 7s ease; }
.hb-slide.is-on .hb-bg { transform:scale(1); }
.hb-slide::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(31,36,33,.82) 0%, rgba(31,36,33,.55) 45%, rgba(31,36,33,.12) 100%); }
.hb-tx { width:100%; padding-bottom:44px; }
.hb-eb { display:inline-flex; align-items:center; gap:10px; font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--yellow); }
.hb-live { display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:999px; background:var(--yellow); color:var(--ink); font-size:11.5px; line-height:1; letter-spacing:0; }
.hb-title { margin:12px 0 0; max-width:820px; font-size:clamp(28px, 3.4vw, 46px); font-weight:900; line-height:1.18; letter-spacing:-0.04em; color:var(--white); text-wrap:balance; }
.hb-sub { margin:12px 0 0; max-width:560px; font-size:clamp(15px, 1.3vw, 18px); font-weight:500; color:#E6E1D6; }
.hb-meta { margin:10px 0 0; font-size:14px; color:#CFC9BC; } .hb-meta b { color:var(--white); font-weight:700; margin-left:4px; font-variant-numeric:tabular-nums; }
.hb-cta { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.hb-btn { display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 16px; line-height:1; border-radius:999px; border:1.5px solid rgba(255,255,255,.7); color:var(--white); font-size:14px; font-weight:700; transition:background .2s, color .2s, border-color .2s; }
.hb-btn:hover { background:var(--white); color:var(--ink); border-color:var(--white); }
.hb-btn .arrow { line-height:1; }
.hb-btn-y { background:var(--yellow); border-color:var(--yellow); color:var(--ink); }
.hb-btn-y:hover { background:#E2C878; border-color:#E2C878; color:var(--ink); }
.hb-ctl { position:absolute; left:0; right:0; bottom:22px; z-index:2; display:flex; align-items:center; gap:16px; }
.hb-ctl[hidden] { display:none; }
.hb-ctl button { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:10px; font-size:14px; font-weight:800; letter-spacing:.06em; color:rgba(255,255,255,.75); }
.hb-ctl button:hover { color:var(--white); }
.hb-ctl button:focus-visible { outline:2px solid var(--yellow); outline-offset:4px; border-radius:4px; }
.hb-ctl button span { font-size:20px; font-weight:400; }
.hb-sep { width:1px; height:14px; background:rgba(255,255,255,.4); }
.hb-count { margin-left:auto; font-size:13px; color:rgba(255,255,255,.65); font-variant-numeric:tabular-nums; letter-spacing:.06em; }
.hb-count b { color:var(--white); }
@media (prefers-reduced-motion: reduce) { .hb-slide, .hb-bg { transition:none; transform:none; } }

/* ---------- 숫자 띠 ---------- */
.facts { border-block:1px solid var(--line); background:var(--white); }
.facts ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); }
.facts li { padding:30px 24px; display:flex; flex-direction:column; gap:4px; border-left:1px solid var(--line); }
.facts li:first-child { border-left:0; }
.facts b { font-size:clamp(28px, 3vw, 38px); font-weight:900; letter-spacing:-0.03em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.15; }
.facts b small { font-size:.5em; font-weight:800; margin-left:2px; }
.facts span { font-size:14px; color:var(--muted); font-weight:600; }

/* ---------- 미션 배너 ---------- */
.mission { position:relative; overflow:hidden; color:var(--white); padding-block:clamp(88px, 11vw, 160px); background:var(--charcoal); isolation:isolate; }
.mission-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 45%; z-index:-2; }
.mission::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(31,36,33,.86) 0%, rgba(31,36,33,.62) 48%, rgba(31,36,33,.18) 100%); }
.mission .eyebrow { color:var(--yellow); }
.mission h2 { margin:16px 0 0; font-size:clamp(30px, 4vw, 52px); font-weight:900; line-height:1.24; letter-spacing:-0.04em; }
.mission p { margin:20px 0 0; max-width:540px; font-size:clamp(15px, 1.2vw, 17px); color:#E4DFD5; font-weight:500; }
.mission .btn { margin-top:32px; }
.mission-btn { height:54px; padding:0 8px 0 26px; gap:14px; border-radius:999px; font-size:16px; font-weight:800; box-shadow:0 10px 26px rgba(0,0,0,.22); transition:background .2s, transform .2s, box-shadow .2s; }
.mission-btn-ic { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:var(--charcoal); color:var(--yellow); transition:transform .25s; }
.mission-btn:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.28); }
.mission-btn:hover .mission-btn-ic { transform:translateY(2px); }
@media (prefers-reduced-motion:reduce) { .mission-btn, .mission-btn-ic { transition:none; } .mission-btn:hover, .mission-btn:hover .mission-btn-ic { transform:none; } }

/* ---------- 홈 (4개 섹션) ---------- */
.h-sec { padding-block:clamp(56px, 7vw, 96px); }
.h-h2 { margin:10px 0 0; font-size:clamp(24px, 2.6vw, 34px); font-weight:800; line-height:1.3; letter-spacing:-0.03em; color:var(--ink); text-wrap:balance; }
.h-link { display:inline-flex; align-items:center; gap:6px; font-size:15px; font-weight:800; color:var(--ink); white-space:nowrap; }
.h-link:hover { color:var(--yellow-ink); }
.h-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:clamp(20px, 2.4vw, 32px); }
.h-head .h-h2 { margin:0; }
.h-cards { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(14px, 2vw, 28px); }
.h-cls { display:flex; flex-direction:column; min-width:0; background:var(--white); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.h-cls-top { display:flex; flex-direction:column; }
.h-cls-band { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 22px; font-size:13px; font-weight:700; }
.h-cls-band b { font-size:13px; font-weight:800; letter-spacing:.2em; }
.h-cls-offline .h-cls-band { background:var(--charcoal); color:var(--white); }
.h-cls-offline .h-cls-band b { color:var(--yellow); }
.h-cls-online .h-cls-band { background:var(--yellow); color:var(--ink); }
.h-cls-img { position:relative; display:block; aspect-ratio:16/8; overflow:hidden; background:var(--beige); }
.h-cls-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.h-cls-top:hover .h-cls-img img { transform:scale(1.03); }
.h-cls-badge { position:absolute; left:16px; bottom:14px; padding:4px 12px; border-radius:999px; font-size:12.5px; font-weight:800; }
.h-cls-offline .h-cls-badge { background:var(--charcoal); color:var(--white); }
.h-cls-online .h-cls-badge { background:var(--yellow); color:var(--ink); }
.h-cls-head { display:flex; flex-direction:column; gap:4px; padding:22px 22px 6px; }
.h-cls-head b { font-size:clamp(20px, 1.8vw, 24px); font-weight:800; letter-spacing:-0.02em; }
.h-cls-head span { font-size:14.5px; color:var(--muted); font-weight:500; }
.h-cls-list { list-style:none; margin:10px 22px 0; padding:0; }
.h-cls-list li a { display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); font-size:15px; font-weight:700; }
.h-cls-list li a:hover { color:var(--yellow-ink); }
.h-cls-tag { flex:0 0 auto; min-width:58px; text-align:center; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:800; }
.h-cls-offline .h-cls-tag { background:var(--beige-2); border:1px solid var(--line); }
.h-cls-online .h-cls-tag { background:#F6EED6; border:1px solid #E8D9A8; }
.h-cls-n { flex:1; min-width:0; }
.h-cls-list .arrow { color:var(--muted); }
.h-cls-empty { padding:14px 0; border-top:1px solid var(--line); font-size:14.5px; color:var(--muted); }
.h-cls-go { margin-top:auto; padding:16px 22px 22px; font-size:15px; font-weight:800; }
.h-cls-list + .h-cls-go { border-top:1px solid var(--line); margin-inline:22px; padding-inline:0; }
.h-cls-go:hover { color:var(--yellow-ink); }
.empty { margin:0; padding:40px 0; text-align:center; color:var(--muted); font-weight:600; grid-column:1 / -1; }
.h-about { background:var(--white); border-block:1px solid var(--line); }
.h-about .wrap { display:grid; grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr); gap:40px clamp(40px, 6vw, 96px); align-items:center; }
.ha-media { position:relative; isolation:isolate; }
.ha-media::before { content:''; position:absolute; left:-28px; top:-28px; width:62%; height:70%; background:var(--beige); border-radius:10px; z-index:-1; }
.ha-main { width:100%; height:auto; aspect-ratio:5/4; object-fit:cover; border-radius:10px; }
.ha-badge { position:absolute; left:18px; top:18px; display:flex; flex-direction:column; gap:2px; padding:14px 18px; border-radius:8px; background:var(--charcoal); color:#E8E2D6; font-size:12.5px; font-weight:700; }
.ha-badge b { font-size:28px; font-weight:900; color:var(--yellow); line-height:1; }
.ha-badge small { font-size:.5em; margin-left:2px; }
.ha-pts { list-style:none; margin:4px 0 26px; padding:0; display:flex; flex-direction:column; gap:10px; }
.ha-pts li { display:flex; align-items:center; gap:12px; font-size:15.5px; font-weight:700; color:var(--ink); }
.ha-pts b { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--yellow); color:var(--ink); font-size:12px; font-weight:900; flex-shrink:0; }
.h-about-tx p { margin:14px 0 20px; font-size:clamp(15px, 1.2vw, 17px); color:var(--muted); font-weight:500; max-width:520px; }
.h-rental .wrap { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
.h-rental-tx p { margin:12px 0 20px; font-size:clamp(15px, 1.2vw, 17px); color:var(--muted); font-weight:500; }
.h-rental-ph { margin:0; }
.h-rental-ph img { width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:6px; }
br.pc { display:inline; }

/* ---------- 하위 페이지 제목 ---------- */
.page-hd { background:var(--beige-2); border-bottom:1px solid var(--line); padding-block:clamp(48px, 6vw, 84px) clamp(40px, 5vw, 64px); }
.page-hd h1 { margin:12px 0 0; font-size:clamp(32px, 4vw, 52px); font-weight:900; line-height:1.2; letter-spacing:-0.04em; color:var(--ink); }
.page-hd .lead { margin-top:14px; }
.page-hd + .sec.courses { border-top:0; }

/* ---------- 진로 안내 + 단계 ---------- */
.path-top { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:clamp(32px, 6vw, 88px); align-items:center; }
.path-photos { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.path-photos figure { margin:0; min-width:0; }
.path-photos figure:last-child { margin-top:56px; }
.path-photos img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:4px; }
.path-photos figcaption { margin-top:10px; font-size:13px; color:var(--muted); font-weight:600; }
.steps { list-style:none; margin:clamp(56px, 7vw, 88px) 0 0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); counter-reset:f; }
.steps li { position:relative; padding:28px 22px 0 0; border-top:2px solid var(--charcoal); counter-increment:f; min-width:0; }
.steps li::before { content:counter(f, decimal-leading-zero); position:absolute; top:-14px; left:0; background:var(--ivory); padding-right:10px; font-size:13px; font-weight:900; color:var(--yellow-ink); letter-spacing:.06em; }
.steps h3 { margin:0; font-size:17px; font-weight:800; }
.steps p { margin:8px 0 0; font-size:14px; color:var(--muted); }
.steps li.hl { border-top-color:var(--yellow); }

/* ---------- 교육과정 탭 ---------- */
.courses { background:var(--white); border-block:1px solid var(--line); }
.tabs { display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.tabs button { appearance:none; border:0; background:transparent; padding:14px 18px; margin-bottom:-1px; font:700 16.5px var(--font); color:var(--muted); cursor:pointer; border-bottom:3px solid transparent; }
.tabs button:hover { color:var(--ink); }
.tabs button[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--yellow); }
.panel-note { margin:0 0 22px; font-size:15px; color:var(--muted); font-weight:500; }
.tabpanel[hidden] { display:none; }
.panel-cta { margin-top:32px; }
.cards { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
.card { display:flex; flex-direction:column; background:var(--ivory); border:1px solid var(--line); border-radius:6px; overflow:hidden; min-width:0; transition:transform .25s, box-shadow .25s; }
.card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(51,58,53,.10); }
.card-img { position:relative; aspect-ratio:4/3; background:var(--beige); overflow:hidden; }
.card-img img { width:100%; height:100%; object-fit:cover; }
.card-lv { position:absolute; left:12px; top:12px; padding:4px 10px; border-radius:3px; background:var(--charcoal); color:var(--white); font-size:12px; font-weight:700; }
.card-body { display:flex; flex-direction:column; gap:10px; padding:20px 20px 22px; flex:1; }
.card h3 { margin:0; font-size:18.5px; font-weight:800; letter-spacing:-0.02em; line-height:1.4; }
.card p { margin:0; font-size:14px; color:var(--muted); line-height:1.65; }
.spec { list-style:none; margin:4px 0 0; padding:12px 0 0; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:4px; font-size:13.5px; }
.spec li { display:flex; gap:10px; }
.spec .k { flex:0 0 52px; color:var(--muted); font-weight:600; }
.spec .v { font-weight:700; color:var(--ink); min-width:0; }
.card .more { margin-top:auto; padding-top:8px; font-size:14.5px; font-weight:800; color:var(--ink); }
.card .more:hover { color:var(--yellow-ink); }
.ocards { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
.ocard { display:flex; flex-direction:column; gap:12px; min-width:0; }
.ocard-img { position:relative; aspect-ratio:16/10; border-radius:4px; overflow:hidden; background:var(--beige); }
.ocard-img img { width:100%; height:100%; object-fit:cover; }
.ocard-time { position:absolute; right:10px; bottom:10px; padding:3px 8px; border-radius:3px; background:rgba(31,36,33,.78); color:var(--white); font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.ocard .cat { font-size:12.5px; font-weight:800; color:var(--yellow-ink); letter-spacing:.04em; }
.ocard h3 { margin:0; font-size:17px; font-weight:800; line-height:1.45; }
.ocard .price { display:flex; align-items:baseline; gap:8px; margin-top:auto; font-variant-numeric:tabular-nums; }
.ocard .price b { font-size:18px; font-weight:900; }
.ocard .price span { font-size:13px; color:var(--muted); }

/* ---------- 차별점 ---------- */
.why { background:var(--charcoal); color:var(--white); }
.why .h2 { color:var(--white); }
.why .eyebrow { color:var(--yellow); }
.why-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:#4A514C; border:1px solid #4A514C; border-radius:6px; overflow:hidden; }
.why-grid li { background:var(--charcoal); padding:34px 30px 36px; display:flex; flex-direction:column; gap:6px; min-width:0; transition:background .2s; }
.why-grid li:hover { background:#3A413C; }
.why-grid .n { font-size:clamp(30px, 3vw, 40px); font-weight:900; color:var(--yellow); line-height:1; letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }
.why-grid small { margin-top:14px; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#AFAAA0; }
.why-grid h3 { margin:0; font-size:20px; font-weight:800; letter-spacing:-0.02em; }
.why-grid p { margin:4px 0 0; font-size:14.5px; color:#C9C5BC; }

/* ---------- 협회 · 자격 ---------- */
.cert .wrap { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(32px, 6vw, 88px); align-items:center; }
.cert-tx { min-width:0; }
.cert-visual { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:48px; min-width:0; min-height:460px; padding:clamp(40px, 5vw, 64px) 24px; background:radial-gradient(circle at 50% 42%, #FFFDF8 0%, var(--beige) 62%); border-radius:6px; overflow:hidden; isolation:isolate; }
.cert-mark { position:relative; display:flex; align-items:center; justify-content:center; }
.cert-ring { position:absolute; left:50%; top:50%; width:124%; aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; border:1.5px dashed rgba(212,184,102,.75); z-index:-1; }
.cert-ring::after { content:''; position:absolute; inset:-16px; border-radius:50%; border:1px solid rgba(51,58,53,.08); }
.cert-seal { width:clamp(170px, 17vw, 220px); height:auto; filter:drop-shadow(0 16px 26px rgba(31,40,70,.22)); }
.cert-with { margin:0; text-align:center; display:flex; flex-direction:column; gap:6px; }
.cert-with small { font-size:11.5px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:#A98F3F; }
.cert-with b { font-size:clamp(15px, 1.4vw, 18px); font-weight:900; letter-spacing:.02em; color:var(--ink); }
.cert-with i { font-style:normal; font-weight:500; color:var(--yellow); margin-inline:6px; }
.cert-logo { margin-top:30px; padding:20px 24px; background:var(--white); border:1px solid var(--line); border-radius:6px; }
.cert-logo img { width:100%; max-width:400px; height:auto; }
.cert-pts { list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; }
.cert-pts li { display:flex; flex-direction:column; gap:2px; padding:14px 0 14px 20px; border-bottom:1px solid var(--line); position:relative; }
.cert-pts li::before { content:''; position:absolute; left:0; top:23px; width:8px; height:8px; border-radius:50%; background:var(--yellow); }
.cert-pts b { font-size:16.5px; font-weight:800; }
.cert-pts span { font-size:14.5px; color:var(--muted); }

/* ---------- 마무리 배너 ---------- */
.closing { background:var(--yellow); padding-block:clamp(56px, 7vw, 96px); }
.closing .wrap { display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.closing .eyebrow { color:var(--ink); }
.closing .eyebrow::before { background:var(--ink); }
.closing h2 { margin:14px 0 0; font-size:clamp(28px, 3.4vw, 44px); font-weight:900; line-height:1.24; letter-spacing:-0.04em; color:var(--ink); }
.closing p { margin:14px 0 0; font-size:16px; font-weight:600; color:#3B3524; }
.closing-cta { display:flex; gap:10px; flex-wrap:wrap; }
.closing .btn-line { border-color:var(--ink); color:var(--ink); }

/* ---------- 강사진 ---------- */
.tutors { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:36px 24px; }
.tutor { display:flex; flex-direction:column; align-items:center; gap:16px; min-width:0; padding:0; border:0; background:none; font:inherit; color:inherit; text-align:center; cursor:pointer; }
.tutor-ph { position:relative; width:100%; aspect-ratio:3/4; border-radius:4px; background:var(--beige); overflow:hidden; display:block; }
.tutor-ph img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform .5s cubic-bezier(.22,.61,.36,1); }
.tutor-ph::after { content:""; position:absolute; inset:0; background:rgba(31,36,33,.6); opacity:0; transition:opacity .25s; }
.tutor-more { position:absolute; left:50%; top:50%; z-index:1; transform:translate(-50%,-50%); display:inline-flex; align-items:center; gap:10px; padding:0 26px; height:52px; border:1px solid rgba(255,255,255,.9); border-radius:999px; color:#fff; font-size:17px; font-weight:700; letter-spacing:-0.01em; white-space:nowrap; opacity:0; transition:opacity .25s; }
.tutor-more i { font-style:normal; font-size:22px; font-weight:400; line-height:1; margin-top:-2px; }
.tutor:hover .tutor-ph::after, .tutor:focus-visible .tutor-ph::after, .tutor:hover .tutor-more, .tutor:focus-visible .tutor-more { opacity:1; }
.tutor:hover .tutor-ph img { transform:scale(1.03); }
.tutor:focus-visible { outline:none; }
.tutor:focus-visible .tutor-ph { outline:3px solid var(--ink); outline-offset:3px; }
.tutor[hidden] { display:none; }
.tutors-more[hidden] { display:none; }
.tutors-more { display:flex; justify-content:center; margin-top:48px; }
.tutors-more .btn { height:46px; padding:0 28px; border-radius:999px; font-size:14px; font-weight:800; letter-spacing:.06em; gap:8px; }
.tutors-more em { font-style:normal; font-weight:600; letter-spacing:0; color:var(--muted); }
.tutors-more .btn span { font-size:18px; font-weight:500; line-height:1; }
.tutor-nm { font-size:19px; font-weight:800; letter-spacing:-0.02em; color:var(--ink); }
@media (hover:none) {
  .tutor-ph::after { opacity:1; background:linear-gradient(to top, rgba(31,36,33,.55), rgba(31,36,33,0) 38%); }
  .tutor-more { opacity:1; top:auto; bottom:12px; transform:translateX(-50%); height:30px; padding:0 12px; gap:6px; font-size:12.5px; border-color:rgba(255,255,255,.75); }
  .tutor-more i { font-size:16px; }
}
/* 강사 프로필 팝업 (약관 팝업 틀을 같이 씀) */
.tp-pop .lg-pop-card { max-width:760px; }
.tp { display:grid; grid-template-columns:240px minmax(0,1fr); gap:28px; align-items:start; padding-bottom:16px; }
.tp-ph { position:sticky; top:0; aspect-ratio:3/4; border-radius:6px; overflow:hidden; background:var(--beige); }
.tp-ph img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.tp-tx h3 { margin:4px 0 0; font-size:26px; font-weight:900; letter-spacing:-0.02em; color:var(--ink); }
.tp-role { margin:6px 0 0; font-size:14.5px; font-weight:700; color:var(--muted); }
.tp-intro { margin:16px 0 0; font-size:15px; line-height:1.7; color:#3d433f; }
.tp-sec { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.tp-sec h4 { margin:0 0 10px; font-size:13px; font-weight:800; letter-spacing:.04em; color:var(--muted); }
.tp-sec ul { margin:0; padding:0; list-style:none; display:grid; gap:7px; }
.tp-sec li { position:relative; padding-left:12px; font-size:15px; line-height:1.55; color:var(--ink); }
.tp-sec li::before { content:""; position:absolute; left:0; top:.68em; width:4px; height:4px; border-radius:50%; background:#9aa09b; }
.tp-empty { margin:22px 0 0; padding:18px 0; border-top:1px solid var(--line); color:var(--muted); font-weight:600; font-size:15px; }

/* ---------- 커리어 ---------- */
.career { background:var(--beige-2); border-block:1px solid var(--line); }
.career .grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.track { display:flex; flex-direction:column; background:var(--white); border-radius:6px; overflow:hidden; min-width:0; }
.track img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.track-body { padding:22px 22px 24px; display:flex; flex-direction:column; gap:8px; }
.track small { font-size:12px; font-weight:800; letter-spacing:.14em; color:var(--yellow-ink); text-transform:uppercase; }
.track h3 { margin:0; font-size:19px; font-weight:800; letter-spacing:-0.02em; }
.track p { margin:0; font-size:14.5px; color:var(--muted); }

/* ---------- 공간 대관 ---------- */
.rental .wrap { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
.rental img { width:100%; aspect-ratio:16/11; object-fit:cover; border-radius:4px; }
.rental ul { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.rental li { padding:7px 14px; border:1px solid var(--line); border-radius:999px; font-size:14px; font-weight:600; background:var(--white); }
.rental .btn { margin-top:28px; }

/* ---------- 수강 신청 ---------- */
.apply { background:var(--white); border-top:1px solid var(--line); }
.apply .wrap { display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1.15fr); gap:clamp(32px, 6vw, 80px); align-items:start; }
.apply-info { display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.apply-info div { display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); font-size:15px; }
.apply-info dt { flex:0 0 76px; color:var(--muted); font-weight:600; }
.apply-info dd { margin:0; font-weight:700; min-width:0; }
.form { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; background:var(--ivory); border:1px solid var(--line); border-radius:6px; padding:clamp(22px, 3vw, 36px); }
.f { display:flex; flex-direction:column; gap:7px; min-width:0; }
.f.full { grid-column:1 / -1; }
.f[hidden] { display:none; }
.apply-tx .lead b { color:var(--ink); font-weight:800; }
.f label, .f .lab { font-size:13.5px; font-weight:700; color:#3B403C; }
.f em { font-style:normal; color:#B4462F; margin-left:2px; }
.f input, .f select, .f textarea { width:100%; height:48px; padding:0 14px; border:1px solid var(--line); border-radius:4px; background:var(--white); font:500 15px var(--font); color:var(--ink); }
.f textarea { height:auto; min-height:110px; padding:12px 14px; resize:vertical; line-height:1.6; }
.f input:focus, .f select:focus, .f textarea:focus { border-color:var(--charcoal); outline:none; }
.f.err input, .f.err select, .f.err textarea { border-color:#B4462F; background:#FBF1EE; }
.radios { display:flex; gap:8px; flex-wrap:wrap; }
.radios label { position:relative; cursor:pointer; }
.radios input { position:absolute; opacity:0; width:1px; height:1px; }
.radios span { display:inline-flex; align-items:center; height:42px; padding:0 16px; border:1px solid var(--line); border-radius:4px; background:var(--white); font-size:14.5px; font-weight:600; }
.radios input:checked + span { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.radios input:focus-visible + span { outline:2px solid var(--yellow-ink); outline-offset:2px; }
.agree { grid-column:1 / -1; display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:#4E544F; cursor:pointer; }
.agree input { margin:3px 0 0; width:17px; height:17px; accent-color:var(--charcoal); flex-shrink:0; }
.agree small { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.agree.err { color:#B4462F; }
.form .btn { grid-column:1 / -1; height:56px; font-size:16px; }
.msg { grid-column:1 / -1; margin:0; min-height:1px; text-align:center; font-size:14px; font-weight:700; }
.msg.ok { color:#3C6B3F; } .msg.err { color:#B4462F; }

/* ---------- 푸터 ---------- */
.ft { background:var(--charcoal); color:#BDB8AE; font-size:13.5px; }
.ft-main { display:flex; flex-direction:column; padding-block:48px 56px; }
.ft-head { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,.12); }
.ft .logo-mark { filter:brightness(0) invert(.93); }
.ft .logo-tx b { color:var(--white); }
.ft .logo-tx { text-align:left; } /* 모바일 가운데 정렬 푸터에서도 로고 글자는 상단 로고처럼 왼쪽 정렬 */
.ft-sns { display:flex; gap:8px; }
.ft-sns a { width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.22); color:#EDE7DA; transition:background .2s, border-color .2s, color .2s; }
.ft-sns a:hover { background:var(--yellow); border-color:var(--yellow); color:var(--ink); }
.ft-sns svg { width:18px; height:18px; }
.ft-n { font-family:'Jalnan Brand','Arial Black',sans-serif; font-size:15px; line-height:1; }
.ft-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px 0; margin:24px 0 18px; }
.ft-nav a { color:#EDE7DA; font-size:14px; font-weight:500; white-space:nowrap; }
.ft-nav a b { font-weight:800; color:var(--white); }
.ft-nav a:hover { color:var(--yellow); }
.ft-nav a + a::before { content:''; display:inline-block; width:1px; height:11px; margin:0 14px; background:rgba(255,255,255,.28); vertical-align:middle; }
.ft-nav-br { display:block; width:36px; }
.ft-info { margin:0; line-height:1.9; }
.ft-l { display:block; }
.ft-i { white-space:nowrap; }
.ft-i + .ft-i::before { content:''; display:inline-block; width:1px; height:10px; background:#6E716B; margin:0 10px; vertical-align:middle; }
.ft-todo { color:var(--yellow); font-weight:700; }
.ft-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:28px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); }
.ft-copy { margin:0; color:#8E8A82; font-size:12.5px; }
.ft-partner { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ft-partner span { font-size:12.5px; color:#8E8A82; font-weight:600; }
.ft-partner img { width:200px; height:auto; filter:brightness(0) invert(.9); }

/* ---------- 이용약관 · 개인정보처리방침 · 환불 규정 (페이지 + 팝업 공용) ---------- */
.lg-sec { padding-block:clamp(40px, 5vw, 72px) clamp(64px, 8vw, 104px); }
.lg-body { max-width:880px; background:var(--white); border:1px solid var(--line); border-radius:8px; padding:clamp(24px, 4vw, 48px); color:#2E332F; font-size:15px; font-weight:500; line-height:1.8; word-break:keep-all; }
.lg-body section { padding:26px 0; border-top:1px solid #EEE8DC; scroll-margin-top:96px; }
.lg-body section:first-child, .lg-toc + section { border-top:0; padding-top:0; }
.lg-lead { margin:0 0 22px; }
.lg-body h2 { margin:0 0 10px; font-size:17.5px; font-weight:800; color:var(--ink); letter-spacing:-0.01em; }
.lg-body p { margin:0 0 10px; } .lg-body p:last-child { margin-bottom:0; }
.lg-body ul { margin:0 0 10px; padding-left:20px; } .lg-body li { margin:4px 0; }
.lg-body b { color:var(--yellow-ink); }
.lg-body a { color:var(--yellow-ink); text-decoration:underline; text-underline-offset:2px; }
.lg-toc { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:26px; margin-bottom:26px; border-bottom:1px solid #EEE8DC; }
.lg-toc a { padding:6px 13px; border-radius:999px; background:var(--beige-2); color:#4E544F; font-size:13px; font-weight:700; text-decoration:none; }
.lg-toc a:hover { background:var(--beige); color:var(--ink); }
.lg-body table { width:100%; border-collapse:collapse; margin:8px 0 12px; font-size:14px; }
.lg-body th, .lg-body td { border:1px solid #E6DFD1; padding:10px 12px; text-align:left; vertical-align:top; }
.lg-body thead th, .lg-body tbody th { background:var(--ivory); font-weight:800; color:var(--ink); }
.lg-body thead th { white-space:nowrap; }
.agree-link { color:var(--yellow-ink); font-weight:700; text-decoration:underline; text-underline-offset:2px; margin-left:4px; }

.lg-pop { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(31,36,33,.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); opacity:0; transition:opacity .2s; }
.lg-pop.is-on { opacity:1; }
.lg-pop-card { display:flex; flex-direction:column; width:100%; max-width:820px; max-height:min(86vh, 900px); background:var(--white); border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.25); overflow:hidden; transform:translateY(12px); transition:transform .25s cubic-bezier(.22,.61,.36,1); }
.lg-pop.is-on .lg-pop-card { transform:none; }
.lg-pop-hd { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 24px; border-bottom:1px solid var(--line); flex-shrink:0; }
.lg-pop-hd h2 { margin:0; font-size:20px; font-weight:900; letter-spacing:-0.02em; color:var(--ink); }
.lg-pop-x { flex-shrink:0; width:40px; height:40px; border:0; border-radius:50%; background:var(--beige-2); color:#4E544F; font-size:22px; line-height:1; cursor:pointer; }
.lg-pop-x:hover { background:var(--beige); color:var(--ink); }
.lg-pop-sc { overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:24px 28px 8px; }
.lg-pop-sc .lg-body { max-width:none; border:0; border-radius:0; padding:0; background:transparent; }
.lg-pop-ft { display:flex; justify-content:center; padding:14px 24px 20px; border-top:1px solid var(--line); flex-shrink:0; }
.lg-pop-ft .btn { min-width:160px; height:46px; border-radius:999px; }
.lg-pop-load { padding:56px 0; text-align:center; color:var(--muted); font-weight:600; }
html.lg-lock { overflow:hidden; }

/* ---------- 공지사항 ---------- */
.nt-sec { padding-block:clamp(40px, 5vw, 72px) clamp(64px, 8vw, 104px); }
.nt-load { margin:0; padding:56px 0; text-align:center; color:var(--muted); font-weight:600; }
.nt-table { width:100%; border-collapse:collapse; border-top:2px solid var(--charcoal); font-size:15px; }
.nt-table th { padding:16px 12px; border-bottom:1px solid var(--line); font-weight:700; color:#3B403C; }
.nt-table td { padding:18px 12px; border-bottom:1px solid #E6DFD1; font-weight:500; vertical-align:top; }
.nt-table .c-cat { width:120px; text-align:center; }
.nt-table .c-date { width:120px; text-align:center; color:var(--muted); font-variant-numeric:tabular-nums; }
.nt-table tr.is-pin td { background:var(--beige-2); }
.nt-cat { display:inline-block; padding:3px 10px; border-radius:999px; background:var(--beige); color:#4E544F; font-size:12px; font-weight:800; }
.nt-cat-m { display:none; }
.nt-title { all:unset; cursor:pointer; display:block; width:100%; color:var(--ink); font-weight:600; line-height:1.5; }
.nt-title:hover { color:var(--yellow-ink); }
.nt-title:focus-visible { outline:2px solid var(--yellow-ink); outline-offset:4px; border-radius:4px; }
.nt-pin { color:var(--yellow-ink); font-weight:800; margin-right:6px; }
.nt-body td { background:var(--white); padding:24px 28px; line-height:1.8; white-space:pre-line; word-break:keep-all; color:#2E332F; }
.nt-empty td { text-align:center; padding:56px 12px; color:var(--muted); }
.nt-pager { display:flex; justify-content:center; gap:6px; margin-top:36px; }
.nt-pager button { min-width:40px; height:40px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:#4E544F; font:700 14px/1 var(--font); cursor:pointer; }
.nt-pager button[aria-current="page"] { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.nt-pager button:disabled { opacity:.35; cursor:default; }

/* ---------- 모바일 하단 고정 ---------- */
.mbar { display:none; }

/* ---------- 반응형 ---------- */
@media (max-width: 1100px) {
  .gnb a { padding:8px 8px; font-size:14px; }
  .cards, .ocards, .tutors { grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 960px) {
  .gnb { display:none; }
  .hd .hd-cta { margin-left:auto; height:32px; padding:0 12px; gap:4px; font-size:13px; }
  .hd .wrap { gap:10px; }
  .burger { display:block; margin-left:4px; }
  .drawer { display:block; position:fixed; inset:0; top:calc(106px + env(safe-area-inset-top, 0px)); z-index:49; background:var(--ivory); padding:20px var(--gutter) 40px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; overflow-y:auto; }
  .drawer a { display:block; padding:16px 4px; border-bottom:1px solid var(--line); font-size:18px; font-weight:700; }
  .drawer a[aria-current="page"] { color:var(--yellow-ink); }
  /* 메뉴 하단 바로가기 (본사 사이트와 같은 구성·모양) */
  .drawer-quick { display:grid; grid-template-columns:1fr 1fr; margin:24px calc(-1 * var(--gutter)) 0; border-top:1px solid #e2e2e2; }
  .drawer .drawer-quick a { display:flex; align-items:center; justify-content:center; min-height:56px; padding:8px; background:#f4f4f2; border-bottom:1px solid #e2e2e2; color:#2a2a2a; font-size:15px; font-weight:600; text-align:center; }
  .drawer .drawer-quick a:nth-child(odd) { border-right:1px solid #e2e2e2; }
  .drawer .drawer-quick a:hover { color:var(--yellow-ink); }
  .drawer .drawer-quick a.is-brand { font-family:'Jalnan Brand','Apple SD Gothic Neo',sans-serif; font-weight:400; font-size:clamp(13px, 3.9vw, 16px); letter-spacing:.01em; color:#6b6b6b; white-space:nowrap; }
  .drawer .drawer-quick a.is-brand small { font-family:var(--font); font-size:10px; font-weight:400; letter-spacing:.1em; margin-left:3px; }
  .drawer .drawer-quick a.is-cta { background:var(--charcoal); color:var(--white); font-weight:700; border-bottom-color:var(--charcoal); }
  .drawer .drawer-quick a.is-cta:hover { background:var(--ink); color:var(--white); }
  html.nav-open .drawer { opacity:1; transform:none; pointer-events:auto; }
  html.nav-open .mbar { display:none; }
  html.nav-open .burger span { background:transparent; }
  html.nav-open .burger span::before { transform:translateY(7px) rotate(45deg); }
  html.nav-open .burger span::after { transform:translateY(-7px) rotate(-45deg); }
  .hero .wrap, .path-top, .cert .wrap, .rental .wrap, .apply .wrap, .h-about .wrap, .h-rental .wrap { grid-template-columns:minmax(0,1fr); }
  .why-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .hero-badge { left:12px; bottom:-18px; }
  .steps { grid-template-columns:minmax(0,1fr); }
  .steps li { padding:22px 0; }
  .career .grid { grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 767px) {
  body:has(.mbar) { padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px)); }
  br.pc { display:none; }
  .h-cards { grid-template-columns:minmax(0,1fr); gap:20px; }
  .h-cls-band, .h-cls-head { padding-inline:18px; }
  .h-cls-list { margin-inline:18px; }
  .h-cls-list + .h-cls-go { margin-inline:18px; }
  .h-cls-img { aspect-ratio:16/9; }
  .h-about .wrap, .h-rental-tx { text-align:center; }
  .h-about .eyebrow, .h-rental-tx .eyebrow { justify-content:center; }
  .h-about-tx p { margin-inline:auto; }
  .ha-media { margin:12px 0 8px 12px; }
  .ha-media::before { left:-12px; top:-14px; }
  .ha-badge { left:10px; padding:10px 12px; } .ha-badge b { font-size:22px; }
  .ha-pts { width:max-content; max-width:100%; margin-inline:auto; text-align:left; }
  .page-hd { text-align:center; }
  .page-hd .eyebrow { justify-content:center; }
  .page-hd .lead { margin-inline:auto; }
  .page-hd .rv-uses { justify-content:center; flex-wrap:nowrap; gap:5px; }
  .page-hd .rv-uses li { flex:none; padding:6px 10px; font-size:12.5px; white-space:nowrap; letter-spacing:-0.02em; }
  .family .wrap { justify-content:center; } .family .fam-l { display:none; }
  .hd .wrap { height:64px; }
  .drawer { top:calc(98px + env(safe-area-inset-top, 0px)); }
  .hero { text-align:center; }
  .hero .eyebrow, .hero-cta { justify-content:center; }
  .hero p { margin-inline:auto; }
  .hero h1 { font-size:clamp(36px, 10vw, 46px); }
  .hero-cta { display:none; }
  .sec-head { flex-direction:column; align-items:center; text-align:center; }
  .sec-head .lead { margin-inline:auto; }
  .facts ul { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .facts li { padding:20px 16px; }
  .facts li:nth-child(3) { border-left:0; }
  .facts li:nth-child(n+3) { border-top:1px solid var(--line); }
  .mission { text-align:center; padding-block:80px; }
  .mission::after { background:rgba(31,36,33,.66); }
  .mission p { margin-inline:auto; }
  .path-tx { text-align:center; }
  .path-tx .eyebrow, .path-tx .lead { justify-content:center; margin-inline:auto; }
  .path-photos { gap:10px; }
  .path-photos figure:last-child { margin-top:32px; }
  .steps { margin-top:48px; }
  .tabs { justify-content:center; }
  .tabs button { flex:1; padding:14px 8px; font-size:15.5px; }
  .panel-note { text-align:center; font-size:14px; }
  .panel-cta { text-align:center; }
  .why-grid { grid-template-columns:minmax(0,1fr); }
  .why-grid li { display:grid; grid-template-columns:52px minmax(0,1fr); gap:2px 14px; padding:22px 20px; }
  .why-grid .n { grid-row:span 3; font-size:28px; }
  .why-grid small { margin-top:0; }
  .closing .wrap { flex-direction:column; text-align:center; }
  .closing .eyebrow { justify-content:center; }
  .closing-cta { justify-content:center; width:100%; }
  .closing-cta .btn { flex:1; min-width:0; padding:0 12px; }
  .cards { grid-template-columns:minmax(0,1fr); }
  .ocards { grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 12px; }
  .ocard h3 { font-size:15px; }
  .tutors { grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px 14px; }
  .tutor { gap:10px; }
  .tutor-nm { font-size:16px; }
  .tp { grid-template-columns:110px minmax(0,1fr); gap:16px; }
  .tp-ph { position:static; }
  .tp-tx { display:contents; }
  .tp-top { align-self:center; }
  .tp-sec, .tp-empty { grid-column:1 / -1; margin-top:4px; }
  .tp-intro { grid-column:1 / -1; }
  .tp-tx h3 { font-size:21px; margin-top:0; }
  .tp-intro, .tp-sec li { font-size:14px; }
  .cert-tx { text-align:center; }
  .cert-tx .eyebrow { justify-content:center; }
  .cert-tx .lead { margin-inline:auto; }
  .cert-logo img { margin-inline:auto; }
  .cert-pts { text-align:left; }
  .cert-visual { min-height:340px; gap:40px; }
  .cert-seal { width:160px; }
  .ft-partner img { width:170px; }
  .rental-tx, .apply-tx { text-align:center; }
  .rental-tx .eyebrow, .apply-tx .eyebrow { justify-content:center; }
  .rental ul { justify-content:center; }
  .apply-info { text-align:left; }
  .form { grid-template-columns:minmax(0,1fr); }
  .mbar { display:flex; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:60; padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background:rgba(247,244,238,.97); border-top:1px solid var(--line); }
  .mbar .btn { flex:1; height:50px; padding:0 10px; font-size:15px; }
  /* 모바일 푸터: 가운데 정렬, 한 줄에 한 항목 */
  .ft { text-align:center; }
  .ft-main { padding-block:36px 40px; }
  .ft-head { flex-direction:column; gap:18px; padding-bottom:22px; }
  .ft-nav { justify-content:center; margin:20px 0 16px; }
  .ft-nav a { font-size:13.5px; }
  .ft-nav a + a::before { margin:0 10px; }
  .ft-nav-br { flex-basis:100%; width:auto; height:4px; }
  .ft-info { display:flex; flex-direction:column; gap:4px; line-height:1.6; }
  .ft-l:last-child .ft-i { display:block; }
  .ft-l:last-child .ft-i + .ft-i { margin-top:4px; }
  .ft-l:last-child .ft-i::before { display:none; }
  .ft-bottom { flex-direction:column; gap:14px; margin-top:24px; }
  .ft-partner { justify-content:center; }
}

@media (max-width: 359px) {
  .hd .hd-cta { padding:0 10px; font-size:12.5px; }
  .hd .hd-cta .arrow { display:none; }
  .logo-tx b { font-size:14px; }
}

@media (max-width: 767px) {
  .lg-body { font-size:14px; border-radius:6px; text-align:left; }
  .lg-body th, .lg-body td { padding:9px 10px; font-size:13.5px; }
  /* 칸이 많은 표만 휴대폰에서 카드 모양으로 */
  .lg-body table.lg-wide, .lg-wide thead, .lg-wide tbody, .lg-wide tr { display:block; width:100%; }
  .lg-wide thead { display:none; }
  .lg-wide tbody tr { border:1px solid #E6DFD1; border-radius:8px; margin-bottom:10px; overflow:hidden; }
  .lg-wide td, .lg-wide tbody th { display:block; border:0; border-bottom:1px solid #EEE8DC; padding:9px 12px; }
  .lg-wide td:last-child { border-bottom:0; }
  .lg-wide td[data-label]::before { content:attr(data-label); display:block; font-size:12px; font-weight:800; color:var(--yellow-ink); margin-bottom:2px; }
  .lg-pop { padding:0; align-items:flex-end; }
  .lg-pop-card { max-width:none; max-height:92vh; border-radius:16px 16px 0 0; transform:translateY(24px); }
  .lg-pop-hd { padding:14px 18px; }
  .lg-pop-hd h2 { font-size:18px; }
  .lg-pop-sc { padding:18px 18px 8px; }
  .lg-pop-ft { padding:12px 18px calc(16px + env(safe-area-inset-bottom, 0px)); }
  .lg-pop-ft .btn { width:100%; }
}

@media (max-width: 767px) {
  .nt-table { font-size:14px; }
  .nt-table thead .c-cat, .nt-table tbody .c-cat { display:none; }
  .nt-table .c-title { text-align:left; }
  .nt-table .c-date { width:88px; font-size:13px; }
  .nt-cat-m { display:inline-block; margin:0 6px 4px 0; vertical-align:1px; }
  .nt-body td { padding:18px 16px; }
}

@media (max-width: 767px) {
  .hb-track { height:clamp(380px, 58vh, 440px); }
  .hb-slide { align-items:flex-end; }
  .hb-slide::after { background:linear-gradient(180deg, rgba(31,36,33,.15) 0%, rgba(31,36,33,.55) 45%, rgba(31,36,33,.9) 100%); }
  .hb-tx { text-align:center; padding-bottom:64px; }
  .hb-eb { justify-content:center; font-size:12px; }
  .hb-title { font-size:clamp(24px, 7vw, 30px); margin-inline:auto; }
  .hb-sub { margin-inline:auto; font-size:14.5px; }
  .hb-cta { justify-content:center; margin-top:16px; }
  .hb-btn { height:36px; padding:0 15px; font-size:13.5px; }
  .hb-ctl { bottom:18px; justify-content:center; gap:12px; }
  .hb-ctl button { font-size:12.5px; }
  .hb-count { display:none; }
}

/* 등록 민간자격 강조 띠 */
.lic { position:relative; overflow:hidden; background:var(--charcoal); color:var(--white); padding-block:clamp(44px, 5.5vw, 68px); isolation:isolate; }
.lic::before { content:''; position:absolute; right:-120px; top:-160px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(212,184,102,.22), rgba(212,184,102,0) 70%); z-index:-1; }
.lic .wrap { display:flex; align-items:center; justify-content:space-between; gap:32px 48px; }
.lic-tx { min-width:0; }
.lic-eyebrow { font-size:12.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow); }
.lic-h { margin:14px 0 0; font-size:clamp(22px, 2.6vw, 34px); font-weight:900; line-height:1.5; letter-spacing:-0.03em; color:var(--white); }
.lic-h mark { background:var(--yellow); color:var(--ink); padding:2px 12px; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.lic-meta { margin:16px 0 0; font-size:13px; font-weight:600; color:#B9B4A8; }
.lic-dot { margin-inline:8px; }
.lic-btn { flex-shrink:0; display:inline-flex; align-items:center; gap:12px; height:52px; padding:0 8px 0 24px; border-radius:999px; border:1.5px solid rgba(255,255,255,.7); color:var(--white); font-size:15px; font-weight:800; transition:background .2s, color .2s, border-color .2s; }
.lic-btn-ic { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:var(--yellow); color:var(--ink); font-size:16px; transition:transform .25s; }
.lic-btn:hover { background:var(--white); color:var(--ink); border-color:var(--white); }
.lic-btn:hover .lic-btn-ic { transform:translateX(3px); }
@media (max-width:860px) {
  .lic .wrap { flex-direction:column; align-items:center; text-align:center; }
  .lic-h { font-size:clamp(19px, 5.4vw, 24px); line-height:1.6; }
  .lic-h mark { padding:2px 8px; }
  .lic-meta { line-height:1.7; }
}
@media (prefers-reduced-motion:reduce) { .lic-btn-ic { transition:none; } }
.lic-badge { display:inline-flex; align-items:center; height:24px; margin-left:10px; padding:0 10px; border:1px solid rgba(212,184,102,.6); border-radius:999px; font-size:11.5px; font-weight:700; letter-spacing:0; text-transform:none; color:var(--yellow); vertical-align:middle; }
@media (max-width:860px) { .lic-eyebrow { display:flex; flex-direction:column; align-items:center; gap:10px; } .lic-badge { margin-left:0; } }
.lic-mi { white-space:nowrap; }
@media (max-width:860px) { .lic-mi { display:block; } .lic-dot { display:none; } }

/* ================= 오프라인 과정 상세 (course.html) ================= */
a.card-img { display:block; }
.card-img img { transition:transform .5s; }
.card:hover .card-img img { transform:scale(1.03); }
.card h3 a { color:inherit; }
.card h3 a:hover { color:var(--yellow-ink); }
.card-live { position:absolute; right:12px; top:12px; padding:4px 10px; border-radius:999px; background:var(--yellow); color:var(--ink); font-size:12px; font-weight:800; }

.cd-none { padding-block:96px; text-align:center; }
.cd-none h1 { margin:0; font-size:28px; font-weight:900; }
.cd-none p { margin:12px 0 24px; color:var(--muted); }

.cd-hero { background:var(--beige-2); border-bottom:1px solid var(--line); padding-block:clamp(28px, 3.5vw, 44px) clamp(40px, 5vw, 64px); }
.cd-crumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--muted); }
.cd-crumb a:hover { color:var(--ink); text-decoration:underline; }
.cd-crumb span[aria-current] { color:var(--ink); }
.cd-hero-grid { margin-top:clamp(24px, 3vw, 36px); display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr); gap:clamp(32px, 5vw, 64px); align-items:center; }
.cd-tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.cd-tags .tag-sample { margin-left:0; }
.cd-tag { display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px; background:var(--charcoal); color:var(--white); font-size:12.5px; font-weight:800; }
.cd-live { display:inline-flex; align-items:center; gap:7px; height:28px; padding:0 12px; border-radius:999px; background:var(--yellow); color:var(--ink); font-size:12.5px; font-weight:800; }
.cd-live i { width:7px; height:7px; border-radius:50%; background:#C0392B; box-shadow:0 0 0 0 rgba(192,57,43,.5); animation:cdPulse 1.8s infinite; }
@keyframes cdPulse { 70% { box-shadow:0 0 0 7px rgba(192,57,43,0); } 100% { box-shadow:0 0 0 0 rgba(192,57,43,0); } }
.cd-hero h1 { margin:16px 0 0; font-size:clamp(30px, 3.8vw, 48px); font-weight:900; line-height:1.22; letter-spacing:-0.04em; color:var(--ink); }
.cd-lead { margin:16px 0 0; max-width:560px; font-size:clamp(15px, 1.2vw, 16.5px); color:var(--muted); line-height:1.75; }
.cd-keys { list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; max-width:560px; }
.cd-keys li { display:flex; flex-direction:column; gap:2px; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-radius:8px; min-width:0; }
.cd-keys span { font-size:12px; font-weight:700; color:var(--muted); }
.cd-keys b { font-size:14.5px; font-weight:800; color:var(--ink); line-height:1.4; }
.cd-hero-img { border-radius:8px; overflow:hidden; aspect-ratio:4/3; background:var(--beige); box-shadow:0 20px 44px rgba(51,58,53,.14); }
.cd-hero-img img { width:100%; height:100%; object-fit:cover; }

.cd-tabs { position:sticky; top:72px; z-index:40; background:rgba(247,244,238,.96); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.cd-tabs-in { display:flex; gap:clamp(18px, 2.6vw, 34px); overflow-x:auto; scrollbar-width:none; }
.cd-tabs-in::-webkit-scrollbar { display:none; }
.cd-tabs a { position:relative; flex-shrink:0; padding:16px 0 15px; font-size:15px; font-weight:700; color:var(--muted); white-space:nowrap; }
.cd-tabs a:hover { color:var(--ink); }
.cd-tabs a[aria-current] { color:var(--ink); font-weight:800; }
.cd-tabs a[aria-current]::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:3px; border-radius:3px 3px 0 0; background:var(--yellow); }

.cd-body { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:clamp(40px, 5vw, 72px); align-items:start; padding-block:clamp(48px, 6vw, 72px) clamp(72px, 8vw, 104px); }
.cd-main { min-width:0; }
.cd-sec { scroll-margin-top:150px; }
.cd-sec + .cd-sec { margin-top:clamp(56px, 6vw, 80px); }
.cd-h2 { margin:0 0 22px; font-size:clamp(22px, 2.2vw, 28px); font-weight:900; letter-spacing:-0.03em; color:var(--ink); }
.cd-p { margin:0; font-size:16px; line-height:1.85; color:#3d433f; }
.cd-two { margin-top:28px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
.cd-box { padding:26px 26px 24px; background:var(--white); border:1px solid var(--line); border-radius:10px; min-width:0; }
.cd-box h3 { margin:0 0 14px; font-size:16.5px; font-weight:900; }
.cd-box-dark { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.cd-check, .cd-goals { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.cd-check li { position:relative; padding-left:30px; font-size:15px; line-height:1.6; }
.cd-check li::before { content:''; position:absolute; left:0; top:2px; width:20px; height:20px; border-radius:50%; background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3 6.8 11 12 5.5' fill='none' stroke='%231F2421' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
.cd-goals li { display:flex; gap:12px; font-size:15px; line-height:1.6; }
.cd-goals b { flex-shrink:0; font-size:13px; font-weight:900; color:var(--yellow); padding-top:2px; letter-spacing:.04em; }
.cd-goals span { color:#ECE7DC; }

.cd-curri { list-style:none; margin:0; padding:0; border-top:2px solid var(--ink); }
.cd-curri li { position:relative; display:grid; grid-template-columns:104px minmax(0,1fr); gap:20px; padding:20px 0; border-bottom:1px solid var(--line); }
.cd-when { font-size:14px; font-weight:900; color:var(--yellow-ink); padding-top:1px; white-space:nowrap; }
.cd-curri b { display:block; font-size:16.5px; font-weight:800; color:var(--ink); }
.cd-curri p { margin:4px 0 0; font-size:14.5px; color:var(--muted); line-height:1.65; }

.cd-table { margin:0; border-top:2px solid var(--ink); }
.cd-table > div { display:grid; grid-template-columns:120px minmax(0,1fr); gap:20px; padding:16px 4px; border-bottom:1px solid var(--line); }
.cd-table dt { font-size:14.5px; font-weight:700; color:var(--muted); }
.cd-table dd { margin:0; font-size:15.5px; font-weight:700; color:var(--ink); }
.cd-table .cd-price { background:var(--beige-2); margin-inline:-12px; padding-inline:16px; }
.cd-table .cd-price dd { font-size:19px; font-weight:900; }
.cd-inc { margin-top:20px; display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; }
.cd-inc > span { font-size:13.5px; font-weight:800; color:var(--muted); }
.cd-inc ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.cd-inc li { padding:6px 12px; border:1px solid var(--line); border-radius:999px; background:var(--white); font-size:13.5px; font-weight:700; }

.cd-empty { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; padding:24px 26px; background:var(--beige-2); border-radius:10px; }
.cd-empty p { margin:0; font-size:15px; color:#3d433f; line-height:1.7; }
.cd-empty a { font-size:14.5px; font-weight:800; white-space:nowrap; }
.cd-empty a:hover { color:var(--yellow-ink); }
.cd-tutors { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.cd-tutor { display:flex; align-items:center; gap:16px; padding:12px; background:var(--white); border:1px solid var(--line); border-radius:10px; font:inherit; color:inherit; text-align:left; cursor:pointer; transition:border-color .2s, box-shadow .2s; min-width:0; }
.cd-tutor:hover { border-color:var(--charcoal); box-shadow:0 10px 24px rgba(51,58,53,.08); }
.cd-tutor-ph { flex-shrink:0; width:72px; aspect-ratio:3/4; border-radius:6px; overflow:hidden; background:var(--beige); }
.cd-tutor-ph img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.cd-tutor-tx { display:flex; flex-direction:column; gap:2px; min-width:0; }
.cd-tutor-tx b { font-size:16.5px; font-weight:900; }
.cd-tutor-tx small { font-size:13px; color:var(--muted); font-weight:600; }
.cd-tutor-tx em { margin-top:4px; font-style:normal; font-size:13px; font-weight:800; color:var(--yellow-ink); }

.cd-faq { border-top:2px solid var(--ink); }
.cd-faq details { border-bottom:1px solid var(--line); }
.cd-faq summary { position:relative; display:flex; align-items:flex-start; gap:12px; padding:18px 44px 18px 4px; font-size:16px; font-weight:800; cursor:pointer; list-style:none; }
.cd-faq summary::-webkit-details-marker { display:none; }
.cd-faq .q { flex-shrink:0; font-weight:900; color:var(--yellow-ink); }
.cd-faq summary i { position:absolute; right:8px; top:22px; width:18px; height:18px; }
.cd-faq summary i::before, .cd-faq summary i::after { content:''; position:absolute; left:2px; right:2px; top:8px; height:2px; border-radius:2px; background:var(--ink); transition:transform .25s; }
.cd-faq summary i::after { transform:rotate(90deg); }
.cd-faq details[open] summary i::after { transform:rotate(0); }
.cd-faq details p { margin:0; padding:0 4px 20px 32px; font-size:15px; color:#4d534f; line-height:1.75; }

.cd-side { position:sticky; top:150px; }
.cd-side-in { display:flex; flex-direction:column; gap:10px; padding:26px; background:var(--white); border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 40px rgba(51,58,53,.08); }
.cd-side-tag { align-self:flex-start; font-size:12px; font-weight:800; color:var(--yellow-ink); }
.cd-side-t { font-size:19px; font-weight:900; line-height:1.4; letter-spacing:-0.02em; }
.cd-side dl { margin:6px 0 8px; padding-top:10px; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:6px; }
.cd-side dl div { display:flex; justify-content:space-between; gap:12px; font-size:14px; }
.cd-side dt { color:var(--muted); font-weight:600; }
.cd-side dd { margin:0; font-weight:800; text-align:right; }
.cd-side-btn { width:100%; height:50px; border-radius:999px; }
.cd-side-note { margin:4px 0 0; font-size:12.5px; color:var(--muted); text-align:center; }

.cd-more { background:var(--beige-2); border-top:1px solid var(--line); padding-block:clamp(56px, 6vw, 80px); }
.cd-more-hd { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.cd-more-hd a { font-size:14.5px; font-weight:800; }
.cd-more-hd a:hover { color:var(--yellow-ink); }
.cd-more-list { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
.cd-mcard { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:10px; overflow:hidden; transition:transform .25s, box-shadow .25s; min-width:0; }
.cd-mcard:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(51,58,53,.10); }
.cd-mcard-img { aspect-ratio:16/10; overflow:hidden; background:var(--beige); }
.cd-mcard-img img { width:100%; height:100%; object-fit:cover; }
.cd-mcard-tx { display:flex; flex-direction:column; gap:4px; padding:16px 18px 18px; }
.cd-mcard-tx small { font-size:12px; font-weight:800; color:var(--yellow-ink); }
.cd-mcard-tx b { font-size:16.5px; font-weight:900; line-height:1.4; }
.cd-mcard-tx em { font-style:normal; font-size:13px; color:var(--muted); font-weight:600; }

@media (max-width:980px) {
  .cd-body { grid-template-columns:minmax(0,1fr); }
  .cd-side { display:none; }
  .cd-hero-grid { grid-template-columns:minmax(0,1fr); }
  .cd-hero-img { order:-1; aspect-ratio:16/10; }
}
@media (max-width:767px) {
  .cd-tabs { top:64px; }
  .cd-sec { scroll-margin-top:130px; }
  .cd-tabs a { font-size:14px; padding:14px 0 13px; }
  .cd-keys { grid-template-columns:minmax(0,1fr); gap:8px; }
  .cd-keys li { flex-direction:row; justify-content:space-between; align-items:center; padding:12px 14px; }
  .cd-two, .cd-tutors, .cd-more-list { grid-template-columns:minmax(0,1fr); }
  .cd-box { padding:22px 20px; }
  .cd-curri li { grid-template-columns:minmax(0,1fr); gap:4px; padding:16px 0; }
  .cd-table > div { grid-template-columns:96px minmax(0,1fr); gap:12px; }
  .cd-faq summary { font-size:15px; }
  .cd-more-list { gap:12px; }
  .cd-mcard { flex-direction:row; }
  .cd-mcard-img { width:116px; flex-shrink:0; aspect-ratio:auto; }
  .cd-mcard-tx { padding:14px 16px; }
}
@media (prefers-reduced-motion:reduce) { .cd-live i { animation:none; } }

/* ================= 리크루트 (career.html · job.html · job-apply.html) ================= */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.rc-brand { font-weight:900; letter-spacing:-0.01em; }
.rc-h2 { margin:0; font-size:clamp(28px, 3.8vw, 50px); font-weight:900; line-height:1.3; letter-spacing:-0.04em; color:var(--ink); text-wrap:balance; }
.rc-center { text-align:center; }
.rc-display { margin:0; font-size:clamp(36px, 6vw, 80px); font-weight:800; line-height:1.05; letter-spacing:-0.04em; color:var(--ink); }
.rc-display .rc-brand { color:var(--charcoal); }
.rc-display-sm { font-size:clamp(40px, 5vw, 68px); }
.rc-display .tag-sample { font-size:11px; vertical-align:top; }
.rc-arw { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border:1.5px solid currentColor; border-radius:50%; flex-shrink:0; }
.rc-pill { display:inline-flex; align-items:center; gap:14px; height:64px; padding:0 34px; border-radius:999px; background:#E5DECF; color:var(--ink); font-size:18px; font-weight:700; transition:background .2s, transform .2s; }
.rc-pill:hover { background:#D9D0BD; transform:translateY(-2px); }
.rc-pill-sm { height:48px; padding:0 22px; font-size:15px; gap:10px; }
.rc-pill-sm .rc-arw { width:20px; height:20px; }

.rc-hero { position:relative; height:min(78vh, 760px); min-height:420px; overflow:hidden; background:var(--charcoal); }
.rc-hero img, .rc-hero-v { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 55%; }
.rc-vbtn { position:absolute; right:clamp(16px, 3vw, 32px); bottom:clamp(16px, 3vw, 32px); z-index:2; width:40px; height:40px; border:1.5px solid rgba(255,255,255,.75); border-radius:50%; background:rgba(31,36,33,.25); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rc-vbtn:hover { background:rgba(31,36,33,.5); }
.rc-vbtn span { width:10px; height:12px; border-left:3px solid #fff; border-right:3px solid #fff; }
.rc-vbtn.is-paused span { width:0; height:0; border:0; border-left:11px solid #fff; border-top:7px solid transparent; border-bottom:7px solid transparent; margin-left:3px; }
.rc-hero::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, rgba(31,36,33,.38) 0%, rgba(31,36,33,.18) 70%); }
.rc-hero-tx { position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center; padding:24px; }
.mo-br { display:none; }
.rc-hero-en { margin:0; color:#fff; text-align:center; font-size:clamp(34px, 5.6vw, 76px); font-weight:700; line-height:1.15; letter-spacing:-0.03em; text-shadow:0 4px 30px rgba(0,0,0,.25); }

.rc-welcome { text-align:center; padding-block:clamp(88px, 11vw, 150px) 0; }
.rc-sub { margin:16px 0 0; font-size:clamp(18px, 1.8vw, 24px); font-weight:600; color:var(--ink); }
.rc-welcome-p { margin:clamp(48px, 6vw, 80px) auto 0; max-width:680px; font-size:clamp(15px, 1.35vw, 18px); line-height:1.95; color:var(--muted); font-weight:500; }
.rc-welcome .rc-pill { margin-top:clamp(48px, 6vw, 72px); }
.rc-line { display:block; width:1px; height:clamp(90px, 11vw, 150px); margin:28px auto 0; background:linear-gradient(var(--line), var(--muted), transparent); }

.rc-story { padding-block:clamp(80px, 9vw, 130px); background:linear-gradient(var(--ivory), var(--white)); }
.rc-story .wrap { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px, 6vw, 96px); align-items:start; }
.rc-story-p p { margin:0 0 22px; font-size:clamp(15px, 1.3vw, 17.5px); line-height:1.95; color:var(--muted); }
.rc-story-p b { color:#3d433f; font-weight:800; }

.rc-nums { background:var(--white); border-top:1px solid var(--line); }
.rc-nums .wrap { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); }
.rc-num { display:flex; flex-direction:column; justify-content:space-between; gap:clamp(40px, 6vw, 90px); padding:clamp(36px, 4vw, 56px) clamp(16px, 2vw, 32px); border-left:1px solid var(--line); min-width:0; }
.rc-num:first-child { border-left:0; padding-left:0; }
.rc-num p { margin:0; font-size:clamp(14px, 1.2vw, 16.5px); line-height:1.7; color:var(--muted); font-weight:500; }
.rc-num b { display:flex; flex-direction:column; font-size:clamp(60px, 8vw, 116px); font-weight:900; line-height:.95; letter-spacing:-0.05em; color:var(--ink); }
.rc-num b small { font-size:clamp(16px, 1.5vw, 22px); font-weight:600; letter-spacing:0; margin-bottom:8px; }
.rc-num b i { font-style:normal; font-size:.38em; letter-spacing:-0.02em; margin-left:4px; display:inline; }
.rc-num:nth-child(2) b { flex-direction:row; align-items:baseline; }

.rc-why { padding-block:clamp(88px, 10vw, 150px); background:var(--white); border-top:1px solid var(--line); }
.rc-why-grid { margin-top:clamp(48px, 6vw, 88px); display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(20px, 3vw, 40px); }
.rc-why article { min-width:0; }
.rc-why img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:2px; }
.rc-why h3 { margin:28px 0 0; padding-inline:clamp(0px, 1.2vw, 16px); font-size:clamp(19px, 1.8vw, 24px); font-weight:800; line-height:1.5; letter-spacing:-0.03em; }
.rc-why p { margin:18px 0 0; padding-inline:clamp(0px, 1.2vw, 16px); font-size:15px; line-height:1.85; color:var(--muted); }

.rc-wide { display:block; width:100%; height:clamp(200px, 26vw, 400px); object-fit:cover; }
.rc-benefit { background:var(--white); }
.rc-benefit .rc-wide { height:auto; aspect-ratio:2000/667; min-height:240px; object-position:51% 50%; }
.rc-benefit-in { padding-block:clamp(80px, 9vw, 130px); }
.rc-bn-hd { display:flex; align-items:flex-end; justify-content:space-between; gap:12px 32px; flex-wrap:wrap; }
.rc-bn-hd p { margin:0 0 8px; font-size:clamp(15px, 1.3vw, 17px); color:var(--muted); font-weight:500; }
.rc-bn { list-style:none; margin:clamp(36px, 4vw, 56px) 0 0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; }
.rc-bn li { min-width:0; display:flex; flex-direction:column; padding:clamp(24px, 2.4vw, 32px); background:var(--white); border:1px solid var(--line); border-radius:12px; }
.rc-bn-ic { display:flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:#EFE8DA; color:var(--charcoal); }
.rc-bn-ic svg { width:28px; height:28px; }
.rc-bn b { display:block; margin-top:24px; font-size:clamp(17px, 1.5vw, 20px); font-weight:800; letter-spacing:-0.02em; color:var(--ink); }
.rc-bn p { margin:8px 0 0; font-size:15px; line-height:1.7; color:var(--muted); font-weight:500; }
.rc-bn-sm { margin-top:0; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.rc-bn-sm li { padding:20px; border-radius:10px; }
.rc-bn-sm b { margin-top:14px; font-size:16px; }
.rc-bn-sm .rc-bn-ic { width:44px; height:44px; }
.rc-bn-sm .rc-bn-ic svg { width:22px; height:22px; }
.rc-bn-sm p { margin-top:6px; font-size:14px; }

.rc-band { position:relative; height:clamp(320px, 36vw, 480px); overflow:hidden; background:var(--charcoal); }
.rc-band img { width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.rc-band::after { content:''; position:absolute; inset:0; background:rgba(31,36,33,.42); }
.rc-band-tx { position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; padding:24px; text-align:center; }
.rc-band-tx p { margin:0; color:#fff; font-size:clamp(26px, 4vw, 54px); font-weight:800; line-height:1.3; letter-spacing:-0.04em; text-wrap:balance; }

.rc-stage { background:linear-gradient(var(--ivory), var(--white)); padding-block:clamp(80px, 9vw, 130px); }
.rc-nw { white-space:nowrap; }
.rc-stage .rc-wide { height:clamp(180px, 22vw, 340px); object-position:50% 55%; margin-bottom:clamp(72px, 9vw, 130px); }
.rc-stage-p { margin:24px 0 0; font-size:clamp(15px, 1.3vw, 17.5px); line-height:1.85; color:var(--muted); }
.rc-ways { margin-top:clamp(48px, 7vw, 100px); display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(16px, 3vw, 40px); }
.rc-way { position:relative; display:flex; flex-direction:column; gap:16px; min-height:clamp(260px, 26vw, 360px); padding:clamp(28px, 3.4vw, 48px); border-radius:8px; background:#E5DECF; color:var(--ink); overflow:hidden; transition:transform .25s, box-shadow .25s; }
.rc-way:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(51,58,53,.14); }
.rc-way b { display:flex; align-items:center; gap:14px; font-size:clamp(22px, 2.2vw, 30px); font-weight:800; letter-spacing:-0.03em; }
.rc-way b .rc-arw { width:32px; height:32px; }
.rc-way b .rc-arw svg { width:14px; height:14px; }
.rc-way span:not(.rc-arw) { max-width:520px; font-size:clamp(14.5px, 1.25vw, 16.5px); line-height:1.8; opacity:.85; }
.rc-way-dark { background:#6C6A5E; color:#F3EFE6; }
.rc-way-ic { position:absolute; right:clamp(24px, 4vw, 64px); bottom:clamp(20px, 3vw, 40px); width:clamp(72px, 8vw, 116px); height:auto; opacity:.9; }

.rc-jobs { padding-block:clamp(40px, 5vw, 64px) clamp(72px, 8vw, 120px); background:var(--white); min-height:60vh; }
.rc-jobs .jb-back { margin-bottom:18px; }
.rc-jobs-hd { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.rc-jobs-hd .tag-sample { font-size:11px; vertical-align:middle; }
.rc-count { margin:0; font-size:14px; font-weight:700; color:var(--muted); }
.rc-filter { margin-top:36px; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)) minmax(0, 1.4fr); gap:10px; }
.rc-sel, .rc-search { position:relative; min-width:0; }
.rc-sel select, .rc-search input { width:100%; height:54px; padding:0 44px 0 18px; border:1px solid var(--line); border-radius:6px; background:var(--white); font:500 15px var(--font); color:var(--ink); appearance:none; -webkit-appearance:none; }
.rc-sel::after { content:''; position:absolute; right:18px; top:50%; border:5px solid transparent; border-top:6px solid var(--ink); border-bottom:0; transform:translateY(-30%); pointer-events:none; }
.rc-search svg { position:absolute; right:16px; top:50%; width:22px; height:22px; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.rc-sel select:focus, .rc-search input:focus { outline:none; border-color:var(--charcoal); }
.rc-tags { margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; }
.rc-tags button { height:42px; padding:0 18px; border:0; border-radius:6px; background:var(--beige-2); font:600 14.5px var(--font); color:#4E544F; cursor:pointer; }
.rc-tags button:hover { background:var(--beige); }
.rc-tags button[aria-pressed="true"] { background:var(--charcoal); color:var(--white); }
.rc-list { list-style:none; margin:28px 0 0; padding:0; border-top:1px solid var(--line); }
.rc-list li { border-bottom:1px solid var(--line); }
.rc-job { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 20px; padding:26px 20px; border-radius:8px; transition:background .2s; }
.rc-job:hover { background:var(--beige-2); }
.rc-job-t { font-size:clamp(17px, 1.6vw, 21px); font-weight:800; letter-spacing:-0.02em; color:var(--ink); }
.rc-job-t em { display:inline-flex; align-items:center; height:22px; margin-right:8px; padding:0 8px; border-radius:4px; background:var(--yellow); font-style:normal; font-size:11.5px; font-weight:800; vertical-align:3px; }
.rc-job-m { grid-column:1; display:flex; flex-wrap:wrap; gap:4px 0; margin:0; font-size:14.5px; color:var(--muted); font-weight:500; }
.rc-job-m span + span::before { content:''; display:inline-block; width:1px; height:12px; margin:0 12px; background:var(--line); vertical-align:-1px; }
.rc-job-d { grid-column:2; grid-row:1; font-size:14px; color:var(--muted); font-weight:600; white-space:nowrap; }
.rc-job.is-closed { opacity:.5; }
.rc-empty { padding:40px 20px; text-align:center; color:var(--muted); }
.rc-empty a { color:var(--ink); font-weight:800; text-decoration:underline; }

/* 공고 상세 · 지원서 */
body.has-jbbar .ft { padding-bottom:calc(84px + env(safe-area-inset-bottom, 0px)); }
.jb-img { height:clamp(180px, 22vw, 320px); overflow:hidden; background:var(--beige); }
.jb-img img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.jb-w { max-width:960px; }
.jb-hd { background:var(--white); border-bottom:1px solid var(--line); padding-block:clamp(28px, 3.5vw, 44px); }
.jb-back { display:inline-block; font-size:14px; font-weight:700; color:var(--muted); }
.jb-back:hover { color:var(--ink); }
.jb-hd h1 { margin:12px 0 14px; font-size:clamp(24px, 2.8vw, 36px); font-weight:900; letter-spacing:-0.03em; line-height:1.35; }
.jb-hd .tag-sample { font-size:11px; }
.jb-body { padding-block:clamp(40px, 5vw, 64px) clamp(64px, 7vw, 96px); }
.jb-head { margin:0 0 18px; font-size:clamp(20px, 2.2vw, 26px); font-weight:800; letter-spacing:-0.03em; line-height:1.45; }
.jb-p { margin:0 0 6px; font-size:16px; line-height:1.85; color:#3d433f; }
.jb-secs { margin-top:40px; padding-top:40px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:36px; }
.jb-sec h3 { margin:0 0 12px; font-size:17px; font-weight:900; }
.jb-sec ul { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.jb-sec ul:not(.rc-bn) li { position:relative; padding-left:16px; font-size:15.5px; line-height:1.75; color:#3d433f; }
.jb-sec ul:not(.rc-bn) li::before { content:''; position:absolute; left:2px; top:.8em; width:5px; height:5px; border-radius:50%; background:var(--yellow); }
.jb-sec .rc-bn { display:grid; gap:24px 20px; }
.jb-steps { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; counter-reset:s; }
.jb-steps li { display:flex; align-items:center; gap:8px; padding:10px 16px 10px 10px; border-radius:999px; background:var(--beige-2); font-size:14.5px; font-weight:700; }
.jb-steps b { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--charcoal); color:var(--white); font-size:12px; }
.jb-note { margin:48px 0 0; font-size:13.5px; color:var(--muted); }
.jb-bar { position:fixed; left:0; right:0; bottom:0; z-index:45; background:rgba(255,253,249,.97); backdrop-filter:blur(10px); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom, 0px); }
.jb-bar-in { display:flex; align-items:center; gap:12px; height:84px; }
.jb-bar-t { flex:1; min-width:0; font-size:16px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jb-share { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border:1.5px solid var(--charcoal); border-radius:8px; background:var(--white); color:var(--ink); cursor:pointer; }
.jb-share:hover { background:var(--beige-2); }
.jb-go { flex-shrink:0; min-width:180px; height:56px; border-radius:8px; font-size:17px; }
.jb-go.is-off { background:#9aa09b; cursor:not-allowed; }
.jb-toast { position:fixed; left:50%; bottom:104px; z-index:46; margin:0; padding:10px 18px; border-radius:999px; background:var(--ink); color:#fff; font-size:14px; font-weight:600; transform:translate(-50%, 10px); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; max-width:calc(100% - 32px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jb-toast.is-on { opacity:1; transform:translate(-50%, 0); }
.ja-sec { padding-block:clamp(28px, 4vw, 48px) clamp(56px, 7vw, 96px); }
.ja-w { max-width:640px; margin:0 auto; padding-inline:var(--gutter); }
.ja-sec h1 { margin:22px 0 0; font-size:clamp(30px, 3.6vw, 44px); font-weight:900; letter-spacing:-0.04em; }
.ja-job { margin:10px 0 0; font-size:16px; font-weight:800; color:var(--muted); }
.ja-form { margin-top:clamp(32px, 4vw, 48px); display:flex; flex-direction:column; gap:28px; }
.ja-form .f label { font-size:15px; }
.ja-hint { font-size:13px; color:var(--muted); margin-top:-2px; }
.ja-form .f input, .ja-form .f select { height:54px; border-radius:6px; }
.ja-form .f textarea { border-radius:6px; min-height:180px; }
.ja-note { margin:-8px 0 0; padding:14px 16px; border-radius:6px; background:var(--beige-2); font-size:14px; color:#4E544F; }
.ja-form .msg:empty { display:none; }

@media (max-width:980px) {
  .rc-story .wrap { grid-template-columns:minmax(0,1fr); }
  .rc-bn { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .rc-filter { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .rc-search { grid-column:1 / -1; }
}
@media (max-width:767px) {
  .rc-hero { height:min(70vh, 560px); min-height:380px; }
  .rc-welcome-p br { display:none; }
  .mo-br { display:inline; }
  .rc-band-tx p { font-size:clamp(20px, 6.2vw, 26px); }
  .rc-hero-en { font-size:34px; }
  .rc-display .rc-brand { display:block; }
  .rc-job-m span:last-child { flex-basis:100%; }
  .rc-job-m span:last-child::before { display:none !important; }
  .rc-pill { height:56px; padding:0 26px; font-size:16px; }
  .rc-nums .wrap { grid-template-columns:minmax(0,1fr); }
  .rc-num { border-left:0; border-top:1px solid var(--line); padding-inline:0; gap:28px; }
  .rc-num:first-child { border-top:0; }
  .rc-why-grid, .rc-ways { grid-template-columns:minmax(0,1fr); }
  .rc-why-grid { gap:48px; }
  .rc-why h3, .rc-why p { padding-inline:0; }
  .rc-why h3 { margin-top:20px; }
  .rc-why h3 br, .rc-stage-p br, .rc-way span br { display:none; }
  .rc-bn { grid-template-columns:minmax(0,1fr); gap:10px; }
  .rc-bn li { display:grid; grid-template-columns:48px minmax(0,1fr); column-gap:16px; align-items:start; padding:18px; }
  .rc-bn-ic { grid-row:1 / span 2; width:48px; height:48px; }
  .rc-bn-ic svg { width:24px; height:24px; }
  .rc-bn b { margin-top:2px; font-size:16.5px; }
  .rc-bn p { margin-top:4px; font-size:14px; }
  .rc-bn-sm li { padding:16px; }
  .rc-way { min-height:230px; }
  .rc-filter { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .rc-sel select, .rc-search input { height:48px; font-size:14px; padding-left:14px; }
  .rc-tags { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); }
  .rc-tags::-webkit-scrollbar { display:none; }
  .rc-tags button { flex-shrink:0; height:38px; padding:0 14px; font-size:13.5px; }
  .rc-job { grid-template-columns:minmax(0,1fr); padding:20px 4px; gap:6px; }
  .rc-job-d { grid-column:1; grid-row:auto; font-size:13px; }
  .rc-job-m { font-size:13.5px; }
  .rc-job-m span + span::before { margin:0 8px; }
  body.has-jbbar .ft { padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px)); }
  .jb-bar-in { height:72px; }
  .jb-bar-t { display:none; }
  .jb-share { width:52px; height:52px; }
  .jb-go { flex:1; min-width:0; height:52px; }
  .jb-toast { bottom:88px; }
  .jb-p br { display:none; }
}

/* 지원서 (job-apply.html) 확장 */
.ja-form { gap:36px; }
.ja-form .f label, .ja-form .f .lab { font-size:16px; font-weight:800; color:var(--ink); }
.ja-form .f em { color:#E0573C; }
.ja-hint { display:block; font-size:13.5px; color:var(--muted); line-height:1.6; }
.ja-photo { display:flex; align-items:center; gap:18px; padding:14px 18px 14px 14px; border:1px solid var(--line); border-radius:8px; background:var(--white); cursor:pointer; }
.ja-photo:hover { border-color:#bfb6a5; }
.ja-photo-f.err .ja-photo { border-color:#B4462F; background:#FBF1EE; }
.ja-ph-th { flex-shrink:0; width:60px; height:76px; border-radius:4px; background:var(--beige-2); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ja-ph-th b { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:#8d918d; color:#fff; font-size:17px; line-height:1; font-weight:700; }
.ja-ph-th img { width:100%; height:100%; object-fit:cover; }
.ja-ph-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:15px; color:#8d918d; }
.ja-ph-tx small { font-size:14px; }
.ja-photo.has-img .ja-ph-n { color:var(--ink); font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ja-ph-ic { color:var(--ink); flex-shrink:0; }
.ja-photo-f input:focus-visible + .ja-ph-x, .ja-photo-f:focus-within .ja-photo { border-color:var(--charcoal); }
.ja-ph-x { align-self:flex-start; padding:0; border:0; background:none; font:600 13px var(--font); color:var(--muted); text-decoration:underline; cursor:pointer; }
.ja-zip { display:grid; grid-template-columns:minmax(0, 1fr) 140px; gap:12px; max-width:400px; }
.ja-find { height:54px; border:0; border-radius:6px; background:var(--beige-2); font:800 16px var(--font); color:var(--ink); cursor:pointer; }
.ja-find:hover { background:var(--beige); }
.ja-addr input + input { margin-top:4px; }
.ja-addr input[readonly] { cursor:pointer; }
.ja-lab { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ja-none { display:inline-flex !important; align-items:center; gap:8px; font-size:14.5px !important; font-weight:600 !important; color:#4E544F !important; cursor:pointer; }
.ja-none input, .ja-now input, .ja-chip input, .ja-ag-l input { width:20px !important; height:20px !important; margin:0; accent-color:var(--charcoal); flex-shrink:0; }
.ja-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.ja-list:empty { display:none; }
.ja-list li { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:6px; background:var(--beige-2); font-size:14.5px; line-height:1.6; }
.ja-list li span { min-width:0; overflow-wrap:anywhere; white-space:pre-line; }
.ja-list button { flex-shrink:0; padding:0; border:0; background:none; font:700 13px var(--font); color:#B4462F; cursor:pointer; }
.ja-box { display:flex; flex-wrap:wrap; border:1px solid var(--line); border-radius:8px; background:var(--white); overflow:hidden; }
.ja-grp.is-none .ja-box, .ja-grp.is-none .ja-list { display:none; }
.ja-grp.err .ja-box { border-color:#B4462F; }
.ja-c { position:relative; flex:1 1 100%; min-width:0; border-bottom:1px solid var(--line); }
.ja-c.ja-h { flex-basis:50%; }
.ja-c.ja-t { flex-basis:33.333%; }
.ja-c.ja-bl { border-left:1px solid var(--line); }
.ja-box .ja-c input, .ja-box .ja-c select, .ja-box .ja-c textarea { width:100%; height:62px; padding:0 18px; border:0 !important; border-radius:0 !important; background:transparent !important; font:500 15.5px var(--font); color:var(--ink); }
.ja-box .ja-c textarea { height:auto; min-height:120px; padding:18px; resize:vertical; }
.ja-box .ja-c select { appearance:none; -webkit-appearance:none; padding-right:40px; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%231F2421'/%3E%3C/svg%3E") right 18px center/10px no-repeat !important; }
.ja-box .ja-c select:invalid, .ja-box .ja-c select option[value=""] { color:#9a9e9a; }
.ja-box .ja-c :focus { outline:2px solid var(--charcoal); outline-offset:-2px; }
.ja-box .is-bad { background:#FBF1EE !important; }
.ja-box input:disabled { background:var(--beige-2) !important; }
.ja-mon .ja-mph { position:absolute; left:2px; right:48px; top:2px; bottom:2px; display:flex; align-items:center; padding-left:16px; font-size:15.5px; color:#9a9e9a; pointer-events:none; background:var(--white); }
.ja-mon.has-v .ja-mph, .ja-mon:focus-within .ja-mph { display:none; }
.ja-now { position:absolute; right:16px; top:50%; transform:translateY(-50%); display:inline-flex !important; align-items:center; gap:8px; font-size:14.5px !important; font-weight:600 !important; color:#4E544F !important; background:var(--white); padding-left:8px; cursor:pointer; }
.ja-act { border-bottom:0; padding:16px 18px; }
.ja-save { width:100%; height:50px; border:0; border-radius:6px; background:#8d918d; color:#fff; font:800 15.5px var(--font); cursor:pointer; }
.ja-save:hover { background:var(--charcoal); }
.ja-chips { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
.ja-chip { display:flex !important; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:var(--white); font-size:15px !important; font-weight:700 !important; color:var(--ink) !important; cursor:pointer; }
.ja-chip span { display:flex; flex-direction:column; min-width:0; }
.ja-chip small { font-size:12.5px; font-weight:500; color:var(--muted); }
.ja-chip:has(input:checked) { border-color:var(--charcoal); background:var(--beige-2); }
.ja-chip.is-off { opacity:.45; cursor:not-allowed; }
.ja-area.err .ja-chip { border-color:#B4462F; }
.ja-ags { display:flex; flex-direction:column; gap:12px; padding-top:32px; border-top:2px solid var(--line); }
.ja-ag { border:1px solid var(--line); border-radius:8px; background:var(--white); }
.ja-ag.err { border-color:#B4462F; background:#FBF1EE; }
.ja-ag-row { display:flex; align-items:stretch; }
.ja-ag-l { flex:1; min-width:0; display:flex; align-items:center; gap:12px; padding:16px 18px; font-size:15.5px; color:var(--ink); cursor:pointer; }
.ja-ag-l i { flex-shrink:0; font-style:normal; font-size:12.5px; font-weight:700; padding:3px 8px; border-radius:4px; background:var(--beige-2); color:#4E544F; }
.ja-ag-l i.is-req { background:#FBE3DC; color:#B4462F; }
.ja-ag-t { flex-shrink:0; width:60px; border:0; border-left:1px solid var(--line); background:none; cursor:pointer; position:relative; }
.ja-ag-t::after { content:''; position:absolute; left:50%; top:50%; border:5px solid transparent; border-top:6px solid var(--ink); border-bottom:0; transform:translate(-50%, -30%); transition:transform .2s; }
.ja-ag-t[aria-expanded="true"]::after { transform:translate(-50%, -30%) rotate(180deg); }
.ja-ag-b { padding:14px 18px 16px; border-top:1px solid var(--line); font-size:13.5px; line-height:1.8; color:#4E544F; }
.ja-ag-b b { display:inline-block; min-width:64px; color:var(--ink); }
.ja-ag-n { margin:-4px 0 0; padding-left:18px; font-size:13px; color:var(--muted); }
.ja-pp { align-self:flex-start; margin-top:8px; font-size:14.5px; font-weight:800; color:var(--ink); }
.ja-pp:hover { text-decoration:underline; }
.ja-sink { position:absolute; width:1px; height:1px; border:0; opacity:0; pointer-events:none; left:-9999px; }
@media (max-width:767px) {
  .ja-form { gap:30px; }
  .ja-zip { grid-template-columns:minmax(0, 1fr) 100px; max-width:none; }
  .ja-c.ja-t { flex-basis:100%; }
  .ja-c.ja-t.ja-bl { border-left:0; }
  .ja-box .ja-c input, .ja-box .ja-c select { height:56px; padding-inline:14px; font-size:15px; }
  .ja-mon .ja-mph { padding-left:12px; font-size:15px; }
  .ja-chips { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .ja-chip { padding:12px; gap:8px; font-size:14.5px !important; }
  .ja-chip small { font-size:12px; }
  .ja-ag-l { padding:14px; font-size:14.5px; gap:10px; }
  .ja-ag-t { width:50px; }
}
.ja-photo-f input.sr-only { width:1px !important; height:1px !important; padding:0 !important; border:0 !important; }
.ja-photo-f { position:relative; }
.rc-jobs-img img { object-position:50% 40%; }
.rc-sel select.is-on { border-color:var(--charcoal); background:var(--beige-2); font-weight:700; }
.rc-tags .rc-reset, .rc-reset { background:none !important; color:var(--muted) !important; height:42px; padding:0 14px; border:0; background:none; font:700 14px var(--font); color:var(--muted); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.rc-reset:hover { color:var(--ink); }
.jb-meta a { color:inherit; text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.jb-meta a:hover { color:var(--ink); text-decoration-color:currentColor; }
.jb-map-img { display:block; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--beige-2); }
.jb-map-img img { width:100%; aspect-ratio:16/8; object-fit:cover; object-position:40% 40%; transition:transform .4s; }
.jb-map-img:hover img { transform:scale(1.02); }
.jb-map-tx { margin-top:14px; display:flex; flex-direction:column; gap:2px; }
.jb-map-tx b { font-size:16px; font-weight:800; }
.jb-map-tx span { font-size:15px; color:#4E544F; }
.jb-map-btns { margin-top:14px; display:flex; flex-wrap:wrap; gap:8px; }
.jb-map-btns a { display:inline-flex; align-items:center; gap:6px; height:40px; padding:0 16px; border:1px solid var(--line); border-radius:999px; background:var(--white); font-size:14px; font-weight:700; color:var(--ink); }
.jb-map-btns a:hover { border-color:var(--charcoal); }
@media (max-width:767px) { .jb-map-img img { aspect-ratio:4/3; } }
.ja-pf-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.ja-pf-list:empty { display:none; }
.ja-pf-list li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; border-radius:6px; background:var(--beige-2); font-size:14px; }
.ja-pf-list li span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ja-pf-list small { color:var(--muted); margin-left:6px; }
.ja-pf-list button { flex-shrink:0; padding:0; border:0; background:none; font:700 13px var(--font); color:#B4462F; cursor:pointer; }
.ja-pf.err .ja-pf-box { border-color:#B4462F; background:#FBF1EE; }
.ja-pf input.sr-only { width:1px !important; height:1px !important; padding:0 !important; border:0 !important; }
.ja-pf { position:relative; }

/* ---------- 공간 대관 — 소개 · 전화 문의 · 공간 탭 · 공간 정보 (assets/js/rental.js) ---------- */
.sec.rv { padding-top:clamp(40px, 5vw, 72px); }
.page-hd .rv-uses { margin-top:22px; }
.rv-uses { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.rv-uses li { padding:7px 14px; border:1px solid var(--line); border-radius:999px; font-size:14px; font-weight:600; background:var(--white); }
.rv-tabs { margin-top:0; display:inline-flex; gap:4px; padding:5px; border-radius:999px; background:var(--beige); max-width:100%; overflow-x:auto; scrollbar-width:none; }
.rv-tabs::-webkit-scrollbar { display:none; }
.rv-tabs[hidden] { display:none; }
.rv-tabs button { flex:none; padding:11px 24px; font:inherit; font-size:15px; font-weight:600; color:var(--muted); background:transparent; border:0; border-radius:999px; cursor:pointer; white-space:nowrap; transition:background .2s, color .2s, box-shadow .2s; }
.rv-tabs button:hover { color:var(--ink); }
.rv-tabs button[aria-selected="true"] { background:var(--white); color:var(--ink); font-weight:800; box-shadow:0 2px 8px rgba(31,36,33,.10); }
.rv-panel { margin-top:28px; }
.rv-room { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr); gap:clamp(28px, 5vw, 64px); align-items:start; animation:rv-in .35s ease; }
.rv-room.no-photo { grid-template-columns:minmax(0,1fr); max-width:720px; }
@keyframes rv-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.rv-slider { position:relative; }
.rv-view { overflow:hidden; border-radius:6px; background:var(--beige); }
.rv-track { display:flex; transition:transform .45s ease; }
.rv-slide { flex:0 0 100%; }
.rv-slide img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.rv-arr { position:absolute; top:50%; width:44px; height:44px; margin-top:-22px; padding:0; border:0; border-radius:50%; background:rgba(255,253,249,.9); box-shadow:0 2px 10px rgba(0,0,0,.14); color:var(--ink); cursor:pointer; transition:background .2s; }
.rv-arr:hover { background:#fff; }
.rv-arr::before { content:''; position:absolute; top:50%; left:50%; width:10px; height:10px; border:solid currentColor; border-width:0 0 2px 2px; }
.rv-prev { left:14px; }
.rv-prev::before { transform:translate(-30%, -50%) rotate(45deg); }
.rv-next { right:14px; }
.rv-next::before { transform:translate(-70%, -50%) rotate(-135deg); }
.rv-dots { position:absolute; left:0; right:0; bottom:14px; display:flex; justify-content:center; gap:6px; }
.rv-dots button { width:8px; height:8px; padding:0; border:0; border-radius:999px; background:rgba(255,253,249,.6); cursor:pointer; transition:width .25s, background .25s; }
.rv-dots button[aria-current="true"] { width:22px; background:#fff; }
.rv-detail .eyebrow { margin-top:4px; }
.rv-name { margin:10px 0 0; font-size:clamp(24px, 2.4vw, 32px); font-weight:800; letter-spacing:-0.03em; line-height:1.3; }
.rv-spec { margin:24px 0 0; border-top:1.5px solid var(--ink); }
.rv-spec > div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.rv-spec dt { font-size:14px; font-weight:700; color:var(--muted); padding-top:1px; }
.rv-spec dd { margin:0; font-size:15.5px; font-weight:600; color:var(--ink); }
.rv-spec small { display:block; margin-top:2px; font-size:13px; font-weight:500; color:var(--muted); }
.rv-guide { margin:0; padding:0; list-style:none; font-weight:500; }
.rv-guide li { position:relative; padding-left:12px; }
.rv-guide li + li { margin-top:4px; }
.rv-guide li::before { content:''; position:absolute; left:0; top:.75em; width:4px; height:4px; border-radius:50%; background:var(--yellow-ink); }
.rv-fac { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.rv-fac li { padding:4px 11px; border-radius:999px; background:var(--beige-2); font-size:13.5px; font-weight:600; }
.rv-todo { color:var(--yellow-ink); font-weight:700; }
.rv-btn { margin-top:28px; }
.rv-tel-row dd a { color:var(--ink); font-size:17px; font-weight:800; letter-spacing:.01em; text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:2px; text-underline-offset:4px; }
@media (prefers-reduced-motion:reduce) { .rv-track { transition:none; } .rv-room { animation:none; } }
@media (max-width:900px) {
  .rv-room { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:720px) {
    .rv-tabs { display:flex; width:100%; }
  .rv-tabs button { flex:1 0 auto; padding:10px 14px; font-size:14px; }
  .rv-panel { margin-top:20px; }
  .rv-arr { width:36px; height:36px; margin-top:-18px; }
  .rv-arr::before { width:8px; height:8px; }
  .rv-prev { left:10px; } .rv-next { right:10px; }
  .rv-spec > div { grid-template-columns:76px minmax(0,1fr); gap:12px; padding:14px 0; }
  .rv-btn { width:100%; }
}
/* 모바일은 하단 고정 '○○점 전화 문의' 버튼이 있으니 본문 전화 버튼은 숨김 */
@media (max-width:767px) { .rv-btn { display:none; } }
@media (max-width:340px) { .page-hd .rv-uses { gap:4px; } .page-hd .rv-uses li { padding:5px 8px; font-size:11.5px; } }

/* ---------- 오프라인 클래스 카드 — 영문 분류 · 한 줄 소개 · 태그 · 안내 ---------- */
.cards[data-courses="offline"] { grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; }
.card-en { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--yellow-ink); }
.card-en + h3 { margin-top:-4px; }
.card .card-hl { font-size:15px; font-weight:700; color:var(--ink); line-height:1.5; }
.card-chips { list-style:none; margin:4px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.card-chips li { padding:5px 12px; border-radius:999px; background:var(--beige-2); border:1px solid var(--line); font-size:13px; font-weight:700; color:var(--ink); }
.card .card-note, .card-note { font-size:12.5px; color:var(--muted); line-height:1.6; }
.cd-chips { margin-top:18px; }
.cd-chips + .card-note { margin:10px 0 0; }
@media (max-width:1024px) { .cards[data-courses="offline"] { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:767px) { .cards[data-courses="offline"] { grid-template-columns:minmax(0,1fr); } }
/* 맨 아래 배너가 보이면 모바일 하단 고정 버튼을 내림 */
.mbar { transition:transform .3s ease, opacity .3s ease; }
html.mbar-off .mbar { transform:translateY(110%); opacity:0; pointer-events:none; }
@media (prefers-reduced-motion:reduce) { .mbar { transition:none; } }

/* ---------- 개강 준비 중 · 개강 알림 신청 ---------- */
.card-soon { position:absolute; right:12px; top:12px; padding:4px 10px; border-radius:999px; background:rgba(255,253,249,.94); color:var(--ink); font-size:12px; font-weight:800; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.card-foot { margin-top:auto; padding-top:8px; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.card-foot .more { margin-top:0; padding-top:0; }
.card-notify { display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 14px; border:1.5px solid var(--charcoal); border-radius:999px; background:transparent; color:var(--charcoal); font:700 13.5px var(--font); cursor:pointer; transition:background .2s, color .2s; }
.card-notify:hover { background:var(--charcoal); color:var(--white); }
.cd-soon { display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px; background:var(--white); border:1px solid var(--line); color:var(--ink); font-size:12.5px; font-weight:800; }
.cd-side-soon { margin:0 0 14px; padding:12px 14px; border-radius:8px; background:var(--beige-2); font-size:13.5px; line-height:1.6; color:var(--ink); }

.nt[hidden] { display:none; }
.nt { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:16px; }
.nt-bg { position:absolute; inset:0; background:rgba(31,36,33,.55); }
.nt-in { position:relative; width:min(440px, 100%); max-height:calc(100vh - 32px); overflow:auto; padding:32px 28px 26px; border-radius:14px; background:var(--white); box-shadow:0 20px 60px rgba(0,0,0,.25); animation:ntIn .25s ease; }
@keyframes ntIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.nt-x { position:absolute; right:14px; top:14px; width:40px; height:40px; border:0; border-radius:50%; background:var(--beige-2); color:var(--ink); font-size:22px; line-height:1; cursor:pointer; }
.nt-eb { font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--yellow-ink); }
.nt-t { margin:8px 0 0; padding-right:36px; font-size:21px; font-weight:800; letter-spacing:-0.03em; line-height:1.4; }
.nt-c { margin:10px 0 0; font-size:14.5px; color:var(--muted); line-height:1.65; }
.nt-c b { color:var(--ink); }
.nt-f { margin-top:20px; display:grid; gap:10px; }
.nt-l { font-size:13.5px; font-weight:700; }
.nt-f input[type=email], .nt-f input[type=tel] { height:50px; padding:0 14px; border:1.5px solid var(--line); border-radius:8px; background:#fff; font:500 16px var(--font); color:var(--ink); }
.nt-f input[type=email]:focus, .nt-f input[type=tel]:focus { outline:none; border-color:var(--charcoal); }
.nt-f input.err { border-color:#C0392B; }
.nt-ag { display:flex; gap:8px; align-items:flex-start; font-size:13.5px; line-height:1.55; cursor:pointer; }
.nt-ag input { margin-top:3px; width:17px; height:17px; flex:none; accent-color:var(--charcoal); }
.nt-ag a { color:var(--muted); text-decoration:underline; margin-left:2px; }
.nt-ag small { display:block; margin-top:2px; font-size:12px; color:var(--muted); }
.nt-ag.err span { color:#C0392B; }
.nt-btn { margin-top:6px; width:100%; }
.nt-msg { margin:0; min-height:1em; font-size:13.5px; line-height:1.55; }
.nt-msg.err { color:#C0392B; }
.nt-msg.ok { color:#2E7D4F; font-weight:700; }
@media (max-width:767px) {
  .nt { align-items:flex-end; padding:0; }
  .nt-in { width:100%; border-radius:16px 16px 0 0; padding:28px 18px calc(22px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion:reduce) { .nt-in { animation:none; } }
.nt-l small { font-weight:500; color:var(--muted); font-size:12.5px; }
.nt-f input[type=tel] + .nt-ag, .nt-f input[type=email] + .nt-l { margin-top:6px; }

/* ---------- 온라인 클래스 — 분류 필터 · 카드 ---------- */
.oc-filter { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0 0 clamp(24px, 3vw, 36px); }
.oc-filter[hidden] { display:none; }
.oc-filter button { height:34px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink); font:600 13.5px var(--font); cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.oc-filter button:hover { border-color:var(--charcoal); }
.oc-filter button[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:var(--white); font-weight:700; }
.ocard[hidden] { display:none; }
.ocard-in { display:flex; flex-direction:column; gap:6px; width:100%; padding:0; border:0; background:none; text-align:left; font:inherit; color:inherit; cursor:pointer; text-decoration:none; }
.ocard-in .ocard-img { display:block; aspect-ratio:4/3; border-radius:12px; margin-bottom:10px; }
.ocard-in .ocard-img img { transition:transform .5s; }
.ocard-in:hover .ocard-img img { transform:scale(1.03); }
.ocard-in .cat { font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.ocard-in h3 { font-size:17.5px; font-weight:800; }
.ocard-in:hover h3 { color:var(--yellow-ink); }
.ocard-soon { align-self:flex-start; margin-top:6px; padding:4px 11px; border-radius:999px; background:var(--beige); color:var(--ink); font-size:13px; font-weight:700; }
.ocard-in .price { display:flex; align-items:baseline; gap:8px; margin-top:6px; }
.ocards[data-courses="online"] { gap:36px 24px; }
@media (max-width:767px) {
  .oc-filter { gap:4px; }
  .oc-filter button { height:30px; padding:0 8px; font-size:12.5px; letter-spacing:-0.03em; }
  .ocards[data-courses="online"] { gap:28px 12px; }
  .ocard-in h3 { font-size:15px; }
  .ocard-in .ocard-img { border-radius:10px; margin-bottom:8px; }
}
@media (max-width:389px) { .oc-filter { gap:3px; } .oc-filter button { padding:0 6px; font-size:11.5px; } }
@media (max-width:767px) { .ocard-in .cat { font-size:11px; letter-spacing:.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }

/* 온라인 클래스 — 개강 전(soon) 사진 위 어두운 덮개 + '개강 준비 중' */
.ocard-ov { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:rgba(20,22,21,.5); color:#fff; text-align:center; transition:background .25s; }
.ocard-ov b { font-size:clamp(17px, 1.5vw, 20px); font-weight:800; letter-spacing:-0.02em; }
.ocard-ov-btn { display:inline-flex; align-items:center; gap:5px; height:32px; padding:0 13px; border:1.5px solid rgba(255,255,255,.85); border-radius:999px; font-size:13px; font-weight:700; transition:background .2s, color .2s; }
.ocard-in:hover .ocard-ov { background:rgba(20,22,21,.6); }
.ocard-in:hover .ocard-ov-btn { background:#fff; color:var(--ink); }
@media (max-width:767px) { .ocard-ov { gap:7px; } .ocard-ov b { font-size:15px; } .ocard-ov-btn { height:28px; padding:0 10px; font-size:11.5px; } }

/* ---------- 창업과정 혜택 (창업컨설팅 · 공동투자 기회 · 위탁운영 기회) ---------- */
.perks { list-style:none; margin:6px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border:1px solid var(--line); border-radius:10px; background:var(--white); overflow:hidden; }
.perks li { display:flex; flex-direction:column; align-items:center; gap:7px; padding:14px 6px 13px; text-align:center; }
.perks li + li { border-left:1px solid var(--line); }
.perk-ic { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--beige-2); color:var(--yellow-ink); }
.perk-t { font-size:13px; font-weight:700; color:var(--ink); line-height:1.35; word-break:keep-all; }
.perks + .card-note { margin-top:2px; }
.cd-perks { max-width:520px; margin-top:20px; }
.cd-perks li { padding:18px 8px 16px; }
.cd-perks .perk-ic { width:44px; height:44px; }
.cd-perks .perk-t { font-size:14px; }
.cd-perks + .card-note { margin-top:10px; }
/* 안내 문구 앞 ※ 표시 — 줄이 바뀌어도 글이 ※ 뒤로 가지런히 */
.card-note { position:relative; padding-left:1.25em; }
.card-note::before { content:'※'; position:absolute; left:0; top:0; color:var(--yellow-ink); font-weight:700; }

/* ---------- 과정 상세 — 넓은 사진형 상단 (courses.js 의 heroImg) ---------- */
.cd-hero2 { padding-bottom:clamp(36px, 4.5vw, 56px); }
.cd-h2-top { margin-top:clamp(22px, 3vw, 34px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; }
.cd-h2-eb { margin:0; font-size:12.5px; font-weight:700; letter-spacing:.12em; color:var(--yellow-ink); }
.cd-hero2 h1 { margin-top:12px; }
.cd-h2-hl { margin:14px 0 0; font-size:clamp(18px, 1.8vw, 23px); font-weight:800; letter-spacing:-0.03em; line-height:1.45; color:var(--ink); }
.cd-h2-sub { margin:10px 0 0; max-width:760px; font-size:clamp(14.5px, 1.15vw, 16px); color:var(--muted); line-height:1.75; }
.cd-h2-img { margin-top:clamp(24px, 3vw, 36px); aspect-ratio:16/7; border-radius:14px; overflow:hidden; background:var(--beige); box-shadow:0 18px 40px rgba(51,58,53,.12); }
.cd-h2-img img { display:block; width:100%; height:100%; object-fit:cover; }
.cd-facts { margin:clamp(22px, 2.6vw, 30px) 0 0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); background:var(--white); border:1px solid var(--line); border-radius:12px; }
.cd-facts > div { display:flex; flex-direction:column; align-items:center; gap:4px; padding:18px 10px; text-align:center; }
.cd-facts > div + div { border-left:1px solid var(--line); }
.cd-facts dt { font-size:13px; font-weight:600; color:var(--muted); }
.cd-facts dd { margin:0; font-size:clamp(17px, 1.6vw, 21px); font-weight:800; letter-spacing:-0.02em; color:var(--ink); }
.cd-facts-note { margin:12px 0 0; }
@media (max-width:767px) {
  .cd-h2-top { justify-content:flex-start; }
  .cd-h2-img { aspect-ratio:4/3; border-radius:10px; }
  .cd-facts > div { padding:14px 4px; }
  .cd-facts dt { font-size:12px; }
  .cd-facts dd { font-size:15.5px; }
}
.cd-sub { margin:8px 0 0; max-width:560px; font-size:14.5px; color:var(--muted); line-height:1.75; }
.cd-hero-tx .cd-facts { max-width:560px; margin-top:24px; }
.cd-hero-tx .cd-facts > div { padding:16px 8px; }
.cd-hero-tx .cd-facts dd { font-size:clamp(16px, 1.4vw, 19px); }
.cd-hero-tx .cd-facts-note { max-width:560px; }
/* 한 줄 소개와 아래 설명 사이 짧은 구분선 */
.cd-lead + .cd-sub { position:relative; margin-top:18px; padding-top:18px; }
.cd-lead + .cd-sub::before { content:''; position:absolute; left:0; top:0; width:32px; height:2px; border-radius:2px; background:var(--yellow); }
@media (max-width:767px) { .cd-lead + .cd-sub { margin-top:14px; padding-top:14px; } }

/* ---------- 과정 상세 — 자세한 내용 (courses.js 의 introTitle · skills · curri · why · tuition …) ---------- */
.rx-eb { margin:0 0 6px; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--yellow-ink); }
.rx-h3 { margin:clamp(36px, 4vw, 48px) 0 16px; font-size:18px; font-weight:900; letter-spacing:-0.02em; color:var(--ink); }
.rx-h3 em { font-style:normal; box-shadow:inset 0 -8px 0 rgba(212,184,102,.38); }
/* 소개 — 사진 위 큰 제목 + 케어 + 교육 = 에듀케어 */
.rx-cover { position:relative; border-radius:16px; overflow:hidden; aspect-ratio:16/8; background:var(--charcoal); }
.rx-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rx-cover::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,22,21,0) 30%, rgba(20,22,21,.82) 100%); }
.rx-cover-tx { position:absolute; left:0; right:0; bottom:0; z-index:1; padding:clamp(20px, 3vw, 32px); color:#fff; }
.rx-cover-tx b { display:block; font-size:clamp(21px, 2.3vw, 28px); font-weight:900; letter-spacing:-0.035em; line-height:1.35; text-wrap:balance; }
.rx-cover-tx span { display:block; margin-top:10px; max-width:560px; font-size:14px; line-height:1.7; color:rgba(255,255,255,.86); word-break:keep-all; }
.rx-eq { margin-top:16px; display:flex; align-items:stretch; gap:10px; }
.rx-eq-i { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:4px; padding:20px 10px 18px; text-align:center; border-radius:14px; background:var(--white); border:1px solid var(--line); }
.rx-eq-i b { margin-top:4px; font-size:17px; font-weight:900; }
.rx-eq-i small { font-size:12.5px; color:var(--muted); line-height:1.5; word-break:keep-all; }
.rx-eq-i.is-sum { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.rx-eq-i.is-sum .rx-ic { background:var(--yellow); color:var(--ink); }
.rx-eq-i.is-sum small { color:rgba(255,253,249,.72); }
.rx-eq-op { align-self:center; flex:none; font-size:22px; font-weight:900; color:var(--yellow-ink); }
.rx-def { margin:18px 0 0; padding:16px 18px; border-left:3px solid var(--yellow); background:var(--white); border-radius:0 10px 10px 0; font-size:15px; line-height:1.75; color:#3d433f; word-break:keep-all; }
.rx-def b { color:var(--ink); font-weight:800; }
@media (max-width:767px) {
  .rx-cover { aspect-ratio:4/4.2; border-radius:12px; }
  .rx-cover img { object-position:center 15% !important; }
  .rx-cover::after { background:linear-gradient(180deg, rgba(20,22,21,0) 25%, rgba(20,22,21,.9) 92%); }
  .rx-cover-tx span { font-size:13px; }
  .rx-eq { gap:4px; }
  .rx-eq-i { padding:14px 4px 12px; border-radius:10px; }
  .rx-eq-i .rx-ic { width:34px; height:34px; }
  .rx-eq-i b { font-size:14.5px; }
  .rx-eq-i small { font-size:11px; }
  .rx-eq-op { font-size:16px; }
}
/* 핵심 역량 */
.rx-skills { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.rx-skills li { display:flex; flex-direction:column; gap:6px; padding:20px 18px 18px; background:var(--white); border:1px solid var(--line); border-radius:12px; transition:border-color .2s, transform .2s; }
.rx-skills li:hover { border-color:var(--yellow); transform:translateY(-2px); }
.rx-ic { display:grid; place-items:center; width:42px; height:42px; margin-bottom:6px; border-radius:12px; background:var(--beige-2); color:var(--yellow-ink); }
.rx-skills b { font-size:16px; font-weight:800; }
.rx-skills li > span:last-child { font-size:13.5px; color:var(--muted); line-height:1.6; }
/* 추천 대상 */
.rx-target { margin-top:clamp(36px, 4vw, 48px); padding:clamp(22px, 3vw, 30px); border-radius:14px; background:var(--beige-2); }
.rx-target .rx-h3 { margin-top:0; }
.rx-target ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.rx-target li { display:flex; gap:14px; align-items:flex-start; padding:18px 16px; background:var(--white); border-radius:12px; }
.rx-target li .rx-ic { flex:none; margin:0; background:var(--beige-2); }
.rx-chk { flex:none; display:grid; place-items:center; width:24px; height:24px; margin-top:1px; border-radius:50%; background:var(--charcoal); color:var(--white); }
.rx-target b { display:block; font-size:15px; font-weight:800; line-height:1.45; }
.rx-target li div span { display:block; margin-top:4px; font-size:13.5px; color:var(--muted); line-height:1.6; }
/* 커리큘럼 */
.rx-bar { margin:22px 0 18px; }
.rx-bar-line { display:flex; gap:4px; height:10px; }
.rx-bar-line span { border-radius:999px; background:var(--charcoal); }
.rx-bar-line span + span { background:var(--yellow); }
.rx-bar-lab { margin-top:10px; display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; font-size:13.5px; font-weight:600; color:var(--muted); }
.rx-bar-lab i { display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; vertical-align:1px; }
.rx-bar-lab i.d1 { background:var(--charcoal); } .rx-bar-lab i.d2 { background:var(--yellow); }
.rx-bar-lab b { margin-left:auto; font-size:16px; font-weight:900; color:var(--ink); }
.rx-step { padding:22px clamp(18px, 2.5vw, 26px); border:1px solid var(--line); border-radius:14px; background:var(--white); }
.rx-step + .rx-step { margin-top:12px; }
.rx-step-hd { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rx-step-hd b { font-size:17px; font-weight:900; }
.rx-step-hd small { margin-left:auto; font-size:13.5px; font-weight:700; color:var(--muted); }
.rx-pill { padding:3px 9px; border-radius:999px; background:var(--beige-2); font-size:11px; font-weight:800; letter-spacing:.08em; color:var(--yellow-ink); }
.rx-weeks { list-style:none; margin:16px 0 0; padding:0; display:grid; gap:0; }
.rx-weeks > li { display:grid; grid-template-columns:54px minmax(0,1fr); gap:14px; align-items:start; padding:16px 0; border-top:1px solid var(--line); }
.rx-weeks > li:first-child { border-top:0; padding-top:6px; }
.rx-weeks > li > span { padding-top:1px; font-size:17px; font-weight:900; letter-spacing:-0.01em; color:var(--yellow-ink); line-height:1.3; }
.rx-weeks b { display:block; font-size:16px; font-weight:800; line-height:1.4; color:var(--ink); }
.rx-weeks ul { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.rx-weeks ul li { padding:4px 10px; border-radius:999px; background:var(--ivory); border:1px solid var(--line); font-size:12.5px; font-weight:600; color:#4d534f; line-height:1.45; }
.rx-step-dark { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.rx-step-dark .rx-pill { background:rgba(255,255,255,.12); color:var(--yellow); }
.rx-step-dark small { color:rgba(255,253,249,.7); }
.rx-step-dark p { margin:12px 0 0; font-size:14.5px; line-height:1.75; color:rgba(255,253,249,.86); }
.rx-basics { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
.rx-basics figure { margin:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--white); }
.rx-bimg { display:block; aspect-ratio:16/10; background:var(--beige); }
.rx-bimg img { width:100%; height:100%; object-fit:cover; }
.rx-basics figcaption { padding:16px 18px 18px; }
.rx-basics figcaption b { display:block; font-size:16px; font-weight:800; }
.rx-basics figcaption span { display:block; margin-top:6px; font-size:13.5px; color:var(--muted); line-height:1.65; }
/* 차별점 */
.rx-why { padding:clamp(28px, 4vw, 40px); border-radius:16px; background:var(--charcoal); color:var(--white); }
.rx-why .rx-eb { color:var(--yellow); }
.rx-why .cd-h2 { color:var(--white); }
.rx-why ol { list-style:none; margin:6px 0 0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px 28px; }
.rx-why li { padding-top:16px; border-top:1px solid rgba(255,255,255,.16); }
.rx-num { display:block; font-size:13px; font-weight:900; letter-spacing:.06em; color:var(--yellow); }
.rx-why li b { display:block; margin-top:8px; font-size:16px; font-weight:800; line-height:1.45; }
.rx-why li p { margin:6px 0 0; font-size:13.5px; line-height:1.65; color:rgba(255,253,249,.72); }
/* 일정 · 수강료 */
.rx-info { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); gap:14px; align-items:stretch; }
.rx-sched, .rx-price { padding:22px clamp(18px, 2.5vw, 24px); border:1px solid var(--line); border-radius:14px; background:var(--white); }
.rx-sched-hd { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.rx-sched-hd b { font-size:16px; font-weight:900; }
.rx-sched-hd span { padding:4px 10px; border-radius:999px; background:var(--beige-2); font-size:12px; font-weight:700; color:var(--yellow-ink); }
.rx-sched dl { margin:0; }
.rx-sched dl > div { display:grid; grid-template-columns:84px minmax(0,1fr); gap:12px; padding:11px 0; border-bottom:1px dashed var(--line); }
.rx-sched dl > div:last-child { border-bottom:0; }
.rx-sched dt { font-size:13.5px; font-weight:600; color:var(--muted); }
.rx-sched dd { margin:0; font-size:14.5px; font-weight:700; }
.rx-price { display:flex; flex-direction:column; align-items:flex-start; background:var(--beige-2); border-color:var(--beige); }
.rx-price-lab { font-size:13px; font-weight:700; color:var(--muted); }
.rx-price-badge { margin-top:10px; padding:4px 10px; border-radius:999px; background:var(--yellow); font-size:12px; font-weight:800; color:var(--ink); }
.rx-price s { margin-top:auto; padding-top:18px; font-size:14px; color:var(--muted); }
.rx-price > b { margin-top:2px; font-size:clamp(28px, 2.8vw, 34px); font-weight:900; letter-spacing:-0.03em; color:var(--ink); font-variant-numeric:tabular-nums; }
.rx-price .card-note { margin-top:12px; }
.cd-side-sm { display:block; font-size:11.5px; font-weight:700; color:var(--yellow-ink); }
@media (max-width:767px) {
  .rx-skills { grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
  .rx-skills li { padding:16px 14px; }
  .rx-target ul, .rx-basics, .rx-why ol, .rx-info { grid-template-columns:minmax(0,1fr); }
  .rx-why { margin-inline:calc(var(--gutter) * -1); border-radius:0; }
}

.rx-stats { list-style:none; margin:22px 0 14px; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; }
.rx-stats li { display:flex; flex-direction:column; align-items:center; gap:4px; padding:18px 6px 16px; border-radius:12px; background:var(--white); border:1px solid var(--line); text-align:center; }
.rx-stats b { font-size:clamp(24px, 2.4vw, 30px); font-weight:900; letter-spacing:-0.03em; line-height:1.1; color:var(--ink); font-variant-numeric:tabular-nums; }
.rx-stats b small { font-size:.55em; font-weight:800; margin-left:2px; }
.rx-stats span { font-size:12.5px; font-weight:600; color:var(--muted); }
.rx-stats li.is-key { background:var(--yellow); border-color:var(--yellow); }
.rx-stats li.is-key span { color:var(--ink); }
.rx-why-ic { display:grid; place-items:center; width:40px; height:40px; margin-bottom:12px; border-radius:12px; background:rgba(212,184,102,.16); color:var(--yellow); }
@media (max-width:767px) {
  .rx-stats { grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.apply-ask { margin:10px 0 0; font-size:14px; color:var(--muted); }
.apply-ask a { color:var(--ink); font-weight:700; text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:2px; text-underline-offset:3px; }

/* ---------- 과정 상세 바로가기 탭 — 둥근 바 안의 알약 버튼 ---------- */
.cd-tabs { padding-block:12px; background:rgba(247,244,238,.92); border-bottom:1px solid var(--line); }
.cd-tabs-in { display:inline-flex; gap:2px; padding:4px; border-radius:999px; background:var(--white); border:1px solid var(--line); box-shadow:0 2px 10px rgba(31,36,33,.05); max-width:100%; }
.cd-tabs a { padding:9px 18px; border-radius:999px; font-size:14px; font-weight:600; color:var(--muted); transition:background .2s, color .2s; }
.cd-tabs a:hover { color:var(--ink); background:var(--beige-2); }
.cd-tabs a[aria-current] { color:var(--white); background:var(--charcoal); font-weight:700; }
.cd-tabs a[aria-current]::after { content:none; }
@media (max-width:767px) {
  .cd-tabs { padding-block:10px; }
  .cd-tabs-in { display:flex; width:100%; }
  .cd-tabs a { flex:1 0 auto; padding:8px 12px; font-size:13px; text-align:center; }
}
@media (max-width:374px) { .cd-tabs a { padding:8px 8px; font-size:12.5px; letter-spacing:-0.02em; } }
.rx-field { margin:12px 0 0 !important; font-size:12.5px !important; font-weight:800; letter-spacing:.14em; color:var(--yellow) !important; }
.rx-field + p { margin-top:6px !important; }
.rx-flow { list-style:none; margin:16px 0 0; padding:0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.rx-flow li { display:inline-flex; align-items:center; gap:7px; padding:7px 13px 7px 8px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); font-size:13.5px; font-weight:700; color:#fff; }
.rx-flow li span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--yellow); color:var(--ink); font-size:11px; font-weight:900; }
.rx-flow li + li::before { content:'→'; margin:0 6px 0 -2px; color:var(--yellow); order:-1; position:relative; left:-12px; width:0; }
@media (max-width:767px) {
  .rx-weeks > li { grid-template-columns:44px minmax(0,1fr); gap:10px; padding:14px 0; }
  .rx-weeks > li > span { font-size:15px; }
  .rx-weeks b { font-size:15px; }
  .rx-weeks ul li { font-size:12px; padding:3px 9px; }
  .rx-flow li { font-size:12.5px; padding:6px 11px 6px 7px; }
}
@media (max-width:767px) {
  .rx-flow { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px; }
  .rx-flow li { justify-content:flex-start; }
  .rx-flow li + li::before { content:none; }
}
.rx-extra { margin-top:18px; padding:14px 16px; border-radius:12px; background:rgba(212,184,102,.14); border:1px solid rgba(212,184,102,.4); display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rx-extra-b { flex:none; padding:5px 12px; border-radius:999px; background:var(--yellow); color:var(--ink); font-size:13px; font-weight:800; }
.rx-step-dark .rx-extra p { margin:0 !important; flex:1 1 260px; font-size:14px !important; color:#fff !important; line-height:1.6; }
/* 주차 주제만 있을 때 — PC 2열 */
@media (min-width:768px) {
  .rx-weeks { grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:28px; }
  .rx-weeks > li:nth-child(2) { border-top:0; padding-top:6px; }
}
.rx-price.is-secret, .rx-price:has(.is-secret) { background:var(--charcoal); border-color:var(--charcoal); color:var(--white); }
.rx-price:has(.is-secret) .rx-price-lab { color:rgba(255,253,249,.7); }
.rx-lock { margin-top:auto; padding-top:20px; color:var(--yellow); }
.rx-price > b.is-secret { margin-top:6px; color:var(--white); font-size:clamp(26px, 2.6vw, 32px); }
.rx-price-note { margin:10px 0 0; font-size:13.5px; line-height:1.65; color:rgba(255,253,249,.78); word-break:keep-all; }
.rx-price-btn { margin-top:16px; height:44px; background:var(--yellow); color:var(--ink); }
.rx-price-btn:hover { background:#e2c87a; }

/* ---------- 1기 시크릿 혜택 카드 ---------- */
.rx-secret { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; padding:26px clamp(20px, 2.5vw, 26px) 24px; border-radius:14px; color:#fff;
  background:radial-gradient(120% 90% at 100% 0%, rgba(212,184,102,.38) 0%, rgba(212,184,102,0) 55%), linear-gradient(160deg, #3a413c 0%, #262b28 100%);
  border:1px solid rgba(212,184,102,.55); box-shadow:0 18px 40px rgba(31,36,33,.22), inset 0 1px 0 rgba(255,255,255,.08); }
.rx-secret::after { content:''; position:absolute; top:-40%; left:-60%; width:40%; height:180%; transform:rotate(20deg); background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,240,200,.16), rgba(255,255,255,0)); animation:rxShine 4.5s ease-in-out infinite; pointer-events:none; }
@keyframes rxShine { 0%, 55% { left:-60%; } 100% { left:140%; } }
.rx-sec-rib { position:absolute; top:24px; right:-46px; transform:rotate(38deg); width:180px; padding:5px 0; text-align:center; background:var(--yellow); color:var(--ink); font-size:10.5px; font-weight:900; letter-spacing:.12em; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.rx-sec-spark { color:var(--yellow); }
.rx-sec-eb { margin:10px 0 0; font-size:12.5px; font-weight:700; letter-spacing:.06em; color:rgba(255,253,249,.6); }
.rx-sec-t { margin-top:4px; font-size:clamp(25px, 2.5vw, 30px); font-weight:900; letter-spacing:-0.035em; line-height:1.25; background:linear-gradient(95deg, #f3dc95 0%, #d4b866 45%, #fff1c4 70%, #d4b866 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.rx-sec-sub { margin:8px 0 0; font-size:14px; font-weight:600; color:rgba(255,253,249,.88); word-break:keep-all; }
.rx-sec-price { position:relative; margin-top:18px; width:100%; padding:14px 16px; border-radius:10px; background:rgba(255,255,255,.06); border:1px dashed rgba(212,184,102,.5); display:flex; align-items:center; }
.rx-sec-blur { font-size:24px; font-weight:900; letter-spacing:.02em; color:#fff; filter:blur(7px); opacity:.55; user-select:none; }
.rx-sec-open { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:6px; font-size:14.5px; font-weight:800; color:var(--yellow); }
.rx-sec-note { margin:12px 0 0; font-size:13px; line-height:1.65; color:rgba(255,253,249,.7); word-break:keep-all; }
.rx-sec-btn { margin-top:16px; width:100%; height:48px; background:linear-gradient(95deg, #e6cc7e, #d4b866); color:var(--ink); border:0; font-weight:800; }
.rx-sec-btn:hover { filter:brightness(1.06); }
@media (prefers-reduced-motion:reduce) { .rx-secret::after { animation:none; display:none; } }
.fx-br { display:none; } @media (max-width:767px) { .fx-br { display:inline; } }
@media (max-width:767px) { .rx-paren { display:block; margin-top:2px; font-size:13px; font-weight:600; color:var(--muted); } }
/* 바로가기 탭 — 칸 너비 통일 */
.cd-tabs-in { display:inline-grid; grid-auto-flow:column; grid-auto-columns:1fr; }
.cd-tabs a { text-align:center; min-width:120px; }
@media (max-width:767px) {
  .cd-tabs-in { display:grid; width:100%; }
  .cd-tabs a { min-width:0; padding:8px 4px; }
}
/* 헤더 로고 — 학사모 캐릭터 (원래 색 그대로) */
.logo-mark-c { width:38px; filter:none; }
.ft .logo-mark-c { filter:none; }

/* 제휴문의 */
.pt .lead a { color:var(--yellow-ink); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.pt-note { list-style:none; margin:28px 0 0; padding:20px 22px; border-radius:6px; background:var(--beige-2); display:grid; gap:10px; }
.pt-note li { text-align:left; position:relative; padding-left:12px; font-size:13.5px; line-height:1.65; color:#4E544F; word-break:keep-all; }
.pt-note li::before { content:''; position:absolute; left:0; top:.72em; width:4px; height:4px; border-radius:50%; background:#8d918d; }
.pt-file .lab small { font-weight:500; color:var(--muted); }
.pt-file { position:relative; }
.pt-box { padding:14px 18px; }
.pt-box .ja-ph-tx small { font-size:12.5px; }
.pt-file.err .pt-box { border-color:#B4462F; background:#FBF1EE; }
.pt-file.err .ja-ph-n { color:#B4462F; }
.f.err input, .f.err select, .f.err textarea { border-color:#B4462F; }
.pt-done { grid-column:2; padding:clamp(40px, 6vw, 72px) 24px; border:1px solid var(--line); border-radius:6px; background:var(--ivory); text-align:center; }
.pt-done[hidden] { display:none; }
.pt-done strong { display:block; font-size:22px; font-weight:800; letter-spacing:-0.03em; }
.pt-done p { margin:12px 0 24px; color:var(--muted); line-height:1.7; }
@media (max-width:860px) { .pt-done { grid-column:auto; } .pt-note { margin-top:20px; } }

/* 맨 위로(TOP) 버튼 */
.totop { position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom, 0px)); z-index:55; width:56px; height:56px; padding:0; border:0; border-radius:50%; background:rgba(51,58,53,.92); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font:800 11px/1 var(--font); letter-spacing:.08em; box-shadow:0 6px 18px rgba(31,36,33,.18); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease, bottom .3s ease, visibility 0s .2s; }
.totop.on { opacity:1; visibility:visible; transform:none; transition:opacity .2s ease, transform .2s ease, bottom .3s ease; }
.totop:hover { background:var(--charcoal); }
.totop:focus-visible { outline:2px solid var(--yellow-ink); outline-offset:3px; }
html.nav-open .totop { display:none; }
@media (max-width: 767px) {
  .totop { right:14px; width:48px; height:48px; bottom:calc(14px + env(safe-area-inset-bottom, 0px)); }
  /* 모바일 하단 버튼(문의하기·수강신청)이 있을 때는 그 위로 */
  body:has(.mbar) .totop { bottom:calc(84px + env(safe-area-inset-bottom, 0px)); }
  html.mbar-off body:has(.mbar) .totop { bottom:calc(14px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion:reduce) { .totop, .totop.on { transition:none; } }
