

:root {
        --primary-color: #2b6cb0; /* 신뢰감 있고 시인성이 높은 블루 */
        --primary-light: #ebf8ff;
        --secondary-color: #319795; /* 심신 안정과 치유를 뜻하는 틸(Teal) */
        --dark-color: #1a202c;
        --light-bg: #f7fafc; /* 눈의 피로를 덜어주는 연한 회색/미색 배경 */
        --accent-color: #f6ad55; /* 경고 및 중요 표시 주황색 */
        --high-contrast-bg: #121212;
        --high-contrast-text: #ffffff;
    }


    /* 접근성 테마 고대비 모드 정의 */
    body.high-contrast {
        background-color: var(--high-contrast-bg) !important;
        color: #ffff00 !important; /* 고대비 노란색 텍스트 */
    }

        body.high-contrast .card,
        body.high-contrast .navbar,
        body.high-contrast section,
        body.high-contrast .tab-content {
            background-color: #1e1e1e !important;
            color: #ffffff !important;
            border: 2px solid #ffff00 !important;
        }

        body.high-contrast .text-muted,
        body.high-contrast p,
        body.high-contrast small {
            color: #e0e0e0 !important;
        }

        body.high-contrast .btn-primary {
            background-color: #ffff00 !important;
            color: #000000 !important;
            font-weight: 900 !important;
            border-color: #ffff00 !important;
        }

        body.high-contrast .btn-outline-primary {
            color: #ffff00 !important;
            border-color: #ffff00 !important;
        }

    body {
        font-family: 'Noto Sans KR', sans-serif;
        background-color: var(--light-bg);
        color: #2d3748;
        line-height: 1.8;
        font-size: 1.1rem;
        transition: all 0.2s ease;
    }

    /* 네비게이션 스타일 */
    .navbar {
        background-color: rgba(255, 255, 255, 0.98);
        backdrop-filter: blur(8px);
        box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        transition: all 0.3s ease;
    }

    .navbar-brand {
        font-weight: 700;
        color: var(--primary-color) !important;
    }

    /* 히어로 디자인 */
    .hero-section {
        background: linear-gradient(135deg, rgba(43, 108, 176, 0.9) 0%, rgba(49, 151, 149, 0.9) 100%), url('https://images.unsplash.com/photo-1573497620053-ea5300f94f21?auto=format&fit=crop&q=80&w=1200') no-repeat center center / cover;
        color: white;
        padding: 150px 0 110px 0;
        border-radius: 0 0 40px 40px;
    }

    .hero-badge {
        background-color: #feebc8;
        color: #c05621;
        font-weight: 700;
        padding: 6px 16px;
        border-radius: 50px;
        display: inline-block;
    }

    /* 커스텀 카드 */
    .card-custom {
        border: none;
        border-radius: 20px;
        box-shadow: 0 8px 24px rgba(0,0,0,0.04);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        background-color: #ffffff;
    }

        .card-custom:hover {
            transform: translateY(-5px);
            box-shadow: 0 12px 30px rgba(0,0,0,0.08);
        }

    /* 탭 가독성 강화 */
    .nav-pills .nav-link {
        color: var(--dark-color);
        background-color: #edf2f7;
        border-radius: 12px;
        padding: 14px 24px;
        font-weight: 600;
        margin: 6px;
        font-size: 1.1rem;
        transition: all 0.3s ease;
        border: 1px solid #e2e8f0;
    }

        .nav-pills .nav-link.active {
            background-color: var(--primary-color);
            color: white;
            border-color: var(--primary-color);
        }

    /* 원형 배지 데코 */
    .effect-icon {
        width: 64px;
        height: 64px;
        background-color: var(--primary-light);
        color: var(--primary-color);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.7rem;
        margin-bottom: 20px;
    }

    /* 타임라인 단계 카드 */
    .step-card {
        border-left: 5px solid var(--primary-color);
        padding-left: 24px;
        margin-bottom: 25px;
        position: relative;
        background: #ffffff;
        border-radius: 0 16px 16px 0;
    }

    .step-number {
        position: absolute;
        left: -22px;
        top: 15px;
        background-color: var(--primary-color);
        color: white;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: bold;
        font-size: 1.1rem;
        box-shadow: 0 3px 6px rgba(0,0,0,0.1);
    }

    /* 우측 하단 플로팅 퀵메뉴 */
    .floating-contact {
        position: fixed;
        bottom: 30px;
        right: 30px;
        z-index: 1000;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .btn-float {
        width: 64px;
        height: 64px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.8rem;
        box-shadow: 0 6px 22px rgba(0,0,0,0.15);
        transition: all 0.3s ease;
    }

        .btn-float:hover {
            transform: scale(1.1);
        }

    .btn-float-call {
        background-color: var(--primary-color);
        color: white !important;
    }

    .btn-float-kakao {
        background-color: #fee500;
        color: #3c1e1e !important;
    }

    /* 웹 접근성 설정 바 (상단 고정형) */
    .accessibility-bar {
        background-color: #edf2f7;
        border-bottom: 1px solid #e2e8f0;
        padding: 8px 0;
        font-size: 0.95rem;
    }

    /* 가격 표시 강조 */
    .pricing-box {
        border-top: 6px solid var(--primary-color);
    }

