/* 밑줄 및 원형 기호 */
.txt-ul {
    font-family: inherit !important; text-decoration: underline; text-underline-offset: 4px; 
    text-decoration-thickness: 1px; text-decoration-skip-ink: none; 
}

/* 문장 부호의 전각 여백 제거 (폰트가 지원하는 경우만 적용됨) */
.no-margin-bracket {
    font-variant-east-asian: proportional-widths; 
    font-feature-settings: "palt"; 
}

/* '㉠ 기타' 원문자와 한글 간격 떨어지지 않도록 강제 */
.no-gap { display: inline-block; letter-spacing: 0; white-space: nowrap; text-indent: 0 !important;}

.idx-circle { 
    display: inline-block; width: 22px; height: 22px; border: 1px solid #000; 
    border-radius: 50%; text-align: center; line-height: 20px; font-size: 14px; 
    margin: 0 2px; vertical-align: middle; 
}

/* 주석 별표 (역사 3~4학년 01번) */
.txt-star { 
    position: relative; top: -0.15em; font-size: var(--fs-17); margin-right: -2px;
    font-weight: 700; color: #000; vertical-align: baseline; 
}

/* 들여쓰기 공통 클래스 */
.indent {
    text-indent: 1em !important; display: block; }

/* 빈칸 박스 */
.idx-box {
    display: inline-flex; align-items: center; justify-content: center; border: 1px solid #000; background-color: #fff;
    padding: 0 6px; margin: 0 4px; min-width: 30px; height: 30px; vertical-align: middle; font-size: var(--fs-18);
    font-weight: 400; line-height: 1; font-family: 'Noto Serif KR', serif !important;
}

/* 빈칸 넓이 프리셋 - 기본은 30px */
.idx-box.w-sm { width: 50px; }  /* 조금 넓은 박스 */
.idx-box.w-md { width: 80px; }  /* 중간 넓이 박스 */
.idx-box.w-lg { width: 120px; } /* 아주 넓은 박스 */
.idx-box.w-xl { width: 200px; } /* 많이 넓은 박스 */
.idx-box.w-2xl { width: 250px; } /* 많이 넓은 박스 */
.idx-box.wide { min-width: 60px; }
.idx-box.w-var {width: 65px;} /* 화면 폭에 따른 가변형 박스용 */

/* 초성 박스 */
.initial-box {
    display: inline-flex; align-items: center; justify-content: center; border: 1px solid #000; background-color: #fff;
    padding: 0; margin: 0 0 0 -1px; width: 30px; height: 30px; font-size: var(--fs-16);
    font-weight: 400; line-height: 1; font-family: 'Noto Serif KR', serif !important; color: #666 !important; text-indent: 0 !important;    
}
.initial-box:first-child { margin-left: 0; }
.initial-box:last-child { margin-right: 1px; }

.f700 { font-weight: 700; }
.f800 { font-weight: 800; }


/* ---------------------------------------------------- */
/* ------------------- 지시문 영역 ---------------------- */
/* ---------------------------------------------------- */

/* [지시문 및 질문 영역] */
.instruction-text, .common-instruction {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    font-family: 'NanumSquareRound', sans-serif !important;
    font-size: var(--fs-19);
    font-weight: 700; 
    line-height: 1.5; 
    color: #000;
    text-align: justify; 
    text-justify: inter-word;
    word-break: break-all;
    overflow-wrap: break-word;
    margin-bottom: 16px;    
    scroll-margin-top: 90px; /* 스크롤 이동 시 헤더에 가려지지 않도록 마진 확보 */
}

.question-header, .question-title-container {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-family: 'NanumSquareRound', sans-serif !important;
    font-size: var(--fs-19); 
    font-weight: 700; 
    line-height: 1.5; 
    color: #000;
    text-align: justify; 
    text-justify: inter-word;
    word-break: break-all;
    overflow-wrap: break-word;
    scroll-margin-top: 90px; /* 스크롤 이동 시 헤더에 가려지지 않도록 마진 확보 */
    margin-bottom: 16px;
}

/* 보고서용 번호/텍스트 내어쓰기 설정 */
.q-num { flex-shrink: 0; white-space: nowrap; } /* 번호가 찌그러지지 않게 고정 */
.q-text { flex: 1; }                             /* 텍스트가 남은 공간을 다 차지함 */

/* ---------------------------------------------------- */
/* --------------------- 지문 영역 --------------------- */
/* ---------------------------------------------------- */

.content-box, 
.content-box *,
.article-container, 
.article-container *,
.passage-dialogue-card, 
.passage-dialogue-card *,
.passage-split-card, 
.passage-split-card * {
    font-family: 'Noto Serif KR', serif !important;
    text-align: justify; 
    text-justify: inter-word;
    word-break: break-all;
    overflow-wrap: break-word;
}