@charset "utf-8";

/* ==========================================================================
   [FIX & SAFE] 모바일 글로벌 공통 컴포넌트 & 반응형 내비게이션 드로어 기본 스펙
   ========================================================================== */
.mobile-menu-trigger { display: none; flex-direction: column; justify-content: space-between; width: 24px; height: 18px; background: transparent; border: none; cursor: pointer; padding: 0; z-index: 1001; }
.mobile-menu-trigger span { width: 100%; height: 2px; background-color: #0b132a; border-radius: 2px; transition: all 0.3s ease; }
.mobile-drawer-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.4); backdrop-filter: blur(4px); z-index: 2000; opacity: 0; visibility: hidden; transition: all 0.3s ease; }
.mobile-drawer-overlay.is-active { opacity: 1; visibility: visible; }
.mobile-nav-drawer { position: fixed; top: 0; right: -320px; width: 300px; height: 100%; background: #ffffff; z-index: 2001; box-shadow: -10px 0 30px rgba(0,0,0,0.1); transition: right 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); display: flex; flex-direction: column; }
.mobile-nav-drawer.is-active { right: 0; }
.drawer-header { padding: 26px 22px; border-bottom: 1px solid #f1f5f9; display: flex; align-items: center; justify-content: space-between; }
.drawer-close-btn { background: transparent; border: none; font-size: 26px; color: #4a5568; cursor: pointer; }
.drawer-body { padding: 24px; display: flex; flex-direction: column; flex: 1; overflow-y: auto; }
.drawer-menu-list { list-style: none; padding: 0; margin: 0 0 35px 0; display: flex; flex-direction: column; gap: 24px; }
.drawer-menu-list a { text-decoration: none; font-size: 19px; font-weight: 700; color: #0b132a; display: block; }
.drawer-menu-list a:hover { color: #004fb0; }
.drawer-footer-btns { display: flex; flex-direction: column; gap: 12px; margin-top: auto; }
.drawer-footer-btns a { text-decoration: none; height: 50px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; }
.btn-drawer-login { background: #f1f5f9; color: #4a5568; }
.btn-drawer-cta { background: #004fb0; color: #ffffff; }

/* ==========================================================================
   [신규 병합 스펙] 로그인 상태에 따른 모바일 전용 프리미엄 유저 메뉴 모듈
   ========================================================================== */
.nav-open-overflow { overflow: hidden !important; touch-action: none; }
.mobile-user-info-card { display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); border-radius: 12px; padding: 16px; margin: 0 0 24px 0; text-align: left; border: 1px solid #e2e8f0; }
.mobile-avatar { font-size: 32px; color: #94a3b8; display: flex; align-items: center; justify-content: center; }
.mobile-welcome-text { font-size: 14.5px; color: #475569; line-height: 1.45; margin: 0; }
.mobile-welcome-text strong { color: #004fb0; font-weight: 800; }
.menu-divider-mobile { height: 1px; background-color: rgba(226,232,240,0.8); margin: 8px 0 20px 0; list-style: none; }
.mobile-submenu-list { list-style: none; padding: 0; margin: 0 0 24px 0; display: flex; flex-direction: column; gap: 16px; }
.mobile-submenu-list li a { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; color: #4a5568; text-decoration: none !important; transition: color 0.2s; }
.mobile-submenu-list li a i { color: #94a3b8; font-size: 15px; width: 18px; text-align: center; }
.mobile-submenu-list li a:hover { color: #004fb0; }
.mobile-submenu-list li a:hover i { color: #004fb0; }
.drawer-footer-btns a.btn-drawer-logout { background: #fef2f2; color: #ef4444; border: 1px solid #fca5a5; }
.drawer-footer-btns a.btn-drawer-logout:hover { background: #fee2e2; }

/* ==========================================================================
   [반응형 타겟 영역] 태블릿 및 데스크톱 이하 (max-width: 1024px)
   ========================================================================== */
@media (max-width: 1024px) {
    .gnb-wrapper, .btn-login, .btn-header-cta, .gnb-list, .header-util-group { display: none !important; }
    .mobile-menu-trigger { display: flex; }
    .site-header { height: 66px; }
    .site-main-content { padding-top: 66px; }
    .section-modern { padding: 90px 0; }
    .modern-title { font-size: 32px; }
    .modern-subtitle { font-size: 16.5px; }
    .hero-section { padding: 110px 0 80px 0; }
    .hero-content-wrap { flex-direction: column; text-align: center; gap: 45px; }
    .hero-left { text-align: center; }
    .hero-main-title { font-size: 42px; }
    .hero-sub-desc { font-size: 18px; }
    .hero-btn-group { justify-content: center; }
    .hero-right { justify-content: center; width: 100%; }
    .modern-service-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .modern-case-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .combined-flex-wrap { flex-direction: column; gap: 65px; }
    .combined-col { width: 100%; }
    .col-main-title { text-align: center; font-size: 30px; margin-bottom: 35px; }
    .tech-content-wrap { flex-direction: column; text-align: center; gap: 45px; }
    .tech-info-left { text-align: center; width: 100%; }
    .tech-values-right { width: 100%; max-width: 540px; margin: 0 auto; }
    .cta-flex-wrap { flex-direction: column; text-align: center; gap: 26px; }
    .cta-text-left h2 { font-size: 26px; }
    .cta-text-left p { font-size: 16px; }
    .footer-top-row { flex-direction: column; gap: 26px; text-align: center; align-items: center; }
    .footer-bottom-row { flex-direction: column-reverse; gap: 35px; text-align: center; align-items: center; }
    .info-text-line { justify-content: center; gap: 8px 14px; }
}

/* ==========================================================================
   [반응형 타겟 영역] 모바일 스마트폰 이하 (max-width: 768px)
   ========================================================================== */
@media (max-width: 768px) {
    body { font-size: 15px; }
    .section-modern { padding: 70px 0; }
    .modern-title { font-size: 26px; }
    .hero-main-title { font-size: 32px; line-height: 1.35; }
    .hero-sub-desc { font-size: 16px; }
    .hero-btn-group { flex-direction: column; width: 100%; max-width: 340px; margin: 0 auto; gap: 12px; }
    .btn-modern { width: 100%; height: 54px; font-size: 15.5px; }
    .hero-mockup-wrapper { width: 100%; max-width: 360px; height: 300px; margin: 0 auto; }
    .mockup-card { display: none; }
    .img-placeholder i { font-size: 70px; }
    .live-rolling-bar { height: auto; padding: 14px 0; }
    .rolling-flex { flex-direction: column; align-items: flex-start; gap: 8px; }
    .rolling-label { width: 100%; font-size: 14.5px; }
    .r-text { font-size: 14px; line-height: 1.4; }
    .r-time { display: none; }
    .modern-service-grid { grid-template-columns: 1fr; gap: 20px; }
    .service-grid-card { padding: 28px 24px; }
    .card-inline-header h3 { font-size: 18px; }
    .card-desc-text { font-size: 14px; }
    .modern-case-grid { grid-template-columns: 1fr; gap: 20px; }
    .case-img-box { height: 140px; }
    .case-content h4 { font-size: 16.5px; }
    .case-content p { font-size: 13.5px; }
    .modern-mini-grid { grid-template-columns: 1fr; gap: 14px; }
    .mini-item { padding: 24px; }
    .mini-item h4 { font-size: 17px; }
    .mini-item p { font-size: 14px; }
    .timeline-step { padding: 24px; gap: 18px; border-radius: 24px; }
    .step-circle-icon { width: 44px; height: 44px; }
    .step-circle-icon i { font-size: 16px; }
    .step-content h3 { font-size: 17.5px; }
    .step-content p { font-size: 14px; }
    .tech-info-left .modern-title { font-size: 25px; }
    .tech-desc { font-size: 14.5px; }
    .tech-icon-circle { width: 66px; height: 66px; }
    .tech-icon-circle i { font-size: 22px; }
    .tech-value-item span { font-size: 13.5px; }
    .section-footer-cta { padding: 50px 0; }
    .cta-btn-right { width: 100%; max-width: 340px; }
    .btn-cta-dark { width: 100%; height: 54px; font-size: 15.5px; }
    .footer-links-group { flex-wrap: wrap; justify-content: center; gap: 12px 24px; font-size: 14.5px; }
    .info-text-line { font-size: 13px; }
}

/* ==========================================================================
   service.php (Mobile & Tablet Responsive)
   ========================================================================== */

/* 1. 태블릿 해상도 가이드라인 호환 */
@media (max-width: 1024px) {
    .sv-hero-wrap h1 { font-size: 36px; }
    .counter-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 0; padding: 30px 10px; }
    .counter-item:nth-child(2)::after { display: none; }
    .story-row, .story-row.row-reverse { flex-direction: column; gap: 40px; margin-bottom: 80px; }
    .story-text-col, .story-visual-col { width: 100%; }
    .visual-box-mockup { max-width: 100%; height: 260px; }
    .miso-banner-box { flex-direction: column; text-align: center; padding: 40px 30px; }
    .miso-left-txt { text-align: center; }
    .miso-right-btn { width: 100%; max-width: 320px; }
}

/* 2. 모바일 초소형 모니터 최적화 가이드라인 호환 */
@media (max-width: 768px) {
    .service-hero { padding: 50px 0 50px 0; }
    .sv-hero-wrap h1 { font-size: 28px; line-height: 1.4; }
    .sv-hero-wrap p { font-size: 15px; }
    .counter-grid { grid-template-columns: 1fr; gap: 24px 0; }
    .counter-item:not(:last-child)::after { display: none; }
    .count-num { font-size: 34px; }
    .story-section-header h2 { font-size: 26px; }
    .story-text-col h3 { font-size: 24px; }
    .story-desc { font-size: 14.5px; }
    .story-feature-list li { font-size: 14px; }
}

/* ==========================================================================
   portfolio.php (Mobile & Tablet Responsive)
   ========================================================================== */

/* 1. 태블릿 환경 해상도 대응 (최대 1024px) */
@media (max-width: 1024px) {
    .filter-tab-wrapper { border-radius: 20px; padding: 12px; gap: 8px; max-width: 90%; }
    .filter-btn { padding: 8px 18px; font-size: 14px; }
    .portfolio-tag-sec { padding: 0 0 35px 0; }
    .keyword-filter-wrap { max-width: 92%; }
    .portfolio-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
    .pf-thumb-box { height: 210px; }
    .pf-title { font-size: 17.5px; }
}

/* 2. 모바일 기기 환경 해상도 대응 (최대 768px) */
@media (max-width: 768px) {
    .portfolio-filter-sec { padding: 0 0 25px 0; }
    .filter-tab-wrapper { gap: 6px; }
    .filter-btn { padding: 6px 14px; font-size: 13px; }
    .portfolio-tag-sec { padding: 0 0 30px 0; }
    .kw-item { padding: 6px 12px; font-size: 13px; }
    .portfolio-grid { grid-template-columns: 1fr; gap: 30px 0; }
    .pf-thumb-box { height: 200px; }
    .pf-info-box { padding: 20px; }
    .pf-title { font-size: 17px; }
    .pf-desc { font-size: 13.5px; margin-bottom: 15px; }
    .portfolio-empty-state { padding: 70px 15px; }
    .portfolio-empty-state i { font-size: 44px; margin-bottom: 15px; }
    .portfolio-empty-state p { font-size: 14.5px; }
    .list-more-action { margin-top: 40px; }
    .btn-work-more { padding: 12px 28px; font-size: 14px; }
}

/* ==========================================================================
   portfolio_view.php (Mobile & Tablet Responsive)
   ========================================================================== */

/* 1. 태블릿 환경 대응 해상도 (최대 1024px) */
@media (max-width: 1024px) {
    .pf-view-title { font-size: 28px; padding: 0 20px; }
    .portfolio-view-body { padding: 40px 20px 80px 20px; }
    .pf-summary-spec-card { padding: 25px; }
}

/* 2. 스마트폰 및 초소형 기기 해상도 대응 (최대 768px) */
@media (max-width: 768px) {
    .portfolio-view-header { padding: 40px 0 30px 0; }
    .pf-view-title { font-size: 22px; margin-bottom: 15px; }
    .pf-view-meta { flex-wrap: wrap; gap: 8px 12px; max-width: 280px; margin: 0 auto; }
    .meta-split { display: none; }
    .pf-summary-spec-card { padding: 20px; border-radius: 12px; margin-bottom: 35px; }
    .spec-row { flex-direction: column; gap: 6px; padding-bottom: 10px; }
    .spec-lbl { width: 100%; font-size: 13.5px; }
    .spec-val { width: 100%; font-size: 13.5px; }
    .pf-img-caption { font-size: 12.5px; padding: 10px 15px; }
    
    /* 에디터 내부 컨테이너 폭 고정 및 이미지 반응형 강제 패치 */
    .pf-html-text-box { font-size: 15px; line-height: 1.7; margin-top: 25px; width: 100%; overflow-x: auto; }
    .pf-html-text-box img { max-width: 100% !important; height: auto !important; box-sizing: border-box; }
    
    /* 하단 태그 및 액션 영역 */
    .pf-view-tags-wrap { margin-top: 35px; }
    .pf-tag-item { font-size: 12.5px; padding: 5px 12px; }
    .pf-view-action-footer { flex-direction: column; gap: 10px; width: 100%; padding-top: 30px; }
    .btn-back-list, .btn-go-estimate { width: 100%; max-width: 320px; justify-content: center; padding: 13px 20px; font-size: 14px; }
}

/* ==========================================================================
   guide.php (Mobile & Tablet Responsive)
   ========================================================================== */

/* 1. 모바일 및 태블릿 반응형 구조 동기화 */
@media (max-width: 1024px) {
    .portfolio-pagination { margin-top: 50px; }
}
@media (max-width: 768px) {
    .gd-main-cate-badge { font-size: 11.5px; padding: 3px 8px; }
    .portfolio-pagination { margin-top: 40px; gap: 4px; }
    .page-num, .page-arrow { width: 36px; height: 36px; font-size: 14px; }
}

/* ==========================================================================
   guide_view.php (Mobile & Tablet Responsive)
   ========================================================================== */

/* 1. 모바일 해상도 내 경고 카드 및 이동 보드 반응형 대응 */
@media (max-width: 768px) {
    .law-notice-box { padding: 20px; gap: 15px; border-radius: 12px; margin-bottom: 30px; }
    .law-notice-box .box-icon { width: 36px; height: 36px; font-size: 15px; }
    .law-notice-box .box-text strong { font-size: 14.5px; }
    .law-notice-box .box-text p { font-size: 13px; }
    .guide-nav-board { margin: 40px 0 30px 0; padding: 5px 0; }
    .gd-nav-row { padding: 12px 10px; gap: 10px; }
    .gd-nav-lbl { min-width: 90px; font-size: 12.5px; }
    .gd-nav-subject { font-size: 13px; }
}

/* ==========================================================================
   notice.php (Mobile Board Responsive)
   ========================================================================== */

/* 1. 모바일 맞춤형 모던 리스트 스킨 변환 (테이블 구조 파괴형 대응) */
@media (max-width: 768px) {
    .board-list-sec { padding: 30px 0 60px 0; }
    .board-search-bar-wrap { margin-bottom: 25px; padding: 0 15px; }
    .bd-search-form { padding: 3px 4px 3px 15px; }
    .bd-search-select { font-size: 13px; padding-right: 8px; }
    .bd-search-input-box { padding-left: 10px; }
    .bd-search-input-box input { font-size: 13px; }
    .btn-bd-search { width: 34px; height: 34px; font-size: 12px; }
    
    /* 모바일 가독성을 위해 테두리 헤더 제거 후 블록형으로 전환 */
    .notice-modern-table thead { display: none; }
    .notice-modern-table tr { display: block; position: relative; padding: 18px 15px; border-bottom: 1px solid #e2e8f0; }
    .notice-modern-table td { display: block; padding: 0 !important; text-align: left !important; border-bottom: none; }
    
    .td-num { margin-bottom: 8px; font-size: 12px; color: #94a3b8; }
    .td-title { margin-bottom: 10px; padding-right: 20px; }
    .notice-link-title { font-size: 15.5px; line-height: 1.4; display: block; }
    
    /* 메타 정보 하단 일렬 배치 */
    .td-date { display: inline-block; font-size: 12.5px; color: #94a3b8; margin-right: 12px; }
    .td-hit { display: inline-block; font-size: 12.5px; color: #94a3b8; }
    .font-mb-icon { display: inline-block; margin-right: 2px; }
    
    .td-empty-board { text-align: center !important; padding: 60px 0 !important; }
}

/* ==========================================================================
   faq.php (Mobile Accordion Responsive)
   ========================================================================== */

/* 1. 모바일 화면 가폭 및 패딩 조율 */
@media (max-width: 768px) {
    .faq-filter-chips-wrap { gap: 6px; margin-bottom: 30px; padding: 0 10px; }
    .faq-chip-btn { padding: 8px 16px; font-size: 13px; }
    .faq-question { padding: 16px 18px; gap: 12px; }
    .q-badge-icon { width: 24px; height: 24px; font-size: 13px; border-radius: 4px; }
    .q-title-text { font-size: 14px; }
    .a-body-box { align-items: flex-start !important; }
    .a-badge-icon { width: 24px; height: 24px; font-size: 12px; border-radius: 4px; }
    .a-html-content p:first-child { margin-top: 0 !important; padding-top: 0 !important; }
    .faq-footer-info-banner { flex-direction: column; gap: 12px; text-align: center; padding: 20px; margin-top: 35px; }
    .faq-footer-info-banner p { font-size: 13px; line-height: 1.5; }
}

/* ==========================================================================
   login.php (Mobile Auth Card Responsive)
   ========================================================================== */

/* 1. 모바일 기기 대응 내부 간격 및 폼 폰트 최적화 축소 */
@media (max-width: 500px) {
    .section-modern-login { padding: 40px 0; background: #ffffff; }
    .login-narrow-wrap { padding: 0 15px; }
    .login-premium-card { padding: 30px 20px; border: none; box-shadow: none; }
    .login-header h2 { font-size: 24px; }
    .login-header p { font-size: 13.5px; }
    .form-control-modern { height: 46px; font-size: 13.5px; padding: 0 16px 0 42px; }
    .inner-field-icon { left: 14px; font-size: 14px; }
    .btn-login-submit-primary { height: 48px; font-size: 15px; }
    .btn-guest-check-modern { height: 44px; font-size: 13.5px; }
    .custom-check-text, .sub-utility-link, .login-signup-guide-banner p { font-size: 13px; }
    .alert-box { padding: 12px 14px; font-size: 13px; margin-bottom: 20px; }
}

/* ==========================================================================
   terms.php (Mobile Responsiveness Configuration)
   ========================================================================== */

/* 9. 모바일 뷰포트 맞춤형 미디어 쿼리 셋업 */
@media (max-width: 991px) {
    .section-terms-page { padding: 45px 0 70px 0; }
    .page-header-center { margin-bottom: 35px; }
    .page-header-center h2 { font-size: 26px; }
    .page-header-center p { font-size: 14px; }
    .terms-split-container { flex-direction: column; gap: 30px; }
    .terms-aside-sticky { flex: none; width: 100%; position: relative; top: 0; }
    .terms-nav-links { max-height: 190px; }
    .terms-premium-box { padding: 30px 20px; border-radius: 16px; }
    .terms-main-title { font-size: 19px; padding-bottom: 16px; margin-bottom: 30px; }
    .term-section-block { margin-bottom: 30px; }
    .term-section-block h4 { font-size: 14.5px; }
    .term-paragraph p { font-size: 13.5px; line-height: 1.65; }
    .term-sub-nested-list li { font-size: 13.5px; line-height: 1.65; }
    .privacy-manager-card { padding: 16px; }
}


 /* ==========================================================================
    estimate.php
   ========================================================================== */

@media (max-width: 1024px) {
    .sub-estimate-hero { padding: 80px 0 40px 0 !important; }
    .hero-center-content { margin-bottom: 30px; }
    .center-title { font-size: 34px !important; }
    .estimate-form-container { padding: 0 16px; }
    .estimate-form-block-card { padding: 28px; }
    .estimate-edit-action-group { padding: 0 16px; }
    .estimate-edit-btn { height: 50px; font-size: 14px; }
}

@media (max-width: 768px) {
    .sub-estimate-hero { padding: 60px 0 30px 0 !important; }
    .center-title { font-size: 28px !important; margin-bottom: 12px; }
    .center-desc { font-size: 14px !important; line-height: 1.5; }
    .estimate-form-container { padding: 0 12px; }
    .estimate-form-block-card { padding: 20px 14px; border-radius: 12px; margin-bottom: 16px; }
    .estimate-form-control.textarea-input { font-size: 13.5px !important; line-height: 1.5; }
    .estimate-form-control.textarea-input::placeholder { font-size: 13px !important; }
    .estimate-block-card-header { padding-bottom: 12px; margin-bottom: 18px; }
    .estimate-block-card-header h3 { font-size: 15.5px; }
    .estimate-badge-auto-fill { font-size: 11px; padding: 2px 8px; border-radius: 4px; }
    
    /* 탭 메뉴 모바일 최적화 및 강제 라운딩 고정 */
    .estimate-btn-group-flex { border-radius: 24px; padding: 4px; }
    .estimate-tab-btn { height: 40px; font-size: 13px; border-radius: 20px; }
    .estimate-notice-card { padding: 14px 16px; border-radius: 8px; }
    .estimate-notice-card p { font-size: 12px; margin-bottom: 6px; }
    
    /* 모바일 그리드 1열 수직 전환 */
    .estimate-grid-row-col2 { grid-template-columns: 1fr; gap: 16px; }
    .estimate-field-label { font-size: 13px; margin-bottom: 6px; }
    .estimate-form-control { height: 44px; font-size: 13.5px; padding: 0 12px; border-radius: 6px !important; }
    .estimate-form-control.textarea-input { padding: 12px; line-height: 1.5; }
    .estimate-field-caption { font-size: 11.5px; margin-top: 5px; }
    
    /* 주소 필드 및 기타 요소 모바일 리사이징 */
    .estimate-address-search-row { width: 100%; max-width: 100%; gap: 8px; }
    .estimate-address-search-row .estimate-btn-address-search { height: 44px; padding: 0 14px; font-size: 13px; border-radius: 6px !important; }
    .estimate-pill-item .pill-ui-box { padding: 8px 16px; font-size: 13px; border-radius: 20px; }
    .estimate-modern-upload-box { padding: 14px; margin-top: 14px; border-radius: 8px; }
    .estimate-upload-square-trigger .square-clickable { width: 56px; height: 56px; border-radius: 6px; }
    .estimate-policy-agree-card { padding: 14px 16px; margin-bottom: 24px; border-radius: 8px; }
    .estimate-policy-checkbox-wrapper { align-items: flex-start; gap: 10px; }
    .estimate-policy-checkbox-wrapper input[type="checkbox"] { width: 16px; height: 16px; margin-top: 2px; }
    .estimate-policy-checkbox-wrapper .checkbox-custom-text { font-size: 12.5px; line-height: 1.4; word-break: keep-all; }
    .estimate-full-submit-btn { max-width: 100%; height: 52px; font-size: 15px; border-radius: 6px !important; }
    .mt-24 { margin-top: 16px; }
    .mt-8 { margin-top: 6px; }
}

/* ==========================================================================
   estimate_success.php
   ========================================================================== */
@media (max-width: 768px) {
    .estimate-success-card-block { padding: 40px 16px; border-radius: 12px; }
    .estimate-success-icon-circle-anim i { font-size: 60px; }
    .estimate-success-main-title { font-size: 20px; margin-bottom: 10px; }
    .estimate-success-desc-text { font-size: 14px; line-height: 1.55; margin-bottom: 24px; }
    .estimate-success-receipt-box { padding: 16px; margin-bottom: 24px; }
    .receipt-row-item { padding: 10px 0; gap: 12px; }
    .receipt-label-title { font-size: 13px; }
    .receipt-value-text { font-size: 13.5px; }
    .estimate-no-monospace-badge { font-size: 14.5px; }
    .status-pill-badge-requested { padding: 3px 10px; font-size: 11px; }
    .estimate-success-notice-card { padding: 14px 16px; margin-bottom: 28px; }
    .estimate-success-notice-card p { font-size: 12.5px; margin-bottom: 6px; }
    .estimate-success-action-group-flex { flex-direction: column-reverse; gap: 8px; width: 100%; }
    .success-action-btn { width: 100%; height: 46px; font-size: 14px; }
}

/* ==========================================================================
   Fix & Safe 통합 의뢰 확인 페이지 모바일 반응형 스타일 (모바일)
   ========================================================================== */
@media (max-width: 768px) {
    .check-page-find-links { margin-top: 18px; padding-top: 16px; gap: 6px; }
    .check-page-find-links span { font-size: 12.5px; }
    .check-page-find-links a { font-size: 12.5px; }
}

/* ==========================================================================
   signup.php
   ========================================================================== */
@media (max-width: 768px) {
    .signup-flex-row-grid { flex-direction: column; gap: 20px; }
    .grid-column-item { width: 100%; }
    .signup-agreement-container-card { border-radius: 10px; }
    .agreement-header-all { padding: 14px 16px; }
    .agreement-body-list { padding: 8px 16px; }
    .agreement-row-item-flex { padding: 10px 0; }
    .btn-policy-preview { font-size: 11.5px; }
}

/* ==========================================================================
   my_estimate.php
   ========================================================================== */

@media (max-width: 768px) {
    .my-estimate-header-flex { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; border-bottom: none !important; padding-bottom: 0px; margin-bottom: 16px; }
    .my-estimate-header-flex h3 { font-size: 18px; font-weight: 700; color: #0b132a; margin: 0; }
    .btn-new-request-action { display: block; width: 100%; text-align: center; box-sizing: border-box; background: linear-gradient(135deg, #004fb0 0%, #006bf6 100%); color: #ffffff !important; font-size: 13.5px; font-weight: 700; padding: 11px 16px; border-radius: 8px; text-decoration: none !important; }
    
    .my-estimate-summary-grid { display: grid; grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; margin-top: 14px !important; }
    .summary-count-card { padding: 15px 12px !important; border-radius: 10px !important; }
    .summary-label { font-size: 13px; font-weight: 600; }
    .summary-count-num { font-size: 24px !important; font-weight: 800; margin-top: 4px; }
    
    .recent-list-filter-bar { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin-top: 36px !important; margin-bottom: 12px !important; width: 100% !important; box-sizing: border-box !important; }
    .recent-list-filter-bar .filter-headline { font-size: 16px !important; font-weight: 700; color: #1e293b; margin: 0 !important; line-height: 1 !important; }
    .recent-list-filter-bar .all-list-view-link { font-size: 13px !important; text-decoration: none !important; display: inline-flex !important; align-items: center !important; gap: 4px !important; margin: 0 !important; line-height: 1 !important; }
    
    .my-estimate-item-premium-card { display: flex; flex-direction: column !important; align-items: stretch !important; gap: 18px !important; padding: 20px 18px !important; margin-bottom: 14px; }
    .estimate-card-subject { font-size: 16.5px !important; font-weight: 800; color: #0b132a; margin: 8px 0 12px 0; line-height: 1.35; }
    
    .estimate-card-metadata-grid { display: flex; flex-direction: column !important; gap: 8px !important; width: 100%; }
    .meta-item-tag { display: flex; align-items: center; gap: 6px; background-color: #f8fafc; color: #475569; font-size: 13px; font-weight: 500; padding: 5px 12px; border-radius: 6px; width: 100%; box-sizing: border-box; }
    .meta-item-tag i { color: #94a3b8; font-size: 12px; width: 14px; text-align: center; }
    
    .estimate-card-action-column { border-left: none !important; border-top: 1px dashed #e2e8f0 !important; padding-left: 0 !important; padding-top: 16px !important; width: 100% !important; display: flex; flex-direction: column; align-items: stretch; }
    .btn-card-action-accent, .btn-card-action-secondary, .btn-card-action-dark { font-size: 13px !important; font-weight: 700; text-align: center; padding: 10px 14px; border-radius: 6px; width: 100%; text-decoration: none !important; display: block; box-sizing: border-box; }
    .btn-card-action-outline { border: 1px solid #cbd5e1; background-color: #ffffff; color: #475569 !important; font-size: 13px; font-weight: 600; text-align: center; padding: 9px 14px; border-radius: 6px; width: 100%; text-decoration: none !important; display: block; box-sizing: border-box; }
    
    .action-caption-notice { font-size: 11.5px !important; font-weight: 600; color: #64748b; margin: 10px 0 0 0 !important; border-top: none !important; padding-top: 0 !important; text-align: left !important; white-space: normal !important; word-break: keep-all; }  
}

/* ==========================================================================
   my_estimate_detail.php
   ========================================================================== */

@media (max-width: 768px) {
    /* 기본 레이아웃 재배치 */
    .detail-outer-container { padding: 0 16px; }
    .detail-top-util { flex-direction: column; align-items: flex-start; gap: 12px; }
    .detail-top-util .btn-util-edit-item { width: 100%; justify-content: center; box-sizing: border-box; }
    
    /* [카드 1 요약] 반응형 */
    .info-card-header { flex-direction: column; align-items: flex-start; gap: 14px; padding: 20px; }
    .info-card-header .status-area { width: 100%; justify-content: space-between; gap: 10px; }
    .info-card-body { padding: 20px; }
    .info-meta-grid { grid-template-columns: 1fr; gap: 12px; }
    .info-meta-grid .meta-row { flex-direction: column; gap: 4px; }
    .info-meta-grid .meta-row .label { width: 100%; }
    
    /* [카드 2 견적서] 반응형 */
    .formal-quotation-container { padding: 24px 16px; border-width: 1px; }
    .formal-quote-header { flex-direction: column; align-items: flex-start; gap: 20px; }
    .formal-title-box h1 { font-size: 26px; letter-spacing: 4px; }
    .formal-author-box { text-align: left; width: 100%; }
    .formal-author-box .meta-pair { justify-content: flex-start; }
    .formal-quote-client-info { grid-template-columns: 1fr; padding: 16px; gap: 10px; }
    
    /* 테이블 좌우 크래시(깨짐) 방지 */
    .formal-quote-table-wrap { margin-left: -16px; margin-right: -16px; padding: 0 16px; }
    .formal-quote-table th { padding: 12px 6px; font-size: 13px; text-align: center !important; }
    .formal-quote-table td { padding: 12px 6px; font-size: 13px; text-align: center !important; }
    
    /* 합계 요약 배너 반응형 */
    .formal-total-sum-banner { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px; }
    .formal-total-sum-banner .total-price-result { width: 100%; justify-content: space-between; }
    .formal-total-sum-banner .total-price-result .price-text { font-size: 20px; }
    
    /* 의뢰 확인 하단 결재 패널 반응형 */
    .bottom-choice-action-panel { padding: 12px 0 !important; margin-top: 16px; }
    .panel-btn-row { flex-direction: column; align-items: center; justify-content: center !important; width: 100%; gap: 8px; }
    .btn-action-cancel-gray { width: 100% !important; text-align: center; box-sizing: border-box; }
    
    /* 라이트박스 팝업 오버레이 모바일 레이아웃 조정 */
    .lightbox-close-btn { top: 12px; right: 16px; font-size: 28px; }
    .lightbox-nav-btn { width: 42px; height: 42px; font-size: 20px; }
    .lightbox-nav-btn.btn-prev { left: 10px; }
    .lightbox-nav-btn.btn-next { right: 10px; }
    .lightbox-content-box { max-width: calc(100vw - 40px); max-height: calc(100vh - 100px); }
    .lightbox-caption { font-size: 12px; text-align: center; }
}

/* ==========================================================================
   my_estimate_edit
   ========================================================================== */
    .estimate-form-grid { grid-template-columns: 1fr; gap: 16px; }
    .zip-code-input { width: 100px !important; }
    .btn-zip-search { padding: 0 12px; font-size: 13px; }
    .file-upload-box { flex-direction: column; align-items: flex-start; gap: 10px; }
    .btn-file-trigger { width: 100%; justify-content: center; box-sizing: border-box; }
    .existing-photo-manager { padding: 12px; }

    /* ==========================================================================
     my_qna
   ========================================================================== */
    .qna-list-container { padding: 0 16px; }
    .qna-header-action-flex { display: flex; justify-content: flex-end; align-items: center; width: 100%; margin-bottom: 20px; }
    .qna-notice-text { display: none; }
    .qna-btn-write { display: inline-flex; width: auto; height: 42px; padding: 0 16px; font-size: 15px; border-radius: 6px; }
    .qna-filter-bar { display: flex; justify-content: space-between; align-items: center; width: 100%; gap: 12px; margin-bottom: 16px; }
    .qna-filter-chips { display: flex; gap: 6px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .qna-filter-chip { height: 36px; padding: 0 16px; font-size: 15px; flex-shrink: 0; }
    .qna-total-counter { font-size: 15px; margin-left: auto; white-space: nowrap; }
    .qna-table-responsive { border: none; background: transparent; box-shadow: none; }
    .qna-table { display: block; width: 100%; }
    .qna-table thead { display: none; }
    .qna-table tbody { display: flex; flex-direction: column; gap: 14px; width: 100%; }
    .qna-row-item { display: flex; flex-direction: column; width: 100%; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 20px 18px; box-sizing: border-box; position: relative; gap: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
    .qna-row-item:hover { background-color: #ffffff; }
    .qna-row-item td { display: block; padding: 0 !important; border: none !important; width: 100% !important; text-align: left !important; }
    .qna-row-item td.num { display: none; }
    .qna-row-item td.date { display: none; }
    .qna-row-item td.status { order: 1; align-self: flex-start; }
    .qna-row-item td.title { order: 2; width: 100%; white-space: normal; }
    .qna-row-item .title a { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; }
    .qna-row-item .title .category-prefix { font-size: 14px; font-weight: 600; color: var(--primary-color, #2563eb); }
    .qna-row-item .title .subject-text { font-size: 17px; line-height: 1.45; color: #1e293b; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
    .mobile-meta-info { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
    .mobile-date { font-size: 14px; color: #64748b; }
    .qna-badge { height: 26px; padding: 0 10px; font-size: 13px; border-radius: 6px; }
    .qna-pagination-wrap { gap: 8px; margin-top: 28px; }
    .qna-pagination-wrap .pag-btn, .qna-pagination-wrap .pag-num { width: 38px; height: 38px; font-size: 15px; }