/* 특색프로그램 상단 가로 메뉴 (edudata_listmenu 스타일 — /plan/edu/edu_list.htm과 동일) */
.spedu-tab-wrap { width:1024px; margin:25px auto 20px; }
.spedu-tab-wrap .edudata_listmenu {
    width:1024px; margin:0 auto; text-align:center;
    display:flex; flex-wrap:wrap; justify-content:center; gap:0 10px;
    padding:0; list-style:none;
}
/* 탭 너비 가변 (탭명 길이만큼) → 남는 폭은 균등 분배 */
.spedu-tab-wrap .edudata_listmenu > li { margin:0; position:relative; flex:1 1 auto; box-sizing:border-box; }
/* 줄바꿈 (6개마다) */
.spedu-tab-wrap .edudata_listmenu .tab-break { flex:0 0 100%; height:10px; padding:0; border:0; background:none; }
/* 활성 탭 */
.spedu-tab-wrap .edudata_listmon {
    display:inline-block; height:40px;
    border:1px solid var(--color-primary); border-radius:8px; background-color:var(--color-primary);
}
.spedu-tab-wrap .edudata_listmon:hover .edudata_listmt { text-decoration:none; }
.spedu-tab-wrap .edudata_listmon .edudata_listmt {
    display:block; height:40px; padding:0 13px;
    font-family:NanumSquareRoundB!important; font-size:15px; color:#000;
    text-align:center; line-height:40px; text-decoration:none;
}
/* 비활성 탭 */
.spedu-tab-wrap .edudata_listmoff {
    display:inline-block; height:40px;
    border:1px solid #b8b8b8; border-radius:8px; background-color:#fff;
}
.spedu-tab-wrap .edudata_listmoff:hover {
    border:1px solid var(--color-primary); background-color:var(--color-primary);
}
.spedu-tab-wrap .edudata_listmoff .edudata_listmt {
    display:block; height:40px; padding:0 10px;
    font-family:NanumSquareRoundR!important; font-size:15px; color:#878787;
    text-align:center; line-height:41px; text-decoration:none;
}
.spedu-tab-wrap .edudata_listmoff:hover .edudata_listmt { color:#333; }
/* 활성 탭 하단 동그라미 표시 */
.spedu-tab-wrap .edudata_listmon .edudata_listmp {
    width:6px; height:6px; display:block; margin:-3px auto 0;
    border:2px solid #fff; border-radius:5px; background-color:#ffa204;
}
.spedu-tab-wrap .edudata_listmoff .edudata_listmp { display:none; }
/* 우측상단 뱃지 (NEW 등) */
.spedu-tab-wrap .icon-badges {
    position:absolute; top:-8px; right:-5px;
    display:flex; gap:2px; z-index:2;
}
.spedu-tab-wrap .icon-badges img { display:block; width:18px; height:auto; }

/* 페이지 타이틀 옆 ? 아이콘 + 호버 툴팁
   핵심 fix: wrapper를 아이콘 크기(20×20)로 명시 고정 → h2의 큰 line-height를 상속받지 않게.
            ::after가 정확히 아이콘 바로 아래에 붙어서 아이콘 → 브릿지 → 툴팁이 끊김 없이 연결됨. */
.notice_pagetitle .btn-question-wrap {
    position:relative; display:inline-block;
    width:20px; height:20px;        /* 아이콘 크기로 강제 고정 */
    margin-left:10px; margin-top:3px;
    vertical-align:middle;
    line-height:1;                  /* h2의 line-height 상속 차단 */
    font-size:0;                    /* 인라인 공백 제거 */
}
.notice_pagetitle .btn-question-wrap .btn-question {
    display:block; width:100%; height:100%;
    color:#3E5FAC; font-size:18px; text-decoration:none; cursor:pointer;
    line-height:1;
}
.notice_pagetitle .btn-question-wrap .btn-question i {
    display:block;
}
/* 아이콘 ↔ 툴팁 박스 사이 투명 브릿지 — wrapper 본체로 hit-test됨
   툴팁이 오른쪽으로 60px 시프트되므로 브릿지도 동일하게 이동 (마우스 이동 경로 끊김 방지) */
.notice_pagetitle .btn-question-wrap::after {
    content:""; position:absolute;
    top:100%; left:calc(50% + 30px); transform:translateX(-50%);
    width:380px; height:20px;
    /* background:rgba(255,0,0,0.15); */ /* 디버깅용 — 풀면 빨간 띠로 위치 확인 */
}
.notice_pagetitle .btn-question-wrap .popup-tooltip {
    position:absolute; top:calc(100% + 18px);
    left:calc(50% + 30px); transform:translateX(-50%);   /* 아이콘 중심에서 오른쪽 60px 시프트 */
    display:none; z-index:99;
    font-size:14px;                 /* font-size:0 상속 차단 */
    line-height:1.5;
}
.notice_pagetitle .btn-question-wrap:hover .popup-tooltip { display:block; }

/* 페이지 타이틀 좌측 정렬 + 메인-서브 인라인 (edu_list.htm 스타일)
   edudata_wrap (12카테고리 상단 탭) 위로 올린 형태 — notice_wrap 외부에서도 사용 */
.notice_pagetitle.pagetitle-flex {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    width:1024px;
    margin:24px auto 2px;
    font-size:28px;
    font-weight:bold;
    color:#333;
    letter-spacing:-0.5px;
}
.notice_pagetitle.pagetitle-flex .pagetitle-sub {
    font-size:20px;
    margin-left:10px;
    color:#999;
    font-weight:700;
}
/* 타이틀 우측 경로 (breadcrumb) */
.notice_pagetitle.pagetitle-flex .pagetitle-path {
    margin-left:auto;
    font-size:13px;
    color:#777;
    font-weight:normal;
    display:inline-flex;
    align-items:center;
}
.notice_pagetitle.pagetitle-flex .pagetitle-path img {
    vertical-align:middle;
    margin-right:4px;
}
.pagetitle-desc {
    display:block;
    width:1024px;
    margin:0 auto 16px;
    font-size:14px;
    color:#888;
    font-weight:normal;
}

/* spedu 서브탭 — 박스형 + 연한 배경 + 활성 탭 인셋 밑줄
   selector를 .spedu-sub-tab으로 구체화하여 다른 페이지의 tab-sub과 충돌 차단 */
ul.tab-sub.spedu-sub-tab {
    display:flex !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    width:1024px;
    margin:0 auto 0 !important;
    padding:0 !important;
    list-style:none;
    background:#fbfcfd;
    border:1px solid #e5e5e5;     /* 박스 사방 보더 */
    border-radius:6px;
    position:relative;
    overflow:visible;
}
ul.tab-sub.spedu-sub-tab::after { display:none !important; }
ul.tab-sub.spedu-sub-tab li {
    flex:0 0 auto !important;
    border:none !important;
    background:transparent !important;   /* 활성/비활성 모두 같은 배경 */
    height:42px;
    line-height:42px;
    padding:0;
    margin:0 !important;
    text-align:center;
    cursor:pointer;
    position:relative;
}
ul.tab-sub.spedu-sub-tab li:first-child { border-left:none !important; }
ul.tab-sub.spedu-sub-tab li a {
    display:block; width:100%; height:100%;
    padding:0 22px;
    color:#555;
    text-decoration:none;
    font-size:13px;
    font-weight:normal;
    box-sizing:border-box;
}
ul.tab-sub.spedu-sub-tab li.active {
    border:none !important;
    background:transparent !important;   /* 흰색 배경 X — 다른 탭과 동일 */
}
ul.tab-sub.spedu-sub-tab li.active a {
    color:var(--color-point);
    font-weight:bold;
}
/* 활성 탭 밑줄 — 박스 안쪽으로 인셋, 텍스트 영역 정도 폭 */
ul.tab-sub.spedu-sub-tab li.active::after {
    content:"";
    position:absolute;
    left:14px; right:14px;
    bottom:6px;
    height:2px;
    background:var(--color-point);
    border-radius:1px;
}

/* span으로 변환된 popup 내부 요소들을 block처럼 보이게 (div와 동일 레이아웃) */
.notice_pagetitle .popup-tooltip .popup-box-v2,
.notice_pagetitle .popup-tooltip .popup-title-v2,
.notice_pagetitle .popup-tooltip .popup-msg-v2,
.notice_pagetitle .popup-tooltip .popup-msg-v2 .line {
    display:block;
}
.notice_pagetitle .popup-tooltip .popup-msg-v2 .line + .line { margin-top:10px; }
.notice_pagetitle .popup-tooltip em { font-style:normal; }

/* 스마트프렌즈 서브탭과 본문 사이 간격 */
.notice_wrap .planEdu_tabwrap + .content-friend { margin-top:24px; }

.content-friend {width:100%;}
.friend-desc {margin-top:20px;font-size:16px;color:#333;}

.month-block {
    margin-top:50px;
    border: 1px solid var(--color-primary);
    border-radius:6px;
    background: #fff;
}

/*
.month-block.literacy {border-color:#eaad00;}
.month-block.korean {border-color:#0a3d91;}
.month-block.math {border-color:#D35400;}
.month-block.feel_connect {border-color:#388E3C;}
*/

.month-title {
    text-align: center;
    margin-bottom: 1rem;
    font-weight: normal;
}

.bookSwiper  {margin-top:0 !important;padding-top:0 !important;padding-bottom:50px !important;}
.swiper-slide {
    text-align: center;
}

.swiper-slide img {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    border-radius: 10px;
    transition: transform 0.3s ease;
}

.swiper-slide img:hover {
    transform: scale(1.05);
}

.swiper-button-next,
.swiper-button-prev {
    color: #c8b58f;
}
.swiper-pagination-bullet {
    background: #fff;
    border:solid 1px #ddd;
    opacity: 0.7;
}
.swiper-pagination-bullet-active {
    opacity: 1;
}

.book-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0;
    justify-items: center;
}

.book-group .btn-ebook {
    width: 100%;
    max-width: 220px;
}

.book-group img {
    width: 100%;
    max-width: none;
    border-radius: 10px;
    transition: transform 0.3s ease;
    cursor:pointer;
}

.book-group img:hover {
    transform: scale(1.05);
}

.month-header {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    max-width:221px;
    margin:0 auto;
    margin-top:-14px;
    margin-bottom: 1rem;
    background:#fff;
}

.month-header h4 {
    font-size:23px;
    font-weight: 700;
    margin: 0 2.5rem;
    text-align: center;
}



.swiper-button-prev,.swiper-button-next  {
    width:40px !important;height:40px !important;display:flex;align-items:center;justify-content: center;
}

.month-prev,.month-next {
    border-radius:50px;
    background:#fff;border:solid 1px #eee;box-shadow:0 0px 15px rgba(0, 0, 0, 0.1);
}
.month-prev:after,.month-next:after {color:#333;font-size:14px;font-weight:bold;}




.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {bottom:10px !important;}
.swiper-pagination-bullet-active {background:#ddd !important;}

.level-tabs {
    display: grid;
    justify-content: flex-start;
    border-bottom: 1px solid var(--color-primary);
    margin-top: 30px;
    height: 46px;
    grid-template-columns:repeat(4,1fr);
}

/*
.level-tabs.literacy {border-color:#eaad00;}
.level-tabs.korean {border-color:#0a3d91;}
.level-tabs.math {border-color:#D35400;}
.level-tabs.feel_connect {border-color:#388E3C;}
*/
.level-tabs .tab-btn {
    background: #fff;
    border: 1px solid #ddd;
    border-bottom: none;
    padding: 0.7rem 1.2rem;
    cursor: pointer;
    font-size: 13px;
    border-radius: 0;
    height: 46px;
    margin-right: -1px;
    position: relative;
    top: 1px;
    border-bottom: 2px solid var(--color-point);

    color:#555;
}

/*
.level-tabs.literacy .tab-btn {border-color:#eaad00;}
.level-tab.koreans .tab-btn {border-color:#0a3d91;}
.level-tabs.math .tab-btn {border-color:#D35400;}
.level-tabs.feel_connect .tab-btn {border-color:#388E3C;}
*/

.level-tabs .tab-btn.active {
    border: 2px solid var(--color-point);
    border-bottom: 2px solid #fff;
    color: var(--color-point);
    z-index: 1;
    font-weight:bold;
}

/*
.level-tabs.literacy .tab-btn.active {border-color:#eaad00;border-bottom: 1px solid #fff;color:#eaad00;}
.level-tabs.koreans .tab-btn.active {border-color:#0a3d91;border-bottom: 1px solid #fff;color:#0a3d91;}
.level-tabs.math .tab-btn.active {border-color:#D35400;border-bottom: 1px solid #fff;color:#D35400;}
.level-tabs.feel_connect .tab-btn.active {border-color:#388E3C;border-bottom: 1px solid #fff;color:#388E3C;}
*/

.tab-content {
    display: none;
    margin-top: 1rem;
}

.tab-content.active {
    display: block;
}

.level-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;       /* col width 정확히 반영 */
    word-break: keep-all;      /* 한글 단어 끊김 방지 */
}

.level-table th,
.level-table td {
    border: 1px solid #ddd;
    padding: 0.8rem;
    text-align: center;
}

.level-table td {height:65px;}
.level-table td.math {
    text-align:left;
    padding-left:30px;
    vertical-align:middle;    /* rowspan=12 셀 내용 세로 중앙 정렬 */
}
.level-table td.math strong {font-weight:bold;margin-bottom:5px;display:flex;}
.level-table td.math div {height:22px;}
.level-table td.math div + strong {margin-top:20px;}


.level-table th {
    background: #f9f9f9;
}

.level-table tr td .btn-link {padding:6px 8px;background: #e1effa;border-radius:8px;display:inline-flex;align-items: center;justify-content: center;text-decoration: none;}
.level-table tr td .btn-link:hover {color:#fff;background:var(--color-point);}
.level-table tr td .btn-link i {margin-right:4px;color:var(--color-point);}
.level-table tr td .btn-link.full {grid-column: 1 / -1; }
.level-table tr td .btn-link:hover i {color:#fff;}
.level-table tr td .btn-free {background:none;position:relative;}
.level-table tr td .btn-free:hover {background:none;}
.level-table tr td .btn-free:hover i {background:none;color:var(--color-point);}

.level-table tr td .tooltip-fixed {
    background:var(--color-primary);
    color: #fff;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 12px;
    position: absolute;
    display:flex;
    top:20px;
    width:80px;
    align-items: center;
    justify-content: center;
    right:10px;
}

.level-table tr td .tooltip-fixed::after {
    content: "";
    position: absolute;
    left:50%;  /* 꼬리 위치 */
    top: -5px;
    transform: translateX(3%);
    border-width: 5px;
    border-style: solid;
    border-color: transparent #333 transparent transparent;
}


.workbook-preview {
    background: #e6f0fb;
    padding: 1.5rem;
    margin: 2rem 0;
    border-radius: 6px;
}

.workbook-preview.literacy {background:#FFF8E1;}
.workbook-preview.math {background:#FFE0B2;}
.workbook-preview.feel_connect {background: #ddf1dd;}

.workbook-preview h3 {
    text-align: center;
    font-size: 18px;
    margin-bottom: 1rem;
    color: #0a3d91;
    font-weight: bold;
}
.workbook-preview h3 strong {font-weight:bold;}

.workbook-preview.literacy h3 {color: #eaad00;}
.workbook-preview.math h3 {color:#D35400;}
.workbook-preview.feel_connect h3 {color:#388E3C;}

.workbook-preview h3 span {
    color: #333;
    font-weight:bold;
}

.workbook-swiper {
    position: relative;
    padding-top:10px;
    padding-bottom:20px;
}

.workbook-swiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff; /* 흰 배경 */
    border-radius: 12px; /* 모서리 둥글게 */
    box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* 은은한 그림자 */
    box-sizing:border-box;
    padding: 10px;
    width: 220px;   /* 원하는 썸네일 폭 */
    height: auto;
}

.workbook-swiper .swiper-slide img {
    width: 100%;
    height: auto;
    object-fit: contain; /* 이미지 비율 유지 */
    border-radius: 8px;
}

.workbook-next {left:calc(100% - 42px) !important; border-radius:50px;
    background:rgba(255,255,255,0.9);border:solid 1px #eee;box-shadow:0 0px 15px rgba(0, 0, 0, 0.1);}
.workbook-prev {left:2px !important;border-radius:50px;background:rgba(255,255,255,0.9);border:solid 1px #eee;box-shadow:0 0px 15px rgba(0, 0, 0, 0.1);}
.workbook-prev:after,.workbook-next:after { font-size:18px;color:#333;font-weight: bold;}

.type_img img {width:100%;}

.top-btns {height:40px;display:flex;}
.top-btns .btn-year {margin-left:auto;}

.top-btns .btn-year {display:inline-block; width:156px; height:25px; border:1px solid #3E5FAC; color:#3E5FAC; line-height:2em; text-indent:30px; text-decoration:none; font-weight:bold; background:url('/images/icon/btn_greenbg.jpg?v=0003') no-repeat top right; border-radius: 8px;}

.list-btns {display:grid;grid-template-columns:auto auto;gap:10px;}