:root{
  --pine:#1B2A4A;
  --pine-dark:#101A30;
  --ochre:#C9A227;
  --ochre-dark:#96760E;
  --sand:#FAF9F6;
  --sand-deep:#F1EEE6;
  --ink:#22262E;
  --ink-soft:#5B6270;
  --line:#E3E1D8;
  --white:#FFFFFF;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Pretendard', -apple-system, sans-serif;
  background:var(--sand);
  color:var(--ink);
  font-size:18px;
  line-height:1.7;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1140px; margin:0 auto; padding:0 24px;}

/* Header */
header{
  position:sticky; top:0; z-index:100;
  background:var(--sand); border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 0;}
.logo{font-size:20px; font-weight:700; color:var(--pine); display:flex; align-items:center; gap:10px;}
.logo-img{width:40px; height:40px; object-fit:contain; flex-shrink:0;}
nav{display:flex; gap:32px;}
nav > div{position:relative;}
nav > div > a{font-weight:600; font-size:16px; padding:8px 0; display:block;}
.submenu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:10px 0; min-width:160px; box-shadow:0 8px 20px rgba(0,0,0,0.06);
  opacity:0; visibility:hidden; transition:opacity .15s ease;
}
nav > div:hover .submenu{opacity:1; visibility:visible;}
.submenu a{display:block; padding:9px 18px; font-size:15px; color:var(--ink-soft);}
.submenu a:hover{background:var(--sand); color:var(--pine);}
.header-cta{
  background:var(--pine); color:var(--white); padding:11px 22px;
  border-radius:999px; font-weight:700; font-size:15px; white-space:nowrap;
}
@media(max-width:860px){ nav{display:none;} }

/* 모바일 메뉴 */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:46px; height:46px; background:transparent; border:1px solid var(--line);
  border-radius:12px; cursor:pointer; padding:0 12px; flex-shrink:0;
}
.nav-toggle span{
  display:block; height:2px; width:100%; background:var(--pine); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav{
  display:none; flex-direction:column; background:var(--white);
  border-top:1px solid var(--line); padding:8px 0 18px;
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  padding:16px 24px; font-size:18px; font-weight:700; color:var(--pine-dark);
  border-bottom:1px solid var(--line);
}
.mobile-nav a.sub{
  font-size:16px; font-weight:600; color:var(--ink-soft); padding-left:44px;
}
.mobile-nav a.sub::before{content:'– '; }
.mobile-nav a:active{background:var(--sand-deep);}
.mobile-nav .mobile-cta{
  margin:18px 24px 0; background:var(--pine); color:var(--white);
  text-align:center; border-radius:999px; border-bottom:none; padding:15px 0;
}
@media(max-width:860px){ nav.mobile-nav{display:none;} nav.mobile-nav.open{display:flex;} .nav-toggle{display:flex;} }
@media(max-width:520px){ .header-cta{display:none;} .logo{font-size:17px;} .logo-img{width:34px; height:34px;} }

/* Hero */
.hero{position:relative; min-height:660px; display:flex; align-items:center; overflow:hidden; padding:60px 0;}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-bg-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%;
  opacity:0; transition:opacity 1s ease;
}
/* 야외 스트레칭 사진: 다리·하체까지 보이도록 크롭 지점을 아래로 */
.hero-bg-img.crop-mid{object-position:center 50%;}
/* 요가매트 사진: 얼굴만 크게 보이지 않도록 상체+매트가 함께 보이게 */
.hero-bg-img.crop-low{object-position:center 44%;}
.hero-bg-img.active{opacity:1;}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(16,26,48,0.55), rgba(16,26,48,0.75));
}
.hero .wrap{position:relative; z-index:2; max-width:640px;}
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.5); color:var(--white);
  width:46px; height:46px; border-radius:50%; font-size:22px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.hero-arrow:hover{background:rgba(255,255,255,0.3);}
.hero-arrow.prev{left:24px;}
.hero-arrow.next{right:24px;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; color:var(--ochre);
  font-weight:700; font-size:14px; letter-spacing:.04em; margin-bottom:20px;
}
.eyebrow::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--ochre);}
.hero h1{
  font-size:44px; line-height:1.35; font-weight:800; color:var(--white);
  margin-bottom:22px;
}
.hero p{font-size:18px; color:#E7E9EE; margin-bottom:32px;}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{
  background:var(--ochre); color:var(--white); padding:15px 30px; border-radius:999px;
  font-weight:700; font-size:16px; display:inline-block;
}
.btn-secondary{
  background:transparent; color:var(--white); padding:15px 30px; border-radius:999px;
  font-weight:700; font-size:16px; border:2px solid var(--white); display:inline-block;
}
@media(max-width:640px){ .hero h1{font-size:32px;} .hero{min-height:440px;} .hero-arrow{width:38px; height:38px; font-size:18px;} }

/* Page banner (subpages) */
.page-banner{background:var(--pine); color:var(--white); padding:60px 0; text-align:center;}
.page-banner .eyebrow{color:var(--ochre); justify-content:center;}
.page-banner .eyebrow::before{background:var(--ochre);}
.page-banner h1{font-size:34px; font-weight:800;}
.page-banner p{color:#C9D2E0; margin-top:12px; font-size:17px;}

/* Section shared */
section{padding:70px 0;}
section.tight-top{padding-top:0;}
.section-head{margin-bottom:40px; max-width:640px;}
.section-head .eyebrow{margin-bottom:12px;}
.section-head h2{font-size:30px; font-weight:800; color:var(--pine-dark); margin-bottom:10px;}
.section-head p{color:var(--ink-soft); font-size:17px;}

/* About cards */
.about{background:var(--white);}
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.about-card{
  background:var(--sand); border-radius:16px; padding:32px 26px; border:1px solid var(--line);
  transition:transform .15s ease, box-shadow .15s ease; text-align:center;
}
.about-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(27,42,74,0.1);}
.about-num{
  width:56px; height:56px; border-radius:50%; background:var(--white); border:2px solid var(--pine);
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
}
.about-num svg{width:26px; height:26px; stroke:var(--pine);}
.about-card h3{font-size:19px; font-weight:700; margin-bottom:10px; color:var(--pine-dark);}
.about-card p{font-size:16px; color:var(--ink-soft); margin-bottom:18px;}
.about-card .link{
  display:inline-block; font-weight:700; color:var(--white); font-size:15px;
  background:var(--pine); padding:9px 22px; border-radius:999px;
}
.about-card .link:hover{background:var(--pine-dark);}
@media(max-width:860px){ .card-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .card-grid{grid-template-columns:1fr;} }

/* Content blocks (subpages) */
.content-block{max-width:760px; margin:0 auto;}
.content-block h2{font-size:24px; font-weight:800; color:var(--pine-dark); margin:36px 0 14px;}
.content-block h2:first-child{margin-top:0;}
.content-block p{color:var(--ink-soft); margin-bottom:12px;}
.info-table{width:100%; border-collapse:collapse; margin-top:16px;}
.info-table th, .info-table td{
  text-align:left; padding:14px 16px; border-bottom:1px solid var(--line); font-size:16px;
}
.info-table th{width:140px; color:var(--pine-dark); font-weight:700; background:var(--sand);}
.course-card{
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  padding:19px 24px; margin-bottom:10px; cursor:pointer;
  transition:box-shadow .15s ease, border-color .15s ease;
}
.course-card:hover{box-shadow:0 6px 18px rgba(27,42,74,0.07); border-color:#D2CEC0;}
.course-card.open{border-color:var(--ochre); box-shadow:0 6px 18px rgba(201,162,39,0.12);}
.course-row{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.course-card h3{font-size:19px; font-weight:800; color:var(--pine-dark); margin:0; line-height:1.45;}
.course-chevron{
  font-size:0; flex-shrink:0;
  width:28px; height:28px; border-radius:50%; background:var(--sand-deep);
  display:flex; align-items:center; justify-content:center;
  transition:transform .2s ease, background .15s ease;
}
.course-chevron::after{
  content:''; width:8px; height:8px; margin-top:-3px;
  border-right:2px solid var(--ochre-dark);
  border-bottom:2px solid var(--ochre-dark);
  transform:rotate(45deg);
}
.course-card:hover .course-chevron{background:#E7E2D4;}
.course-card.open .course-chevron{transform:rotate(180deg);}
.course-desc{
  color:var(--ink-soft); font-size:16px; margin-top:0; max-height:0; overflow:hidden;
  transition:max-height .25s ease, margin-top .25s ease, padding-top .25s ease;
}
/* .content-block p 의 margin-bottom:12px 이 닫힌 카드에 유령 여백을 만들던 문제 차단 */
.course-card .course-desc{margin-bottom:0;}
.course-card.open .course-desc{
  max-height:800px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line);
}
.course-badge{
  display:inline-block; background:var(--sand-deep); color:var(--ochre-dark);
  font-size:13px; font-weight:700; padding:4px 12px; border-radius:999px; margin-bottom:12px;
}

/* ===== 사업 활동 (정보센터) ===== */
.prog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.prog-card{
  background:var(--white); border:1px solid var(--line); border-radius:18px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease;
}
.prog-card:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(27,42,74,0.09);}

/* 사진 슬라이더 */
.prog-media{
  position:relative; width:100%; aspect-ratio:4/3;
  overflow:hidden; background:var(--sand-deep);
}
.ps-track{
  display:flex; width:100%; height:100%;
  transition:transform .45s cubic-bezier(.4,0,.2,1);
}
.ps-slide{min-width:100%; height:100%;}
.ps-slide img{width:100%; height:100%; object-fit:cover; cursor:zoom-in;}
.ps-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:38px; height:38px; border-radius:50%; border:none;
  background:rgba(16,26,48,0.5); color:var(--white); font-size:20px; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .2s ease, background .15s ease;
}
.prog-media:hover .ps-arrow{opacity:1;}
.ps-arrow:hover{background:rgba(16,26,48,0.78);}
.ps-arrow.prev{left:10px;}
.ps-arrow.next{right:10px;}
.ps-dots{
  position:absolute; left:0; right:0; bottom:12px; z-index:3;
  display:flex; justify-content:center; gap:6px;
}
.ps-dot{
  width:8px; height:8px; padding:0; border:none; border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,0.6); box-shadow:0 0 3px rgba(0,0,0,0.3);
  transition:width .2s ease, background .2s ease;
}
.ps-dot.on{background:var(--white); width:20px;}
.ps-empty{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:6px;
  background:linear-gradient(140deg, var(--sand-deep), #E4E0D3);
  color:var(--ink-soft); font-size:14px; font-weight:600;
}
.prog-tags{
  position:absolute; left:12px; top:12px; z-index:3;
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
}
.prog-term{
  background:var(--ochre); color:var(--white);
  font-size:13px; font-weight:800; padding:6px 13px; border-radius:999px;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
.prog-status{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:800; padding:6px 13px; border-radius:999px;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
.prog-status::before{
  content:''; width:7px; height:7px; border-radius:50%; background:currentColor; flex-shrink:0;
}
/* 진행 중 */
.prog-status.on{background:#1F7A54; color:#FFFFFF;}
.prog-status.on::before{animation:statusPulse 1.6s ease-in-out infinite;}
/* 종료 */
.prog-status.done{background:rgba(255,255,255,0.92); color:var(--ink-soft);}
@keyframes statusPulse{
  0%,100%{opacity:1; transform:scale(1);}
  50%{opacity:.35; transform:scale(.8);}
}
@media(prefers-reduced-motion:reduce){ .prog-status.on::before{animation:none;} }
@media(hover:none){ .ps-arrow{opacity:1;} }

.prog-body{padding:24px 26px 26px; display:flex; flex-direction:column; flex:1;}
.prog-body h3{font-size:20px; font-weight:800; color:var(--pine-dark); margin-bottom:12px; line-height:1.45;}
.prog-meta{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.prog-meta span{
  background:var(--sand-deep); color:var(--ochre-dark);
  font-size:13px; font-weight:700; padding:5px 12px; border-radius:999px;
}
.prog-desc{color:var(--ink-soft); font-size:16px; line-height:1.75; flex:1;}
/* 대표 후기 */
.prog-review{
  margin-top:18px; padding:15px 17px; background:var(--sand-deep);
  border-radius:10px; border-left:3px solid var(--ochre); border-radius:0 10px 10px 0;
}
.rv-text{font-size:15px; color:var(--ink); line-height:1.7; margin-bottom:8px;}
.rv-who{font-size:13px; color:var(--ink-soft); font-weight:600;}

.prog-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px;}
.prog-open, .prog-rv-btn{
  font-family:inherit; font-weight:700; font-size:15px;
  padding:11px 22px; border-radius:999px; cursor:pointer; transition:all .15s ease;
}
.prog-open{background:var(--pine); color:var(--white); border:none;}
.prog-open:hover{background:var(--pine-dark);}
.prog-rv-btn{background:transparent; color:var(--pine); border:1px solid var(--pine);}
.prog-rv-btn:hover{background:var(--pine); color:var(--white);}

/* 후기 전체보기 팝업 */
.rv-modal{
  position:fixed; inset:0; z-index:600; display:none;
  background:rgba(10,16,30,0.6); padding:24px; overflow-y:auto;
}
.rv-modal.open{display:block;}
.rv-box{
  background:var(--white); border-radius:18px; max-width:680px;
  margin:40px auto; padding:34px 36px 38px; position:relative;
}
.rv-box h3{font-size:22px; font-weight:800; color:var(--pine-dark); margin:0 44px 6px 0; line-height:1.5;}
.rv-box .rv-sub{font-size:14px; color:var(--ink-soft); padding-bottom:20px; border-bottom:1px solid var(--line);}
.rv-list{list-style:none; margin-top:6px;}
.rv-list li{padding:20px 0; border-bottom:1px solid var(--line);}
.rv-list li:last-child{border-bottom:none;}
.rv-list .rv-text{font-size:16px; line-height:1.8; white-space:pre-wrap; word-break:break-word;}
.rv-close{
  position:absolute; right:26px; top:26px;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--sand); color:var(--pine-dark); font-size:22px; line-height:1; cursor:pointer;
}
.rv-close:hover{background:var(--sand-deep);}
@media(max-width:640px){
  .rv-modal{padding:0;}
  .rv-box{margin:0; border-radius:0; min-height:100vh; padding:28px 22px 40px;}
  .rv-box h3{font-size:19px;}
}
@media(max-width:860px){ .prog-grid{grid-template-columns:1fr;} }

/* ===== 사진 갤러리 라이트박스 ===== */
.lb{
  position:fixed; inset:0; z-index:500; display:none;
  background:rgba(10,16,30,0.94); padding:24px;
}
.lb.open{display:flex; flex-direction:column;}
.lb-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:16px; color:var(--white); margin-bottom:14px; flex-shrink:0;
}
.lb-head h4{font-size:19px; font-weight:800; line-height:1.5;}
.lb-head p{font-size:14px; color:#B9C3D4; margin-top:4px;}
.lb-close{
  background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.4);
  color:var(--white); width:44px; height:44px; border-radius:50%;
  font-size:22px; line-height:1; cursor:pointer; flex-shrink:0;
}
.lb-close:hover{background:rgba(255,255,255,0.28);}
.lb-stage{flex:1; position:relative; overflow:hidden; min-height:0;}
.lb-track{
  display:flex; width:100%; height:100%;
  transition:transform .45s cubic-bezier(.4,0,.2,1);
}
.lb-slide{
  min-width:100%; height:100%;
  display:flex; align-items:center; justify-content:center; padding:0 8px;
}
.lb-slide img{max-width:100%; max-height:100%; object-fit:contain; border-radius:10px;}
.lb-slide .lb-missing{
  color:#B9C3D4; font-size:15px; text-align:center; line-height:2;
  border:1px dashed rgba(255,255,255,0.35); border-radius:14px; padding:60px 40px;
}
.lb-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.5);
  color:var(--white); width:52px; height:52px; border-radius:50%;
  font-size:26px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lb-arrow:hover{background:rgba(255,255,255,0.3);}
.lb-arrow.prev{left:0;}
.lb-arrow.next{right:0;}
.lb-foot{flex-shrink:0; margin-top:14px; text-align:center; color:#B9C3D4; font-size:14px; font-weight:600;}
@media(max-width:640px){
  .lb{padding:16px;}
  .lb-arrow{width:42px; height:42px; font-size:20px;}
  .lb-head h4{font-size:16px;}
}

/* ===== 게시글 상세보기 모달 ===== */
.post-modal{
  position:fixed; inset:0; z-index:600; display:none;
  background:rgba(10,16,30,0.6); padding:24px; overflow-y:auto;
}
.post-modal.open{display:block;}
.post-box{
  background:var(--white); border-radius:18px; max-width:720px;
  margin:40px auto; padding:36px 38px 40px; position:relative;
}
.post-box h3{
  font-size:23px; font-weight:800; color:var(--pine-dark);
  line-height:1.5; margin:0 44px 10px 0;
}
.post-date{font-size:15px; color:var(--ink-soft); padding-bottom:18px; border-bottom:1px solid var(--line);}
.post-body{
  margin-top:22px; font-size:17px; line-height:1.85; color:var(--ink);
  white-space:pre-wrap; word-break:break-word;
}
.post-body .post-none{color:var(--ink-soft); font-size:16px;}
.post-close{
  position:absolute; right:26px; top:26px;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--sand); color:var(--pine-dark); font-size:22px; line-height:1; cursor:pointer;
}
.post-close:hover{background:var(--sand-deep);}
@media(max-width:640px){
  .post-modal{padding:0;}
  .post-box{margin:0; border-radius:0; min-height:100vh; padding:28px 22px 40px;}
  .post-box h3{font-size:20px;}
}

/* ===== 개인정보 수집 동의 ===== */
.consent-box{
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:18px 20px; margin-bottom:18px;
}
.consent-box h4{font-size:15px; font-weight:800; color:var(--pine-dark); margin-bottom:10px;}
.consent-box dl{font-size:14px; color:var(--ink-soft); line-height:1.8;}
.consent-box dl div{display:flex; gap:8px;}
.consent-box dt{font-weight:700; color:var(--ink); flex-shrink:0; min-width:88px;}
.consent-check{display:flex; align-items:flex-start; gap:10px; margin-top:14px; cursor:pointer;}
.consent-check input{
  width:22px; height:22px; margin-top:2px; flex-shrink:0; accent-color:var(--ochre); cursor:pointer;
}
.consent-check span{font-size:16px; font-weight:700; color:var(--pine-dark); line-height:1.5;}
.consent-check .req{color:#a33; font-weight:800;}

/* CTA */
.cta{background:var(--pine); color:var(--white); text-align:center;}
.cta h2{font-size:30px; font-weight:800; margin-bottom:14px;}
.cta p{color:#D9E3DC; margin-bottom:30px; font-size:17px;}
.cta .btn-primary{background:var(--ochre);}

/* Apply form */
.apply{background:var(--white);}
.apply-box{
  background:var(--sand); border:1px solid var(--line); border-radius:20px;
  padding:40px; max-width:560px; margin:0 auto;
}
.field{margin-bottom:20px;}
.field label{display:block; font-weight:700; font-size:15px; margin-bottom:8px; color:var(--pine-dark);}
.field label .optional{font-weight:500; font-size:13px; color:var(--ink-soft);}
.field input, .field select, .field textarea{
  width:100%; padding:14px 16px; border-radius:10px; border:1px solid var(--line);
  font-size:16px; font-family:inherit; background:var(--white); color:var(--ink);
}
.field textarea{resize:vertical; min-height:140px; line-height:1.7;}
.field ::placeholder{color:#A7ABB4; opacity:1;}
.field textarea::placeholder{line-height:1.7;}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:2px solid var(--ochre); border-color:var(--ochre);
}
.submit-btn{
  width:100%; padding:16px; border:none; border-radius:999px; background:var(--ochre);
  color:var(--white); font-weight:800; font-size:17px; cursor:pointer;
}
.submit-btn:disabled{opacity:.6; cursor:default;}
.form-msg{margin-top:14px; font-size:14px; text-align:center;}
.form-msg.ok{color:var(--pine-dark);}
.form-msg.err{color:#a33;}

/* Footer */
footer{background:var(--pine-dark); color:#CFE0D6; padding:50px 0 30px;}
.footer-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; margin-bottom:30px;}
.footer-brand{font-size:18px; font-weight:800; color:var(--white); margin-bottom:10px;}
.footer-info{font-size:15px; line-height:1.9; color:#AEC4B7;}
.footer-links{display:flex; gap:26px; flex-wrap:wrap;}
.footer-links a{font-size:15px; color:#CFE0D6;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.12); padding-top:20px; font-size:13px; color:#8CA79A;}

/* Floating contact */
.float-contact{
  position:fixed; right:22px; bottom:26px; z-index:200;
  display:flex; flex-direction:column; gap:10px;
}
.float-contact a{
  width:52px; height:52px; border-radius:50%; background:var(--white);
  border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  font-size:22px; box-shadow:0 6px 16px rgba(0,0,0,0.1); color:var(--pine-dark);
}

/* ===== 진흥원 소개 ===== */
.intro-nav{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  padding:22px 0; border-bottom:1px solid var(--line); background:var(--white);
  position:sticky; top:73px; z-index:90;
}
.intro-nav a{
  font-size:15px; font-weight:700; color:var(--ink-soft);
  padding:9px 20px; border-radius:999px; border:1px solid var(--line);
  transition:all .15s ease;
}
.intro-nav a:hover{background:var(--pine); color:var(--white); border-color:var(--pine);}

/* 인사말 */
.greeting-lead{
  font-size:24px; font-weight:800; color:var(--pine-dark);
  line-height:1.65; margin-bottom:28px; letter-spacing:-0.02em;
}
.greeting-body p{font-size:17px; line-height:1.95; color:var(--ink); margin-bottom:22px;}
.greeting-sign{
  margin-top:34px; padding-top:26px; border-top:1px solid var(--line);
  text-align:right; font-size:17px; font-weight:600; color:var(--ink-soft);
}
.greeting-sign strong{font-size:20px; font-weight:800; color:var(--pine-dark); margin:0 2px;}

/* 브랜드 */
.slogan-box{
  background:var(--pine); color:var(--white); border-radius:20px;
  padding:52px 40px; text-align:center; margin-bottom:44px;
}
.slogan-box .sl-label{
  font-size:13px; font-weight:800; letter-spacing:0.16em;
  color:var(--ochre); text-transform:uppercase; margin-bottom:18px;
}
.slogan-box .sl-main{
  font-size:29px; font-weight:800; line-height:1.55; letter-spacing:-0.02em; margin-bottom:22px;
}
.slogan-box .sl-values{
  font-size:16px; font-weight:700; color:#D6DEEA; letter-spacing:0.06em;
}
.value-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-bottom:44px;}
.value-card{
  background:var(--white); border:1px solid var(--line);
  border-radius:14px; padding:26px 28px; position:relative;
}
.value-card .v-step{
  position:absolute; right:22px; top:22px;
  font-size:13px; font-weight:800; color:var(--line);
}
.value-card h4{font-size:19px; font-weight:800; color:var(--pine-dark); margin-bottom:4px;}
.value-card .v-en{
  font-size:12px; font-weight:800; letter-spacing:0.12em;
  color:var(--ochre-dark); text-transform:uppercase; margin-bottom:12px;
}
.value-card p{font-size:16px; color:var(--ink-soft); line-height:1.7; margin:0;}
.mv-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
.mv-card{
  background:var(--sand-deep); border-radius:14px; padding:28px 30px;
  border-top:3px solid var(--ochre);
}
.mv-card h4{
  font-size:13px; font-weight:800; letter-spacing:0.16em;
  color:var(--ochre-dark); text-transform:uppercase; margin-bottom:14px;
}
.mv-card p{font-size:17px; line-height:1.8; color:var(--ink); margin:0; font-weight:500;}

/* 조직도 */
.org-head{
  background:var(--pine); color:var(--white); border-radius:12px;
  padding:18px 26px; text-align:center; font-size:19px; font-weight:800;
  max-width:280px; margin:0 auto 10px;
}
.org-stem{width:1px; height:24px; background:var(--line); margin:0 auto 10px;}
.org-list{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
.org-item{
  background:var(--white); border:1px solid var(--line);
  border-radius:12px; padding:20px 22px; border-left:3px solid var(--ochre);
}
.org-item h4{font-size:17px; font-weight:800; color:var(--pine-dark); margin-bottom:7px;}
.org-item p{font-size:15px; color:var(--ink-soft); line-height:1.65; margin:0;}
.org-sub{
  margin-top:12px; padding:12px 14px; background:var(--sand-deep);
  border-radius:9px; font-size:14px; color:var(--ink-soft); line-height:1.6;
}
.org-sub b{color:var(--pine-dark); font-weight:800;}

@media(max-width:760px){
  .intro-nav{top:69px; padding:14px 0; gap:6px;}
  .intro-nav a{font-size:14px; padding:8px 15px;}
  .greeting-lead{font-size:20px;}
  .slogan-box{padding:38px 24px;}
  .slogan-box .sl-main{font-size:22px;}
  .value-grid, .mv-grid, .org-list{grid-template-columns:1fr;}
}

/* ===== 사업소개 ===== */
.biz-lead{
  font-size:21px; font-weight:800; color:var(--pine-dark);
  line-height:1.6; letter-spacing:-0.02em;
  padding-left:16px; border-left:3px solid var(--ochre); margin-bottom:24px;
}
.biz-list{
  list-style:none; margin-top:26px; display:grid;
  grid-template-columns:repeat(2,1fr); gap:10px;
}
.biz-list li{
  background:var(--white); border:1px solid var(--line); border-radius:10px;
  padding:15px 18px 15px 42px; font-size:16px; color:var(--ink); position:relative;
}
.biz-list li::before{
  content:''; position:absolute; left:18px; top:23px;
  width:7px; height:7px; border-radius:50%; background:var(--ochre);
}
.about .biz-list li{background:var(--sand);}
.course-group{
  font-size:15px; font-weight:800; color:var(--ochre-dark);
  letter-spacing:0.02em; margin:28px 0 12px;
  display:flex; align-items:center; gap:10px;
}
.course-group::after{content:''; flex:1; height:1px; background:var(--line);}
.course-group:first-of-type{margin-top:0;}
@media(max-width:760px){
  .biz-lead{font-size:18px;}
  .biz-list{grid-template-columns:1fr;}
}

/* ===== 자료실 ===== */
.arc-tabs{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  padding:22px 0; border-bottom:1px solid var(--line); background:var(--white);
  position:sticky; top:73px; z-index:90;
}
.arc-tab{
  font-family:inherit; font-size:15px; font-weight:700; color:var(--ink-soft);
  padding:9px 20px; border-radius:999px; border:1px solid var(--line);
  background:transparent; cursor:pointer; transition:all .15s ease;
  display:inline-flex; align-items:center; gap:7px;
}
.arc-tab:hover{background:var(--sand-deep);}
.arc-tab.on{background:var(--pine); color:var(--white); border-color:var(--pine);}

.arc-panel{display:none;}
.arc-panel.on{display:block;}

.doc-list{list-style:none; border-top:2px solid var(--pine-dark);}
.doc-list li{
  display:flex; align-items:center; gap:18px;
  padding:20px 6px; border-bottom:1px solid var(--line);
}
.doc-main{flex:1; min-width:0;}
.doc-title{font-size:17px; font-weight:700; color:var(--pine-dark); line-height:1.55;}
.doc-note{font-size:14px; color:var(--ink-soft); margin-top:5px; line-height:1.6;}
.doc-date{font-size:14px; color:var(--ink-soft); white-space:nowrap;}
.doc-open{
  flex-shrink:0; background:transparent; color:var(--pine); border:1px solid var(--line);
  font-family:inherit; font-weight:700; font-size:13px;
  padding:7px 16px; border-radius:999px; cursor:pointer; white-space:nowrap;
  transition:all .15s ease;
}
.doc-open:hover{background:var(--pine); color:var(--white); border-color:var(--pine);}
.doc-empty{padding:40px 0; text-align:center; color:var(--ink-soft); font-size:16px;}

.arc-guide{
  margin-top:34px; padding:20px 24px; background:var(--sand-deep);
  border-radius:12px; font-size:15px; color:var(--ink-soft); line-height:1.8;
}
.arc-guide b{color:var(--pine-dark);}

@media(max-width:760px){
  .arc-tabs{top:69px; padding:14px 0; gap:6px;}
  .arc-tab{font-size:14px; padding:8px 15px;}
  .doc-list li{flex-wrap:wrap; gap:10px; padding:18px 4px;}
  .doc-date{order:3;}
  .doc-open{order:4; margin-left:auto;}
  .doc-main{flex:1 1 100%;}
}

/* 내용 준비 중 안내 */
.prep-note{
  padding:70px 0; text-align:center;
  color:var(--ink-soft); font-size:17px;
  border:1px dashed var(--line); border-radius:14px; background:var(--white);
}

/* ===== 프로그램 상세 ===== */
.pg-media{
  position:relative; width:100%; aspect-ratio:16/9; max-height:440px;
  overflow:hidden; background:var(--sand-deep); border-radius:16px; margin-bottom:34px;
}
.pg-media .ps-track{display:flex; width:100%; height:100%;
  transition:transform .45s cubic-bezier(.4,0,.2,1);}
.pg-media .ps-slide{min-width:100%; height:100%;}
.pg-media .ps-slide img{width:100%; height:100%; object-fit:cover;}
.pg-media .ps-arrow{opacity:0;}
.pg-media:hover .ps-arrow{opacity:1;}
@media(hover:none){ .pg-media .ps-arrow{opacity:1;} }

.pg-sub{
  font-size:14px; font-weight:800; letter-spacing:0.04em;
  color:var(--ochre-dark); margin-bottom:10px;
}
.stat-box{
  background:var(--pine); color:var(--white); border-radius:16px;
  padding:30px 34px; margin:30px 0;
}
.stat-box h4{
  font-size:13px; font-weight:800; letter-spacing:0.12em;
  color:var(--ochre); text-transform:uppercase; margin-bottom:14px;
}
.stat-box p{font-size:18px; line-height:1.85; margin:0; font-weight:600;}
.stat-box .note{font-size:14px; color:#B9C3D4; font-weight:400; margin-top:12px;}

.data-table{width:100%; border-collapse:collapse; margin:26px 0; font-size:16px;}
.data-table thead th{
  background:var(--pine-dark); color:var(--white); font-weight:700;
  padding:13px 14px; text-align:left; font-size:15px;
}
.data-table td, .data-table tbody th{
  padding:13px 14px; border-bottom:1px solid var(--line); vertical-align:top;
}
.data-table tbody th{text-align:left; font-weight:700; color:var(--pine-dark); white-space:nowrap;}
.data-table td.num{white-space:nowrap;}
.data-table .up{color:#1F7A54; font-weight:700;}
.data-table tr:last-child td, .data-table tr:last-child th{border-bottom:none;}
.table-note{font-size:14px; color:var(--ink-soft); line-height:1.7; margin-top:-14px; margin-bottom:26px;}

.pg-block-title{
  font-size:21px; font-weight:800; color:var(--pine-dark);
  margin:38px 0 14px;
}
@media(max-width:760px){
  .pg-media{aspect-ratio:4/3; margin-bottom:26px;}
  .stat-box{padding:24px 22px;}
  .stat-box p{font-size:16px;}
  .data-table{font-size:15px;}
  .data-table thead th, .data-table td, .data-table tbody th{padding:11px 10px;}
}

/* ===== 프로그램 상세 ===== */
.pg-media{
  position:relative; width:100%; aspect-ratio:16/9; overflow:hidden;
  background:var(--sand-deep); border-radius:16px; margin-bottom:34px;
}
.pg-media:hover .ps-arrow{opacity:1;}
.pg-lead{
  font-size:21px; font-weight:800; color:var(--pine-dark); line-height:1.6;
  letter-spacing:-0.02em; padding-left:16px; border-left:3px solid var(--ochre);
  margin-bottom:24px;
}
.pg-sub{font-size:15px; font-weight:800; color:var(--ochre-dark); margin-bottom:8px; letter-spacing:0.02em;}

.stat-box{
  background:var(--pine); color:var(--white); border-radius:16px;
  padding:32px 34px; margin:34px 0;
}
.stat-box .st-label{
  font-size:13px; font-weight:800; letter-spacing:0.14em;
  color:var(--ochre); text-transform:uppercase; margin-bottom:14px;
}
.stat-box .st-main{font-size:19px; font-weight:800; line-height:1.7; margin-bottom:10px;}
.stat-box .st-note{font-size:14px; color:#B9C3D4; line-height:1.7;}

.data-table{width:100%; border-collapse:collapse; margin:26px 0; font-size:16px;}
.data-table thead th{
  background:var(--pine-dark); color:var(--white); font-weight:700;
  padding:13px 14px; text-align:left; font-size:15px;
}
.data-table td, .data-table tbody th{
  padding:14px; border-bottom:1px solid var(--line); vertical-align:top; text-align:left;
}
.data-table tbody th{font-weight:700; color:var(--pine-dark); white-space:nowrap;}
.data-table tbody tr:nth-child(even){background:var(--sand-deep);}
.data-table .up{color:#1F7A54; font-weight:700; white-space:nowrap;}
.table-note{font-size:14px; color:var(--ink-soft); line-height:1.75; margin-top:-10px;}
.table-scroll{overflow-x:auto;}

.rec-list{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:22px 0 30px;}
.rec-list li{
  background:var(--white); border:1px solid var(--line); border-radius:10px;
  padding:15px 18px 15px 42px; font-size:16px; color:var(--ink); position:relative;
}
.rec-list li::before{
  content:''; position:absolute; left:18px; top:23px;
  width:7px; height:7px; border-radius:50%; background:var(--ochre);
}
.about .rec-list li{background:var(--sand);}

.op-info{
  background:var(--sand-deep); border-radius:12px; padding:22px 26px; margin-top:8px;
}
.about .op-info{background:var(--white); border:1px solid var(--line);}
.op-info dl div{display:flex; gap:14px; padding:7px 0; font-size:16px; line-height:1.7;}
.op-info dt{font-weight:800; color:var(--pine-dark); flex-shrink:0; min-width:96px;}
.op-info dd{color:var(--ink-soft);}

@media(max-width:760px){
  .pg-lead{font-size:18px;}
  .rec-list{grid-template-columns:1fr;}
  .stat-box{padding:26px 22px;}
  .stat-box .st-main{font-size:17px;}
  .op-info dl div{flex-direction:column; gap:2px;}
  .data-table{font-size:15px;}
}

/* ===== 진흥원 개요 ===== */
.ov-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px;}
.ov-card{
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  padding:26px 24px; border-top:3px solid var(--ochre);
}
.ov-card h4{
  font-size:13px; font-weight:800; letter-spacing:0.14em;
  color:var(--ochre-dark); text-transform:uppercase; margin-bottom:12px;
}
.ov-card p{font-size:16px; color:var(--ink); line-height:1.7; margin:0; font-weight:600;}

/* ===== 원장 소개 ===== */
.ceo-top{display:grid; grid-template-columns:200px 1fr; gap:34px; align-items:start; margin-bottom:36px;}
.ceo-photo{
  width:100%; aspect-ratio:3/4; border-radius:14px; overflow:hidden;
  background:var(--sand-deep); display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:8px;
  color:var(--ink-soft); font-size:14px; font-weight:600;
}
.ceo-photo img{width:100%; height:100%; object-fit:cover;}
.ceo-name{font-size:30px; font-weight:800; color:var(--pine-dark); letter-spacing:-0.02em;}
.ceo-role{font-size:16px; font-weight:700; color:var(--ochre-dark); margin:6px 0 18px;}
.ceo-quote{
  font-size:18px; font-weight:700; color:var(--pine-dark); line-height:1.7;
  padding-left:16px; border-left:3px solid var(--ochre);
}
.cv-block{margin-bottom:28px;}
.cv-block h4{
  font-size:13px; font-weight:800; letter-spacing:0.14em; color:var(--ochre-dark);
  text-transform:uppercase; margin-bottom:12px;
  display:flex; align-items:center; gap:10px;
}
.cv-block h4::after{content:''; flex:1; height:1px; background:var(--line);}
.cv-list{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:8px;}
.cv-list li{
  font-size:16px; color:var(--ink); line-height:1.65;
  padding:9px 0 9px 20px; position:relative;
}
.cv-list li::before{
  content:''; position:absolute; left:4px; top:18px;
  width:5px; height:5px; border-radius:50%; background:var(--ochre);
}
.cv-list.one-col{grid-template-columns:1fr;}

/* ===== 주요 실적 ===== */
.rec-year{
  font-size:15px; font-weight:800; color:var(--ochre-dark);
  margin:30px 0 14px; display:flex; align-items:center; gap:10px;
}
.rec-year::after{content:''; flex:1; height:1px; background:var(--line);}
.rec-year:first-of-type{margin-top:0;}
.work-list{list-style:none; display:grid; gap:12px;}
.work-item{
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:22px 24px; border-left:3px solid var(--pine);
}
.about .work-item{background:var(--sand);}
.work-item h4{font-size:18px; font-weight:800; color:var(--pine-dark); margin-bottom:6px;}
.work-item .wk-place{font-size:15px; color:var(--ochre-dark); font-weight:700; margin-bottom:10px;}
.work-item p{font-size:16px; color:var(--ink-soft); line-height:1.7; margin:0;}

@media(max-width:760px){
  .ov-grid{grid-template-columns:1fr;}
  .ceo-top{grid-template-columns:1fr; gap:22px;}
  .ceo-photo{max-width:200px;}
  .cv-list{grid-template-columns:1fr;}
  .ceo-name{font-size:25px;}
}
