/* ==========================================================================
   Fix & Safe - 기존 components.css (유지)
   ========================================================================== */
/* 사용자 드롭다운 메뉴 스타일 */
.user-menu-group { position: relative; display: inline-block; }
.btn-user-dropdown { display: flex; align-items: center; gap: 6px; font-size: 15px; color: #333; text-decoration: none; padding: 5px 12px; border: 1px solid #dce1e7; border-radius: 20px; transition: 0.2s; background: #fff; }
.btn-user-dropdown strong { color: #2B549F; font-weight: 800; }
.btn-user-dropdown i { font-size: 12px; color: #999; }

/* 드롭다운 서브메뉴 리스트 */
.user-submenu { position: absolute; top: calc(100% + -2px); right: 0; width: 180px; background: #fff; border: 1px solid #dce1e7; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); padding: 8px 0; list-style: none; display: none; z-index: 1000; }
.user-menu-group:hover .user-submenu { display: block; }
.user-submenu::before { content: ''; position: absolute; top: -6px; right: 20px; width: 10px; height: 10px; background: #fff; border-left: 1px solid #dce1e7; border-top: 1px solid #dce1e7; transform: rotate(45deg); }

/* 메뉴 아이템 스타일 */
.user-submenu li a { display: flex; align-items: center; gap: 10px; padding: 10px 18px; font-size: 14px; color: #555; text-decoration: none; transition: 0.2s; }
.user-submenu li a i { font-size: 14px; color: #aaa; width: 16px; text-align: center; }
.user-submenu li a:hover { background: #f8f9fb; color: #2B549F; }
.user-submenu li a:hover i { color: #2B549F; }
.user-submenu li.divider { height: 1px; background: #f0f0f0; margin: 6px 0; }
.user-submenu li a.logout { color: #e74c3c; }
.user-submenu li a.logout i { color: #e74c3c; }

/* 모바일 전용 사용자 정보 */
.mobile-user-info { padding: 20px; border-bottom: 1px solid #eee; margin-bottom: 10px; font-size: 16px; color: #333; }
.mobile-user-info strong { color: #2B549F; }

   /* 버튼 */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 24px; border-radius: 30px; font-weight: 700; font-size: 15px; transition: 0.3s; text-decoration: none; }
.btn-primary { background: #2B549F; color: #fff; }
.btn-outline-primary { border: 1px solid #FB694C; color: #FB694C; background: #fff; }
.btn-full { width: 100%; }
.btn-white-round { background: #fff; color: #333; padding: 8px 22px; border-radius: 20px; font-size: 13px; font-weight: 700; border: solid 1px #e1e1e1; }
.main-btn-wrap { margin: 50px auto 0; width: 490px; }

/* 히어로 액션 카드 */
.hero-action-cards { width: 420px; display: flex; flex-direction: column; gap: 20px; }
.action-card { background: #fff; padding: 30px; border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.action-card .card-label { font-size: 13px; color: #888; margin-bottom: 8px; display: block; }
.action-card .card-title { font-size: 19px; font-weight: 700; color: #1a1a1a; margin-bottom: 20px; line-height: 1.4; }

/* 특장점 가로 카드 아이템 */
.feature-item { background: #f8f9fa; border-radius: 20px; padding: 30px 25px; flex: 0 1 calc(33.333% - 14px); min-width: 320px; display: flex; flex-direction: column; align-items: center; text-align: center; transition: transform 0.3s ease; }
.feature-item:hover { transform: translateY(-5px); }
.feature-icon { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; margin-bottom: 15px; }
.feature-icon i { font-size: 24px; color: #2B549F; }
.feature-title { font-size: 18px; font-weight: 800; margin-bottom: 10px; color: #111; }
.feature-desc { color: #666; font-size: 14.5px; line-height: 1.5; word-break: keep-all; }

/* 프로세스 아이템 */
.process-list { display: flex; flex-direction: column; gap: 15px; max-width: 800px; margin: 0 auto; }
.process-item { display: flex; align-items: center; background: #2B549F; border-radius: 100px; padding: 18px 40px 18px 36px; color: #fff; }
.process-icon-circle { width: 64px; height: 64px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 20px; flex-shrink: 0; padding: 14px; }
.process-icon-circle i { font-size: 20px; color: #2B549F; }
.process-text h3 { font-size: 24px; font-weight: 800; color: #FF6B35; }
.process-text p { font-size: 18px; opacity: 0.9; }

/* 안심 시공 사례 (메인용) */
.example-item { flex: 0 1 calc(33.333% - 14px); min-width: 320px; display: flex; flex-direction: column; align-items: left; text-align: left; transition: transform 0.3s ease; }
.example-thumb { margin-bottom: 10px; border-radius: 10px; overflow: hidden; }
.example-title { font-size: 18px; font-weight: 800; color: #111; }

/* 인증 및 배너 */
.patent-item p { text-align: center; line-height: 32px; }
.patent-item dl { margin-top: 50px; display: flex; justify-content: space-evenly; }
.patent-item dd { width: 20%; display: flex; flex-direction: column; align-items: center; }
.section-banner .container div a { display: inline-flex; align-items: center; justify-content: center; padding: 14px 24px; border-radius: 30px; font-weight: 700; font-size: 15px; background-color: #FB694C; color: #fff; text-decoration: none; }

/* 실시간 의뢰 현황 롤링 섹션 */
.fx-live-rolling-bar { background: #f8f9fb; border-bottom: 1px solid #eef0f3; height: 54px; overflow: hidden; position: relative; z-index: 5; }
.fx-live-rolling-bar .rolling-container { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; height: 100%; padding: 0 20px; }
.fx-rolling-label { background: #2B549F; color: #fff; padding: 5px 14px; border-radius: 4px; font-size: 13px; font-weight: 700; margin-right: 25px; white-space: nowrap; flex-shrink: 0; }
.fx-rolling-label i { margin-right: 6px; font-size: 11px; vertical-align: middle; }
.fx-rolling-viewport { flex: 1; height: 26px; overflow: hidden; position: relative; }
ul.fx-rolling-list { list-style: none !important; padding: 0 !important; margin: 0 !important; position: absolute; width: 100%; top: 0; left: 0; }
ul.fx-rolling-list li { height: 26px !important; line-height: 26px !important; font-size: 14px !important; color: #666 !important; display: flex !important; align-items: center !important; gap: 15px !important; border: none !important; background: none !important; padding: 0 !important; }
.fx-rolling-list .r-user { font-weight: 700; color: #333; min-width: 55px; }
.fx-rolling-list .r-fac { color: #2B549F; font-weight: 600; padding: 0 10px; border-left: 1px solid #ddd; border-right: 1px solid #ddd; }
.fx-rolling-list .r-work { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #444; }
.fx-rolling-list .r-date { color: #bbb; font-size: 12px; margin-left: auto; }

/* ==========================================================================
   Add: 견적 신청 페이지 전용 스타일 (충돌 방지 격리)
   ========================================================================== */
.section-estimate { background-color: #f1f3f7; padding: 60px 0 100px; }
.estimate-narrow-wrap { max-width: 760px; margin: 0 auto; }

/* 폼 카드 스타일 */
.section-estimate .form-card { background: #fff; border-radius: 15px; padding: 40px; margin-bottom: 25px; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
.section-estimate .card-title-wrap { display: flex; align-items: center; gap: 10px; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid #eee; }
.section-estimate .card-title-wrap i { font-size: 22px; color: #2B549F; }
.section-estimate .card-title-wrap h2 { font-size: 20px; font-weight: 700; color: #333; margin: 0; }

/* 입력 폼 요소 */
.section-estimate .form-group { margin-bottom: 20px; }
.section-estimate label { display: block; font-size: 14px; font-weight: 600; color: #333; margin-bottom: 8px; }
.section-estimate label span { color: #f44336; margin-left: 3px; }
.section-estimate .form-control { width: 100%; border: 1px solid #e0e4e9; border-radius: 8px; padding: 12px 15px; font-size: 15px; box-sizing: border-box; }
.section-estimate .input-tip { font-size: 12px; color: #2B549F; margin-top: 5px; }

/* 주소 및 그리드 */
.section-estimate .address-flex-group { display: flex; gap: 8px; }
.section-estimate .btn-address { background: #333; color: #fff; border: none; border-radius: 8px; padding: 0 20px; font-size: 14px; cursor: pointer; white-space: nowrap; }
.section-estimate .input-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }

/* 태그 및 긴급도 선택기 */
.section-estimate .tag-selector,
.section-estimate .urgency-selector { display: flex; gap: 10px; flex-wrap: wrap; }
.section-estimate .tag-selector input,
.section-estimate .urgency-selector input { display: none; }
.section-estimate .tag-selector span,
.section-estimate .urgency-selector span {
    display: inline-block; padding: 10px 20px; background: #fff; border: 1px solid #e0e4e9;
    border-radius: 25px; cursor: pointer; font-size: 14px; transition: 0.3s;
}
.section-estimate .tag-selector input:checked + span { background: #2B549F; color: #fff; border-color: #2B549F; }
.section-estimate .urgency-selector input:checked + span.emergency { background: #ff4d00; color: #fff; border-color: #ff4d00; font-weight: 700; }

/* ==========================================================================
   견적 신청 페이지 하단 버튼 커스텀 - Single-line Style
   ========================================================================== */
.estimate-action-wrap { text-align: center; margin-bottom: 40px; }
.estimate-btn-grid { display: flex; justify-content: center; gap: 15px; max-width: 760px; margin: 0 auto 25px; }
.estimate-btn-grid .btn-guest { width: 100%; height: 60px; background: #fff; color: #333; border: 1px solid #dce1e7; border-radius: 12px; font-size: 16px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: 0.2s; }
.estimate-btn-grid .btn-guest:hover { background: #f8f9fb; border-color: #2B549F; color: #2B549F; }
.estimate-btn-grid .btn-member { width: 100%; height: 60px; background: #2B549F; color: #fff; border: none; border-radius: 12px; font-size: 16px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: 0.2s; }
.estimate-btn-grid .btn-member span { color: #FFD400; margin-right: 6px; }
.estimate-btn-grid .btn-member:hover { background: #1e3d7a; }
.estimate-notice-group { display: flex; flex-direction: column; gap: 6px; align-items: center; justify-content: center; text-align: center; }
.estimate-notice-text { font-size: 14px; color: #777; letter-spacing: -0.3px; line-height: 1.4; margin: 0; position: relative; padding-left: 12px; }
.estimate-notice-text::before { content: '•'; position: absolute; left: 0; color: #ccc; }

/* 견적 페이지 내 사진 업로드 스타일 */
.section-estimate .photo-upload-container { margin-top: 20px; }
.section-estimate .photo-label { font-size: 15px; font-weight: 700; color: #333; margin-bottom: 12px; display: block; }
.section-estimate .photo-flex-row { display: flex; align-items: center; gap: 15px; }

.section-estimate .photo-upload-box {
    display: flex; align-items: center; gap: 12px;
}

.section-estimate .upload-btn {
    width: 80px; height: 80px; background: #f8f9fa; border: 1px dashed #ddd;
    border-radius: 10px; display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: 0.3s;
}
.section-estimate .upload-btn:hover { background: #eef2f8; border-color: #2B549F; }
.section-estimate .upload-btn i { font-size: 24px; color: #aaa; }

.section-estimate .upload-text { font-size: 14px; color: #888; margin-bottom: 12px; line-height: 1.4; }

/* 미리보기 이미지 스타일 */
.section-estimate .photo-preview-group { display: flex; gap: 10px; }
.section-estimate .preview-item {
    width: 80px; height: 80px; border-radius: 10px; overflow: hidden;
    border: 1px solid #eee; position: relative;
}
.section-estimate .preview-item img { width: 100%; height: 100%; object-fit: cover; }

.section-estimate .mt-20 { margin-top: 20px; }

/* ==========================================================================
   견적 완료 페이지 전용 - 메인 페이지 보호를 위한 클래스 격리
   ========================================================================== */

.section-estimate-success { background-color: #f1f3f7; padding: 150px 0 100px; min-height: 80vh; }

/* 카드 너비 확장: 420px -> 760px 유지 */
.section-estimate-success .success-card-wrapper { max-width: 760px; margin: 0 auto; width: 100%; }

.section-estimate-success .success-card {
    background: #fff; border-radius: 20px; padding: 60px 50px; text-align: center;
    box-shadow: 0 10px 40px rgba(0,0,0,0.05);
}

/* 체크 아이콘 및 타이틀 */
.section-estimate-success .check-circle {
    width: 80px; height: 80px; background: #e9f2ff; color: #007bff;
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-size: 32px; margin: 0 auto 25px;
}
.section-estimate-success .success-title { font-size: 32px; font-weight: 800; color: #1a1a1a; margin-bottom: 15px; }
.section-estimate-success .success-subtitle { font-size: 16px; color: #666; margin-bottom: 40px; }

/* 향후 진행 프로세스 안내 문구 스타일 */
.section-estimate-success .process-info-box {
    background: #fcfcfc; border: 1px solid #eee; border-radius: 15px;
    padding: 35px; text-align: left; margin-bottom: 40px;
}
.section-estimate-success .process-box-title { font-size: 16px; color: #007bff; font-weight: 700; margin-bottom: 25px; }
.section-estimate-success .process-steps { list-style: none; padding: 0; margin: 0; }
.section-estimate-success .step-item { display: flex; gap: 15px; margin-bottom: 20px; }
.section-estimate-success .step-dot { width: 8px; height: 8px; background: #ddd; border-radius: 50%; margin-top: 6px; flex-shrink: 0; }
.section-estimate-success .step-item.active .step-dot { background: #007bff; }
.section-estimate-success .step-txt strong { display: block; font-size: 16px; color: #333; margin-bottom: 4px; }
.section-estimate-success .step-txt p { font-size: 14px; color: #888; margin: 0; }

/* 버튼 (메인의 .btn과 충돌 방지) */
.section-estimate-success .btn-success-blue {
    display: block; width: 100%; background: #007bff; color: #fff; padding: 20px;
    border-radius: 12px; font-size: 18px; font-weight: 700; text-decoration: none; margin-bottom: 12px;
}
.section-estimate-success .btn-success-white {
    display: block; width: 100%; background: #fff; color: #333; padding: 20px;
    border-radius: 12px; font-size: 18px; font-weight: 700; text-decoration: none; border: 1px solid #ddd;
}

.section-estimate-success .kakao-notice-bar { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 30px; font-size: 14px; color: #888; }

/* 서브 비주얼 영역 (estimate.php와 동일 사이즈) */
.sub-visual { padding: 70px 0; background: #2B549F; color: #fff; text-align: center; }
.sub-visual .sub-title { font-size: 32px; font-weight: 800; margin-bottom: 12px; }
.sub-visual .sub-description { font-size: 16px; opacity: 0.8; }

/* 시공사례 리스트 섹션 */
.section-work-list { padding: 60px 0 100px; background: #fff; }

/* 1. 검은색 캡슐 키워드 필터 */
.section-work-list .keyword-filter-wrap { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 30px; }
.section-work-list .kw-item {
    padding: 10px 22px; background: #444; color: #fff; border-radius: 50px;
    font-size: 14px; text-decoration: none; font-weight: 500; transition: 0.3s;
}
.section-work-list .kw-item.active { background: #111; }

/* 2. 아이콘 메뉴 행 */
.section-work-list .icon-nav-row { display: flex; gap: 12px; margin-bottom: 50px; }
.section-work-list .nav-item {
    flex: 1; background: #f5f6f8; border-radius: 8px; padding: 15px 5px;
    text-align: center; cursor: pointer; border: 1px solid transparent;
}
.section-work-list .nav-item.active { background: #fff; border-color: #eee; box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
.section-work-list .nav-icon { height: 32px; margin-bottom: 8px; display: flex; align-items: center; justify-content: center; }
.section-work-list .nav-icon img { height: 100%; object-fit: contain; }
.section-work-list .nav-item span { font-size: 13px; color: #333; font-weight: 600; }

/* 3. 4열 카드 그리드 */
.section-work-list .work-grid-container {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 20px;
}
.section-work-list .card-img-box { width: 100%; aspect-ratio: 1.5 / 1; border-radius: 12px; overflow: hidden; margin-bottom: 15px; }
.section-work-list .card-img-box img { width: 100%; height: 100%; object-fit: cover; }

.section-work-list .card-subject { font-size: 17px; font-weight: 700; color: #111; margin-bottom: 8px; }
.section-work-list .card-summary { font-size: 14px; color: #666; line-height: 1.5; margin-bottom: 8px; }
.section-work-list .card-info-text { font-size: 12px; color: #aaa; margin-bottom: 8px; }
.section-work-list .card-hash-tags { font-size: 13px; color: #333; font-weight: 600; }

/* 4. 더보기 버튼 */
.section-work-list .list-more-action { margin-top: 60px; text-align: center; }
.section-work-list .btn-work-more {
    padding: 15px 60px; background: #fff; border: 1px solid #ddd; border-radius: 30px;
    font-size: 16px; font-weight: 600; cursor: pointer;
}

/* ==========================================================================
   안심시공사례 상세 전용 (work_list_view.php)
   ========================================================================== */
.section-work-view { padding: 60px 0 120px; background: #fff; }

/* 헤더 영역 */
.section-work-view .view-header { border-bottom: 1px solid #eee; padding-bottom: 30px; margin-bottom: 40px; }
.section-work-view .category-path { font-size: 14px; color: #2B549F; font-weight: 600; margin-bottom: 10px; }
.section-work-view .view-title { font-size: 32px; font-weight: 800; color: #111; line-height: 1.4; margin-bottom: 20px; }
.section-work-view .view-meta { font-size: 14px; color: #888; display: flex; align-items: center; gap: 15px; }
.section-work-view .view-meta .bar { width: 1px; height: 12px; background: #ddd; }

/* 본문 내용 */
.section-work-view .view-content { max-width: 900px; margin: 0 auto; }
.section-work-view .summary-info-box { background: #f8f9fa; padding: 25px; border-radius: 12px; margin-bottom: 40px; }
.section-work-view .summary-info-box ul { list-style: none; padding: 0; margin: 0; }
.section-work-view .summary-info-box li { font-size: 16px; margin-bottom: 10px; color: #444; }
.section-work-view .summary-info-box li strong { color: #111; margin-right: 10px; width: 80px; display: inline-block; }

.section-work-view .img-wrap { margin: 40px 0; }
.section-work-view .img-wrap img { width: 100%; border-radius: 12px; }
.section-work-view .img-caption { text-align: center; font-size: 14px; color: #888; margin-top: 15px; }
.section-work-view .text-wrap { font-size: 18px; line-height: 1.8; color: #333; margin: 30px 0; }

.section-work-view .view-tags { margin-top: 50px; padding-top: 30px; border-top: 1px dashed #ddd; }
.section-work-view .tag { display: inline-block; background: #eee; padding: 5px 15px; border-radius: 4px; font-size: 14px; color: #666; margin-right: 8px; }

/* 하단 버튼 */
.section-work-view .view-footer-btns { margin-top: 60px; display: flex; justify-content: center; gap: 15px; }
.section-work-view .btn-list-back { padding: 18px 40px; border: 1px solid #ddd; border-radius: 8px; color: #666; text-decoration: none; font-weight: 600; }
.section-work-view .btn-estimate-now { padding: 18px 40px; background: #2B549F; color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; }

/* ==========================================================================
   안전 & 법규 가이드 전용 (guide_list.php)
   ========================================================================== */
.guide-visual { background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('../img/guide-bg.jpg') no-repeat center/cover; }

.section-guide-list { padding: 60px 0 100px; background: #fff; }

/* 1. 카테고리 필터 (검은색 캡슐형 스타일) */
.section-guide-list .guide-filter-wrap { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 40px; }
.section-guide-list .filter-item {
    padding: 10px 22px; background: #f5f6f8; color: #666; border-radius: 50px;
    font-size: 14px; text-decoration: none; font-weight: 500; transition: 0.3s;
}
.section-guide-list .filter-item.active { background: #111; color: #fff; }

/* 2. 가이드 그리드 (3열) */
.section-guide-list .guide-grid-container {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px 30px;
}

.section-guide-list .guide-item a { text-decoration: none; display: block; }

.section-guide-list .guide-thumb {
    position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px;
    overflow: hidden; margin-bottom: 20px; background: #eee;
}
.section-guide-list .guide-thumb img { width: 100%; object-fit: cover; transition: 0.5s; }
.section-guide-list .guide-item:hover .guide-thumb img { transform: scale(1.05); }

/* 카테고리 배지 */
.section-guide-list .category-badge {
    position: absolute; top: 15px; left: 15px; z-index: 2;
    padding: 5px 12px; background: rgba(43, 84, 159, 0.9); color: #fff;
    font-size: 12px; font-weight: 600; border-radius: 4px;
}

.section-guide-list .guide-subject {
    font-size: 19px; font-weight: 700; color: #111; margin-bottom: 12px;
    line-height: 1.4; word-break: keep-all;
}
.section-guide-list .guide-summary {
    font-size: 15px; color: #666; line-height: 1.6; margin-bottom: 15px;
    height: 4.8em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
}
.section-guide-list .guide-date { font-size: 13px; color: #aaa; }

/* 3. 더보기 버튼 */
.section-guide-list .list-more-action { margin-top: 60px; text-align: center; }
.section-guide-list .btn-guide-more {
    padding: 16px 60px; background: #fff; border: 1px solid #ddd; border-radius: 8px;
    font-size: 16px; font-weight: 600; cursor: pointer; color: #444; transition: 0.3s;
}
.section-guide-list .btn-guide-more:hover { background: #f8f9fa; border-color: #bbb; }

/* ==========================================================================
   안전 & 법규 가이드 상세 전용 (guide_view.php)
   ========================================================================== */
.section-guide-view { padding: 60px 0 120px; background: #fff; }

.section-guide-view .view-header { border-bottom: 2px solid #111; padding-bottom: 30px; margin-bottom: 50px; }
.section-guide-view .category-path { font-size: 14px; color: #2B549F; font-weight: 600; margin-bottom: 12px; }
.section-guide-view .view-title { font-size: 30px; font-weight: 800; color: #111; line-height: 1.4; margin-bottom: 20px; word-break: keep-all; }
.section-guide-view .view-meta { font-size: 14px; color: #999; display: flex; align-items: center; gap: 15px; }
.section-guide-view .type-badge { color: #111; font-weight: 700; }
.section-guide-view .view-meta .bar { width: 1px; height: 12px; background: #ddd; }

.section-guide-view .view-content { max-width: 860px; margin: 0 auto; }

/* 법규 강조 박스 */
.section-guide-view .law-notice-box {
    background: #fff4f4; border: 1px solid #fecaca; border-radius: 12px;
    padding: 25px; display: flex; gap: 20px; margin-bottom: 50px;
}
.section-guide-view .law-notice-box .box-icon { color: #dc2626; font-size: 24px; }
.section-guide-view .law-notice-box strong { display: block; font-size: 17px; color: #111; margin-bottom: 8px; }
.section-guide-view .law-notice-box p { font-size: 15px; color: #666; margin: 0; line-height: 1.6; }

/* 본문 스타일링 */
.section-guide-view .content-detail h3 { font-size: 22px; font-weight: 700; color: #111; margin: 40px 0 20px; }
.section-guide-view .content-detail p { font-size: 17px; line-height: 1.8; color: #444; margin-bottom: 20px; }

/* 체크리스트 블록 */
.section-guide-view .check-list-block { background: #f8f9fa; padding: 30px; border-radius: 12px; margin: 30px 0; }
.section-guide-view .check-list-block ul { list-style: none; padding: 0; margin: 0; }
.section-guide-view .check-list-block li {
    position: relative; padding-left: 25px; margin-bottom: 12px;
    font-size: 16px; color: #333; font-weight: 500;
}
.section-guide-view .check-list-block li::before {
    content: '\f00c'; font-family: 'Font Awesome 5 Free'; font-weight: 900;
    position: absolute; left: 0; color: #2B549F;
}

.section-guide-view .img-wrap { margin: 40px 0; text-align: center; }
.section-guide-view .img-wrap img { width: 100%; border-radius: 8px; }
.section-guide-view .img-caption { font-size: 14px; color: #888; margin-top: 12px; }

/* 하단 버튼 (이전 상세페이지와 통일) */
.section-guide-view .view-footer-btns { margin-top: 80px; display: flex; justify-content: center; gap: 15px; border-top: 1px solid #eee; padding-top: 40px; }
.section-guide-view .btn-list-back { padding: 18px 40px; border: 1px solid #ddd; border-radius: 8px; color: #666; text-decoration: none; font-weight: 600; }
.section-guide-view .btn-estimate-now { padding: 18px 40px; background: #111; color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; }

/* ==========================================================================
   고객센터 공지사항 전용 (notice_list.php)
   ========================================================================== */
.customer-visual { background: #2B549F; }

.section-notice-list { padding: 60px 0 100px; background: #fff; }

/* 탭 메뉴 스타일 */
.section-notice-list .customer-tabs { display: flex; justify-content: center; margin-bottom: 50px; border-bottom: 1px solid #eee; }
.section-notice-list .tab-item {
    padding: 15px 40px; font-size: 18px; font-weight: 600; color: #999;
    text-decoration: none; position: relative;
}
.section-notice-list .tab-item.active { color: #111; }
.section-notice-list .tab-item.active::after {
    content: ''; position: absolute; bottom: -1px; left: 0; width: 100%;
    height: 3px; background: #2B549F;
}

/* 검색바 */
.section-notice-list .board-search-bar { display: flex; justify-content: flex-end; margin-bottom: 20px; }
.section-notice-list .board-search-bar form { display: flex; gap: 5px; }
.section-notice-list .search-select { padding: 0 15px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; }
.section-notice-list .search-input-wrap { position: relative; width: 250px; }
.section-notice-list .search-input-wrap input { width: 100%; padding: 10px 45px 10px 15px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; }
.section-notice-list .search-input-wrap button { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); background: none; border: none; padding: 10px; color: #666; cursor: pointer; }

/* 게시판 테이블 */
.section-notice-list .notice-table-wrap { border-top: 2px solid #111; margin-bottom: 40px; }
.section-notice-list .notice-table { width: 100%; border-collapse: collapse; }
.section-notice-list .notice-table th { padding: 18px 10px; background: #f9f9f9; border-bottom: 1px solid #eee; font-size: 15px; color: #333; }
.section-notice-list .notice-table td { padding: 20px 10px; border-bottom: 1px solid #eee; text-align: center; font-size: 15px; color: #666; }

.section-notice-list .notice-table .col-title { text-align: left; padding-left: 30px; }
.section-notice-list .notice-table .col-title a { color: #333; text-decoration: none; font-weight: 500; }
.section-notice-list .notice-table .col-title a:hover { color: #2B549F; text-decoration: underline; }

/* 공지용 강조 */
.section-notice-list .notice-table .is-notice { background: #fdfdfd; }
.section-notice-list .badge-notice { background: #2B549F; color: #fff; padding: 3px 10px; border-radius: 4px; font-size: 12px; font-weight: 600; }

/* 페이지네이션 */
.section-notice-list .pagination { display: flex; justify-content: center; gap: 5px; margin-top: 40px; }
.section-notice-list .pg-btn, .section-notice-list .pg-num {
    display: flex; align-items: center; justify-content: center; width: 40px; height: 40px;
    border: 1px solid #ddd; color: #666; text-decoration: none; font-size: 14px; border-radius: 4px;
}
.section-notice-list .pg-num.active { background: #2B549F; color: #fff; border-color: #2B549F; }

/* ==========================================================================
   고객센터 공지사항 상세 (notice_view.php)
   ========================================================================== */
.section-notice-view { padding: 60px 0 120px; background: #fff; }

/* 헤더 */
.section-notice-view .view-header { border-bottom: 2px solid #111; padding-bottom: 30px; margin-bottom: 40px; }
.section-notice-view .view-category { display: inline-block; color: #2B549F; font-weight: 700; font-size: 15px; margin-bottom: 15px; }
.section-notice-view .view-title { font-size: 28px; font-weight: 800; color: #111; line-height: 1.4; margin-bottom: 20px; }
.section-notice-view .view-meta { display: flex; align-items: center; gap: 15px; font-size: 14px; color: #999; }
.section-notice-view .view-meta .bar { width: 1px; height: 12px; background: #ddd; }

/* 본문 영역 */
.section-notice-view .view-content { padding-bottom: 60px; border-bottom: 1px solid #eee; }
.section-notice-view .content-text { font-size: 17px; line-height: 1.8; color: #444; word-break: keep-all; }

/* 첨부파일 */
.section-notice-view .attachment-box { margin-top: 50px; padding: 20px; background: #f9f9f9; border-radius: 8px; display: flex; gap: 20px; align-items: center; }
.section-notice-view .attach-label { font-size: 14px; font-weight: 700; color: #333; }
.section-notice-view .attach-list a { font-size: 14px; color: #666; text-decoration: none; }
.section-notice-view .attach-list a:hover { color: #2B549F; text-decoration: underline; }

/* 이전/다음글 네비게이션 */
.section-notice-view .post-navigation { border-bottom: 1px solid #eee; }
.section-notice-view .nav-row { display: flex; align-items: center; padding: 20px; border-top: 1px solid #eee; font-size: 15px; }
.section-notice-view .nav-label { width: 100px; color: #888; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.section-notice-view .nav-link { color: #333; text-decoration: none; }
.section-notice-view .nav-link:hover { color: #2B549F; }
.section-notice-view .nav-no-link { color: #bbb; }

/* 버튼 */
.section-notice-view .view-footer-action { margin-top: 50px; text-align: center; }
.section-notice-view .btn-back-list {
    display: inline-block; padding: 15px 50px; background: #333; color: #fff;
    border-radius: 4px; font-weight: 600; text-decoration: none; transition: 0.3s;
}
.section-notice-view .btn-back-list:hover { background: #000; }

/* ==========================================================================
   자주 묻는 질문 전용 (faq_list.php)
   ========================================================================== */
.section-faq-list { padding: 60px 0 120px; background: #fff; }

/* 탭 메뉴 (notice_list와 동일) */
.section-faq-list .customer-tabs { display: flex; justify-content: center; margin-bottom: 40px; border-bottom: 1px solid #eee; }
.section-faq-list .tab-item { padding: 15px 40px; font-size: 18px; font-weight: 600; color: #999; text-decoration: none; position: relative; }
.section-faq-list .tab-item.active { color: #111; }
.section-faq-list .tab-item.active::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100%; height: 3px; background: #2B549F; }

/* FAQ 필터 (캡슐형 스타일) */
.section-faq-list .faq-filter { display: flex; justify-content: center; gap: 10px; margin-bottom: 50px; }
.section-faq-list .filter-btn { padding: 8px 20px; background: #f5f6f8; border-radius: 30px; font-size: 14px; text-decoration: none; color: #666; transition: 0.3s; }
.section-faq-list .filter-btn.active { background: #111; color: #fff; }

/* 아코디언 스타일 */
.section-faq-list .faq-accordion { max-width: 900px; margin: 0 auto; border-top: 1px solid #111; }
.section-faq-list .faq-item { border-bottom: 1px solid #eee; }

.section-faq-list .faq-question {
    display: flex; align-items: center; padding: 25px 20px; cursor: pointer;
    transition: background 0.2s;
}
.section-faq-list .faq-question:hover { background: #f9f9f9; }

.section-faq-list .q-badge { font-weight: 800; font-size: 20px; color: #2B549F; margin-right: 20px; }
.section-faq-list .q-text { font-size: 17px; font-weight: 600; color: #333; flex: 1; }
.section-faq-list .arrow-icon { color: #ccc; transition: 0.3s; }

/* 활성화 상태 (Active) */
.section-faq-list .faq-item.active .faq-question { background: #f8f9fa; }
.section-faq-list .faq-item.active .arrow-icon { transform: rotate(180deg); color: #2B549F; }
.section-faq-list .faq-item.active .faq-answer { display: block; }

/* 답변 영역 */
.section-faq-list .faq-answer { display: none; background: #fdfdfd; padding: 20px 30px 30px 60px; }
.section-faq-list .a-box { font-size: 16px; line-height: 1.8; color: #666; word-break: keep-all; }

/* 하단 안내 */
.section-faq-list .faq-footer-info { margin-top: 60px; text-align: center; padding: 30px; background: #f1f3f7; border-radius: 12px; }
.section-faq-list .faq-footer-info p { font-size: 15px; color: #444; }
.section-faq-list .faq-footer-info strong { color: #2B549F; }

/* ==========================================================================
   로그인(Login) 페이지 컴포넌트 - 가로 확장 및 버튼 추가 버전
   ========================================================================== */
.section-login { padding: 150px 0; background-color: #f1f3f7; }
.login-narrow-wrap { max-width: 520px; margin: 0 auto; padding: 0 20px; } /* 가로폭 확장 */
.login-card { background: #fff; padding: 50px; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }

.login-header { text-align: center; margin-bottom: 35px; }
.login-header h2 { font-size: 26px; font-weight: 800; color: #111; margin-bottom: 10px; }
.login-header p { color: #888; font-size: 15px; }

.login-group { margin-bottom: 20px; }
.login-form .form-control { width: 100%; height: 54px; border: 1px solid #dce1e7; border-radius: 8px; padding: 0 18px; background: #fff; font-size: 15px; box-sizing: border-box; }

.login-utility { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; }
.remember-me { display: flex; align-items: center; cursor: pointer; gap: 8px; font-size: 14px; color: #666; }
.find-links { font-size: 13px; color: #888; }
.find-links .bar { display: inline-block; width: 1px; height: 10px; background: #ddd; margin: 0 8px; }

.btn-login-submit { width: 100%; height: 60px; background: #2B549F; color: #fff; border: none; border-radius: 8px; font-size: 17px; font-weight: 700; cursor: pointer; transition: 0.2s; }
.login-signup-guide { text-align: center; margin-top: 25px; font-size: 14px; color: #777; }
.login-signup-guide a { color: #2B549F; font-weight: 700; text-decoration: none; margin-left: 5px; }

.social-divider { text-align: center; margin: 35px 0 20px; position: relative; }
.social-divider::before { content: ''; position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: #eee; }
.social-divider span { position: relative; background: #fff; padding: 0 15px; font-size: 13px; color: #aaa; }

/* 하단 액션 버튼 그룹 */
.login-action-group { display: flex; flex-direction: column; gap: 12px; }
.btn-social.kakao { display: flex; align-items: center; justify-content: center; gap: 10px; background: #FEE500; color: #3c1e1e; height: 54px; border-radius: 8px; font-size: 15px; font-weight: 700; text-decoration: none; }
.btn-guest-check { display: flex; align-items: center; justify-content: center; gap: 10px; background: #fff; color: #555; height: 54px; border: 1px solid #dce1e7; border-radius: 8px; font-size: 15px; font-weight: 700; text-decoration: none; transition: 0.2s; }
.btn-guest-check:hover { background: #f8f9fa; border-color: #ccd2d9; }

/* ==========================================================================
   회원가입(Signup) 페이지 컴포넌트 - 한 줄 정리 스타일
   ========================================================================== */

/* 1. 레이아웃 컨테이너 */
.section-signup { padding: 120px 0 100px; background-color: #f1f3f7; }
.signup-narrow-wrap { max-width: 840px; margin: 0 auto; padding: 0 20px; }
.signup-card { background: #fff; padding: 50px 60px; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }

/* 2. 타이틀 섹션 */
.signup-title-group { display: flex; align-items: center; gap: 12px; margin-bottom: 40px; }
.signup-title-group .main-icon { color: #2B549F; font-size: 26px; }
.signup-title-group h2 { font-size: 22px; font-weight: 800; color: #111; letter-spacing: -0.5px; }

/* 3. 입력 폼 및 그리드 시스템 */
.signup-row { margin-bottom: 25px; }
.signup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-bottom: 25px; }
.input-label { display: block; font-size: 14px; font-weight: 700; color: #333; margin-bottom: 12px; }
.input-guide { font-size: 13px; color: #2B549F; margin-top: 8px; font-weight: 500; }

/* 인풋창 스타일 */
.signup-form .form-control { width: 100%; height: 54px; border: 1px solid #dce1e7; border-radius: 8px; padding: 0 18px; background: #fff; font-size: 15px; color: #111; transition: all 0.2s ease; box-sizing: border-box; }
.signup-form .form-control:focus { border-color: #2B549F; outline: none; box-shadow: 0 0 0 3px rgba(43, 84, 159, 0.05); }
.signup-form .form-control::placeholder { color: #aaa; }

/* 4. 약관 동의 섹션 (image_683635.png 기준) */
.agreement-container { background: #f8f9fb; border-radius: 12px; margin-top: 40px; overflow: hidden; border: 1px solid #e2e7ed; }
.agree-item { display: flex; justify-content: space-between; align-items: center; padding: 18px 25px; }

/* 전체 동의 섹션 */
.agree-item.all-check { background: #f0f3f7; border-bottom: 1px solid #e2e7ed; }
.agree-item.all-check label span { font-weight: 800; font-size: 15px; color: #111; }

/* 개별 항목 */
.agree-item label { display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 14px; color: #444; }
.agree-item input[type="checkbox"] { width: 20px; height: 20px; cursor: pointer; accent-color: #2B549F; }
.btn-view { font-size: 13px; color: #888; text-decoration: none; border-bottom: 1px solid #ccc; transition: 0.2s; }
.btn-view:hover { color: #2B549F; border-color: #2B549F; }

/* 5. 버튼 및 하단 가이드 */
.btn-signup-submit { width: 100%; height: 64px; background: #2B549F; color: #fff; border: none; border-radius: 10px; font-size: 18px; font-weight: 800; margin-top: 40px; cursor: pointer; transition: background 0.2s; }
.btn-signup-submit:hover { background: #1e3d7a; }

.signup-footer { text-align: center; margin-top: 30px; font-size: 14px; color: #777; }
.signup-footer a { color: #2B549F; font-weight: 700; text-decoration: none; margin-left: 5px; }

/* ==========================================================================
   나의 의뢰 관리(My Estimate) 컴포넌트
   ========================================================================== */
.section-my-estimate { padding: 120px 0 100px; background: #f8f9fb; }
.mypage-title-flex { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.mypage-title-group { margin-bottom: 0; } /* 간격 조정 */

/* 신규 작업 의뢰하기 버튼 스타일 */
.btn-new-request { display: flex; align-items: center; gap: 8px; padding: 12px 24px; background: #2B549F; color: #fff; border-radius: 8px; font-size: 15px; font-weight: 700; text-decoration: none; transition: all 0.3s ease; box-shadow: 0 4px 12px rgba(43, 84, 159, 0.2); }
.btn-new-request i { font-size: 16px; }
.btn-new-request:hover { background: #1e3d7a; transform: translateY(-2px); box-shadow: 0 6px 15px rgba(43, 84, 159, 0.3); }

/* 기존 요약 카드와의 간격 최적화 */
.estimate-summary-grid { margin-top: 10px; }

/* 상단 요약 카드 그리드 */
.estimate-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 40px; }
.summary-card { background: #fff; padding: 25px; border-radius: 12px; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 2px solid transparent; transition: 0.3s; }
.summary-card.active { border-color: #28a745; } /* 견적도착 활성화 상태 */
.summary-card .count { display: block; font-size: 32px; font-weight: 800; margin-bottom: 5px; }
.summary-card .count.blue { color: #007bff; }
.summary-card .count.green { color: #28a745; }
.summary-card .count.gray { color: #aaa; }
.summary-card .label { font-size: 15px; font-weight: 600; color: #555; }

/* 리스트 헤더 및 필터 */
.list-header-group { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.list-header-group h4 { font-size: 18px; font-weight: 700; color: #333; }
.form-select-sm { padding: 8px 12px; border: 1px solid #dce1e7; border-radius: 6px; font-size: 14px; color: #555; outline: none; }

/* 의뢰 리스트 카드 아이템 */
.estimate-item-card { background: #fff; border-radius: 12px; padding: 30px; margin-bottom: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.03); display: flex; justify-content: space-between; align-items: center; border: 1px solid #eee; transition: 0.3s; }
.estimate-item-card:hover { border-color: #2B549F; transform: translateY(-3px); }

/* 카드 왼쪽: 정보 영역 */
.item-info-side { flex: 1; }
.badge { display: inline-block; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; margin-bottom: 15px; }
.status-green { background: #28a745; color: #fff; }
.status-orange { background: #ffc107; color: #fff; }
.status-gray { background: #6c757d; color: #fff; }
.item-subject { font-size: 19px; font-weight: 800; color: #111; margin-bottom: 12px; }
.item-meta { display: flex; gap: 15px; color: #888; font-size: 14px; }
.item-meta i { margin-right: 5px; color: #bbb; }

/* 카드 오른쪽: 액션 영역 */
.item-action-side { text-align: center; min-width: 220px; }
.btn-action-primary { display: block; width: 100%; padding: 15px 0; background: #007bff; color: #fff; border-radius: 8px; font-weight: 700; text-decoration: none; margin-bottom: 8px; transition: 0.2s; }
.btn-action-primary:hover { background: #0056b3; }
.btn-action-gray { display: block; width: 100%; padding: 15px 0; background: #e9ecef; color: #555; border-radius: 8px; font-weight: 700; text-decoration: none; transition: 0.2s; }
.btn-action-gray:hover { background: #dee2e6; }
.action-notice { font-size: 12px; color: #999; margin-top: 5px; }
.action-notice.red { color: #dc3545; font-weight: 600; }

/* 견적 상세 페이지 컴포넌트 */
.section-estimate-detail { padding: 120px 0 100px; background: #f8f9fb; }
.detail-top-util { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; gap: 15px; }
.action-btn-group { display: flex; gap: 8px; }
.btn-util-item { background: #fff; border: 1px solid #ddd; padding: 8px 15px; border-radius: 6px; font-size: 13px; color: #666; cursor: pointer; }

/* 견적서 카드 디자인 */
.quotation-card { background: #fff; border: 1px solid #ddd; padding: 50px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); border-top: 5px solid #2B549F; }
.quotation-header { display: flex; justify-content: space-between; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px; }
.title-area h1 { font-size: 32px; letter-spacing: 10px; margin-bottom: 5px; }
.quotation-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 40px; margin-bottom: 40px; }
.info-row { display: flex; border-bottom: 1px solid #f0f0f0; padding-bottom: 8px; }
.info-row .label { width: 80px; color: #999; font-weight: 700; }
.info-row .value { flex: 1; color: #333; font-weight: 600; }

/* 정보 그리드 */
.quotation-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 40px; border-bottom: 1px solid #eee; padding-bottom: 30px; margin-bottom: 40px; }
.info-row { display: flex; align-items: center; font-size: 14px; }
.info-row .label { width: 80px; color: #999; font-weight: 600; }
.info-row .value { color: #333; font-weight: 700; }

/* 견적 테이블 */
.quotation-table-wrap { overflow-x: auto; margin-bottom: 30px; }
.quotation-table { width: 100%; border-collapse: collapse; min-width: 600px; }
.quotation-table th { background: #f9f9f9; padding: 12px; border-top: 1px solid #333; border-bottom: 1px solid #ddd; font-size: 14px; }
.quotation-table td { padding: 15px 12px; border-bottom: 1px solid #eee; text-align: center; }
.quotation-table td.col-name { text-align: left; font-weight: 600; }

.quotation-total-box { background: #f4f7ff; padding: 25px; text-align: right; border-radius: 8px; margin-bottom: 30px; }
.total-text strong { font-size: 24px; color: #2B549F; margin-left: 15px; }

/* 금액 및 특이사항 */
.quotation-total-box { background: #f1f6ff; padding: 30px; border-radius: 10px; text-align: right; margin-bottom: 30px; }
.total-text span { font-size: 15px; color: #555; margin-right: 20px; }
.total-text strong { font-size: 28px; color: #2B549F; font-weight: 900; }
.quotation-note { background: #fffdf0; padding: 25px; border-radius: 8px; border: 1px solid #f9eeb1; }
.quotation-note h6 { font-size: 14px; color: #856404; margin-bottom: 10px; font-weight: 800; }
.quotation-note ul { list-style: none; }
.quotation-note li { font-size: 13px; color: #856404; line-height: 1.8; }

/* 하단 최종 액션 버튼 그룹 */
.quotation-final-action { margin-top: 60px; text-align: center; padding-top: 40px; border-top: 1px dashed #ddd; }
.quotation-final-action p { font-size: 16px; color: #444; margin-bottom: 25px; font-weight: 700; }
.final-btn-group { display: flex; gap: 10px; justify-content: center; align-items: center; margin-bottom: 20px; width: 100%; }
.btn-cancel-order { flex: 1; height: 60px; line-height: 55px; background: #fff; border: 1px solid #ddd; color: #666; border-radius: 8px; text-align: center; font-weight: 600; }
.btn-confirm-order { flex: 2; height: 60px; line-height: 55px; background: #007bff; color: #fff; border-radius: 8px; text-align: center; font-weight: 700; text-decoration: none; transition: 0.3s; }
.btn-re-estimate { flex: 1; height: 60px; line-height: 55px; background: #666; color: #fff; border-radius: 8px; font-weight: 600; cursor: pointer; }
.re-quote-wrapper { background: #f9f9f9; padding: 20px; border-radius: 12px; border: 1px solid #eee; margin-top: 20px; text-align: left; animation: fadeIn 0.3s; }
.re-quote-wrapper textarea { width: 100%; border: 1px solid #ddd; border-radius: 8px; padding: 15px; font-size: 14px; resize: none; height: 80px; margin-bottom: 10px; }
.re-quote-btns { text-align: right; }
.btn-submit-re { background: #2B549F; color: #fff; border: none; padding: 10px 20px; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* 목록으로 버튼 스타일 */
.btn-cancel-order { display: flex; align-items: center; justify-content: center; width: 30%; background: #fff; color: #666; border: 1px solid #dce1e7; border-radius: 12px; font-size: 17px; font-weight: 700; text-decoration: none; transition: all 0.2s ease; box-sizing: border-box; }
.btn-cancel-order:hover { background: #f8f9fa; border-color: #ccd2d9; color: #333; }

/* 시공 승인 버튼 스타일 (기존 유지 및 확장) */
.btn-confirm-order { display: flex; align-items: center; justify-content: center; width: 70%; background: #007bff; color: #fff; border: none; border-radius: 12px; font-size: 18px; font-weight: 800; cursor: pointer; transition: all 0.2s ease; box-sizing: border-box; }
.btn-confirm-order:hover { background: #0056b3; box-shadow: 0 8px 25px rgba(0, 123, 255, 0.2); }

/* ==========================================================================
   나의 의뢰 관리(my_estimate_confirm) 컴포넌트
   ========================================================================== */

/* 레이아웃 공통 */
.section-confirm-order { padding: 120px 0 100px; background: #f8f9fb; }
.confirm-header-title { margin-bottom: 30px; }
.confirm-header-title h2 { font-size: 26px; font-weight: 800; color: #111; }
.confirm-header-title p { color: #888; font-size: 15px; margin-top: 5px; }
.confirm-content-layout { display: flex; gap: 30px; align-items: flex-start; }
.confirm-left-pane { flex: 0 0 65%; min-width: 0; }
.confirm-right-sidebar { flex: 0 0 35%; }
.sticky-sidebar-inner { position: sticky; top: 100px; }

/* 요약 카드 및 5개 이미지 */
.summary-card-full { background: #fff; border-radius: 15px; padding: 40px; border: 1px solid #eef1f5; box-shadow: 0 5px 20px rgba(0,0,0,0.02); margin-bottom: 30px; }
.sub-label { color: #2B549F; font-weight: 700; font-size: 13px; margin-bottom: 10px; display: block; }
.summary-card-full .main-title { font-size: 22px; font-weight: 800; margin-bottom: 25px; }
.info-grid-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 40px; padding-bottom: 30px; border-bottom: 1px solid #f5f5f5; }
.info-item { display: flex; font-size: 15px; }
.info-item strong { width: 100px; color: #999; font-weight: 500; }
.summary-photo-gallery { display: flex; gap: 15px; margin-top: 30px; }
.photo-box { width: calc(20% - 12px); text-align: center; }
.photo-box img { width: 100%; height: 110px; object-fit: cover; border-radius: 10px; border: 1px solid #eee; margin-bottom: 8px; }
.photo-box p { font-size: 12px; color: #999; }

/* 폼 요소 및 주소 검색 (빨간 박스 영역) */
.input-section-box { background: #fff; padding: 35px; border-radius: 12px; border: 1px solid #eef1f5; }
.section-title { font-size: 18px; font-weight: 800; margin-bottom: 25px; display: flex; align-items: center; gap: 10px; }
.inline-form-row { display: flex; gap: 20px; }
.form-item { flex: 1; }
.input-section-box label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 10px; color: #333; }
.form-control-custom, .form-select-custom { width: 100%; height: 50px; padding: 0 15px; border: 1px solid #dce1e7; border-radius: 8px; box-sizing: border-box; outline: none; }
.address-top-line { display: flex; gap: 10px; }
.address-top-line .zip { width: 100px; flex-shrink: 0; }
.btn-address-search { background: #444; color: #fff; border: none; padding: 0 20px; border-radius: 8px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.toggle-switch-group { display: flex; width: 100%; border: 1px solid #dce1e7; border-radius: 8px; overflow: hidden; }
.btn-toggle-item { flex: 1; height: 50px; border: none; background: #fff; color: #888; font-weight: 700; cursor: pointer; transition: 0.2s; }
.btn-toggle-item.active { background: #007bff; color: #fff; }

/* 우측 사이드바 디자인 */
.black-amount-card { background: #1a1a1a; padding: 35px; border-radius: 15px; color: #fff; }
.price-row { display: flex; justify-content: space-between; font-size: 14px; color: #999; margin-bottom: 10px; }
.price-total { border-top: 1px solid #333; margin-top: 25px; padding-top: 25px; display: flex; justify-content: space-between; align-items: center; }
.price-total strong { font-size: 28px; font-weight: 800; }
.white-bank-card { background: #fff; padding: 30px; border-radius: 15px; border: 1px solid #eef1f5; margin: 20px 0; text-align: center; }
.b-num { font-size: 20px; font-weight: 800; margin: 8px 0; }
.btn-final-confirm { width: 100%; height: 70px; background: #2B549F; color: #fff; border: none; border-radius: 12px; font-size: 18px; font-weight: 800; cursor: pointer; transition: 0.3s; }
.btn-final-confirm:hover { background: #1e3d7a; transform: translateY(-3px); }

/* ==========================================================================
   나의 의뢰 관리(my_qna) 컴포넌트
   ========================================================================== */
.section-my-qna { padding: 120px 0 100px; background: #f8f9fb; min-height: 700px; }
.page-header-flex { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 30px; }
.header-text h2 { font-size: 26px; font-weight: 800; color: #111; }
.header-text p { color: #888; font-size: 15px; margin-top: 5px; }

/* 신규 문의 버튼 */
.btn-write-qna { background: #2B549F; color: #fff; border: none; padding: 12px 25px; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.3s; display: flex; align-items: center; gap: 8px; }
.btn-write-qna:hover { background: #1e3d7a; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(43, 84, 159, 0.2); }

/* 필터 및 검색바 */
.qna-filter-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.filter-left { display: flex; gap: 10px; }
.btn-filter { background: #fff; border: 1px solid #ddd; padding: 8px 18px; border-radius: 20px; font-size: 14px; color: #666; cursor: pointer; }
.btn-filter.active { background: #333; color: #fff; border-color: #333; }

.search-box { display: flex; background: #fff; border: 1px solid #ddd; border-radius: 20px; padding: 5px 15px; width: 250px; }
.search-box input { border: none; outline: none; flex: 1; font-size: 14px; padding: 5px; }
.search-box button { background: none; border: none; color: #aaa; cursor: pointer; }

/* 리스트 테이블 */
.qna-list-wrapper { background: #fff; border-radius: 15px; border: 1px solid #eef1f5; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,0.02); }
.qna-table { width: 100%; border-collapse: collapse; }
.qna-table th { background: #fcfcfd; padding: 18px 20px; border-bottom: 1px solid #eee; font-size: 14px; color: #999; font-weight: 500; }
.qna-table td { padding: 20px; border-bottom: 1px solid #f5f5f5; text-align: center; font-size: 15px; }

.qna-table td.title { text-align: left; }
.qna-table td.title a { color: #333; text-decoration: none; font-weight: 600; transition: 0.2s; }
.qna-table td.title a:hover { color: #2B549F; }
.qna-table td.title i { font-size: 12px; color: #ccc; margin-left: 8px; }

/* 상태 배지 */
.badge-answered { background: #e8f5e9; color: #2e7d32; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; }
.badge-waiting { background: #fff3e0; color: #ef6c00; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; }

/* 페이지네이션 */
.pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 40px; }
.pagination a { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 1px solid #ddd; border-radius: 4px; text-decoration: none; color: #666; font-size: 14px; transition: 0.2s; }
.pagination a.active { background: #2B549F; color: #fff; border-color: #2B549F; }
.pagination a:hover:not(.active) { background: #f0f0f0; }

/* 작성 페이지 레이아웃 */
.section-qna-write { padding: 120px 0 100px; background: #f8f9fb; }
.write-card { background: #fff; border-radius: 15px; border: 1px solid #eef1f5; padding: 40px; box-shadow: 0 5px 20px rgba(0,0,0,0.02); }
.write-row { display: flex; align-items: flex-start; margin-bottom: 25px; }
.write-row:last-child { margin-bottom: 0; }
.write-label { width: 160px; font-size: 15px; font-weight: 700; color: #333; padding-top: 14px; }
.write-label .required { color: #ff4d4d; margin-left: 3px; }
.write-input { flex: 1; }

/* 커스텀 폼 요소 */
.form-textarea-custom { width: 100%; height: 250px; padding: 15px; border: 1px solid #dce1e7; border-radius: 8px; font-size: 14px; color: #444; outline: none; resize: none; box-sizing: border-box; }
.form-textarea-custom:focus { border-color: #2B549F; }
.file-upload-wrapper { display: flex; gap: 10px; }
.file-name { flex: 1; background: #fcfcfd; }
.btn-file-select { background: #444; color: #fff; padding: 0 20px; border-radius: 8px; height: 50px; display: flex; align-items: center; cursor: pointer; font-size: 14px; font-weight: 600; }
.hidden-file { display: none; }
.input-guide-text { font-size: 13px; color: #999; margin-top: 8px; }

/* 체크박스 커스텀 */
.checkbox-container { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #666; cursor: pointer; }
.checkbox-container input { width: 18px; height: 18px; cursor: pointer; }

/* 버튼 그룹 */
.write-action-buttons { display: flex; justify-content: center; gap: 15px; margin-top: 40px; }
.btn-list-go { background: #fff; border: 1px solid #dce1e7; color: #666; padding: 0 40px; height: 60px; border-radius: 10px; font-size: 16px; font-weight: 700; cursor: pointer; }
.btn-submit-qna { background: #2B549F; border: none; color: #fff; padding: 0 60px; height: 60px; border-radius: 10px; font-size: 16px; font-weight: 700; cursor: pointer; transition: 0.3s; }
.btn-submit-qna:hover { background: #1e3d7a; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(43, 84, 159, 0.2); }

/* -------상세보기 컨테이너------ */
.section-qna-view { padding: 120px 0 100px; background: #f8f9fb; }
.qna-view-container { background: #fff; border-radius: 15px; border: 1px solid #eef1f5; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,0.02); }

/* 질문 상단 헤더 */
.qna-view-header { padding: 40px; border-bottom: 1px solid #f5f5f5; }
.status-wrap { margin-bottom: 15px; }
.qna-view-title { font-size: 24px; font-weight: 800; color: #111; margin-bottom: 15px; }
.qna-view-info { font-size: 14px; color: #999; display: flex; align-items: center; gap: 15px; }
.qna-view-info strong { color: #666; font-weight: 600; margin-right: 5px; }
.qna-view-info .bar { color: #eee; }

/* 본문 영역 */
.qna-view-content { padding: 40px; font-size: 16px; color: #444; line-height: 1.8; min-height: 200px; }
.qna-attachment-area { padding: 20px 40px; background: #fcfcfd; border-top: 1px dashed #eee; display: flex; align-items: center; gap: 20px; }
.attach-label { font-size: 13px; font-weight: 700; color: #999; }
.btn-download-file { font-size: 14px; color: #2B549F; text-decoration: none; display: flex; align-items: center; gap: 5px; border: 1px solid #d1d9e9; padding: 5px 12px; border-radius: 5px; background: #fff; }

/* 관리자 답변 영역 [포인트 레이아웃] */
.qna-answer-box { background: #f4f7ff; padding: 40px; border-top: 1px solid #e1e8f5; position: relative; }
.qna-answer-box::before { content: '\f3e5'; font-family: 'Font Awesome 5 Free'; font-weight: 900; position: absolute; left: 40px; top: -15px; width: 30px; height: 30px; background: #2B549F; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; transform: rotate(180deg); }
.answer-header { margin-bottom: 20px; padding-left: 10px; }
.admin-badge { background: #2B549F; color: #fff; font-size: 11px; padding: 3px 8px; border-radius: 3px; margin-right: 8px; vertical-align: middle; }
.admin-name { font-size: 16px; color: #333; font-weight: 700; }
.answer-date { font-size: 13px; color: #aaa; margin-left: 10px; }
.answer-content { padding-left: 10px; font-size: 16px; color: #444; line-height: 1.8; }

/* 하단 액션 버튼 */
.qna-view-footer { display: flex; justify-content: space-between; margin-top: 30px; }
.left-btns { display: flex; gap: 10px; }
.btn-qna-delete { background: #fff; border: 1px solid #ffcccc; color: #ff4d4d; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600; }
.btn-qna-edit { background: #fff; border: 1px solid #ddd; color: #666; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600; }
.btn-qna-list { background: #444; color: #fff; border: none; padding: 12px 30px; border-radius: 6px; cursor: pointer; font-weight: 700; }

/* -------------개인정보관리 전용 스타일---------- */
.section-profile-edit { padding: 120px 0 100px; background: #f8f9fb; }
.profile-card { background: #fff; border-radius: 15px; border: 1px solid #eef1f5; padding: 40px; box-shadow: 0 5px 20px rgba(0,0,0,0.02); }

.form-section { padding: 20px 0; }
.form-section-title { font-size: 18px; font-weight: 800; color: #111; margin-bottom: 30px; position: relative; padding-left: 15px; }
.form-section-title::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 16px; background: #2B549F; border-radius: 2px; }

.form-row-item { display: flex; align-items: flex-start; margin-bottom: 20px; }
.form-label { width: 180px; font-size: 15px; font-weight: 700; color: #444; padding-top: 14px; }
.form-input { flex: 1; max-width: 500px; }
.form-input-readonly { flex: 1; max-width: 500px; }

/* 읽기 전용 및 팁 */
.form-control-custom.no-edit { background: #f4f6f9; color: #888; cursor: not-allowed; border-color: #eee; }
.input-tip { display: block; font-size: 12px; color: #999; margin-top: 7px; }

/* 그룹 인풋 */
.flex-input-group { display: flex; gap: 10px; }
.btn-gray-outline { background: #fff; border: 1px solid #ddd; color: #666; padding: 0 15px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }

.divider { height: 1px; background: #f0f0f0; margin: 40px 0; }

/* 버튼 영역 */
.profile-action-buttons { display: flex; justify-content: center; gap: 15px; margin-top: 50px; }
.btn-cancel { background: #fff; border: 1px solid #dce1e7; color: #666; width: 160px; height: 60px; border-radius: 10px; font-size: 16px; font-weight: 700; cursor: pointer; }
.btn-save { background: #2B549F; border: none; color: #fff; width: 220px; height: 60px; border-radius: 10px; font-size: 16px; font-weight: 700; cursor: pointer; transition: 0.3s; }
.btn-save:hover { background: #1e3d7a; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(43, 84, 159, 0.2); }

/* 탈퇴 링크 */
.account-withdrawal { text-align: center; margin-top: 40px; font-size: 14px; color: #999; }
.account-withdrawal a { color: #aaa; text-decoration: underline; margin-left: 10px; }
.account-withdrawal a:hover { color: #666; }

/* ---find_pw.php ---- */
/* 1. 섹션 및 컨테이너 */
.section-find-account { padding: 120px 0; background: #f8f9fb; min-height: calc(100vh - 400px); display: flex; align-items: center; justify-content: center; }
.find-container { width: 420px; margin: 0 auto; background: #fff; border-radius: 20px; box-shadow: 0 15px 40px rgba(0,0,0,0.06); overflow: hidden; transition: all 0.3s ease; }

/* 2. 상단 헤더 영역 */
.find-content-wrap { padding: 45px 35px; }
.find-header { text-align: center; margin-bottom: 35px; }
.icon-circle { width: 60px; height: 60px; background: #f0f4ff; color: #2B549F; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-size: 24px; transition: 0.3s; }
.find-header h3 { font-size: 24px; font-weight: 800; color: #111; margin-bottom: 12px; letter-spacing: -0.5px; }
.find-header p { font-size: 14px; color: #777; line-height: 1.6; word-break: keep-all; }

/* 3. 폼 요소 공통 */
.form-group { margin-bottom: 22px; position: relative; }
.form-group label { display: block; font-size: 14px; font-weight: 700; color: #333; margin-bottom: 8px; }
.form-control { width: 100%; height: 50px; padding: 0 15px; border: 1px solid #ddd; border-radius: 8px; font-size: 15px; transition: 0.2s; }
.form-control:focus { border-color: #2B549F; outline: none; box-shadow: 0 0 0 3px rgba(43, 84, 159, 0.1); }

/* 4. 인증 버튼 및 그룹 */
.flex-group { display: flex; gap: 8px; }
.btn-verify { background: #444; color: #fff; border: none; border-radius: 8px; padding: 0 18px; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: 0.2s; }
.btn-verify:hover { background: #222; }

/* 5. 실행 버튼 (본인확인 & 변경완료) */
.btn-submit-find { width: 100%; height: 58px; background: #2B549F; color: #fff; border: none; border-radius: 10px; font-size: 16px; font-weight: 700; margin-top: 15px; cursor: pointer; transition: 0.3s; box-shadow: 0 4px 10px rgba(43, 84, 159, 0.1); }
.btn-submit-find:hover { background: #1e3d7a; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(43, 84, 159, 0.25); }
.btn-submit-find.reset-btn { background: #28a745; } /* 재설정 단계 버튼 컬러 변경 */
.btn-submit-find.reset-btn:hover { background: #218838; }

/* 6. 알림 메시지 및 팁 */
.input-tip { font-size: 12px; margin-top: 7px; color: #999; }
.input-tip.success-msg { color: #2B549F; font-weight: 600; }

/* 7. 푸터 링크 영역 */
.find-footer { padding: 25px; text-align: center; border-top: 1px solid #f5f5f5; background: #fafbfc; font-size: 14px; color: #888; }
.find-footer a { color: #666; font-weight: 600; text-decoration: none; border-bottom: 1px solid #ddd; padding-bottom: 2px; transition: 0.2s; }
.find-footer a:hover { color: #2B549F; border-color: #2B549F; }

/* 8. 단계 전환 애니메이션 */
#reset-form { animation: slideUp 0.5s ease-out forwards; }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* ----- 리포트 전체 레이아웃 시작 */
.section-work-report { padding: 120px 0; background: #f4f7fa; }
.report-card { background: #fff; border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); padding: 50px; margin-bottom: 30px; }

/* 헤더 영역 */
.report-header { text-align: center; margin-bottom: 40px; border-bottom: 2px solid #f0f0f0; padding-bottom: 30px; }
.badge-status { display: inline-block; padding: 6px 15px; background: #2B549F; color: #fff; border-radius: 20px; font-size: 13px; font-weight: 600; margin-bottom: 15px; }
.report-header h2 { font-size: 28px; color: #111; margin-bottom: 15px; }
.report-meta { color: #888; font-size: 15px; }
.report-meta .bar { margin: 0 15px; color: #ddd; }

/* 요약 정보 그리드 */
.report-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; background: #f9fbff; padding: 25px; border-radius: 12px; margin-bottom: 40px; }
.summary-item .label { display: block; font-size: 13px; color: #777; margin-bottom: 5px; }
.summary-item .value { font-size: 15px; font-weight: 700; color: #333; }
.text-blue { color: #2B549F !important; }

/* 사진 비교 섹션 */
.report-photo-section { margin-bottom: 40px; }
.report-photo-section h3, .report-opinion-section h3 { font-size: 19px; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }
.photo-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.photo-box { background: #fff; border: 1px solid #eee; width: 100%; border-radius: 10px; overflow: hidden; }
.photo-label { padding: 8px; text-align: center; font-size: 13px; font-weight: 700; color: #fff; }
.photo-label.before { background: #888; }
.photo-label.after { background: #28a745; }
.img-wrap { width: 100%; aspect-ratio: 4/3; overflow: hidden; background: #eee; }
.img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.photo-desc { padding: 12px; font-size: 14px; color: #666; text-align: center; }

/* 의견 섹션 */
.opinion-box { background: #f8f9fa; padding: 25px; border-radius: 10px; line-height: 1.7; color: #444; border-left: 4px solid #2B549F; }

/* 품질 보증 하단 */
.report-footer-notice { text-align: center; margin-top: 50px; padding-top: 30px; border-top: 1px dashed #ddd; }
.guarantee-seal { display: inline-flex; align-items: center; gap: 10px; color: #aaa; font-size: 14px; font-style: italic; }

/* 하단 버튼 */
.report-final-action { display: flex; justify-content: center; gap: 15px; }
.btn-list-go { height: 55px; line-height: 55px; padding: 0 40px; background: #fff; border: 1px solid #ddd; border-radius: 8px; font-weight: 600; color: #666; }
.btn-as-request { height: 55px; line-height: 55px; padding: 0 40px; background: #2B549F; color: #fff; border-radius: 8px; font-weight: 600; }

/* ----- 리포트 전체 레이아웃 끝 */

/* ---비회원 견적확인 --- */

/* 공통 섹션 및 카드 레이아웃 */
.section-auth-common { padding: 100px 0; background: #f8f9fb; min-height: calc(100vh - 450px); display: flex; align-items: center; justify-content: center; }
.auth-card { max-width: 450px; width: 100%; margin: 0 auto; background: #fff; border-radius: 20px; box-shadow: 0 15px 40px rgba(0,0,0,0.06); overflow: hidden; }
.auth-card-inner { padding: 45px 35px; }

/* 헤더 영역 */
.auth-header { text-align: center; margin-bottom: 35px; }
.auth-header .icon-circle { width: 64px; height: 64px; background: #f0f4ff; color: #2B549F; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-size: 26px; }
.auth-header h3 { font-size: 24px; font-weight: 800; color: #111; margin-bottom: 12px; letter-spacing: -0.5px; }
.auth-header p { font-size: 14px; color: #777; line-height: 1.5; }
.auth-header p strong { color: #2B549F; font-weight: 600; }

/* 폼 요소 */
.auth-form .form-group { margin-bottom: 20px; }
.auth-form .form-label { display: block; font-size: 14px; font-weight: 700; color: #333; margin-bottom: 8px; text-align: left; }
.auth-form .form-control { width: 100%; height: 55px; border: 1px solid #ddd; border-radius: 10px; padding: 0 15px; font-size: 15px; transition: 0.3s; }
.auth-form .form-control:focus { border-color: #2B549F; outline: none; box-shadow: 0 0 0 3px rgba(43, 84, 159, 0.1); }

/* 안내 박스 및 버튼 */
.info-box-sm { background: #f8f9fa; padding: 12px 15px; border-radius: 8px; margin-bottom: 20px; }
.info-box-sm p { font-size: 12px; color: #888; margin: 0; line-height: 1.4; text-align: left; }
.btn-auth-submit { width: 100%; height: 60px; background: #2B549F; color: #fff; border: none; border-radius: 10px; font-size: 16px; font-weight: 700; cursor: pointer; transition: 0.3s; }
.btn-auth-submit:hover { background: #1e3d7a; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(43, 84, 159, 0.2); }

/* ======= 이용약관 시작 ======= */
.section-terms-page { padding: 120px 0; background: #fff; }
.page-header-center { text-align: center; margin-bottom: 60px; }
.page-header-center h2 { font-size: 32px; font-weight: 800; color: #111; margin-bottom: 15px; }
.page-header-center p { color: #777; font-size: 16px; }

.terms-container { display: flex; gap: 50px; align-items: flex-start; }

/* 사이드바 내비게이션 */
.terms-aside { width: 220px; position: sticky; top: 120px; }
.terms-nav ul { list-style: none; padding: 0; border-left: 2px solid #eee; }
.terms-nav li a { display: block; padding: 10px 20px; color: #666; text-decoration: none; font-size: 14px; transition: 0.3s; }
.terms-nav li a:hover { color: #2B549F; font-weight: 600; }

/* 본문 영역 */
.terms-content { flex: 1; min-width: 0; }
.terms-box { line-height: 1.8; color: #444; font-size: 15px; }
.terms-main-title { font-size: 24px; font-weight: 800; color: #111; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid #eee; }

.term-section { margin-bottom: 40px; }
.term-section h4 { font-size: 18px; font-weight: 700; color: #111; margin-bottom: 15px; display: block; }
.term-section p { margin-bottom: 10px; text-align: justify; }

.sub-list { list-style: none; padding-left: 10px; color: #666; }
.highlight-box { background: #f8f9fb; padding: 20px; border-radius: 10px; border-left: 4px solid #2B549F; margin-top: 10px; font-weight: 500; }

.terms-addendum { margin-top: 60px; padding: 30px; background: #fafafa; border-radius: 10px; border: 1px solid #eee; }

/* ======= 이용약관 끝 ======= */


/* 하단 푸터 */
.auth-footer { padding: 25px; text-align: center; border-top: 1px solid #f5f5f5; background: #fafbfc; font-size: 14px; color: #888; }
.auth-footer a { color: #2B549F; font-weight: 700; text-decoration: none; margin-left: 5px; border-bottom: 1px solid #2B549F; }

/* 간격 유틸리티 */
.mt-10 { margin-top: 10px; }
.mt-15 { margin-top: 15px; }
.mb-25 { margin-bottom: 25px; }
