@charset "utf-8";

:root {    
    --hd-h: 5em;
    --container: var(--container-xl)
}

/* =======================================================
    common
======================================================= */
#debug { position: fixed; left: 0; bottom: 0; margin: 1em; background-color: rgba(0,0,0,0.6); color: #00ffd5; padding: 0.5em 1em; display: none; }

* { scrollbar-width: thin; scrollbar-color: #aaa #fff; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #fff; }
::-webkit-scrollbar-thumb { background: #aaa; border-radius: var(--radius-full); }
/* ::selection { background-color: var(--primary-bg); color: var(--primary-dk); } */

body { font-family: "Pretendard", sans-serif; font-size: 1em; line-height: 1.4; letter-spacing: -0.02em; font-display: swap; color: #222; }

/* 관리자 버튼 */
.ctt_admin { display: none; }

/* 유틸리티 */
.asset { position: absolute; }
.emph { color: var(--primary); }
.divider { width: 0.125em; height: 0.875em; background-color: currentColor; opacity: 0.5; border-radius: var(--radius-full); display: inline-block; }
.ellipsis { width: 100%; display: -webkit-box !important; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; -ms-text-overflow: ellipsis; text-overflow: ellipsis; }
.icon { display: inline-flex; justify-content: center; align-items: center; aspect-ratio: 1/1; }
.flex { display: flex; }

/* =======================================================
    컴포넌트
======================================================= */
/* 프로필 이미지 */
img[alt=profile_image], 
.profile_img img { border-radius: var(--radius-full); max-width: 100%; height: auto; border: 1px solid #e9e9e9; }

/* 배지 */
.badge { display: inline-flex; justify-content: center; align-items: center; padding: 0 0.75em;  border-radius: var(--radius-full); line-height: 1.8; background-color: var(--bg); color: var(--c); }
.badge   { --bg: var(--gray-100); --c: var(--gray-600); }
.badge-1 { --bg: var(--primary-bg); --c: var(--primary); }
.badge-2 { --bg: var(--info-bg); --c: var(--info); }
.badge-3 { --bg: var(--success-bg); --c: var(--success); }
.badge-4 { --bg: var(--error-bg); --c: var(--error); } 
.badge-4 { --bg: var(--warning-bg); --c: var(--warning); }

/* 타이틀 */
.page_title { text-align: center; margin-bottom: 2em; }
.page_title h2 { font-size: 1.5em; font-weight: 700; }
.page_title p { font-size: 0.9375em; margin-top: 0.5em; color: #666; }
 
/* 탭 메뉴 */
.tab { margin-bottom: 1.5em; }
.tab_list { display: flex; gap: 0.5em; justify-content: center; align-items: center; }
.tab_list a { display: inline-flex; justify-content: center; align-items: center; padding: 0.5em 1em; border: 1px solid #ddd; color: #686868; border-radius: var(--radius-full); }
.tab_list a:hover { background-color: var(--primary-bg); }
.tab_list #bo_cate_on { border-color: var(--primary); background-color: var(--primary); color: #fff; }

/* 툴팁 */
.tooltip { display: inline-flex; justify-content: flex-start; align-items: flex-start; position: relative; gap: 0.25em; vertical-align: top; }
.tooltip_icon { font-size: 0.875em; padding: 0.125em 0.25em; border: 0; position: relative; z-index: var(--z-sticky); color: #686868; }
.tooltip_txt { padding: 0.4em 0.5em 0.4em 1.5em; border-radius: var(--radius-sm); position: absolute; white-space: nowrap; background-color: var(--info-bg); box-shadow: var(--shadow-xs); z-index: var(--z-dropdown); left: 0; font-size: 0.8125em; line-height: 1.2; pointer-events: none; top: 0.25em; opacity: 0; transition: var(--ts-sm); color: var(--info); }
.tooltip:hover .tooltip_icon { color: var(--info); }
.tooltip:hover .tooltip_txt { pointer-events: auto; opacity: 1; top: 0; } 

/* 팝업레이어 */
.popup_wrap { position: absolute; z-index: var(--z-fixed); top: 5%; left: 50%; transform: translateX(-50%); display: grid; grid-template-columns: repeat(auto-fit, minmax(min-content,450px)); gap: 1.5em; pointer-events: none; }
.popup { box-shadow: var(--shadow-lg); border-radius: var(--radius-md); overflow: hidden; pointer-events: auto; }
.popup_con img { max-width: 100%; vertical-align: top; }
.popup_btns { display: flex; justify-content: flex-start; align-items: center; }
.popup_btn { font-size: 0.875em; padding: 0.625em 1em; border-radius: 0; border: 0; color: #fff; }
.popup_btn.is-reject { flex-grow: 1; text-align: left; background-color: #191919; }
.popup_btn.is-close { flex-shrink: 0; background-color: #393939; }

/* 모달창 */
.modal { position: fixed; left: 0; top: 0; bottom: 0; right: 0; background-color: rgba(0,0,0,0.5); z-index: var(--z-modal); display: none; }
.modal_box { width: 90%; max-width: var(--container-xs); position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); background-color: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-lg); overflow: hidden; display: none; }
.modal_title { padding: 0.75em 1.25em; border-bottom: 1px solid #e1e1e1; display: flex; justify-content: space-between; align-items: center; }
.modal_title h3 { font-size: 1.25em; font-weight: 700; }
.modal_close { font-size: 1.25em; border: 0; }
.modal_con { padding: 0.75em 1.25em; height: calc(var(--vh) * 60); overflow: hidden scroll; background-color: #fafafa; color: #686868; line-height: 1.5; }
.modal_open { cursor: pointer; }

/* ==============================================================
    게시판
============================================================== */
.post_box { display: flex; align-items: center; position: relative; margin: 0.5em 0; }

.post_btns { display: flex; align-items: center; }
.post_btns.is-admin { margin-left: auto; gap: 0.25em; }
.post_btns.is-admin .btn { width: 2em; aspect-ratio: 1/1; }
.post_btns.is-user .btn { padding: 0.875em 1.5em; gap: 0.5em; }
.post_btns.is-user.is-list { margin-left: auto; }
.post_btns.is-user.is-view { margin: 2em auto 0; }
.post_btns.is-user.is-view .btn_b01 { font-size: 0.9375em; font-weight: 600; }
.post_btns.is-user.is-view .btn_submit { font-size: 1.125em; padding: 0.75em 2em; }
.post_btns.is-user.is-view .disabled { opacity: 0; pointer-events: none; }

.post_opt { position: relative; }
.post_opt_list { position: absolute; top: 100%; text-align: left; transition: var(--ts-md); overflow: hidden; background-color: rgba(255, 255, 255, 0.8); -webkit-backdrop-filter: blur(0.2em); backdrop-filter: blur(0.2em); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); right: 0; padding: 0.25em 0; opacity: 0; transform: translateY(1em); pointer-events: none; z-index: var(--z-dropdown); }
.post_opt_list li { color: #888; }
.post_opt_list li > * { padding: 0.25em 0.5em; font-size: 0.875em; display: flex; justify-content: flex-start; align-items: center; gap: 0.25em; white-space: nowrap; background-color: transparent; border: 0; }
.post_opt_list li:hover { color: #191919; }

.post_opt_list.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }

.post_meta { font-size: 0.9375em; display: flex; justify-content: flex-start; align-items: center; gap: 0.75em; color: #686868; }
.post_meta li { display: inline-flex; justify-content: flex-start; align-self: center; gap: 0.25em; }
.post_meta .badge { font-size: 0.9375em; }

/* 작성 · 폼 리스트 */
.frm_list { display: flex; flex-wrap: wrap; gap: 0.625em 0.625em; }
.frm_item { width: 100%; flex-grow: 1; }
.frm_item.half { width: calc((100% - 0.625em)/2) }
.frm_label { margin-bottom: 0.25em; display: none; }
.frm_label strong { color: var(--error-hv); font-weight: 400; }
.frm_box { width: 100%; display: flex; align-items: flex-start; gap: 0.5em; position: relative; }
.frm_box.smarteditor2 { flex-direction: column; } 
.frm_box .frm_input,
.frm_box .frm_att { flex-grow: 1; }
.frm_att { display: flex; justify-content: flex-start; align-items: center; color: #686868; border: 1px solid #ddd; border-radius: var(--radius-xs); transition: var(--ts-sm); }
.frm_att [type=file] { display: none; }
.frm_att .att_icon { flex-shrink: 0; padding: 0.625em 0.875em; transition: var(--ts-sm); }
.frm_att .att_input { flex-grow: 1; padding: 0.625em 0.875em 0.625em 0; border: 0; font-weight: 400; transition: var(--ts-sm); }
.frm_att .att_input:focus { outline: none; box-shadow: none; }
.frm_att:hover { border-color: var(--primary-hv); color: var(--primary); }
.frm_att:hover ::placeholder { color: var(--primary); opacity: 1; }

/* 상세 */
.post_title { font-size: 1.875em; font-weight: 700; }
.post_content { border-top: 1px solid #ddd; padding: 1.5em 0; min-height: calc(var(--vh) * 40); }
.post_content img { max-width: 100%; height: auto; margin-bottom: 0.625em; }
.post_att { display: flex; flex-direction: column; gap: 0.625em; }

/* 목록 */
.post_total { font-size: 0.9375em; align-self: flex-end; }
.post_search { margin-left: auto; }
.post_search .search_box { display: flex; gap: 0.5em; }
.post_search .search_select,
.post_search .search_input,
.post_search .search_btn { padding: 0.625em; }
.post_search .search_bar { display: flex; border: 1px solid #ddd; border-radius: var(--radius-xs); }
.post_search .search_input { border: 0; border-radius: var(--radius-xs) 0 0 var(--radius-xs); }
.post_search .search_btn { border: 0; border-radius: 0 var(--radius-xs) var(--radius-xs) 0; }
.post_wrap { margin-bottom: 1.5em; }

/* 목록 */
.post_icon { width: 1.5em; font-size: 0.875em; }
.post_icon.is-reply { color: #999; }
.post_icon.is-reply i { transform: rotate(180deg) }
.post_icon.is-lock { color: #666; background-color: #eee; }
.post_subject { display: flex; gap: 0.25em; }

/* 목록 - 테이블형 */
.post-basic .post_list { text-align: center; border-top: 2px solid #000; }
.post-basic .post_item { display: flex; align-items: center; position: relative; border-bottom: 1px solid #ddd; padding: 1em 0; }
.post-basic .post_chk { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.post-basic .post_num { flex-shrink: 0; width: 5em; }
.post-basic .post_subject { flex-grow: 1; }
.post-basic .post_subject a { text-align: left; }
.post-basic .post_subject a:hover { text-decoration: underline; }
.post-basic .post_meta { flex-shrink: 0; color: #191919; }
.post-basic .post_meta li { justify-content: center; gap: 0; }
.post-basic .post_meta-name { width: 6.5em; }
.post-basic .post_meta-hit { width: 5em; }
.post-basic .post_meta-date { width: 8em; }
.post-basic .post_meta-status { width: 7em; }

/* 목록 - 갤러리형 */
.post-gallery .post_list { display: grid; grid-template-columns: repeat(3,1fr); gap: 2em 1.5em; }
.post-gallery .post_item { position: relative; }
.post-gallery .post_item a { display: block; }
.post-gallery .post_chk { position: absolute; right: 0; top: 0; margin: 0.5em 0.75em; z-index: 5; }
.post-gallery .post_thumb { width: 100%; aspect-ratio: 1/0.6; overflow: hidden; border-radius: var(--radius-lg); }
.post-gallery .post_thumb a { display: block; width: 100%; height: 100%; }
.post-gallery .post_thumb img { width: 100%; height: 100%; object-fit: cover; transition: var(--ts-md); }
.post-gallery .post_thumb .badge_list { position: absolute; left: 0; top: 0; margin: 0.5em; font-size: 0.8125em; display: flex; gap: 0.5em; justify-content: flex-start; align-items: center; }
.post-gallery .post_thumb .badge_list .badge { color: #fff; background-color: var(--c); }
.post-gallery .post_txt { margin-top: 1em; }
.post-gallery .post_subject { font-size: 1.25em; font-weight: 600; }
.post-gallery .post_desc { margin: 0.25em 0 0.75em; display: none; }
.post-gallery .post_meta { font-size: 0.875em; display: none; }
.post-gallery .post_item:hover .post_thumb img { transform: scale(1.1); }
.post-gallery .post_item:hover .post_txt a { opacity: 0.6; }

/* =======================================================
    layout
======================================================= */
.wrapper { min-height: calc(var(--vh) * 100); display: flex; flex-direction: column; word-break: keep-all; }
.hd, .ft { flex-shrink: 0; }
.main { flex-grow: 1; position: relative; padding: 4em 0; margin-top: var(--hd-h); }

.container { width: 100%; max-width: var(--container); margin-left: auto; margin-right: auto; }
.container.xxs { max-width: var(--container-xxs); }
.container.xxs #captcha { width: 100%; }
.container.xs { max-width: var(--container-xs); }
.container.sm { max-width: var(--container-sm); }

/* header */
.hd { position: fixed; top: 0; left: 0; width: 100%; z-index: var(--z-sticky); border-bottom: 1px solid #ddd; background-color: #fff; }
.hd_inner { height: var(--hd-h); display: flex; align-items: center; }

.hd_logo img { max-height: 3.5em; }

.hd_gnb { margin: 0 auto; }
.hd_gnb .gnb_d1 { display: flex; justify-content: flex-start; align-items: center; gap: 2em }
.hd_gnb .gnb_d1_item { position: relative; }
.hd_gnb .gnb_d1_item > a { font-size: 1.125em; padding: 0.625em; display: block; }
.hd_gnb .gnb_d2 { position: absolute; left: 50%; top: 95%; transform: translateX(-50%); padding: 0.25em; background-color: #fff; border: 1px solid #eee; box-shadow: var(--shadow-sm); border-radius: var(--radius-sm); opacity: 0; pointer-events: none; margin-top: 0.5em; transition: var(--ts-md); }
.hd_gnb .gnb_d2_item { font-size: 0.9375em; color: #666; }
.hd_gnb .gnb_d2_item:hover { color: #222; }
.hd_gnb .gnb_d2_item a { padding: 0.25em 0.5em; aspect-ratio: 12/1; display: block; }
.hd_gnb .gnb_d1_item:hover .gnb_d2 { opacity: 1; pointer-events: auto; margin-top: 0; }

.hd_login { display: flex; justify-content: flex-end; align-items: center; gap: 0.625em; }
.hd_login li { font-size: 0.875em; color: #999; }

.hd_anb_btn { font-size: 1.25em; width: 1.5em; aspect-ratio: 1.125/0.875; position: relative; background-color: transparent; border: 0; z-index: var(--z-fixed); display: none; margin-left: auto; }
.hd_anb_btn .bar { display: inline-block; width: 100%; height: 2px; background-color: currentColor; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); border-radius: var(--radius-full); transition: var(--ts-md); }
.hd_anb_btn .bar-1 { top: 0%; }
.hd_anb_btn .bar-3 { top: 100%; }
.hd_anb_btn.is-close .bar { top: 50%; }
.hd_anb_btn.is-close .bar-1 { transform: translateX(-50%) rotate(-45deg); }
.hd_anb_btn.is-close .bar-2 { width: 0; }
.hd_anb_btn.is-close .bar-3 { transform: translateX(-50%) rotate(45deg); }

.hd_anb { width: 100%; height: calc(var(--vh) * 100); background-color: rgba(0,0,0,0.5); z-index: var(--z-fixed); position: fixed; right: 0; top: 0; opacity: 0; pointer-events: none; transition: var(--ts-md); display: none; }
.hd_anb .anb_inner { width: 100%; max-width: 680px; height: calc(var(--vh) * 100); background-color: #fff; position: absolute; right: 0; top: 0; transform: translateX(100%); transition: var(--ts-md); }
.hd_anb .anb_login { display: flex; align-items: center; gap: 0.875em; height: var(--hd-h); padding: 0 1.75em; color: #666; }
.hd_anb .anb_login li { font-size: 1.125em; } 
.hd_anb .anb_d1 { padding: 1em; border-top: 1px solid #ddd; }
.hd_anb .anb_d1 a { display: block; }
.hd_anb .anb_d1_item { font-size: 1.375em; }
.hd_anb .anb_d1_item.is-active > a { color: var(--primary); }
.hd_anb .anb_d1_item > a { padding: 0.75em 1em; }
.hd_anb .anb_d2 { padding: 0 0.75em; display: none; color: #666; }
.hd_anb .anb_d2_item { font-size: 0.9375em; }
.hd_anb .anb_d2_item a { padding: 0.375em 1em; }
.hd_anb.is-open { opacity: 1; pointer-events: auto; }
.hd_anb.is-open .anb_inner { transform: translateX(0); }

/* footer */
.ft { background-color: #222; color: #ddd; padding: 4em 0 5em; }
.ft_inner { display: flex; align-items: center; font-weight: 300; }
.ft_con { display: flex; flex-direction: column; gap: 0.5em; border-left: 1px solid #444; margin-left: 3em; padding-left: 1.5em; }
.ft_logo img { max-height: 7.5em; }
.ft_fnb { display: flex; align-items: center; justify-content: flex-start; gap: 0.5em; }
.ft_info .divider { vertical-align: middle; margin: -0.2em 0.5em 0; }
.ft_info span { white-space: nowrap; }
.ft_info small { opacity: 0.6; font-size: 1em; }

/* =======================================================
    sub
======================================================= */
.sub section { margin-bottom: 6em; }
.sub img { max-width: 100%; }
.sub .grid { display: grid; }
.sub .grid-2 { grid-template-columns: repeat(2,1fr); }
.sub .grid-3 { grid-template-columns: repeat(3,1fr); }
.sub .grid-4 { grid-template-columns: repeat(4,1fr); }

.sub .page_title { margin-bottom: 4em; }
.sub .page_title h2 { font-size: 2.5em; }
.sub .page_title p { font-size: 1.125em; }

.sub .sec_title { text-align: center; margin-bottom: 2em; }
.sub .sec_title h3 { font-size: 1.625em; font-weight: 700; }
.sub .sec_title p { font-size: 1em; font-weight: 600; margin-top: 0.25em; }

.banner { padding: 2em; text-align: center; background-color: #F5F5F5; }
.banner h4 { font-size: 1.375em; font-weight: 700; }
.banner p { font-size: 1.125em; margin-top: 0.5em; }

.ceo { display: flex; justify-content: space-around; align-items: center; gap: 3%; }
.ceo_img { width: 35%; }
.ceo_txt h3 { font-size: 1.5em; font-weight: 700; }
.ceo_txt p { font-size: 1em; margin-top: 1em; line-height: 1.5; }
.ceo_txt h5 { gap: 1em; display: flex; justify-content: flex-end; align-items: center; }

.goal_list { gap: 1em 2em; }
.goal_item { display: flex; justify-content: flex-start; align-items: center; gap: 1.25em; padding: 1em; background-color: #F5F5F5; border-radius: var(--radius-full); }
.goal_icon { width: 12.5%; flex-shrink: 0; }
.goal_txt h5 { font-size: 1.25em; font-weight: 700; }
.goal_txt p { font-size: 1.0625em; margin-top: 0.25em; }

.business_list { gap: 1em 2em; }
.business_item { background-color: #F5F5F5; }
.business_img { width: 100%; }
.business_img img { width: 100%; }
.business_txt { padding: 1.5em 2em; }
.business_txt h5 { font-size: 1.1256em; font-weight: 700; }
.business_txt p { font-size: 1em; font-weight: 500; margin-top: 0.5em; }

.benefit { padding-bottom: 6.5em; }
.benefit_list { max-width: 810px; margin: 0 auto; text-align: center; gap: 1em 2em; position: relative; padding: 1.875em; }
.benefit_list::before { content:""; display: block; width: 100%; height: 100%; position: absolute; left: 0; top: 0; border: 1px solid #ddd; border-radius: var(--radius-full); }
.benefit_item { position: relative; }
.benefit_item:nth-child(1) { --bg: #f5f5f5; }
.benefit_item:nth-child(2) { --bg: #EBEBEB; }
.benefit_item:nth-child(3) { --bg: #E2E2E2; }
.benefit_item h5 { width: 100%; aspect-ratio: 1/1; border-radius: var(--radius-full); display: flex; justify-content: center; align-items: center; flex-direction: column; font-weight: 700; background-color: var(--bg);  }
.benefit_item h5 small { font-size: 0.875em; display: block; margin-bottom: 0.5em; }
.benefit_item h5 span { font-size: 1.125em; }
.benefit_item p::before { content:""; width: 1px; height: 1.5em; border-left: 2px dashed #000; display: block; margin: 3em auto 1em; }
.benefit_item p { position: absolute; left: 50%; transform: translateX(-50%); font-weight: 600; white-space: nowrap }

.process_list { display: flex; flex-wrap: wrap; align-items: center; }
.process_list li:nth-child(4) { width: 50%; margin-left: 50%; }
.process_list li:nth-child(5) { order: 4; }
.process_item { width: 48%; padding: 2em 4em; border: 1px solid #ddd; border-radius: var(--radius-full); display: flex; flex-direction: column; gap: 0.5em; }
.process_arrow { width: 4%; text-align: center; }
.process_arrow i { font-size: 2em; }
.process_item b { font-size: 1.25em; font-weight: 700; border-bottom: 2px solid #000; margin-left: auto; }
.process_item h5 { font-size: 1.25em; font-weight: 700; }
.process_item p { font-size: 1em; font-weight: 500; }

.service_item { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1em; }
.service_item:last-child { margin-bottom: 0; }
.service_item:nth-child(even) { flex-direction: row-reverse; }
.service_img { width: 42%; border-radius: var(--radius-xl); overflow: hidden; }
.service_img img { width: 100%; }
.service_txt { flex-grow: 1; padding: 0 5%; }
.service_txt b { font-size: 1.125em; font-weight: 500; --bg: var(--primary); color: #fff; }
.service_txt h5 { font-size: 1.75em; font-weight: 700; margin: 0.4em 0 0.2em; }
.service_txt p { font-size: 1.125em; }

/* =======================================================
    idx
======================================================= */
.hd.idx { background-color: transparent; border-bottom: 1px solid #fff; color: #fff; }
.hd.idx .hd_login li { color: #fff; }

.idx { padding: 0; margin-top: 0; }
.idx section { padding: 10em 0; }

.idx_head.flex { justify-content: space-between; align-items: flex-end; margin-bottom: 3em; }

.idx_title small { text-transform: uppercase; font-size: 1.125em; font-weight: 600; display: block; margin-bottom: 0.5em; }
.idx_title h3 { font-size: 2.375em; line-height: 1.2; font-weight: 700; }
.idx_title p { font-size: 1.125em; margin-top: 1em; }

.idx_more { font-weight: 500; border: 1px solid #ccc; border-radius: var(--radius-full); padding: 0.5em 1em; }
.idx_more span { font-size: 0.9375em; }
.idx_more i { font-size: 1.375em; margin-top: -0.05em; transition: var(--ts-sm); }
.idx_more:hover { background-color: #000; border-color: #000; color: #fff; }
.idx_more:hover i { transform: rotate(180deg); }

.idx .swiper { padding: 2em 1em; }
.idx .swiper-paging { display: flex; margin-top: 0.75em; }
.idx .swiper-pagination-bullet { width: auto; flex-grow: 1; height: 0.25em; background-color: #555; margin: 0 !important; border-radius: 0; transition: var(--ts-sm); }
.idx .swiper-pagination-bullet-active { background-color: #222; }

.idx_visual { height: calc(var(--vh) * 100); display: flex; justify-content: center; align-items: center; background: url(../img/idx_visual.png) no-repeat center/cover; color: #fff; padding: 0; }
.idx_visual_txt { text-align: center; }
.idx_visual_txt b { font-weight: 600; font-size: 1.25em; margin-bottom: 0.25em; display: block; }
.idx_visual_txt h2 { font-size: 3.875em; line-height: 1.2; font-weight: 700; }
.idx_visual_txt p { font-size: 1.5em; margin-top: 0.5em; }

.idx_case { background: url(../img/idx_case_bg.png) no-repeat center bottom/100%; }
.idx_case .idx_head { width: 28%; flex-shrink: 0; }
.idx_case .idx_more { margin-top: 5em; }
.idx_case .case_item { position: relative; color: #fff; box-shadow: var(--shadow-md); aspect-ratio: 1/1.3; }
.idx_case .case_img { width: 100%; height: 100%; object-fit: cover; }
.idx_case .case_hover { position: absolute; left: 0; top: 0; width: 100%; height: 100%; display: flex; justify-content: flex-start; align-items: flex-end; background: linear-gradient(to top, rgba(0,0,0,0.5) 0%,transparent 35%); opacity: 0; transition: var(--ts-md); }
.idx_case .case_icon { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); background-color: rgba(255,255,255,0.25); aspect-ratio: 1/1; font-size: 2.875em; width: 1.5em; border-radius: var(--radius-full); display: flex; justify-content: center; align-items: center; }
.idx_case .case_txt { width: 100%; padding: 2.5em 1.5em; display: flex; align-items: flex-end; justify-content: space-between; gap: 3%; }
.idx_case .case_txt h5 { flex-grow: 1; font-size: 1.125em; font-weight: 600; }
.idx_case .case_txt p { flex-shrink: 0; font-size: 0.75em; }
.idx_case .case_item.swiper-slide-active .case_hover,
.idx_case .case_item:hover .case_hover { opacity: 1; }

.idx_board .board_list { display: flex; gap: 2em; color: #fff; }
.idx_board .board_item { flex: 1 1 10%; height: calc(var(--vh) * 45); background: no-repeat center/cover; transition: var(--ts-md); }
.idx_board .board_item:nth-child(1) { background-image: url(../img/idx_board_01.png); }
.idx_board .board_item:nth-child(2) { background-image: url(../img/idx_board_02.png); }
.idx_board .board_item:nth-child(3) { background-image: url(../img/idx_board_03.png); }
.idx_board .board_item:nth-child(4) { background-image: url(../img/idx_board_04.png); }
.idx_board .board_item:nth-child(5) { background-image: url(../img/idx_board_05.png); }
.idx_board .board_item:nth-child(6) { background-image: url(../img/idx_board_06.png); }
.idx_board .board_hover { width: 100%; height: 100%; display: flex; align-items: flex-start; background: linear-gradient(to top, rgba(0,0,0,0.5) 0%,transparent 100%); padding: 1.5em; }
.idx_board .board_hover h5 { font-size: 2em; font-weight: 700; width: 0; opacity: 0; transition: var(--ts-md); line-height: 1.2; }
.idx_board .board_hover p { font-size: 0.875em; font-weight: 500; text-transform: uppercase; flex-grow: 1; transition: var(--ts-md); }
.idx_board .board_item:hover { flex: 1 1 50%; }
.idx_board .board_item:hover .board_hover { align-items: flex-end; }
.idx_board .board_item:hover h5 { width: auto; opacity: 1; }
.idx_board .board_item:hover p { font-size: 1.25em; padding-left: 0.5em; }

.idx_partner { background-color: #F8F8F8; }
.idx_partner .partner_img { width: 100%; aspect-ratio: 1/0.45; background-color: #fff; border: 1px solid #ddd; display: flex; justify-content: center; align-items: center; }
.idx_partner .partner_img img { max-width: 70%; max-height: 70%; }
.idx_partner .partner_item p { font-size: 1.125em; font-weight: 600; margin-top: 0.5em; }
.idx_partner .swiper-paging { margin-top: 1.5em; }

.idx_location .idx_head { width: 40%; }
.idx_location .location_list { margin-top: 2em; }
.idx_location .location_list li { display: flex; justify-content: flex-start; align-items: center; gap: 1em; margin-bottom: 1.25em; }
.idx_location .location_icon { width: 8%; max-width: 45px; }
.idx_location .location_txt h5 { font-size: 1em; font-weight: 700; }
.idx_location .location_txt p { font-size: 1em; }
.idx_location .location_map { flex-grow: 1; border-radius: var(--radius-md); overflow: hidden; }
.idx_location .location_map iframe { width: 100%; height: 100%; }