@charset "UTF-8";
/* ============================================
   서브페이지 반응형 CSS
============================================ */
/* ===== 1280px 이하 ===== */
@media (max-width: 1280px) {
    .sub-visual {
        height: 280px;
    }
    .sub-visual-inner h2 {
        font-size: 2.2em;
    }
    .breadcrumb-inner {
        padding: 14px 40px;
    }
    .sub-section {
        padding: 0 40px;
        gap: 40px;
    }
    .sidebar {
        flex: 0 0 220px;
        width: 220px;
    }
    .sidebar-top h3 {
        font-size: 1.6em;
    }
    .sidebar-menu a {
        padding: 16px 22px;
        font-size: 0.95em;
    }
    .page-header h1 {
        font-size: 2em;
    }
    .highlight-box {
        padding: 35px 30px;
    }
    /* 구성원 */
    .members-grid {
        gap: 25px 20px;
    }
}
/* ===== 1024px 이하 (태블릿) ===== */
@media (max-width: 1024px) {
    .sub-visual {
        height: 240px;
    }
    .sub-visual-inner .label {
        font-size: 0.65em;
        letter-spacing: 0.3em;
        margin-bottom: 12px;
    }
    .sub-visual-inner h2 {
        font-size: 1.9em;
        letter-spacing: 0.05em;
    }
    .breadcrumb-inner {
        padding: 12px 30px;
        font-size: 0.72em;
    }
    /* sub-section 세로 정렬 + breadcrumb 가리지 않도록 여백 확보 */
    .sub-section {
        flex-direction: column;
        padding: 30px 30px 0;  /* breadcrumb 아래 여백 확보 */
        gap: 30px;
    }
    /* ===== 사이드바 디자인 다듬기 (가로 카드형) ===== */
    .sidebar {
        flex: 0 0 auto;
        width: 100%;
        margin-top: 0;  /* breadcrumb 가림 방지 */
        display: flex;
        align-items: stretch;
        background: transparent;
        border-radius: 6px;
        overflow: hidden;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    }
    .sidebar-top {
        flex: 0 0 200px;
        padding: 22px 20px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 4px;
    }
    .sidebar-top .label {
        font-size: 0.58em;
        letter-spacing: 0.2em;
        margin-bottom: 4px;
    }
    .sidebar-top h3 {
        font-size: 1.3em;
        margin: 0;
    }
    /* 메뉴 가로형 - 더 깔끔하게 */
    .sidebar-menu {
        flex: 1;
        display: flex;
        background: #fff;
        align-items: stretch;
        border: 1px solid #eee;
        border-left: none;
    }
    .sidebar-menu li {
        flex: 1;
        border-bottom: none;
        border-right: 1px solid #f0f0f0;
        display: flex;
    }
    .sidebar-menu li:last-child {
        border-right: none;
    }
    .sidebar-menu a {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 15px 12px;
        font-size: 0.95em;
    }
    .sidebar-menu a:hover {
        padding-left: 12px;
    }
    .sidebar-menu li.active a::before {
        left: 0;
        top: 0;
        right: 0;
        bottom: auto;
        width: 100%;
        height: 3px;
    }
    .sidebar-menu li.active a::after {
        display: none;
    }
    /* CTA는 태블릿에서 숨김 (가로 사이드바에 어울리지 않음) */
    .sidebar-cta {
        display: none;
    }
    /* ===== 본문 영역 - 폭 확보 ===== */
    .sub-content {
        width: 100%;
        min-width: 0;
        padding: 30px 0 80px;  /* 위쪽 padding 줄여서 폭 활용 */
    }
    .page-header {
        margin-bottom: 40px;
    }
    .page-header h1 {
        font-size: 1.8em;
    }
    .highlight-box {
        gap: 25px;
        padding: 30px 25px;
    }
    /* 프로세스 - 2열로 변경 */
    .process-steps {
        grid-template-columns: repeat(2, 1fr);
    }
    /* 인사말 - 이미지 폭 축소 */
    .greeting-section {
        grid-template-columns: 320px 1fr;
        gap: 40px;
    }
    .greeting-image {
        height: 400px;
    }
    .greeting-text h3 {
        font-size: 1.6em;
        margin-bottom: 28px;
    }
    /* 구성원 - 3열 */
    .members-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .members-tab {
        padding: 14px 22px;
        font-size: 0.95em;
    }
    .members-group-title {
        font-size: 1.25em;
        margin-bottom: 25px;
    }
    /* 모달 - 1024px */
    .member-modal-inner {
        max-width: 720px;
    }
    .member-modal-photo {
        flex: 0 0 280px;
        width: 280px;
        padding: 30px 25px;
        min-height: 420px;
    }
    .member-modal-content {
        padding: 45px 38px;
    }
    .member-modal-content .name {
        font-size: 1.6em;
    }
    /* 오시는길 - 1024px */
    .branch-map {
        height: 300px;
    }
    .branch-info {
        padding: 24px 25px;
    }
    .branch-info-item {
        padding: 0 15px;
    }
    /* 자문 CTA - 1024px */
    .consult-cta {
        padding: 40px 35px;
    }
    .consult-cta-text h4 {
        font-size: 1.35em;
    }
    /* 서비스 테이블 - 1024px */
    .service-table tbody td {
        padding: 20px 16px;
    }
    .service-table tbody td:first-child {
        width: 130px;
        padding-left: 28px;
    }
    .service-table tbody td:first-child::before {
        left: 16px;
    }
    /* 큰 섹션 헤더 - 1024px */
    .big-section {
        margin-bottom: 50px;
    }
    .big-section-header .num {
        width: 44px;
        height: 44px;
        font-size: 1em;
    }
    .big-section-header h3 {
        font-size: 1.25em;
    }
    /* 안내 노트 박스 - 1024px */
    .intro-quote {
        padding: 24px 26px;
    }
    .intro-quote .quote {
        font-size: 1.05em;
    }
    /* 마무리 메시지 - 1024px */
    .closing-message {
        padding: 50px 40px 45px;
    }
    .closing-message::before {
        font-size: 6em;
        top: 8px;
        left: 22px;
    }
    .closing-message::after {
        font-size: 6em;
        bottom: -16px;
        right: 28px;
    }
    .closing-message .quote {
        font-size: 1.35em;
    }
    /* 섹션 인용구 - 1024px */
    .section-quote {
        padding: 20px 22px;
    }
    .section-quote .quote {
        font-size: 1em;
    }
    /* 경고 박스 - 1024px */
    .warning-quote {
        padding: 20px 22px;
    }
}
/* ===== 768px 이하 (모바일) ===== */
@media (max-width: 768px) {
    .sub-visual {
        height: 200px;
    }
    .sub-visual-inner h2 {
        font-size: 1.6em;
    }
    .sub-visual-inner .label {
        font-size: 0.6em;
        letter-spacing: 0.25em;
        margin-bottom: 10px;
    }
    .breadcrumb-inner {
        padding: 12px 20px;
        font-size: 0.7em;
        flex-wrap: wrap;
        justify-content: flex-start;
    }
    .sub-section {
        padding: 25px 20px 0;
    }
    /* 사이드바 - 세로 정렬로 변경 (모바일은 세로가 더 적합) */
    .sidebar {
        flex-direction: column;
        margin-top: 0;
        box-shadow: none;
    }
    .sidebar-top {
        flex: 0 0 auto;
        padding: 22px 25px;
        text-align: center;
        align-items: stretch;
    }
    .sidebar-top .label {
        font-size: 0.6em;
        margin-bottom: 8px;
    }
    .sidebar-top h3 {
        font-size: 1.2em;
    }
    /* 메뉴 - 2열 그리드 */
    .sidebar-menu {
        flex-wrap: wrap;
        border-left: 1px solid #eee;
    }
    .sidebar-menu li {
        flex: 0 0 50%;
        width: 50%;
        max-width: 50%;
        border-bottom: 1px solid #f0f0f0;
        box-sizing: border-box;
    }
    .sidebar-menu li:nth-child(odd) {
        border-right: 1px solid #f0f0f0;
    }
    .sidebar-menu li:nth-child(even) {
        border-right: none;
    }
    .sidebar-menu li:nth-last-child(-n+2):nth-child(odd),
    .sidebar-menu li:nth-last-child(-n+1) {
        border-bottom: none;
    }
    .sidebar-menu a {
        font-size: 0.9em;
        padding: 14px 10px;
    }
    /* 본문 */
    .sub-content {
        padding: 30px 0 60px;
    }
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 30px;
        padding-bottom: 18px;
    }
    .page-header h1 {
        font-size: 1.5em;
    }
    .page-header .sub-info {
        font-size: 0.7em;
    }
    .content-block {
        margin-bottom: 45px;
    }
    .content-block h4 {
        font-size: 1.2em;
        margin-bottom: 20px;
    }
    .content-block .lead {
        font-size: 1em;
    }
    .content-block .lead br {
        display: none;
    }
    .content-block p {
        font-size: 0.88em;
    }
    /* 하이라이트 - 1컬럼 */
    .highlight-box {
        grid-template-columns: 1fr;
        padding: 30px 25px;
        gap: 25px;
    }
    .highlight-item:not(:last-child)::after {
        right: auto;
        left: 20%;
        right: 20%;
        top: auto;
        bottom: -12px;
        width: auto;
        height: 1px;
    }
    /* 서비스 그리드 - 1컬럼 */
    .service-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .service-card {
        padding: 28px 25px;
    }
    /* 프로세스 - 2컬럼 유지 */
    .process-steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .step-item {
        padding: 22px 12px;
    }
    /* 폼 */
    .consult-form {
        padding: 30px 25px;
    }
    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .form-agree {
        flex-wrap: wrap;
    }
    .form-agree a {
        margin-left: 0;
        margin-top: 6px;
    }
    .form-submit {
        flex-direction: column;
    }
    .form-submit button {
        width: 100%;
        padding: 14px 30px;
    }
    /* 테이블 */
    .info-table th,
    .info-table td {
        padding: 12px 15px;
        font-size: 0.8em;
    }
    .info-table th {
        width: 100px;
    }
    /* 인사말 - 세로 정렬 */
    .greeting-section {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-bottom: 40px;
    }
    .greeting-image {
        height: 280px;
    }
    .greeting-text h3 {
        font-size: 1.3em;
        margin-bottom: 22px;
    }
    .greeting-text h3 br {
        display: none;
    }
    .greeting-text p {
        font-size: 0.88em;
    }
    .ceo-signature {
        gap: 24px;
        padding-top: 25px;
        margin-top: 30px;
    }
    .ceo-signature .name {
        font-size: 1.2em;
    }
    /* 구성원 - 2열 */
    .members-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px 15px;
    }
    .members-tabs {
        margin-bottom: 35px;
    }
    .members-tab {
        padding: 12px 18px;
        font-size: 0.9em;
    }
    .members-group-title {
        font-size: 1.15em;
        margin-bottom: 22px;
    }
    .member-info .name {
        font-size: 1em;
    }
    .member-info .position {
        font-size: 0.78em;
    }
    /* 모달 - 세로 정렬 */
    .member-modal {
        padding: 15px;
        align-items: flex-start;
        padding-top: 30px;
    }
    .member-modal-inner {
        flex-direction: column;
        max-width: 100%;
        max-height: calc(100vh - 60px);
        overflow-y: auto;
        border-radius: 8px;
    }
    /* 사진 영역 - 베이지 배경 박스, 사진 wrapper로 적절한 여백 유지 */
    .member-modal-photo {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        min-height: auto;
        padding: 28px 28px 0;     /* 좌우상 여백, 하단은 콘텐츠와 자연스럽게 */
        position: relative;
        align-self: auto;
        top: auto;
    }
    .member-modal-photo-wrap {
        aspect-ratio: 4 / 3;       /* 모바일에서는 가로형 비율로 자연스럽게 */
        max-height: 360px;
    }
    .member-modal-content {
        padding: 30px 28px 40px;
        max-height: none;
        overflow-y: visible;
    }
    .member-modal-content .name {
        font-size: 1.4em;
        margin-bottom: 22px;
        padding-bottom: 18px;
    }
    .member-modal-content ul.career li {
        font-size: 0.82em;
    }
    .member-modal-close {
        top: 14px;
        right: 14px;
        width: 34px;
        height: 34px;
        font-size: 14px;
    }
    /* 오시는길 - 768px */
    .branch-section {
        margin-bottom: 40px;
    }
    .branch-header .branch-label .num {
        width: 28px;
        height: 28px;
    }
    .branch-header .branch-label h4 {
        font-size: 1.15em;
    }
    .branch-header .branch-label h4 .accent {
        display: block;
        margin-left: 0;
        margin-top: 4px;
    }
    .branch-map {
        height: 260px;
    }
    /* 주소 정보 - 세로 정렬 */
    .branch-info {
        grid-template-columns: 1fr;
        padding: 22px 22px;
        gap: 18px;
    }
    .branch-info-item {
        padding: 0;
        border-right: none;
        border-bottom: 1px solid rgba(184, 153, 104, 0.2);
        padding-bottom: 18px;
    }
    .branch-info-item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }
    .branch-info-item .icon {
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
        font-size: 13px;
    }
    /* 자문 CTA - 768px */
    .consult-cta {
        padding: 35px 28px;
    }
    .consult-cta-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
    }
    .consult-cta-text h4 {
        font-size: 1.2em;
    }
    .consult-cta-text p {
        font-size: 0.85em;
    }
    .consult-cta-btn {
        width: 100%;
        justify-content: center;
        padding: 14px 24px;
    }
    /* 서비스 테이블 - 768px (모바일 - 카드형) */
    .service-table {
        border-top: 2px solid #3d3830;
    }
    .service-table thead {
        display: none;
    }
    .service-table tbody tr {
        display: block;
        padding: 20px 18px;
        border-bottom: 1px solid #eee;
    }
    .service-table tbody td {
        display: block;
        padding: 0;
        border: none;
        font-size: 0.85em;
    }
    .service-table tbody td:first-child {
        width: 100%;
        font-size: 1em;
        padding: 0 15px 10px;
        margin-bottom: 12px;
        border-bottom: 1px solid #f0f0f0;
        color: #3d3830;
    }
    .service-table tbody td:first-child::before {
        left: 0;
        top: 10px;
    }
    .service-table tbody td:nth-child(2) {
        margin-bottom: 12px;
        color: #444;
        line-height: 1.7;
    }
    .service-table tbody td:nth-child(2)::before {
        content: '주요 서비스 내용';
        display: block;
        /* font-size: 0.7em; */
        color: #b89968;
        font-weight: 700;
        /* letter-spacing: 0.15em; */
        text-transform: uppercase;
        margin-bottom: 6px;
    }
    .service-table tbody td:last-child {
        width: 100%;
        color: #777;
        line-height: 1.7;
        padding-top: 10px;
        border-top: 1px dashed #f0f0f0;
    }
    .service-table tbody td:last-child::before {
        content: '기대 효과';
        display: block;
        /* font-size: 0.7em; */
        color: #b89968;
        font-weight: 700;
        /* letter-spacing: 0.15em; */
        text-transform: uppercase;
        margin-bottom: 6px;
    }
    /* 큰 섹션 헤더 - 768px */
    .big-section {
        margin-bottom: 45px;
    }
    .big-section-header {
        gap: 16px;
        padding-bottom: 18px;
        margin-bottom: 18px;
    }
    .big-section-header .num {
        width: 40px;
        height: 40px;
        font-size: 0.95em;
    }
    .big-section-header h3 {
        font-size: 1.1em;
        margin-bottom: 6px;
    }
    .big-section-header .sub-desc {
        font-size: 0.82em;
    }
    /* 안내 노트 박스 - 768px */
    .intro-quote {
        padding: 22px 22px;
        margin-bottom: 28px;
    }
    .intro-quote .quote {
        font-size: 1em;
    }
    .intro-quote p {
        font-size: 0.85em;
    }
    /* 마무리 메시지 - 768px */
    .closing-message {
        padding: 45px 28px 40px;
        margin-top: 40px;
    }
    .closing-message::before {
        font-size: 4.5em;
        top: 6px;
        left: 14px;
    }
    .closing-message::after {
        font-size: 4.5em;
        bottom: -12px;
        right: 18px;
    }
    .closing-message .label {
        font-size: 0.62em;
        margin-bottom: 16px;
        padding: 0 22px;
    }
    .closing-message .label::before,
    .closing-message .label::after {
        width: 14px;
    }
    .closing-message .quote {
        font-size: 1.15em;
        margin-bottom: 18px;
    }
    .closing-message p {
        font-size: 0.85em;
    }
    /* 섹션 인용구 - 768px */
    .section-quote {
        padding: 18px 20px;
    }
    .section-quote .quote {
        font-size: 0.95em;
        margin-bottom: 8px;
    }
    .section-quote p {
        font-size: 0.82em;
    }
    /* 경고 박스 - 768px */
    .warning-quote {
        padding: 18px 20px;
    }
    .warning-quote .warn-title {
        font-size: 0.9em;
    }
    .warning-quote p {
        font-size: 0.82em;
    }
    /* 정책 페이지 - 768px */
    .policy-section {
        padding: 30px 20px 60px;
    }
    .policy-header {
        padding-bottom: 26px;
        margin-bottom: 30px;
    }
    .policy-header h1 {
        font-size: 1.5em;
        margin-bottom: 10px;
    }
    .policy-header .effective-date {
        font-size: 0.72em;
        padding: 5px 14px;
    }
    .policy-nav-tabs {
        margin-bottom: 30px;
    }
    .policy-nav-tabs a {
        padding: 12px 22px;
        font-size: 0.88em;
    }
    .policy-content > .intro {
        padding: 18px 20px;
        margin-bottom: 30px;
        font-size: 0.88em;
    }
    .policy-article {
        margin-bottom: 28px;
    }
    .policy-article h3 {
        font-size: 1.05em;
        margin-bottom: 12px;
    }
    .policy-article p {
        font-size: 0.86em;
        padding-left: 14px;
    }
    .policy-article ol {
        padding-left: 14px;
    }
    .policy-article ol > li {
        font-size: 0.86em;
        padding-left: 22px;
    }
    .policy-article ul {
        padding-left: 14px;
    }
    .policy-article ul > li {
        font-size: 0.85em;
    }
    .policy-info-box {
        padding: 18px 20px;
        margin-left: 14px;
    }
    .policy-info-box .info-row {
        flex-direction: column;
        gap: 4px;
        padding: 8px 0;
    }
    .policy-info-box .info-row .label {
        flex: 0 0 auto;
        font-size: 0.78em;
    }
    .policy-info-box .info-row .value {
        font-size: 0.95em;
    }
    /* 개인정보 동의 모달 - 768px */
    .privacy-modal {
        padding: 15px;
        align-items: flex-start;
        padding-top: 30px;
    }
    .privacy-modal-inner {
        max-height: calc(100vh - 60px);
    }
    .privacy-modal-header {
        padding: 20px 24px;
    }
    .privacy-modal-header h3 {
        font-size: 1.1em;
    }
    .privacy-modal-close {
        top: 14px;
        right: 16px;
        width: 32px;
        height: 32px;
        font-size: 13px;
    }
    .privacy-modal-body {
        padding: 24px 22px 8px;
    }
    .privacy-modal-body .intro-text {
        font-size: 0.85em;
    }
    .privacy-modal-body .privacy-item p {
        font-size: 0.82em;
    }
    .privacy-modal-footer {
        padding: 14px 22px;
        font-size: 0.78em;
    }
}
/* ===== 480px 이하 (모바일 소형) ===== */
@media (max-width: 480px) {
    .sub-visual {
        height: 170px;
    }
    .sub-visual-inner h2 {
        font-size: 1.4em;
    }
    .page-header h1 {
        font-size: 1.3em;
    }
    /* 메뉴를 1열로 */
    .sidebar-menu li {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        border-right: none !important;
    }
    .sidebar-menu li:nth-child(odd),
    .sidebar-menu li:nth-child(even) {
        border-right: none;
    }
    .sidebar-menu li {
        border-bottom: 1px solid #f0f0f0;
    }
    .sidebar-menu li:last-child {
        border-bottom: none;
    }
    .sidebar-menu a {
        padding: 14px 18px;
        text-align: left;
        justify-content: flex-start;
    }
    .step-item .step-title {
        font-size: 0.85em;
    }
    .step-item .step-desc {
        font-size: 0.72em;
    }
}