/* ============================================================
   교육의정원 · 공통 스타일시트
   그레이지 & 세이지 팔레트
   모든 페이지가 이 파일 하나를 씁니다.
   ============================================================ */

:root{
  --bg:      #F1F0EA;   /* 기본 배경 (그레이지) */
  --bg-alt:  #F8F7F4;   /* 교차 섹션 */
  --card:    #FFFFFF;   /* 카드 */
  --block:   #4E6446;   /* 세이지 블록 (헤더·히어로·CTA·푸터) */
  --sage-lt: #9CAF94;   /* 장식용 연한 세이지 */
  --label:   #5A7150;   /* 밝은 배경 위 라벨 */
  --tag:     #E8EDE5;   /* 태그 배경 */
  --on-lbl:  #CFDBC9;   /* 블록 위 라벨 */
  --on-txt:  #D6DED2;   /* 블록 위 본문 */
  --on-dim:  #AFBCA8;   /* 블록 위 흐린 텍스트 */
  --ink:     #3A3A34;   /* 본문 */
  --sub:     #4A4D44;   /* 준본문 */
  --muted:   #63665C;   /* 보조 텍스트 */
  --line:    #DEDCD2;   /* 구분선 */
  --dark:    #3E5138;   /* 버튼 hover */
}

*, *::before, *::after{ box-sizing:border-box; margin:0; padding:0 }

body{
  font-family:'Pretendard','Apple SD Gothic Neo',sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.75;
  word-break:keep-all;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block }
a{ color:inherit }
ul{ list-style:none }

/* 화면에는 안 보이고 스크린리더만 읽는 텍스트 */
.sr-only{
  position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ============================================================
   헤더
   ============================================================ */

.eg-head{ position:sticky; top:0; z-index:100; background:var(--block) }

.eg-head__in{
  max-width:1080px; margin:0 auto; padding:0 20px;
  height:68px; display:flex; align-items:center; gap:20px;
}

.eg-head__logo{ display:block; flex-shrink:0; text-decoration:none }
.eg-head__logo img{ height:32px; width:auto }

.eg-head__nav{ display:flex; align-items:center; gap:28px; margin-left:auto }
.eg-head__nav a{
  color:rgba(255,255,255,.82); text-decoration:none;
  font-size:15px; font-weight:500; padding:6px 0;
  transition:color .18s ease;
}
.eg-head__nav a:hover{ color:#fff }
.eg-head__nav a[aria-current="page"]{ color:#fff; font-weight:700 }

.eg-head__cta{
  background:#fff !important; color:var(--block) !important;
  padding:10px 20px; border-radius:999px;
  font-size:14px; font-weight:700; white-space:nowrap;
}
.eg-head__cta:hover{ background:var(--bg) !important }

.eg-head a:focus-visible,
.eg-head button:focus-visible{ outline:3px solid var(--on-lbl); outline-offset:3px; border-radius:4px }

.eg-head__burger{
  display:none; background:none; border:0; cursor:pointer;
  width:42px; height:42px; padding:9px; margin-left:auto;
}
.eg-head__burger span{
  display:block; height:2px; background:#fff; border-radius:2px;
  margin:5px 0; transition:.22s;
}
.eg-head.is-open .eg-head__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.eg-head.is-open .eg-head__burger span:nth-child(2){ opacity:0 }
.eg-head.is-open .eg-head__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }

@media (max-width:860px){
  .eg-head__burger{ display:block }
  .eg-head__nav{
    display:none;
    position:fixed; top:68px; left:0; right:0; bottom:0;
    background:var(--block); flex-direction:column; align-items:stretch;
    gap:0; padding:12px 20px 20px;
    border-top:1px solid rgba(255,255,255,.16);
    overflow-y:auto;
  }
  .eg-head.is-open .eg-head__nav{ display:flex }
  .eg-head__nav a{ padding:16px 0; font-size:17px }
  .eg-head__cta{ margin-top:14px; text-align:center; padding:15px 20px }
  body.nav-open{ overflow:hidden }
}

/* ============================================================
   홈 · 히어로
   ============================================================ */

.eg-mainhero{
  background-color:var(--block);
  background-image:
    linear-gradient(rgba(48,62,42,.75), rgba(48,62,42,.75)),
    url('images/hero.webp');
  background-size:cover;
  background-position:center 55%;
  background-repeat:no-repeat;
  padding:110px 20px 96px;
  text-align:center;
}

.eg-mainhero__mark{ margin:0 auto 26px; color:var(--on-lbl); font-size:26px; line-height:1 }

.eg-mainhero__title{
  font-size:84px; font-weight:900;
  letter-spacing:-.035em; color:#fff;
  line-height:1.18; margin:0 0 26px;
}

.eg-mainhero__subtitle{
  max-width:560px; margin:0 auto 42px;
  font-size:16.5px; font-weight:400;
  color:rgba(255,255,255,.88); line-height:1.85;
}
.eg-mainhero__subtitle strong{ font-weight:700; color:#fff }

.eg-mainhero__button{
  display:inline-block;
  background-color:#fff; color:var(--block);
  font-size:16px; font-weight:700; letter-spacing:-.01em;
  padding:17px 42px; border-radius:999px; text-decoration:none;
  transition:background-color .2s ease, transform .2s ease;
}
.eg-mainhero__button:hover{ background-color:var(--bg); transform:translateY(-2px) }
.eg-mainhero__button:focus-visible{ outline:3px solid var(--on-lbl); outline-offset:3px }

@media (max-width:1024px){
  .eg-mainhero{ padding:92px 20px 80px }
  .eg-mainhero__title{ font-size:70px }
}
@media (max-width:768px){
  .eg-mainhero{ padding:74px 20px 64px }
  .eg-mainhero__mark{ font-size:23px; margin-bottom:20px }
  .eg-mainhero__title{ font-size:58px; letter-spacing:-.04em; line-height:1.22; margin-bottom:22px }
  .eg-mainhero__subtitle{ font-size:15px; line-height:1.8; margin-bottom:34px }
}
@media (max-width:640px){
  .eg-mainhero{ background-image:none; background-color:var(--block) }
}
@media (max-width:400px){
  .eg-mainhero{ padding:62px 16px 54px }
  .eg-mainhero__title{ font-size:46px }
  .eg-mainhero__subtitle{ font-size:14px }
  .eg-mainhero__button{ display:block; padding:16px 24px; font-size:15px }
}

/* ============================================================
   홈 · 3가지 이유
   ============================================================ */

.eg-reasons{ background-color:var(--bg); padding:90px 20px; text-align:center }
.eg-reasons__eyebrow{ font-size:13px; font-weight:600; letter-spacing:2px; color:var(--label); margin:0 0 12px }
.eg-reasons__title{ font-size:32px; font-weight:900; color:var(--block); margin:0 0 56px }
.eg-reasons__grid{ display:flex; justify-content:center; gap:48px; max-width:960px; margin:0 auto; flex-wrap:wrap }
.eg-reasons__item{ flex:1 1 240px; max-width:280px }
.eg-reasons__badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background-color:var(--tag); color:var(--block);
  font-size:16px; font-weight:700; margin:0 auto 20px;
}
.eg-reasons__item-title{ font-size:18px; font-weight:700; color:var(--block); margin:0 0 12px }
.eg-reasons__item-desc{ font-size:14px; color:var(--muted); line-height:1.7 }
.eg-reasons__more{
  display:inline-block; margin-top:48px;
  font-size:14px; font-weight:600; color:var(--block);
  text-decoration:none; border-bottom:1px solid var(--sage-lt); padding-bottom:2px;
  transition:border-color .18s ease, color .18s ease;
}
.eg-reasons__more::after{ content:' →' }
.eg-reasons__more:hover{ color:var(--dark); border-color:var(--block) }
.eg-reasons__more:focus-visible{ outline:3px solid var(--block); outline-offset:4px }

@media (max-width:768px){
  .eg-reasons{ padding:60px 20px }
  .eg-reasons__title{ font-size:24px; font-weight:800; margin-bottom:40px }
  .eg-reasons__grid{ gap:36px }
}

/* ============================================================
   홈 · 수강생 후기
   ============================================================ */

.eg-reviews3{ background-color:var(--bg-alt); padding:72px 20px }
.eg-reviews3__eyebrow{ text-align:center; font-size:13px; font-weight:600; letter-spacing:2px; color:var(--label); margin:0 0 12px }
.eg-reviews3__title{ text-align:center; font-size:30px; font-weight:900; color:var(--block); margin:0 0 40px }
.eg-reviews3__lead{ text-align:center; font-size:14px; color:var(--muted); margin:-28px 0 36px }
.eg-reviews3__list{ max-width:800px; margin:0 auto }
.eg-reviews3__row{
  display:flex; align-items:center; gap:32px;
  padding:28px 0; border-top:1px solid var(--line);
}
.eg-reviews3__row:last-child{ border-bottom:1px solid var(--line) }
.eg-reviews3__row--reverse{ flex-direction:row-reverse }
.eg-reviews3__shot{
  flex-shrink:0; width:168px;
  border-radius:14px; overflow:hidden;
  background-color:var(--card); border:1px solid var(--line);
}
.eg-reviews3__shot img{ width:100%; height:auto }
.eg-reviews3__body{ flex:1 }
.eg-reviews3__quote{ font-size:34px; line-height:1; font-family:Georgia,serif; color:var(--sage-lt); margin-bottom:6px }
.eg-reviews3__text{ font-size:16px; color:var(--ink); line-height:1.75; margin:0 0 12px }
.eg-reviews3__meta{ font-size:13px; color:var(--muted) }
.eg-reviews3__name{ color:var(--block); font-weight:700 }
.eg-reviews3__dot{ margin:0 8px; color:#A8A89F }
.eg-reviews3__more{
  display:block; text-align:center; width:fit-content;
  margin:32px auto 0;
  font-size:14px; font-weight:600; color:var(--block);
  text-decoration:none; border-bottom:1px solid var(--sage-lt); padding-bottom:2px;
}
.eg-reviews3__more:hover{ color:var(--dark); border-color:var(--block) }
.eg-reviews3__more:focus-visible{ outline:3px solid var(--block); outline-offset:4px }

@media (max-width:768px){
  .eg-reviews3{ padding:48px 16px }
  .eg-reviews3__title{ font-size:20px; font-weight:800; margin-bottom:28px }
  .eg-reviews3__row,
  .eg-reviews3__row--reverse{
    flex-direction:row; align-items:flex-start; gap:14px; padding:20px 0;
  }
  .eg-reviews3__shot{ width:88px; border-radius:10px }
  .eg-reviews3__quote{ font-size:22px; margin-bottom:4px }
  .eg-reviews3__text{ font-size:13px; line-height:1.6; margin-bottom:10px }
  .eg-reviews3__meta{ font-size:11px }
}

/* ============================================================
   홈 · 상담 CTA
   ============================================================ */

.eg-cta{ background-color:var(--block); padding:100px 20px; text-align:center }
.eg-cta__eyebrow{ font-size:13px; font-weight:600; letter-spacing:2px; color:var(--on-lbl); margin:0 0 16px }
.eg-cta__title{ font-size:32px; font-weight:900; color:#fff; margin:0 0 20px }
.eg-cta__subtitle{ font-size:15px; color:var(--on-txt); line-height:1.8; margin:0 0 32px }
.eg-cta__badges{ display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-bottom:40px }
.eg-cta__badge{
  font-size:13px; color:#fff;
  background-color:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.34);
  border-radius:20px; padding:8px 16px;
}
.eg-cta__buttons{ display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-bottom:24px }
.eg-cta__btn{
  display:inline-block; font-size:15px; font-weight:600;
  padding:15px 32px; border-radius:8px; text-decoration:none;
}
.eg-cta__btn--fill{ background-color:#fff; color:var(--block) }
.eg-cta__btn--fill:hover{ background-color:var(--bg) }
.eg-cta__btn--outline{ background-color:transparent; color:#fff; border:1px solid rgba(255,255,255,.6) }
.eg-cta__btn--outline:hover{ background-color:rgba(255,255,255,.1) }
.eg-cta__btn:focus-visible{ outline:3px solid var(--on-lbl); outline-offset:3px }
.eg-cta__hours{ font-size:13px; color:#C3CCBE }

@media (max-width:768px){
  .eg-cta{ padding:64px 16px }
  .eg-cta__title{ font-size:24px; font-weight:800 }
  .eg-cta__buttons{ flex-direction:column; align-items:center }
  .eg-cta__btn{ width:100%; max-width:320px; padding:15px 20px }
}

/* ============================================================
   푸터
   ============================================================ */

.eg-footer{ background-color:var(--block); padding:28px 20px 14px }
.eg-footer__top{
  display:flex; justify-content:space-between; gap:20px;
  max-width:1000px; margin:0 auto 16px; flex-wrap:wrap;
}
.eg-footer__brand{ flex:1 1 220px }
.eg-footer__logo{ font-size:16px; font-weight:700; color:#fff; margin-bottom:6px }
.eg-footer__desc{ font-size:12px; color:var(--on-txt); line-height:1.5 }
.eg-footer__info{ flex:1 1 280px; font-size:12px; color:var(--on-txt); line-height:1.6 }
.eg-footer__info span{ display:inline-block; width:90px; color:var(--on-dim) }
.eg-footer__contact{ flex:1 1 200px }
.eg-footer__contact-label{ font-size:12px; color:var(--on-dim); margin:0 0 4px }
.eg-footer__phone{ font-size:18px; font-weight:700; color:#fff; margin:0 0 4px }
.eg-footer__hours{ font-size:11px; color:var(--on-txt) }
.eg-footer__links{
  display:flex; justify-content:center; gap:20px;
  padding:10px 0; border-top:1px solid rgba(255,255,255,.16);
  max-width:1000px; margin:0 auto; flex-wrap:wrap;
}
.eg-footer__links a{ font-size:11px; color:#DDE3D9; text-decoration:none }
.eg-footer__links a:hover{ color:#fff; text-decoration:underline }
.eg-footer__links a:focus-visible{ outline:2px solid var(--on-lbl); outline-offset:3px }
.eg-footer__copyright{ text-align:center; font-size:11px; color:var(--on-dim); margin:10px 0 0 }

@media (max-width:768px){
  .eg-footer__top{ flex-direction:column; gap:14px }
  .eg-footer__brand, .eg-footer__info, .eg-footer__contact{ flex:none }
  .eg-footer__links{ gap:12px }
}

/* ============================================================
   소개 페이지 (/about)
   ============================================================ */

.eg-about-hero{ background-color:var(--bg-alt); padding:70px 20px 60px; text-align:center }
.eg-about-hero__breadcrumb{ font-size:12px; color:var(--muted); margin:0 0 16px }
.eg-about-hero__title{ font-size:36px; font-weight:900; color:var(--block); margin:0 0 12px }
.eg-about-hero__subtitle{ font-size:15px; color:var(--sub) }

.eg-about-greeting{ background-color:var(--bg); padding:90px 20px; text-align:center }
.eg-about-greeting__eyebrow{ font-size:13px; font-weight:600; letter-spacing:2px; color:var(--label); margin:0 0 12px }
.eg-about-greeting__title{ font-size:28px; font-weight:900; color:var(--block); margin:0 0 32px }
.eg-about-greeting__text{
  max-width:620px; margin:0 auto;
  font-size:15px; color:var(--sub); line-height:1.9; text-align:left;
}

.eg-about-values{ background-color:var(--bg-alt); padding:90px 20px; text-align:center }
.eg-about-values__eyebrow{ font-size:13px; font-weight:600; letter-spacing:2px; color:var(--label); margin:0 0 12px }
.eg-about-values__title{ font-size:30px; font-weight:900; color:var(--block); margin:0 0 56px }
.eg-about-values__grid{ display:flex; justify-content:center; gap:40px; max-width:960px; margin:0 auto; flex-wrap:wrap }
.eg-about-values__item{
  background-color:var(--card); border:1px solid var(--line);
  border-radius:12px; padding:36px 24px; flex:1 1 240px; max-width:280px;
}
.eg-about-values__num{ font-size:20px; font-weight:800; color:var(--label); margin-bottom:12px }
.eg-about-values__item-title{ font-size:17px; font-weight:700; color:var(--block); margin:0 0 12px }
.eg-about-values__item-desc{ font-size:13px; color:var(--muted); line-height:1.7 }

@media (max-width:768px){
  .eg-about-hero{ padding:50px 20px 40px }
  .eg-about-hero__title{ font-size:26px; font-weight:800 }
  .eg-about-greeting, .eg-about-values{ padding:56px 20px }
  .eg-about-greeting__title, .eg-about-values__title{ font-size:22px; font-weight:800 }
  .eg-about-values__grid{ gap:20px }
}

/* ============================================================
   움직임 최소화 설정을 켠 사용자
   ============================================================ */

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important }
  .eg-mainhero__button:hover{ transform:none }
}

/* ============================================================
   홈 · 교육정보 섹션
   ============================================================ */

.eg-home{ line-height:1.75 }
.eg-home p{ margin:0 }
.eg-home h2{ margin:0; font-weight:400 }
.eg-home ul{ margin:0; padding:0; list-style:none }

.eg-home .egh-wrap{ max-width:1080px; margin:0 auto; padding:0 20px }
.eg-home .egh-block{ padding:86px 0; background:var(--bg-alt) }

.eg-home .egh-eyebrow{
  display:inline-block; font-size:12px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--block); margin-bottom:14px;
}
.eg-home .egh-h2{
  font-weight:900; font-size:34px; line-height:1.38;
  letter-spacing:-.025em; color:var(--block);
}
.eg-home .egh-lead{ margin-top:14px; font-size:16px; color:var(--muted) }

.eg-home .egh-index{ margin-top:44px }
.eg-home .egh-index li{
  display:flex; align-items:baseline; gap:32px;
  padding:28px 0; border-bottom:1px solid var(--line);
}
.eg-home .egh-index li:first-child{ border-top:1px solid var(--line) }
.eg-home .egh-name{
  flex:0 0 210px; font-weight:800; font-size:25px;
  line-height:1.4; color:var(--block);
}
.eg-home .egh-body{ flex:1 1 auto }
.eg-home .egh-desc{ display:block; font-size:16px; line-height:1.65; color:var(--sub) }
.eg-home .egh-tags{ display:block; margin-top:7px; font-size:14px; line-height:1.65; color:var(--muted) }

.eg-home .egh-more{
  display:inline-block; margin-top:36px; padding-bottom:3px;
  border-bottom:2px solid var(--label);
  font-size:16px; font-weight:700; color:var(--block); text-decoration:none;
  transition:border-color .18s ease, color .18s ease;
}
.eg-home .egh-more::after{ content:' →' }
.eg-home .egh-more:hover{ color:var(--dark); border-color:var(--sage-lt) }
.eg-home .egh-more:focus-visible{ outline:3px solid var(--block); outline-offset:4px }

@media (max-width:860px){
  .eg-home .egh-block{ padding:62px 0 }
  .eg-home .egh-h2{ font-size:27px }
  .eg-home .egh-index li{ gap:22px }
  .eg-home .egh-name{ flex-basis:170px; font-size:22px }
}
@media (max-width:640px){
  .eg-home .egh-block{ padding:54px 0 }
  .eg-home .egh-h2{ font-size:24px; font-weight:800; line-height:1.45; letter-spacing:-.02em }
  .eg-home .egh-lead{ font-size:15px }
  .eg-home .egh-index{ margin-top:32px }
  .eg-home .egh-index li{ display:block; padding:22px 0 }
  .eg-home .egh-name{ display:block; font-size:21px; margin-bottom:8px }
  .eg-home .egh-desc{ font-size:15px }
  .eg-home .egh-tags{ font-size:13.5px }
  .eg-home .egh-more{ margin-top:28px; font-size:15px }
}
@media (max-width:400px){
  .eg-home .egh-wrap{ padding:0 16px }
  .eg-home .egh-h2{ font-size:22px }
}

/* ============================================================
   교육정보 페이지 (/info)
   ============================================================ */

.eg-info{
  --eg-tag: #E8EDE5;
  line-height:1.75; color:var(--ink);
}
.eg-info p{ margin:0 }
.eg-info h1, .eg-info h2, .eg-info h3{ margin:0; font-weight:400 }
.eg-info ul{ margin:0; padding:0; list-style:none }

.eg-info .eg-wrap{ max-width:1080px; margin:0 auto; padding:0 20px }
.eg-info .eg-block{ padding:84px 0 }
.eg-info .eg-block--tint{ background:var(--bg-alt) }

.eg-info .eg-eyebrow{
  display:inline-block; font-size:12px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--label); margin-bottom:14px;
}
.eg-info .eg-h2{
  font-weight:900; font-size:34px; line-height:1.35;
  letter-spacing:-.025em; color:var(--block);
}
.eg-info .eg-lead{ margin-top:14px; font-size:16px; color:var(--muted) }

/* 페이지 헤더 */
.eg-info .eg-hero{
  background:var(--bg-alt); padding:76px 0 68px;
  border-bottom:1px solid var(--line); text-align:left;
}
.eg-info .eg-hero h1{ font-weight:900; font-size:48px; line-height:1.25; color:var(--block) }
.eg-info .eg-hero .eg-lead{ max-width:620px; font-size:17px; color:var(--sub) }

/* 진단 */
.eg-info .eg-radio{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.eg-info .eg-chips{ display:flex; flex-wrap:wrap; gap:10px; margin:30px 0 26px }
.eg-info .eg-chips label{
  display:inline-block; padding:11px 20px;
  border:1.5px solid var(--line); border-radius:999px; background:var(--card);
  font-size:15px; font-weight:600; color:var(--muted); cursor:pointer;
  transition:border-color .18s ease, color .18s ease, background-color .18s ease;
}
.eg-info .eg-chips label:hover{ border-color:var(--sage-lt); color:var(--block) }

.eg-info .eg-panel{
  display:none; background:var(--card);
  border:1px solid var(--line); border-left:4px solid var(--label);
  border-radius:4px; padding:30px 32px;
}
.eg-info .eg-panel h3{ font-size:19px; font-weight:700; color:var(--block); margin-bottom:10px }
.eg-info .eg-panel p{ font-size:15.5px; color:var(--sub) }
.eg-info .eg-panel .eg-math{
  margin-top:18px; padding-top:18px; border-top:1px dashed var(--line);
  font-size:14.5px; line-height:2; color:var(--muted); font-weight:500;
}
.eg-info .eg-panel .eg-math b{
  font-size:23px; line-height:1; font-weight:800; letter-spacing:-.02em;
  color:var(--block); margin:0 3px; vertical-align:baseline;
}

.eg-info #eg-s1:checked ~ .eg-chips label[for="eg-s1"],
.eg-info #eg-s2:checked ~ .eg-chips label[for="eg-s2"],
.eg-info #eg-s3:checked ~ .eg-chips label[for="eg-s3"],
.eg-info #eg-s4:checked ~ .eg-chips label[for="eg-s4"]{
  background:var(--label); border-color:var(--label); color:#fff;
}
.eg-info #eg-s1:focus-visible ~ .eg-chips label[for="eg-s1"],
.eg-info #eg-s2:focus-visible ~ .eg-chips label[for="eg-s2"],
.eg-info #eg-s3:focus-visible ~ .eg-chips label[for="eg-s3"],
.eg-info #eg-s4:focus-visible ~ .eg-chips label[for="eg-s4"]{
  outline:3px solid var(--block); outline-offset:2px;
}
.eg-info #eg-s1:checked ~ .eg-panels .eg-panel--1,
.eg-info #eg-s2:checked ~ .eg-panels .eg-panel--2,
.eg-info #eg-s3:checked ~ .eg-panels .eg-panel--3,
.eg-info #eg-s4:checked ~ .eg-panels .eg-panel--4{ display:block }

/* 4가지 분야 */
.eg-info .eg-tracks{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:44px }
.eg-info .eg-track{ background:var(--card); border:1px solid var(--line); border-radius:6px; padding:34px 32px 32px }
.eg-info .eg-track-tag{
  display:inline-block; font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--block); background:var(--eg-tag);
  padding:5px 10px; border-radius:3px; margin-bottom:16px;
}
.eg-info .eg-track h3{ font-weight:800; font-size:25px; color:var(--block); margin-bottom:12px }
.eg-info .eg-track > p{ font-size:15px; color:var(--muted); margin-bottom:20px }
.eg-info .eg-track li{ position:relative; padding-left:20px; font-size:15px; color:var(--sub); margin-bottom:15px }
.eg-info .eg-track li .eg-li-t{ display:block; font-size:15px; line-height:1.6; color:var(--ink) }
.eg-info .eg-track li .eg-li-d{ display:block; margin-top:2px; font-size:14px; line-height:1.6; color:var(--muted) }
.eg-info .eg-track li::before{
  content:''; position:absolute; left:2px; top:9px;
  width:7px; height:7px; border-radius:50%; background:var(--sage-lt);
}
.eg-info .eg-track li strong{ color:var(--block); font-weight:700 }
.eg-info .eg-note{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--line);
  font-size:13.5px; color:var(--muted); line-height:1.65;
}

/* 진행 절차 */
.eg-info .eg-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px }
.eg-info .eg-step{ position:relative; padding-top:26px }
.eg-info .eg-step::before{
  content:''; position:absolute; top:0; left:0; right:0;
  height:3px; background:var(--line);
}
.eg-info .eg-step:first-child::before{ background:var(--label) }
.eg-info .eg-step-num{
  font-weight:800; font-size:15px; color:var(--label);
  letter-spacing:.08em; display:block; margin-bottom:8px;
}
.eg-info .eg-step h3{ font-size:17px; font-weight:700; color:var(--block); margin-bottom:8px }
.eg-info .eg-step p{ font-size:14.5px; color:var(--muted) }

/* FAQ */
.eg-info .eg-faq{ margin-top:40px; border-top:1px solid var(--line) }
.eg-info .eg-faq details{ border-bottom:1px solid var(--line); background:var(--card) }
.eg-info .eg-faq summary{
  list-style:none; cursor:pointer; padding:24px 46px 24px 4px;
  position:relative; font-size:16.5px; font-weight:700; color:var(--block);
}
.eg-info .eg-faq summary::-webkit-details-marker{ display:none }
.eg-info .eg-faq summary::after{
  content:''; position:absolute; right:12px; top:50%;
  width:10px; height:10px; margin-top:-6px;
  border-right:2px solid var(--label); border-bottom:2px solid var(--label);
  transform:rotate(45deg); transition:transform .22s ease;
}
.eg-info .eg-faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-2px }
.eg-info .eg-faq summary:focus-visible{ outline:3px solid var(--block); outline-offset:-3px }
.eg-info .eg-faq-body{ padding:0 46px 26px 4px; font-size:15.5px; color:var(--sub) }

/* CTA */
.eg-info .eg-cta{ background:var(--block); padding:76px 0; text-align:center }
.eg-info .eg-cta h2{ font-weight:900; font-size:32px; line-height:1.4; color:#fff }
.eg-info .eg-cta p{ margin-top:14px; font-size:16px; color:var(--on-txt) }
.eg-info .eg-btns{ display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:32px }
.eg-info .eg-btn{
  display:inline-block; padding:16px 38px; border-radius:999px;
  font-size:16px; font-weight:700; text-decoration:none;
  transition:transform .18s ease, background-color .18s ease;
}
.eg-info .eg-btn--solid{ background:#fff; color:var(--block) }
.eg-info .eg-btn--solid:hover{ background:var(--bg); transform:translateY(-2px) }
.eg-info .eg-btn--ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4) }
.eg-info .eg-btn--ghost:hover{ background:rgba(255,255,255,.1); transform:translateY(-2px) }
.eg-info .eg-btn:focus-visible{ outline:3px solid var(--on-lbl); outline-offset:3px }

@media (max-width:860px){
  .eg-info .eg-block{ padding:60px 0 }
  .eg-info .eg-hero{ padding:56px 0 48px }
  .eg-info .eg-hero h1{ font-size:34px }
  .eg-info .eg-h2{ font-size:26px }
  .eg-info .eg-tracks{ grid-template-columns:1fr; gap:16px }
  .eg-info .eg-steps{ grid-template-columns:repeat(2,1fr); gap:26px 18px }
  .eg-info .eg-track{ padding:28px 24px }
  .eg-info .eg-panel{ padding:24px 22px }
  .eg-info .eg-cta h2{ font-size:25px }
  .eg-info .eg-btn{ padding:15px 30px; font-size:15px }
}
@media (max-width:640px){
  .eg-info .eg-hero h1 br,
  .eg-info .eg-cta h2 br{ display:none }
  .eg-info .eg-hero h1{ font-size:30px; font-weight:800; line-height:1.35; letter-spacing:-.02em }
  .eg-info .eg-hero .eg-lead{ font-size:15.5px }
  .eg-info .eg-h2{ font-size:24px; font-weight:800; line-height:1.45; letter-spacing:-.02em }
  .eg-info .eg-lead{ font-size:15px }
  .eg-info .eg-panel h3{ font-size:18px; line-height:1.5 }
  .eg-info .eg-panel p{ font-size:15px }
  .eg-info .eg-panel .eg-math{ font-size:14px; line-height:1.95 }
  .eg-info .eg-panel .eg-math b{ font-size:20px }
  .eg-info .eg-track h3{ font-size:22px; line-height:1.45 }
  .eg-info .eg-faq summary{ font-size:15.5px; line-height:1.55; padding-right:40px }
  .eg-info .eg-faq-body{ font-size:15px; padding-right:40px }
  .eg-info .eg-cta{ padding:60px 0 }
  .eg-info .eg-cta h2{ font-size:24px; font-weight:800; line-height:1.45; letter-spacing:-.02em }
  .eg-info .eg-cta p{ font-size:15px }
}
@media (max-width:520px){
  .eg-info .eg-steps{ grid-template-columns:1fr }
  .eg-info .eg-chips label{ padding:10px 16px; font-size:14px }
  .eg-info .eg-btns{ flex-direction:column }
  .eg-info .eg-btn{ width:100% }
}
@media (max-width:400px){
  .eg-info .eg-wrap{ padding:0 16px }
  .eg-info .eg-hero h1{ font-size:27px }
  .eg-info .eg-h2{ font-size:22px }
  .eg-info .eg-cta h2{ font-size:22px }
  .eg-info .eg-track{ padding:26px 20px }
}


/* ============================================================
   교육후기 페이지 (/review)
   ============================================================ */

.eg-rv-hero{ background:var(--bg-alt); padding:70px 20px 60px; text-align:center; border-bottom:1px solid var(--line) }
.eg-rv-hero__breadcrumb{ font-size:12px; color:var(--muted); margin:0 0 16px }
.eg-rv-hero__title{ font-size:36px; font-weight:900; color:var(--block); margin:0 0 12px }
.eg-rv-hero__subtitle{ font-size:15px; color:var(--sub) }

.eg-rv{ padding:72px 20px; background:var(--bg) }
.eg-rv__wrap{ max-width:900px; margin:0 auto }

.eg-rv__note{
  background:var(--card); border:1px solid var(--line);
  border-left:4px solid var(--sage-lt); border-radius:10px;
  padding:26px 30px; margin-bottom:44px;
}
.eg-rv__note p{ max-width:34em }
.eg-rv__note-lead{
  font-size:16px; font-weight:700; color:var(--block);
  line-height:1.6; margin-bottom:10px;
}
.eg-rv__note > p:not([class]){
  font-size:15px; color:var(--sub); line-height:1.85;
}
.eg-rv__note-sub{
  margin-top:18px; padding-top:16px;
  border-top:1px solid var(--line);
  font-size:13.5px; color:var(--muted); line-height:1.7;
}

@media (max-width:768px){
  .eg-rv__note{ padding:20px 22px; margin-bottom:30px; border-radius:8px }
  .eg-rv__note-lead{ font-size:15px }
  .eg-rv__note > p:not([class]){ font-size:14px; line-height:1.8 }
  .eg-rv__note-sub{ font-size:13px; margin-top:14px; padding-top:13px }
}

.eg-rv__item{
  display:flex; gap:32px; align-items:flex-start;
  padding:36px 0; border-top:1px solid var(--line);
}
.eg-rv__item:last-child{ border-bottom:1px solid var(--line) }

.eg-rv__shot{
  flex-shrink:0; width:200px;
  border-radius:14px; overflow:hidden;
  background:var(--card); border:1px solid var(--line);
}
.eg-rv__shot img{ width:100%; height:auto }

.eg-rv__body{ flex:1; min-width:0 }
.eg-rv__tag{
  display:inline-block; font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--block); background:var(--tag);
  padding:5px 10px; border-radius:3px; margin-bottom:14px;
}
.eg-rv__title{ font-size:20px; font-weight:800; color:var(--block); margin:0 0 12px; line-height:1.45 }
.eg-rv__text{ font-size:15.5px; color:var(--sub); line-height:1.8; margin:0 0 16px }
.eg-rv__meta{ font-size:13px; color:var(--muted) }
.eg-rv__meta b{ color:var(--block); font-weight:700 }
.eg-rv__dot{ margin:0 8px; color:#A8A89F }

@media (max-width:768px){
  .eg-rv-hero{ padding:50px 20px 40px }
  .eg-rv-hero__title{ font-size:26px; font-weight:800 }
  .eg-rv{ padding:48px 16px }
  .eg-rv__item{ gap:16px; padding:26px 0 }
  .eg-rv__shot{ width:110px; border-radius:10px }
  .eg-rv__title{ font-size:17px }
  .eg-rv__text{ font-size:14px; line-height:1.7 }
  .eg-rv__meta{ font-size:12px }
  .eg-rv__note{ padding:15px 18px; font-size:13px; margin-bottom:28px }
}
@media (max-width:480px){
  .eg-rv__item{ flex-direction:column; gap:18px }
  .eg-rv__shot{ width:100%; max-width:240px; margin:0 auto }
}


/* ============================================================
   상담신청 페이지 (/contact)
   ============================================================ */

.eg-ct-hero{ background:var(--bg-alt); padding:70px 20px 60px; text-align:center; border-bottom:1px solid var(--line) }
.eg-ct-hero__breadcrumb{ font-size:12px; color:var(--muted); margin:0 0 16px }
.eg-ct-hero__title{ font-size:36px; font-weight:900; color:var(--block); margin:0 0 12px }
.eg-ct-hero__subtitle{ font-size:15px; color:var(--sub) }

.eg-ct{ background:var(--bg); padding:72px 20px }
.eg-ct__wrap{
  max-width:1080px; margin:0 auto;
  display:grid; grid-template-columns:1.45fr 1fr; gap:44px; align-items:start;
}

.eg-ct__h2{ font-size:26px; font-weight:900; color:var(--block); margin:0 0 12px; line-height:1.4 }
.eg-ct__lead{ font-size:15px; color:var(--muted); max-width:34em; margin:0 0 30px }

/* --- 폼 --- */
.eg-ct__form{
  background:var(--card); border:1px solid var(--line);
  border-radius:12px; padding:36px 34px;
}
.eg-ct__botcheck{ position:absolute; left:-9999px; opacity:0; height:0; width:0 }

.eg-ct__field{ margin-bottom:22px }
.eg-ct__row{ display:grid; grid-template-columns:1fr 1fr; gap:18px }

.eg-ct__label{
  display:block; font-size:14px; font-weight:700;
  color:var(--block); margin-bottom:8px;
}
.eg-ct__req{
  display:inline-block; margin-left:6px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  color:var(--label); background:var(--tag);
  padding:2px 7px; border-radius:3px; vertical-align:1px;
}

.eg-ct__input,
.eg-ct__select,
.eg-ct__textarea{
  width:100%; font-family:inherit; font-size:15.5px; color:var(--ink);
  background:var(--bg-alt); border:1.5px solid var(--line);
  border-radius:8px; padding:13px 14px; line-height:1.6;
  transition:border-color .16s ease, background-color .16s ease;
}
.eg-ct__textarea{ resize:vertical; min-height:120px }
.eg-ct__select{
  appearance:none; cursor:pointer; padding-right:38px;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--label) 50%),
    linear-gradient(135deg, var(--label) 50%, transparent 50%);
  background-position:calc(100% - 19px) calc(50% + 1px), calc(100% - 14px) calc(50% + 1px);
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
}
.eg-ct__input::placeholder,
.eg-ct__textarea::placeholder{ color:#9A9C93 }
.eg-ct__input:hover,
.eg-ct__select:hover,
.eg-ct__textarea:hover{ border-color:var(--sage-lt) }
.eg-ct__input:focus,
.eg-ct__select:focus,
.eg-ct__textarea:focus{
  outline:none; background:var(--card);
  border-color:var(--label); box-shadow:0 0 0 3px rgba(90,113,80,.16);
}
.eg-ct__hint{ margin-top:7px; font-size:13px; color:var(--muted); line-height:1.6 }

/* --- 동의 --- */
.eg-ct__consent{
  margin:28px 0 26px; padding:20px 20px 18px;
  background:var(--bg-alt); border:1px solid var(--line);
  border-left:4px solid var(--sage-lt); border-radius:8px;
}
.eg-ct__check{
  display:flex; align-items:flex-start; gap:11px;
  font-size:15px; font-weight:600; color:var(--ink); cursor:pointer; line-height:1.55;
}
.eg-ct__check input{
  flex-shrink:0; width:20px; height:20px; margin-top:1px;
  accent-color:var(--block); cursor:pointer;
}
.eg-ct__check input:focus-visible{ outline:3px solid var(--block); outline-offset:2px }

.eg-ct__terms{ margin-top:14px; border-top:1px solid var(--line); padding-top:12px }
.eg-ct__terms summary{
  list-style:none; cursor:pointer; position:relative;
  font-size:13.5px; font-weight:600; color:var(--label);
  padding-left:16px;
}
.eg-ct__terms summary::-webkit-details-marker{ display:none }
.eg-ct__terms summary::before{
  content:''; position:absolute; left:1px; top:50%;
  width:7px; height:7px; margin-top:-5px;
  border-right:2px solid var(--label); border-bottom:2px solid var(--label);
  transform:rotate(-45deg); transition:transform .2s ease;
}
.eg-ct__terms[open] summary::before{ transform:rotate(45deg); margin-top:-6px }
.eg-ct__terms summary:focus-visible{ outline:3px solid var(--block); outline-offset:3px; border-radius:3px }

.eg-ct__terms-body{ padding:14px 0 2px }
.eg-ct__terms-body p{ font-size:13.5px; color:var(--sub); line-height:1.8; margin-bottom:7px; max-width:36em }
.eg-ct__terms-body b{ color:var(--block); font-weight:700 }
.eg-ct__terms-note{
  margin-top:12px !important; padding-top:11px;
  border-top:1px dashed var(--line);
  font-size:13px !important; color:var(--muted) !important;
}
.eg-ct__terms-note a{ color:var(--block); font-weight:600 }

/* --- 버튼 · 결과 --- */
.eg-ct__submit{
  width:100%; font-family:inherit;
  background:var(--block); color:#fff; border:0;
  font-size:16.5px; font-weight:700; letter-spacing:-.01em;
  padding:17px 20px; border-radius:8px; cursor:pointer;
  transition:background-color .18s ease, transform .18s ease;
}
.eg-ct__submit:hover{ background:var(--dark); transform:translateY(-1px) }
.eg-ct__submit:focus-visible{ outline:3px solid var(--label); outline-offset:3px }
.eg-ct__submit:disabled{ background:var(--sage-lt); cursor:default; transform:none }

.eg-ct__result{ margin-top:16px; font-size:14.5px; line-height:1.7; text-align:center }
.eg-ct__result.is-wait{ color:var(--muted) }
.eg-ct__result.is-done{
  color:var(--block); font-weight:700;
  background:var(--tag); border-radius:8px; padding:14px 16px;
}
.eg-ct__result.is-error{
  color:#8C3A2F; font-weight:600;
  background:#F6E9E6; border-radius:8px; padding:14px 16px;
}

/* --- 오른쪽 --- */
.eg-ct__side{ display:flex; flex-direction:column; gap:16px }

.eg-ct__card{
  background:var(--card); border:1px solid var(--line);
  border-radius:12px; padding:26px 24px;
}
.eg-ct__card--dark{ background:var(--block); border-color:var(--block) }
.eg-ct__card--note{ background:var(--bg-alt) }

.eg-ct__card-label{ font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--label); margin:0 0 8px }
.eg-ct__card--dark .eg-ct__card-label{ color:var(--on-lbl) }

.eg-ct__phone{
  display:inline-block; font-size:27px; font-weight:900;
  letter-spacing:-.02em; color:#fff; text-decoration:none; line-height:1.25;
}
.eg-ct__phone:hover{ text-decoration:underline }
.eg-ct__card-hours{ margin-top:4px; font-size:13px; color:var(--on-txt) }
.eg-ct__card-desc{
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.2);
  font-size:13.5px; color:var(--on-txt); line-height:1.75;
}

.eg-ct__mail{ font-size:16px; font-weight:700; color:var(--block); text-decoration:none; word-break:break-all }
.eg-ct__mail:hover{ text-decoration:underline }

.eg-ct__card-title{ font-size:16px; font-weight:800; color:var(--block); margin:0 0 16px }

.eg-ct__steps{ counter-reset:ctstep }
.eg-ct__steps li{
  counter-increment:ctstep; position:relative;
  padding-left:32px; margin-bottom:16px;
}
.eg-ct__steps li:last-child{ margin-bottom:0 }
.eg-ct__steps li::before{
  content:counter(ctstep); position:absolute; left:0; top:2px;
  width:22px; height:22px; border-radius:50%;
  background:var(--tag); color:var(--block);
  font-size:12px; font-weight:800; line-height:22px; text-align:center;
}
.eg-ct__step-t{ display:block; font-size:14.5px; font-weight:700; color:var(--ink); line-height:1.5 }
.eg-ct__step-d{ display:block; margin-top:2px; font-size:13.5px; color:var(--muted); line-height:1.6 }

.eg-ct__note-desc{ font-size:14px; color:var(--sub); line-height:1.75 }
.eg-ct__note-link{
  display:inline-block; margin-top:12px; padding-bottom:2px;
  font-size:14px; font-weight:700; color:var(--block);
  text-decoration:none; border-bottom:2px solid var(--sage-lt);
}
.eg-ct__note-link::after{ content:' →' }
.eg-ct__note-link:hover{ border-color:var(--block) }
.eg-ct__note-link:focus-visible{ outline:3px solid var(--block); outline-offset:4px }

@media (max-width:920px){
  .eg-ct__wrap{ grid-template-columns:1fr; gap:32px }
}
@media (max-width:768px){
  .eg-ct-hero{ padding:50px 20px 40px }
  .eg-ct-hero__title{ font-size:26px; font-weight:800 }
  .eg-ct{ padding:48px 16px }
  .eg-ct__h2{ font-size:22px; font-weight:800 }
  .eg-ct__lead{ font-size:14.5px; margin-bottom:24px }
  .eg-ct__form{ padding:26px 20px; border-radius:10px }
  .eg-ct__row{ grid-template-columns:1fr; gap:0 }
  .eg-ct__card{ padding:22px 20px }
  .eg-ct__phone{ font-size:24px }
}
@media (max-width:400px){
  .eg-ct__form{ padding:22px 16px }
  .eg-ct__consent{ padding:16px 15px 14px }
}


/* ============================================================
   개인정보처리방침 페이지 (/privacy)
   ============================================================ */

.eg-pv-hero{ background:var(--bg-alt); padding:70px 20px 60px; text-align:center; border-bottom:1px solid var(--line) }
.eg-pv-hero__breadcrumb{ font-size:12px; color:var(--muted); margin:0 0 16px }
.eg-pv-hero__title{ font-size:36px; font-weight:900; color:var(--block); margin:0 0 12px }
.eg-pv-hero__subtitle{ font-size:14px; color:var(--muted) }

.eg-pv{ background:var(--bg); padding:64px 20px 80px }
.eg-pv__wrap{ max-width:800px; margin:0 auto }

.eg-pv__intro{
  font-size:15px; color:var(--sub); line-height:1.9;
  max-width:36em; padding-bottom:36px; border-bottom:1px solid var(--line);
}

.eg-pv__sec{ padding:36px 0; border-bottom:1px solid var(--line) }
.eg-pv__sec:last-child{ border-bottom:0 }
.eg-pv__h2{ font-size:19px; font-weight:800; color:var(--block); margin:0 0 16px; line-height:1.5 }
.eg-pv__sec p{ font-size:14.5px; color:var(--sub); line-height:1.9; margin-bottom:12px; max-width:36em }
.eg-pv__sec p:last-child{ margin-bottom:0 }
.eg-pv__sec b{ color:var(--block); font-weight:700 }
.eg-pv__sec a{ color:var(--block); font-weight:600 }

.eg-pv__list{ margin:4px 0 12px }
.eg-pv__list li{
  position:relative; padding-left:18px; margin-bottom:9px;
  font-size:14.5px; color:var(--sub); line-height:1.75; max-width:36em;
}
.eg-pv__list li::before{
  content:''; position:absolute; left:2px; top:10px;
  width:6px; height:6px; border-radius:50%; background:var(--sage-lt);
}

.eg-pv__note{
  margin-top:16px !important; padding:14px 16px;
  background:var(--bg-alt); border-left:3px solid var(--sage-lt);
  border-radius:0 6px 6px 0;
  font-size:13.5px !important; color:var(--muted) !important; line-height:1.8;
}

.eg-pv__table{ margin:18px 0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--card) }
.eg-pv__tr{ display:grid; grid-template-columns:80px 1fr 1.3fr; border-bottom:1px solid var(--line) }
.eg-pv__table--2 .eg-pv__tr{ grid-template-columns:150px 1fr }
.eg-pv__tr:last-child{ border-bottom:0 }
.eg-pv__tr span{
  padding:13px 16px; font-size:14px; color:var(--sub); line-height:1.65;
  border-right:1px solid var(--line);
}
.eg-pv__tr span:last-child{ border-right:0 }
.eg-pv__tr span:first-child{ font-weight:600; color:var(--block) }
.eg-pv__tr--head span{ background:var(--bg-alt); font-weight:700; color:var(--block); font-size:13.5px }

.eg-pv__box{
  margin-top:14px; background:var(--card);
  border:1px solid var(--line); border-radius:8px; padding:20px 22px;
}
.eg-pv__box p{ font-size:14.5px; color:var(--sub); margin-bottom:8px !important }
.eg-pv__box p:last-child{ margin-bottom:0 !important }
.eg-pv__box span{ display:inline-block; width:80px; color:var(--muted); font-size:13.5px }

@media (max-width:768px){
  .eg-pv-hero{ padding:50px 20px 40px }
  .eg-pv-hero__title{ font-size:26px; font-weight:800 }
  .eg-pv{ padding:44px 16px 60px }
  .eg-pv__intro{ font-size:14px; padding-bottom:28px }
  .eg-pv__sec{ padding:28px 0 }
  .eg-pv__h2{ font-size:17px }
  .eg-pv__sec p, .eg-pv__list li{ font-size:14px }
  .eg-pv__tr,
  .eg-pv__table--2 .eg-pv__tr{ grid-template-columns:1fr }
  .eg-pv__tr span{ border-right:0; border-bottom:1px solid var(--line); padding:11px 14px; font-size:13.5px }
  .eg-pv__tr span:last-child{ border-bottom:0 }
  .eg-pv__tr--head{ display:none }
  .eg-pv__box span{ width:70px }
}
