@charset "utf-8";

/* ===== 공통 초기화 ===== */
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Malgun Gothic','맑은 고딕',sans-serif; color:#333; line-height:1.6; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; border:0; vertical-align:middle; }

.inner { max-width:1200px; margin:0 auto; padding:0 20px; }

/* ===== 상단 유틸리티 바 ===== */
.top-util { background:#f4f6f9; border-bottom:1px solid #e5e5e5; font-size:13px; }
.top-util .inner { display:flex; justify-content:flex-end; height:36px; align-items:center; }
.top-util a { margin-left:16px; color:#666; }
.top-util a:hover { color:#1a4d8f; }

/* ===== 헤더 ===== */
header { border-bottom:1px solid #e5e5e5; }
header .inner { display:flex; align-items:center; justify-content:space-between; height:90px; }
.logo { font-size:24px; font-weight:bold; color:#1a4d8f; letter-spacing:-1px; }
.gnb { display:flex; }
.gnb > li { position:relative; }
.gnb > li > a { display:block; padding:0 22px; height:90px; line-height:90px; font-size:16px; font-weight:600; }
.gnb > li > a:hover, .gnb > li.on > a { color:#1a4d8f; }
.gnb .sub { display:none; position:absolute; top:90px; left:0; width:180px; background:#fff; border:1px solid #eee; box-shadow:0 6px 14px rgba(0,0,0,.08); z-index:10; }
.gnb > li:hover .sub { display:block; }
.gnb .sub li a { display:block; padding:10px 18px; font-size:14px; font-weight:400; }
.gnb .sub li a:hover { background:#f4f6f9; color:#1a4d8f; }

/* ===== 서브 비주얼(내부 페이지 상단 타이틀) ===== */
.sub-visual { background:#1a4d8f url('') center/cover no-repeat; color:#fff; text-align:center; padding:70px 0; }
.sub-visual h2 { font-size:32px; font-weight:700; }
.sub-visual p { margin-top:10px; font-size:15px; opacity:.85; }

/* ===== 위치 경로 (Breadcrumb) ===== */
.location { border-bottom:1px solid #eee; }
.location .inner { display:flex; justify-content:flex-end; height:46px; align-items:center; font-size:13px; color:#888; }
.location span { margin:0 6px; }

/* ===== 서브 탭 메뉴 (회사소개 내부 탭) ===== */
.tab-menu { display:flex; border-bottom:2px solid #1a4d8f; margin:40px 0 0; }
.tab-menu li { flex:1; text-align:center; }
.tab-menu li a { display:block; padding:14px 0; font-size:15px; font-weight:600; color:#666; background:#f7f8fa; border:1px solid #eee; border-bottom:none; }
.tab-menu li.on a, .tab-menu li a:hover { background:#1a4d8f; color:#fff; }

/* ===== 콘텐츠 공통 ===== */
.content { padding:50px 0 90px; }
.section { margin-bottom:70px; }
.section:last-child { margin-bottom:0; }
.section-title { font-size:22px; font-weight:700; color:#1a4d8f; margin-bottom:20px; padding-bottom:12px; border-bottom:1px solid #e5e5e5; }

/* 인사말 */
.greeting { display:flex; gap:40px; align-items:center; }
.greeting .photo { flex:0 0 260px; height:320px; background:#e9edf2; display:flex; align-items:center; justify-content:center; color:#999; font-size:13px; }
.greeting .text p { margin-bottom:14px; font-size:15px; }
.greeting .sign { text-align:right; margin-top:20px; font-weight:600; }

/* 회사개요 표 */
.info-table { width:100%; border-collapse:collapse; }
.info-table th, .info-table td { border:1px solid #e2e5ea; padding:14px 18px; font-size:14px; text-align:left; }
.info-table th { width:180px; background:#f7f8fa; color:#444; font-weight:600; }

/* 연혁 */
.history-list { border-top:2px solid #1a4d8f; }
.history-year { display:flex; padding:24px 0; border-bottom:1px solid #eee; }
.history-year .yy { flex:0 0 120px; font-size:24px; font-weight:700; color:#1a4d8f; }
.history-year ul { flex:1; }
.history-year li { position:relative; padding-left:16px; margin-bottom:8px; font-size:14px; }
.history-year li:before { content:"·"; position:absolute; left:0; color:#1a4d8f; font-weight:bold; }

/* 조직도 */
.org-chart { text-align:center; }
.org-box { display:inline-block; padding:16px 30px; border:2px solid #1a4d8f; border-radius:6px; font-weight:700; color:#1a4d8f; margin-bottom:10px; }
.org-row { display:flex; justify-content:center; gap:20px; margin-top:30px; flex-wrap:wrap; }
.org-dept { border:1px solid #e2e5ea; border-radius:6px; padding:18px; width:200px; }
.org-dept h4 { color:#1a4d8f; font-size:15px; margin-bottom:8px; }
.org-dept p { font-size:13px; color:#777; }

/* 오시는길 */
.map-box { width:100%; height:360px; background:#e9edf2; display:flex; align-items:center; justify-content:center; color:#999; margin-bottom:24px; }
.addr-box { display:flex; gap:60px; flex-wrap:wrap; }
.addr-box dl { flex:1; min-width:220px; }
.addr-box dt { font-weight:700; color:#1a4d8f; margin-bottom:6px; }
.addr-box dd { font-size:14px; margin-bottom:16px; }

/* ===== 메인 비주얼 (index.asp) ===== */
.main-visual {
  background:
    linear-gradient(135deg, rgba(10,35,70,.72), rgba(20,60,110,.6) 60%, rgba(15,45,85,.72)),
    url('/images/main-visual.jpg') center/cover no-repeat;
  color:#fff; padding:110px 0; text-align:center;
}
.main-visual .mv-eyebrow { font-size:13px; letter-spacing:3px; color:#a9c6ea; font-weight:700; margin-bottom:18px; }
.main-visual h2 { font-size:38px; font-weight:800; line-height:1.4; }
.main-visual .mv-desc { margin-top:18px; font-size:16px; color:#dbe7f7; }
.main-visual .mv-btns { margin-top:34px; display:flex; gap:14px; justify-content:center; }
.btn-primary, .btn-outline { display:inline-block; padding:14px 30px; border-radius:4px; font-size:15px; font-weight:700; }
.btn-primary { background:#fff; color:#1a4d8f; }
.btn-primary:hover { background:#e8f0fb; }
.btn-outline { border:1px solid rgba(255,255,255,.6); color:#fff; }
.btn-outline:hover { background:rgba(255,255,255,.12); }

/* ===== 퀵메뉴 ===== */
.quick-menu { background:#fff; border-bottom:1px solid #e5e5e5; margin-top:-40px; position:relative; z-index:2; }
.quick-menu .inner { padding:0 20px; }
.quick-menu ul { display:flex; box-shadow:0 8px 24px rgba(20,40,80,.12); background:#fff; border-radius:8px; overflow:hidden; }
.quick-menu li { flex:1; border-right:1px solid #eee; }
.quick-menu li:last-child { border-right:none; }
.quick-menu li a { display:flex; flex-direction:column; align-items:center; text-align:center; padding:28px 10px; }
.quick-menu li a:hover { background:#f4f6f9; }
.quick-menu .qm-icon { font-size:13px; font-weight:800; color:#1a4d8f; margin-bottom:10px; }
.quick-menu .qm-tit { font-size:16px; font-weight:700; margin-bottom:6px; }
.quick-menu .qm-txt { font-size:12px; color:#888; }

/* ===== 주요 서비스 카드 ===== */
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { border:1px solid #e2e5ea; border-radius:8px; padding:26px 22px; transition:box-shadow .2s, transform .2s; }
.service-card:hover { box-shadow:0 10px 24px rgba(20,40,80,.1); transform:translateY(-3px); }
.service-card h4 { font-size:16px; color:#1a4d8f; margin-bottom:10px; }
.service-card p { font-size:13.5px; color:#666; }

/* ===== 선택 이유 (강점 수치) ===== */
.strength-row { display:flex; text-align:center; background:#f7f8fa; border-radius:8px; padding:40px 0; }
.strength-item { flex:1; border-right:1px solid #e2e5ea; }
.strength-item:last-child { border-right:none; }
.strength-item .num { display:block; font-size:34px; font-weight:800; color:#1a4d8f; }
.strength-item .num span { font-size:18px; font-weight:700; }
.strength-item p { margin-top:8px; font-size:13.5px; color:#666; }

/* ===== 공지사항 / 세무일정 ===== */
.notice-wrap { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.notice-box { border:1px solid #e2e5ea; border-radius:8px; padding:24px; }
.notice-box .nb-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.notice-box .more-link { font-size:13px; color:#888; }
.notice-list li { border-bottom:1px dashed #eee; }
.notice-list li:last-child { border-bottom:none; }
.notice-list li a { display:flex; justify-content:space-between; padding:12px 2px; font-size:14px; }
.notice-list li a:hover { color:#1a4d8f; }
.notice-list li a .date { color:#999; font-size:12.5px; }

/* ===== 상담 신청 CTA ===== */
.cta-banner { background:#1a4d8f; color:#fff; padding:44px 0; }
.cta-banner .inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
.cta-banner h3 { font-size:20px; font-weight:700; }
.cta-banner p { margin-top:6px; font-size:14px; color:#dbe7f7; }

/* ===== 체크리스트 (business.asp) ===== */
.check-list li { position:relative; padding-left:24px; margin-bottom:10px; font-size:14.5px; color:#444; }
.check-list li:before { content:"\2713"; position:absolute; left:0; top:0; color:#1a4d8f; font-weight:800; }
.lead { font-size:15px; color:#555; margin-bottom:18px; }

/* ===== 이용 절차 플로우 (business.asp) ===== */
.process-flow { display:flex; align-items:stretch; gap:10px; }
.process-flow .pf-step { flex:1; text-align:center; background:#f7f8fa; border:1px solid #e2e5ea; border-radius:8px; padding:26px 10px; position:relative; }
.process-flow .pf-num { display:inline-block; width:30px; height:30px; line-height:30px; background:#1a4d8f; color:#fff; border-radius:50%; font-size:13px; font-weight:700; margin-bottom:12px; }
.process-flow .pf-tit { font-size:15px; font-weight:700; margin-bottom:6px; }
.process-flow .pf-txt { font-size:12.5px; color:#888; }
.process-flow .pf-arrow { flex:0 0 24px; display:flex; align-items:center; justify-content:center; color:#c3c9d1; font-size:20px; }

/* ===== FAQ 아코디언 (support.asp) ===== */
.faq-list { border-top:2px solid #1a4d8f; }
.faq-item { border-bottom:1px solid #eee; }
.faq-item summary { list-style:none; cursor:pointer; padding:18px 40px 18px 4px; font-size:15px; font-weight:600; position:relative; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:before { content:"Q"; display:inline-block; width:24px; height:24px; line-height:24px; text-align:center; background:#eaf0f9; color:#1a4d8f; border-radius:4px; font-size:13px; font-weight:800; margin-right:10px; }
.faq-item summary:after { content:"+"; position:absolute; right:6px; top:16px; font-size:20px; color:#aaa; }
.faq-item[open] summary:after { content:"-"; }
.faq-item .faq-answer { padding:0 4px 20px 38px; font-size:14px; color:#666; }

/* ===== 자료실 게시판 (support.asp) ===== */
.board-table { width:100%; border-collapse:collapse; }
.board-table th, .board-table td { border-bottom:1px solid #eee; padding:14px 10px; font-size:14px; text-align:left; }
.board-table th { border-top:2px solid #1a4d8f; border-bottom:1px solid #e2e5ea; background:#f7f8fa; color:#444; font-size:13.5px; }
.board-table td.num, .board-table th.num { text-align:center; width:60px; color:#999; }
.board-table td.date, .board-table th.date { text-align:center; width:120px; color:#888; font-size:13px; }
.board-table td.dl, .board-table th.dl { text-align:center; width:90px; }
.board-table .dl-btn { display:inline-block; padding:5px 12px; border:1px solid #d7dbe2; border-radius:4px; font-size:12.5px; color:#555; }
.board-table .dl-btn:hover { background:#1a4d8f; color:#fff; border-color:#1a4d8f; }
.board-table tr:hover td { background:#fafbfc; }

/* ===== 상담 안내 카드 (support.asp) ===== */
.reserve-box { display:flex; gap:24px; flex-wrap:wrap; }
.reserve-box .rb-item { flex:1; min-width:220px; border:1px solid #e2e5ea; border-radius:8px; padding:24px; text-align:center; }
.reserve-box .rb-item h4 { color:#1a4d8f; font-size:16px; margin-bottom:8px; }
.reserve-box .rb-item p { font-size:13.5px; color:#777; margin-bottom:16px; }

/* ===== 문의하기 폼 (contact.asp) ===== */
.contact-info-row { display:flex; gap:20px; flex-wrap:wrap; margin-bottom:10px; }
.contact-info-row .ci-item { flex:1; min-width:200px; border:1px solid #e2e5ea; border-radius:8px; padding:22px; text-align:center; }
.contact-info-row .ci-item .ci-label { font-size:12.5px; color:#999; margin-bottom:6px; }
.contact-info-row .ci-item .ci-value { font-size:16px; font-weight:700; color:#1a4d8f; }

.contact-form { border-top:2px solid #1a4d8f; padding-top:30px; }
.form-row { display:flex; gap:20px; margin-bottom:20px; flex-wrap:wrap; }
.form-group { flex:1; min-width:220px; }
.form-group.full { flex-basis:100%; }
.form-group label { display:block; font-size:14px; font-weight:600; color:#333; margin-bottom:8px; }
.form-group label .req { color:#d64545; margin-left:3px; }
.form-group input[type="text"],
.form-group input[type="tel"],
.form-group input[type="email"],
.form-group select,
.form-group textarea {
  width:100%; padding:12px 14px; border:1px solid #d7dbe2; border-radius:4px; font-size:14px; font-family:inherit; color:#333; background:#fff;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:#1a4d8f; }
.form-group textarea { resize:vertical; min-height:160px; }

.agree-box { background:#f7f8fa; border:1px solid #e2e5ea; border-radius:6px; padding:18px; margin-bottom:24px; }
.agree-box .agree-scroll { max-height:110px; overflow-y:auto; font-size:12.5px; color:#888; line-height:1.7; margin-bottom:12px; padding-right:6px; }
.agree-box .agree-check { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; }
.agree-box .agree-check input { width:16px; height:16px; }

.form-submit { text-align:center; margin-top:10px; }
.btn-submit { display:inline-block; padding:15px 50px; background:#1a4d8f; color:#fff; border:none; border-radius:4px; font-size:16px; font-weight:700; cursor:pointer; }
.btn-submit:hover { background:#123a6b; }

/* ===== 푸터 ===== */
footer { background:#2b2f36; color:#bcbfc4; padding:40px 0; font-size:13px; }
footer .inner { display:flex; justify-content:space-between; flex-wrap:wrap; }
footer .fmenu a { margin-right:16px; color:#dcdfe3; }
footer .finfo { margin-top:14px; line-height:1.9; }
footer .copyright { margin-top:10px; color:#8a8d92; }

@media (max-width:900px){
  .gnb, .top-util { display:none; }
  .greeting { flex-direction:column; }
  .history-year { flex-direction:column; }
  footer .inner { flex-direction:column; }
  .main-visual h2 { font-size:26px; }
  .quick-menu ul { flex-wrap:wrap; }
  .quick-menu li { flex:0 0 50%; border-bottom:1px solid #eee; }
  .service-grid { grid-template-columns:1fr; }
  .strength-row { flex-wrap:wrap; }
  .strength-item { flex:0 0 50%; margin-bottom:20px; }
  .notice-wrap { grid-template-columns:1fr; }
  .cta-banner .inner { flex-direction:column; text-align:center; }
  .process-flow { flex-direction:column; }
  .process-flow .pf-arrow { transform:rotate(90deg); }
  .board-table th.num, .board-table td.num { display:none; }
  .form-row { flex-direction:column; gap:0; }
}
