/* 기본 리셋 및 폰트 */
* { 
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Pretendard', sans-serif;
}

body {
    line-height: 1.6;
    color: #333;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

body.loaded {
    opacity: 1;
}

.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header */
header {
    background-color: #d1d9e2;
    padding: 15px 0;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo-box-link {
    text-decoration: none; 
    color: inherit;       
    display: inline-block;
}

.logo-box-link:hover .logo {
    color: #fff;
    font-weight: bold;
    font-size: 1.4rem;
}

nav ul {
    list-style: none;
    display: flex;
    gap: 50px;
}

nav ul li a, .logo {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    font-size: 1.4rem;
}

.hamburger {
    display: none; /* PC에서는 숨김 */
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
}
.hamburger span {
    width: 25px;
    height: 3px;
    background-color: #333;
    border-radius: 2px;
}

.mobile-nav {
    display: none;
}

/* Footer */
footer {
    background-color: #1b264f;
    color: #fff;
    padding: 60px 0 20px;
}

.footer-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
}

.footer-logo-circle img {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 40px;
    margin-top: 15px;
}

.info-grid p {
    font-size: 1rem;
    color: #ccc;
}

.info-grid strong {
    color: #fff;
    margin-right: 15px;
    width: 60px;
    display: inline-block;
}

.copyright {
    text-align: center;
    font-size: 0.8rem;
    color: #888;
    margin-top: 50px;
    border-top: 1px solid #2e3b5e;
    padding-top: 20px;
}



/* service */
.section-header { 
    text-align: center; 
    margin-bottom: 50px; 
}

.title-main {
    font-size: 2rem; 
    font-weight: 800; 
    color: #1b264f;
    text-align: center;
    margin-bottom: 20px;
}

.service-container { 
    max-width: 800px; 
    margin: 0 auto 50px; 
    padding: 80px 0; 
    text-align: center; 
    align-items: center;   
    justify-content: center;
}

/* 아코디언 FAQ */
.faq-section { 
    margin-bottom: 60px; 
}

.faq-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1b264f;
    padding-bottom: 2px;
    border-bottom: 2px solid #1b264f; /* 텍스트 아래 라인 */
    display: inline-block;            /* 라인 길이를 텍스트에 맞춤 */
    margin-bottom: 20px;
    margin-top: 10px;
    text-align: center;
}

.accordion-item { 
    background: #fff; 
    border: 1px solid #ddd; border-radius: 8px; margin-bottom: 10px; 
    overflow: hidden; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.05); 
}

.accordion-header {
    padding: 15px 20px; 
    cursor: pointer; 
    display: flex; 
    justify-content: space-between; align-items: center; 
    font-weight: 600; 
    background: #fff; 
    transition: 0.3s; 
    color: #1b265f;
    font-size: 1.35rem;
    line-height: 2.5;
}

.accordion-header:hover { 
    background: #f8f9fa; 
}

.accordion-header::after { 
    content: '▼'; 
    font-size: 12px; 
    color: #1b264f; 
    transition: 0.3s; 
}

.accordion-item.active .accordion-header::after { 
    transform: rotate(180deg); 
}

.accordion-content { 
    max-height: 0; 
    overflow: hidden; 
    transition: max-height 0.3s ease-out; 
    background: #fafafa; 
}

.accordion-content p { 
    padding: 20px; 
    border-top: 1px solid #ddd; font-size: 1rem; 
    color: #333; 
    text-align: left;
    word-break: keep-all;
    font-size: 1.2rem;
}

/* 전화 문의 */
.phone-contact { 
    margin-bottom: 150px; 
    text-align: center;
    margin-top: 100px;
}

.phone-contact img { 
    width: 40px; 
    vertical-align: middle; margin-right: 10px; 
}

.phone-number { 
    font-size: 40px; 
    font-weight: bold; 
    color: #333; 
    vertical-align: middle; 
}


/* 카카오톡 문의 섹션 전체 배경 */
.kakao-section {
    padding: 40px 20px;
    background-color: #f9f9f9;
    text-align: center;
    border-radius: 15px;
    margin: 0 0 150px 0;
}

/* p 태그를 제목처럼 보이게 설정 */
.kakao-title {
    font-size: 2rem; 
    font-weight: 800; 
    color: #1b264f;
    text-align: center;
    margin-bottom: 20px;
    letter-spacing: -0.5px;
}

/* p 태그 설명 부분 */
.kakao-desc {
    color: #333;
    margin-bottom: 25px;
}

/* 카카오톡 버튼 스타일 */
.kakao-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #FEE500; /* 카카오 노랑 */
    color: #191919; /* 카카오 브라운 */
    text-decoration: none;
    padding: 15px 30px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 1.1rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.kakao-btn:hover {
    background-color: #fada0a;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}

.kakao-icon {
    margin-right: 10px;
    font-size: 1.2rem;
}


/* 문의글 작성 폼 */
.form-section { 
    background: #fff; 
    padding: 40px; 
    border-radius: 15px; 
    border: 1px solid #ddd; box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; 
    margin: 0 auto 100px;
    width: 800px;
}

.form-section-header { 
    text-align: center; 
    margin-bottom: 20px; 
}

.inquiry {
    text-align: center;
    margin-bottom: 50px;
}

.form-group { 
    margin-bottom: 15px; 
}

.form-group input, .form-group textarea { 
    width: 100%; 
    padding: 12px; 
    border: 1px solid #ddd; background: #f9f9f9; border-radius: 4px; 
    outline: none; 
    font-size: 1rem;
}

.form-group textarea { 
    height: 150px; 
    resize: none; 
}

.privacy-check { 
    font-size: 1rem; 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    margin-bottom: 20px; 
    color: #333; 
}

.btn-text { 
    background: none; 
    border: none; 
    color: #888; 
    text-decoration: underline; 
    cursor: pointer; 
    font-size: 1rem; 
}

.submit-btn { 
    width: 100%; 
    padding: 15px; 
    background: #1b264f; 
    color: #fff; 
    border: none; 
    border-radius: 4px; 
    font-size: 1.2rem; 
    font-weight: bold; 
    cursor: pointer; 
    transition: 0.3s; 
}

.submit-btn:hover { 
    background: #2c437a; 
}

/* 팝업 모달 */
.modal { 
    display: none; 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: rgba(0,0,0,0.5); 
    z-index: 1000; 

    justify-content: center; 
    align-items: center;
}

.modal-content { 
    background: #fff; 
    width: 90%; 
    max-width: 500px; 
    /* margin: 100px auto;  */
    padding: 30px; 
    border-radius: 10px; 

    position: absolute;    /* 부모(.modal) 기준 절대 위치 */
    top: 50%;             /* 위에서 50% 내려옴 */
    left: 50%;            /* 왼쪽에서 50% 이동 */
    transform: translate(-50%, -50%);
    line-height: 1.5;
    font-size: 1rem;
}

.close-modal { 
    position: absolute; 
    top: 15px; 
    right: 20px; 
    font-size: 24px; 
    cursor: pointer;
}



@media (max-width: 768px) {
    /* 1. 메뉴 숨기기 및 햄버거 노출 */
    .pc-nav { display: none !important; }

    .mobile-nav.active { 
        display: block !important; /* 클릭 시에만 나타남 */
    }

    /* 2. 햄버거 버튼 아이콘 (X자 변신 준비) */
    .hamburger {
        display: flex !important;
        flex-direction: column;
        gap: 5px;
        cursor: pointer;
        z-index: 1100; /* 메뉴보다 위에 있도록 */
        padding: 5px;
    }

    .hamburger span {
        display: block;
        width: 25px;
        height: 3px;
        background-color: #1b264f;
        transition: all 0.3s ease-in-out; /* 부드러운 변신 효과 */
    }

    /* 3. 메뉴가 active일 때 햄버거 -> X자 변신 */
    /* 첫 번째 줄을 45도 회전 */
    .hamburger.active span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }
    /* 두 번째 줄은 투명하게 */
    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }
    /* 세 번째 줄을 -45도 회전 */
    .hamburger.active span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    /* 3. 모바일 메뉴 (가로 한 줄 문제 해결) */
    .mobile-nav {
        display: block;
        max-height: 0;    
        overflow: hidden;  
        width: 100%;
        background: #d1d9e2;
        position: absolute; /* 헤더 아래로 겹치게 */
        top: 60px; /* 헤더 높이에 맞춤 */
        left: 0;
        z-index: 1000;
        border-bottom: none;
        transition: max-height 0.5s ease-in-out, border-bottom 0.3s;
    }

    .mobile-nav.active { 
        display: block !important;
        max-height: 500px; /* 메뉴가 충분히 펼쳐질 수 있는 넉넉한 높이 */
    }

    .mobile-nav ul {
        display: flex !important;
        flex-direction: column !important; /* 가로 -> 세로 강제 전환 */
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
        gap: 0;
    }

    .mobile-nav ul li {
        width: 100%;
        border-bottom: 1px solid #ddd;
        display: flex;
    }

    .mobile-nav ul li a {
        display: block;
        padding: 15px 20px;
        color: #333;
        text-align: center; /* 메뉴 글자 가운데 정렬 */
        text-decoration: none;
        font-weight: 600;
        box-sizing: border-box;
    }

    /* 5. 푸터 텍스트 가운데 정렬 */
    .footer-content {
        flex-direction: column !important;
        text-align: center !important;
        gap: 20px;
    }
    .footer-logo-circle {
        margin: 0 auto 10px !important; /* 로고 중앙 */
    }
    .info-grid {
        grid-template-columns: 1fr !important;
        display: block !important; /* 그리드 해제하고 텍스트 정렬 */
    }
    .info-grid p {
        text-align: center !important;
        margin-bottom: 8px;
    }
    .info-grid strong {
        display: inline-block !important; /* 항목명도 가운데로 */
        width: auto !important;
        margin-right: 10px !important;
    }

    .service-container {
        width: 100%;
        margin: 0;
        padding: 50px 15px;
    }

    .section-header {
        margin-bottom: 20px;
    }

    .title-main, .kakao-title {
        font-size: 1.5rem;
        word-break: keep-all;
    }

    .faq-section {
        margin-bottom: 20px;
    }

    .faq-title {
        font-size: 1.2rem;
        line-height: 1.4;
        word-break: keep-all;
        padding-bottom: 10px;
    }

    .accordion-header {
        font-size: 1.2rem;
        line-height: 1.4;
        word-break: keep-all;
        text-align: left;
    }

    .accordion-header::after { 
        padding-left: 5px;
    }

    .accordion-item.active .accordion-header::after {
        padding-left: 0; 
        padding-right: 5px; 
    }

    .accordion-content p {
        font-size: 1rem;
        word-break: keep-all;
    }

    .kakao-btn { 
        width: 100%; 
        max-width: 300px; 
    }

    /* 1. 폼 전체 컨테이너: 800px 고정 해제 및 너비 조정 */
    .form-section {
        width: 95% !important;        /* 화면 양옆에 약간의 여백만 남기고 꽉 채움 */
        padding: 30px 20px !important; /* 패딩을 줄여 내부 공간 확보 */
        margin: 0 auto 60px !important; /* 아래쪽 여백 조절 */
        box-sizing: border-box;
    }

    /* 2. 상단 헤더 및 안내 문구 간격 조절 */
    .inquiry, .kakao-desc {
        margin-bottom: 30px !important;
        padding: 0 10px;
        font-size: 1rem;
    }

    /* 3. 개인정보 동의 체크 영역: 요소가 겹치지 않게 배치 */
    .privacy-check {
        flex-direction: column !important; /* 체크박스와 버튼을 위아래로 */
        align-items: flex-start !important;
        gap: 10px !important;
        font-size: 0.9rem !important;
    }

    .btn-text {
        padding: 0 !important; /* 버튼 여백 제거 */
    }

    /* 4. 전송 버튼: 모바일 터치에 적합하도록 */
    .submit-btn {
        padding: 12px !important;
        font-size: 1.2rem !important;
    }

    /* 5. 팝업 모달: 화면 높이에 맞춰 위치 조정 */
    .modal-content {
        width: 85% !important;
        margin: 0 auto !important; /* 너무 밑으로 내려가지 않게 조정 */
        padding: 20px !important;
        font-size: 1rem;
        word-break: keep-all;
        line-height: 1.5;
    }

    /* 텍스트 영역 높이 살짝 조절 */
    .form-group textarea {
        height: 120px !important;
    }
}