@charset "utf-8";

/* 내용관리 */
#container {
    padding-top: 0px;
}

#ctt {
    background: #fff
}

.ctt_admin {
    text-align: right
}

#ctt header h1 {
    position: absolute;
    font-size: 0;
    line-height: 0;
    overflow: hidden
}

#ctt_con {
    margin: 80px auto;
    padding: 0px 10px;
    max-width: 1440px;
    width: 100%;
}

#ctt_con img {
    max-width: 100%;
    height: auto
}

.ctt_img {
    text-align: center
}

.ds-principal-greeting {
    min-width: 0;
}

.ds-section-label {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ds-label-en {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #1346d4;
    font-weight: 600;
}

/* ===== 본문 인사말 ===== */
.ds-greeting-body {
    padding: 48px 0;
}

.ds-opening-text {
    font-size: clamp(26px, 2.3vw, 34px);
    font-weight: 700;
    color: #1a2f5e;
    line-height: 1.5;
    letter-spacing: -0.02rem;
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid #ededed;
    word-break: keep-all;
}

.ds-body-text {
    font-size: 16px;
    color: #3d3d4e;
    line-height: 1.65;
    word-break: keep-all;
    margin-bottom: 28px;
}

/* ===== 5대 교육목표 ===== */
.ds-goals-section {
    background: #edf0f5;
    border-radius: 12px;
    padding: 36px;
    margin: 32px 0;
    animation: dsFadeUp 0.6s 0.15s ease both;
}

.ds-goals-section h3 {

    font-size: 16px;
    font-weight: 600;
    color: #1a2f5e;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ds-goals-section h3::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #dddddd;
}

.ds-goals-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
    gap: 12px;
}

.ds-goals-list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    background: #ffffff;
    border-radius: 8px;
    border: 1px solid #e2ddd5;
    transition: all 0.25s;
}

.ds-goals-list li:hover {
    border-color: #1346d4;
    box-shadow: 0 2px 12px #1a2f5e14;
    transform: translateY(-2px);
}

.ds-goal-num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #1a2f5e;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.ds-goal-text {
    font-size: 14px;
    color: #1a1a2e;
    line-height: 1.6;
    font-weight: 400;
    word-break: keep-all;
}

/* ===== 맺음말 ===== */
.ds-greeting-closing {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #ddd;
}

.ds-closing-text {
    font-size: 16px;
    color: #3d3d4e;
    line-height: 1.65;
    word-break: keep-all;
    margin-bottom: 16px;
}

.ds-greeting-signature {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 16px;
    margin-top: 28px;
}

.ds-signature-wrap {
    text-align: right;
}

.ds-signature-school {

    font-size: 15px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.ds-signature-name {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 6px;
}

.ds-signature-position {
    font-size: 13px;
    color: #7a7a8a;
}

.ds-signature-hangul {

    font-size: 20px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: 0.1em;
}

.ds-signature-seal {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 2px solid #1a2f5e;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a2f5e;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    opacity: 0.45;

    flex-shrink: 0;
    position: relative;
}

.ds-signature-seal::before {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    border: 1px solid #1a2f5e;
}

/* ===== 애니메이션 ===== */
@keyframes dsFadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== 반응형 ===== */
@media (max-width: 960px) {}

@media (max-width: 640px) {

    .ds-goals-section {
        padding: 24px 20px;
    }

    .ds-goals-list {
        grid-template-columns: 1fr;
    }

    .ds-greeting-signature {
        flex-direction: column;
        align-items: flex-end;
    }
}


/*교직원 현황*/

/* 섹션 타이틀 */
.ds-title {
    font-size: 20px;
    font-weight: 700;
    color: #1a2f5e;
    margin-bottom: 20px;
    display:flex;
    align-items:center;
    gap:10px;
}
.ds-title i {background:#1346d4; width:30px; height:30px; color:#fff; display:flex; align-items:center; justify-content:center;
            border-radius:5px;}

/* =====================
   공통 리스트
   ===================== */
.ds-list {
    list-style: none;
    border-top: 2px solid #1a2f5e;
    margin-bottom: 30px;
}

/* 헤더 행 */
.ds-list-head {
    display: flex;
    background: #f0f3f9;
    border-bottom: 1px solid #d0d7e8;
}

.ds-list-head span {
    padding: 11px 14px;
    font-size: 13px;
    font-weight: 700;
    color: #1a2f5e;
    text-align: center;
    flex-shrink: 0;
}

/* 데이터 행 */
.ds-item {
    display: flex;
    border-bottom: 1px solid #e8e8e8;
    transition: background 0.15s;
}

.ds-item:hover {
    background: #f5f7fc;
}

.ds-item span {
    padding: 10px 14px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    font-size: 14px;
    border-right: solid 1px #e8e8e8;
    color: #444444;
}

.ds-item span.ds-col-pos {
    border-left: solid 1px #e8e8e8;
}

/* 강조 행 */
.ds-item.ds-top {
    background: #fafafa;
}

.ds-item.ds-top:hover {
    background: #e4e9f5;
}

.ds-item.ds-top span {
    font-weight: 600;
    color: #1a2f5e;
}

.ds-item.ds-head .ds-col-name {
    font-weight: 600;
    color: #1a2f5e;
}

.ds-item .ds-col-num {
    display: none;
}

/* ===== 교직원 컬럼 너비 ===== */
.ds-col-num {
    width: 100px;
    justify-content: center;
    color: #aaaaaa !important;
    font-size: 12px !important;
    display: none;
}

.ds-col-pos {
    width: 150px;
    justify-content: center;
}

.ds-col-name {
    width: 150px;
    justify-content: center;
    font-weight: 500;
}

.ds-col-subj {
    width: 150px;
    justify-content: center;
}

.ds-col-home {
    width: 150px;
    justify-content: center;
}

.ds-col-duty {
    flex: 1;
    justify-content: center;
}

/* ===== 행정실 컬럼 너비 ===== */
.ds-col-anum {
    width: 52px;
    justify-content: center;
    color: #aaaaaa !important;
    font-size: 12px !important;
    display: none;
}

.ds-col-apos {
    width: 150px;
    justify-content: center;
}

.ds-item .ds-col-apos {
    border-left: solid 1px #e8e8e8;
}

.ds-col-aname {
    width: 150px;
    justify-content: center;
    font-weight: 500;
}

.ds-col-aduty {
    justify-content: center;
    flex: 1;
}

.ds-item .ds-col-anum {
    display: none;
}

/* =====================
   태블릿 이하: 카드형
   ===================== */
@media (max-width: 768px) {
    #ctt_con {
        margin: 50px auto;
    }

    .ds-list-head {
        display: none;
    }

    .ds-list {
        border-top: none;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .ds-item {
        flex-direction: column;
        gap: 3px;
        background: #ffffff;
        border: 1px solid #e0e0e0;
        border-bottom: 1px solid #e0e0e0;
        border-radius: 8px;
        padding: 14px 16px;
    }

    .ds-item:hover {
        background: #f7f9fd;
    }

    .ds-item.ds-top {
        background: #fafafa;
    }

    .ds-item.ds-top:hover {
        background: #edf2fc;
    }

    .ds-item.ds-head {}

    .ds-item span {
        padding: 0;
        width: auto !important;
        flex-shrink: 1;
        font-size: 13px;
        border-right: none;
        color: #444444;
    }

    .ds-col-num,
    .ds-col-anum {
        font-size: 11px !important;
        color: #bbbbbb !important;
    }

    .ds-col-name,
    .ds-col-aname {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #222222 !important;
    }

    .ds-col-pos,
    .ds-col-apos {
        font-size: 12px !important;
        color: #888888 !important;
        font-weight: 400 !important;
    }

    .ds-col-subj {
        color: #2a6099 !important;
    }

    .ds-col-home {
        color: #2a7a55 !important;
    }

    .ds-col-duty,
    .ds-col-aduty {
        color: #555555 !important;
    }

    /* 빈 span 숨기기 */
    .ds-item span {
        text-align: center;
        word-break: keep-all;
    }

    .ds-item span:empty {
        display: none;
    }

    .ds-item span.ds-col-pos {
        border-left: none;
    }

    .ds-item .ds-col-apos {
        border-left: none;
    }
}

@media (max-width: 480px) {
    .ds-list {
        grid-template-columns: 1fr;
    }
}




/*연혁*/
/* 연혁 전체 컨테이너 */
.historyWrap {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0px 20px;
    font-family: 'Noto Sans KR', sans-serif;
    color: #333333;
    line-height: 1.6;
}

/* 각 시대별 블록 (기존 float 대체용 Flexbox 적용) */
.historyWrap .figure {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 40px;
    margin-bottom: 40px;
}

/* 마지막 블록 하단 선 제거 */
.historyWrap .figure.last {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

/* 왼쪽 연대 (1990 ~ 1999 등) */
.historyWrap .objLeft {
    width: 25%;
    padding-right: 20px;
}

.historyWrap .objLeft p {
    margin: 0;
    letter-spacing: -0.5px;
    display:inline-block;
    position: relative;
    border-bottom: solid 3px #1346d4;
}
.historyWrap .objLeft p b {
    font-size: 32px;
    font-weight: 700;
    z-index:2;
    position:relative;
    color: #1346d4; /* 브랜드 블루 컬러 포인트 */
    }

.historyWrap .objLeft p::before {
    content:'';
    display: none;
    z-index:1;
    width:32px;
    height:32px;
    background:url(title.png) no-repeat center center;
    background-size:cover;
    border-radius:50%;
    position:absolute;
    top:-5px;
    right:-15px;
}

/* 오른쪽 상세 내역 영역 */
.historyWrap .objRight {
    width: 75%;
}

.historyWrap .objRight ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* 리스트 아이템 레이아웃 */
.historyWrap .objRight li,
.historyWrap .objRight li strong {
    display: flex;
    align-items: flex-start;
    width: 100%;
}

.historyWrap .objRight li {
    margin-bottom: 18px;
    font-size: 16px;
}

.historyWrap .objRight li:last-child {
    margin-bottom: 0;
}

/* 날짜 영역 */
.historyWrap .date {
    flex-shrink: 0;
    width: 110px;
    font-weight: 500;
    color: #000;
    margin-right: 20px;
    letter-spacing: 0.5px;
}

/* 상세 내용 영역 */
.historyWrap .cnt {
    flex-grow: 1;
    color: #444444;
    word-break: keep-all;
}

/* 강조된 항목 (strong 태그가 쓰인 자사고 신입생 입학 부분) */
.historyWrap .objRight li strong .date,
.historyWrap .objRight li strong .cnt {
    color: #1346d4;
    font-weight: 700;
}

@media all and (max-width:960px) {
    
.historyWrap .objLeft p b  {
    font-size:26px;
}
}
/* 반응형: 태블릿 및 모바일 화면 (768px 이하) */
@media (max-width: 768px) {
    .historyWrap {
        padding: 0px 10px;
    }

    .historyWrap .figure {
        flex-direction: column;
        padding-bottom: 30px;
        margin-bottom: 30px;
    }

    .historyWrap .objLeft {
        width: 100%;
        margin-bottom: 20px;
    }

    .historyWrap .objLeft p {
        font-size: 22px;
        line-height:1;
        color:#000;
    }
    .historyWrap .objLeft p b {
        color:#000;
    }

    .historyWrap .objRight {
        width: 100%;
    }

    /* 모바일에서는 날짜와 내용을 세로로 배치하여 가독성 확보 */
    .historyWrap .objRight li,
    .historyWrap .objRight li strong {
        flex-direction: column;
        margin-bottom: 24px;
    }

    .historyWrap .date {
        margin-bottom: 4px;
        color: #1346d4; /* 모바일에서 날짜가 눈에 띄도록 블루톤 변경 */
        font-weight: 700;
    }
}




/*입학안내 자주하는 질문*/
.qna-wrap {max-width: 1440px;margin: 0 auto;}
 
/* 섹션 타이틀 */
.qna-page-title { font-size: 22px; font-weight: 700; color: #1a2f5e; margin-bottom: 32px; letter-spacing: -0.02em; }
 
/* 아코디언 아이템 */
.qna-item {background: #ffffff;border: 1px solid #e4e8f0;border-radius: 10px;margin-bottom: 20px;overflow: hidden;transition: box-shadow 0.2s;padding: 40px;display: flex;flex-wrap: wrap;gap: 0px 15px;}
.qna-item.open {box-shadow: 0 4px 16px #1a2f5e14;border-color: #c8d2e8;}
 
/* 질문 버튼 */
.qna-q {
  width: 100%;
  background: none;
  border: none;
  padding: 20px 24px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background 0.15s;
}
.qna-q:hover { background: #f4f6fc; }
.qna-item.open .qna-q { background: #f4f6fc; }
 
.qna-q-badge {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: #1a2f5e;
  color: #ffffff;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qna-item.open .qna-q-badge { background: #3a5bbf; }
 
.qna-q-text {
  flex: 1;
  font-size: 20px;
  font-weight: 600;
  color: #1a2f5e;
  line-height: 1.6;
  word-break: keep-all;
  width: 100%;
}
 
.qna-q-arrow {
  flex-shrink: 0;
  width: 20px; height: 20px;
  margin-top: 3px;
  transition: transform 0.25s;
  fill: none;
  stroke: #888888;
  stroke-width: 2;
}
.qna-item.open .qna-q-arrow { transform: rotate(180deg); stroke: #3a5bbf; }
 
/* 답변 영역 */
.qna-a-wrap {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  width: 100%;
}
.qna-item.open .qna-a-wrap { max-height: 2000px; }
 
.qna-a {
  display: flex;
  gap: 15px;
  align-items: flex-start;
}
.qna-a-badge {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: #eef2fc;
  color: #3a5bbf;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qna-a-text {
  flex: 1;
  font-size: 16px;
  color: #666;
  line-height: 1.7;
  word-break: keep-all;
}
.qna-a-text img { width: 100%; margin-top: 14px; border-radius: 6px; }
 
/* 구분선 */
.qna-a-divider {height: 1px;background: #eef0f6;margin: 20px 0px;}
 
@media (max-width: 600px) {
  .qna-wrap {}
  .qna-q { padding: 16px 18px; gap: 12px; }
  .qna-q-text {font-size: 16px;}
  .qna-a {
}
  .qna-a-divider {margin: 20px 0px;}
  .qna-a-text { font-size: 13px; }
    .qna-item {
        padding:20px;
    }
}




.pi-wrap { max-width: 1440px; margin: 0 auto; }
 
/* ===== 섹션 제목: 잎사귀 불릿 ===== */
.pi-heading {
  font-size: 18px;
  font-weight: 700;
  color: #1a2f5e;
  margin: 36px 0 14px;
  display: flex;
  align-items: center;
  gap: 9px;
}
.pi-heading:first-child { margin-top: 0; }
.pi-heading .fa {
  font-size: 16px;
  color: #3a8c5c;
  flex-shrink: 0;
}
 
/* ===== 본문 단락 ===== */
.pi-p {
  font-size: 16px;
  color: #444444;
  line-height: 1.85;
  margin-bottom: 14px;
  word-break: keep-all;
}
 
/* ===== 카드형 리스트 ===== */
.pi-card-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.pi-card-list li {
  background: #ffffff;
  border: 1px solid #e0e5f0;
  padding: 14px 16px;
  font-size: 13.5px;
  color: #333333;
  line-height: 1.7;
  word-break: keep-all;
}
.pi-card-list li strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #1a2f5e;
  margin-bottom: 4px;
}
 
/* ===== 일반 리스트 ===== */
.pi-list {
  list-style: none;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pi-list > li {
  padding-left: 14px;
  position: relative;
  font-size: 14px;
  color: #444444;
  line-height: 1.8;
  word-break: keep-all;
}
.pi-list > li::before {
  content: "";
  position: absolute;
  left: 0; top: 11px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #3a5bbf;
}
.pi-list .pi-sub-list {
  list-style: none;
  margin-top: 6px;
  padding-left: 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pi-list .pi-sub-list li {
  padding-left: 14px;
  position: relative;
  font-size: 13px;
  color: #555555;
  line-height: 1.75;
}
.pi-list .pi-sub-list li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: #aaaaaa;
}
 
/* ===== 불복구제 그룹 박스 ===== */
.pi-appeal-group {
  background: #ffffff;
  border: 1px solid #e0e5f0;
  overflow: hidden;
  margin-bottom: 10px;
}
.pi-appeal-group-head {
  background: #f0f3fa;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 700;
  color: #1a2f5e;
  border-bottom: 1px solid #e0e5f0;
}
.pi-appeal-group-body {
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pi-appeal-group-body p {
  font-size: 13.5px;
  color: #444444;
  line-height: 1.8;
  word-break: keep-all;
}
 
/* ===== 중단 소제목 (가/나/다) ===== */
.pi-sub-heading {
  font-size: 14px;
  font-weight: 700;
  color: #1a2f5e;
  margin: 28px 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.pi-sub-heading::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #3a5bbf;
  flex-shrink: 0;
}
 
/* ===== 이미지 ===== */
.pi-img { width: 100%; border-radius: 8px; margin: 8px 0 16px; display: block; }
 
/* ===== 링크 버튼 ===== */
.pi-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #1a2f5e;
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 6px;
  text-decoration: none;
  margin: 10px 0 24px;
  transition: background 0.15s;
}
.pi-link-btn:hover { background: #2a4aaa; }
.pi-link-btn .fa { font-size: 15px; }
 
/* ===== 수수료 테이블 공통 ===== */
.pi-table-pc, .pi-table-mob { width: 100%; border-collapse: collapse; background: #ffffff; }
.pi-table-pc th, .pi-table-mob th {
  background: #eef1fa;
  color: #1a2f5e;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 12px;
  border: 1px solid #d0d7e8;
  text-align: center;
  vertical-align: middle;
}
.pi-table-pc td, .pi-table-mob td {
  padding: 12px 14px;
  border: 1px solid #e4e8f0;
  font-size: 13px;
  color: #444444;
  line-height: 1.75;
  vertical-align: top;
}
.pi-table-pc td p, .pi-table-mob td p {
  font-weight: 600;
  color: #1a2f5e;
  margin-bottom: 4px;
  font-size: 13px;
}
 
/* ===== PC 테이블 ===== */
.pi-table-pc-wrap {
  overflow-x: auto;
  margin: 14px 0 16px;
  border: 1px solid #d0d7e8;
  overflow: hidden;
}
.pi-table-mob-wrap { display: none; }
 
/* ===== 모바일 테이블 (아코디언 카드) ===== */
.pi-mob-card {
  background: #ffffff;
  border: 1px solid #e0e5f0;
  overflow: hidden;
  margin-bottom: 10px;
}
.pi-mob-card-head {
  background: #eef1fa;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  color: #1a2f5e;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  user-select: none;
}
.pi-mob-card-head .fa { color: #3a5bbf; transition: transform 0.25s; }
.pi-mob-card-head.open .fa { transform: rotate(180deg); }
.pi-mob-card-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.pi-mob-card-body.open { max-height: 3000px; }
.pi-mob-section {
  padding: 14px 16px;
  border-top: 1px solid #f0f2f8;
}
.pi-mob-section:first-child { border-top: none; }
.pi-mob-section-title {
  font-size: 12px;
  font-weight: 700;
  color: #3a5bbf;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pi-mob-row {
  display: flex;
  gap: 8px;
  margin-bottom: 6px;
}
.pi-mob-row-label {
  font-size: 12px;
  font-weight: 600;
  color: #1a2f5e;
  min-width: 60px;
  flex-shrink: 0;
  padding-top: 1px;
}
.pi-mob-row-val {
  font-size: 12.5px;
  color: #444444;
  line-height: 1.75;
  word-break: keep-all;
}
.pi-mob-row-val p {
  font-weight: 600;
  color: #1a2f5e;
  margin-bottom: 2px;
  font-size: 12px;
}
 
/* ===== 반응형 ===== */
@media (max-width: 700px) {
  .pi-wrap { padding: 28px 14px 60px; }
  .pi-card-list { grid-template-columns: 1fr; }
  .pi-heading { font-size: 14px; }
  .pi-p, .pi-list > li { font-size: 13px; }
  /* 테이블 전환 */
  .pi-table-pc-wrap { display: none; }
  .pi-table-mob-wrap { display: block; margin: 14px 0 16px; }
}


/* ===== 업무처리 절차 플로우차트 ===== */
.pi-flow { margin: 14px 0 24px; display: flex; flex-direction: column; }
.pi-flow-item { display: flex; align-items: stretch; background: #ffffff; border: 1px solid #d8e0f0; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px #1a2f5e0a; }
.pi-flow-item-last .pi-flow-left { background: #2e5299; }
.pi-flow-left {display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 10px;padding: 20px 18px;background: #1346d4;min-width: 130px;flex-shrink: 0;text-align: center;}
.pi-flow-icon { width: 40px; height: 40px; background: rgba(255,255,255,0.15); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.pi-flow-icon .fa { font-size: 18px; color: #ffffff; }
.pi-flow-label { display: flex; flex-direction: column; gap: 3px; }
.pi-flow-title { font-size: 13px; font-weight: 700; color: #ffffff; line-height: 1.3; letter-spacing: -0.01em; }
.pi-flow-sub { font-size: 11px; color: rgba(255,255,255,0.65); font-weight: 400; }
.pi-flow-right { flex: 1; padding: 18px 20px; display: flex; align-items: center; }
.pi-flow-right ul { list-style: none; display: flex; flex-direction: column; gap: 5px; width: 100%; }
.pi-flow-right ul li { padding-left: 14px; position: relative; font-size: 13.5px; color: #444444; line-height: 1.7; word-break: keep-all; }
.pi-flow-right ul li::before { content: "–"; position: absolute; left: 0; color: #3a5bbf; font-weight: 700; }
.pi-flow-right ul li.pi-flow-note { margin-top: 4px; font-size: 12px; color: #888888; background: #f5f7fc; border-radius: 4px; padding: 6px 10px 6px 20px; }
.pi-flow-right ul li.pi-flow-note::before { color: #aaaaaa; left: 8px; }
.pi-flow-arrow { display: flex; justify-content: center; padding: 6px 0; color: #3a5bbf; font-size: 16px; }
 
/* ===== 반응형 ===== */
@media (max-width: 700px) {
  .pi-wrap { padding: 28px 14px 60px; }
  .pi-card-list { grid-template-columns: 1fr; }
  .pi-heading { font-size: 14px; }
  .pi-p, .pi-list > li { font-size: 13px; }
  /* 테이블 전환 */
  .pi-table-pc-wrap { display: none; }
  .pi-table-mob-wrap { display: block; margin: 14px 0 16px; }
  /* 플로우차트 모바일 */
  .pi-flow-item { flex-direction: column; }
  .pi-flow-left { flex-direction: row; justify-content: flex-start; min-width: unset; padding: 12px 16px; gap: 12px; }
  .pi-flow-icon { width: 34px; height: 34px; flex-shrink: 0; }
  .pi-flow-icon .fa { font-size: 15px; }
  .pi-flow-label { flex-direction: row; align-items: baseline; gap: 6px; }
  .pi-flow-title { font-size: 13px; }
  .pi-flow-right { padding: 12px 16px; }
  .pi-flow-right ul li { font-size: 13px; }
}

.founder-wrap {
  margin: 0 auto;
  padding: 0px 10px;
  font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
}
.page-header {
  margin-bottom: 40px;
}
.page-header .en-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #1346d4;
  display: block;
  margin-bottom: 8px;
}
.page-header h2 {
  font-size: 28px;
  font-weight: 600;
  color: #000;
  margin: 0 0 14px;
}
.founder-section {
  display: flex;
  gap: 40px;
  background: #ffffff;
  border-radius: 12px;
  padding: 0px 0 40px;
  margin-bottom: 32px;
  position: relative;
  overflow: hidden;
}
.founder-photo {
  flex-shrink: 0;
  width: 200px;
}
.founder-photo img {
  width: 200px;
  height: 260px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.photo-caption {
  margin-top: 10px;
  text-align: center;
  font-size: 12px;
  color: #999999;
}
.founder-body {
  flex: 1;
  min-width: 0;
}
.founder-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #E8EDF5;
  color: #1346d4;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.founder-name-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 20px;
}
.founder-name {
  font-size: 28px;
  font-weight: 600;
  color: #1346d4;
}
.founder-hanja {
  font-size: 13px;
  color: #1346d4;
}
.founder-title {
  font-size: 13px;
  color: #999999;
  margin-bottom: 20px;
}
.founder-divider {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}
.founder-divider::before {
  content: '';
  width: 24px;
  height: 2px;
  background: #c2dcff;
}
.founder-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #E0E0E0;
}
.founder-body p {
  font-size: 16px;
  line-height: 1.5;
  color: #222;
  margin-bottom: 15px;
  word-break: keep-all;
  font-weight: 300;
}
.founder-body p:last-of-type {
  margin-bottom: 0;
}
.founder-body strong {
  color: #1A1A1A;
  font-weight: 600;
}
.honor-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #edf2ff;
  color: #1346d4;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 14px;
  border-radius: 20px;
  margin-top: 16px;
  border: 1px solid #87a5f5;
}
.verse-block {
  margin: 32px 0 60px;
  padding: 28px 36px;
  background: #1346d4;
  border-radius: 12px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.verse-block::before {
  content: '\201C';
  position: absolute;
  top: -10px;
  left: 24px;
  font-size: 100px;
  color: rgba(255,255,255,0.2);
  line-height: 1;
}
.verse-block::after {
  content: '\201C';
  position: absolute;
  right: 10px;
  font-size: 100px;
  color: rgba(255,255,255,0.2);
  line-height: 1;
}
.verse-text {
  font-size: 17px;
  font-weight: 400;
  color: #ffffff;
  line-height: 1.8;
  margin-bottom: 12px;
  position: relative;
}
.verse-ref {
  font-size: 14px;
  font-weight: 500;
  color: #b3d4ff;
  position: relative;
}
@media (max-width: 768px) {
  .founder-wrap {padding: 0px 10px 00px;}
  .founder-section {flex-direction: column;gap: 28px;padding: 0px 0px;}
  .founder-photo { width: 100%; }
  .founder-photo img { width: 100%; height: 220px; }
    .founder-body p {
        font-size:16px;
    }
}
@media (max-width: 480px) {
  .page-header h2 { font-size: 22px; }
  .founder-name { font-size: 19px; }
  .verse-text { font-size: 15px; }
        .founder-body p {
            font-size:14px;
        }
}


.ds-chairman-greeting {
    min-width: 0;
}
 
/* 섹션 라벨 */
.ds-chairman-section-label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 36px;
}
.ds-chairman-section-label .ds-label-en {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #1346d4;
    font-weight: 600;
}
 
/* 본문 레이아웃: 사진 + 텍스트 2단 */
.ds-chairman-greeting-body {
    display: flex;
    gap: 52px;
    align-items: flex-start;
    padding: 48px 0;
}
 
/* 사진 영역 */
.ds-chairman-photo {
    flex-shrink: 0;
    width: 220px;
    text-align: center;
}
.ds-chairman-photo img {
    width: 220px;
    height: 280px;
    object-fit: cover;
    object-position: top center;
    border-radius: 10px;
    display: block;
}
.ds-chairman-photo-caption {
    margin-top: 12px;
    font-size: 12px;
    color: #999999;
    line-height: 1.6;
}
 
/* 텍스트 영역 */
.ds-chairman-text {
    flex: 1;
    min-width: 0;
}
 
/* 오프닝 인용 문구 */
.ds-chairman-opening-text {
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 700;
    color: #1a2f5e;
    line-height: 1.5;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid #ededed;
    word-break: keep-all;
}
 
/* 클로징 */
.ds-chairman-greeting-closing {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #ddd;
}
 
/* 서명 */
.ds-chairman-greeting-signature {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 16px;
    margin-top: 8px;
}
.ds-chairman-signature-wrap {
    text-align: right;
}
.ds-chairman-signature-school {
    font-size: 15px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}
.ds-chairman-signature-name {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 6px;
}
.ds-chairman-signature-position {
    font-size: 13px;
    color: #7a7a8a;
}
.ds-chairman-signature-hangul {
    font-size: 22px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: 0.12em;
}
 
/* 반응형: 태블릿 */
@media (max-width: 768px) {
    .ds-chairman-greeting-body {
        flex-direction: column;
        gap: 28px;
        padding: 32px 0;
    }
    .ds-chairman-photo {
        width: 100%;
        display: flex;
        align-items: flex-start;
        gap: 20px;
        text-align: left;
    }
    .ds-chairman-photo img {
        width: 130px;
        height: 164px;
    }
    .ds-chairman-photo-caption {
        margin-top: 0;
        padding-top: 4px;
    }
}
 
/* 반응형: 모바일 */
@media (max-width: 480px) {
    .ds-chairman-photo {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .ds-chairman-photo img {
        width: 160px;
        height: 200px;
    }
    .ds-chairman-opening-text {
        font-size: 18px;
    }
    .ds-chairman-greeting-signature {
        flex-direction: column;
        align-items: flex-end;
    }
}


.ph-wrap {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
}
.ph-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
}
.ph-header i {
    font-size: 18px;
    color: #1346d4;
}
.ph-header-title {
    font-size: 18px;
    font-weight: 800;
    color: #1a2f5e;
}
.ph-header-rep {
    font-size: 19px;
    color: #888888;
}
.ph-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.ph-card {
}
.ph-card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    background: #1a2f5e;
    border-bottom: none;
}
.ph-card-head i {
    font-size: 15px;
    color: #ffffff;
    opacity: 0.85;
}
.ph-card-name {
    font-size: 19px;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 0.02em;
}
.ph-card-body {
    padding: 4px 0;
}
.ph-row {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid #f0f2f8;
    gap: 8px;
}
.ph-row:last-child {
    border-bottom: none;
}
.ph-row-floor {
    font-size: 12px;
    font-weight: 600;
    color: #1346d4;
    flex-shrink: 0;
    text-align: center;
}
.ph-row-label {
    flex: 1;
    font-size: 16px;
    color: #444444;
    word-break: keep-all;
}
.ph-row-num {
    font-size: 14px;
    font-weight: 500;
    color: #1a2f5e;
    text-align: right;
    line-height: 1.55;
    flex-shrink: 0;
}
.ph-row-num span {
    display: block;
}
 
/* 건물별 헤더 컬러 구분 */
.ph-card.card-main .ph-card-head   { background: #1a2f5e; }
.ph-card.card-main2 .ph-card-head  { background: #1346d4; }
.ph-card.card-byeol .ph-card-head  { background: #1a2f5e; }
.ph-card.card-gyenam .ph-card-head { background: #1346d4; }
.ph-card.card-dorm .ph-card-head   { background: #1a2f5e; }
 
/* 반응형 */
@media (max-width: 960px) {
    .ph-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .ph-grid { grid-template-columns: 1fr; gap: 10px; }
    .ph-header-title { font-size: 15px; }
}

.sym-wrap {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
}
 
/* ── 교훈 히어로 ── */
.sym-hero {
    border-bottom: 1px solid #e4e8f0;
    margin-bottom: 40px;
}
.sym-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #1346d4;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 5px 14px;
    border-radius: 4px;
    margin-bottom: 18px;
}
.sym-hero-text {
    font-size: clamp(24px, 3vw, 38px);
    font-weight: 700;
    color: #1a2f5e;
    line-height: 1.45;
    letter-spacing: -0.03em;
    word-break: keep-all;
    margin: 0;
}
.sym-hero-text em {
    font-style: normal;
    color: #1346d4;
}
.sym-hero-deco {
    display: block;
    width: 48px;
    height: 4px;
    background: #1346d4;
    margin-top: 20px;
    border-radius: 2px;
}
 
/* ── 학교비전 ── */
.sym-vision-row {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 48px;
    padding: 24px 28px;
    background: #f0f4fc;
    border-left: 4px solid #1346d4;
}
.sym-vision-badge {
    flex-shrink: 0;
    background: #1346d4;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 6px 16px;
    border-radius: 4px;
    white-space: nowrap;
}
.sym-vision-text {
    font-size: 18px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: -0.01em;
    word-break: keep-all;
    margin: 0;
}
.sym-vision-text strong {
    color: #1346d4;
}
 
/* ── 카드 그리드 ── */
.sym-grid-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #1346d4;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.sym-grid-title::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e4e8f0;
}
.sym-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}
.sym-card {
    background: #ffffff;
    border: 1px solid #e4e8f0;
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.2s, transform 0.2s;
}
.sym-card:hover {
    border-color: #1346d4;
    transform: translateY(-3px);
}
.sym-card img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    display: block;
    background: #f0f4fc;
}
.sym-card-img-text {
    width: 100%;
    aspect-ratio: 3 / 4;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7f8fc;
    padding: 16px;
}
.sym-card-img-text p {
    font-size: 20px;
    font-weight: 400;
    color: #1a2f5e;
    text-align: center;
    line-height: 1.7;
    letter-spacing: 0.02em;
    font-family: 'Noto Serif KR', 'Batang', serif;
    word-break: keep-all;
    margin: 0;
}
.sym-card-footer {
    padding: 10px 12px 12px;
    border-top: 1px solid #f0f2f8;
}
.sym-card-name {
    font-size: 18px;
    font-weight: 700;
    color: #1a2f5e;
    display: block;
    margin-bottom: 1px;
}
.sym-card-sub {
    font-size: 11px;
    color: #9a9ab0;
    font-weight: 400;
}
 
/* ── 반응형 ── */
@media (max-width: 960px) {
    .sym-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .sym-hero-text { font-size: 22px; }
    .sym-vision-row { flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 20px; }
    .sym-vision-text { font-size: 15px; }
    .sym-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
@media (max-width: 400px) {
    .sym-grid { grid-template-columns: repeat(2, 1fr); }
}


.sc-wrap {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
    color: #1a1a2e;
}
 
/* ── 공통 섹션 ── */
.sc-section {
    margin-bottom: 52px;
}
.sc-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 20px;
    font-weight: 700;
    color: #1a2f5e;
    margin-bottom: 20px;
    padding-bottom: 12px;
    /* border-bottom: 2px solid #1346d4; */
}
.sc-section-title i {
    background: #1346d4;
    color: #fff;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
 
/* ── 스탯 카드 ── */
.sc-stat-grid {
    display: grid;
    gap: 10px;
}
.sc-stat-grid.col-5  { grid-template-columns: repeat(5, 1fr); }
.sc-stat-grid.col-4  { grid-template-columns: repeat(4, 1fr); }
.sc-stat-grid.col-3  { grid-template-columns: repeat(3, 1fr); }
.sc-stat-grid.col-10 { grid-template-columns: repeat(10, 1fr); }
 
.sc-card {
    background: #fff;
    border: 1px solid #e4e8f0;
    border-radius: 10px;
    padding: 16px 14px;
    text-align: center;
    transition: border-color 0.2s, transform 0.2s;
}
.sc-card:hover {
    border-color: #1346d4;
    transform: translateY(-2px);
}
.sc-card.sc-card-accent {
    background: #1346d4;
    border-color: #1346d4;
}
.sc-card-label {
    font-size: 14px;
    color: #222;
    margin-bottom: 8px;
    line-height: 1.4;
    word-break: keep-all;
}
.sc-card.sc-card-accent .sc-card-label {color: #fff;}
.sc-card-value {
    font-size: 22px;
    font-weight: 700;
    color: #1346d4;
    line-height: 1;
}
.sc-card.sc-card-accent .sc-card-value { color: #fff; font-size: 26px; }
.sc-card-unit {
    font-size: 11px;
    color: #aaa;
    margin-top: 4px;
}
.sc-card.sc-card-accent .sc-card-unit { color: rgba(255,255,255,0.5); }
 
/* ── 카테고리 블록 (교직원 그룹) ── */
.sc-group {
    background: #f7f9fd;
    border: 1px solid #e4e8f0;
    overflow: hidden;
    margin-bottom: 20px;
}
.sc-group-head {
    background: #1a2f5e;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    padding: 8px 16px;
    letter-spacing: 0.05em;
}
.sc-group-body {
    padding: 12px 14px;
    display: grid;
    gap: 8px;
}
.sc-group-body.col-6 { grid-template-columns: repeat(6, 1fr); }
.sc-group-body.col-5 { grid-template-columns: repeat(5, 1fr); }
.sc-group-body.col-4 { grid-template-columns: repeat(4, 1fr); }
.sc-group-body.col-3 { grid-template-columns: repeat(3, 1fr); }
.sc-group-item {
    background: #fff;
    border: 1px solid #e8ecf5;
    border-radius: 8px;
    padding: 10px 8px;
    text-align: center;
}
.sc-group-item-label {
    font-size: 14px;
    color: #222;
    margin-bottom: 5px;
    line-height: 1.4;
    word-break: keep-all;
}
.sc-group-item-value {
    font-size: 22px;
    font-weight: 700;
    color: #1346d4;
}
 
/* ── 합계 배너 ── */
.sc-total-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #1346d4;
    color: #fff;
    border-radius: 10px;
    padding: 16px 24px;
    margin-top: 12px;
}
.sc-total-label {
    font-size: 13px;
    opacity: 0.8;
}
.sc-total-value {
    font-size: 30px;
    font-weight: 700;
}
.sc-total-unit {
    font-size: 13px;
    opacity: 0.7;
}
 
/* ── 학생현황 연도별 ── */
.sc-year-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.sc-year-card {
    overflow: hidden;
    border: 1px solid #e4e8f0;
}
.sc-year-head {
    background: #1a2f5e;
    color: #fff;
    text-align: center;
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
}
.sc-year-head.accent { background: #1346d4; }
.sc-year-body {
    background: #fff;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sc-year-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid #f0f2f8;
}
.sc-year-row:last-child { border-bottom: none; }
.sc-year-row-label { font-size: 12px; color: #888; }
.sc-year-row-value { font-size: 17px; font-weight: 700; color: #1346d4; }
.sc-year-card.sc-total .sc-year-head { background: #0c2d6e; }
.sc-year-card.sc-total .sc-year-row-value { color: #0c2d6e; font-size: 20px; }
 
/* ── 건물/시설 리스트 ── */
.sc-facility-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.sc-facility-card {
    background: #fff;
    border: 1px solid #e4e8f0;
    border-radius: 10px;
    padding: 20px 16px;
    text-align: center;
    position: relative;
}
.sc-facility-card::before {
    content: '';
    display: block;
    width: 32px;
    height: 3px;
    background: #1346d4;
    border-radius: 2px;
    margin: 0 auto 12px;
}
.sc-facility-label {
    font-size: 12px;
    color: #888;
    margin-bottom: 6px;
}
.sc-facility-value {
    font-size: 20px;
    font-weight: 700;
    color: #1a2f5e;
}
.sc-facility-unit {
    font-size: 11px;
    color: #aaa;
    margin-top: 2px;
}
 
/* ── 특별교실 태그형 ── */
.sc-room-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.sc-room-tag {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid #e4e8f0;
    border-radius: 8px;
    padding: 8px 16px;
    min-width: 80px;
    transition: border-color 0.2s;
}
.sc-room-tag:hover { border-color: #1346d4; }
.sc-room-tag-label {
    font-size: 12px;
    color: #555;
    white-space: nowrap;
}
.sc-room-tag-value {
    font-size: 15px;
    font-weight: 700;
    color: #1346d4;
    margin-left: auto;
    padding-left: 8px;
}
 
/* ── 반응형 ── */
@media (max-width: 960px) {
    .sc-stat-grid.col-10 { grid-template-columns: repeat(5, 1fr); }
    .sc-group-body.col-6 { grid-template-columns: repeat(3, 1fr); }
    .sc-group-body.col-5 { grid-template-columns: repeat(3, 1fr); }
    .sc-year-grid { grid-template-columns: repeat(2, 1fr); }
    .sc-facility-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .sc-stat-grid.col-5  { grid-template-columns: repeat(3, 1fr); }
    .sc-stat-grid.col-4  { grid-template-columns: repeat(2, 1fr); }
    .sc-stat-grid.col-10 { grid-template-columns: repeat(3, 1fr); }
    .sc-group-body.col-6,
    .sc-group-body.col-5,
    .sc-group-body.col-4 { grid-template-columns: repeat(2, 1fr); }
    .sc-group-body.col-3 { grid-template-columns: repeat(3, 1fr); }
    .sc-year-grid { grid-template-columns: repeat(2, 1fr); }
    .sc-facility-grid { grid-template-columns: repeat(2, 1fr); }
    .sc-section-title { font-size: 15px; }
}
@media (max-width: 400px) {
    .sc-stat-grid.col-5,
    .sc-stat-grid.col-10 { grid-template-columns: repeat(2, 1fr); }
    .sc-year-grid { grid-template-columns: 1fr 1fr; }
}

.charter-wrap {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', sans-serif;
    max-width: 800px;
    margin: 0 auto;
    padding: 0px 30px 50px;
    border: solid 1px #ddd;
    border-top: solid 5px #ddd;
}
 
/* ── 타이틀 ── */
.charter-title {
    text-align: center;
    margin-bottom: 40px;
}
.charter-title-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #1346d4;
    margin-bottom: 10px;
}
.charter-title-label::after {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: #1346d4;
    margin: 8px auto 0;
}
.charter-title h2 {
    font-size: 28px;
    font-weight: 700;
    color: #1a2f5e;
    margin: 0;
    letter-spacing: -0.02em;
}
 
/* ── 소개 문단 ── */
.charter-intro {
    text-align: center;
    margin-bottom: 36px;
    padding-bottom: 32px;
    border-bottom: 1px solid #e8ecf5;
}
.charter-intro p {
    font-size: 15px;
    color: #555;
    line-height: 1.85;
    word-break: keep-all;
    margin: 0 0 10px;
}
.charter-intro p:last-child { margin: 0; }
.charter-intro strong {
    color: #1a2f5e;
    font-weight: 700;
}
 
/* ── 3대 항목 ── */
.charter-items {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 36px;
}
.charter-item {
    display: flex;
    gap: 20px;
    padding: 24px 0;
    border-bottom: 1px solid #f0f2f8;
}
.charter-item:first-child { border-top: 1px solid #f0f2f8; }
.charter-item-num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #eef2fc;
    color: #1346d4;
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.charter-item-body { flex: 1; min-width: 0; }
.charter-item-keyword {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}
.charter-item-ko {
    font-size: 18px;
    font-weight: 700;
    color: #1a2f5e;
}
.charter-item-hanja {
    font-size: 14px;
    font-weight: 600;
    color: #1346d4;
    letter-spacing: 0.05em;
}
.charter-item-text {
    font-size: 14.5px;
    color: #555;
    line-height: 1.85;
    word-break: keep-all;
    margin: 0;
}
 
/* ── 마무리 문장 ── */
.charter-closing {
    text-align: center;
    padding-top: 28px;
    border-top: 1px solid #e8ecf5;
}
.charter-closing p {
    font-size: 14px;
    color: #777;
    line-height: 1.85;
    word-break: keep-all;
    margin: 0 0 16px;
}
.charter-closing-seal {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 600;
    color: #1a2f5e;
    letter-spacing: 0.05em;
}
.charter-closing-seal::before,
.charter-closing-seal::after {
    content: '';
    display: block;
    width: 32px;
    height: 1px;
    background: #c5d4f5;
}
 
/* ── 반응형 ── */
@media (max-width: 600px) {
    .charter-title h2 { font-size: 22px; }
    .charter-intro p { font-size: 14px; }
    .charter-item { gap: 14px; padding: 20px 0; }
    .charter-item-ko { font-size: 16px; }
    .charter-item-text { font-size: 13.5px; }
    .charter-closing p { font-size: 13px; }
}


.ds-notice-box {
    border: 1px solid #dde3f0;
    border-left: 4px solid #1346d4;
    border-radius: 0 8px 8px 0;
    background: #f7f9fd;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    margin-bottom:50px;
    gap: 8px;
}
.ds-notice-title {
    font-size: 18px;
    font-weight: 600;
    color: #1a2f5e;
    margin-bottom: 4px;
    word-break: keep-all;
}
.ds-notice-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #555;
    line-height: 1.7;
    word-break: keep-all;
}
.ds-notice-item span {
    display:flex;
    align-items:center;
    gap:10px;
}
.ds-notice-item::before {
    content: '–';
    color: #1346d4;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}
.ds-notice-contact {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 600;
    color: #1346d4;
}
.ds-notice-contact i {
    font-size: 12px;
    width: 25px;
    height: 25px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:40px;
    background:#1346d4;
    color:#fff;
}
@media (max-width: 480px) {
    .ds-notice-box { padding: 16px 18px; }
    .ds-notice-title { font-size: 13px; }
    .ds-notice-item {font-size: 13px;flex-wrap: wrap;}
    
    .ds-notice-item .phone {
        width:100%;
        flex-wrap:wrap;
    }
}

/* =========================================
   행정서비스헌장 추가 CSS
   — 기존 charter-wrap 구조 위에 덧씌움
========================================= */

/* 액자 테두리 */
.charter-service-wrap {
    border-top: 2px solid #1a2f5e;
    border-bottom: 2px solid #1a2f5e;
    border-left: 1px solid #c8d0e0;
    border-right: 1px solid #c8d0e0;
    position: relative;
}

/* 모서리 장식 */
.charter-service-wrap::before,
.charter-service-wrap::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    border: 2px solid #1a2f5e;
}
.charter-service-wrap::before {
    top: -2px;
    left: -2px;
}
.charter-service-wrap::after {
    bottom: -2px;
    right: -2px;
}

/* 리본 배지 */
.charter-service-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: #1a2f5e;
    color: #fff;
    padding: 18px 28px 28px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    text-align: center;
    position: relative;
    clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%);
    min-width: 130px;
}

/* 로마숫자 번호 스타일 */
.charter-service-num {
    background: transparent;
    color: #1a2f5e;
    border: none;
    font-size: 16px;
    font-weight: 700;
    width: 40px;
    height: auto;
    justify-content: flex-start;
    padding-top: 2px;
    font-family: 'Times New Roman', serif;
    letter-spacing: 0.05em;
}

/* 조항 아이템 간격 */
.charter-service-item {
    padding: 16px 0;
    align-items: flex-start;
}
.charter-service-item .charter-item-text {
    font-size: 15px;
    color: #333;
    line-height: 1.85;
    word-break: keep-all;
    margin: 0;
}

/* 도입 문구 텍스트 크기 */
.charter-service-wrap .charter-intro p {
    font-size: 15px;
    color: #444;
    line-height: 1.9;
}

/* 반응형 */
@media (max-width: 600px) {
    .charter-service-wrap {
        padding-top: 70px;
    }
    .charter-service-badge {
        font-size: 15px;
        min-width: 110px;
        padding: 14px 22px 24px;
    }
    .charter-service-item .charter-item-text {
        font-size: 14px;
    }
    .charter-service-wrap .charter-intro p {
        font-size: 14px;
    }
}

.dorm-info-row {
    display: flex;
    gap: 16px;
    margin-bottom: 40px;
}
.dorm-info-card {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f4f7fc;
    border: 1px solid #dde3f0;
    border-left: 4px solid #1346d4;
    border-radius: 0 8px 8px 0;
    padding: 18px 20px;
}
.dorm-info-icon {
    font-size: 22px;
    color: #1346d4;
    flex-shrink: 0;
}
.dorm-info-label {
    font-size: 13px;
    color: #888;
    display: block;
}
.dorm-info-value {
    font-size: 16px;
    font-weight: 700;
    color: #1a2f5e;
    display: block;
}
 
/* ── 층별 소개 ── */
.dorm-floor {
    margin-bottom: 40px;
}
.dorm-floor-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1346d4;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 5px 18px;
    border-radius: 4px;
    margin-bottom: 16px;
}
 
/* ── 방 카드 그리드 ── */
.dorm-floor-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.dorm-room-card {
    border: 1px solid #e4e8f0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: border-color 0.2s, transform 0.2s;
}
.dorm-room-card:hover {
    border-color: #1346d4;
    transform: translateY(-3px);
}
.dorm-room-img {
    width: 100%;
    aspect-ratio: 4 / 2.3;
    overflow: hidden;
    background: #eef1f8;
}
.dorm-room-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.dorm-room-body {
    padding: 14px 16px;
}
.dorm-room-name {
    font-size: 15px;
    font-weight: 700;
    color: #1a2f5e;
    margin: 0 0 6px;
}
.dorm-room-desc {
    font-size: 13px;
    color: #555;
    line-height: 1.75;
    margin: 0;
    word-break: keep-all;
}
 
/* ── 반응형 ── */
@media (max-width: 960px) {
    .dorm-floor-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 700px) {
    .dorm-info-row {
        flex-direction: column;
    }
    .dorm-floor-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}
@media (max-width: 480px) {
    .dorm-floor-grid {
        grid-template-columns: 1fr;
    }
    .dorm-room-img {
        aspect-ratio: 16 / 9;
    }
}

/* =========================================
   섹션 타이틀 (sc-header)
========================================= */
.sc-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}
.sc-header-icon {
    width: 30px;
    height: 30px;
    background: #1346d4;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.sc-header-icon svg {
    width: 20px;
    height: 20px;
    fill: #fff;
}
.sc-header-icon i {
    color: #fff;
    font-size: 14px;
}
.sc-header b {
    font-size: 20px;
    font-weight: 700;
    color: #1a2f5e;
    letter-spacing: -0.02em;
}

.civil-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 40px;
}
.civil-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    color: #333;
    table-layout: fixed;
}
.civil-table thead th {
    background: #1346d4;
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    padding: 14px 10px;
    text-align: center;
    border: 1px solid #2260a0;
    letter-spacing: 0.03em;
}
.civil-table tbody td {
    padding: 16px;
    text-align: center;
    border: 1px solid #dde3ec;
    line-height: 1.9;
    vertical-align: middle;
}
.civil-table tbody td.civil-cat {
    background: #fafbfd;
    font-weight: 600;
    color: #1346d4;
    padding: 16px 10px;
}
.civil-table tbody td.civil-fee {
    background: #f4f7fc;
    font-weight: 700;
    font-size: 15px;
    color: #1346d4;
    padding: 16px 10px;
}
.civil-table .civil-note {
    color: #555;
    font-size: 13px;
}

@media all and (max-width:480px) {
    
    .civil-table tbody td,
    .civil-table tbody td.civil-fee{
        font-size:14px;
    }
}

/* 2컬럼 테이블 col 비율 */
.civil-table.col-2-30-70 colgroup col:nth-child(1) { width: 20%; }
.civil-table.col-2-30-70 colgroup col:nth-child(2) { width: 80%; }

/* 설명 문단 */
.civil-desc {
    font-size: 14px;
    color: #444;
    line-height: 1.9;
    margin: 0 0 32px;
}
 
/* 이용시간 등 단순 강조 텍스트 */
.civil-info-text {
    font-size: 15px;
    font-weight: 600;
    color: #222;
    margin: 0 0 32px;
    padding-left: 4px;
}
 

/* =========================================
   진로전략 프로그램 추가 CSS
========================================= */
 
/* ── 프로그램 섹션 ── */
.prog-section {
    margin-bottom: 48px;
    border: 1px solid #e4e8f0;
    border-radius: 10px;
    overflow: hidden;
}
 
/* ── 섹션 헤더 ── */
.prog-section-head {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #f4f7fc;
    border-bottom: 1px solid #e4e8f0;
    padding: 14px 20px;
}
.prog-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: #1346d4;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    border-radius: 50%;
    flex-shrink: 0;
    letter-spacing: 0;
}
.prog-title {
    font-size: 17px;
    font-weight: 700;
    color: #1a2f5e;
    display: flex;
    align-items: center;
    gap: 10px;
}
.prog-grade {
    font-size: 12px;
    font-weight: 600;
    color: #1346d4;
    background: #e8effe;
    padding: 3px 10px;
    border-radius: 20px;
}
 
/* ── 섹션 본문 ── */
.prog-body {
    padding: 20px 24px 24px;
}
 
/* ── 설명 리스트 ── */
.prog-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 20px;
}
.prog-list li {
    padding-left: 14px;
    position: relative;
    font-size: 15px;
    color: #444;
    line-height: 1.8;
    word-break: keep-all;
}
.prog-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #1346d4;
}
 
/* ── 테이블 래퍼 (prog 전용 margin) ── */
.prog-table-wrap {
    margin-bottom: 20px;
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
}
.prog-table-wrap .civil-table {
    min-width:600px;
    
}
/* ── 사진 갤러리 ── */
.prog-gallery {
    display: grid;
    gap: 10px;
}
.prog-gallery.col-2 { grid-template-columns: repeat(2, 1fr); }
.prog-gallery.col-3 { grid-template-columns: repeat(3, 1fr); }
.prog-gallery.col-4 { grid-template-columns: repeat(4, 1fr); }
 
.prog-img-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 6px;
    background: #eef1f8;
    border: 1px solid #e4e8f0;
}
.prog-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
 
/* ── 반응형 ── */
@media (max-width: 960px) {
    .prog-gallery.col-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .prog-section-head { padding: 12px 16px; gap: 10px; }
    .prog-title { font-size: 15px; }
    .prog-body { padding: 16px; }
    .prog-list li { font-size: 14px; }
    .prog-gallery.col-3,
    .prog-gallery.col-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .prog-gallery.col-2,
    .prog-gallery.col-3,
    .prog-gallery.col-4 { grid-template-columns: repeat(2, 1fr); }
    
}

/* =========================================
   동아리 소개 추가 CSS — 시원시원 리디자인
========================================= */
 
/* ── 학년 소제목 ── */
.club-grade-title {
    font-size: 16px;
    font-weight: 700;
    color: #1a2f5e;
    margin: 0 0 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid #1346d4;
}
 
/* ── 카드 그리드 ── */
.club-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    margin-bottom: 56px;
    border-top: 1px solid #e0e4ef;
    border-left: 1px solid #e0e4ef;
}
 
/* ── 개별 카드 ── */
.club-card {
    background: #fff;
    border-right: 1px solid #e0e4ef;
    border-bottom: 1px solid #e0e4ef;
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: background 0.15s;
}
.club-card:hover {
    background: #f8f9fd;
}
 
/* ── 카드 헤더 ── */
.club-card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.club-name {
    font-size: 18px;
    font-weight: 700;
    color: #1a2f5e;
    line-height: 1.3;
}
.club-name-sub {
    font-size: 12px;
    font-weight: 400;
    color: #999;
    display: block;
    margin-top: 3px;
    letter-spacing: 0;
}
.club-teacher {
    font-size: 13px;
    color: #1346d4;
    font-weight: 600;
    flex-shrink: 0;
    white-space: nowrap;
}
 
/* ── 구분선 ── */
.club-card-divider {
    height: 1px;
    background: #f0f2f8;
}
 
/* ── 카드 본문 ── */
.club-desc {
    font-size: 14px;
    color: #555;
    line-height: 1.85;
    word-break: keep-all;
    margin: 0;
}
 
/* ── 역량 태그 ── */
.club-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 2px;
}
.club-tag {
    font-size: 12px;
    color: #888;
    background: #f5f6fa;
    border: 1px solid #e8eaf0;
    border-radius: 3px;
    padding: 2px 9px;
    white-space: nowrap;
}
 
/* ── 반응형 ── */
@media (max-width: 700px) {
    .club-grid {
        grid-template-columns: 1fr;
    }
    .club-card {
        padding: 18px 20px;
    }
    .club-name {
        font-size: 16px;
    }
}

/* ── 타이틀 ── */
.curr-title {
    font-size: 17px;
    font-weight: 700;
    color: #1a2f5e;
    margin: 0 0 20px;
    padding: 12px 18px;
    background: #f4f7fc;
    border-left: 4px solid #1346d4;
    border-radius: 0 6px 6px 0;
}
 
/* ── 반응형 래퍼 ── */
.curr-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 16px;
}
 
/* ── 테이블 기본 ── */
.curr-table {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
    font-size: 13px;
    color: #333;
}
 
/* ── 헤더 (1,2행) ── */
.curr-table thead th {
    background: #1a2f5e;
    color: #fff;
    font-weight: 600;
    font-size: 12px;
    padding: 10px 6px;
    text-align: center;
    border: 1px solid #2a3f6e;
    vertical-align: middle;
    line-height: 1.5;
    white-space: nowrap;
}
/* 1학년/2학년/3학년 colspan 헤더 컬러 구분 */
.curr-table thead tr:first-child th.blue01 { background: #1e3a7e; }
.curr-table thead tr:first-child th.last { background: #1346d4; }
.curr-table thead tr:first-child th.last,
.curr-table thead tr:first-child th.last { background: #1346d4; }
 
/* 2행 학기 서브헤더 */
.curr-table thead tr:last-child th { background: #2d4a80; font-size: 11px; }
 
/* ── tbody 기본 셀 ── */
.curr-table tbody td {
    padding: 8px 6px;
    text-align: center;
    border: 1px solid #dde3ec;
    vertical-align: middle;
    line-height: 1.6;
    font-size: 12px;
}
 
/* ── 구분 (학교지정/2학년선택/3학년선택) ── */
.curr-table tbody td.sub,
.curr-table tbody td:first-child {
    background: #f0f4fb !important;
    font-weight: 700;
    font-size: 12px;
    color: #1346d4 !important;
    white-space: nowrap;
}
.curr-table tbody td.sub2{
    background: #fafbfd !important;
    font-size: 11px;
    color: #555 !important;
    font-weight: 500;
    }
/* ── 교과군 셀 ── */
.curr-table tbody td:nth-child(2) {
    background: #fafbfd;
    font-size: 11px;
    color: #555;
    font-weight: 500;
}
 

 
 
/* 공통/일반/진로/융합 텍스트 색상 */
.curr-table tbody tr td:nth-child(4)[data-type="공통"] { color: #1346d4; }
.curr-table tbody tr td:nth-child(4)[data-type="일반"] { color: #2a7a55; }
.curr-table tbody tr td:nth-child(4)[data-type="진로"] { color: #a05000; }
.curr-table tbody tr td:nth-child(4)[data-type="융합"] { color: #7a2080; }
 

 
/* ── 학기별 학점 칸 (7~12번째 td) ── */

 
/* ── 운영학점 (마지막 td) ── */
.curr-table tbody td.last {
    background: #1a2f5e;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
}
 
/* ── 합계 행 그룹 ── */
.tr-total td {
    background: #1a2f5e !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-align: center !important;
    padding: 10px 6px !important;
}
.tr-total-sub td {
    background: #2d4a80 !important;
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-align: center !important;
    padding: 10px 6px !important;
}
.tr-total-all td {
    background: #1346d4 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-align: center !important;
    padding: 11px 6px !important;
}
.tr-count td {
    background: #f4f7fc !important;
    color: #555 !important;
    font-size: 12px !important;
    text-align: center !important;
}
 
/* ── 편성 조건 행 ── */
.tr-check-head td {
    background: #eef1fa !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    color: #1a2f5e !important;
    text-align: center !important;
    padding: 9px 6px !important;
}
.tr-check-val td {
    background: #fff !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    color: #1346d4 !important;
    text-align: center !important;
    padding: 7px 6px !important;
}
.tr-check-sub td {
    background: #fafbfd !important;
    font-size: 11px !important;
    color: #555 !important;
    text-align: center !important;
    padding: 8px 6px !important;
    line-height: 1.6 !important;
}
 
/* ── 범례 ── */
.curr-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12px;
    color: #555;
    margin-top: 8px;
    padding: 10px 16px;
    background: #f9fafb;
    border: 1px solid #e8eaf0;
    border-radius: 6px;
}
.curr-legend span { display: flex; align-items: center; gap: 5px; }
.curr-legend .lg-common { color: #1346d4; font-weight: 700; }
.curr-legend .lg-general { color: #2a7a55; font-weight: 700; }
.curr-legend .lg-career  { color: #a05000; font-weight: 700; }
.curr-legend .lg-fusion  { color: #7a2080; font-weight: 700; }


@charset "utf-8";
/* ======================================================
   대전대성고등학교 - 사회통합전형 안내
   - CSS 커스텀 프로퍼티 미사용 / 6-digit hex
   - ds- prefix / FontAwesome 4.7
   ====================================================== */

.ds-social { font-family:"Noto Sans KR","맑은 고딕","Malgun Gothic",sans-serif; color:#333333; line-height:1.6; }
.ds-social *,.ds-social *::before,.ds-social *::after { box-sizing:border-box; }
.ds-social img { max-width:100%; height:auto; display:block; }
.ds-blind { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* ---------- 상단 헤더 ---------- */
.ds-social__head { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; padding-bottom:24px; margin-bottom:40px; border-bottom:2px solid #1a4f8b; }
.ds-social__eyebrow {display:inline-block;font-size:13px;font-weight:700;letter-spacing:3px;color: #1346d4;margin-bottom:6px;}
.ds-social__title { margin:0; font-size:32px; font-weight:800; color:#1a3050; letter-spacing:-1px; }

/* ---------- 다운로드 버튼 ---------- */
.ds-social__downloads { display:flex; gap:12px; flex-wrap:wrap; }
.ds-dlbtn { display:flex; align-items:center; gap:12px; min-width:190px; padding:12px 18px; border-radius:12px; text-decoration:none; color:#ffffff; transition:transform .2s ease, box-shadow .2s ease; box-shadow:0 6px 14px rgba(0,0,0,0.12); }
.ds-dlbtn:hover { transform:translateY(-3px); box-shadow:0 12px 22px rgba(0,0,0,0.18); }
.ds-dlbtn__ico { color:#fff !important;display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:10px; background:rgba(255,255,255,0.22); font-size:18px; flex-shrink:0; }
.ds-dlbtn__txt {color:#fff !important; display:flex; flex-direction:column; line-height:1.3; }
.ds-dlbtn__txt strong { font-size:15px; font-weight:700; color:#fff !important; }
.ds-dlbtn__txt em { color:#fff !important;font-size:12px; font-style:normal; opacity:.9; margin-top:2px; }
.ds-dlbtn__txt em i { margin-left:3px; color:#fff !important;}
.ds-dlbtn--blue {background: linear-gradient(135deg,#1346d4 0%,#2b6cb5 100%);}
.ds-dlbtn--teal { background:linear-gradient(135deg,#2f8f7f 0%,#46b39d 100%); }
.ds-dlbtn--sky  { background:linear-gradient(135deg,#3a8fc7 0%,#5bb3e0 100%); }

/* ---------- 인트로 배너 ---------- */
.ds-social__intro {position:relative;overflow:hidden;border-radius:18px;padding:54px 40px;margin-bottom:60px;background: linear-gradient(135deg,#1346d4 0%,#10705f 55%,#2f9c6f 100%);color:#ffffff;text-align:center;}
.ds-social__intro::before { content:""; position:absolute; top:-60px; right:-40px; width:220px; height:220px; border-radius:50%; background:rgba(255,255,255,0.08); }
.ds-social__intro::after { content:""; position:absolute; bottom:-70px; left:-30px; width:180px; height:180px; border-radius:50%; background:rgba(255,255,255,0.07); }
.ds-social__intro-inner { position:relative; z-index:1; }
.ds-social__intro-sub { font-size:16px; opacity:.95; margin:0 0 14px; }
.ds-social__intro-sub b { font-weight:800; border-bottom:2px solid #ffe34d; padding-bottom:2px; }
.ds-social__intro-tit { font-size:40px; font-weight:900; margin:0 0 16px; letter-spacing:-1px; }
.ds-social__intro-tit span { display:inline-block; color:#ffe34d; }
.ds-social__intro-desc { font-size:15px; line-height:1.8; opacity:.92; margin:0; }

/* ---------- 섹션 공통 ---------- */
.ds-section { margin-bottom:64px; }
.ds-section__head { display:flex; align-items:flex-start; gap:18px; margin-bottom:26px; }
.ds-section__num {flex-shrink:0;width:48px;height:48px;border-radius:12px;background: #1346d4;color:#ffffff;font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 12px rgba(26,79,139,0.28);}
.ds-section__titles { padding-top:2px; }
.ds-section__title { margin:0 0 6px; font-size:24px; font-weight:800; color:#1a3050; letter-spacing:-0.5px; }
.ds-section__title small { font-size:16px; color:#2f8f7f; font-weight:700; }
.ds-section__lead { margin:0; font-size:14px; color:#7a8290; }
.ds-section__lead b { color:#1a4f8b; font-weight:800; }

/* ---------- D.D.D ---------- */
.ds-ddd { display:flex; gap:36px; align-items:center; flex-wrap:wrap; padding:34px; border-radius:18px; background:#fff; border:1px solid #e1ebf5; }
.ds-ddd__list { flex:1 1 380px; list-style:none; margin:0; padding:0; }
.ds-ddd__list li { position:relative; padding:9px 0 9px 4px; font-size:14.5px; color:#404a58; border-bottom:1px dashed #d9e4f0; }
.ds-ddd__list li:last-child { border-bottom:0; }
.ds-ddd__list li i { color:#2f9c6f; margin-right:8px; }
.ds-ddd__figure { flex:1 1 340px; margin:0; text-align:center; }
.ds-ddd__figure img { margin:0 auto; max-width:420px; }

/* ---------- 표 공통 ---------- */
.ds-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ds-table { width:100%; border-collapse:collapse; min-width:620px; font-size:14px; background:#ffffff; }
.ds-table th,.ds-table td { border:1px solid #d7e0ea; padding:13px 12px; text-align:center; vertical-align:middle; }
.ds-table thead th { background:#1a4f8b; color:#ffffff; font-weight:700; }
.ds-table thead th span { display:block; font-size:11.5px; font-weight:400; opacity:.85; margin-top:3px; }
.ds-table tbody th { background:#eef4fa; color:#1a3050; font-weight:700; }
.ds-table__sub { background:#f5f9fd !important; font-weight:600 !important; }
.ds-table__center { text-align:center; }
.ds-table__merge { background:#f9fbfd; }
.ds-table td b { color:#1a4f8b; }

/* ---------- 제출 서류 ---------- */
.ds-docs {margin-bottom:34px;border:1px solid #e1ebf5;overflow:hidden;}
.ds-docs__head {display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:16px 22px;margin-bottom: 10px;}
.ds-docs__head--blue { background:#eaf2fb; border-bottom:2px solid #1a4f8b; }
.ds-docs__head--teal { background:#e7f5f0; border-bottom:2px solid #2f8f7f; }
.ds-docs__tit { margin:0; font-size:18px; font-weight:800; color:#1a3050; }
.ds-docs__head--blue .ds-docs__tit i {color: #1a4f8b;}
.ds-docs__head--teal .ds-docs__tit i { color:#2f8f7f; }
.ds-docs__note { font-size:13px; color:#6a7686; font-weight:600; }
.ds-docs .ds-table-wrap { padding:0; }
.ds-docs .ds-table { min-width:560px; }
.ds-docs .ds-table th,.ds-docs .ds-table td { border-left:0; border-right:0; }
.ds-docs .ds-table td:not(.ds-table__center) { text-align:left; }
.ds-docs__strong { display:block; color:#c0398a; font-weight:800; font-size:15px; margin-bottom:6px; }
.ds-docs__small { display:block; margin-top:6px; font-size:12px; color:#8a93a0; line-height:1.55; }

/* ---------- 학교장 추천 방법 (플로우) ---------- */
.ds-flow { list-style:none; margin:0; padding:0; display:flex; gap:14px; flex-wrap:wrap; counter-reset:flow; }
.ds-flow__item { position:relative; flex:1 1 175px; background:#ffffff; border:1px solid #e1ebf5; border-radius:14px; padding:24px 18px 22px; text-align:center; box-shadow:0 4px 10px rgba(26,79,139,0.06); }
.ds-flow__item::before {counter-increment:flow;content:counter(flow);position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:26px;height:26px;line-height:26px;border-radius:50%;background: #1346d4;color:#ffffff;font-size:13px;font-weight:700;}
.ds-flow__item:not(:last-child)::after { content:"\f105"; font-family:"FontAwesome"; position:absolute; top:50%; right:-13px; transform:translateY(-50%); color:#b8c9dc; font-size:22px; z-index:1; }
.ds-flow__badge {display:inline-block;padding:4px 14px;border-radius:20px;background:#eaf2fb;color: #1346d4;font-size:12px;font-weight:700;margin-bottom:12px;}
.ds-flow__act { display:block; font-size:15px; font-weight:800; color:#1a3050; line-height:1.4; }
.ds-flow__desc { display:block; margin-top:10px; font-size:12px; color:#7a8290; line-height:1.6; }

/* ---------- 다양한 프로그램 ---------- */
.ds-programs { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.ds-programs__item { background:#ffffff; border:1px solid #e6edf4; border-radius:14px; padding:26px 14px; text-align:center; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.ds-programs__item:hover { transform:translateY(-4px); box-shadow:0 12px 22px rgba(26,79,139,0.12); border-color:#bdd5ec; }
.ds-programs__thumb {display:flex;align-items:center;justify-content:center;margin:0 auto 14px;border-radius: 10px;background:linear-gradient(135deg,#1a4f8b 0%,#3a8fc7 100%);color:#ffffff;font-size:26px;padding: 10px;}
.ds-programs__item:nth-child(even) .ds-programs__thumb { background:linear-gradient(135deg,#2f8f7f 0%,#5bbf9d 100%); }
.ds-programs__name { display:block; font-size:14.5px; font-weight:700; color:#37404e; }
.social_img {display:flex; justify-content: center; align-items: center; width:100%;}
#ctt_con .social_img img {max-width:700px; width:100% !important; }
/* ---------- 반응형 ---------- */
@media (max-width:1024px){
  .ds-social__head { align-items:flex-start; }
  .ds-programs { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px){
  .ds-social__title { font-size:26px; }
  .ds-social__downloads { width:100%; }
  .ds-dlbtn { flex:1 1 100%; min-width:0; }
  .ds-social__intro { padding:40px 22px; }
  .ds-social__intro-tit { font-size:28px; }
  .ds-ddd { padding:22px; }
  .ds-section__title { font-size:20px; }
  .ds-flow { gap:30px 14px; }
  .ds-flow__item { flex:1 1 100%; }
  .ds-flow__item:not(:last-child)::after { content:"\f107"; top:auto; right:50%; bottom:-26px; transform:translateX(50%); }
  .ds-programs { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px){
  .ds-section__head { gap:12px; }
  .ds-section__num { width:40px; height:40px; font-size:17px; }
  .ds-programs { grid-template-columns:repeat(2,1fr); gap:12px; }
}

@charset "utf-8";
/* ======================================================
   대전대성고등학교 - 학교투어 신청 안내
   key color : #1346d4   /  Font Awesome 4.7.0
   prefix    : tour-
   ====================================================== */

.tour-page { font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif; color:#1e293b; line-height:1.7; margin:0 auto; }
.tour-page *,.tour-page *::before,.tour-page *::after { box-sizing:border-box; }
.tour-page img { max-width:100%; display:block; }
.tour-blind { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }

/* ---------- 헤더 ---------- */
.tour-hd { text-align:center; margin-bottom:36px; }
.tour-hd__tag { display:inline-block; background:#1346d4; color:#ffffff; font-size:12px; font-weight:700; letter-spacing:1.5px; padding:5px 16px; border-radius:20px; margin-bottom:16px; }
.tour-hd__title { font-size:30px; font-weight:800; color:#15224a; letter-spacing:-1px; margin:0 0 12px; word-break:keep-all; }
.tour-hd__sub { font-size:15px; color:#6b7280; margin:0; word-break:keep-all; }
.tour-hd__bar { width:52px; height:4px; background:#1346d4; border-radius:2px; margin:18px auto 0; }

/* ---------- 메인 이미지 ---------- */
.tour-hero { border-radius:18px; overflow:hidden; box-shadow:0 16px 36px rgba(21,34,74,0.16); margin-bottom:56px; }
.tour-hero img { width:100%; height:auto; }

/* ---------- 블록 / 서브타이틀 ---------- */
.tour-block { margin-bottom:56px; }
.tour-block:last-child { margin-bottom:0; }
.tour-sub-tit { font-size:21px; font-weight:800; color:#15224a; margin:0 0 22px; padding-left:14px; border-left:4px solid #1346d4; }
.tour-lead { text-align:left; margin:-10px 0 24px; }

/* ---------- 안내 정보 ---------- */
.tour-info { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.tour-info__item { background:#ffffff; border:1px solid #e3e9f2; border-radius:16px; padding:30px 24px; text-align:center; transition:transform .2s, box-shadow .2s, border-color .2s; }
.tour-info__item:hover { transform:translateY(-4px); box-shadow:0 14px 28px rgba(19,70,212,0.1); border-color:#b9c9ec; }
.tour-info__ico { display:flex; align-items:center; justify-content:center; width:60px; height:60px; margin:0 auto 16px; border-radius:50%; background:#1346d4; color:#ffffff; font-size:26px; }
.tour-info__label { display:block; font-size:17px; font-weight:800; color:#15224a; margin-bottom:10px; }
.tour-info__desc { font-size:14px; color:#5a6478; margin:0; word-break:keep-all; line-height:1.7; }

/* ---------- 일정 표 ---------- */
.tour-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:14px; box-shadow:0 6px 18px rgba(21,34,74,0.07); margin-bottom:26px; }
.tour-table { width:100%; border-collapse:collapse; min-width:560px; font-size:15px; background:#ffffff; }
.tour-table th,.tour-table td { padding:18px 16px; text-align:center; vertical-align:middle; border-bottom:1px solid #e8edf5; word-break:keep-all; }
.tour-table thead th { background:#15224a; color:#ffffff; font-weight:700; font-size:16px; border-bottom:0; }
.tour-table tbody tr:last-child th,.tour-table tbody tr:last-child td { border-bottom:0; }
.tour-table tbody tr:nth-child(even) td,
.tour-table tbody tr:nth-child(even) .tour-table__round { background:#f6f9fe; }
.tour-table__round { background:#eef3fd; color:#1346d4; font-size:20px; font-weight:800; }
.tour-table td { color:#334155; font-weight:600; }
.tour-table td span { display:block; margin-top:4px; font-size:13px; font-weight:400; color:#94a3b8; }

/* ---------- 유의사항 ---------- */
.tour-notes { list-style:none; margin:0; padding:24px 26px; background:#f4f7fb; border:1px solid #dce4f0; border-radius:14px; }
.tour-notes li { position:relative; padding:7px 0 7px 28px; font-size:14px; color:#475569; word-break:keep-all; }
.tour-notes li i { position:absolute; left:0; top:9px; color:#1346d4; font-size:15px; }

/* ---------- 신청 CTA ---------- */
.tour-cta { margin-top:48px; text-align:center; background:linear-gradient(135deg,#15224a 0%,#1346d4 100%); border-radius:18px; padding:44px 30px; }
.tour-cta__msg { font-size:20px; font-weight:800; color:#ffffff; margin:0 0 22px; letter-spacing:-0.5px; word-break:keep-all; }
.tour-cta__btn { display:inline-flex; align-items:center; gap:10px; background:#ffffff; color:#1346d4; font-size:16px; font-weight:800; padding:15px 38px; border-radius:30px; text-decoration:none; transition:transform .2s, box-shadow .2s; box-shadow:0 8px 18px rgba(0,0,0,0.18); }
.tour-cta__btn:hover { transform:translateY(-3px); box-shadow:0 14px 26px rgba(0,0,0,0.26); }
.tour-cta__btn i { font-size:17px; }

/* ======================================================
   반응형
   ====================================================== */
@media (max-width:900px){
  .tour-info { grid-template-columns:repeat(2,1fr); }
  /* 5개 항목 → 마지막(신청 인원) 2칸 차지해서 중앙정렬 */
  .tour-info__item:last-child { grid-column:1 / -1; }
}
@media (max-width:600px){
  .tour-hd__title { font-size:23px; }
  .tour-hd__sub { font-size:14px; }
  .tour-hero { border-radius:12px; margin-bottom:40px; }
  .tour-block { margin-bottom:42px; }
  .tour-sub-tit { font-size:18px; }
  .tour-info { grid-template-columns:1fr; gap:14px; }
  .tour-info__item { padding:26px 22px; }
  .tour-info__item:last-child { grid-column:auto; }
  .tour-table th,.tour-table td { padding:14px 12px; font-size:14px; }
  .tour-table thead th { font-size:14px; }
  .tour-table__round { font-size:17px; }
  .tour-table td span { font-size:12px; }
  .tour-notes { padding:20px 18px; }
  .tour-notes li { font-size:13px; }
  .tour-cta { padding:36px 22px; }
  .tour-cta__msg { font-size:17px; }
  .tour-cta__btn { font-size:15px; padding:14px 30px; width:100%; justify-content:center; }
}