/* 공개 사이트 스타일 — 개편안(v16) build.py CSS 이식. 백오피스·Tailwind(output.css) 이후 로드 */

/* ===== 공통 — 레이아웃·헤더·푸터·버튼·고정바·모달·캐러셀·라이트박스 ===== */
:root{
  --brand:#C41B1F;--brand-deep:#8E1216;--ink:#17110F;--ink-soft:#4A423F;
  --paper:#fff;--mist:#F5F2F0;--line:#E5DEDA;--night:#1A1512;--night-2:#241C18;--max:1160px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Pretendard Variable',Pretendard,-apple-system,system-ui,sans-serif;color:var(--ink);
  background:var(--paper);line-height:1.6;letter-spacing:-.01em;padding-bottom:64px;word-break:keep-all}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
h1,h2,h3,h4{word-break:keep-all;letter-spacing:-.025em}
.eyebrow{display:inline-block;font-size:.82rem;font-weight:800;letter-spacing:.14em;color:var(--brand);margin-bottom:14px}
section{padding:clamp(60px,8vw,110px) 0}
h2{font-size:clamp(1.7rem,4.2vw,2.7rem);font-weight:900;line-height:1.18}
.lead{color:var(--ink-soft);font-size:clamp(1rem,1.6vw,1.15rem);margin-top:16px;max-width:64ch}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
/* nav */
header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
header.site.scrolled{box-shadow:0 6px 24px rgba(23,17,15,.07)}
.nav{display:flex;align-items:center;gap:20px;height:66px}
.brand-lock{display:flex;align-items:flex-end;gap:9px;white-space:nowrap;font-weight:900;font-size:.95rem}
.brand-lock img{width:auto}
.brand-lock .lg-hi5{height:22px}
.brand-lock .lg-ani{height:22px}
.brand-lock b{border-left:1px solid var(--line);padding-left:9px;font-weight:900;font-size:.9rem;line-height:1;position:relative;top:1px}
@media(max-width:520px){.brand-lock .lg-ani{display:none}.brand-lock b{font-size:.82rem;padding-left:8px}}
@media(max-width:380px){.brand-lock b{display:none}}
.nav-links{display:flex;gap:22px;margin-left:auto;font-weight:700;font-size:.93rem}
.nav-links a{color:var(--ink-soft);transition:color .15s}
.nav-links a:hover,.nav-links a.on{color:var(--brand)}
.nav-cta{background:var(--ink);color:#fff;padding:10px 18px;border-radius:6px;font-weight:800;font-size:.9rem;cursor:pointer;border:none;font-family:inherit;transition:background .15s}
.nav-cta:hover{background:var(--brand)}
.hamburger{display:none;margin-left:auto;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px}
.hamburger span{width:24px;height:2px;background:var(--ink);transition:.25s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;background:#fff;border-bottom:1px solid var(--line)}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:14px 24px;font-weight:700;border-top:1px solid var(--line)}
.mobile-menu a.mm-cta{background:var(--brand);color:#fff;text-align:center;font-weight:800}
@media(max-width:940px){.nav-links,.nav>.nav-cta{display:none}.hamburger{display:flex}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;border-radius:8px;padding:14px 24px;font-size:1rem;cursor:pointer;border:none;font-family:inherit;transition:transform .12s,background .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-deep)}
.btn-ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--ink)}
/* page hero */
.phero{background:var(--mist);padding:clamp(44px,6vw,76px) 0}
.crumb{font-size:.85rem;color:var(--ink-soft);font-weight:700;margin-bottom:14px}
.crumb a:hover{color:var(--brand)}
.phero h1{font-size:clamp(1.9rem,5vw,3rem);font-weight:900;line-height:1.15}
/* footer */
footer.site{background:var(--ink);color:#cabfb9;padding:56px 0 40px;font-size:.92rem}
footer .f-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px}
footer .f-name{color:#fff;font-weight:900;font-size:1.1rem;margin-bottom:10px}
footer dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin-top:12px;font-size:.9rem}
footer dt{color:#8a7f79;font-weight:700}
footer .f-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.85rem}
footer .f-links a:hover{color:#fff}
footer .copy{margin-top:18px;color:#6f645e;font-size:.8rem}
/* sticky bar */
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--night);color:#fff;border-top:2px solid var(--brand)}
.stickybar .wrap{display:flex;align-items:center;gap:14px;height:62px}
.stickybar .badge{background:var(--brand);color:#fff;font-weight:900;font-size:.76rem;padding:5px 11px;border-radius:5px;white-space:nowrap}
.stickybar .msg{font-weight:700;font-size:.94rem}
.stickybar .sb-cta{margin-left:auto;display:flex;gap:9px}
.stickybar .sb-cta a,.stickybar .sb-cta button{font-weight:800;padding:10px 18px;border-radius:7px;font-size:.9rem;white-space:nowrap;cursor:pointer;border:none;font-family:inherit}
.stickybar .sb-cta .call{background:#fff;color:var(--ink)}
.stickybar .sb-cta .go{background:var(--brand);color:#fff}
@media(max-width:640px){.stickybar .msg{display:none}}
/* modal */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,10,8,.55);backdrop-filter:blur(2px)}
.modal-card{position:relative;background:#fff;border-radius:18px;max-width:420px;width:100%;padding:32px 28px 26px;box-shadow:0 24px 60px rgba(0,0,0,.3);animation:pop .22s ease}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}}
.modal-x{position:absolute;top:12px;right:15px;background:none;border:none;font-size:1.7rem;color:var(--ink-soft);cursor:pointer;line-height:1}
.modal-card h3{font-size:1.35rem;font-weight:900}
.modal-card p{color:var(--ink-soft);margin-top:8px;font-size:.95rem}
.modal-ch{display:grid;gap:10px;margin-top:20px}
.modal-ch a{display:flex;align-items:center;justify-content:center;text-align:center;gap:10px;padding:14px 16px;border-radius:10px;font-weight:800;border:1.5px solid var(--line)}
.modal-ch a:hover{border-color:var(--brand);color:var(--brand)}
.modal-ch a.primary{background:var(--brand);color:#fff;border-color:var(--brand);justify-content:center}
.modal-ch a.primary:hover{background:var(--brand-deep);color:#fff}
/* carousel (autoscroll) */
.carousel{position:relative;margin-top:20px}
.ctrack{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ctrack::-webkit-scrollbar{display:none}
.ctrack>*{scroll-snap-align:start;flex:0 0 auto}
/* 자동재생 캐러셀은 snap 비활성 → 부드러운 연속 흐름, 떨림 제거 */
.carousel[data-auto] .ctrack{scroll-snap-type:none}
.carousel[data-auto] .ctrack>*{scroll-snap-align:none}
.cbtn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:none;background:#fff;color:var(--ink);box-shadow:0 4px 16px rgba(0,0,0,.14);font-size:1.4rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cbtn:hover{background:var(--brand);color:#fff}
.cbtn.prev{left:-8px}.cbtn.next{right:-8px}
@media(max-width:640px){.cbtn{display:none}}
.pic{border-radius:12px;overflow:hidden;position:relative;background:#f1ece9;border:1px solid var(--line)}
.pic img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.pic:hover img{transform:scale(1.05)}
.pic .cap{position:absolute;left:0;right:0;bottom:0;padding:20px 12px 9px;color:#fff;font-weight:800;font-size:.9rem;background:linear-gradient(transparent,rgba(0,0,0,.62))}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(12,8,7,.9);backdrop-filter:blur(3px);padding:40px 16px}
.lightbox[hidden]{display:none}
.lightbox .lb-fig{max-width:min(1100px,92vw);max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:12px;margin:0}
.lightbox .lb-fig img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox figcaption{color:#f2ece9;font-weight:700;font-size:.92rem;text-align:center}
.lightbox .lb-x{position:absolute;top:18px;right:22px;background:none;border:none;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;opacity:.85}
.lightbox .lb-x:hover{opacity:1}
.lightbox .lb-nav{background:rgba(255,255,255,.12);border:none;color:#fff;width:52px;height:52px;border-radius:50%;font-size:1.8rem;cursor:pointer;flex:0 0 auto;margin:0 10px;transition:background .15s}
.lightbox .lb-nav:hover{background:var(--brand)}
@media(max-width:640px){.lightbox .lb-nav{position:absolute;bottom:20px;width:46px;height:46px}.lightbox .lb-prev{left:24%}.lightbox .lb-next{right:24%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ===== 홈(랜딩) — 교육과정 페이지 하단 CTA 공용 ===== */
/* 분리형: 좌 텍스트 / 우 이미지 그리드 (겹침 없음) */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:min(74vh,600px);overflow:hidden;background:var(--paper)}
.hero-inner{min-width:0;padding:clamp(40px,6vw,76px) 40px clamp(40px,6vw,76px) max(24px,calc((100vw - 1160px)/2 + 24px))}
.hero-bg{position:relative;align-self:stretch;min-width:0;overflow:hidden}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center}
.hero h1{font-size:clamp(1.9rem,4vw,3.1rem);font-weight:900;line-height:1.16}
.hero h1 .nb{white-space:nowrap}
.hero .status{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.9rem;color:var(--ink-soft);margin-bottom:20px}
.hero .status::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(196,27,31,.16);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(196,27,31,0)}}
.hero .sub{margin-top:20px;color:var(--ink-soft);font-size:clamp(1rem,1.7vw,1.16rem);font-weight:500;max-width:34ch}
.tracks-inline{margin-top:16px;font-weight:700;font-size:.95rem;line-height:1.9}.tracks-inline b{color:var(--brand)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
@media(max-width:760px){
 .hero{grid-template-columns:1fr}
 .hero-bg{order:-1;height:36vh;min-height:230px}
 .hero-bg img{object-position:center 28%}
 .hero-inner{padding:32px 24px 38px}
}
.morelink{color:var(--brand);font-weight:800;border-bottom:2px solid var(--brand);padding-bottom:3px}
.trust{background:var(--night);color:#fff}.trust .eyebrow{color:#ff6b6f}.trust h2{color:#fff;max-width:22ch}.trust .lead{color:#cabfb9}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px}
.stat{background:var(--night-2);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:28px 24px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--brand)}
.stat .num{font-size:clamp(2.3rem,5vw,3.2rem);font-weight:900;line-height:1}.stat .num small{font-size:1.25rem;font-weight:800}
.stat .lbl{margin-top:11px;color:#cabfb9;font-weight:700;font-size:.95rem}
.trust .note{margin-top:24px;color:#8a7f79;font-size:.85rem;max-width:80ch}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}}
.track-list{display:grid;grid-template-columns:repeat(2,1fr);margin-top:36px}
.track{padding:24px 4px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.track:nth-child(odd){border-right:1px solid var(--line);padding-right:30px}.track:nth-child(even){padding-left:30px}
.track .tag{font-weight:900;color:var(--brand);font-size:.8rem;white-space:nowrap;border:1.5px solid var(--brand);border-radius:5px;padding:4px 9px;margin-top:3px}
.track h4{font-size:1.1rem;font-weight:800;margin-bottom:5px}.track p{color:var(--ink-soft);font-size:.94rem}
@media(max-width:720px){.track-list{grid-template-columns:1fr}.track,.track:nth-child(odd),.track:nth-child(even){padding:22px 4px;border-right:none}}
.facility{background:var(--mist)}
.subhead{font-weight:900;font-size:1.15rem;margin:44px 0 4px}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 26px 30px;text-align:center;transition:transform .2s,box-shadow .2s}
.tcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(23,17,15,.08)}
.tcard .tphoto{width:148px;height:148px;border-radius:50%;overflow:hidden;margin:0 auto 20px;background:var(--mist);border:1px solid var(--line)}
.tcard .tphoto img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tcard:hover .tphoto img{transform:scale(1.04)}
.tcard .trole{color:var(--brand);font-weight:800;font-size:.9rem}
.tcard .tname{font-size:1.4rem;font-weight:900;margin:3px 0 16px}
.tcard .tcareer{list-style:none;display:grid;gap:8px;text-align:left;max-width:230px;margin:0 auto}
.tcard .tcareer li{position:relative;padding-left:15px;color:var(--ink-soft);font-weight:600;font-size:.9rem}
.tcard .tcareer li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;background:var(--brand);border-radius:2px}
@media(max-width:760px){.tgrid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}}
.fslide{flex-basis:340px;max-width:80vw}.fslide .pic{aspect-ratio:16/11}
.sys-list{margin-top:40px;display:grid}
.sys{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;padding:24px 0;border-top:1px solid var(--line)}
.sys:last-child{border-bottom:1px solid var(--line)}
.sys .idx{font-size:1.4rem;font-weight:900;color:var(--brand);line-height:1;min-width:36px}
.sys h4{font-size:1.12rem;font-weight:800;margin-bottom:5px}.sys p{color:var(--ink-soft);font-size:.95rem;max-width:56ch}
section.works{background:var(--night);color:#fff}section.works .eyebrow{color:#ff6b6f}section.works h2{color:#fff}section.works .lead{color:#cabfb9}
.wslide{flex-basis:250px;max-width:70vw}.wslide .pic{aspect-ratio:3/4;border:1px solid rgba(255,255,255,.1)}
.faqsec details{border-bottom:1px solid var(--line)}
.faqsec summary{list-style:none;cursor:pointer;padding:22px 4px;font-weight:800;font-size:1.03rem;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faqsec summary::-webkit-details-marker{display:none}
.faqsec summary span{color:var(--brand);font-weight:900;font-size:1.4rem;transition:transform .2s}
.faqsec details[open] summary span{transform:rotate(45deg)}
.faqsec details p{padding:0 4px 24px;color:var(--ink-soft);max-width:74ch}
.faq-wrap{margin-top:36px;border-top:1px solid var(--line)}
.loc{background:var(--mist)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px;align-items:start}
.loc-info dl{display:grid;grid-template-columns:84px 1fr;gap:13px 18px;font-size:1rem}
.loc-info dt{color:var(--ink-soft);font-weight:800}.loc-info dd{font-weight:600}
.map-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.map-btns a{border:1.5px solid var(--line);background:#fff;border-radius:7px;padding:11px 16px;font-weight:800;font-size:.9rem}
.map-btns a:hover{border-color:var(--brand);color:var(--brand)}
.map-pic .pic{aspect-ratio:4/3}
@media(max-width:720px){.loc-grid{grid-template-columns:1fr}}
.cta-final{background:var(--brand);color:#fff;text-align:center}.cta-final h2{color:#fff;max-width:24ch;margin:0 auto}
.cta-final p{color:#ffd9da;margin-top:14px;font-weight:600}
.cta-final .channels{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.cta-final .channels a{background:#fff;color:var(--brand);font-weight:800;padding:14px 24px;border-radius:8px}
.cta-final .channels a.dark{background:var(--ink);color:#fff}
.cta-final .channels a:hover{transform:translateY(-2px)}

/* ===== 교육과정 ===== */
.ctabs{position:sticky;top:66px;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.ctabs .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.ctabs .wrap::-webkit-scrollbar{display:none}
.ctabs a{padding:15px 13px;font-weight:800;font-size:.9rem;color:var(--ink-soft);white-space:nowrap;border-bottom:3px solid transparent}
.ctabs a:hover{color:var(--brand)}
.tblock{padding:clamp(48px,7vw,84px) 0;border-bottom:1px solid var(--line)}.tblock:nth-child(even){background:var(--mist)}
.thead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.thead .tag{font-weight:900;color:#fff;background:var(--brand);font-size:.8rem;border-radius:5px;padding:5px 11px}
.tdef{margin-top:14px;font-size:1.1rem;font-weight:600;max-width:64ch;color:var(--ink-soft)}
.tflow{margin-top:30px}.tslide{margin-top:34px}
.tflow h5,.tslide h5{font-size:.82rem;font-weight:800;letter-spacing:.05em;color:var(--brand);margin-bottom:16px}
/* 커리큘럼 흐름 = 가로 스텝(전체폭) */
.flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.flow .step{display:block;padding:18px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;position:relative}
.flow .step::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;background:var(--brand);border-radius:2px}
.flow .n{display:block;font-weight:900;color:var(--brand);font-size:1.05rem;margin-bottom:7px}
.flow .step h4{font-size:1rem;font-weight:800;line-height:1.35}
/* 실기 유형 예시 슬라이드 = 전체폭 */
.cwslide{flex-basis:300px;max-width:82vw}.cwslide .pic{aspect-ratio:4/3;cursor:zoom-in}
@media(max-width:640px){.cwslide{flex-basis:240px}.flow{grid-template-columns:repeat(2,1fr)}}

/* ===== 강사진 ===== */
.person{display:grid;grid-template-columns:210px 1fr;gap:40px;align-items:center;padding:42px 0;border-top:1px solid var(--line)}
.person:first-child{border-top:none;padding-top:8px}
.pphoto{aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:var(--mist);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.pphoto img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.person:hover .pphoto{transform:scale(1.04);box-shadow:0 0 0 5px rgba(196,27,31,.14),0 12px 32px rgba(23,17,15,.12)}
.person:hover .pphoto img{transform:scale(1.05)}
@media(prefers-reduced-motion:reduce){.person:hover .pphoto,.person:hover .pphoto img{transform:none}}
.p-role{font-weight:800;color:var(--brand);font-size:.95rem}.p-name{font-size:1.9rem;font-weight:900;margin:6px 0 18px}
.p-career{display:grid;gap:10px;max-width:52ch;list-style:none}
.p-career li{padding-left:18px;position:relative;color:var(--ink-soft);font-weight:600}
.p-career li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--brand);border-radius:2px}
.why{background:var(--night);color:#fff}.why .eyebrow{color:#ff6b6f}.why h2{color:#fff}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.why-card{background:var(--night-2);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:26px 24px}
.why-card .n{color:var(--brand);font-weight:900;font-size:1.4rem}.why-card h4{color:#fff;font-size:1.1rem;font-weight:800;margin:10px 0 8px}
.why-card p{color:#cabfb9;font-size:.94rem}
@media(max-width:760px){.person{grid-template-columns:1fr;gap:22px;padding:34px 0;text-align:center;justify-items:center}.pphoto{width:180px}.p-career{text-align:left}.why-grid{grid-template-columns:1fr}}

/* ===== 갤러리 허브 ===== */
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px}
.ggrid.works{grid-template-columns:repeat(4,1fr)}
.gitem .pic{aspect-ratio:4/3}.ggrid.works .gitem .pic{aspect-ratio:4/3;cursor:zoom-in}
.ghub{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
.ghub .pic{aspect-ratio:4/3}.ghub h3{font-weight:900;font-size:1.15rem;margin-top:14px}
.ghub p{color:var(--ink-soft);font-size:.92rem;margin-top:4px}
.gsub{font-weight:900;font-size:1.2rem;margin:40px 0 2px}
.gsubdesc{color:var(--ink-soft);font-size:.93rem;margin-bottom:6px}
@media(max-width:820px){.ggrid,.ggrid.works{grid-template-columns:repeat(2,1fr)}.ghub{grid-template-columns:1fr}}

/* ===== 갤러리 허브 (계속) ===== */
.ghrow{padding:8px 0 2px}
.ghrow+.ghrow{border-top:1px solid var(--line);margin-top:30px;padding-top:34px}
.ghrow-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ghrow-head h3{font-size:1.35rem;font-weight:900}
.ghrow-head a{color:var(--brand);font-weight:800;font-size:.9rem;white-space:nowrap}
.ghrow-head a:hover{text-decoration:underline}
.ghrow-desc{color:var(--ink-soft);font-size:.94rem;margin-top:4px}
.ghslide{flex-basis:300px;max-width:76vw}.ghslide .pic{aspect-ratio:4/3}
@media(max-width:520px){.ghslide{flex-basis:240px}}

/* ===== 시설 갤러리 ===== */
.ggrid.fac .gitem .pic img{width:100%;height:100%;object-fit:cover}.ggrid.fac .gitem .pic .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 12px 8px;color:#fff;font-weight:800;font-size:.85rem;background:linear-gradient(transparent,rgba(0,0,0,.6))}

/* ===== FAQ ===== */
.faqcat{margin-bottom:44px}.faqcat h2{font-size:1.25rem;font-weight:900;margin-bottom:14px;color:var(--brand)}
.faq-wrap details{border-bottom:1px solid var(--line)}
.faq-wrap summary{list-style:none;cursor:pointer;padding:20px 4px;font-weight:800;font-size:1.02rem;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq-wrap summary::-webkit-details-marker{display:none}
.faq-wrap summary span{color:var(--brand);font-weight:900;font-size:1.4rem;transition:transform .2s}
.faq-wrap details[open] summary span{transform:rotate(45deg)}
.faq-wrap details p{padding:0 4px 22px;color:var(--ink-soft);max-width:74ch}
.faq-wrap{border-top:1px solid var(--line)}

/* ===== 상담 채널 ===== */
.cchan{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.cchan a{border:1.5px solid var(--line);border-radius:14px;padding:26px 20px;text-align:center;font-weight:800;transition:.15s}
.cchan a:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-2px)}
.cchan a.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.cchan a .big{display:block;font-size:1.1rem;margin-bottom:4px}.cchan a .sm{font-size:.85rem;font-weight:600;opacity:.85}
.cinfo{margin-top:40px;background:var(--mist);border-radius:14px;padding:28px}
.cinfo dl{display:grid;grid-template-columns:96px 1fr;gap:12px 18px}
.cinfo dt{color:var(--ink-soft);font-weight:800}.cinfo dd{font-weight:600}
@media(max-width:720px){.cchan{grid-template-columns:1fr}}

/* ===== 법적 페이지 ===== */
.legal{max-width:820px}.legal h2{font-size:1.15rem;font-weight:900;margin:34px 0 10px}
.legal h3{font-size:1rem;font-weight:800;margin:20px 0 8px}
.legal p{color:var(--ink-soft);margin:8px 0;line-height:1.8}
.legal ul,.legal ol{color:var(--ink-soft);margin:8px 0 8px 20px;line-height:1.8}.legal li{margin:5px 0}
.legal a{color:var(--brand);font-weight:600}
.legal table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.92rem}
.legal th,.legal td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.legal b,.legal strong{color:var(--ink)}
.legal>div{margin-bottom:8px}

/* ===== 교습비 ===== */
.tuition{max-width:860px}
.tuition .intro{color:var(--ink-soft);font-size:1.02rem;line-height:1.8;margin-bottom:8px}
.tclass{margin-top:30px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tclass-h{background:var(--mist);padding:16px 20px;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px}
.tclass-h h3{font-size:1.2rem;font-weight:900}.tclass-h span{color:var(--ink-soft);font-weight:700;font-size:.9rem}
.tclass table{border-collapse:collapse;width:100%}
.tclass th,.tclass td{padding:13px 20px;text-align:left;border-top:1px solid var(--line)}
.tclass th{background:#fff;color:var(--ink-soft);font-weight:800;font-size:.86rem}
.tclass td{font-weight:600}.tclass td b{font-weight:900;color:var(--ink)}
.tclass tbody tr:hover{background:var(--mist)}
.dayb{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:800;color:var(--brand);background:rgba(196,27,31,.08);border:1px solid rgba(196,27,31,.28);border-radius:999px;padding:1px 9px;vertical-align:middle;white-space:nowrap}
.tspec td{background:rgba(196,27,31,.03)}
.tnote{margin-top:30px;background:var(--mist);border-radius:12px;padding:22px 24px}
.tnote ul{margin:0;padding-left:18px;color:var(--ink-soft);line-height:1.9;font-size:.94rem}
.tnote li{margin:3px 0}
.tapply{display:inline-block;margin-top:8px;font-weight:800;color:var(--brand)}
@media(max-width:560px){.tclass th,.tclass td{padding:11px 13px;font-size:.9rem}}

/* ===== 학원 소식 ===== */
.newssec{padding:clamp(38px,5vw,58px) 0;border-bottom:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.sec-head h2{font-size:1.5rem;font-weight:900}.sec-head .eyebrow{color:var(--brand);margin-bottom:6px}
.sec-head a.more{color:var(--brand);font-weight:800;font-size:.9rem;white-space:nowrap}.sec-head a.more:hover{text-decoration:underline}
.bloglist{border-top:2px solid var(--ink)}
.brow{display:flex;align-items:center;gap:16px;padding:20px 6px;border-bottom:1px solid var(--line);transition:background .15s}
.brow:hover{background:var(--mist)}
.brow .cat{font-size:.72rem;font-weight:800;color:var(--brand);background:var(--mist);border-radius:20px;padding:4px 11px;flex:0 0 auto}
.brow .t{font-size:1.08rem;font-weight:700;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow:hover .t{color:var(--brand)}
.brow .date{color:#a89e98;font-size:.88rem;font-weight:600;flex:0 0 auto}
.ig-follow{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:#fff;padding:11px 18px;border-radius:9px;font-weight:800;white-space:nowrap}
.igslide{flex-basis:230px;max-width:70vw}.igslide .pic{aspect-ratio:4/5;border-radius:14px;overflow:hidden}
.igslide .pic img{width:100%;height:100%;object-fit:cover}
.xrow{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--ink);color:#fff;border-radius:16px;padding:24px 28px;flex-wrap:wrap}
.xrow .xl{display:flex;align-items:center;gap:16px}
.xrow .xglyph{width:44px;height:44px;background:#FF0000;border:none;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.xrow .xglyph svg{width:20px;height:20px;fill:#fff}
.xrow .xt b{font-size:1.08rem;font-weight:900;display:block}.xrow .xt span{color:#cabfb9;font-size:.9rem}
.xrow a.xbtn{background:#fff;color:var(--ink);padding:12px 22px;border-radius:9px;font-weight:800;white-space:nowrap}
@media(max-width:820px){.xrow{flex-direction:column;align-items:flex-start}
 .brow{flex-wrap:wrap;gap:6px 12px}.brow .t{white-space:normal;flex-basis:100%;order:2}.brow .date{order:3}}

/* ===== Razor 통합 추가 — 로그인 링크·모바일 로그아웃·준비 중 배지 (개편안 원본에 없음) ===== */
.nav-auth{display:inline-flex;align-items:center;gap:14px;padding-left:18px;border-left:1px solid var(--line);font-size:.85rem}
.nav-auth form{display:inline}
.nav-auth button{background:none;border:none;font:inherit;font-weight:700;color:var(--ink-soft);cursor:pointer;padding:0}
.nav-auth button:hover{color:var(--brand)}
.nav-auth .nav-app{padding:6px 12px;border-radius:999px;background:var(--brand);color:#fff;font-weight:800}
.nav-auth .nav-app:hover{background:var(--brand-deep);color:#fff}
.mobile-menu form{display:block}
.mobile-menu .mm-btn{display:block;width:100%;text-align:left;padding:14px 24px;font:inherit;font-weight:700;background:none;border:none;border-top:1px solid var(--line);cursor:pointer;color:inherit}
.faq-link{display:inline-block;margin-top:8px;color:var(--brand);font-weight:800}
.nempty{text-align:center;padding:40px 0;color:var(--ink-soft);font-size:1.05rem}
.nempty-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.nlist{border-top:2px solid var(--ink)}
.nrow{display:flex;align-items:center;gap:14px;padding:20px 6px;border-bottom:1px solid var(--line);transition:background .15s}
.nrow:hover{background:var(--mist)}.nrow:hover .nt{color:var(--brand)}
.nrow .nt{flex:1 1 auto;min-width:0;font-size:1.05rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nrow .nd{flex:0 0 auto;color:#a89e98;font-size:.88rem;font-weight:600}
.npin{display:inline-block;flex:0 0 auto;font-size:.72rem;font-weight:800;color:#fff;background:var(--brand);border-radius:5px;padding:3px 9px;margin-bottom:8px}
.nrow .npin{margin-bottom:0}
.nmeta{margin-top:12px;color:var(--ink-soft);font-weight:600;font-size:.92rem}
.nbody{white-space:pre-wrap;word-break:break-word;color:var(--ink-soft);line-height:1.9;font-size:1.02rem}
.legal-body{color:var(--ink-soft);line-height:1.8}
.legal-body section{padding:0}
