@charset "utf-8";
/*
 * Munjin Theme - Common Layout
 * 폰트, 리셋, 유틸리티 클래스, 버튼, 테이블
 */

/* ============================================
   폰트 정의
   ============================================ */
@font-face {
    font-family: 'Noto Sans KR';
    font-style: normal;
    font-weight: 100;
    src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Thin.woff2) format('woff2'),
         url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Thin.woff) format('woff');
}

@font-face {
    font-family: 'Noto Sans KR';
    font-style: normal;
    font-weight: 400;
    src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Regular.woff2) format('woff2'),
         url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Regular.woff) format('woff');
}

@font-face {
    font-family: 'Noto Sans KR';
    font-style: normal;
    font-weight: 700;
    src: url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Bold.woff2) format('woff2'),
         url(//fonts.gstatic.com/ea/notosanskr/v2/NotoSansKR-Bold.woff) format('woff');
}

@import url('https://fonts.googleapis.com/css?family=Exo:200,400,700');

@font-face {
    font-family: 'Binggrae-Bold';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_one@1.0/Binggrae-Bold.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

/* 폰트 클래스 */
.noto { font-family: 'Noto Sans KR'; }
.exo { font-family: 'Exo', sans-serif; }
.bing { font-family: 'Binggrae-Bold'; }

/* ============================================
   리셋 및 기본 스타일
   ============================================ */
*:focus { outline: none; }

a {
    text-decoration: none;
    outline: none;
    color: #666;
}
a:link, a:visited { text-decoration: none; }
a:hover { text-decoration: none; color: #555; }

html, body {
    font-family: 'Noto Sans KR', Dotum, Gulim, sans-serif;
    font-size: 12px;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
}

ul, li, dt, dd, ol, p, h1, h2, h3, h4, h5, h6, form {
    padding: 0;
    margin: 0;
}

ul { list-style: none; }
img { border: none; }

input, select, textarea {
    font-family: 'Noto Sans KR', Dotum, sans-serif;
    font-size: 12px;
}

/* ============================================
   유틸리티 클래스
   ============================================ */
.reldiv { position: relative; z-index: 499; }

/* 텍스트 크기 */
.txt_big { font-size: 54px; letter-spacing: -2px; }
.txt_48 { font-size: 48px; }
.txt_42 { font-size: 42px; }
.txt_40 { font-size: 38px; }
.txt_38 { font-size: 38px; }
.txt_36 { font-size: 36px; }
.txt_34 { font-size: 34px; }
.txt_30 { font-size: 30px; }
.txt_28 { font-size: 28px; }
.txt_24 { font-size: 24px; }
.txt_22 { font-size: 22px; }
.txt_20 { font-size: 20px; }
.txt_18 { font-size: 18px; }
.txt_17 { font-size: 17px; }
.txt_16 { font-size: 16px; }
.txt_15 { font-size: 15px; }
.txt_14 { font-size: 14px; }
.txt_13 { font-size: 13px; }
.txt_12 { font-size: 12px; }
.txt_11 { font-size: 11px; }
.txt_10 { font-size: 10px; }
.txt_small { font-size: 11px; }

/* 텍스트 굵기 */
.txt_bold { font-weight: bold; }
.txt_Ubold { font-weight: 900; }
.txt_w100 { font-weight: 100; }
.txt_w200 { font-weight: 200; }
.txt_w400 { font-weight: 400; }
.txt_w700 { font-weight: 700; }
.txt_w800 { font-weight: 800; }
.txt_w900 { font-weight: 900; }

/* 텍스트 색상 */
.txt_black { color: #000; }
.txt_white { color: #fff; }
.txt_gray { color: #999; }
.txt_lightGray { color: #ccc; }
.txt_darkGray { color: #4C4C4E; }
.txt_blue { color: #5E80B3; }
.txt_cyan { color: #165CFF; }
.txt_red { color: #D51D21; }

/* 텍스트 정렬 */
.txt_center { text-align: center; }
.txt_left { text-align: left; }
.txt_right { text-align: right; }

/* ============================================
   테이블
   ============================================ */
.simpleTable {
    border-collapse: collapse;
    border-top: 2px solid #ccc;
    border-bottom: 2px solid #ccc;
}

.simpleTable tr td {
    border: 1px solid #ccc;
    padding: 2px 5px;
}

.simpleTable th {
    background: #447E97;
    border-bottom: 2px solid #2C4261;
    color: #fff;
    padding: 4px 8px;
}

.simpleTable .cellAcent {
    background: #EDECE7;
    color: #867460;
    font-weight: bold;
    width: 100px;
}

/* ============================================
   폼 컨트롤
   ============================================ */
.form-control {
    margin: 3px 0;
}

/* ============================================
   버튼 스타일
   ============================================ */
.hanBtn {
    display: inline-block;
    vertical-align: baseline;
    margin: 1px 2px;
    outline: none;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    padding: 0.2em 1.5em;
    text-shadow: 0 1px 1px rgba(0,0,0,.2);
    border-radius: .3em;
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
    font-family: 'Noto Sans KR';
}

.hanBtn:hover { text-decoration: none; color: #fff; }
.hanBtn:active { position: relative; top: 1px; }

/* 버튼 크기 */
.btMiddle {
    padding: 0.4em 1.7em;
    font-size: 14px;
}

.btSmall {
    padding: 0.1em 1.5em;
    font-size: 11px;
}

/* 버튼 색상 */
.btGray {
    color: #e9e9e9;
    border: solid 1px #555;
    background: #6A6E6F;
}
.btGray:hover { background: #616161; }
.btGray:active { color: #afafaf; }

.btLightgray {
    color: #888;
    border: solid 1px #ccc;
    background: #eee;
    text-shadow: none;
}
.btLightgray:hover { background: #ccc; }
.btLightgray:active { color: #afafaf; }

/* ============================================
   WordPress 기본 클래스 스타일
   ============================================ */

/* 이미지 정렬 */
.alignleft {
    float: left;
    margin: 0 20px 20px 0;
}

.alignright {
    float: right;
    margin: 0 0 20px 20px;
}

.aligncenter {
    display: block;
    margin: 20px auto;
}

/* 캡션 */
.wp-caption {
    max-width: 100%;
    margin-bottom: 20px;
}

.wp-caption-text {
    font-size: 12px;
    color: #888;
    text-align: center;
    padding: 5px 0;
}

/* 갤러리 */
.gallery {
    margin: 0 -5px;
}

.gallery-item {
    display: inline-block;
    padding: 5px;
    vertical-align: top;
}

/* 페이지네이션 */
.nav-links {
    text-align: center;
    padding: 20px 0;
}

/* 스크린 리더 텍스트 */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

/* ============================================
   추가 커스텀 스타일
   ============================================ */

/* 스크롤 중복 방지 */
html, body {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
}

html {
    overflow-y: scroll;
}

body {
    overflow-y: visible;
}

.wrapHangrim {
    overflow: visible;
    height: auto;
}

/* 히어로 섹션 - 책 이미지 */
.subVisual {
    overflow: hidden;
}

.visualBookWrap {
    position: absolute;
    right: 15px;
    bottom: -5px;
    max-width: 65%;
    height: auto;
    z-index: 1;
    overflow: visible;
}

.visualBook {
    width: 100%;
    max-width: 900px;
    height: auto;
    opacity: 0;
    transform: translate(-100px, 200px);
    animation: slideInDiagonal 1.2s ease-out 0.3s forwards;
}

@keyframes slideInDiagonal {
    from {
        opacity: 0;
        transform: translate(-100px, 200px);
    }
    to {
        opacity: 1;
        transform: translate(0, 0);
    }
}

/* 히어로 텍스트 박스 */
.heroTextBox {
    position: absolute;
    top: 190px;
    left: 4%;
    z-index: 10;
}

.heroTextBox .munjinHead {
    opacity: 0;
    animation: fadeInLeft 0.8s ease-out 0.5s forwards;
}

.heroTextBox .exo,
.heroTextBox .noto {
    opacity: 0;
    animation: fadeInLeft 0.8s ease-out 0.7s forwards;
}

.heroTextBox > p:last-child {
    opacity: 0;
    animation: fadeInLeft 0.8s ease-out 0.9s forwards;
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* 모바일 반응형 */
@media screen and (max-width: 991px) {
    .visualBookWrap {
        display: none;
    }

    .heroTextBox {
        top: 150px;
    }
}

/* 컨테이너 중앙 정렬 (1200px) */
.container {
    max-width: 1200px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
}

/* 책 썸네일 배경 이미지 경로 수정 */
.bookThumbBox {
    background-image: url('../images/bookThumb.jpg');
    height: 320px;
}

.bookThumbBox .bookTitle {
    font-family: 'Noto Sans KR', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #666;
}

/* 페이지네이션 스타일 */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 20px 0;
    flex-wrap: wrap;
}

.pagination a,
.pagination strong {
    padding: 6px 12px;
    border: 1px solid #ddd;
    color: #666;
    font-size: 13px;
    text-decoration: none;
}

.pagination strong {
    background: #333;
    color: #fff;
    border-color: #333;
}

.pagination a:hover {
    background: #f5f5f5;
}

.pagination .direction {
    border: none;
}

/* 관리자 바 조정 */
body.admin-bar .hangrimMenu {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .hangrimMenu {
        top: 10px;
    }
}

/* 빈 도서 메시지 */
.no-books {
    width: 100%;
    text-align: center;
    padding: 60px 20px;
    color: #888;
}

/* 반응형 추가 */
@media screen and (max-width: 767px) {
    .subVisual {
        height: 240px !important;
    }

    .hero-spacer {
        height: 240px !important;
    }

    .munjinHead {
        font-size: 24px !important;
    }
}

/* 도서 상세 페이지 */
.book-cover-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 30px;
}

.book-cover-large {
    max-width: 300px;
    max-height: 420px;
    width: auto;
    height: auto;
    object-fit: contain;
    box-shadow: 2px 2px 15px rgba(0,0,0,0.2);
}

.book-info-wrap {
    padding-left: 30px;
}

.single-book .simpleTable {
    width: 85%;
    margin: 0 auto;
    border-collapse: collapse;
    border-top: 2px solid #333;
    border-bottom: 2px solid #333;
}

.single-book .simpleTable td {
    padding: 12px 0;
    font-size: 15px;
    vertical-align: middle;
    border-left: none;
    border-right: none;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    text-align: left;
    padding-left: 10px;
}

.single-book .simpleTable .cellAcent {
    width: 80px;
    font-weight: 400;
    color: #333;
    text-align: right;
    padding-right: 10px;
    padding-left: 0;
}

@media screen and (max-width: 767px) {
    .book-cover-wrap {
        justify-content: center;
    }

    .book-cover-large {
        max-width: 250px;
        max-height: 350px;
    }

    .book-info-wrap {
        padding-left: 0;
    }

    .single-book .simpleTable {
        width: 100%;
    }
}

/* row 클래스 (Bootstrap 없을 경우) */
.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.row::after {
    content: "";
    display: table;
    clear: both;
}

[class*="col-"] {
    padding: 0 15px;
    box-sizing: border-box;
}

.col-sm-2 { width: 16.666667%; }
.col-sm-3 { width: 25%; }
.col-sm-4 { width: 33.333333%; }
.col-sm-5 { width: 41.666667%; }
.col-sm-6 { width: 50%; }
.col-sm-8 { width: 66.666667%; }
.col-sm-12 { width: 100%; }
.col-lg-12 { width: 100%; }

@media screen and (max-width: 767px) {
    .col-xs-6 { width: 50%; }
    .col-sm-2,
    .col-sm-3,
    .col-sm-4,
    .col-sm-5,
    .col-sm-6,
    .col-sm-8 {
        width: 100%;
    }

    /* 모바일 책 썸네일 */
    .bookThumbBox {
        width: 160px;
        height: 240px;
        margin: 5px;
        transform: scale(1) !important;
    }

    .bookThumb {
        width: 120px !important;
        height: 170px !important;
    }

    .bookThumbBox .bookTitle {
        font-size: 12px;
    }

    /* 모바일 책 상세 표지 */
    .book-cover-large {
        max-width: 250px !important;
        max-height: 350px !important;
    }

    /* 모바일 히어로 텍스트 */
    .heroTextBox {
        top: 70px !important;
        left: 15px !important;
        right: 10px !important;
    }

    /* 모바일 네비게이션 버튼 */
    .hanBtn.btSmall {
        padding: 5px 10px;
        font-size: 11px;
    }

    .hanBtn.btMiddle {
        padding: 8px 15px;
        font-size: 12px;
    }
}

/* form-control 기본 스타일 */
.form-control {
    display: inline-block;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #555;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
}

/* 스크롤 탑 버튼 */
.scroll-top-btn {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: #333;
    color: #fff;
    border: 1px solid #ccc;
    border-radius: 50%;
    cursor: pointer;
    z-index: 999;
    font-size: 20px;
    transition: background 0.3s;
}

.scroll-top-btn:hover {
    background: #555;
}

/* 구입처 뱃지 스타일 */
.purchase-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.purchase-badge {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    background: #2E2D32;
    color: #fff;
    font-family: 'Noto Sans KR', sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 25px;
    transition: all 0.3s ease;
}

.purchase-badge:hover {
    background: #4a4a4a;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.purchase-badge:active {
    transform: translateY(0);
}

@media screen and (max-width: 767px) {
    .purchase-badges {
        justify-content: center;
    }

    .purchase-badge {
        padding: 8px 14px;
        font-size: 13px;
    }
}

/* 도서 목록 저자 정보 */
.book-authors {
    font-size: 13px;
    color: #666;
    margin-top: 8px;
    line-height: 1.4;
}

/* 홈 도서 목록 저자 정보 */
.bookAuthors {
    font-size: 12px;
    color: #888;
    margin-top: 5px;
    line-height: 1.3;
}

/* 저자 역할 스타일 */
.authorRole {
    color: #aaa;
    margin-left: 3px;
}

/* 이미지 라이트박스 */
.book-cover-lightbox {
    cursor: zoom-in;
    display: block;
}

.lightbox-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    z-index: 9999;
    cursor: zoom-out;
    justify-content: center;
    align-items: center;
}

.lightbox-overlay.active {
    display: flex;
}

.lightbox-overlay img {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    box-shadow: 0 5px 30px rgba(0, 0, 0, 0.5);
}

.lightbox-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: #fff;
    font-size: 40px;
    font-weight: 300;
    cursor: pointer;
    line-height: 1;
    transition: opacity 0.3s;
}

.lightbox-close:hover {
    opacity: 0.7;
}

/* ============================================
   수행 실적 페이지 (타임라인 스타일)
   ============================================ */
.portfolio-timeline {
    margin-top: 20px;
    position: relative;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}

.portfolio-year-row {
    display: flex;
    position: relative;
    min-height: 80px;
}

.portfolio-year-col {
    width: 100px;
    flex-shrink: 0;
    position: relative;
    padding-right: 30px;
    text-align: right;
}

/* 시간축 세로선 */
.portfolio-year-col::after {
    content: '';
    position: absolute;
    right: 10px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #ddd;
}

/* 연도 옆 원형 포인트 */
.portfolio-year-col::before {
    content: '';
    position: absolute;
    right: 5px;
    top: 8px;
    width: 12px;
    height: 12px;
    background: #2E2D32;
    border-radius: 50%;
    border: 2px solid #C7A763;
    z-index: 1;
}

/* 첫 번째 행: 시간축 위쪽 없음 */
.portfolio-year-row:first-child .portfolio-year-col::after {
    top: 8px;
}

/* 마지막 행: 시간축 아래쪽 없음 */
.portfolio-year-row:last-child .portfolio-year-col::after {
    bottom: calc(100% - 20px);
}

.portfolio-year {
    font-size: 22px;
    font-weight: 700;
    font-family: 'Noto Sans KR', sans-serif;
    color: #2E2D32;
    line-height: 1.2;
}

.portfolio-items-col {
    flex: 1;
    padding-left: 20px;
    padding-bottom: 30px;
}

.portfolio-item-wrapper {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
    gap: 15px;
}

.portfolio-item-wrapper:last-child {
    margin-bottom: 0;
}

.portfolio-item {
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    padding: 10px 20px;
    border-radius: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s;
    flex: 1;
}

.portfolio-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
    background: #fff;
}

.portfolio-project {
    font-size: 14px;
    color: #333;
    font-family: 'Noto Sans KR', sans-serif;
    line-height: 1.4;
    font-weight: 500;
    flex: 1;
}

.portfolio-client {
    font-size: 12px;
    color: #888;
    font-family: 'Noto Sans KR', sans-serif;
    flex-shrink: 0;
    margin-left: 15px;
}

.portfolio-period {
    font-size: 12px;
    color: #666;
    font-weight: 400;
    flex-shrink: 0;
    white-space: nowrap;
    min-width: 130px;
    text-align: right;
}

.no-portfolio {
    text-align: center;
    color: #999;
    padding: 60px 20px;
    font-size: 15px;
}

/* 모바일 대응 */
@media (max-width: 768px) {
    .portfolio-timeline {
        width: 100%;
    }

    .portfolio-year-col {
        width: 70px;
        padding-right: 20px;
    }

    .portfolio-year-col::after {
        right: 6px;
    }

    .portfolio-year-col::before {
        right: 1px;
        width: 10px;
        height: 10px;
    }

    .portfolio-year {
        font-size: 18px;
    }

    .portfolio-items-col {
        padding-left: 15px;
    }

    .portfolio-item-wrapper {
        flex-direction: column;
        align-items: stretch;
        gap: 5px;
    }

    .portfolio-item {
        padding: 10px 12px;
        flex-direction: column;
        align-items: flex-start;
    }

    .portfolio-project {
        font-size: 14px;
    }

    .portfolio-client {
        margin-left: 0;
        margin-top: 6px;
    }

    .portfolio-period {
        text-align: left;
        min-width: unset;
        color: #888;
    }
}

/* ============================================
   본문 콘텐츠 스타일 (통일 스타일)
   ============================================ */

/* 공통 본문 스타일 (도서, 이용약관, 사업분야, 주요실적) */
.page-body,
.book-content,
.contentsBox {
    width: 80%;
    margin: 0 auto;
    font-size: 16px;
    line-height: 2.2;
    color: #444;
}

@media screen and (max-width: 767px) {
    .page-body,
    .book-content,
    .contentsBox {
        width: 100%;
    }
}

/* 문단 여백 */
.page-body p,
.book-content p {
    margin-bottom: 1.5em;
}

/* 제목 여백 (위쪽 여백 = 글자 크기만큼) */
.page-body h1,
.book-content h1 {
    margin-top: 1em;
    margin-bottom: 0.3em;
}

.page-body h2,
.book-content h2 {
    margin-top: 1em;
    margin-bottom: 0.3em;
}

.page-body h3,
.book-content h3 {
    margin-top: 1em;
    margin-bottom: 1em;
}

.page-body h4,
.page-body h5,
.page-body h6,
.book-content h4,
.book-content h5,
.book-content h6 {
    margin-top: 1em;
    margin-bottom: 0.3em;
}

/* 리스트 스타일 */
.page-body ul,
.page-body ol,
.book-content ul,
.book-content ol {
    padding-left: 1.5em;
    margin-bottom: 1.5em;
}

.page-body ul,
.book-content ul {
    list-style-type: disc;
}

.page-body ol,
.book-content ol {
    list-style-type: decimal;
}

.page-body li,
.book-content li {
    margin-bottom: 0;
    margin-left: 1em;
}

.page-body ul ul,
.book-content ul ul {
    list-style-type: circle;
}

.page-body ul ul ul,
.book-content ul ul ul {
    list-style-type: square;
}

/* 구텐베르그 블록 리스트 */
.page-body .wp-block-list,
.book-content .wp-block-list {
    margin-bottom: 1.5em;
}

/* 인용문 스타일 (바느질 느낌 박스) */
.page-body .wp-block-quote,
.book-content .wp-block-quote {
    position: relative;
    margin: 1.5em 0;
    padding: 1.5em;
    background-color: #efede9;
    border-radius: 13px;
    border: none;
    z-index: 0;
}

.page-body .wp-block-quote::before,
.book-content .wp-block-quote::before {
    content: '';
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 5px;
    right: 5px;
    border: 2px dashed #A7A297;
    border-radius: 10px;
    z-index: -1;
}

.page-body .wp-block-quote p,
.book-content .wp-block-quote p {
    margin: 0;
}

.page-body .wp-block-quote cite,
.book-content .wp-block-quote cite {
    display: block;
    margin-top: 10px;
    font-size: 14px;
    color: #888;
    font-style: normal;
}

/* ============================================
   푸터 스타일
   ============================================ */
.site-footer {
    background: #2D363A;
    padding: 40px 0 30px;
    font-family: 'Noto Sans KR', sans-serif;
}

.footer-inner {
    padding: 0 10px;
}

.footer-col {
    margin-bottom: 30px;
}

/* 푸터 타이틀 */
.footer-title {
    color: #ccc;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    margin: 0 0 20px 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.footer-title svg {
    color: #999;
    flex-shrink: 0;
}

/* 푸터 콘텐츠 */
.footer-content {
    font-size: 13px;
    line-height: 1.4;
    color: #888;
}

/* 로고 */
.footer-logo {
    margin-bottom: 15px;
}

.footer-logo-img {
    max-height: 22px;
    width: auto;
}

/* 연락처 */
.footer-contact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px 0;
    font-size: 13px;
}

.contact-label {
    color: #888;
    flex-shrink: 0;
}

.contact-value {
    color: #aaa;
    font-weight: 400;
}

.footer-contact-item a {
    color: #aaa;
    text-decoration: none;
    transition: color 0.2s;
}

.footer-contact-item a:hover {
    color: #fff;
}

/* 푸터 연락처 그리드 레이아웃 (명함 스타일) */
.footer-contact-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-contact-row {
    display: flex;
    align-items: stretch;
    gap: 20px;
}

.footer-contact-row .footer-logo {
    flex: 0 0 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
}

.footer-contact-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
}

.footer-contact-info .footer-contact-item {
    margin: 0;
}

/* 메뉴 리스트 */
.footer-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu-list li {
    margin-bottom: 4px;
}

.footer-menu-list li a {
    color: #aaa;
    text-decoration: none;
    font-size: 13px;
    transition: color 0.2s;
}

.footer-menu-list li a:hover {
    color: #fff;
}

/* 저작권 */
.footer-copyright {
    margin-top: 20px;
    font-size: 13px;
    line-height: 1.4;
    color: #aaa;
}

/* 푸터 컬럼 비율 (40:20:40) */
@media screen and (min-width: 768px) {
    .site-footer .footer-col:nth-child(1) {
        width: 40%;
    }
    .site-footer .footer-col:nth-child(2) {
        width: 20%;
    }
    .site-footer .footer-col:nth-child(3) {
        width: 40%;
    }
}

/* 푸터 모바일 반응형 */
@media screen and (max-width: 767px) {
    .site-footer {
        padding: 30px 0 20px;
    }

    .footer-col {
        margin-bottom: 25px;
    }

    .footer-col:first-child {
        border-bottom: 1px solid #444;
        padding-bottom: 25px;
        margin-bottom: 25px;
    }

    .site-footer .row {
        display: flex;
        flex-wrap: wrap;
    }

    .site-footer .col-xs-12 {
        width: 100%;
    }

    .site-footer .col-xs-6 {
        width: 50%;
    }

    .footer-title {
        font-size: 12px;
        margin-bottom: 15px;
    }

    .footer-menu-list li {
        margin-bottom: 8px;
    }

    .footer-menu-list li a {
        font-size: 12px;
    }

    .footer-copyright {
        margin-top: 20px;
        font-size: 10px;
    }

    .footer-col:nth-child(1) {
        padding-left: 40px;
    }

    .footer-col:nth-child(2) {
        padding-left: 35px;
    }

    .footer-contact-grid {
        gap: 10px;
    }

    .footer-contact-row .footer-logo {
        flex: 0 0 80px;
    }
}
