@charset "utf-8";
/* ===================================================================
 * 안전ON 테마 - responsive.css (정리본)
 * 적용 방식: 기존 responsive.css 내용을 전부 지우고 이 파일 전체로 교체
 * 목적: 메인 / 공통 / 조직도 / 가격표의 풀반응형 정리
 * =================================================================== */

/* -------------------------------------------------------------------
 * 0. 공통 안전장치
 * ------------------------------------------------------------------- */
html {
    overflow-x: hidden;
}

body {
    overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
    height: auto;
}

.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
}

.hero-grid,
.trust-grid,
.features-grid,
.value-grid,
.shield-grid,
.industry-grid,
.testimonial-grid,
.board-preview-grid,
.content-grid,
.pricing-grid,
.org-preview-grid,
.org-overview-grid,
.org-detail-grid,
.branch-network-grid,
.sale-guide-grid,
.footer-grid {
    width: 100%;
}

.hero-grid > *,
.trust-grid > *,
.features-grid > *,
.value-grid > *,
.shield-grid > *,
.industry-grid > *,
.testimonial-grid > *,
.board-preview-grid > *,
.content-grid > *,
.pricing-grid > *,
.org-preview-grid > *,
.org-overview-grid > *,
.org-detail-grid > *,
.branch-network-grid > *,
.sale-guide-grid > *,
.footer-grid > * {
    min-width: 0;
}

.hero-title,
.hero-desc,
.section-title,
.section-desc,
.feature-title,
.feature-desc,
.shield-content h2,
.shield-content p,
.shield-card-text strong,
.shield-card-text span,
.board-preview-title,
.board-preview-list .item-title,
.industry-name,
.industry-count,
.testimonial-text,
.org-overview-card strong,
.org-overview-card p,
.org-detail-card strong,
.org-detail-card p,
.branch-network-head h3,
.branch-network-head p,
.price-card h3,
.price-desc,
.price-note,
.price-meta,
.price-origin {
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.feature-card,
.industry-card,
.testimonial-card,
.board-preview,
.shield-card,
.trust-item,
.org-overview-card,
.org-detail-card,
.branch-network-card,
.local-branch-board,
.price-card,
.sale-guide-card {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.m-only {
    display: none;
}

.pc-only {
    display: initial;
}

/* -------------------------------------------------------------------
 * 1. 1279px 이하 - 큰 태블릿/작은 데스크톱
 * ------------------------------------------------------------------- */
@media (max-width: 1279px) {
    :root {
        --container: 1140px;
    }

    .gnb-item > a {
        padding: 14px 14px;
        font-size: 14px;
    }

    .header-cta {
        gap: 8px;
    }

    .hero {
        padding: 84px 0 96px;
    }

    .hero-grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
        gap: 32px;
    }

    .hero-title {
        font-size: clamp(2.2rem, 3vw, 3.2rem);
        line-height: 1.18;
        margin-bottom: 20px;
    }

    .hero-desc {
        font-size: 17px;
        line-height: 1.72;
        max-width: 100%;
        margin-bottom: 24px;
    }

    .hero-actions {
        gap: 10px;
    }

    .hero-actions .btn {
        padding-left: 22px;
        padding-right: 22px;
    }

    .hero-stats {
        gap: 24px;
        margin-top: 32px;
        padding-top: 20px;
    }

    .hero-mockup {
        max-width: 380px;
        padding: 28px 20px;
    }

    .section {
        padding: 80px 0;
    }

    .section-head {
        margin-bottom: 40px;
    }

    .section-desc {
        font-size: 16px;
        max-width: 680px;
    }

    .trust-grid,
    .features-grid,
    .value-grid,
    .industry-grid,
    .testimonial-grid,
    .board-preview-grid,
    .pricing-grid,
    .org-overview-grid,
    .org-detail-grid {
        gap: 16px;
    }

    .feature-card,
    .testimonial-card,
    .price-card,
    .org-overview-card,
    .org-detail-card,
    .branch-network-card,
    .local-branch-board {
        padding: 28px 22px;
    }

    .shield-grid {
        gap: 28px;
    }

    .industry-card {
        padding: 20px 16px;
    }
}

/* -------------------------------------------------------------------
 * 2. 1024px 이하 - 태블릿
 * ------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .gnb {
        display: none;
    }

    .btn-mobile-menu {
        display: inline-flex;
    }

    .header-inner {
        height: 68px;
        gap: 12px;
    }

    .header-cta .btn-primary {
        padding: 10px 16px;
        font-size: 14px;
    }

    .hero {
        padding: 72px 0 80px;
    }

    .hero-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .hero-content {
        order: 1;
    }

    .hero-visual {
        order: 2;
        margin-top: 0;
    }

    .hero-title br,
    .hero-desc br,
    .shield-content h2 br,
    .section-desc br,
    .org-page-header .page-desc br {
        display: none;
    }

    .hero-title,
    .hero-desc {
        max-width: 100%;
    }

    .hero-actions {
        flex-wrap: wrap;
    }

    .hero-actions .btn {
        min-height: 52px;
    }

    .hero-mockup {
        max-width: 360px;
        margin: 0 auto;
        transform: none;
    }

    .hero-mockup:hover {
        transform: none;
    }

    .trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .features-grid,
    .value-grid,
    .testimonial-grid,
    .board-preview-grid,
    .content-grid,
    .pricing-grid,
    .org-preview-grid,
    .org-overview-grid,
    .org-detail-grid,
    .branch-network-grid,
    .sale-guide-grid {
        grid-template-columns: 1fr;
    }

    .shield-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .industry-grid,
    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-bottom,
    .cta-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .cta-actions {
        justify-content: center;
        flex-wrap: wrap;
    }

    .price-card.recommended,
    .price-card--featured,
    .price-card--sale.recommended {
        transform: none;
    }

    .board-preview-list .item-title {
        white-space: normal;
        text-overflow: initial;
        overflow: visible;
        display: block;
    }

    .org-tree-block {
        padding: var(--s-5);
    }

    .org-tree-row {
        flex-wrap: wrap;
        justify-content: center;
    }

    .org-tree-depts {
        gap: 12px;
    }

    .org-node {
        min-width: clamp(160px, 30vw, 240px);
    }
}

/* -------------------------------------------------------------------
 * 3. 767px 이하 - 모바일 핵심
 * ------------------------------------------------------------------- */
@media (max-width: 767px) {
    body {
        font-size: 15px;
    }

    .m-only {
        display: inline;
    }

    .pc-only {
        display: none;
    }

    .container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .top-utility {
        padding: 7px 0;
        font-size: 11px;
    }

    .top-utility .container {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .top-utility .utility-left,
    .top-utility .utility-right {
        width: 100%;
    }

    .top-utility .utility-right {
        display: flex;
        justify-content: space-between;
        gap: 10px;
    }

    .top-utility .util-link {
        padding-left: 10px;
    }

    .header-inner {
        height: 60px;
    }

    .logo img {
        height: 26px;
    }

    .logo-text {
        font-size: 18px;
    }

    .header-cta .btn-primary {
        display: none;
    }

    .mobile-menu {
        width: min(88vw, 360px);
    }

    .page-header {
        padding: 52px 0 40px;
    }

    .page-header h1 {
        font-size: clamp(1.8rem, 5vw, 2.2rem);
    }

    .page-header .breadcrumb {
        font-size: 12px;
    }

    .page-header .page-desc {
        font-size: 14px;
        line-height: 1.7;
    }

    .section {
        padding: 56px 0;
    }

    .section-lg {
        padding: 64px 0;
    }

    .section-head {
        margin-bottom: 28px;
        padding-left: 2px;
        padding-right: 2px;
    }

    .section-title {
        font-size: clamp(1.7rem, 6vw, 2.1rem);
        line-height: 1.28;
        margin-bottom: 12px;
    }

    .section-desc {
        font-size: 15px;
        line-height: 1.72;
    }

    .hero,
    .trust-bar,
    .section.section-bg,
    .shield-section {
        overflow-x: clip;
    }

    .hero {
        padding: 44px 0 56px;
    }

    .hero-title {
        font-size: clamp(1.95rem, 7vw, 2.45rem);
        line-height: 1.22;
        margin-bottom: 16px;
    }

    .hero-desc {
        font-size: 15px;
        line-height: 1.72;
        margin-bottom: 20px;
    }

    .hero-actions {
        flex-direction: column;
        gap: 10px;
    }

    .hero-actions .btn,
    .cta-actions .btn,
    .price-card .btn,
    .price-actions .btn {
        width: 100%;
        min-height: 52px;
        padding-left: 16px;
        padding-right: 16px;
        white-space: normal;
    }

    .hero-stats {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        margin-top: 28px;
        padding-top: 16px;
    }

    .hero-stat-num {
        font-size: 22px;
    }

    .hero-stat-label {
        font-size: 12px;
        line-height: 1.45;
    }

    .hero-mockup {
        width: min(100%, 320px);
        max-width: 100%;
        padding: 22px 16px;
        border-radius: 28px;
        box-shadow: var(--sh-lg), inset 0 0 0 6px #1A2333;
    }

    .hero-mockup-feature {
        gap: 10px;
        padding: 12px 10px;
    }

    .hero-mockup-icon {
        width: 34px;
        height: 34px;
        flex-shrink: 0;
    }

    .trust-bar {
        padding: 18px 0;
    }

    .trust-grid {
        gap: 12px;
    }

    .trust-item {
        padding: 14px 10px;
        border: 1px solid var(--c-border);
        border-radius: 12px;
        background: #fff;
    }

    .trust-num {
        font-size: 24px;
    }

    .trust-label {
        font-size: 12px;
        line-height: 1.45;
    }

    .feature-card,
    .industry-card,
    .testimonial-card,
    .board-preview,
    .shield-card,
    .org-preview-card,
    .org-overview-card,
    .org-detail-card,
    .branch-network-card,
    .local-branch-board,
    .price-card,
    .sale-guide-card,
    .faq-item {
        padding: 18px;
        border-radius: 14px;
    }

    .feature-title,
    .org-preview-card strong,
    .org-overview-card strong,
    .org-detail-card strong,
    .price-name,
    .price-card h3 {
        font-size: 19px;
        line-height: 1.35;
    }

    .feature-desc,
    .testimonial-text,
    .board-preview-list li,
    .org-overview-card p,
    .org-detail-card p,
    .branch-network-head p,
    .price-desc,
    .price-card li {
        font-size: 14px;
        line-height: 1.7;
    }

    .feature-list li {
        font-size: 14px;
        line-height: 1.6;
    }

    .feature-icon,
    .industry-icon,
    .org-preview-icon {
        width: 56px;
        height: 56px;
        font-size: 26px;
    }

    .shield-content h2 {
        font-size: clamp(1.75rem, 6vw, 2.15rem);
        line-height: 1.28;
    }

    .shield-content p {
        font-size: 15px;
        line-height: 1.75;
    }

    .shield-tags {
        gap: 8px;
    }

    .shield-tag {
        width: 100%;
        justify-content: center;
        text-align: center;
        padding: 10px 14px;
    }

    .shield-card {
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

    .shield-card-num {
        min-width: 42px;
        font-size: 28px;
    }

    .shield-card-text strong {
        font-size: 15px;
        line-height: 1.4;
    }

    .shield-card-text span {
        font-size: 13px;
        line-height: 1.55;
    }

    .industry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .industry-card {
        padding: 18px 14px;
    }

    .industry-name {
        font-size: 15px;
        line-height: 1.45;
    }

    .industry-count {
        font-size: 12px;
    }

    .testimonial-author {
        align-items: flex-start;
    }

    .board-preview-head {
        align-items: flex-start;
        gap: 8px;
    }

    .board-preview-title {
        font-size: 17px;
        line-height: 1.4;
    }

    .board-preview-list li {
        gap: 10px;
        align-items: flex-start;
        flex-direction: column;
    }

    .board-preview-list .item-date {
        font-size: 11px;
    }

    .cta-banner {
        padding: 48px 0;
    }

    .cta-inner {
        gap: 16px;
        text-align: center;
        align-items: center;
    }

    .cta-text h3 {
        font-size: 22px;
    }

    .cta-actions {
        width: 100%;
        flex-direction: column;
        gap: 10px;
    }

    .footer {
        padding: var(--s-6) 0 var(--s-4);
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--s-4);
    }

    .footer-tel {
        font-size: 20px;
    }

    .floating-btns {
        right: 16px;
        bottom: 16px;
        gap: 10px;
    }

    .float-cta {
        width: 56px;
        height: 56px;
        padding: 0;
        justify-content: center;
    }

    .float-cta .float-label {
        display: none;
    }

    .float-cta .float-icon {
        font-size: 22px;
    }

    .org-tree-block {
        padding: 18px;
        border-radius: 16px;
    }

    .org-tree-root,
    .org-tree-advisors,
    .org-tree-depts {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .org-node,
    .org-node-root,
    .org-node-side,
    .org-node-dept {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .org-tree-block::before,
    .org-tree-block::after,
    .org-tree-row::before,
    .org-tree-row::after {
        display: none !important;
    }

    .org-pills,
    .branch-tags,
    .local-branch-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .org-pills span,
    .branch-tags span,
    .local-branch-grid span {
        width: calc(50% - 4px);
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .discount-badge {
        top: 12px;
        right: 12px;
        font-size: 11px;
        padding: 5px 10px;
    }

    .price-origin {
        font-size: 14px;
    }

    .price-amount,
    .price-sale,
    .price-main {
        font-size: clamp(1.9rem, 8vw, 2.4rem);
        line-height: 1.1;
    }

    .price-meta,
    .price-vat,
    .price-note,
    .price-period {
        font-size: 13px;
    }
}

/* -------------------------------------------------------------------
 * 4. 575px 이하 - 작은 모바일
 * ------------------------------------------------------------------- */
@media (max-width: 575px) {
    h1 {
        font-size: 28px;
    }

    h2 {
        font-size: 24px;
    }

    h3 {
        font-size: 20px;
    }

    .hero-stats,
    .trust-grid,
    .industry-grid {
        grid-template-columns: 1fr;
    }

    .top-utility .utility-right {
        flex-wrap: wrap;
    }

    .shield-card {
        flex-direction: column;
        gap: 8px;
    }

    .org-pills span,
    .branch-tags span,
    .local-branch-grid span {
        width: 100%;
    }

    .mobile-menu {
        width: 100vw;
        max-width: 100vw;
        right: -100vw;
    }

    .mobile-menu.open {
        right: 0;
    }
}

/* -------------------------------------------------------------------
 * 5. 389px 이하 - 초소형 모바일
 * ------------------------------------------------------------------- */
@media (max-width: 389px) {
    .container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .logo-text {
        font-size: 17px;
    }

    .btn,
    .hero-actions .btn,
    .cta-actions .btn,
    .price-card .btn {
        font-size: 14px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .hero-mockup {
        width: 100%;
        padding: 20px 14px;
    }

    .discount-badge {
        position: static;
        display: inline-flex;
        margin-bottom: 10px;
    }

    .floating-btns {
        right: 12px;
        bottom: 12px;
    }
}

/* -------------------------------------------------------------------
 * 6. 모션 최소화
 * ------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .hero-mockup,
    .feature-card:hover,
    .industry-card:hover,
    .org-preview-card:hover {
        transform: none !important;
    }
}
/* ============================================
 * 상임고문 페이지 반응형
 * ============================================ */
@media (max-width: 1024px) {
    .advisory-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .advisory-top {
        gap: 12px;
    }

    .advisory-photo {
        width: 72px;
        height: 72px;
        font-size: 24px;
    }

    .advisory-name {
        font-size: 20px;
    }

    .advisory-role {
        font-size: 13px;
    }

    .advisory-summary {
        font-size: 14px;
    }

    .advisory-tags span {
        font-size: 12px;
        padding: 5px 10px;
    }
}

@media (max-width: 575px) {
    .advisory-top {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .advisory-head {
        text-align: center;
    }

    .advisory-tags {
        justify-content: center;
    }
}
