/* ========================================
   상단 네비게이션 레이아웃 전용 스타일
   - 로고 + 메뉴 1줄 통합 헤더
   ======================================== */

/* ========================================
   통합 헤더 (로고 + 메뉴 + 유틸)
======================================== */
.top-header {
    background: var(--topnav-bg);
    height: var(--header-height);
    position: relative;
    z-index: 1000;
}

.top-header.sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: none;
}

.top-header-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    height: 100%;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}

/* 로고 영역 */
.top-header-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.top-header-logo a {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.top-header-logo img {
    width: 277px;
    height: 57px;
    object-fit: contain;
}

.top-header-logo h1 {
    margin: 0;
    font-size: 0;
}

/* ========================================
   데스크탑 메뉴 (헤더 내부)
======================================== */
.top-header-nav {
    display: flex;
    align-items: center;
    height: 100%;
    flex: 1;
    justify-content: flex-end;
    margin: 0 20px;
}

.top-menu {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    height: 100%;
}

.top-menu > .menu-item {
    position: relative;
    height: 100%;
}

.top-menu > .menu-item > .menu-link {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 30px;
    color: #333;
    text-decoration: none;
    font-size: 18px;
    font-weight: 500;
    transition: color var(--transition-speed);
    position: relative;
    gap: 4px;
}

.top-menu > .menu-item > .menu-link .submenu-arrow {
    font-size: 10px;
    transition: transform var(--transition-speed);
    opacity: 0.5;
}

.top-menu > .menu-item > .menu-link:hover,
.top-menu > .menu-item:hover > .menu-link {
    color: var(--menubar-bg);
}

/* 하단 인디케이터 라인 - 헤더 하단에 정확히 위치 */
.menu-indicator {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--menubar-bg);
    transition: width var(--transition-speed), left var(--transition-speed), opacity var(--transition-speed);
    z-index: 1001;
    pointer-events: none;
    opacity: 0;
}

/* 서브메뉴 (드롭다운) */
.top-menu .submenu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    min-width: 196px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 5px 20px rgba(0,0,0,0.12);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-speed);
    list-style: none;
    padding: 8px 0;
    margin: 0;
    z-index: 1000;
}

.top-menu > .menu-item:hover > .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.top-menu .submenu li {
    padding: 0;
}

.top-menu .submenu a {
    display: block;
    padding: 10px 20px;
    color: #444;
    text-decoration: none;
    font-size: 16px;
    font-weight: 400;
    transition: all var(--transition-speed);
    text-align: center;
    letter-spacing: -0.5px;
}

.top-menu .submenu a:hover {
    background: #f5f7fa;
    color: var(--menubar-bg);
}

/* ========================================
   유틸리티 영역 (로그인 아이콘 + 모바일 토글)
======================================== */
.top-header-utils {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.top-header-login {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-util {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: #666;
    text-decoration: none;
    transition: all var(--transition-speed);
}

.btn-util:hover {
    background: #f0f0f0;
    color: var(--menubar-bg);
}

.btn-util i {
    font-size: 20px;
}

/* ========================================
   모바일 햄버거 메뉴
======================================== */
.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    padding: 10px;
    cursor: pointer;
    z-index: 1001;
}

.mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: #333;
    margin: 5px 0;
    transition: all var(--transition-speed);
    border-radius: 2px;
}

.mobile-menu-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.mobile-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* ========================================
   메인 콘텐츠 영역 - 상단 메뉴 레이아웃
   - 헤더가 position:fixed 이므로 콘텐츠를 헤더 높이만큼 내려야 함
======================================== */
.layout-topnav .main-content {
    margin-left: 0;
    margin-top: var(--header-height);
    min-height: calc(100vh - var(--header-height));
}

/* ========================================
   메인 슬라이드 - 상단 메뉴 레이아웃
   기본 비율: 1920 x 687 (약 2.795:1)
======================================== */
.layout-topnav .main-slider {
    width: 100%;
    aspect-ratio: 1920 / 687;
    position: relative;
    overflow: hidden;
}

.layout-topnav .main-slider .carousel {
    width: 100%;
    height: 100%;
}

.layout-topnav .main-slider .carousel-inner {
    width: 100%;
    height: 100%;
}

.layout-topnav .main-slider .carousel-item {
    width: 100%;
    height: 100%;
}

.layout-topnav .main-slider .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.layout-topnav .main-slider .carousel-indicators {
    width: 100%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
}

.layout-topnav .main-slider .carousel-control-prev {
    left: 30px;
}

.layout-topnav .main-slider .carousel-control-next {
    right: 30px;
}

/* 슬라이더 오버레이 텍스트 */
.slider-overlay-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    text-align: center;
    pointer-events: none;
}

.slider-overlay-sub {
    color: #ffffff;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 2px;
    margin-bottom: 12px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
    opacity: 0;
    transform: translateY(30px);
    animation: overlayFadeUp 0.8s ease-out 0.3s forwards;
}

.slider-overlay-title {
    color: #ffffff;
    font-size: 42px;
    font-weight: 700;
    letter-spacing: 3px;
    margin: 0;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
    opacity: 0;
    transform: translateY(30px);
    animation: overlayFadeUp 0.8s ease-out 0.6s forwards;
}

/* 애니메이션 재실행용 클래스 */
.slider-overlay-sub.animate,
.slider-overlay-title.animate {
    opacity: 0;
    transform: translateY(30px);
}
.slider-overlay-sub.animate {
    animation: overlayFadeUp 0.8s ease-out 0.3s forwards;
}
.slider-overlay-title.animate {
    animation: overlayFadeUp 0.8s ease-out 0.6s forwards;
}

@keyframes overlayFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 992px) {
    .slider-overlay-sub {
        font-size: 14px;
        letter-spacing: 1px;
        margin-bottom: 8px;
    }
    .slider-overlay-title {
        font-size: 26px;
        letter-spacing: 2px;
    }
}

@media (max-width: 576px) {
    .slider-overlay-sub {
        font-size: 11px;
        margin-bottom: 5px;
    }
    .slider-overlay-title {
        font-size: 18px;
        letter-spacing: 1px;
    }
}

/* ========================================
   아이콘 카드 섹션 (슬라이더 아래)
======================================== */
.icon-cards-section {
    background: transparent;
    padding: 50px 0;
}

.icon-cards-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    gap: 15px;
    justify-content: center;
}

.icon-card {
    flex: 1;
    max-width: 220px;
    background: #f5f7fa;
    border-radius: 12px;
    padding: 30px 20px 25px;
    text-align: center;
    text-decoration: none;
    color: #333;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: all var(--transition-speed);
    border: 2px solid transparent;
}

.icon-card:hover {
    border-color: var(--primary-color);
    background: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.icon-card-multi {
    cursor: default;
}

.icon-card-image {
    width: 76px;
    height: 70px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.icon-card-title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 8px;
    color: #222;
    line-height: 1.3;
    letter-spacing: -0.3px;
}

.icon-card-sub {
    display: inline-block;
    font-size: 15px;
    color: #333;
    background: #ccc;
    padding: 8px 14px;
    border-radius: 20px;
    margin-top: 4px;
    letter-spacing: -0.9px;
}

.icon-card-buttons {
    display: flex;
    gap: 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

.icon-card-btn {
    display: inline-block;
    font-size: 15px;
    font-weight: 400;
    padding: 8px 14px;
    border-radius: 20px;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    transition: opacity var(--transition-speed);
    flex: 1;
    text-align: center;
}

.icon-card-btn:hover {
    opacity: 0.85;
}

.icon-card-btn.primary {
    background: var(--menubar-bg);
}

.icon-card-btn.accent {
    background: var(--accent-color);
}

@media (max-width: 1200px) {
    .icon-cards-inner {
        padding: 0 20px;
        gap: 15px;
    }

    .icon-card {
        padding: 25px 15px 20px;
    }
}

@media (max-width: 992px) {
    .icon-cards-section {
        padding: 30px 0;
    }

    .icon-cards-inner {
        flex-wrap: wrap;
        padding: 0 15px;
        gap: 12px;
    }

    .icon-card {
        flex: 0 0 calc(33.333% - 8px);
        max-width: none;
    }
}

@media (max-width: 576px) {
    .icon-cards-inner {
        gap: 10px;
    }

    .icon-card,
    .icon-card-multi {
        flex: 0 0 calc(50% - 5px);
        max-width: calc(50% - 5px);
        padding: 20px 10px 15px;
    }

    .icon-card-buttons {
        flex-direction: column;
        gap: 6px;
        white-space: normal;
    }

    .icon-card-btn {
        font-size: 13px;
        padding: 6px 10px;
        text-align: center;
    }

    .icon-card-image {
        width: 48px;
        height: 48px;
        margin-bottom: 12px;
    }

    .icon-card-title {
        font-size: 13px;
    }

    .icon-card-sub {
        font-size: 11px;
        padding: 3px 8px;
    }
}

/* ========================================
   공지사항 & 자료실 섹션 (topnav)
======================================== */
.notice-archive-section {
    padding: 0 0 60px;
    background: #fff;
}

.notice-archive-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.notice-archive-wrapper .notice-section,
.notice-archive-wrapper .archive-section {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.notice-archive-wrapper .notice-list,
.notice-archive-wrapper .archive-list {
    flex: 1;
    min-width: 0;
}

/* 공지사항 (topnav 오버라이드) */
.notice-archive-wrapper .notice-section .section-title,
.notice-archive-wrapper .archive-section .section-title {
    font-size: 24px;
    font-weight: 400;
    margin-bottom: 20px;
    color: #222;
    letter-spacing: -0.5px;
}

.notice-archive-wrapper .notice-list {
    padding: 15px 20px;
    border: 1px solid #eaeaea;
    border-radius: 12px;
    list-style: none;
    margin: 0;
    overflow: hidden;
}

.notice-archive-wrapper .notice-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 0;
    min-height: 52px;
    overflow: hidden;
    min-width: 0;
}

.notice-date {
    font-size: 14px;
    color: #888;
    white-space: nowrap;
    flex-shrink: 0;
}

.notice-title {
    flex: 1;
    min-width: 0;
    display: block;
    font-size: 15px;
    color: #333;
    text-decoration: none;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notice-title:hover {
    color: #3272db;
}


.notice-archive-wrapper .notice-item:hover {
    background: #d7e4ff;
}

/* 자료실 */
.archive-section .section-title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #222;
    letter-spacing: -0.5px;
}

.archive-list {
    list-style: none;
    padding: 15px 20px;
    margin: 0;
    border: 1px solid #eaeaea;
    border-radius: 12px;
}

.archive-item {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0;
    min-height: 52px;
    border-bottom: none;
    transition: background var(--transition-speed);
}

.archive-item:hover {
    background: #d7e4ff;
}

.archive-title {
    flex: 1;
    font-size: 16px;
    color: #333;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.archive-title:hover {
    color: inherit;
    text-decoration: none;
}

.archive-downloads {
    display: flex;
    align-items: center;
    gap: 1px;
    flex-shrink: 0;
}

.archive-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #333;
    text-decoration: none;
    flex-shrink: 0;
    border-radius: 3px;
    transition: color var(--transition-speed), background var(--transition-speed);
}

.archive-download:hover {
    color: var(--menubar-bg);
    background: rgba(61, 81, 156, 0.1);
}

.archive-download i {
    font-size: 14px;
}

@media (max-width: 1200px) {
    .notice-archive-wrapper {
        padding: 0 20px;
        gap: 20px;
    }
}

@media (max-width: 992px) {
    .notice-archive-section {
        padding: 0 0 40px;
    }

    .notice-archive-wrapper {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 0 15px;
    }
}

@media (max-width: 768px) {
    .notice-archive-wrapper .notice-list,
    .archive-list {
        padding: 10px 15px;
    }

    .notice-archive-wrapper .notice-item,
    .archive-item {
        padding: 0;
        min-height: 46px;
        overflow: hidden;
    }

    .archive-title {
        font-size: 14px;
    }
}

/* 우측 패널 - 상단 메뉴 레이아웃 */
.layout-topnav .slider-with-panel {
    display: flex;
    flex-wrap: wrap;
}

.layout-topnav .slider-wrapper {
    flex: 1;
    min-width: 0;
}

.layout-topnav .right-panel {
    position: static;
    width: 400px;
    flex-shrink: 0;
}

/* 1400px 이하에서 패널이 아래로 */
@media (max-width: 1400px) {
    .layout-topnav .slider-with-panel {
        flex-direction: column;
    }

    .layout-topnav .slider-wrapper {
        width: 100%;
    }

    .layout-topnav .right-panel {
        width: 100%;
        padding: 30px 40px;
    }
}

/* ========================================
   반응형 - 태블릿
======================================== */
@media (max-width: 1200px) {
    .top-header-inner {
        padding: 0 20px;
    }

    .top-menu > .menu-item > .menu-link {
        padding: 0 16px;
        font-size: 15px;
    }

    .top-header-nav {
        margin: 0 10px;
    }
}

/* ========================================
   반응형 - 모바일
======================================== */
@media (max-width: 992px) {
    .top-header {
        height: 70px;
        padding: 0;
    }

    .top-header-inner {
        padding: 0 15px;
    }

    .top-header-logo img {
        width: 180px;
        height: auto;
    }

    /* 모바일 메뉴 토글 표시 */
    .mobile-menu-toggle {
        display: block;
    }

    /* 데스크탑 메뉴 → 모바일 드롭다운 */
    .top-header-nav {
        position: fixed;
        top: 70px;
        left: 0;
        right: 0;
        background: var(--menubar-bg);
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--transition-speed) ease;
        z-index: 998;
        margin: 0;
        display: block;
    }

    .top-header-nav.show {
        max-height: calc(100vh - 70px);
        overflow-y: auto;
    }

    .top-menu {
        flex-direction: column;
        width: 100%;
        height: auto;
    }

    .top-menu > .menu-item {
        width: 100%;
        height: auto;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }

    .top-menu > .menu-item > .menu-link {
        padding: 15px 20px;
        color: white;
        justify-content: space-between;
        font-size: 15px;
    }

    .top-menu > .menu-item > .menu-link:hover,
    .top-menu > .menu-item:hover > .menu-link {
        color: white;
        background: rgba(255,255,255,0.1);
    }

    .top-menu > .menu-item > .menu-link::after {
        display: none;
    }

    .top-menu > .menu-item > .menu-link .submenu-arrow {
        opacity: 1;
        color: white;
        transition: transform var(--transition-speed);
    }

    .top-menu > .menu-item.active > .menu-link .submenu-arrow {
        transform: rotate(180deg);
    }

    /* 모바일 서브메뉴 */
    .top-menu .submenu {
        position: static !important;
        left: 0 !important;
        right: 0 !important;
        transform: none !important;
        opacity: 1;
        visibility: visible;
        box-shadow: none;
        border-top: none;
        background: rgba(0,0,0,0.2);
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--transition-speed) ease;
        padding: 0;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .top-menu > .menu-item.active > .submenu {
        max-height: 500px;
        padding: 8px 0;
    }

    .top-menu .submenu a {
        color: rgba(255,255,255,0.9);
        padding: 12px 40px;
        border-left: none;
        font-size: 14px;
        text-align: left;
    }

    .top-menu .submenu a:hover {
        background: rgba(255,255,255,0.1);
        color: white;
        border-left: none;
        padding-left: 45px;
    }

    /* 로그인 아이콘 숨김 (모바일에서) */
    .top-header-login {
        display: none;
    }

    /* 모바일 콘텐츠 */
    .layout-topnav .main-content {
        min-height: calc(100vh - 70px);
        margin-top: 70px;
    }

    .layout-topnav .right-panel {
        padding: 20px 15px;
    }
}

@media (max-width: 576px) {
    .top-header {
        height: 60px;
    }

    .top-header-logo img {
        width: 150px;
        height: auto;
    }

    .top-header-nav {
        top: 60px;
    }

    .top-header-nav.show {
        max-height: calc(100vh - 60px);
    }

    .layout-topnav .main-content {
        margin-top: 60px;
    }
}

/* ========================================
   모바일 메뉴 오버레이
======================================== */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 997;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-speed) ease, visibility var(--transition-speed) ease;
}

.mobile-menu-overlay.show {
    opacity: 1;
    visibility: visible;
}

/* ========================================
   푸터 - 상단 메뉴 레이아웃용
======================================== */
.layout-topnav .site-footer {
    background: #666;
    color: rgba(255,255,255,0.8);
    padding: 40px 40px;
}

.layout-topnav .site-footer .footer-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 40px;
}

/* 왼쪽: 로고 */
.layout-topnav .site-footer .footer-logo {
    flex-shrink: 0;
}

.layout-topnav .site-footer .footer-logo img {
    width: 277px;
    height: 57px;
    object-fit: contain;
}

/* 가운데: 연락처 + 저작권 */
.layout-topnav .site-footer .footer-info {
    flex: 1;
}

.layout-topnav .site-footer .footer-contact {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 8px;
    margin-top: 0;
}

.layout-topnav .site-footer .footer-contact p {
    margin: 0;
}

.layout-topnav .site-footer .footer-contact .footer-phone {
    color: #ff8561;
}

.layout-topnav .site-footer .footer-copyright {
    font-size: 13px;
    color: rgba(255,255,255,0.6);
    margin-top: 8px;
}

/* 오른쪽: 링크 버튼 */
.layout-topnav .site-footer .footer-buttons {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.layout-topnav .site-footer .footer-buttons a {
    display: block;
    padding: 8px 24px;
    background: #333;
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: 15px;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    font-size: 14px;
    text-align: center;
    transition: all var(--transition-speed);
    white-space: nowrap;
}

.layout-topnav .site-footer .footer-buttons a:hover {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.8);
    color: #fff;
}

@media (max-width: 992px) {
    .layout-topnav .site-footer .footer-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }

    .layout-topnav .site-footer .footer-buttons {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

@media (max-width: 768px) {
    .layout-topnav .site-footer {
        padding: 30px 15px;
    }

    .layout-topnav .site-footer .footer-contact {
        font-size: 12px;
    }

    .layout-topnav .site-footer .footer-buttons a {
        font-size: 12px;
        padding: 6px 16px;
    }
}

/* ========================================
   서브 페이지 배너 + 브레드크럼 + 제목
======================================== */

/* 1. 서브 배너 */
.sub-banner-wrap {
    position: relative;
    z-index: 1;
	border-top: 1px solid #ccc;
}

.sub-banner {
    background: #12217d;
    position: relative;
    overflow: hidden;
    height: 100px;
}

.sub-banner-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    height: 100px;
    position: relative;
}

.sub-banner-title {
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    margin: 0;
    letter-spacing: -0.5px;
}

.sub-banner-image {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 1650px;
    height: 0;
    pointer-events: none;
    z-index: 2;
}

.sub-banner-image img {
    width: 359px;
    height: 150px;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
}

/* 2. 제목 + 브레드크럼 통합 영역 */
.sub-title-area {
    padding: 0;
}

.sub-title-area .container-xl {
    padding: 0 40px;
}

.sub-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 30px 0 24px;
    border-bottom: 1px solid #cccccc;
}

/* 좌측: 도트 + 제목 (세로 배치) */
.sub-title-left {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sub-page-title {
    font-size: 28px;
    font-weight: 700;
    color: #131416;
    margin: 0;
    line-height: 1.2;
}

/* 도트: 두 원이 50% 겹침 */
.sub-title-dot {
    display: inline-flex;
    position: relative;
    width: 17px;
    height: 12px;
    flex-shrink: 0;
}

.sub-title-dot::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #1154ed;
    z-index: 1;
}

.sub-title-dot::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ff8561;
    z-index: 0;
}

/* 우측: 브레드크럼 박스 */
.sub-breadcrumb-box {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid #cccccc;
    border-radius: 20px;
    padding: 8px 20px;
    flex-shrink: 0;
    background: #f6f7f8;
}

.sub-breadcrumb-home {
    color: #333333;
    text-decoration: none;
    font-size: 15px;
    display: flex;
    align-items: center;
}

.sub-breadcrumb-home:hover {
    color: #131416;
}

.sub-breadcrumb-sep {
    color: #cccccc;
    margin: 0 10px;
    font-size: 13px;
}

.sub-breadcrumb-link {
    color: #333333;
    text-decoration: none;
    font-size: 13px;
    white-space: nowrap;
}

a.sub-breadcrumb-link:hover {
    color: #131416;
}

.sub-breadcrumb-link.active {
    color: #333333;
    font-weight: 500;
}

/* 3. 본문 영역 */
.sub-page-body {
    padding: 0;
}

.sub-page-body .container-xl {
    padding: 0 40px;
}

.sub-page-content {
    padding: 30px 0 60px;
}

.sub-page-content img {
    max-width: 100%;
    height: auto;
}

/* 서브 페이지 반응형 */
@media (max-width: 992px) {
    .sub-banner {
        height: 80px;
    }

    .sub-banner-inner {
        padding: 0 20px;
        height: 80px;
    }

    .sub-banner-title {
        font-size: 24px;
    }

    .sub-banner-image img {
        width: 280px;
        height: 117px;
    }

    .sub-title-area .container-xl,
    .sub-page-body .container-xl {
        padding: 0 20px;
    }

    .sub-page-title {
        font-size: 24px;
    }

    .sub-title-row {
        padding: 18px 0 18px;
    }

    .sub-page-content {
        padding: 25px 0 40px;
    }
}

@media (max-width: 768px) {
    .sub-banner {
        height: 70px;
    }

    .sub-banner-inner {
        padding: 0 15px;
        height: 70px;
    }

    .sub-banner-title {
        font-size: 20px;
    }

    .sub-banner-image {
        display: none;
    }

    .sub-title-area .container-xl,
    .sub-page-body .container-xl {
        padding: 0 15px;
    }

    .sub-title-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 16px 0 14px;
    }

    .sub-page-title {
        font-size: 20px;
    }

    .sub-title-dot {
        width: 14px;
        height: 10px;
    }

    .sub-title-dot::before,
    .sub-title-dot::after {
        width: 10px;
        height: 10px;
    }

    .sub-title-dot::after {
        left: 5px;
    }

    .sub-breadcrumb-box {
        padding: 6px 12px;
    }

    .sub-breadcrumb-link {
        font-size: 12px;
    }

    .sub-breadcrumb-sep {
        margin: 0 6px;
    }

    .sub-page-content {
        padding: 20px 0 30px;
    }
}

/* ========================================
   센터장 인사말 페이지
======================================== */
.greeting-banner {
    overflow: hidden;
    margin-bottom: 40px;
}

.greeting-banner-img {
    width: 100%;
    display: block;
}

.greeting-content {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.greeting-text {
    flex: 1;
    min-width: 0;
}

.greeting-text p {
    font-size: 16px;
    line-height: 1.5;
    color: #333;
    margin-bottom: 4px;
    word-break: keep-all;
}

.greeting-text p.greeting-hello {
    font-size: 16px;
    color: #333;
    margin-bottom: 4px;
}

.greeting-highlight {
    color: #1154ed;
    font-weight: 600;
}

.greeting-duties {
    margin: 30px 0;
    padding: 0;
}

.greeting-duties-title {
    font-size: 16px;
    line-height: 1.3;
    color: #333;
    margin-bottom: 14px;
}

.greeting-duties ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.greeting-duties ul li {
    position: relative;
    padding-left: 18px;
    font-size: 16px;
    line-height: 1.3;
    color: #333;
}

.greeting-duties ul li::before {
    content: '-';
    position: absolute;
    left: 0;
    color: #1154ed;
    font-weight: 700;
}

.greeting-closing {
    font-size: 16px;
    line-height: 1.3;
    color: #333;
    margin-top: 30px;
}

.greeting-sign {
    text-align: right;
    margin-top: 40px;
    font-size: 18px;
    color: #131416;
    font-weight: 600;
    letter-spacing: 1px;
}

.greeting-sign span {
    font-size: 22px;
    font-weight: 700;
    margin-left: 10px;
}

.greeting-photo {
    flex-shrink: 0;
    width: 280px;
}

.greeting-photo img {
    width: 100%;
    display: block;
}

@media (max-width: 768px) {
    .greeting-content {
        flex-direction: column;
    }

    .greeting-photo {
        width: 100%;
        max-width: 300px;
    }
}

/* ========================================
   조직 및 업무 페이지
======================================== */
.org-page-title {
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin: 0 0 20px 0;
}

.org-staff-list {
    border-top: 1px solid #333;
}

.org-staff-card {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid #d3d3d3;
    transition: background 0.2s;
}

.org-staff-card:hover {
    background: #f0f4ff;
}

.org-staff-badge-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 150px;
    flex-shrink: 0;
    padding: 20px 0;
    background: #d7e4ff;
}

.org-staff-card:hover .org-staff-badge-area {
    background: #c5d6fc;
}

.org-staff-icon {
    font-size: 20px;
    color: #555;
}

.org-staff-badge {
    display: inline-block;
    background: #4c7ceb;
    color: #fff;
    font-size: 18px;
    font-weight: 500;
    padding: 6px 30px;
    border-radius: 20px;
    white-space: nowrap;
    transition: background 0.2s;
}

.org-staff-card:hover .org-staff-badge {
    background: #1154ed;
}

.org-staff-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.org-staff-row {
    display: flex;
    align-items: stretch;
    flex: 1;
}

.org-staff-label {
    width: 150px;
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 300;
    color: #333;
    background: #f6f7f8;
    padding: 8px 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 10px;
}

.org-staff-card:hover .org-staff-label {
    background: #ecedef;
}

.org-staff-value {
    flex: 1;
    font-size: 16px;
    color: #333;
    line-height: 1.6;
    padding: 8px 20px;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .org-staff-card {
        flex-direction: column;
    }

    .org-staff-badge-area {
        flex-direction: row;
        width: auto;
        padding: 12px 15px;
    }

    .org-staff-row {
        flex-direction: column;
    }

    .org-staff-label {
        width: auto;
        justify-content: flex-start;
        padding: 6px 15px;
    }

    .org-staff-value {
        padding: 4px 15px 8px;
        font-size: 14px;
    }
}

/* ── 교원양성위원회 페이지 ── */
.committee-legal {
    margin-bottom: 30px;
}

.committee-legal p {
    font-size: 16px;
    color: #333;
    line-height: 1.6;
}

.committee-section-title {
    margin-top: 40px;
}

.committee-functions {
    margin-bottom: 30px;
}

.committee-functions ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.committee-functions ul li {
    position: relative;
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    padding-left: 14px;
}

.committee-functions ul li::before {
    content: '·';
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* ── 규정 및 지침 페이지 ── */
.regulation-links {
    display: flex;
    gap: 20px;
    margin-top: 10px;
}

.regulation-link-box {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    border: 2px solid #3d519c;
    border-radius: 4px;
    font-size: 20px;
    font-weight: 500;
    color: #333;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.regulation-link-box:hover {
    background: #f0f4ff;
    color: #1154ed;
}

@media (max-width: 768px) {
    .regulation-links {
        flex-direction: column;
    }
}

/* ── 찾아오시는길 페이지 ── */
.location-map {
    margin-bottom: 30px;
}

.location-map .root_daum_roughmap .cont .section_address {
    display: none !important;
}

.location-map .root_daum_roughmap {
    border: 1px solid #d3d3d3;
}

.location-map iframe {
    display: block;
    width: 100%;
    height: 450px;
    border: 1px solid #d3d3d3;
}

.location-info {
    border-top: 1px solid #333;
}

.location-info-row {
    display: flex;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #d3d3d3;
}

.location-info-row:first-child {
    border-bottom: none;
}

.location-info-icon {
    width: 40px;
    flex-shrink: 0;
    font-size: 20px;
    color: #4c7ceb;
    text-align: center;
}

.location-info-label {
    width: 60px;
    flex-shrink: 0;
    font-size: 18px;
    font-weight: 500;
    color: #333;
}

.location-info-value {
    flex: 1;
    font-size: 18px;
    color: #333;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .location-map iframe {
        height: 300px;
    }

    .location-info-row {
        flex-wrap: wrap;
    }

    .location-info-value {
        width: 100%;
        padding-left: 100px;
        margin-top: 4px;
        font-size: 14px;
    }
}

/* ── 합격기준 페이지 (CSS-only 탭) ── */
.criteria-wrap {
    position: relative;
}

.criteria-radio {
    display: none;
}

.criteria-tabs {
    display: flex;
    border-bottom: 2px solid #3d519c;
}

.criteria-tab {
    flex: 1;
    padding: 14px 10px;
    font-size: 16px;
    font-weight: 500;
    color: #666;
    background: #f6f7f8;
    border: 1px solid #d3d3d3;
    border-bottom: none;
    cursor: pointer;
    text-align: center;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
}

.criteria-tab:not(:first-of-type) {
    border-left: none;
}

.criteria-tab:hover {
    background: #e8ecf4;
}

.criteria-content {
    display: none;
}

/* 라디오 버튼 checked 시 탭 활성화 */
#criteria-tab1:checked ~ .criteria-tabs label[for="criteria-tab1"],
#criteria-tab2:checked ~ .criteria-tabs label[for="criteria-tab2"],
#criteria-tab3:checked ~ .criteria-tabs label[for="criteria-tab3"],
#criteria-tab4:checked ~ .criteria-tabs label[for="criteria-tab4"] {
    background: #3d519c;
    color: #fff;
    border-color: #3d519c;
}

/* 라디오 버튼 checked 시 콘텐츠 표시 */
#criteria-tab1:checked ~ .criteria-content-1,
#criteria-tab2:checked ~ .criteria-content-2,
#criteria-tab3:checked ~ .criteria-content-3,
#criteria-tab4:checked ~ .criteria-content-4 {
    display: block;
}

.criteria-table {
    border-top: none;
}

.criteria-row {
    display: flex;
    border-bottom: 1px solid #d3d3d3;
}

.criteria-label {
    width: 200px;
    flex-shrink: 0;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 500;
    color: #333;
    background: #f6f7f8;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.5;
    border-right: 1px solid #d3d3d3;
}

.criteria-value {
    flex: 1;
    padding: 16px 24px;
    font-size: 16px;
    color: #333;
    line-height: 1.7;
}

.criteria-note {
    display: inline-block;
    font-weight: 600;
    color: #333;
}

.criteria-link {
    color: #1154ed;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .criteria-tabs {
        flex-wrap: wrap;
    }

    .criteria-tab {
        flex: 1 1 50%;
        font-size: 14px;
        padding: 10px 6px;
    }

    .criteria-tab:nth-of-type(3) {
        border-left: 1px solid #d3d3d3;
    }

    .criteria-row {
        flex-direction: column;
    }

    .criteria-label {
        width: auto;
        border-right: none;
        border-bottom: 1px solid #e8e8e8;
        padding: 10px 15px;
        justify-content: flex-start;
    }

    .criteria-value {
        padding: 10px 15px;
        font-size: 14px;
    }
}

/* ── 학교현장실습 페이지 ── */
.practicum-title {
    font-size: 20px;
    font-weight: 600;
    color: #12217d;
    margin-top: 40px;
    margin-bottom: 16px;
}

.practicum-title:first-child {
    margin-top: 0;
}

.practicum-intro {
    margin-bottom: 20px;
    font-size: 16px;
    color: #333;
    line-height: 1.8;
}

.practicum-purpose {
    margin-bottom: 10px;
}

.practicum-purpose-item {
    margin-bottom: 16px;
    font-size: 16px;
    color: #333;
    line-height: 1.8;
}

.practicum-purpose-item strong {
    display: block;
    margin-bottom: 4px;
    font-size: 18px;
}

.practicum-section {
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    margin-bottom: 10px;
}

.practicum-section p {
    margin-bottom: 8px;
}

.practicum-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 8px 10px;
}

.practicum-list li {
    font-size: 16px;
    color: #4c7ceb;
    line-height: 1.8;
    padding-left: 6px;
}

/* 타임라인 카드 */
.practicum-timeline {
    display: flex;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
    align-items: stretch;
}

.practicum-timeline::after {
    content: '';
    flex: 1 1 calc(25% - 12px);
    min-width: 180px;
    max-width: calc(25% - 12px);
}

.practicum-timeline-card {
    flex: 1 1 calc(25% - 12px);
    min-width: 180px;
    max-width: calc(25% - 12px);
    background: #f6f7f8;
    border: none;
    border-radius: 14px;
    padding: 24px 14px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
}

/*.practicum-timeline-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}*/

.practicum-timeline-icon {
    margin-bottom: 12px;
}

.practicum-timeline-icon img {
    width: 90px;
    height: 70px;
}

.practicum-timeline-label {
    font-size: 18px;
    font-weight: 400;
    color: #1154ed;
    margin-bottom: 10px;
    line-height: 1.4;
}

.practicum-timeline-date {
    font-size: 16px;
    color: #333;
    line-height: 1.5;
}

/* FAQ */
.practicum-faq {
    margin-bottom: 10px;
}

.practicum-faq-item {
    margin-bottom: 24px;
}

.practicum-faq-question {
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    margin-bottom: 8px;
}

.practicum-faq-question strong,
.practicum-faq-answer strong {
    font-size: 18px;
    color: #1154ed;
}

.practicum-faq-answer {
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    padding-left: 10px;
}

/* 실습 신청 */
.practicum-apply {
    margin-bottom: 10px;
}

.practicum-apply .practicum-list li {
    color: #333;
}

.practicum-list-dark li {
    color: #333;
    word-break: keep-all;
}

.practicum-text-blue {
    color: #4c7ceb;
}

.practicum-list-highlight li {
    color: #4c7ceb !important;
}

.practicum-subtitle {
    font-size: 18px;
    font-weight: 600;
    color: #1154ed;
    margin-top: 24px;
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: none;
}

.practicum-subtitle:first-child {
    margin-top: 0;
}

.practicum-apply p {
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    margin-bottom: 4px;
}

@media (max-width: 768px) {
    .practicum-timeline {
        flex-direction: column;
    }

    .practicum-timeline::after {
        display: none;
    }

    .practicum-timeline-card {
        max-width: 100%;
        flex-direction: row;
        gap: 12px;
        padding: 14px 16px;
        text-align: left;
    }

    .practicum-timeline-icon {
        font-size: 28px;
        margin-bottom: 0;
        flex-shrink: 0;
    }

    .practicum-timeline-label {
        margin-bottom: 4px;
    }

    .practicum-title {
        font-size: 18px;
    }

    .practicum-faq-answer {
        padding-left: 0;
    }
}

/* 교육봉사활동 - 강조 박스 */
.practicum-highlight-box {
    background: #fff8f0;
    border-left: 4px solid #ff6b35;
    padding: 12px 16px;
    margin: 12px 0;
    border-radius: 4px;
}

.practicum-highlight-box p {
    margin: 0;
    font-size: 15px;
    color: #c0392b;
    line-height: 1.7;
}

/* 교육봉사활동 - 예시 텍스트 */
.practicum-example {
    padding-left: 12px;
    color: #333;
}

/* 교육봉사활동 - 하위 목록 */
.practicum-list-sub {
    margin-left: 24px;
}

/* 교육봉사활동 - 참고 안내 */
.practicum-section-ref {
    margin-top: 8px;
}

.practicum-ref-text {
    color: #1154ed;
}

/* 교육봉사활동 - 주의사항 */
.practicum-section-note {
    margin-top: 16px;
}

/* 교육봉사활동 - 첨부파일 다운로드 */
.practicum-downloads {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #e9ecef;
}

.practicum-downloads a {
    display: block;
    font-size: 15px;
    color: #333;
    margin-bottom: 8px;
    text-decoration: none;
}

.practicum-downloads a:hover {
    color: #12217d;
    text-decoration: underline;
}

.practicum-downloads a i {
    margin-right: 6px;
}

/* 교직적성 및 인성검사 - 추가 스타일 */
.practicum-section-label {
    font-weight: 600;
    color: #333;
    margin: 20px 0 8px 0;
    font-size: 16px;
}

.practicum-list-sub2 {
    margin-left: 40px;
}

.practicum-btn-area {
    margin-top: 32px;
    text-align: left;
}

.practicum-btn-kcloud {
    display: inline-block;
    padding: 12px 28px;
    background: #1154ed;
    color: #fff;
    border: none;
    border-radius: 0;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}

.practicum-btn-kcloud:hover {
    background: #0d43c4;
    color: #fff;
    text-decoration: none;
}

/* 응급처치 실습 - 테이블 */
.practicum-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 16px 0;
}

.practicum-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 500px;
    font-size: 16px;
    color: #333;
}

.practicum-table th,
.practicum-table td {
    border: 1px solid #d3d3d3;
    border-left: none;
    border-right: none;
    padding: 10px 12px;
    text-align: center;
    vertical-align: middle;
}

.practicum-table thead {
    border-top: 2px solid #333;
}

.practicum-table thead th {
    background: #d7e4ff;
    font-weight: 600;
    font-size: 18px;
    color: #333;
}

.practicum-table th:not(:last-child),
.practicum-table td:not(:last-child) {
    border-right: 1px solid #d3d3d3;
}

/* ── 교직교육과정 페이지 ── */
.curriculum-title {
    font-size: 20px;
    font-weight: 600;
    color: #12217d;
    margin-top: 40px;
    margin-bottom: 16px;
}

.curriculum-title:first-child {
    margin-top: 0;
}

.curriculum-section {
    margin-bottom: 20px;
    font-size: 16px;
    color: #333;
    line-height: 1.8;
}

.curriculum-section p {
    margin-bottom: 4px;
}

.curriculum-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 16px 0;
}

.curriculum-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 750px;
    font-size: 16px;
    color: #333;
}

.curriculum-table th,
.curriculum-table td {
    border-top: 1px solid #d3d3d3;
    border-bottom: 1px solid #d3d3d3;
    border-left: 1px solid #d3d3d3;
    border-right: 1px solid #d3d3d3;
    padding: 10px 12px;
    text-align: center;
    vertical-align: middle;
}

.curriculum-table th:first-child,
.curriculum-table td:first-child {
    border-left: none;
}

.curriculum-table th:last-child,
.curriculum-table td:last-child {
    border-right: none;
}

.curriculum-table thead {
    border-top: 2px solid #333;
}

.curriculum-table thead th {
    background: #d7e4ff;
    font-weight: 600;
    font-size: 16px;
    color: #333;
}

.curriculum-note {
    margin-top: 10px;
    margin-bottom: 30px;
}

.curriculum-note p {
    font-size: 16px;
    color: #666;
    margin-bottom: 2px;
    line-height: 1.6;
}

.badge-campus {
    display: inline-block;
    background-color: var(--primary-color, #4c7ceb);
    color: #fff;
    padding: 6px 24px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.campus-section {
    margin-bottom: 40px;
}

.campus-placeholder {
    color: #999;
    padding: 30px 0;
    text-align: center;
}

@media (max-width: 768px) {
    .curriculum-title {
        font-size: 18px;
        margin-top: 30px;
    }

    .curriculum-section {
        font-size: 15px;
    }

    .curriculum-table-wrap {
        margin: 12px -15px;
        padding: 0 15px;
    }

    .curriculum-table {
        font-size: 13px;
    }

    .curriculum-table th,
    .curriculum-table td {
        padding: 7px 5px;
        white-space: nowrap;
    }

    .curriculum-table td:nth-child(4) {
        white-space: normal;
        word-break: keep-all;
    }

    .curriculum-table thead th {
        font-size: 13px;
    }

    .curriculum-note p {
        font-size: 14px;
    }

    .badge-campus {
        font-size: 14px;
        padding: 5px 20px;
    }
}

/* ── 교원자격증 재교부 페이지 ── */
.reissue-required {
    color: #e74c3c;
    margin-left: 2px;
}

.reissue-attachment {
    margin: 20px 0;
    font-size: 16px;
    color: #333;
    text-align: right;
}

.reissue-attachment-left {
    text-align: left;
}

.reissue-attachment a {
    color: #333;
    text-decoration: none;
}

.reissue-attachment i {
    font-size: 18px;
    margin-right: 4px;
}

.reissue-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 16px 0;
}

.reissue-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #333;
    min-width: 900px;
    font-size: 16px;
    color: #333;
}

.reissue-table td {
    border-top: 1px solid #d3d3d3;
    border-bottom: 1px solid #d3d3d3;
    border-left: 1px solid #d3d3d3;
    border-right: 1px solid #d3d3d3;
    padding: 16px 14px;
    vertical-align: top;
    line-height: 1.7;
}

.reissue-table td:first-child {
    border-left: none;
}

.reissue-table td:last-child {
    border-right: none;
}

.reissue-table .reissue-label {
    background: #e8f0fe;
    text-align: center;
    vertical-align: middle;
    font-weight: 600;
    font-size: 16px;
    width: 12%;
    white-space: nowrap;
}

.reissue-col-title {
    color: #3272db;
    font-size: 16px;
}

@media (max-width: 768px) {
    .reissue-table {
        min-width: auto;
        font-size: 15px;
    }

    .reissue-table colgroup {
        display: none;
    }

    .reissue-table tr {
        display: block;
        margin-bottom: 16px;
        border-top: 2px solid #333;
    }

    .reissue-table td {
        display: block;
        width: 100% !important;
        border-left: none !important;
        border-right: none !important;
        border-top: none;
        border-bottom: 1px solid #d3d3d3;
        padding: 12px 10px;
    }

    .reissue-table .reissue-label {
        font-size: 16px;
        text-align: left;
        padding: 12px 10px;
        white-space: normal;
    }

    .reissue-col-title {
        font-size: 15px;
    }
}

/* ========================================
   게시판 목록 테이블 스타일
   ======================================== */

/* 데스크탑 테이블 */
.bbs-list-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #333;
    font-size: 16px;
    color: #333;
}

.bbs-list-table thead th {
    background: #d7e4ff;
    padding: 14px 10px;
    text-align: center;
    font-weight: 600;
    font-size: 16px;
    color: #333;
    border-top: none;
    border-bottom: 1px solid #c5d4f0;
    border-left: none;
    border-right: none;
}

.bbs-list-table tbody td {
    padding: 16px 10px;
    border-top: none;
    border-bottom: 1px solid #e5e5e5;
    border-left: none;
    border-right: none;
    font-size: 16px;
    color: #333;
    vertical-align: middle;
}

.bbs-list-table tbody tr:last-child td {
    border-bottom: 1px solid #ccc;
}

.bbs-list-center {
    text-align: center;
}

.bbs-list-subject {
    text-align: left;
    padding-left: 16px !important;
}

.bbs-list-subject a {
    color: #333;
    text-decoration: none;
}

.bbs-list-subject a:hover {
    color: #3272db;
    text-decoration: underline;
}

/* 공지 제목 앞 아이콘 */
.bbs-notice-icon {
    width: 18px;
    height: 18px;
    margin-right: 6px;
    vertical-align: middle;
}

/* 공지 배지 */
.bbs-notice-badge {
    display: inline-block;
    background: #bdd3ff;
    color: #3d519c;
    padding: 2px 10px;
    border-radius: 3px;
    font-size: 13px;
    font-weight: 600;
}

/* 댓글 수 */
.bbs-comment-cnt {
    color: #e74c3c;
    font-size: 14px;
    margin-left: 4px;
}

/* 첨부파일 아이콘 */
.bbs-file-icon {
    font-size: 18px;
    color: #666;
}

/* NEW 배지 */
.bbs-new-badge {
    display: inline-block;
    background: #e74c3c;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 6px;
    vertical-align: middle;
    line-height: 1.4;
}

/* HOT 배지 */
.bbs-hot-badge {
    display: inline-block;
    background: #f39c12;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: middle;
    line-height: 1.4;
}

/* 답변 들여쓰기 아이콘 */
.bbs-reply-indent {
    display: inline-block;
}

.bbs-reply-icon {
    color: #999;
    font-size: 14px;
    margin-right: 4px;
}

/* ========================================
   게시판 페이지네이션 (원형 버튼)
   ======================================== */
.bbs-pagination-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 40px 0 30px;
}

.bbs-pagination {
    list-style: none;
    display: flex;
    gap: 8px;
    padding: 0;
    margin: 0;
    align-items: center;
}

.bbs-pagination .page-item {
    display: inline-flex;
}

.bbs-pagination .page-item .page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1px solid #ddd;
    color: #555;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s;
    padding: 0;
    line-height: 1;
}

.bbs-pagination .page-item .page-link:hover {
    background: #e0e0e0;
    border-color: #ccc;
    color: #333;
}

.bbs-pagination .page-item.active .page-link {
    background: #3272db;
    border-color: #3272db;
    color: #fff;
    font-weight: 600;
}

.bbs-pagination .page-item.prev-page .page-link,
.bbs-pagination .page-item.next-page .page-link,
.bbs-pagination .page-item.first-page .page-link,
.bbs-pagination .page-item.last-page .page-link {
    font-size: 28px;
    font-weight: 600;
}

/* ========================================
   게시판 검색 스타일
   ======================================== */
.bbs-search-wrap {
    margin-top: 10px;
    border-top: 1px solid #e5e5e5;
    padding-top: 20px;
}

.bbs-search-inner {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 10px;
}

.bbs-search-input {
    border: 1px solid #ddd;
    border-radius: 0;
    font-size: 15px;
    padding: 8px 12px;
}

.bbs-search-input:focus {
    border-color: #3272db;
    border-radius: 0;
    box-shadow: 0 0 0 0.2rem rgba(50, 114, 219, 0.15);
}

.bbs-search-btn {
    background: #3272db;
    color: #fff;
    border: 1px solid #3272db;
    border-radius: 0;
    font-size: 15px;
    padding: 8px 20px;
}

.bbs-search-wrap .form-check-input {
    border-radius: 0;
}

.bbs-search-btn:hover {
    background: #2860c0;
    border-color: #2860c0;
    color: #fff;
}

/* ========================================
   게시판 모바일 카드 스타일
   ======================================== */
.bbs-mobile-card {
    border-bottom: 1px solid #e5e5e5;
    padding: 14px 4px;
}

.bbs-mobile-card:first-child {
    border-top: 2px solid #333;
}

.bbs-mobile-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.bbs-mobile-no {
    font-size: 13px;
    color: #999;
}

.bbs-mobile-mal {
    font-size: 13px;
    color: #666;
    background: #f0f0f0;
    padding: 2px 8px;
    border-radius: 3px;
}

.bbs-mobile-card-title {
    margin-bottom: 8px;
    font-size: 15px;
    line-height: 1.5;
}

.bbs-mobile-card-title a {
    color: #333;
    text-decoration: none;
}

.bbs-mobile-card-title a:hover {
    color: #3272db;
}

.bbs-mobile-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #999;
    margin-top: 4px;
}

.bbs-mobile-card-meta i {
    margin-right: 3px;
}

/* 게시판 말머리 탭 버튼 */
.bbs-mal-wrap {
    margin-top: 12px;
    margin-bottom: 4px;
}

/* ========================================
   게시판 상세 페이지 스타일
   ======================================== */

/* 상세 래퍼 */
.bbs-view-wrap {
    border-top: 2px solid #333;
}

/* 메타 정보 (작성자, 날짜, 조회수) */
.bbs-view-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 14px 16px;
    font-size: 15px;
    color: #888;
    border-bottom: 1px solid #e5e5e5;
}

.bbs-view-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.bbs-view-meta-item i {
    font-size: 14px;
}

.bbs-view-meta-divider {
    margin: 0 12px;
    color: #ddd;
}

/* 제목 */
.bbs-view-title {
    padding: 24px 16px;
    font-size: 24px;
    font-weight: 600;
    color: #222;
    line-height: 1.4;
    border-bottom: 1px solid #ccc;
}

.bbs-view-mal {
    color: #3272db;
    font-size: 18px;
    font-weight: 500;
    margin-right: 8px;
}

/* 본문 */
.bbs-view-content {
    padding: 30px 16px;
    font-size: 16px;
    color: #333;
    line-height: 1.8;
    min-height: 200px;
    border-bottom: 1px solid #e5e5e5;
}

.bbs-view-content img {
    max-width: 100%;
    height: auto;
}

/* 첨부파일 */
.bbs-view-attach {
    background: #f8f9fa;
    border-bottom: 1px solid #ccc;
    padding: 16px;
}

.bbs-view-attach-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    font-size: 15px;
}

.bbs-view-attach-item + .bbs-view-attach-item {
    border-top: 1px solid #eee;
    padding-top: 10px;
}

.bbs-view-attach-label {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
    font-size: 14px;
}

.bbs-view-attach-item a {
    color: #333;
    text-decoration: none;
}

.bbs-view-attach-item a:hover {
    color: #3272db;
    text-decoration: underline;
}

.bbs-view-attach-item a i {
    color: #666;
    font-size: 16px;
}

/* 갤러리 이미지 */
.bbs-view-gallery-img {
    padding: 20px 16px;
    text-align: center;
    border-bottom: 1px solid #e5e5e5;
}

.bbs-view-gallery-img img {
    max-width: 100%;
    height: auto;
}

/* 동영상 */
.bbs-view-video {
    padding: 20px 16px;
    border-bottom: 1px solid #e5e5e5;
}

/* 채용 배지 */
.bbs-view-recruit-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    vertical-align: middle;
    margin-right: 8px;
}

.bbs-view-recruit-result {
    background: #3272db;
    color: #fff;
}

.bbs-view-recruit-closed {
    background: #e74c3c;
    color: #fff;
}

.bbs-view-recruit-active {
    background: #f39c12;
    color: #fff;
}

/* 채용 모집기간 */
.bbs-view-recruit-period {
    padding: 14px 16px;
    font-size: 15px;
    color: #555;
    background: #f8f9fa;
    border-bottom: 1px solid #e5e5e5;
}

.bbs-view-recruit-period i {
    margin-right: 6px;
    color: #888;
}

/* 목록 버튼 */
.bbs-view-btn-wrap {
    margin-top: 30px;
    text-align: right;
}

.bbs-view-btn-list {
    display: inline-block;
    padding: 10px 32px;
    background: #3272db;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 4px;
    transition: background 0.2s;
}

.bbs-view-btn-list:hover {
    background: #2860c0;
    color: #fff;
}

/* 푸터 텍스트 */
.bbs-view-footer {
    margin-top: 20px;
    padding: 16px;
    font-size: 15px;
    color: #666;
}

/* ========================================
   게시판 반응형
   ======================================== */
@media (max-width: 768px) {
    .bbs-pagination .page-item .page-link {
        width: 36px;
        height: 36px;
        font-size: 14px;
    }

    .bbs-pagination .page-item.prev-page .page-link,
    .bbs-pagination .page-item.next-page .page-link,
    .bbs-pagination .page-item.first-page .page-link,
    .bbs-pagination .page-item.last-page .page-link {
        font-size: 20px;
    }

    .bbs-pagination {
        gap: 4px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .bbs-search-inner {
        max-width: 100%;
    }

    .bbs-view-meta {
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px;
        padding: 12px 10px;
        font-size: 13px;
    }

    .bbs-view-meta-divider {
        margin: 0 8px;
    }

    .bbs-view-title {
        font-size: 20px;
        padding: 18px 12px;
    }

    .bbs-view-content {
        padding: 20px 12px;
        font-size: 15px;
        min-height: 120px;
    }

    .bbs-view-attach {
        padding: 12px;
    }

    .bbs-view-attach-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        font-size: 14px;
    }

    .bbs-view-btn-wrap {
        text-align: center;
        margin-top: 20px;
    }

    .bbs-view-btn-list {
        padding: 10px 40px;
        font-size: 15px;
    }

    .bbs-view-gallery-img,
    .bbs-view-video {
        padding: 12px 8px;
    }
}


/* ── 교직과정 설치학과 페이지 (sub03a) ── */

.tdept-year-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
    border-bottom: 2px solid #333;
}

.tdept-year-tab {
    padding: 10px 24px;
    font-size: 16px;
    font-weight: 500;
    color: #666;
    text-decoration: none;
    border: 1px solid #d3d3d3;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
    background: #f8f9fa;
    margin-bottom: -2px;
    transition: background 0.2s, color 0.2s;
}

.tdept-year-tab:hover {
    background: #e8f0fe;
    color: #333;
}

.tdept-year-tab.active {
    background: #fff;
    color: #12217d;
    font-weight: 600;
    border-color: #333;
    border-bottom: 2px solid #fff;
}

.tdept-table {
    min-width: 700px;
}

.tdept-table thead {
    background: #d7e4ff;
}

.tdept-table thead th {
    background: #d7e4ff;
    color: #333;
    font-weight: 600;
}

.tdept-table tbody td {
    vertical-align: middle;
}

.tdept-table tbody td.tdept-college-cell {
    font-weight: 500;
    background: #f8f9fa;
}

.tdept-college-last td,
.tdept-table tbody td.tdept-college-cell {
    border-bottom: 1px solid #333;
}

.tdept-table td.tdept-dept-cell {
    text-align: left;
}

.tdept-total-row {
    background: #d7e4ff;
}

.tdept-total-row td {
    background: #d7e4ff;
    color: #333;
    font-weight: 600;
    text-align: center;
    border-bottom: 1px solid #333;
}

@media (max-width: 768px) {
    .tdept-year-tabs {
        flex-wrap: wrap;
    }

    .tdept-year-tab {
        padding: 8px 16px;
        font-size: 14px;
    }

    .tdept-table {
        min-width: 600px;
    }
}

/* ── 학교현장실습 신청 - 개인정보 동의 ── */
.practicum-closed-notice {
    text-align: center;
    padding: 60px 20px;
    color: #666;
}
.practicum-closed-notice i {
    font-size: 48px;
    color: #ccc;
    display: block;
    margin-bottom: 16px;
}
.practicum-closed-notice p {
    font-size: 18px;
    margin: 0;
}
.practicum-apply-info {
    font-size: 17px;
    color: #333;
    font-weight: 500;
    margin-bottom: 20px;
}

/* 전체 동의 */
.privacy-agree-all {
    background: #f0f4ff;
    border: 2px solid #3272db;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}
.privacy-agree-all .privacy-checkbox-label span {
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

/* 동의 섹션 */
.privacy-agree-section {
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 12px;
    overflow: hidden;
}
.privacy-agree-header {
    background: #f8f9fa;
    padding: 14px 20px;
    border-bottom: 1px solid #ddd;
}
.privacy-checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}
.privacy-checkbox-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: #3272db;
    cursor: pointer;
}
.privacy-checkbox-label span {
    font-size: 16px;
    color: #333;
    font-weight: 500;
}
.privacy-required-tag {
    color: #e74c3c;
    font-weight: 600;
}
.privacy-optional-tag {
    color: #888;
    font-weight: 600;
}
.privacy-agree-content {
    padding: 16px 20px;
    font-size: 14px;
    color: #555;
    line-height: 1.7;
    max-height: 200px;
    overflow-y: auto;
    background: #fff;
}

/* 다음단계 버튼 */
.privacy-btn-wrap {
    margin-top: 30px;
    text-align: center;
}
.privacy-btn-next {
    display: inline-block;
    padding: 14px 60px;
    background: #3272db;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.privacy-btn-next:hover {
    background: #2560c2;
}
.privacy-btn-next:disabled {
    background: #ccc;
    cursor: not-allowed;
}

/* ── 학교현장실습 신청서 폼 ── */
.pform-info-text {
    font-size: 14px;
    color: #666;
    margin-bottom: 16px;
    text-align: right;
}
.pform-required {
    color: #e74c3c;
    font-weight: 700;
}

/* 폼 테이블 */
.pform-table-wrap {
    overflow-x: auto;
    margin-bottom: 30px;
}
.pform-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #333;
    font-size: 15px;
}
.pform-table th,
.pform-table td {
    padding: 10px 14px;
    border-bottom: 1px solid #e5e5e5;
    vertical-align: middle;
}
.pform-table th.pform-label {
    background: #f4f7fc;
    color: #333;
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
}
.pform-table td {
    background: #fff;
}

/* 다중행 테이블 (학력, 소지자격) */
.pform-table-multi thead th {
    background: #f4f7fc;
    font-weight: 600;
    text-align: center;
    padding: 10px 8px;
    border-bottom: 1px solid #d3d3d3;
}
.pform-table-multi td {
    padding: 8px;
}
.pform-cell-label {
    background: #f4f7fc;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

/* 학력 테이블 */
.pform-edu-col-label { width: 10%; }
.pform-edu-col-period { width: 12%; }
.pform-edu-col-school { width: 18%; }
.pform-edu-col-college { width: 14%; }
.pform-edu-col-dept { width: 14%; }
.pform-edu-col-note { width: 10%; }

/* 입력 필드 */
.pform-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    color: #333;
    box-sizing: border-box;
    transition: border-color 0.2s;
}
.pform-input:focus {
    outline: none;
    border-color: #3272db;
}
.pform-input-sm {
    max-width: 140px;
}
.pform-select {
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    color: #333;
    background: #fff;
    min-width: 140px;
    box-sizing: border-box;
}
.pform-select:focus {
    outline: none;
    border-color: #3272db;
}
.pform-select-sm {
    min-width: 80px;
}
.pform-textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    color: #333;
    resize: vertical;
    box-sizing: border-box;
}
.pform-textarea:focus {
    outline: none;
    border-color: #3272db;
}
.pform-file {
    font-size: 14px;
    color: #333;
}
.pform-file-hidden {
    display: none;
}
.pform-file-help {
    font-size: 12px;
    color: #999;
    margin-top: 4px;
}

/* 인라인 그룹 */
.pform-inline {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.pform-mb {
    margin-bottom: 8px;
}

/* 주소 검색 */
.pform-address-wrap {
    max-width: 600px;
}
.pform-btn-address {
    padding: 8px 16px;
    background: #555;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    white-space: nowrap;
}
.pform-btn-address:hover {
    background: #333;
}

/* 라디오 그룹 */
.pform-radio-group {
    display: flex;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap;
}
.pform-radio-label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 15px;
    color: #333;
}
.pform-radio-label input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: #3272db;
    cursor: pointer;
}

/* 사진 영역 */
.pform-photo-cell {
    text-align: center;
}
.pform-photo-wrap {
    display: inline-block;
}
.pform-photo-preview {
    width: 120px;
    height: 150px;
    border: 2px dashed #ccc;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;
    margin: 0 auto 8px;
    background: #f9f9f9;
    transition: border-color 0.2s;
}
.pform-photo-preview:hover {
    border-color: #3272db;
}
.pform-photo-preview i {
    font-size: 40px;
    color: #ccc;
}
.pform-photo-preview span {
    font-size: 12px;
    color: #999;
    margin-top: 4px;
}
.pform-photo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pform-photo-help {
    font-size: 12px;
    color: #999;
    text-align: center;
    margin: 0;
}

/* 버튼 그룹 */
.pform-btn-wrap {
    margin-top: 30px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 12px;
}
.pform-btn-submit {
    padding: 14px 50px;
    background: #3272db;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.pform-btn-submit:hover {
    background: #2560c2;
}
.pform-btn-cancel {
    padding: 14px 50px;
    background: #fff;
    color: #666;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.pform-btn-cancel:hover {
    background: #f5f5f5;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .privacy-agree-all {
        padding: 12px 16px;
    }
    .privacy-agree-all .privacy-checkbox-label span {
        font-size: 16px;
    }
    .privacy-agree-header {
        padding: 12px 16px;
    }
    .privacy-agree-content {
        padding: 12px 16px;
        max-height: 150px;
    }
    .privacy-btn-next {
        width: 100%;
        padding: 14px 20px;
    }

    /* 폼 테이블 모바일 */
    .pform-table,
    .pform-table thead,
    .pform-table tbody,
    .pform-table th,
    .pform-table td,
    .pform-table tr {
        display: block;
    }
    .pform-table colgroup {
        display: none;
    }
    .pform-table th.pform-label {
        border-bottom: none;
        padding-bottom: 4px;
    }
    .pform-table td {
        padding-top: 4px;
        padding-bottom: 12px;
    }
    .pform-table td[colspan] {
        padding-top: 4px;
    }
    .pform-table td[rowspan] {
        text-align: center;
    }

    /* 다중행 테이블은 스크롤 유지 */
    .pform-table-multi,
    .pform-table-multi thead,
    .pform-table-multi tbody,
    .pform-table-multi th,
    .pform-table-multi td,
    .pform-table-multi tr,
    .pform-table-edu,
    .pform-table-edu thead,
    .pform-table-edu tbody,
    .pform-table-edu th,
    .pform-table-edu td,
    .pform-table-edu tr {
        display: revert;
    }
    .pform-table-multi colgroup,
    .pform-table-edu colgroup {
        display: revert;
    }
    .pform-table-multi {
        min-width: 600px;
    }
    .pform-table-edu {
        min-width: 700px;
    }

    .pform-inline {
        flex-direction: column;
        align-items: stretch;
    }
    .pform-select {
        min-width: auto;
        width: 100%;
    }
    .pform-select-sm {
        min-width: auto;
    }
    .pform-btn-wrap {
        flex-direction: column;
    }
    .pform-btn-submit,
    .pform-btn-cancel {
        width: 100%;
        padding: 14px 20px;
    }
    .pform-photo-preview {
        width: 100px;
        height: 130px;
    }

    /* 신청확인 모바일 */
    .pcheck-result-card table.pform-table th.pform-label,
    .pcheck-result-card table.pform-table td {
        display: block;
    }
    .pcheck-result-card table.pform-table colgroup {
        display: none;
    }
    .pcheck-btn-search {
        width: 100%;
    }
}

/* ── 학교현장실습 신청 확인 ── */
.pcheck-wrap {
    max-width: 800px;
}
.pcheck-desc {
    font-size: 15px;
    color: #666;
    margin-bottom: 20px;
}
.pcheck-btn-wrap {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 30px;
}
.pcheck-btn-search {
    display: inline-block;
    padding: 12px 50px;
    background: #3272db;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s;
}
.pcheck-btn-search:hover {
    background: #2560c2;
}
.pcheck-btn-search:disabled {
    background: #999;
    cursor: not-allowed;
}
.pcheck-no-result {
    padding: 30px 20px;
    text-align: center;
    color: #888;
    font-size: 15px;
    background: #f9f9f9;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
}
.pcheck-no-result i {
    margin-right: 6px;
    color: #3272db;
}
.pcheck-result-card {
    border: 1px solid #d3d3d3;
    border-radius: 4px;
    margin-bottom: 16px;
    overflow: hidden;
}
.pcheck-result-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: #f5f8ff;
    border-bottom: 1px solid #d3d3d3;
}
.pcheck-result-title {
    font-size: 16px;
    font-weight: 600;
    color: #333;
}
.pcheck-result-body {
    padding: 0;
}
.pcheck-result-body .pform-table {
    margin-bottom: 0;
    border-top: none;
}
.pcheck-status-badge {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
}
.pcheck-status-received {
    background: #3272db;
}
.pcheck-status-approved {
    background: #28a745;
}
.pcheck-status-rejected {
    background: #dc3545;
}
.pcheck-status-cancelled {
    background: #999;
}
