/* 두드림연구소 세부 페이지 공통 스타일 */
:root{
  --ink:#1d2433; --muted:#5b6475; --line:#e4e7ee; --bg:#fbfaf7; --card:#ffffff;
  --navy:#16324f; --orange:#f07a28; --green:#3b7f5c; --chalk:#2f3e36;
  --accent:var(--navy); --soft:#eef2f7; --radius:16px;
}
body.t-sport{--accent:var(--orange); --soft:#fff3e8}
body.t-chalk{--accent:var(--green); --soft:#eef4ef}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:var(--bg);line-height:1.75;word-break:keep-all}
a{color:inherit;text-decoration:none}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}

header{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1120px;margin:0 auto;padding:0 20px}
.logo{font-weight:800;font-size:30px;color:var(--navy);letter-spacing:-.5px}
.logo span{color:var(--orange)}
.menu{display:flex;align-items:center;gap:30px;font-weight:700;font-size:17px}
.menu a{position:relative;padding:6px 0;color:var(--ink);white-space:nowrap}
.menu a:hover{color:var(--orange)}
.menu a.active{color:var(--navy)}
.menu a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;border-radius:2px;background:var(--orange)}
.menu a.sep{margin-left:26px}
.menu a.sep::before{content:"";position:absolute;left:-28px;top:50%;width:1px;height:18px;margin-top:-9px;background:#cfd4dc}
.menu a.cta-link{background:var(--navy);color:#fff;padding:10px 22px;border-radius:99px;margin-left:4px}
.menu a.cta-link:hover{background:var(--orange);color:#fff}
.menu a.cta-link::after{display:none}
.burger{display:none;background:none;border:0;font-size:26px;cursor:pointer;color:var(--navy)}

.crumb{padding-top:28px;font-size:14px;color:var(--muted)}
.crumb a:hover{color:var(--accent)}
.sub-hero{padding:28px 0 56px;border-bottom:1px solid var(--line)}
.badge{display:inline-block;font-size:13px;font-weight:800;color:#fff;background:var(--accent);padding:4px 12px;border-radius:99px}
.sub-hero h1{font-size:clamp(30px,5vw,48px);line-height:1.25;letter-spacing:-1.2px;color:var(--navy);margin:14px 0 14px}
.sub-hero p{font-size:18px;color:var(--muted);max-width:680px}

.info{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:32px}
.info div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.info b{display:block;font-size:14px;color:var(--muted);font-weight:600}
.info span{font-weight:700;font-size:18px}

section.s{padding:56px 0;border-bottom:1px solid var(--line)}
section.s h2{font-size:clamp(22px,3vw,30px);color:var(--navy);letter-spacing:-.6px;margin-bottom:8px}
section.s .desc{color:var(--muted);margin-bottom:24px}

.steps{list-style:none;counter-reset:st;display:grid;gap:12px}
.steps li{counter-increment:st;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px 18px 68px;position:relative}
.steps li::before{content:counter(st);position:absolute;left:18px;top:18px;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:grid;place-items:center}
.steps b{display:block;font-size:17px}
.steps span{color:var(--muted);font-size:15px}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.box h3{font-size:18px;margin-bottom:6px;color:var(--navy)}
.box p,.box li{font-size:15px;color:var(--muted)}
.box ul{padding-left:18px}
.box.hl{background:var(--soft);border-color:transparent}

table.t{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;font-size:15px}
table.t th,table.t td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.t th{background:var(--soft);color:var(--navy);white-space:nowrap}
.tscroll{overflow-x:auto}

.cta{padding:56px 0 72px;text-align:center}
.cta p{color:var(--muted);margin-bottom:18px}
.btn{display:inline-block;background:var(--navy);color:#fff;font-weight:700;padding:14px 26px;border-radius:99px;margin:4px}
.btn:hover{background:var(--orange)}
.btn.ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.related{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:28px;font-size:14px}
.related a{padding:6px 14px;border:1px solid var(--line);border-radius:99px;background:var(--card)}
.related a:hover{border-color:var(--accent);color:var(--accent)}

.faq{display:grid;gap:10px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px}
.faq summary{font-weight:700;cursor:pointer;color:var(--navy)}
.faq details p{margin-top:8px;color:var(--muted);font-size:15px}
.note{font-size:14px;color:var(--muted);margin-top:14px}
.notice-box{margin-top:20px;padding:16px 20px;border-radius:12px;background:#fdecea;border:1px solid #f5c2bd;color:#7a2a22;font-size:15px}
.notice-box b{color:#c0392b}
.todo{background:#fff3b0;color:#5a4a00;padding:0 4px;border-radius:4px}
footer{padding:36px 0;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}

@media (max-width:820px){
  .info{grid-template-columns:1fr 1fr}
  .info div:last-child:nth-child(odd){grid-column:1 / -1}
  .grid2,.grid3{grid-template-columns:1fr}
  section.s{padding:44px 0}
}
@media (max-width:960px){
  .menu{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line)}
  .menu.open{display:flex}
  .menu a{padding:14px 20px;border-top:1px solid var(--line)}
  .menu{align-items:stretch}
  .menu a{padding:14px 20px}
  .menu a.active::after{display:none}
  .menu a.cta-link{margin:12px 20px;text-align:center;border-top:0}
  .menu a.sep{margin-left:0;border-top:6px solid var(--line)}
  .menu a.sep::before{display:none}
  .burger{display:block}
}


/* ===== 교육일정 ===== */
.ev-prog{--ev:#16324f;--ev-soft:#e6ecf3}
.ev-sport{--ev:#f07a28;--ev-soft:#fdeee2}
.ev-chalk{--ev:#3b7f5c;--ev-soft:#e6f0e9}
.ev-etc{--ev:#6b7280;--ev-soft:#eef0f3}
.st{display:inline-block;font-size:12px;font-weight:800;padding:2px 10px;border-radius:99px;white-space:nowrap}
.st-open{background:#e3f2e9;color:#1f6b41}
.st-talk{background:#fff3d6;color:#8a5a00}
.st-close{background:#eceef1;color:#6b7280}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--muted);margin-top:18px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;background:var(--ev);display:inline-block}

.cal-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 16px}
.cal-bar h2{margin:0 !important}
.cal-btns{display:flex;gap:6px}
.cal-btns button{font:inherit;font-weight:700;font-size:14px;border:1px solid var(--line);background:var(--card);color:var(--navy);padding:8px 14px;border-radius:99px;cursor:pointer}
.cal-btns button:hover{border-color:var(--navy)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}
.cal .wd{padding:10px 0;text-align:center;font-size:13px;font-weight:700;background:var(--soft);color:var(--navy)}
.cal .wd.sun{color:#c0392b}.cal .wd.sat{color:#2563eb}
.cal .day{min-width:0;min-height:108px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:4px;cursor:default}
.cal .day:nth-child(7n+1){border-left:0}
.cal .day.out{background:#fafafa}
.cal .day.out .dn{color:#c4c8d0}
.cal .day.has{cursor:pointer}
.cal .day.has:hover{background:#fbfcfe}
.cal .day.sel{outline:2px solid var(--navy);outline-offset:-2px}
.cal .dn{font-size:13px;font-weight:700;color:var(--ink)}
.cal .day.sun .dn{color:#c0392b}.cal .day.sat .dn{color:#2563eb}
.cal .day.today .dn{background:var(--navy);color:#fff;border-radius:99px;padding:0 7px;align-self:flex-start}
.chip{display:block;font-size:12px;font-weight:700;line-height:1.35;padding:3px 6px;border-radius:6px;background:var(--ev-soft);color:var(--ev);border-left:3px solid var(--ev);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.closed{opacity:.55}
.dots{display:none;gap:3px;flex-wrap:wrap}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--ev)}

.ev-list{display:grid;gap:10px}
.ev{display:grid;grid-template-columns:120px 1fr auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--ev);border-radius:12px;padding:14px 18px}
.ev.hl{box-shadow:0 0 0 2px var(--navy)}
.ev .when b{display:block;font-size:15px;color:var(--navy)}
.ev .when span{font-size:13px;color:var(--muted)}
.ev .what b{display:block;font-size:16px}
.ev .what span{font-size:14px;color:var(--muted)}
.ev .tag2{font-size:12px;font-weight:800;color:var(--ev);margin-right:6px}
.empty{padding:28px;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:12px}
.apply{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:var(--navy);color:#fff;border-radius:var(--radius);padding:26px 28px}
.apply h3{font-size:20px;margin-bottom:4px}
.apply p{color:#c9d3e0;font-size:15px}
.apply .btn{background:var(--orange);margin:0}
.apply .btn:hover{background:#fff;color:var(--navy)}

@media (max-width:820px){
  .cal .day{min-height:58px;padding:4px}
  .cal .chip{display:none}
  .cal .dots{display:flex}
  .ev{grid-template-columns:1fr;gap:6px}
  .apply{grid-template-columns:1fr}
}

/* ===== 자료실 (게시판) ===== */
.bd-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;color:var(--muted)}
.bd-search{display:flex;gap:6px}
.bd-search input{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;width:200px;background:#fff}
.bd-search button,.bd-btn{font:inherit;font-size:14px;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:8px;cursor:pointer}
.bd-search button:hover,.bd-btn:hover{border-color:var(--navy);color:var(--navy)}
table.bd{width:100%;border-collapse:collapse;border-top:2px solid var(--navy);background:#fff;font-size:15px}
table.bd th{font-size:14px;font-weight:700;color:var(--ink);padding:13px 8px;border-bottom:1px solid var(--line);background:#fafbfc}
table.bd td{padding:14px 8px;border-bottom:1px solid #eef0f3;text-align:center;color:var(--muted);font-size:14px}
table.bd td.t{text-align:left;color:var(--ink);font-size:15px}
table.bd td.t a:hover{color:var(--orange);text-decoration:underline}
table.bd tr:hover td{background:#fafbfc}
table.bd tr.notice td{background:#fdfaf5}
table.bd tr.notice td.t{font-weight:800}
table.bd .num{font-size:13px}
.ntag{display:inline-block;font-size:12px;font-weight:800;color:#fff;background:#3b3f46;padding:2px 7px;border-radius:3px}
.pic{display:inline-block;width:14px;height:12px;margin-left:6px;vertical-align:-1px;border:1.5px solid #b9bec7;border-radius:2px;position:relative}
.pic::after{content:"";position:absolute;left:1px;bottom:1px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #b9bec7}
.newtag{display:inline-block;font-size:10px;font-weight:800;color:#fff;background:var(--orange);border-radius:3px;padding:0 4px;margin-left:6px;vertical-align:2px}
.pager{display:flex;justify-content:center;gap:4px;margin-top:22px}
.pager button{font:inherit;font-size:14px;min-width:34px;height:34px;border:1px solid transparent;background:none;color:var(--muted);border-radius:6px;cursor:pointer}
.pager button.on{border-color:var(--line);background:#fff;color:var(--ink);font-weight:800}
.pager button:disabled{color:#d0d4da;cursor:default}
.post{background:#fff;border-top:2px solid var(--navy);border-bottom:1px solid var(--line)}
.post-head{padding:22px 8px 16px;border-bottom:1px solid var(--line)}
.post-head h2{font-size:24px !important;color:var(--ink) !important;margin:0 0 8px !important}
.post-head .pm{font-size:14px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
.post-body{padding:28px 8px;font-size:16px;line-height:1.85;white-space:pre-wrap;min-height:160px}
.post-body .pending{color:var(--muted)}
.post-imgs{display:grid;gap:12px;padding:0 8px 24px}
.post-imgs img{max-width:100%;height:auto;border-radius:8px;border:1px solid var(--line)}
.post-files{margin:0 8px 24px;padding:14px 18px;background:var(--soft);border-radius:10px;font-size:15px}
.post-files b{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.post-files a{display:block;color:var(--navy);font-weight:700;padding:3px 0}
.post-files a:hover{color:var(--orange)}
.post-nav{display:flex;justify-content:space-between;gap:10px;margin-top:18px;flex-wrap:wrap}
@media (max-width:820px){
  table.bd thead{display:none}
  table.bd,table.bd tbody,table.bd tr,table.bd td{display:block;width:100%}
  table.bd tr{padding:12px 4px;border-bottom:1px solid #eef0f3}
  table.bd td{border:0;padding:0;text-align:left}
  table.bd td.c-no{display:none}
  table.bd tr.notice td.c-no{display:block;margin-bottom:4px}
  table.bd tr.notice{background:#fdfaf5}
  table.bd tr.notice td,table.bd tr:hover td{background:transparent}
  table.bd td.t{font-size:16px;margin-bottom:4px}
  table.bd td.c-au,table.bd td.c-dt{display:inline;font-size:13px}
  table.bd td.c-au::after{content:" · "}
  .bd-search input{width:140px}
}

/* 용구 그림 */
.fig{margin:0}
.fig img{display:block;width:100%;max-width:760px;height:auto;margin:0 auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.fig figcaption{font-size:14px;color:var(--muted);margin-top:10px;text-align:center}
