/* =========================================================
   하위 페이지 공용: 진단 · 상담 · 서비스 · 회사소개 · 인사이트 · 법적 페이지 · 랜딩
   ========================================================= */

/* ---------- 성장진단 ---------- */
.diag-wrap { max-width: 720px; margin: 0 auto; }
.diag-progress { margin-bottom: var(--sp-4); }
.diag-progress-top { display: flex; justify-content: space-between; font-size: var(--fs-small); color: var(--muted); margin-bottom: .5rem; font-weight: 600; }
.diag-bar { height: 8px; background: var(--navy-10); border-radius: 999px; overflow: hidden; }
.diag-bar span { display: block; height: 100%; background: var(--green); width: 0; transition: width .3s ease; }
.diag-q { background: var(--white); border-radius: var(--radius); padding: var(--sp-4); box-shadow: var(--shadow); }
.diag-q h2 { font-size: var(--fs-h3); margin-bottom: .4rem; }
.diag-q .q-help { color: var(--muted); font-size: var(--fs-small); margin-bottom: var(--sp-3); }
.diag-q fieldset { border: 0; }
.diag-q legend { position: absolute; left: -9999px; }
.diag-nav { display: flex; justify-content: space-between; gap: .75rem; margin-top: var(--sp-3); }
.diag-nav .btn { flex: 0 0 auto; }
.diag-intro { text-align: center; }
.diag-intro ul { display: inline-block; text-align: left; margin: var(--sp-3) 0; }

.result-card { background: var(--white); border-radius: var(--radius); padding: var(--sp-4); box-shadow: var(--shadow); margin-bottom: var(--sp-3); }
.result-stage { display: flex; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.result-stage .rs-no { width: 64px; height: 64px; border-radius: 16px; background: var(--navy); color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; font-weight: 900; font-size: 1.6rem; flex-shrink: 0; }
.result-stage .rs-no small { font-size: .7rem; font-weight: 600; }
.result-stage h2 { font-size: var(--fs-h2); }
.result-card h3 { font-size: 1.1rem; margin: var(--sp-3) 0 .6rem; }
.score-row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.score-num { font-size: 3rem; font-weight: 900; color: var(--navy); line-height: 1; }
.score-num small { font-size: 1.1rem; color: var(--muted); font-weight: 600; }
.score-band { display: inline-block; background: var(--green-10); color: var(--green-dark); font-weight: 800; padding: .35rem .9rem; border-radius: 999px; }
.score-meter { flex: 1 1 220px; height: 12px; background: var(--navy-10); border-radius: 999px; overflow: hidden; }
.score-meter span { display: block; height: 100%; background: var(--green); }
.alert-warn { background: var(--warn-bg); border: 1px solid var(--warn-line); border-radius: var(--radius); padding: var(--sp-3); margin-bottom: var(--sp-3); font-weight: 600; color: #7A4B00; }
.result-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: var(--sp-3) 0; }
.mini-stair { display: flex; gap: 4px; margin-bottom: var(--sp-3); }
.mini-stair span { flex: 1; height: 8px; border-radius: 4px; background: var(--navy-10); }
.mini-stair span.on { background: var(--green); }

/* ---------- 상담 신청 ---------- */
.contact-grid { display: grid; grid-template-columns: 1.4fr .9fr; gap: var(--sp-5); align-items: start; }
.contact-form { background: var(--white); border-radius: var(--radius); padding: var(--sp-4); box-shadow: var(--shadow); }
.contact-aside { position: sticky; top: calc(var(--header-h) + 16px); display: grid; gap: var(--sp-3); }
.aside-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--sp-3); }
.aside-card h2 { font-size: 1.15rem; margin-bottom: .6rem; }
.diag-attached { background: var(--green-10); border-radius: var(--radius); padding: var(--sp-2) var(--sp-3); margin-bottom: var(--sp-3); color: var(--green-dark); font-weight: 600; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }

/* ---------- 법적 문서 ---------- */
.legal { max-width: 820px; margin: 0 auto; }
.legal h2 { font-size: 1.3rem; margin: var(--sp-4) 0 var(--sp-2); }
.legal p, .legal li { margin-bottom: .6rem; }
.legal ol, .legal ul.dot { padding-left: 1.25rem; }
.legal ol { list-style: decimal; }
.legal ul.dot { list-style: disc; }
.legal table { width: 100%; border-collapse: collapse; margin: var(--sp-2) 0; font-size: var(--fs-small); }
.legal th, .legal td { border: 1px solid var(--line); padding: .7rem; text-align: left; vertical-align: top; }
.legal th { background: var(--ivory); color: var(--navy); }
.legal .meta { color: var(--muted); }
.table-scroll { overflow-x: auto; }

/* ---------- 서비스 상세 ---------- */
.fit-card { background: var(--white); border-radius: var(--radius); padding: var(--sp-3); border-left: 4px solid var(--green); font-weight: 600; font-size: 1.1rem; color: var(--navy); }
.work-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--sp-3); }
.work-card .w-no { font-weight: 900; color: var(--green); }
.work-card h3 { font-size: 1.1rem; margin: .3rem 0; }
.work-card p { color: var(--muted); font-size: var(--fs-small); }
.deliver-box { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: var(--sp-3); }
.deliver-box span { background: var(--green-10); color: var(--green-dark); padding: .5rem .9rem; border-radius: 8px; font-weight: 700; }
.must-know { background: var(--white); border: 2px solid var(--navy); border-radius: var(--radius); padding: var(--sp-4); }
.must-know h2 { font-size: var(--fs-h3); margin-bottom: var(--sp-2); }
.other-svc { display: block; text-decoration: none; background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); padding: var(--sp-3); transition: border-color .2s; }
.other-svc:hover { border-color: var(--green); }
.other-svc strong { display: block; color: var(--navy); font-size: 1.15rem; margin-bottom: .25rem; }
.other-svc span { color: var(--muted); font-size: var(--fs-small); }
.promo-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2); background: var(--navy); color: var(--white); border-radius: var(--radius); padding: var(--sp-4); }
.promo-banner h2 { color: var(--white); font-size: var(--fs-h3); }

/* ---------- 회사소개 ---------- */
.timeline { border-left: 3px solid var(--green-10); padding-left: var(--sp-3); }
.timeline li { position: relative; margin-bottom: var(--sp-3); }
.timeline li::before { content: ''; position: absolute; left: calc(-1 * var(--sp-3) - 9px); top: .45em; width: 15px; height: 15px; border-radius: 50%; background: var(--green); border: 3px solid var(--white); }
.timeline .t-cat { font-size: var(--fs-small); color: var(--green); font-weight: 800; }
.timeline h3 { font-size: 1.1rem; }
.timeline p { color: var(--muted); font-size: var(--fs-small); }
.photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
.photo-pair img, .photo-pair .photo-ph { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: var(--radius); background: #E2E8F0; }
.photo-ph { display: flex; align-items: center; justify-content: center; text-align: center; color: var(--muted); font-size: var(--fs-small); padding: 1rem; border: 1.5px dashed #CBD5E1; }
.map-ph { aspect-ratio: 16 / 7; background: var(--ivory); border: 1.5px dashed #CBD5E1; border-radius: var(--radius); display: flex; align-items: center; justify-content: center; color: var(--muted); }

/* ---------- 인사이트 · 브리프 ---------- */
.brief-head { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.brief-updated { font-weight: 700; color: var(--navy); background: var(--ivory); padding: .4rem .9rem; border-radius: 8px; }
.brief-list { display: grid; gap: var(--sp-2); }
.brief-card { display: grid; grid-template-columns: 1fr auto; gap: var(--sp-2); align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--sp-3); }
.brief-card.is-closed { opacity: .6; }
.brief-card .b-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.brief-card h3 { font-size: 1.15rem; margin-bottom: .25rem; }
.brief-card .b-meta { font-size: var(--fs-small); color: var(--muted); }
.badge[title] { cursor: help; }
.home-brief-title { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: 1.15rem; margin-bottom: var(--sp-2); }
.home-brief-title i { color: var(--green); }
.home-brief-title .text-link { margin-left: auto; font-size: var(--fs-small); }
.brief-legend { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: var(--sp-3); font-size: var(--fs-small); align-items: center; }

/* ---------- 완료 페이지 ---------- */
.done-hero { text-align: center; }
.done-icon { width: 80px; height: 80px; border-radius: 50%; background: var(--green); color: var(--white); display: flex; align-items: center; justify-content: center; font-size: 2.2rem; margin: 0 auto var(--sp-3); }

/* ---------- 랜딩 ---------- */
.lp-hero { background: var(--ivory); padding: var(--sp-6) 0; }
.lp-hero h1 { font-size: var(--fs-h1); font-weight: 900; margin-bottom: var(--sp-2); }
.lp-hero .lead { font-size: 1.25rem; color: #374151; margin-bottom: var(--sp-4); }
.empathy li { font-size: 1.2rem; font-weight: 700; color: var(--navy); padding: var(--sp-2) 0; border-bottom: 1px solid var(--line); }
.lp-ceo { display: flex; align-items: center; gap: var(--sp-3); background: var(--white); border-radius: var(--radius); padding: var(--sp-3); box-shadow: var(--shadow); }
.lp-ceo img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: center top; flex-shrink: 0; }
.lp-sub-cta { display: flex; justify-content: center; gap: var(--sp-3); margin-top: var(--sp-2); font-size: var(--fs-small); }

/* ---------- 관리자 ---------- */
.admin-table { width: 100%; border-collapse: collapse; font-size: .9rem; background: var(--white); }
.admin-table th, .admin-table td { border: 1px solid var(--line); padding: .5rem .6rem; text-align: left; vertical-align: top; }
.admin-table th { background: var(--ivory); position: sticky; top: 0; }
.admin-tabs { display: flex; gap: .5rem; margin-bottom: var(--sp-2); flex-wrap: wrap; }

/* ---------- 반응형 ---------- */
@media (max-width: 860px) {
    .contact-grid { grid-template-columns: 1fr; }
    .contact-aside { position: static; }
    .brief-card { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .diag-q, .result-card, .contact-form { padding: var(--sp-3) 1.1rem; }
    .form-row-2 { grid-template-columns: 1fr; }
    .diag-nav .btn { flex: 1; }
    .lp-ceo { flex-direction: column; text-align: center; }
}
