/* ==============================================
   법률사무소 화이트 — 서브페이지 공통 스타일
   ============================================== */

/* ======================================================================
   SUB HERO (서브 히어로 배너)
   ====================================================================== */

.sub_hero {
    position: relative;
    height: 740px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.sub_hero_bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.sub_hero_inner {
    position: relative;
    z-index: 2;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 78px;
    width: 100%;
}
.sub_hero_inner h2 {
    margin-bottom: 40px;
}
.sub_hero_scroll {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 400;
    color: #fff;
    z-index: 10;
}
.sub_hero_scroll img {
    animation: bounce 2s infinite;
}

/* --- 서브 탭 네비 (브레드크럼) --- */
.sub_tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-gold);
    border-radius: 300px;
    width: 821px;
    height: 56px;
    gap: 12px;
    text-align: left;
}

/* house 아이콘 + 구분선 */
.sub_tab_icon {
    width: 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.sub_tab_home {
    font-family: 'Material Icons';
    font-size: 24px;
    color: #fff;
    font-weight: 400;
    line-height: 1;
}
.sub_tab_divider {
    width: 0;
    height: 24px;
    border-right: 1px solid #fff;
}

/* 홈 링크 */
.sub_tab_link {
    width: 176px;
    padding: 10px;
    white-space: nowrap;
}

/* 드롭다운 탭 */
.sub_tab_item {
    position: relative;
    width: 176px;
}
.sub_tab_btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    white-space: nowrap;
    cursor: pointer;
}

/* 셰브론 화살표 */
.sub_tab_chevron {
    width: 14px;
    height: 9px;
    flex-shrink: 0;
    transition: transform var(--ease);
}
.sub_tab_item.open .sub_tab_chevron {
    transform: rotate(180deg);
}

/* 드롭다운 */
.sub_tab_dropdown {
    position: absolute;
    top: calc(100% + 3px);
    left: -10px;
    min-width: 190px;
    background: #fff;
    border-radius: 0 0 20px 20px;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition:
        opacity var(--ease),
        transform var(--ease),
        visibility var(--ease);
    z-index: 10;
}
.sub_tab_item.open .sub_tab_dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.sub_tab_item.open .sub_tab_btn img {
    transform: rotate(180deg);
}
.sub_tab_dropdown li {
    border-bottom: 1px solid #eee;
}
.sub_tab_dropdown li:last-child {
    border-bottom: none;
}
.sub_tab_dropdown li a {
    display: block;
    padding: 14px 20px;
    color: var(--color-dark);
    transition: background var(--ease);
    text-align: left;
}
.sub_tab_dropdown li a:hover {
    background: var(--color-beige);
}

/* ======================================================================
   SUB CONTENT (서브 콘텐츠 영역)
   ====================================================================== */
.intro_content {
    padding: 160px 0;
    overflow: hidden;
}
.intro_content h2 {
    margin-bottom: 60px;
    position: relative;
}
.intro_content h2::before {
    content: '';
    display: block;
    width: 2000px;
    height: 2px;
    background-color: var(--color-gold);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 460px;
}
.intro_content_wrap {
    display: flex;
    gap: 134px;
}
.intro_content_sign {
    margin-top: 30px;
    display: flex;
    align-items: center;
    gap: 20px;
}

/* ======================================================================
   MEMBER (법률구성원 소개)
   ====================================================================== */

/* --- 카테고리 탭 --- */
.member_filter {
    border-top: 1px solid var(--color-border);
    padding: 20px 0px;
    background: var(--color-navy);
}
.member_tab {
    display: flex;
    align-items: center;
    justify-content: space-between;

    border: 2px solid var(--color-gold);
    border-radius: 50px;
    overflow: hidden;
    padding: 14px 15px;
    box-shadow: 4px 4px 40px rgba(194, 169, 132, 0.4);
}
.member_tab a {
    border-radius: 50px;
    text-align: center;
    padding: 10px 0px;
    width: 33.3%;
    color: #fff;
    white-space: nowrap;
    transition:
        background var(--ease),
        color var(--ease);
}
.member_tab a:not(.active):hover {
    background: #fff;
    color: var(--color-dark);
}

/* --- 섹션 헤더 --- */
.member_section {
    padding-top: 140px;
}
.member_section_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 20px;
}
.member_section_header h2 {
    margin-bottom: 54px;
    position: relative;
}
.member_section_header h2::before {
    content: '';
    display: block;
    width: 2000px;
    height: 2px;
    background-color: var(--color-gold);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 460px;
}
.member_quick_links {
    display: flex;
    gap: 20px;
}
.member_quick_links a {
    padding: 10px 0px;
    width: 220px;
    text-align: center;
    border: 2px solid transparent;
    border-radius: 50px;
    background-color: var(--color-beige);
    transition: all 0.2s;
}
.member_quick_links a:hover {
    border-color: var(--color-gold);
    background-color: #fff;
    border-radius: 300px 300px 300px 0px;
}

/* --- 변호사 프로필 카드 --- */
.member_card {
    padding: 112px 0 167px;
    background-image: url(../img/member_card_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    margin-bottom: 50px;
}
.member_card .center {
    display: flex;
    align-items: flex-end;
    gap: 86px;
}
#ryu {
    margin-bottom: 0px;
}
.member_card_photo img {
    border-radius: 20px;
    box-shadow: 4px 4px 60px rgba(194, 169, 132, 0.5);
}
.member_card_bottom {
    flex: 1;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}
.member_card_info h3 {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.member_card_career {
    margin-bottom: 28px;
}
.member_card_career_cols {
    display: flex;
    gap: 40px;
    margin-bottom: 28px;
}
.member_card_career_cols ul {
    margin-bottom: 0;
}
.member_card_info {
    width: 100%;
    max-width: 979px;
}
.member_card_message {
    background: var(--color-gold-bg);
    border-radius: 20px;
    padding: 28px 36px;
    width: 100%;
    max-width: 518px;
    height: 256px;
    display: flex;
    align-items: center;
}
.member_card_links {
    background: var(--color-dark);
    border-radius: 20px;
    padding: 24px 22px;
    width: 100%;
    max-width: 393px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.member_card_links > span {
    color: #fff;
    width: 100%;
    padding-bottom: 20px;
    border-bottom: 1px solid #fff;
}
.member_card_links > div {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
}
.member_link_btn {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    padding: 15px 20px;
    width: 160px;
    background: #fff;
    color: var(--color-dark);
    border-radius: 29px;
    border: 2px solid var(--color-border);
}
.member_link_btn--naver {
    border-color: #3e9f46;
}
.member_link_btn--youtube {
    border-color: #ca0000;
}
.member_link_btn--kakao {
    border-color: #e4cf33;
}

/* --- 출입국 Visa팀 --- */
.member_section.member_visa_section {
    padding: 185px 0px 162px;
}
.member_visa_link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px 10px 20px;
    width: 412px;
    border: 1px solid var(--color-gold);
    border-radius: 50px;
    transition: all var(--ease);
    background: var(--color-gold);
    color: #fff;
}
.member_visa_link:hover {
    background: #fff;
    color: var(--color-dark);
}
.member_visa_section .member_section_header {
    margin-bottom: 104px;
}
.member_visa_badge {
    background-color: var(--color-beige);
    text-align: center;
    padding-bottom: 74px;
    border-radius: 20px;
    margin-bottom: 154px;
}
.member_visa_badge_icon {
    margin-bottom: 53px;
    position: relative;
}
.member_visa_badge_txt {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}
.member_visa_badge h6 {
    margin: 20px auto 53px;
}
.member_visa_flags {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 20px;
    border-radius: 100px;
    background-color: #fff;
    width: fit-content;
    margin: 0 auto;
}
.member_visa_team {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 99px;
    text-align: center;
}
.member_visa_member img {
    border-radius: 30px;
    margin-bottom: 48px;
    box-shadow: 4px 4px 60px rgba(194, 169, 132, 0.5);
}
.member_visa_cta {
    text-align: center;
}
.member_visa_cta a {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px 10px 20px;
    width: 400px;
    border: 1px solid var(--color-gold);
    border-radius: 50px;
    transition: all var(--ease);
    border: 1px solid var(--color-gold);
    background: rgba(194, 169, 132, 0.1);
}
.member_visa_cta a:hover {
    background: #fff;
}

/* ======================================================================
   CASE (업무사례)
   ====================================================================== */

/* --- 카테고리 탭 --- */
.case_filter {
    border-top: 1px solid var(--color-border);
    padding: 20px 0px;
    background: var(--color-navy);
}
.case_tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 2px solid var(--color-gold);
    border-radius: 50px;
    overflow: hidden;
    padding: 14px 15px;
    box-shadow: 4px 4px 40px rgba(194, 169, 132, 0.4);
}
.case_tab a {
    border-radius: 50px;
    text-align: center;
    padding: 10px 0px;
    width: 20%;
    color: #fff;
    white-space: nowrap;
    transition: all 0.2s;
    border: 1px solid transparent;
}
.case_tab a.active {
    background: #fff;
    color: var(--color-dark);
}
.case_tab a:not(.active):hover {
    border: 1px solid var(--color-gold);
}

/* --- 콘텐츠 영역 --- */
.case_content {
    padding: 138px 0 198px;
}
.case_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: -64px;
}
.case_header h2 {
    position: relative;
    margin-bottom: 54px;
}
.case_header h2::before {
    content: '';
    display: block;
    width: 2000px;
    height: 2px;
    background-color: var(--color-gold);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 460px;
}
.case_search {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.case_search_inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    margin-bottom: 111px;
}
.case_search_wrap {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* 커스텀 셀렉트 */
.case_select {
    position: relative;
    flex-shrink: 0;
}
.case_select_btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 218px;
    gap: 12px;
    padding: 20px;
    background: var(--color-gold);
    color: #fff;
    border: 2px solid var(--color-gold);
    border-radius: 50px;
    cursor: pointer;
    white-space: nowrap;
    height: 100%;
}
.case_select_arrow {
    width: 12px;
    transition: transform var(--ease);
}
.case_select.open .case_select_arrow {
    transform: rotate(180deg);
}
.case_select_dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    min-width: 200px;
    background: var(--color-gold);
    border-radius: 0 0 20px 20px;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px) translateX(-50%);
    transition:
        opacity var(--ease),
        transform var(--ease),
        visibility var(--ease);
    z-index: 10;
}
.case_select.open .case_select_dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) translateX(-50%);
}
.case_select_dropdown li {
    padding: 14px 24px;
    font-size: 16px;
    color: #fff;
    cursor: pointer;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    transition: background var(--ease);
}
.case_select_dropdown li:last-child {
    border-bottom: none;
}
.case_select_dropdown li:hover {
    background: rgba(255, 255, 255, 0.15);
}

.case_search_con {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--color-white);
    border: 2px solid var(--color-gold);
    border-radius: 50px;
    padding: 8px 10px 8px 36px;
    width: 580px;
}
.case_search input {
    flex: 1;
}
.case_search input::placeholder {
    color: rgba(0, 0, 0, 0.3);
}
.case_tag {
    display: flex;
    flex-wrap: wrap;
    gap: 19px;
}
.case_tag li a {
    display: inline-block;
    padding: 10px;
    border-radius: 50px;
    background-color: #f1f1f1;
    transition: all var(--ease);
}
.case_tag li a:hover {
    background: var(--color-gold);
    color: #fff;
}

/* 카테고리 제목 */
.case_category_header {
    margin-bottom: 46px;
}

/* --- 카드 그리드 --- */
.case_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 44px 24px;
    margin-bottom: 100px;
}
.case_card {
    display: block;
    border-radius: 30px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--color-gold);
    padding: 11px 10px 16px;
    transition:
        transform var(--ease),
        box-shadow var(--ease);
}
.case_card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.case_card_img {
    overflow: hidden;
    border-radius: 20px;
}
.case_card_body {
    padding: 20px 29px 0px;
}
.case_card_body h5 {
    margin-bottom: 10px;
    color: var(--color-gold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.case_card_body p {
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- 페이지네이션 --- */
.case_pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

/* 그누보드 페이지네이션 — default.css 오버라이드 */
.case_pagination .pg_wrap {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.case_pagination .pg_wrap .pg {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
.case_pagination .pg_page {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    border-radius: 50% !important;
    font-size: 14px !important;
    color: var(--color-gold) !important;
    background: transparent !important;
    border: 1px solid var(--color-gold) !important;
    transition: background 0.2s, color 0.2s !important;
    position: static !important;
    float: none !important;
    margin: 0 !important;
    text-decoration: none !important;
    line-height: 1 !important;
}
.case_pagination .pg_next,
.case_pagination .pg_prev,
.case_pagination .pg_end,
.case_pagination .pg_start {
    display: inline-block !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    border: 1px solid var(--color-gold) !important;
    transition: border-color 0.2s !important;
    position: static !important;
    float: none !important;
    margin: 0 !important;
    text-decoration: none !important;
    font-size: 0 !important;
    text-indent: 0 !important;
    overflow: visible !important;
    vertical-align: middle !important;
}
.case_pagination .pg_prev {
    background: url(../img/latest_news_prev.svg) no-repeat 50% 50% #f5f5f5 !important;
}
.case_pagination .pg_next {
    background: url(../img/latest_news_next.svg) no-repeat 50% 50% #f5f5f5 !important;
}
.case_pagination .pg_start {
    background: url(../img/latest_news_prev.svg) no-repeat 50% 50% #eee !important;
}
.case_pagination .pg_end {
    background: url(../img/latest_news_next.svg) no-repeat 50% 50% #eee !important;
}
.case_pagination .pg_page:hover {
    background: var(--color-beige) !important;
}
.case_pagination .pg_prev:hover {
    background: url(../img/latest_news_prev.svg) no-repeat 50% 50% var(--color-beige) !important;
    border-color: var(--color-gold) !important;
}
.case_pagination .pg_next:hover {
    background: url(../img/latest_news_next.svg) no-repeat 50% 50% var(--color-beige) !important;
    border-color: var(--color-gold) !important;
}
.case_pagination .pg_start:hover {
    background: url(../img/latest_news_prev.svg) no-repeat 50% 50% var(--color-beige) !important;
    border-color: var(--color-gold) !important;
}
.case_pagination .pg_end:hover {
    background: url(../img/latest_news_next.svg) no-repeat 50% 50% var(--color-beige) !important;
    border-color: var(--color-gold) !important;
}
.case_pagination .pg_current {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    border-radius: 50% !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    background: var(--color-gold) !important;
    color: #fff !important;
    border: 1px solid var(--color-gold) !important;
    float: none !important;
    margin: 0 !important;
    line-height: 1 !important;
}
.case_pagination .pg_next:hover,
.case_pagination .pg_prev:hover,
.case_pagination .pg_end:hover,
.case_pagination .pg_start:hover {
    border-color: var(--color-gold) !important;
}
.case_pagination .sound_only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
}

/* --- 하단 검색 필터 바 --- */
.case_filter_bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 60px auto 0px;
    max-width: 1040px;
}
.case_filter_select {
    position: relative;
}
.case_filter_btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 16px;
    background: var(--color-light-gray);
    border-radius: 50px;
    cursor: pointer;
    white-space: nowrap;
    min-width: 120px;
}
.case_filter_arrow {
    width: 10px;
    transition: transform var(--ease);
    filter: brightness(0);
}
.case_filter_select.open .case_filter_arrow {
    transform: rotate(180deg);
}
.case_filter_dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    min-width: 120px;
    background: var(--color-light-gray);
    border: 1px solid #fff;
    border-top: none;
    border-radius: 0 0 20px 20px;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition:
        opacity var(--ease),
        transform var(--ease),
        visibility var(--ease);
    z-index: 10;
}
.case_filter_select.open .case_filter_dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.case_filter_dropdown li {
    padding: 12px 20px;
    font-size: 14px;
    color: var(--color-dark);
    cursor: pointer;
    border-bottom: 1px solid var(--color-border);
    transition: background var(--ease);
}
.case_filter_dropdown li:last-child {
    border-bottom: none;
}
.case_filter_dropdown li:hover {
    background: var(--color-beige);
}
.case_filter_date {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--color-light-gray);
    border-radius: 50px;
    min-width: 160px;
}
.case_filter_date input {
    flex: 1;
    font-size: 14px;
    min-width: 0;
    cursor: pointer;
}
.case_filter_date input::-webkit-calendar-picker-indicator {
    display: none;
}
.case_filter_cal {
    font-family: 'Material Icons';
    font-size: 20px;
    color: rgba(0, 0, 0, 0.5);
    line-height: 1;
    cursor: pointer;
    pointer-events: none;
}
.case_filter_tilde {
    font-size: 16px;
    color: var(--color-dark);
}
.case_filter_input {
    display: flex;
    align-items: center;
    flex: 1;
    padding: 10px 16px;
    background: var(--color-light-gray);
    border-radius: 50px;
}
.case_filter_input input {
    flex: 1;
    font-size: 18px;
}
.case_filter_input input::placeholder {
    color: rgba(0, 0, 0, 0.3);
}
.case_filter_submit {
    padding: 10px 24px;
    background: var(--color-gold);
    border-radius: 50px;
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--ease);
}
.case_filter_submit:hover {
    background: var(--color-gold-light);
}

/* --- FAQ --- */
.case_faq {
    background: var(--color-navy);
    padding: 125px 0;
}
.case_faq h3 {
    color: #fff;
    margin-bottom: 44px;
}
.faq_list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.faq_item {
    border-radius: 20px;
    overflow: hidden;
    background-color: #fff;
}
.faq_question {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 27px;
    padding: 28px 53px 28px 33px;
    border-radius: 20px;
    cursor: pointer;
    text-align: left;
    transition: opacity var(--ease);
}
.faq_question:hover {
    opacity: 0.7;
}
.faq_icon {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-gold);
    border-radius: 12px;
    color: #fff;
}
.faq_question > .c18b {
    flex: 1;
}
.faq_toggle {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    margin-left: auto;
}
.faq_toggle img:last-child {
    display: none;
}
.faq_item.open .faq_toggle img:first-child {
    display: none;
}
.faq_item.open .faq_toggle img:last-child {
    display: block;
}
.faq_answer {
    max-height: 0;
    overflow: hidden;
    transition:
        max-height 0.4s ease,
        padding 0.4s ease;
    padding: 0px 33px 0px;
}
.faq_item.open .faq_answer {
    max-height: 500px;
    padding: 0px 33px 30px;
}
.faq_answer p {
    padding: 29px 35px;
    background-color: var(--color-light-gray);
    border-radius: 12px;
}

/* ======================================================================
   INSIGHT (화이트 인사이트 — 언론 속 화이트)
   ====================================================================== */

/* --- 인사이트 탭 (2항목) --- */
.insight_filter {
    border-top: 1px solid var(--color-border);
    padding: 20px 0px;
    background: var(--color-navy);
}
.insight_tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 2px solid var(--color-gold);
    border-radius: 50px;
    overflow: hidden;
    padding: 14px 15px;
    box-shadow: 4px 4px 40px rgba(194, 169, 132, 0.4);
}
.insight_tab a {
    border-radius: 50px;
    text-align: center;
    padding: 10px 0px;
    width: 50%;
    color: #fff;
    white-space: nowrap;
    transition: all 0.2s;
    border: 1px solid transparent;
}
.insight_tab a.active {
    background: #fff;
    color: var(--color-dark);
}
.insight_tab a:not(.active):hover {
    border: 1px solid var(--color-gold);
}

/* --- 콘텐츠 영역 --- */
.insight_content {
    padding: 138px 0 198px;
}
.insight_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: 80px;
}
.insight_header h2 {
    position: relative;
    margin-bottom: 54px;
}
.insight_header h2::before {
    content: '';
    display: block;
    width: 2000px;
    height: 2px;
    background-color: var(--color-gold);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 460px;
}

/* ======================================================================
   COME (오시는 길)
   ====================================================================== */

.come_filter {
    border-top: 1px solid var(--color-border);
    padding: 20px 0px;
    background: var(--color-navy);
}
.come_content {
    padding: 138px 0 127px;
}
.come_header {
    margin-bottom: 126px;
}
.come_header h2 {
    position: relative;
}
.come_header h2::before {
    content: '';
    display: block;
    width: 2000px;
    height: 2px;
    background-color: var(--color-gold);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 460px;
}

/* --- 주소 + 지도 --- */
.come_map_wrap {
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
}
.come_info {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex-shrink: 0;
    width: 50%;
}
.come_address {
    background: var(--color-navy);
    border-radius: 20px;
    padding: 31px 30px 31px 47px;
    color: #fff;
}
.come_address_top {
    display: flex;
    align-items: center;
    gap: 27px;
    margin-bottom: 26px;
}
.come_label {
    display: block;
    margin-bottom: 10px;
}
.come_address .t24b {
    color: #fff;
}
.come_address_btns {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.come_address_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 220px;
    padding: 2px 0px;
    background: var(--color-beige);
    border-radius: 10px;
    color: var(--color-dark);
    white-space: nowrap;
}
.come_place_btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 3px 14px 3px 20px;
    background: var(--color-gold);
    border: 1px solid #fff;
    border-radius: 50px;
    color: #fff;
    white-space: nowrap;
    transition: background var(--ease);
}
.come_place_btn:hover {
    background: #1d3a5c;
}

.come_phone {
    background: var(--color-gold);
    border-radius: 20px;
    padding: 31px 47px;
    color: #fff;
}
.come_phone_top {
    display: flex;
    align-items: center;
    gap: 27px;
    margin-bottom: 26px;
}
.come_phone .come_label {
    margin-bottom: 10px;
}
.come_phone_num a {
    color: #fff;
}
.come_phone_badge {
    display: inline-flex;
    width: 346px;
    align-items: center;
    justify-content: center;
    padding: 2px 20px;
    background: var(--color-beige);
    border-radius: 10px;
    color: var(--color-dark);
}

/* --- 지도 --- */
.come_map {
    flex: 1;
    min-height: 400px;
    border-radius: 20px;
    overflow: hidden;
    position: relative;
}
#map {
    width: 100%;
    height: 100%;
    background: #ccc;
}

/* --- 교통 안내 --- */
.come_transport_item {
    background-color: var(--color-light-gray);
    padding: 39px 47px;
    border-radius: 20px;
}
.come_transport_title {
    display: flex;
    align-items: center;
    gap: 27px;
    margin-bottom: 30px;
}
.come_transport .come_transport_title {
    margin-bottom: 40px;
}

/* 지하철 */
.come_subway_list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.come_subway_list li {
    display: flex;
    align-items: center;
    gap: 8px;
    background-color: #fff;
    border-radius: 10px;
    padding: 10px;
    width: fit-content;
}
.come_subway_list strong {
    color: #263f93;
}
.come_line {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    flex-shrink: 0;
}
.come_line--1 {
    background: #3a55ae;
}
.come_line--2 {
    background: #60b156;
}

/* 버스 */
.come_bus_wrap {
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.come_bus_stop {
    display: flex;
    align-items: flex-start;
}
.come_bus_stop_name {
    margin-bottom: 14px;
    width: 335px;
}
.come_bus_routes {
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.come_bus_row {
    display: flex;
    align-items: center;
    gap: 17px;
}
.come_bus_badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 9px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    flex-shrink: 0;
}
.come_bus_badge--blue {
    background: #7381ed;
}
.come_bus_badge--green {
    background: #75b54f;
}
.come_bus_badge--red {
    background: #e7765d;
}
.come_bus_night {
    padding-left: 63px;
}

/* ======================================================================
   SUB CTA (서브페이지 공통 하단 CTA)
   ====================================================================== */
.sub_cta {
    background: var(--color-beige);
    padding: 113px 0 105px;
}
.sub_cta .center {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}
.sub_cta_text h3 {
    margin-bottom: 54px;
}
.sub_cta_right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 48px;
}
.sub_cta_btns {
    display: flex;
    gap: 10px;
}
.sub_cta_btns a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 17px 0px 17px 20px;
    width: 180px;
    background: var(--color-navy);
    color: #fff;
    border-radius: 10px;
    transition: background var(--ease);
    white-space: nowrap;
}
.sub_cta_btns a:hover {
    background: #1d3a5c;
}
.sub_cta_phone {
    display: flex;
    align-items: center;
    gap: 46px;
}
.sub_cta_phone a {
    font-size: 44px;
    font-weight: 700;
    letter-spacing: initial;
    color: var(--color-navy);
    transition: color var(--ease);
    font-family: MaruBuriOTF;
}
.sub_cta_phone a:hover {
    color: var(--color-gold);
}
.sub_cta_badge {
    display: inline-flex;
    align-items: center;
    padding: 14px 61px;
    background: #fff;
    color: var(--color-navy);
    border-radius: 10px;
}

/* ======================================================================
   RESPONSIVE — TABLET (1024px)
   ====================================================================== */
@media (max-width: 1024px) {
    /* --- Hero --- */
    .sub_hero {
        height: 560px;
    }
    .sub_hero_inner {
        gap: 48px;
    }

    /* --- Tab --- */
    .sub_tab {
        width: auto;
        padding: 0 24px;
    }
    .sub_tab_link,
    .sub_tab_item {
        width: 150px;
    }

    /* --- Intro Content --- */
    .intro_content {
        padding: 80px 0;
    }
    .intro_content h2::before {
        left: 380px;
    }
    .intro_content_wrap {
        gap: 60px;
    }

    /* --- Member --- */
    .member_section {
        padding-top: 80px;
    }
    .member_section_header h2::before {
        left: 340px;
    }
    .member_card {
        padding: 60px 0 80px;
    }
    .member_card .center {
        gap: 40px;
    }
    .member_quick_links {
        flex-wrap: wrap;
        flex-direction: column;
    }
    .member_quick_links a {
        width: 180px;
    }
    .member_card_bottom {
        flex-direction: column;
    }
    .member_card_message {
        max-width: 100%;
        height: auto;
    }
    .member_card_links {
        max-width: 100%;
    }
    .member_visa_section.member_section {
        padding: 80px 0;
    }
    .member_visa_section .member_section_header {
        margin-bottom: 60px;
    }
    .member_visa_badge {
        margin-bottom: 80px;
    }
    .member_visa_team {
        flex-wrap: wrap;
        justify-content: center;
    }

    /* --- Case --- */
    .case_filter {
        padding: 14px 0;
    }
    .case_tab {
        padding: 10px 12px;
    }
    .case_content {
        padding: 80px 0 40px;
    }
    .case_header {
        flex-direction: column;
        margin-bottom: 0;
    }
    .case_header h2::before {
        left: 340px;
    }
    .case_search_inner {
        margin-bottom: 60px;
    }
    .case_search_con {
        width: 480px;
    }
    .case_grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 30px 20px;
    }
    .case_filter_bar {
        flex-wrap: wrap;
    }
    .case_filter_date {
        min-width: 140px;
    }
    .case_faq {
        padding: 80px 0;
    }

    /* --- Insight --- */
    .insight_filter {
        padding: 14px 0;
    }
    .insight_tab {
        padding: 10px 12px;
    }
    .insight_content {
        padding: 80px 0 100px;
    }
    .insight_header {
        margin-bottom: 60px;
    }
    .insight_header h2::before {
        left: 340px;
    }

    /* --- Come --- */
    .come_filter {
        padding: 14px 0;
    }
    .come_content {
        padding: 80px 0 80px;
    }
    .come_header {
        margin-bottom: 60px;
    }
    .come_header h2::before {
        left: 340px;
    }
    .come_map_wrap {
        gap: 20px;
    }
    .come_address {
        padding: 24px 24px 24px 32px;
    }
    .come_phone {
        padding: 24px 32px;
    }
    .come_address_btn {
        width: auto;
        flex: 1;
        padding: 2px 10px;
    }
    .come_phone_badge {
        width: auto;
    }
    .come_transport_item {
        padding: 30px 32px;
    }
    .come_bus_stop_name {
        width: 260px;
    }

    /* --- Sub CTA --- */
    .sub_cta {
        padding: 80px 0;
    }
    .sub_cta_btns a {
        width: 160px;
        padding: 14px 0 14px 16px;
    }
    .sub_cta_phone a {
        font-size: 36px;
    }
    .sub_cta_badge {
        padding: 12px 40px;
    }
}

/* ======================================================================
   RESPONSIVE — MOBILE (768px)
   ====================================================================== */
@media (max-width: 768px) {
    /* --- Hero --- */
    .sub_hero {
        height: 480px;
    }
    .sub_hero_inner {
        gap: 32px;
        padding: 0 20px;
    }
    .sub_hero_inner h2 {
        margin-bottom: 20px;
    }
    .sub_hero_scroll {
        display: none;
    }

    /* --- Tab --- */
    .sub_tab {
        width: 100%;
        max-width: 100%;
        height: 48px;
        padding: 0 12px;
        gap: 6px;
        border-radius: 24px;
    }
    .sub_tab_icon {
        width: 28px;
    }
    .sub_tab_home {
        font-size: 18px;
    }
    .sub_tab_divider {
        height: 18px;
    }
    .sub_tab_link {
        width: auto;
        padding: 6px 8px;
        font-size: 13px;
    }
    .sub_tab_item {
        width: auto;
        flex: 1;
    }
    .sub_tab_btn {
        font-size: 13px;
        padding: 6px 8px;
    }
    .sub_tab_chevron {
        width: 10px;
        height: 7px;
    }
    .sub_tab_dropdown {
        min-width: 160px;
    }

    /* --- Intro Content --- */
    .intro_content {
        padding: 60px 0;
    }
    .intro_content h2 {
        margin-bottom: 32px;
    }
    .intro_content h2::before {
        display: none;
    }
    .intro_content_wrap {
        flex-direction: column;
        gap: 32px;
    }

    /* --- Member --- */
    .member_filter {
        padding: 12px 0;
    }
    .member_tab {
        padding: 8px 10px;
    }
    .member_tab a {
        padding: 8px 0;
        font-size: 14px;
    }
    .member_section {
        padding-top: 48px;
    }
    .member_section_header {
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
    }
    .member_section_header h2::before {
        display: none;
    }
    .member_section_header > div {
        width: 100%;
        text-align: center;
    }
    .member_quick_links {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: 10px;
    }
    .member_quick_links a {
        width: auto;
        padding: 8px 16px;
        flex-shrink: 0;
    }
    .member_card {
        padding: 40px 0;
        margin-bottom: 24px;
        background-size: cover;
        background-position: center;
    }
    .member_card .center {
        flex-direction: column;
        gap: 24px;
        align-items: center;
    }
    .member_card_photo img {
        width: 100%;
    }
    .member_card_info h3 {
        flex-wrap: wrap;
        gap: 8px;
    }
    .member_card_career_cols {
        flex-direction: column;
        gap: 0;
    }
    .member_card_bottom {
        flex-direction: column;
        gap: 20px;
    }
    .member_card_message {
        max-width: 100%;
        height: auto;
    }
    .member_card_links {
        max-width: 100%;
    }
    .member_card_links > div {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .member_link_btn {
        flex: 1;
        min-width: 140px;
        justify-content: center;
    }
    .member_visa_section.member_section {
        padding: 48px 0;
    }
    .member_visa_section .member_section_header {
        margin-bottom: 40px;
    }
    .member_visa_link {
        width: 100%;
    }
    .member_visa_badge {
        margin-bottom: 40px;
        padding: 0px 20px 32px;
    }
    .member_visa_badge_icon svg {
        width: 100%;
        height: auto;
    }
    .member_visa_badge_txt {
        gap: 12px;
    }
    .member_visa_badge_txt img {
        width: 40px;
    }
    .member_visa_badge_txt p {
        font-size: 16px;
    }
    .member_visa_badge h5 br {
        display: none;
    }
    .member_visa_flags {
        padding: 12px;
        gap: 8px;
    }
    .member_visa_flags img {
        width: 32px;
    }
    .member_visa_team {
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px;
        margin-bottom: 40px;
    }
    .member_visa_member {
        width: calc(33.3% - 14px);
    }
    .member_visa_member img {
        width: 100%;
        margin-bottom: 16px;
    }
    .member_visa_cta a {
        width: 100%;
    }

    /* --- Case --- */
    .case_filter {
        padding: 12px 0;
    }
    .case_tab {
        padding: 8px 10px;
        flex-wrap: wrap;
        gap: 6px;
        border-radius: 20px;
    }
    .case_tab a {
        width: auto;
        flex: 1;
        padding: 8px 0;
        font-size: 14px;
        min-width: calc(33% - 6px);
    }
    .case_content {
        padding: 60px 0 40px;
    }
    .case_header {
        flex-direction: column;
        margin-bottom: 50px;
        text-align: center;
        align-items: center;
    }
    .case_header h2 {
        margin-bottom: 32px;
    }
    .case_header h2::before {
        display: none;
    }
    .case_search_inner {
        width: 100%;
        margin-bottom: 40px;
    }
    .case_search_wrap {
        flex-direction: column;
        width: 100%;
    }
    .case_select {
        width: 100%;
    }
    .case_select_btn {
        width: 100%;
        padding: 5px 20px;
    }
    .case_search_con {
        width: 100%;
        padding: 6px 8px 6px 20px;
    }
    .case_search_con img {
        width: 25px;
    }
    .case_category_header {
        text-align: center;
    }
    .case_tag {
        gap: 6px;
    }
    .case_tag li a {
        padding: 6px 12px;
        font-size: 13px;
    }
    .case_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        margin-bottom: 60px;
    }
    .case_card {
        border-radius: 20px;
        padding: 8px 8px 12px;
    }
    .case_card_body {
        padding: 14px 12px 0;
    }
    .case_filter_bar {
        flex-wrap: wrap;
        gap: 6px;
    }
    .case_filter_date {
        min-width: calc(50% - 16px);
        flex: 1;
    }
    .case_filter_tilde {
        width: 100%;
        text-align: center;
        display: none;
    }
    .case_filter_select {
        width: calc(50% - 3px);
    }
    .case_filter_btn {
        width: 100%;
    }
    .case_filter_input {
        width: 100%;
    }
    .case_filter_submit {
        width: 100%;
        text-align: center;
    }
    .case_faq {
        padding: 60px 0;
    }
    .case_faq h3 {
        margin-bottom: 30px;
    }
    .faq_list {
        gap: 16px;
    }
    .faq_question {
        padding: 18px 20px;
        gap: 12px;
    }
    .faq_icon {
        width: 40px;
        height: 40px;
        border-radius: 8px;
    }
    .faq_answer {
        padding: 0 20px 0;
    }
    .faq_item.open .faq_answer {
        padding: 0 20px 20px;
    }
    .faq_answer p {
        padding: 16px 20px;
    }

    /* --- Insight --- */
    .insight_filter {
        padding: 12px 0;
    }
    .insight_tab {
        padding: 8px 10px;
    }
    .insight_tab a {
        padding: 8px 0;
        font-size: 14px;
    }
    .insight_content {
        padding: 60px 0 40px;
    }
    .insight_header {
        text-align: center;
        margin-bottom: 40px;
        justify-content: center;
    }
    .insight_header h2 {
        margin-bottom: 32px;
    }
    .insight_header h2::before {
        display: none;
    }

    /* --- Come --- */
    .come_filter {
        padding: 12px 0;
    }
    .come_content {
        padding: 60px 0 40px;
    }
    .come_header {
        text-align: center;
        margin-bottom: 40px;
    }
    .come_header h2::before {
        display: none;
    }
    .come_map_wrap {
        flex-direction: column-reverse;
    }
    .come_info {
        width: 100%;
    }
    .come_address {
        padding: 24px 20px;
    }
    .come_address_top {
        gap: 16px;
    }
    .come_address_btns {
        flex-wrap: wrap;
        gap: 8px;
    }
    .come_address_btn {
        width: auto;
        flex: none;
        padding: 4px 14px;
    }
    .come_phone {
        padding: 24px 20px;
    }
    .come_phone_top {
        gap: 16px;
    }
    .come_phone_badge {
        width: auto;
        padding: 4px 20px;
    }
    .come_map {
        min-height: 300px;
    }
    .come_transport_item {
        padding: 24px 20px;
    }
    .come_transport_title {
        gap: 16px;
        margin-bottom: 20px;
    }
    .come_transport .come_transport_title {
        margin-bottom: 24px;
    }
    .come_bus_stop {
        flex-direction: column;
    }
    .come_bus_stop_name {
        width: 100%;
        margin-bottom: 10px;
    }
    .come_bus_row {
        flex-wrap: wrap;
    }
    .come_bus_night {
        padding-left: 0;
    }

    /* --- Sub CTA --- */
    .sub_cta {
        padding: 48px 0;
    }
    .sub_cta_text h3 {
        margin-bottom: 24px;
    }
    .sub_cta .center {
        flex-direction: column;
        align-items: flex-start;
        gap: 32px;
    }
    .sub_cta_right {
        align-items: flex-start;
        width: 100%;
        gap: 24px;
    }
    .sub_cta_btns {
        flex-wrap: wrap;
        width: 100%;
    }
    .sub_cta_btns a {
        flex: 1;
        min-width: 140px;
        width: auto;
        padding: 12px 16px;
        justify-content: center;
    }
    .sub_cta_text {
        width: 100%;
        text-align: center;
    }
    .sub_cta_phone {
        flex-wrap: wrap;
        gap: 16px;
        width: 100%;
        justify-content: center;
    }
    .sub_cta_phone a {
        font-size: 28px;
    }
    .sub_cta_badge {
        padding: 10px 24px;
    }
}

/* ======================================================================
   RESPONSIVE — SMALL MOBILE (480px)
   ====================================================================== */
@media (max-width: 480px) {
    /* --- Hero --- */
    .sub_hero {
        height: 400px;
    }
    .sub_hero_inner {
        gap: 24px;
    }

    /* --- Tab --- */
    .sub_tab {
        height: 44px;
        padding: 0 10px;
        gap: 4px;
    }
    .sub_tab_home {
        font-size: 16px;
    }
    .sub_tab_link {
        font-size: 12px;
        padding: 4px 6px;
    }
    .sub_tab_btn {
        font-size: 11px;
        padding: 4px 6px;
    }
    .sub_tab_chevron {
        width: 8px;
        height: 5px;
    }

    /* --- Intro Content --- */
    .intro_content {
        padding: 48px 0;
    }
    .intro_content_sign {
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
    }

    /* --- Member --- */
    .member_tab a {
        font-size: 13px;
    }
    .member_card {
        padding: 32px 0;
    }
    .member_card_message {
        padding: 20px 16px;
    }
    .member_card_links {
        padding: 20px 16px;
    }
    .member_link_btn {
        padding: 12px 14px;
        font-size: 13px;
    }
    .member_visa_member {
        width: calc(50% - 10px);
    }
    .member_visa_member img {
        border-radius: 20px;
        margin-bottom: 12px;
    }
    .member_visa_badge_txt {
        gap: 8px;
    }
    .member_visa_badge_txt p {
        font-size: 14px;
    }

    /* --- Case --- */
    .case_tab a {
        padding: 8px 0;
        font-size: 13px;
        min-width: calc(50% - 6px);
    }
    .case_content {
        padding: 48px 0 32px;
    }
    .case_grid {
        grid-template-columns: 1fr;
    }
    .case_card_body {
        padding: 16px 12px 0;
    }
    .case_pagination {
        gap: 4px;
    }
    .case_page_num {
        width: 34px;
        height: 34px;
        font-size: 13px;
    }
    .case_page_prev,
    .case_page_next {
        width: 34px;
        height: 34px;
    }
    .case_filter_bar {
        gap: 6px;
    }
    .case_filter_select {
        width: 100%;
    }
    .case_filter_date {
        min-width: calc(50% - 12px);
    }
    .faq_question {
        padding: 16px;
        gap: 10px;
    }
    .faq_icon {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
    .faq_toggle img {
        width: 20px;
    }
    .faq_answer p {
        padding: 12px 16px;
    }

    /* --- Insight --- */
    .insight_content {
        padding: 48px 0 32px;
    }
    .insight_tab a {
        font-size: 13px;
    }

    /* --- Come --- */
    .come_content {
        padding: 48px 0 32px;
    }
    .come_address,
    .come_phone {
        padding: 20px 16px;
    }
    .come_address_top,
    .come_phone_top {
        gap: 12px;
        margin-bottom: 16px;
    }
    .come_address_top img,
    .come_phone_top img {
        width: 32px;
    }
    .come_address_btns {
        gap: 6px;
    }
    .come_address_btn {
        padding: 4px 10px;
        font-size: 14px;
    }
    .come_place_btn {
        padding: 3px 10px 3px 14px;
        font-size: 14px;
    }
    .come_map {
        min-height: 220px;
    }
    .come_transport_item {
        padding: 20px 16px;
    }
    .come_transport_title {
        gap: 12px;
    }
    .come_transport_title img {
        width: 28px;
    }
    .come_subway_list li {
        padding: 8px;
        font-size: 14px;
    }
    .come_bus_badge {
        font-size: 13px;
        padding: 3px 8px;
    }

    /* --- Sub CTA --- */
    .sub_cta {
        padding: 40px 0;
    }
    .sub_cta_text h3 {
        margin-bottom: 16px;
    }
    .sub_cta_btns a {
        min-width: 100%;
    }
    .sub_cta_phone a {
        font-size: 24px;
    }
    .sub_cta_badge {
        padding: 8px 20px;
        font-size: 14px;
    }
}
