/* 웹접근성 개선 CSS
 * - 이미지: 의미 있는 alt(대체텍스트) 적용
 * - 새 창/팝업 링크: aria-label 또는 .sr-only "(새 창)"으로 경유 안내
 * - 포커스 가시성 및 키보드 접근성
 */

/* 기본 포커스 스타일 */
*:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 버튼 포커스 스타일 */
button:focus,
input[type="button"]:focus,
input[type="submit"]:focus,
input[type="reset"]:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 링크 기본 포커스 스타일 */
a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* ========== 네비게이션 메뉴 포커스 스타일 ========== */

/* 로고 포커스 */
.logo_wrap a:focus,
#top_logo a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    position: relative !important;
    z-index: 100 !important;
}

/* 메인 메뉴(1depth) 포커스 - 센터소개, 상담, 자주묻는질문, 알림마당 */
#gnb_layout .depth1_ul > li > a:focus,
.depth1_ul > li > a.th_1st:focus {
    background-color: #e6f3ff !important;
    color: #000 !important;
    font-weight: bold !important;
    text-shadow: none !important;
    outline: 1px dotted #3ac5f8 !important;
    outline-offset: 1px !important;
}

/* 서브 메뉴(2depth) 포커스 - 인사말, 연혁, 전화상담, 게시판상담 등 */
#gnb_layout .depth1_ul > li .item .depth2_ul > li > a:focus {
    background-color: #143d8a !important;
    color: #fff !important;
    outline: 1px dotted #3ac5f8 !important;
    outline-offset: -3px !important;
    text-shadow: none !important;
    font-weight: bold !important;
    z-index: 999 !important;
    position: relative !important;
}

/* 입력 필드 포커스 스타일 */
input:focus,
textarea:focus,
select:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 팝업 페이지 레이아웃 (건너뛰기 링크, 헤더, 푸터 제거) */
body.popup-body {
    margin: 0;
    padding: 20px;
    background: #fff;
}

.popup-wrapper {
    max-width: 100%;
    margin: 0;
    padding: 0;
}

/* 팝업에서 불필요한 요소 숨김 */
body.popup-body .nav-skip,
body.popup-body #top_layout,
body.popup-body #gnb_layout,
body.popup-body #foot_layout,
body.popup-body header,
body.popup-body footer {
    display: none !important;
}

/* 게시판 관련링크 연결 횟수 색상 */
.bo_v_link_cnt {
    color: #444 !important;
}

/* text-secondary 색상 진하게 */
.text-secondary {
    color: #444 !important;
}

/* 갤러리 이미지 영역 - overflow 해제 */
.gall_img,
#bo_gall .gall_img {
    overflow: visible !important;
}

/* 갤러리 이미지 링크 포커스 */
.gall_img a,
#bo_gall .gall_img a {
    display: inline-block !important;
    position: relative !important;
    line-height: 0 !important;
    width: 100% !important;
    min-height: 300px !important;
}

/* 갤러리 이미지를 block으로 처리 */
.gall_img a img,
#bo_gall .gall_img a img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    vertical-align: top !important;
}

.gall_img a:focus,
#bo_gall .gall_img a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: -3px !important;
    z-index: 10 !important;
}

/* 갤러리 이미지 자체에도 포커스 표시 */
.gall_img a:focus img,
#bo_gall .gall_img a:focus img {
    outline: 1px dotted #0066cc !important;
    outline-offset: -3px !important;
}

/* Slick 슬라이더 링크 포커스 */
.slick-slide a:focus,
.slick-slide a:focus img {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    z-index: 100 !important;
}

.slick-slide a {
    display: block !important;
    position: relative !important;
}

.slick-slide a:focus {
    transform: none !important;
}

/* placeholder 텍스트 고대비 처리 - 전역 강제 적용 */
/* 관리자 페이지 제외 */
body:not(.admin-page) input::placeholder,
body:not(.admin-page) textarea::placeholder,
body:not(.admin-page) select::placeholder,
input:not([class*="adm"])::placeholder,
textarea:not([class*="adm"])::placeholder,
select:not([class*="adm"])::placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* Chrome, Safari, Edge */
body:not(.admin-page) input::-webkit-input-placeholder,
body:not(.admin-page) textarea::-webkit-input-placeholder,
body:not(.admin-page) select::-webkit-input-placeholder,
input:not([class*="adm"])::-webkit-input-placeholder,
textarea:not([class*="adm"])::-webkit-input-placeholder,
select:not([class*="adm"])::-webkit-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* Firefox */
body:not(.admin-page) input::-moz-placeholder,
body:not(.admin-page) textarea::-moz-placeholder,
body:not(.admin-page) select::-moz-placeholder,
input:not([class*="adm"])::-moz-placeholder,
textarea:not([class*="adm"])::-moz-placeholder,
select:not([class*="adm"])::-moz-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* IE 10-11 */
body:not(.admin-page) input:-ms-input-placeholder,
body:not(.admin-page) textarea:-ms-input-placeholder,
body:not(.admin-page) select:-ms-input-placeholder,
input:not([class*="adm"]):-ms-input-placeholder,
textarea:not([class*="adm"]):-ms-input-placeholder,
select:not([class*="adm"]):-ms-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* Edge (구버전) */
body:not(.admin-page) input::-ms-input-placeholder,
body:not(.admin-page) textarea::-ms-input-placeholder,
body:not(.admin-page) select::-ms-input-placeholder,
input:not([class*="adm"])::-ms-input-placeholder,
textarea:not([class*="adm"])::-ms-input-placeholder,
select:not([class*="adm"])::-ms-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* 추가 강제 적용 - 특정 클래스 */
/* 최우선 순위로 강제 적용 */
input.sch_input::placeholder,
input.frm_input::placeholder,
input.form-control::placeholder,
.sch_input::placeholder,
.frm_input::placeholder,
.form-control::placeholder,
#faq_search_input::placeholder,
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="tel"]::placeholder,
input[type="search"]::placeholder,
textarea::placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

input.sch_input::-webkit-input-placeholder,
input.frm_input::-webkit-input-placeholder,
input.form-control::-webkit-input-placeholder,
.sch_input::-webkit-input-placeholder,
.frm_input::-webkit-input-placeholder,
.form-control::-webkit-input-placeholder,
#faq_search_input::-webkit-input-placeholder,
input[type="text"]::-webkit-input-placeholder,
input[type="email"]::-webkit-input-placeholder,
input[type="tel"]::-webkit-input-placeholder,
input[type="search"]::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

input.sch_input::-moz-placeholder,
input.frm_input::-moz-placeholder,
input.form-control::-moz-placeholder,
.sch_input::-moz-placeholder,
.frm_input::-moz-placeholder,
.form-control::-moz-placeholder,
#faq_search_input::-moz-placeholder,
input[type="text"]::-moz-placeholder,
input[type="email"]::-moz-placeholder,
input[type="tel"]::-moz-placeholder,
input[type="search"]::-moz-placeholder,
textarea::-moz-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

input.sch_input:-ms-input-placeholder,
input.frm_input:-ms-input-placeholder,
input.form-control:-ms-input-placeholder,
.sch_input:-ms-input-placeholder,
.frm_input:-ms-input-placeholder,
.form-control:-ms-input-placeholder,
#faq_search_input:-ms-input-placeholder,
input[type="text"]:-ms-input-placeholder,
input[type="email"]:-ms-input-placeholder,
input[type="tel"]:-ms-input-placeholder,
input[type="search"]:-ms-input-placeholder,
textarea:-ms-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

input.sch_input::-ms-input-placeholder,
input.frm_input::-ms-input-placeholder,
input.form-control::-ms-input-placeholder,
.sch_input::-ms-input-placeholder,
.frm_input::-ms-input-placeholder,
.form-control::-ms-input-placeholder,
#faq_search_input::-ms-input-placeholder,
input[type="text"]::-ms-input-placeholder,
input[type="email"]::-ms-input-placeholder,
input[type="tel"]::-ms-input-placeholder,
input[type="search"]::-ms-input-placeholder,
textarea::-ms-input-placeholder {
    color: #444 !important;
    opacity: 1 !important;
}

/* ========== 메인 페이지 인터랙티브 요소 ========== */

/* 슬라이더 컨트롤 버튼 포커스 */
.slide_control button:focus,
.slide_control .button:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #e6f3ff !important;
    color: #000 !important;
}

/* FAQ 검색 입력창 포커스 */
#faq_search_input:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #fffef5 !important;
}

/* FAQ 검색 버튼 포커스 */
.faq-search-form button:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #004080 !important;
    color: #fff !important;
}

/* 추천 검색어 링크 포커스 */
.faq-keyword-link:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
    font-weight: bold !important;
    transform: none !important;
}

/* 빠른 메뉴(전화상담, 게시판상담 등) 포커스 */
.new_quick .list .item a:focus,
.quick_faq .new_quick .item a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: rgba(0, 102, 204, 0.1) !important;
    transform: none !important;
}

/* FAQ 목록 링크 포커스 */
.faq-list .faq .list .item a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #e6f3ff !important;
    color: #000 !important;
    font-weight: bold !important;
}

/* 유관기관 배너 제어 버튼 포커스 (이전/다음/일시정지/재생) */
.faq-list .slide_control .button:focus,
.section.nsection3 .slide_control .button:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 메인 검색 폼 포커스 */
.main-search-form .main-search-select:focus,
.main-search-form .main-search-input:focus,
.main-search-form .main-search-button:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 더보기 링크 포커스 */
.slide_control a.more:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
    text-decoration: underline !important;
}

/* ========== 게시판 관련 포커스 스타일 ========== */

/* 게시판 목록 행(tr) 포커스 */
.board_list tbody tr:focus,
.board_list tbody tr:focus-within {
    background-color: #e6f3ff !important;
    outline: 1px dotted #0066cc !important;
}

/* 게시판 목록 링크 포커스 */
.board_list a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #fffef5 !important;
    color: #000 !important;
    font-weight: bold !important;
}

/* 게시판 제목 링크 포커스 */
.bo_tit a:focus,
.board_title a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    text-decoration: underline !important;
}

/* 게시판 버튼 포커스 */
.btn_submit:focus,
.btn_large:focus,
.btn-primary:focus,
.btn-secondary:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* ========== 설문조사 페이지 포커스 ========== */

/* 설문 목록 카드 포커스 */
.survey-card:focus,
.survey-card:focus-within {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 설문 버튼 포커스 */
.bx-red:focus,
.bx-blue:focus,
.bx-gray:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    transform: none !important;
}

/* 라디오 버튼 포커스 */
input[type="radio"]:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 체크박스 포커스 */
input[type="checkbox"]:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* ========== FAQ 페이지 포커스 스타일 ========== */

/* FAQ 제목 링크 포커스 */
#faq_con li h3 a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #e6f3ff !important;
    color: #000 !important;
    text-decoration: underline !important;
}

/* FAQ 아코디언 버튼 포커스 */
#faq_con .tit_btn:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
}

/* FAQ 닫기 버튼 포커스 */
.closer_btn:focus {
    outline: 1px dotted #ff0066 !important;
    outline-offset: 1px !important;
    background-color: #ff0066 !important;
    color: #fff !important;
    transform: none !important;
}

/* FAQ 검색 입력창 포커스 */
#faq_sch input[type="text"]:focus,
#stx:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #fffef5 !important;
}

/* FAQ 검색 버튼/취소 버튼 포커스 */
#faq_sch button:focus,
#faq_sch .btn_submit:focus,
#faq_sch .btn_cancel:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #004080 !important;
    color: #fff !important;
}

/* ========== 페이지네이션 포커스 ========== */

/* 페이지 링크 포커스 */
.pg_page:focus,
.pg_current:focus,
.pg a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
    font-weight: bold !important;
}

/* ========== 푸터 영역 포커스 ========== */

/* 푸터 링크 포커스 */
#footer a:focus,
#foot_layout a:focus,
.footer-link a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    color: #000 !important;
}

/* 관련기관 누리집 버튼 포커스 */
.linksite button:focus,
.linksite.clickOpen > button:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
}

/* 관련기관 누리집 링크 포커스 */
#familySiteList a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 관련기관 누리집 닫기 버튼 포커스 */
.linksite .clickClose:focus {
    outline: 1px dotted #ff0066 !important;
    outline-offset: 1px !important;
    background-color: #ff0066 !important;
    color: #fff !important;
}

/* SNS 아이콘 포커스 */
.sns_link a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    transform: none !important;
}

/* ========== 테이블 포커스 ========== */

/* 테이블 내 링크 포커스 */
table a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #fffef5 !important;
    color: #000 !important;
    font-weight: bold !important;
}

/* 테이블 행 포커스 */
table tbody tr:focus-within {
    background-color: #e6f3ff !important;
    outline: 1px dotted #0066cc !important;
}

/* ========== 기타 특수 요소 포커스 ========== */

/* 전체메뉴 버튼 포커스 */
.btn-allmenu:focus,
.allmenu_btn:focus {
    outline: 1px dotted #e4492e !important;
    outline-offset: 1px !important;
    background-color: #e4492e !important;
    color: #fff !important;
}

/* 모바일 메뉴 토글 포커스 */
.mobile-menu-toggle:focus,
.ham_btn:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: rgba(0, 102, 204, 0.2) !important;
}

/* 상단 유틸리티 메뉴 포커스 */
.utile_wrap a:focus,
.utility_menu a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #e6f3ff !important;
    color: #000 !important;
}

/* 배너 링크 포커스 */
.banner_link a:focus,
.popupzone a:focus,
.popupzone2 a:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 파일 첨부 버튼 포커스 */
.btn_file:focus,
input[type="file"]:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #e6f3ff !important;
}

/* 드롭다운 메뉴 포커스 */
.dropdown-toggle:focus,
select:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 탭 인터페이스 포커스 */
[role="tab"]:focus,
.tab_btn:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: #0066cc !important;
    color: #fff !important;
    font-weight: bold !important;
}
/* content-tab: 포커스 시 아웃라인 표시(웹접근성), 배경/글자색은 유지 */
.content-tab--accessible [role="tab"]:focus,
.content-tab--accessible [role="tab"]:focus-visible {
    outline: 2px dotted #0066cc !important;
    outline-offset: 1px !important;
    background-color: transparent !important;
    color: inherit !important;
    font-weight: inherit !important;
}

/* 모달 닫기 버튼 포커스 */
.mobile-close:focus,
.modal_close:focus,
.win_close:focus {
    outline: 1px dotted #ff0066 !important;
    outline-offset: 1px !important;
    background-color: #ff0066 !important;
    color: #fff !important;
    transform: none !important;
}

/* 스킵 네비게이션 포커스 시 보이기 */
.nav-skip a:focus,
.nav-skip a:active {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 30px !important;
    line-height: 30px !important;
    background: #1d60a7 !important;
    color: #fff !important;
    text-align: center !important;
    z-index: 999999 !important;
    font-size: 14px !important;
    display: block !important;
}

/* 포커스 가시성 보장 */
:focus-visible {
    outline: 1px dotted #0066cc !important;
    outline-offset: 1px !important;
}

/* 키보드 사용자를 위한 추가 스타일 */
body.using-keyboard *:focus {
    outline: 1px dotted #0066cc !important;
    outline-offset: 3px !important;
}
