/* 재단소개·기부금 안내·일정안내 (PC 시안 1920 기준) — 2026-11-07 */
.ab { padding-bottom: 40px; }
.ab p { margin: 0 0 22px; font-size: 18px; line-height: 1.75; color: var(--c-sub); }
/* 번호 제목: 흐린 큰 숫자(36 ExtraBold #666 30%) 위에 글자(24 SemiBold)를 오른쪽 20·아래 10 겹침 (시안) */
.sec-h { position: relative; z-index: 0; margin: 0 0 18px; padding-left: 20px; font-size: 24px; font-weight: 600; line-height: 24px; }
.sec-h span { position: absolute; left: 0; top: -20px; z-index: -1; font-size: 36px; font-weight: 800; line-height: 36px; color: #666; opacity: .3; }
.sub-h { margin: 0 0 18px; padding-left: 30px; font-size: 24px; font-weight: 600; color: var(--c-navy); background: url(/assets/img/deco_subtitle_circle.png) left center / 20px no-repeat; }
.ab-sec { margin-bottom: 90px; }
.ab-sec:last-child { margin-bottom: 0; }
.ab-lead { margin: 0 0 80px !important; text-align: center; font-size: 32px !important; font-weight: 600; line-height: 1.55 !important; color: var(--c-navy) !important; }
.ab-center-t { text-align: center; font-size: 28px !important; font-weight: 700; color: var(--c-text) !important; margin-top: 50px !important; }
.ab-fig { display: block; max-width: 100%; height: auto; margin: 40px auto 30px; }
.ab-quote { margin-top: 60px !important; text-align: center; font-size: 36px !important; font-weight: 600; color: var(--c-point) !important; }

/* 아래에서 위로 스르륵 (시안 메모) */
.js-reveal .reveal { opacity: 0; transform: translateY(40px); transition: opacity .8s ease, transform .8s ease; }
.js-reveal .reveal.in { opacity: 1; transform: none; }

/* 인사말 */
.ab-greet { display: flex; gap: 60px; align-items: flex-start; }
.g-txt { flex: 1; }
.g-txt h2 { margin: 0 0 20px; font-size: 24px; font-weight: 600; }
.g-txt p { font-size: 20px; color: var(--c-text); }
.g-txt mark { background: linear-gradient(transparent 55%, rgba(92,203,229,.45) 55%); color: inherit; }
.g-sign { display: flex; justify-content: flex-end; align-items: baseline; gap: 18px; margin-top: 50px !important; }
.g-sign span { font-size: 20px; font-weight: 500; }
.g-sign b { font-size: 28px; font-weight: 500; color: var(--c-text); }
.g-sign-img { margin: 4px 0 0 !important; text-align: right; }
.g-sign-img img { display: inline-block; vertical-align: top; }
.g-photo { flex: 0 0 465px; height: 586px; border-radius: 20px; background: #eef6f9 url(/assets/img/h_logo.png) center / 40% no-repeat; opacity: .8; }

/* 재단소개 회색 띠 */
.ab-band { margin: 0 0 100px; padding: 62px 0 35px; background: #f7f7f7; text-align: center; }
.band-t { position: relative; margin: 0 0 114px; font-size: 28px; font-weight: 700; line-height: 1.55; }
.band-t::before, .band-t::after { content: ''; position: absolute; top: -27px; width: 50px; height: 40px; background: center / contain no-repeat; }
.band-t::before { left: calc(50% - 357px); background-image: url(/assets/img/deco_quote_left.png); }
.band-t::after { left: calc(50% + 307px); background-image: url(/assets/img/deco_quote_right.png); }
.band-arrow { display: block; margin: 14px auto 0; }
.band-img { max-width: 100%; height: auto; }
.band-b { margin: 14px 0 0; font-size: 30px; font-weight: 700; color: var(--c-point); }
.vision-img { display: block; max-width: 100%; height: auto; margin: 40px auto; }
.pill-list { max-width: 716px; margin: 50px auto 0; padding: 0; list-style: none; }
.pill-list li { display: flex; align-items: center; height: 60px; margin-bottom: 10px; border: 1px solid var(--c-line); border-radius: 30px; overflow: hidden; }
.pill-list b { flex: 0 0 177px; align-self: stretch; display: flex; align-items: center; gap: 3px; padding-left: 45px; border-radius: 40px; background: var(--c-point); color: #fff; font-size: 24px; font-weight: 600; }
.pill-list b.grad { background: linear-gradient(90deg, #0e90b1, #5ccbe5); }
.pill-list span { padding: 0 20px; font-size: 20px; }

/* 사업내용 */
.biz { display: flex; gap: 60px; align-items: flex-start; margin-bottom: 100px; }
.biz-txt { flex: 1; }
.biz-txt p { font-size: 20px; color: var(--c-text); }
.biz-img img { display: block; width: 455px; max-width: 100%; height: auto; border-radius: 20px; }

/* 사회적 기업 */
.def { margin: 0; }
.def dt { margin-top: 18px; font-size: 20px; font-weight: 500; }
.def dd { margin: 6px 0 0 18px; font-size: 18px; color: var(--c-sub); line-height: 1.7; }

/* 조직도 */
.org { display: flex; flex-direction: column; align-items: center; padding: 20px 0 40px; }
.og-top { display: flex; align-items: center; justify-content: center; width: 146px; height: 146px; border-radius: 50%; background: #d6f7ff; }
.og-top span { display: flex; align-items: center; justify-content: center; width: 127px; height: 127px; border-radius: 50%; background: #fff; font-size: 24px; font-weight: 600; color: var(--c-navy); }
.og-row { position: relative; display: flex; justify-content: center; gap: 240px; margin-top: 46px; }
.og-row::before { content: ""; position: absolute; left: 50%; top: -46px; height: 46px; border-left: 1px solid #bbb; }
.og-row.two::after { content: ""; position: absolute; left: 100px; right: 100px; top: 25px; border-top: 1px solid #bbb; z-index: -1; }
.og-row.low { gap: 380px; }
.og-row.low::after { top: -14px; }
.edu-pages { margin: 20px 0 0; text-align: center; color: var(--c-gray); font-size: 15px; }
.edu-pages a { margin-left: 10px; color: var(--c-point); text-decoration: underline; }
.og-row.low.many { gap: 40px; flex-wrap: wrap; }   /* 29번: 관리자가 부서를 더하면 */
.og { display: flex; align-items: center; justify-content: center; width: 200px; height: 50px; border-radius: 10px; background: #eee; font-size: 18px; font-weight: 500; transition: background .2s; }
.og:hover { background: #d6f7ff; }
.og.line { background: #fff; border: 1px solid var(--c-point); }
.og-col ul { width: 200px; margin: 10px 0 0; padding: 22px 20px; border-radius: 10px; background: #eee; list-style: none; font-size: 18px; font-weight: 500; line-height: 1.75; }
.og-col li::before { content: "· "; }
.org-help { margin-top: 40px !important; font-size: 15px !important; color: var(--c-gray) !important; }
.org-dept .od-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 14px; }
.od-head h2 { margin: 0; padding-left: 30px; font-size: 24px; font-weight: 600; color: var(--c-navy); background: url(/assets/img/deco_subtitle_circle.png) left center / 20px no-repeat; }
.od-head span { font-size: 18px; color: var(--c-sub); }
.od-tbl { width: 100%; border-collapse: collapse; border: 1px solid var(--c-line); font-size: 18px; text-align: center; }
.od-tbl th { padding: 18px 10px; font-weight: 600; border-bottom: 1px solid var(--c-line); }
.od-tbl td { padding: 20px 10px; border-bottom: 1px solid var(--c-line); }
.od-tbl td.duty { text-align: left; line-height: 1.75; }
.od-tbl .empty { color: var(--c-gray); padding: 50px 0; }

/* 연혁 */
.page-title + .hist-top, .hist-top { text-align: center; overflow: hidden; padding: 0 0 80px; }
.ht-flow { display: flex; width: max-content; animation: ht-flow 40s linear infinite; opacity: .9; }
.ht-flow span { width: 1040px; height: 206px; flex: 0 0 1040px; background: url(/assets/img/deco_history_text.png) left center / auto 206px no-repeat; }
@keyframes ht-flow { from { transform: translateX(-1040px); } to { transform: translateX(0); } }
.ht-since { margin: 70px 0 10px; font-size: 20px; font-weight: 700; color: var(--c-navy); }
.ht-t { margin: 0; font-size: 24px; font-weight: 700; }
.hist-grp { padding: 120px 0 100px; background: center top / cover no-repeat; }
.hist-grp.g1 { background-color: #f7f7f7; background-image: url(/assets/img/opt/bg_history_year01.webp); }
.hist-grp.g2 { background-color: #5ccbe5; background-image: url(/assets/img/opt/bg_history_year02.webp); }
.hist-grp.g3 { background-color: #1b6f93; background-image: url(/assets/img/opt/bg_history_year03.webp); color: #fff; }
.hist-grp.g4 { background-color: #0a3d5a; background-image: url(/assets/img/opt/bg_history_year04.webp); color: #fff; }
.hist-line { position: relative; }
.hist-line::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px solid rgba(0,0,0,.12); }
.g3 .hist-line::before, .g4 .hist-line::before { border-color: rgba(255,255,255,.3); }
.hy { position: relative; margin-bottom: 110px; }
.hy:last-child { margin-bottom: 0; }
.hy-year { position: absolute; left: 50%; top: -6px; transform: translateX(-50%); margin: 0; min-width: 120px; height: 48px; padding: 0 22px; display: flex; align-items: center; justify-content: center; border-radius: 24px; font-size: 30px; font-weight: 700; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.08); z-index: 1; }
.g1 .hy-year { background: var(--c-point); color: #fff; }
.g2 .hy-year { color: #5ccbe5; }
.g3 .hy-year { color: #0e90b1; }
.g4 .hy-year { color: var(--c-navy); }
/* 묶음마다 큰 "2020s / 2010s" 글자 장식 (시안 deco_history_year_01~04) */
.hist-grp { position: relative; overflow: hidden; }
.hist-grp::before { content: ""; position: absolute; top: 40px; width: 301px; height: 107px; background: center / contain no-repeat; opacity: .9; pointer-events: none; }
.g1::before { left: 6%; background-image: url(/assets/img/deco_history_year_01.png); }
.g2::before { right: 6%; background-image: url(/assets/img/deco_history_year_02.png); }
.g3::before { left: 6%; background-image: url(/assets/img/deco_history_year_03.png); }
.g4::before { right: 6%; background-image: url(/assets/img/deco_history_year_04.png); }
.hy ul { width: calc(50% - 98px); margin: 0; padding: 0; list-style: none; }
.hy.r ul { margin-left: calc(50% + 98px); }
.hy.l ul { margin-right: calc(50% + 102px); text-align: right; }
.hy li { margin-top: 12px; font-size: 18px; line-height: 1.6; }
.hy li.cont { margin-top: 6px; }
.hm { display: block; margin-top: 20px; font-size: 24px; font-weight: 700; }
.hy li:first-child .hm { margin-top: 0; }
.hy .hdt { display: inline-block; margin-right: 14px; font-weight: 600; color: var(--c-navy); vertical-align: top; }
.hy.l .hdt { margin: 0 0 0 14px; float: right; }
.g3 .hdt, .g4 .hdt { color: #fff; }
.hy .ht { display: inline-block; max-width: calc(100% - 140px); vertical-align: top; }
.hy.l .ht { text-align: right; }

/* 찾아오시는 길 */
.map { height: 540px; border: 1px solid var(--c-line); border-bottom: 0; }
.map iframe { width: 100%; height: 100%; border: 0; display: block; }
.loc-info { padding: 22px 0 40px; border: 1px solid var(--c-line); }
.li-head { display: flex; justify-content: space-between; align-items: center; padding: 0 45px 20px 78px; border-bottom: 1px solid var(--c-line); }
.li-head h2 { margin: 0; font-size: 24px; font-weight: 600; }
.naver { display: inline-flex; align-items: center; height: 50px; padding: 0 26px 0 56px; border-radius: 27px; background: #03c75a url(/assets/img/icon_naver_map.png) 20px center / 26px no-repeat; color: #fff; font-size: 18px; font-weight: 500; }
.loc-info dl { display: grid; grid-template-columns: 220px 1fr; margin: 30px 0 0; padding: 0 45px 0 78px; font-size: 18px; row-gap: 26px; }
.loc-info dt { font-weight: 600; padding-left: 30px; background: left 4px / 20px no-repeat; }
.loc-info dd { margin: 0; line-height: 1.7; }
.i-addr { background-image: url(/assets/img/icon_location.png); }
.i-tel { background-image: url(/assets/img/icon_tel.png); }
.i-subway { background-image: url(/assets/img/icon_subway.png); }
.i-bus { background-image: url(/assets/img/icon_bus.png); }
.line1 { display: inline-block; width: 70px; margin-right: 12px; border-radius: 15px; background: #ff1558; color: #fff; font-size: 14px; text-align: center; line-height: 25px; }

/* 교육내용 */
.edu-tabs { display: flex; margin-bottom: 100px; }
.edu-tabs a { flex: 1; display: flex; align-items: center; justify-content: center; height: 60px; background: #f7f7f7; color: var(--c-sub); font-size: 18px; }
.edu-tabs a.on { background: var(--c-point); color: #fff; font-weight: 600; }
.edu-h { margin-bottom: 6px; }
.edu-sub { font-size: 18px !important; font-weight: 500; color: var(--c-text) !important; }
.edu-cats { display: flex; flex-wrap: wrap; gap: 8px 4px; margin: 60px 0 30px; }
.edu-cats a { padding: 6px 16px; border-radius: 20px; font-size: 18px; font-weight: 500; }
.edu-cats a.on { color: var(--c-navy); font-weight: 600; background: #e6f4f8; }
.edu-list { margin: 0; padding: 30px 20px; list-style: none; border: 1px solid var(--c-line); border-radius: 10px; }
.edu-list > li { position: relative; display: flex; gap: 30px; padding: 30px 110px 30px 0; border-bottom: 1px solid var(--c-line2); }
.edu-list > li:first-child { padding-top: 0; }
.edu-list > li:last-child { border-bottom: 0; padding-bottom: 0; }
.edu-list > li.empty { justify-content: center; color: var(--c-gray); padding: 40px 0; }
.el-img { flex: 0 0 280px; height: 180px; border-radius: 6px; overflow: hidden; background: #eee url(/assets/img/img_education_empty.png) center / cover no-repeat; }
.el-img img { width: 100%; height: 100%; object-fit: cover; }
.el-txt { flex: 1; min-width: 0; }
.el-cat { display: inline-block; padding: 0 14px; height: 28px; line-height: 28px; border-radius: 14px; background: #f5a623; color: #fff; font-size: 14px; font-weight: 500; }
.el-txt strong { display: block; margin: 12px 0 8px; font-size: 20px; font-weight: 600; color: var(--c-point); }
.el-txt p { margin: 0 !important; font-size: 18px !important; font-weight: 500; color: var(--c-text) !important; }
.el-txt dl { display: grid; grid-template-columns: 70px 1fr; gap: 8px 14px; margin: 0; font-size: 16px; }
.el-txt dt { font-size: 14px; font-weight: 500; text-align: center; background: #f3f3f3; border-radius: 12px; line-height: 24px; align-self: start; }
.el-txt dd { margin: 0; color: var(--c-sub); }
.el-more { position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 18px; font-weight: 500; padding-right: 22px; background: url(/assets/img/btn_more.png) right center / 16px no-repeat; }
.edu-list > li:first-child .el-more { margin-top: -15px; }
.edu-more { margin: 30px 0 0 !important; text-align: center; }
.edu-more a { display: inline-flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 600; color: var(--c-text); }
.edu-more a::after { content: ""; width: 20px; height: 20px; background: url(/assets/img/icon_down_arrow.png) center / 20px no-repeat; }
.ev-title { margin: 0 0 40px; font-size: 24px; font-weight: 700; }
.ev-top { display: flex; gap: 60px; justify-content: center; align-items: flex-start; padding-bottom: 60px; border-bottom: 1px solid var(--c-line); }
.ev-img { flex: 0 0 400px; height: 563px; border-radius: 20px; overflow: hidden; background: #eee url(/assets/img/img_education_empty.png) center / 80% no-repeat; }
.ev-img img { width: 100%; height: 100%; object-fit: cover; }
.ev-info { flex: 0 1 560px; display: grid; grid-template-columns: 110px 1fr; gap: 16px 10px; margin: 0; font-size: 18px; }
.ev-info dt { font-weight: 700; }
.ev-info dd { margin: 0; }
.ev-file { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ev-file a { display: inline-flex; align-items: center; justify-content: center; width: 120px; height: 46px; border: 1px solid var(--c-line); border-radius: 5px; background: #f7f7f7; }
.ev-body { padding: 50px 0; font-size: 18px; line-height: 1.8; }

/* 기부금 안내 */
.don-boxes { display: flex; justify-content: center; gap: 20px; margin-top: 80px; }
.db { position: relative; width: 499px; padding: 60px 50px 11px; border: 1px solid var(--c-point); border-radius: 16px; box-shadow: 0 3px 3px rgba(0,0,0,.16); background: #fff url(/assets/img/deco_donation_house.png) right 51px bottom 42px no-repeat; }
.db.b2 { background-image: url(/assets/img/deco_donation_heart.png); }
.db h3 { position: absolute; left: 50%; top: -20px; transform: translateX(-50%); margin: 0; width: 300px; height: 50px; line-height: 50px; border-radius: 24px; background: var(--c-navy); color: #fff; text-align: center; font-size: 24px; font-weight: 600; }
.db.b2 h3 { background: var(--c-point); }
.db ul { margin: 0; padding: 0; list-style: none; font-size: 20px; color: var(--c-sub); line-height: 1.8; }
.db li::before { content: "· "; }
/* 후원방법: 142 둥근(16) 네모를 45도 돌린 마름모(대각 200), 점선 3px #0e90b1 + 옅은 하늘색 번짐, 번호는 지름 32 동그라미, 사이 화살표 #094a6b (시안) */
.don-steps { display: flex; justify-content: space-between; width: 1305px; max-width: 100%; margin: 81px 0 80px; padding: 0; list-style: none; }
.don-steps li { position: relative; z-index: 0; display: flex; align-items: center; justify-content: center; width: 200px; height: 200px; text-align: center; font-size: 20px; font-weight: 500; line-height: 1.4; }
.don-steps li::before, .don-steps li::after { content: ''; position: absolute; left: 29px; top: 29px; width: 142px; height: 142px; box-sizing: border-box; border-radius: 16px; transform: rotate(45deg); }
.don-steps li::before { z-index: -1; border: 3px dashed var(--c-point); box-shadow: 0 3px 3px rgba(0,0,0,.16); }
.don-steps li::after { z-index: -2; left: 44px; top: 31px; background: #d6f7ff; opacity: .4; filter: blur(10px); }
.don-steps span { position: absolute; left: 84px; top: 20px; width: 32px; height: 32px; border-radius: 50%; background: var(--c-point); color: #fff; font-size: 18px; line-height: 32px; }
.don-steps .arr { position: absolute; left: 232px; top: 93px; border-left: 12px solid var(--c-navy); border-top: 7px solid transparent; border-bottom: 7px solid transparent; }
.don-note { margin: 0 0 104px; padding: 0; list-style: none; font-size: 20px; color: var(--c-sub); line-height: 1.8; }
.don-note li::before { content: "• "; }
.don-acc { display: flex; align-items: center; justify-content: center; gap: 120px; padding: 63px 0; background: #f7f7f7; }
.da-t { margin: 0 !important; text-align: center; font-size: 24px !important; font-weight: 600; color: var(--c-navy) !important; line-height: 1.5 !important; }
.da-t small { font-size: 20px; }
.don-acc ul { margin: 0; padding: 0; list-style: none; font-size: 24px; line-height: 1.8; }
.don-acc b { display: inline-block; width: 140px; font-weight: 400; }
.don-acc b::before { content: "• "; }
.ab .btns { max-width: 572px; margin-left: auto; margin-right: auto; }
.ab .btns .btn { flex: 1; }

/* 일정안내 */
.sch-nav { display: flex; justify-content: space-between; align-items: center; padding: 0 30px; margin-bottom: 30px; }
.sch-nav h2 { margin: 0; font-size: 36px; font-weight: 600; }
.sn-side { font-size: 18px; font-weight: 500; color: #bbb; padding: 8px 14px; }
.sn-side:hover { color: var(--c-point); }
.sch-admin { display: flex; align-items: center; gap: 16px; margin: 0 0 14px; font-size: 14px; color: var(--c-gray); }
.staff-dot { display: inline-block; width: 12px; height: 12px; border-radius: 3px; background: #ffe2b8; vertical-align: -1px; margin-right: 4px; }
.btn-s-line, .btn-s-dark { height: 38px; padding: 0 16px; border: 1px solid var(--c-navy); border-radius: 5px; background: #fff; color: var(--c-navy); font-size: 15px; font-weight: 600; cursor: pointer; }
.btn-s-dark { background: var(--c-dark); border-color: var(--c-dark); color: #fff; }
.sch-cal { width: 100%; table-layout: fixed; border-collapse: collapse; border: 1px solid var(--c-line); }
.sch-cal th { height: 66px; background: var(--c-navy); color: #fff; font-size: 22px; font-weight: 500; }
.sch-cal td { height: 250px; padding: 12px 10px; vertical-align: top; border: 1px solid var(--c-line); }
.sc-day { display: block; margin: 0 auto 10px; padding: 0; border: 0; background: none; font-size: 20px; cursor: pointer; width: 34px; height: 34px; border-radius: 50%; }
.sch-cal .sun .sc-day { color: #d91919; } .sch-cal .sat .sc-day { color: #384fe9; }
.sch-cal .today .sc-day { background: var(--c-point); color: #fff; font-weight: 700; }
.sc-chip { display: block; width: 100%; height: 30px; margin-bottom: 6px; padding: 0 12px; border: 0; border-radius: 5px; background: #c8e3f1; color: #4e4e4e; font-size: 16px; font-weight: 500; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.sc-chip.staff { background: #ffe2b8; }
.sc-chip.more { background: #f0f0f0; text-align: center; }
/* 36번: 모바일 달력 아래 목록 (PC 는 숨김) */
.sch-mlist { display: none; }
@media (max-width: 1024px) {
  .sch-mlist { display: block; margin-top: 20px; }
  .ml-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 2px solid var(--c-navy); }
  .ml-head h3 { margin: 0; font-size: 17px; }
  .ml-list { margin: 0; padding: 0; list-style: none; }
  .ml-list li { padding: 12px 4px; border-bottom: 1px solid var(--c-line); font-size: 15px; }
  .ml-list li.staff { background: #fff8ee; }
  .ml-list li.empty { display: block; text-align: center; color: #666; }
  .ml-date { margin-right: 8px; color: var(--c-point); font-weight: 700; white-space: nowrap; }
  .ml-list strong { font-weight: 600; }
  .ml-who { display: block; color: #666; font-size: 13px; }
  .ml-body { margin: 2px 0 0; color: #444; font-size: 14px; white-space: pre-line; }
  .sch-cal td.sel { background: #e6f4f9; }
  .sch-cal td.sel .sc-day { outline: 2px solid var(--c-point); }
}
.sch-pop { width: 748px; max-width: calc(100% - 32px); padding: 0; border: 0; border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,.25); }
.sch-pop::backdrop { background: rgba(0,0,0,.45); }
.sp-in { position: relative; padding: 40px 46px; }
.sp-date { margin: 0 0 26px; text-align: center; font-size: 24px; font-weight: 600; }
.sp-list { margin: 0; padding: 0; list-style: none; max-height: 60vh; overflow-y: auto; }
.sp-list li { padding: 18px 0; border-top: 1px solid var(--c-line); }
.sp-list li.staff { background: #fff8ee; padding-left: 10px; padding-right: 10px; }
.sp-list li.empty { text-align: center; color: var(--c-gray); }
.sp-who { margin: 0 0 6px !important; font-size: 20px !important; font-weight: 600; color: #222 !important; }
.sp-time { margin: 0 !important; font-size: 18px !important; color: #222 !important; }
.sp-body { margin: 6px 0 0 !important; font-size: 16px !important; white-space: pre-line; }
.sp-act { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px; }
.sp-act form { margin: 0; }
.sp-add { text-align: center; }
.sp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sp-form label { display: flex; flex-direction: column; gap: 6px; font-size: 16px; font-weight: 600; }
.sp-form .wide { grid-column: 1 / -1; }
.sp-form .chk { grid-column: 1 / -1; flex-direction: row; align-items: center; font-weight: 500; }
.sp-form input[type=text], .sp-form input[type=date], .sp-form input[type=time], .sp-form textarea { height: 46px; padding: 0 12px; border: 1px solid var(--c-line); border-radius: 6px; font-size: 16px; font-weight: 400; }
.sp-form textarea { height: 110px; padding: 10px 12px; resize: vertical; }
.sp-btns { grid-column: 1 / -1; display: flex; gap: 10px; margin-top: 10px; }
.sp-btns .btn { flex: 1; height: 54px; font-size: 20px; }
.sp-x { position: absolute; right: 24px; top: 24px; width: 29px; height: 29px; border: 0; background: url(/assets/img/btn_close.png) center / 21px no-repeat; cursor: pointer; }

/* ---------- 모바일 ---------- */
@media (max-width: 1024px) {
  .ab p { font-size: 15px; }
  .sec-h { font-size: 18px; } .sec-h span { font-size: 26px; }
  .sub-h { font-size: 18px; padding-left: 24px; background-size: 16px; }
  .ab-sec { margin-bottom: 56px; }
  .ab-lead { font-size: 18px !important; margin-bottom: 40px !important; }
  .ab-lead br { display: none; }
  .ab-center-t { font-size: 18px !important; }
  .ab-quote { font-size: 20px !important; }
  .ab-greet { flex-direction: column-reverse; gap: 24px; }
  .g-photo { flex: none; width: 100%; height: 220px; }
  .g-txt p, .g-sign span { font-size: 15px; }
  .g-sign b { font-size: 20px; }
  .g-sign-img img { width: 100px; height: auto; }
  .ab-band { padding: 40px 0; margin-bottom: 56px; }
  .band-t { font-size: 17px; margin-bottom: 30px; }
  .band-b { font-size: 20px; }
  .band-t::before, .band-t::after { display: none; }
  .band-arrow { width: 18px; height: auto; margin-top: 14px; }
  .pill-list b { padding-left: 10px; gap: 4px; }
  .pill-list b img { width: 24px; height: 24px; }
  .pill-list li { height: 50px; }
  .pill-list b { flex-basis: 80px; font-size: 16px; }
  .pill-list span { font-size: 14px; padding: 0 12px; }
  .biz, .biz.rev { flex-direction: column; gap: 20px; margin-bottom: 56px; }
  .biz.rev { flex-direction: column-reverse; }
  .biz-txt p { font-size: 15px; }
  .biz-img img { width: 100%; }
  .def dd { font-size: 15px; margin-left: 0; } .def dt { font-size: 16px; }
  .og-row { gap: 30px; } .og-row.low { gap: 20px; }
  .og-row.two::after { left: 25%; right: 25%; }
  .og { width: 140px; height: 44px; font-size: 15px; }
  .og-col ul { width: 140px; padding: 14px 10px; font-size: 13px; }
  .og-top { width: 110px; height: 110px; } .og-top span { width: 96px; height: 96px; font-size: 18px; }
  .od-tbl { font-size: 13px; } .od-tbl th, .od-tbl td { padding: 10px 4px; }
  .od-head h2 { font-size: 18px; } .od-head span { font-size: 13px; }
  .ht-flow span { width: 520px; flex-basis: 520px; height: 103px; background-size: auto 103px; }
  @keyframes ht-flow { from { transform: translateX(-520px); } to { transform: translateX(0); } }
  .ht-since { margin-top: 30px; font-size: 15px; } .ht-t { font-size: 16px; padding: 0 20px; }
  .hist-grp { padding: 70px 0 60px; }
  .hist-grp.g1 { background-image: url(/assets/img/opt/m_bg_history_year01.webp); }
  .hist-grp.g2 { background-image: url(/assets/img/opt/m_bg_history_year02.webp); }
  .hist-grp.g3 { background-image: url(/assets/img/opt/m_bg_history_year03.webp); }
  .hist-grp.g4 { background-image: url(/assets/img/opt/m_bg_history_year04.webp); }
  .hist-line::before { left: 18px; }
  .hy { margin-bottom: 60px; }
  .hy-year { left: 0; transform: none; min-width: 90px; height: 38px; font-size: 20px; top: -10px; }
  .hist-grp::before { width: 150px; height: 54px; top: 16px; }
  .hy.r ul, .hy.l ul { width: auto; margin: 0 0 0 40px; padding-top: 50px; text-align: left; }
  .hy.l .hdt { float: none; margin: 0 10px 0 0; }
  .hy.l .ht { text-align: left; }
  .hy li { font-size: 14px; }
  .hm { font-size: 18px; }
  .hy .ht { max-width: none; display: block; }
  .map { height: 280px; }
  .li-head { flex-direction: column; align-items: flex-start; gap: 12px; padding: 0 16px 16px; }
  .li-head h2 { font-size: 18px; }
  .naver { height: 42px; font-size: 15px; }
  .loc-info dl { grid-template-columns: 1fr; row-gap: 6px; padding: 0 16px; font-size: 14px; }
  .loc-info dt { margin-top: 12px; }
  .edu-tabs { margin-bottom: 40px; }
  .edu-tabs a { height: 48px; font-size: 15px; }
  .edu-cats { margin: 26px 0 16px; }
  .edu-cats a { font-size: 14px; padding: 4px 10px; }
  .edu-list { padding: 16px 12px; }
  .edu-list > li { flex-direction: column; gap: 12px; padding: 20px 0 46px; }
  .el-img { flex: none; height: auto; aspect-ratio: 280 / 180; }
  .el-txt strong { font-size: 16px; }
  .el-txt p { font-size: 14px !important; }
  .el-txt dl { font-size: 13px; grid-template-columns: 56px 1fr; }
  .el-more { top: auto; bottom: 14px; transform: none; font-size: 14px; }
  .edu-list > li:first-child .el-more { margin-top: 0; }
  .ev-top { flex-direction: column; align-items: stretch; gap: 24px; }
  .ev-img { flex: none; height: auto; aspect-ratio: 400 / 563; max-width: 320px; margin: 0 auto; }
  .ev-info { font-size: 14px; grid-template-columns: 76px 1fr; }
  .ev-title { font-size: 18px; }
  .don-boxes { flex-direction: column; gap: 40px; margin-top: 50px; }
  .don-note { margin-bottom: 30px; }
  .db { width: auto; padding: 46px 20px 20px; }
  .db h3 { width: 220px; height: 40px; line-height: 40px; font-size: 17px; }
  .db ul, .don-note { font-size: 15px; }
  /* 41번: 모바일 시안 — 가로로 긴 상자 5개를 한 열로, 아래 화살표로 이음 (PC 마름모는 그대로) */
  .don-steps { flex-direction: column; align-items: stretch; gap: 26px; width: auto; margin: 30px 0; }
  .don-steps li { width: auto; height: auto; min-height: 56px; padding: 12px 16px 12px 60px; justify-content: flex-start; text-align: left; font-size: 15px;
    border: 2px dashed var(--c-point); border-radius: 12px; background: #f2fbfe; box-shadow: 0 3px 3px rgba(0,0,0,.08); }
  .don-steps li br { display: none; }
  .don-steps li::before, .don-steps li::after { content: none; }
  .don-steps span { left: 16px; top: 50%; margin-top: -14px; width: 28px; height: 28px; font-size: 13px; line-height: 28px; text-align: center; }
  .don-steps .arr { left: 50%; top: auto; bottom: -21px; margin-left: -7px; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 12px solid var(--c-navy); border-bottom: 0; }
  .db { background-size: 70px auto; background-position: right 20px bottom 20px; }
  .don-acc { flex-direction: column; gap: 16px; padding: 26px 16px; }
  .da-t { font-size: 17px !important; } .da-t small { font-size: 14px; }
  .don-acc ul { font-size: 16px; } .don-acc b { width: 90px; }
  .sch-nav { padding: 0; } .sch-nav h2 { font-size: 24px; } .sn-side { font-size: 13px; padding: 6px; }
  .sch-admin { flex-wrap: wrap; font-size: 12px; }
  .sch-cal th { height: 40px; font-size: 14px; }
  .sch-cal td { height: 76px; padding: 4px 2px; }
  .sc-day { width: 28px; height: 28px; font-size: 14px; margin-bottom: 4px; }
  .sc-chip { height: 6px; margin: 0 auto 3px; padding: 0; width: 70%; font-size: 0; border-radius: 3px; }
  .sc-chip.more { height: auto; font-size: 10px; background: none; width: auto; }
  .sp-in { padding: 28px 18px; }
  .sp-date { font-size: 18px; }
  .sp-who { font-size: 16px !important; } .sp-time { font-size: 15px !important; }
  .sp-form { grid-template-columns: 1fr; }
}
