/* 건강증진수액클리닉 · 건강검진 서브 콘텐츠 */
.page-care { --cp-blue: #2f64d4; --cp-blue-deep: #1f4fb6; --cp-ink: #121212; --cp-body: #505050; --cp-muted: #878787; --cp-line: #dddddd; --cp-soft: #f7f9fc; --cp-tint: #edf3ff; --cp-paper: #f9f9f9; }

.cp-shell { width: var(--content-width); max-width: 1600px; margin: 0 auto; padding: 30px 0 180px; color: var(--cp-ink); }
.cp-shell:has(> .cp-statement:last-child) { padding-bottom: 0; }
.cp-shell * { box-sizing: border-box; }
.cp-shell h3, .cp-shell h4, .cp-shell h5 { margin: 0; color: var(--cp-ink); letter-spacing: -0.03em; word-break: keep-all; }
.cp-shell p, .cp-shell li, .cp-shell dd, .cp-shell td { margin: 0; color: var(--cp-body); font-size: 17px; line-height: 1.8; letter-spacing: -0.03em; word-break: keep-all; }
.cp-shell :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
.cp-shell :where(dl, dd, figure) { margin: 0; }
.cp-shell strong { color: var(--cp-ink); font-weight: 600; }
.cp-shell img { display: block; max-width: 100%; height: auto; }
.cp-shell a:focus-visible, .cp-shell button:focus-visible, .cp-shell summary:focus-visible { outline: 2px solid var(--cp-blue); outline-offset: 3px; }

/* 인트로 */
.cp-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px 8%; align-items: start; }
.cp-intro-title h3 { font-size: 40px; font-weight: 700; line-height: 1.45; }
.cp-intro-title:has(.cp-lead) h3 { margin: 0 0 20px; font-size: 36px; font-weight: 700; line-height: 1.4; }
.cp-intro-title .cp-lead { margin: 0; color: #121212; font-family: var(--font-serif); font-size: 22px; font-weight: 500; line-height: 1.65; letter-spacing: 0; }
.cp-intro-body { padding-top: 6px; }
.cp-intro-body p { font-size: 18px; }
.cp-intro-body p + p { margin-top: 18px; }
.cp-intro-body .cp-emph { margin-top: 28px; color: var(--cp-ink); font-size: 20px; font-weight: 600; line-height: 1.65; }
.cp-shell .cp-visual { margin: 48px 0 0; overflow: hidden; }
.cp-visual img { width: 100%; aspect-ratio: 1600 / 606; object-fit: cover; }

/* 버튼 */
.cp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.cp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 58px; padding: 0 30px; border: 1px solid var(--cp-ink); border-radius: 999px; background: #fff; color: var(--cp-ink); font-family: inherit; font-size: 17px; font-weight: 600; letter-spacing: -0.03em; white-space: nowrap; text-decoration: none; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease; }
.cp-btn:hover { background: var(--cp-ink); color: #fff; }
.cp-btn:active { transform: translateY(1px); }
.cp-btn.is-primary { border-color: var(--cp-blue); background: var(--cp-blue); color: #fff; }
.cp-btn.is-primary:hover { border-color: var(--cp-blue-deep); background: var(--cp-blue-deep); }
.cp-btn.is-unlinked { cursor: default; }
.cp-actions .cp-btn { transition: none; }
.cp-actions .cp-btn:hover, .cp-actions .cp-btn:active { background: #fff; color: var(--cp-ink); transform: none; }
.cp-actions .cp-btn.is-primary:hover, .cp-actions .cp-btn.is-primary:active { border-color: var(--cp-blue); background: var(--cp-blue); color: #fff; }
.cp-btn svg { flex: none; }

/* 섹션 공통 */
.cp-section { margin-top: 160px; }
.cp-head { max-width: 1100px; margin-bottom: 56px; }
.cp-head .cp-kicker { margin-bottom: 14px; color: var(--cp-blue); font-size: 18px; font-weight: 600; }
.cp-head h3 { font-size: 36px; font-weight: 700; line-height: 1.45; }
.cp-head > p:not(.cp-kicker) { margin-top: 18px; font-size: 18px; }
.cp-head-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px 8%; max-width: none; align-items: end; }
.cp-head-split > div + p { margin: 0; }

/* 비교 표 */
.cp-compare { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.cp-compare col.is-label { width: 18%; }
.cp-compare thead th { padding: 26px 36px; border-bottom: 2px solid var(--cp-ink); color: var(--cp-ink); font-size: 20px; font-weight: 600; letter-spacing: -0.03em; text-align: left; vertical-align: bottom; }
.cp-compare thead th small { display: block; margin-top: 4px; color: var(--cp-muted); font-size: 15px; font-weight: 400; }
.cp-compare thead th:nth-child(2) { background: #f4f4f4; }
.cp-compare thead th.is-focus { border-bottom-color: var(--cp-blue); background: var(--cp-blue); color: #fff; }
.cp-compare thead th.is-focus small { color: rgba(255, 255, 255, .78); }
.cp-compare tbody th { padding: 30px 36px 30px 0; border-bottom: 1px solid var(--cp-line); color: #121212; font-size: 16px; font-weight: 600; text-align: left; vertical-align: middle; }
.cp-compare tbody td { padding: 30px 36px; border-bottom: 1px solid var(--cp-line); color: var(--cp-body); font-size: 18px; vertical-align: top; }
.cp-compare tbody td.is-focus { background: var(--cp-soft); color: var(--cp-ink); font-weight: 500; }
.cp-compare thead th:first-child { padding-left: 0; }

/* 아이콘 포인트 (2열) */
.cp-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 80px; border-bottom: 1px solid var(--cp-line); }
.page-checkup .cp-points { border-bottom: 0; }
.cp-points > li { display: grid; grid-template-columns: 88px 1fr; gap: 32px; align-items: start; padding: 44px 0; border-top: 1px solid var(--cp-line); }
.cp-points img { width: 88px; height: 88px; }
.cp-points h4 { font-size: 24px; font-weight: 600; line-height: 1.45; }
.cp-points p { margin-top: 10px; }

/* 아이콘 행 (3항목) */
.cp-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 32px; }
.cp-features > li { display: flex; flex-direction: column; min-width: 0; }
.cp-shell .cp-features img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; margin: 0 0 10px; }
.cp-features > li > div { flex: 1; padding: 28px; background: #f5f8fc; }
.cp-features h4 { margin: 0 0 12px; font-size: 22px; font-weight: 700; line-height: 1.45; }
.cp-features p { margin: 0; }

.cp-rows { border-top: 2px solid var(--cp-ink); }
.cp-rows > li { display: grid; grid-template-columns: 72px minmax(0, 380px) 1fr; gap: 48px; align-items: center; padding: 40px 0; border-bottom: 1px solid var(--cp-line); }
.cp-rows img { width: 72px; height: 72px; }
.cp-rows h4 { font-size: 23px; font-weight: 600; line-height: 1.45; }
.cp-rows h4 small { display: block; margin-top: 4px; color: var(--cp-muted); font-size: 15px; font-weight: 400; letter-spacing: 0; }
.cp-rows p small { display: block; margin-top: 4px; color: var(--cp-muted); font-size: 15px; }

/* 사진 + 체크 목록 */
.cp-split { display: grid; grid-template-columns: 5fr 7fr; gap: 100px; align-items: center; }
.cp-split-media { overflow: hidden; margin: 0; }
.cp-split-media img { width: 100%; aspect-ratio: 625 / 681; object-fit: cover; }
.cp-split .cp-head { margin-bottom: 36px; }
.cp-checklist > li { position: relative; padding: 32px 0 32px 36px; border-bottom: 1px solid var(--cp-line); color: var(--cp-ink); font-size: 19px; font-weight: 500; }
.cp-checklist > li:first-child { padding-top: 0; }
.cp-checklist > li:last-child { border-bottom: 0; }
.cp-checklist > li::before { content: ""; position: absolute; left: 0; top: calc(32px + (1.8em - 26px) / 2); width: 26px; height: 26px; border-radius: 50%; background: var(--cp-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1.5 5.2 4.4 8 10.5 1.8' stroke='%232f64d4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px 10px no-repeat; }
.cp-checklist > li:first-child::before { top: calc((1.8em - 26px) / 2); }

/* 진행 단계 */
.cp-steps { --cp-cols: 4; display: grid; grid-template-columns: repeat(var(--cp-cols), minmax(0, 1fr)); gap: 0 40px; }
.cp-steps.is-6 { --cp-cols: 6; gap: 0 32px; }
.cp-steps > li { position: relative; padding-top: 44px; }
.cp-steps > li::before { content: ""; position: absolute; left: 0; top: 0; width: 16px; height: 16px; border: 2px solid var(--cp-blue); border-radius: 50%; background: #fff; }
.cp-steps > li::after { content: ""; position: absolute; left: 24px; right: -32px; top: 7px; height: 2px; background: #d5e0f6; }
.cp-steps > li:last-child::after { display: none; }
.cp-steps > li:last-child::before { background: var(--cp-blue); }
.cp-step-no { display: block; color: var(--cp-blue); font-size: 15px; font-weight: 600; letter-spacing: 0; }
.cp-steps img { width: 64px; height: 64px; margin: 18px 0 4px; }
.cp-steps h4 { margin-top: 12px; font-size: 22px; font-weight: 600; line-height: 1.45; }
.cp-steps:not(.is-6) h4 { font-weight: 700; }
.cp-steps.is-6 h4 { font-weight: 700; }
.cp-steps p { margin-top: 10px; font-size: 16px; line-height: 1.75; }
.cp-steps:not(.is-6) p { font-size: 18px; }
.cp-steps-cta { display: flex; justify-content: center; margin-top: 64px; }

/* 문장 띠 */
.cp-statement { position: relative; width: 100vw; margin: 160px calc(50% - 50vw) 0; overflow: hidden; }
.cp-shell .cp-statement > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cp-statement::after { content: ""; position: absolute; inset: 0; background: rgba(18, 18, 18, .48); }
.cp-statement-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; width: min(1600px, calc(100% - 160px)); min-height: 460px; margin: 0 auto; padding: 72px 0; text-align: center; }
.cp-statement.is-tall .cp-statement-copy { min-height: 520px; }
.cp-statement-copy .cp-kicker { margin: 0 0 18px; color: rgba(255, 255, 255, .82); font-size: 18px; font-weight: 500; }
.cp-statement-copy h3, .cp-statement-copy blockquote { max-width: 1260px; margin: 0; color: #fff; font-family: var(--font-serif); font-size: 48px; font-weight: 500; line-height: 1.45; letter-spacing: 0; word-break: keep-all; }
.cp-statement-copy blockquote { font-size: 38px; font-weight: 500; font-style: normal; line-height: 1.5; }
.cp-statement-copy p { max-width: 1060px; margin-top: 24px; color: rgba(255, 255, 255, .84); font-size: 20px; line-height: 1.7; }
.cp-statement-copy p strong { color: #fff; }
.cp-statement-copy .cp-btn { margin-top: 36px; }
.cp-statement.is-visual { margin-top: 80px; }

/* 안내 박스 — 검사실 주의사항과 같은 구성 */
.cp-note { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 36px; align-items: center; margin-top: 120px; padding: 38px 42px; background: #f9f9f9; }
.cp-note > img { width: 150px; height: 150px; object-fit: contain; mix-blend-mode: multiply; }
.cp-note h4 { margin: 0 0 18px; color: #2f64d4; font-size: 24px; font-weight: 700; line-height: 1.45; }
.cp-note p { margin: 12px 0; color: #505050; font-size: 19px; line-height: 1.85; }
.cp-shell .cp-note strong { color: #121212; font-weight: 700; }

/* 표 (검진) */
.cp-table-wrap { border-top: 2px solid var(--cp-ink); }
.cp-table { width: 100%; border-collapse: collapse; }
.cp-table thead th { padding: 20px 28px; border-bottom: 1px solid var(--cp-ink); background: var(--cp-soft); color: var(--cp-ink); font-size: 16px; font-weight: 600; text-align: left; letter-spacing: -0.03em; }
.cp-table tbody th { padding: 28px; border-bottom: 1px solid var(--cp-line); color: var(--cp-ink); font-size: 19px; font-weight: 600; text-align: left; vertical-align: top; letter-spacing: -0.03em; white-space: nowrap; }
.cp-table tbody td { padding: 28px; border-bottom: 1px solid var(--cp-line); vertical-align: top; }
.cp-table td.is-time { color: var(--cp-blue); font-weight: 600; white-space: nowrap; }
.cp-section > .reflux-table-wrap { overflow-x: auto; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table th,
.cp-shell .cp-section > .reflux-table-wrap .reflux-table td { padding: 22px 28px; border-bottom: 1px solid #dddddd; border-right: 1px solid #dddddd; vertical-align: middle; font-size: 18px; line-height: 1.6; letter-spacing: 0; text-align: center; word-break: keep-all; color: #505050; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table th:last-child,
.cp-shell .cp-section > .reflux-table-wrap .reflux-table td:last-child { border-right: 0; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table thead th { height: 72px; border-top: 2px solid #121212; background: #f4f4f4; font-size: 18px; font-weight: 700; color: #121212; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table thead th:first-child,
.cp-shell .cp-section > .reflux-table-wrap .reflux-table tbody th { width: 190px; background: #fff; font-size: 18px; font-weight: 600; color: #121212; }
.cp-shell .cp-section > .reflux-table-wrap .reflux-table thead th:first-child { background: #f4f4f4; font-weight: 700; }
.cp-table td.is-wide { color: var(--cp-body); }

/* 번호 블록 (일반·암검진) */
.cp-blocks > article { display: grid; grid-template-columns: 300px 1fr; gap: 40px 80px; padding: 56px 0; border-top: 1px solid var(--cp-line); }
.cp-blocks > article:first-child { border-top: 2px solid var(--cp-ink); }
.cp-block-title .cp-step-no { margin-bottom: 12px; }
.cp-block-title h4 { font-size: 28px; font-weight: 700; line-height: 1.4; }
.cp-block-body > dl > div { display: grid; grid-template-columns: 120px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--cp-line); }
.cp-block-body > dl > div:first-child { padding-top: 0; border-top: 0; }
.cp-block-body dt { color: var(--cp-ink); font-size: 17px; font-weight: 600; line-height: 1.8; }
.cp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-chips li { padding: 7px 16px; border-radius: 999px; background: var(--cp-tint); color: var(--cp-blue); font-size: 16px; font-weight: 500; line-height: 1.5; }
.cp-block-body .cp-table-wrap { border-top: 0; }
.cp-block-body .reflux-table { width: 100%; }
.cp-shell .cp-block-body .reflux-table th,
.cp-shell .cp-block-body .reflux-table td { padding: 22px 28px; border-bottom: 1px solid #dddddd; border-right: 1px solid #dddddd; vertical-align: middle; font-size: 18px; line-height: 1.6; letter-spacing: -0.03em; text-align: center; word-break: keep-all; color: #505050; }
.cp-shell .cp-block-body .reflux-table th:last-child,
.cp-shell .cp-block-body .reflux-table td:last-child { border-right: 0; }
.cp-shell .cp-block-body .reflux-table thead th { height: 72px; border-top: 2px solid #121212; background: #f4f4f4; font-size: 18px; font-weight: 700; color: #121212; }
.cp-shell .cp-block-body .reflux-table thead th:first-child,
.cp-shell .cp-block-body .reflux-table tbody th { width: auto; background: #fff; font-size: 18px; font-weight: 600; color: #121212; }
.cp-shell .cp-block-body .reflux-table thead th:first-child { background: #f4f4f4; font-weight: 700; }
.cp-block-body .cp-table thead th:first-child, .cp-block-body .cp-table tbody th { padding-left: 24px; }

/* 수액 프로그램 */
.cp-programs { margin-top: 120px; }
.cp-program { display: grid; grid-template-columns: 400px 1fr; gap: 60px 100px; padding: 80px 0; border-top: 1px solid var(--cp-line); scroll-margin-top: 140px; }
.cp-program:first-child { border-top: 2px solid var(--cp-ink); }
.cp-program:last-child { padding-bottom: 0; }
.cp-program-head { align-self: start; }
.cp-program-head img { width: 72px; height: 72px; margin-bottom: 28px; }
.cp-program-head h3 { margin-top: 10px; font-size: 30px; font-weight: 700; line-height: 1.45; }
.cp-program-head p { margin-top: 16px; color: #121212; font-size: 19px; }
.cp-dose { padding: 40px 44px; background: var(--cp-soft); }
.cp-dose + .cp-dose { margin-top: 20px; }
.cp-dose h4 { margin-bottom: 24px; font-size: 26px; font-weight: 700; line-height: 1.5; }
.cp-dose h4 small { display: block; margin-top: 2px; color: var(--cp-muted); font-size: 15px; font-weight: 400; letter-spacing: 0; }
.cp-dose dl > div { display: grid; grid-template-columns: 100px 1fr; gap: 20px; padding: 16px 0; border-top: 1px solid #e3e8f0; }
.cp-dose dt { color: var(--cp-blue); font-size: 16px; font-weight: 600; line-height: 1.8; }
.cp-dose dd { font-size: 17px; }
.cp-bullets > li { position: relative; padding-left: 12px; }
.cp-bullets > li::before { content: ""; position: absolute; left: 0; top: calc((1.8em - 3px) / 2); width: 3px; height: 3px; background: var(--cp-body); }

/* 채용검진 체크 */
.cp-check { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.cp-check > article { padding: 52px 56px; background: var(--cp-paper); }
.cp-check h4 { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; font-size: 24px; font-weight: 600; }
.cp-check > article:first-child h4 { font-weight: 700; }
.cp-check h4 span { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--cp-blue); color: #fff; font-size: 14px; font-weight: 600; line-height: 1; }
.cp-check dl > div { padding: 20px 0; border-top: 1px solid #e2e2e2; }
.cp-check dl > div:first-child { padding-top: 0; border-top: 0; }
.cp-check dt { color: var(--cp-ink); font-size: 18px; font-weight: 600; line-height: 1.7; }
.cp-check dd { margin-top: 6px; }
.cp-check .cp-check-note { margin-top: 20px; color: var(--cp-muted); font-size: 15px; }

/* FAQ */
.cp-faq { border-top: 2px solid var(--cp-ink); }
.cp-faq details { border-bottom: 1px solid var(--cp-line); }
.cp-faq summary { position: relative; display: flex; gap: 20px; padding: 30px 10px; color: var(--cp-ink); font-size: 20px; font-weight: 600; line-height: 1.55; letter-spacing: -0.03em; cursor: pointer; list-style: none; transition: color .2s ease; }
.cp-faq summary::-webkit-details-marker { display: none; }
.cp-faq summary::before { content: "Q"; flex: none; color: var(--cp-blue); font-weight: 700; }
.cp-faq summary::after { content: ""; position: absolute; right: 10px; top: 50%; width: 12px; height: 12px; margin-top: -9px; border-right: 2px solid var(--cp-ink); border-bottom: 2px solid var(--cp-ink); transform: rotate(45deg); transition: transform .25s ease, margin .25s ease; }
.cp-faq details[open] summary { color: var(--cp-blue); }
.cp-faq details[open] summary::after { margin-top: -3px; border-color: var(--cp-blue); transform: rotate(-135deg); }
.cp-faq-answer { display: flex; gap: 20px; margin: 0 0 30px; padding: 28px 32px; border-radius: 16px; background: var(--cp-paper); }
.cp-faq-answer::before { content: "A"; flex: none; color: var(--cp-muted); font-size: 18px; font-weight: 700; line-height: 1.8; }

/* 맞춤찾기: 왜 맞춤형 */
.cp-why { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px 8%; }
.cp-why .cp-head { margin-bottom: 0; }
.cp-why-body > p { font-size: 18px; }
.cp-factors { margin: 36px 0 0; border-top: 2px solid var(--cp-ink); }
.cp-factors > div { display: grid; grid-template-columns: 160px 1fr; gap: 24px; align-items: baseline; padding: 24px 10px; border-bottom: 1px solid var(--cp-line); }
.cp-factors dt { color: var(--cp-blue); font-size: 18px; font-weight: 700; line-height: 1.6; }
.cp-factors dd { margin: 0; color: var(--cp-body); font-size: 18px; line-height: 1.6; }
.cp-why-body .cp-emph { margin-top: 36px; color: var(--cp-ink); font-size: 20px; font-weight: 700; line-height: 1.65; }

/* 맞춤찾기: 결과 단계 */
.cp-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cp-tiers > li { display: flex; flex-direction: column; min-height: 300px; padding: 44px 40px; }
.cp-tiers > li:nth-child(1) { background: #f5f8fd; }
.cp-tiers > li:nth-child(2) { background: #e9f0fc; }
.cp-tiers > li:nth-child(3) { background: var(--cp-blue); }
.cp-tier-label { color: var(--cp-blue); font-size: 15px; font-weight: 600; letter-spacing: .04em; }
.cp-tiers h4 { margin-top: 14px; font-size: 28px; font-weight: 700; }
.cp-tiers p { margin-top: auto; padding-top: 40px; font-size: 18px; }
.cp-tiers > li:nth-child(3) .cp-tier-label, .cp-tiers > li:nth-child(3) p { color: rgba(255, 255, 255, .86); }
.cp-tiers > li:nth-child(3) h4 { color: #fff; }

/* 맞춤찾기: 예시 */
.cp-persona { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 60px 44px; }
.cp-shell .cp-persona figure { margin: 0 0 24px; overflow: hidden; }
.cp-persona img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cp-persona h4 { font-size: 21px; font-weight: 600; line-height: 1.5; text-align: center; }
.cp-persona p { margin-top: 10px; font-size: 16px; line-height: 1.75; text-align: center; }

/* 맞춤찾기: AI 안내 */
.cp-guide { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px 8%; }
.cp-guide .cp-head { margin-bottom: 0; }
.cp-guide-body > p { font-size: 18px; }
.cp-numbered { margin: 36px 0; border-top: 2px solid var(--cp-ink); counter-reset: cp-num; }
.cp-numbered li { display: flex; align-items: center; gap: 20px; padding: 24px 10px; border-bottom: 1px solid var(--cp-line); color: var(--cp-ink); font-size: 20px; font-weight: 700; line-height: 1.5; counter-increment: cp-num; }
.cp-numbered li::before { content: "0" counter(cp-num); display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--cp-blue); color: #fff; font-size: 14px; font-weight: 600; line-height: 1; }

.cp-panel { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px 8%; padding: 72px 80px; background: var(--cp-paper); }
.cp-panel .cp-head { margin-bottom: 0; }
.cp-panel-body > p { font-size: 18px; }
.cp-panel-body > p + p { margin-top: 16px; }
.cp-panel-body .cp-emph { margin-top: 28px; color: var(--cp-blue); font-size: 20px; font-weight: 600; }

.cp-notice { display: grid; grid-template-columns: 260px 1fr; gap: 24px 60px; margin-top: 48px; padding: 44px 56px; background: #f9f9f9; }
.cp-notice h4 { font-size: 20px; font-weight: 600; }
.cp-notice li { position: relative; padding-left: 12px; color: var(--cp-muted); font-size: 16px; }
.cp-notice li + li { margin-top: 6px; }
.cp-notice li::before { content: ""; position: absolute; left: 0; top: calc((1.8em - 3px) / 2); width: 3px; height: 3px; background: #505050; }

.cp-section[id] { scroll-margin-top: 140px; }
.cp-title-only h3 { font-size: 40px; font-weight: 700; line-height: 1.45; }

/* AI 맞춤검진 도구 */
html.is-finder-open { overflow: hidden; }
.cp-finder { position: fixed; inset: 0; width: min(1200px, calc(100% - 40px)); height: min(820px, calc(100dvh - 40px)); max-width: none; max-height: none; margin: auto; padding: 0; border: 0; background: #fff; color: #121212; box-shadow: 0 30px 80px rgba(18, 38, 80, .22); overflow: hidden; }
.cp-finder::backdrop { background: rgba(18, 18, 18, .6); }
.cp-finder[open] { display: block; }
.cp-finder * { box-sizing: border-box; }
.cp-finder-frame { display: grid; grid-template-columns: 340px minmax(0, 1fr); height: 100%; }

.cp-finder-rail { display: flex; flex-direction: column; padding: 52px 40px 44px; background: var(--cp-blue); color: #fff; }
.cp-finder-brand { margin: 0; color: rgba(255, 255, 255, .75); font-size: 15px; font-weight: 600; letter-spacing: 0; }
.cp-finder-rail h3 { margin: 12px 0 44px; color: #fff; font-size: 30px; font-weight: 700; line-height: 1.4; letter-spacing: -0.03em; }
.cp-finder-steps { margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .25); list-style: none; }
.cp-finder-steps li { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, .25); color: rgba(255, 255, 255, .55); font-size: 17px; font-weight: 500; letter-spacing: -0.03em; transition: color .2s ease; }
.cp-finder-steps li span { flex: none; width: 24px; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.cp-finder-steps li.is-done { color: rgba(255, 255, 255, .85); }
.cp-finder-steps li.is-current { color: #fff; font-weight: 700; }
.cp-finder-steps li.is-current::after { content: ""; width: 6px; height: 6px; margin-left: auto; border-radius: 50%; background: #fff; }
.cp-finder-rail-call { margin: auto 0 0; padding-top: 32px; color: rgba(255, 255, 255, .75); font-size: 15px; }
.cp-finder-rail-call a { display: block; margin-top: 4px; color: #fff; font-size: 22px; font-weight: 700; letter-spacing: 0; }

.cp-finder-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; height: 100%; }
.cp-finder-top { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 28px 56px 0; }
.cp-finder-count { margin: 0; color: var(--cp-blue); font-size: 14px; font-weight: 700; letter-spacing: .04em; }
.cp-finder-close { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin-right: -10px; border: 0; background: transparent; color: #121212; cursor: pointer; }
.cp-finder-close:hover { color: var(--cp-blue); }
.cp-finder-close:focus-visible { outline: 2px solid var(--cp-blue); outline-offset: 2px; }
.cp-finder-meter { flex: none; height: 2px; margin: 18px 56px 0; background: #ececec; }
.cp-finder-meter span { display: block; width: 0; height: 100%; background: var(--cp-blue); transition: width .35s ease; }
.cp-finder-body { flex: 1 1 auto; min-height: 0; padding: 44px 56px 48px; overflow-y: auto; }
.cp-finder-body [data-focus]:focus { outline: none; }
.cp-finder-foot { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 56px; border-top: 1px solid var(--cp-line); background: #fff; }
.cp-finder-foot[hidden] { display: none; }
.cp-finder-foot .cp-btn { min-height: 54px; padding: 0 30px; border-radius: 0; font-size: 16px; }
.cp-finder-foot .cp-btn[disabled] { border-color: #dddddd; background: #dddddd; color: #fff; cursor: not-allowed; }
.cp-finder-foot .cp-finder-back { border-color: #dddddd; }
.cp-finder-foot .cp-finder-back:hover { border-color: #121212; background: #fff; color: #121212; }
.cp-finder-foot-actions { display: flex; gap: 10px; }

.cp-finder-eyebrow { margin: 0; color: var(--cp-blue); font-size: 14px; font-weight: 700; letter-spacing: .06em; }
.cp-finder-intro h4 { margin: 14px 0 20px; color: #121212; font-size: 36px; font-weight: 700; line-height: 1.4; letter-spacing: -0.03em; }
.cp-finder-intro > p { margin: 0; color: #505050; font-size: 18px; line-height: 1.75; }
.cp-finder-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 44px 0 0; padding: 0; border-top: 2px solid #121212; list-style: none; }
.cp-finder-facts li { padding: 26px 24px; border-bottom: 1px solid var(--cp-line); }
.cp-finder-facts li + li { border-left: 1px solid var(--cp-line); }
.cp-finder-facts strong { display: block; color: var(--cp-blue); font-size: 24px; font-weight: 700; letter-spacing: -0.03em; }
.cp-finder-facts span { display: block; margin-top: 6px; color: #878787; font-size: 15px; }
.cp-finder-intro .cp-finder-tip { margin-top: 28px; color: #878787; font-size: 15px; }

.cp-finder-q { margin-bottom: 40px; }
.cp-finder-q h4 { margin: 0; color: #121212; font-size: 32px; font-weight: 700; line-height: 1.4; letter-spacing: -0.03em; }
.cp-finder-q p { margin: 12px 0 0; color: #505050; font-size: 17px; line-height: 1.7; }
.cp-fields { display: grid; gap: 36px; }
.cp-field[hidden], .cp-finder-group[hidden] { display: none; }
.cp-field fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.cp-field legend, .cp-field-label { display: block; margin: 0 0 14px; padding: 0; color: #121212; font-size: 17px; font-weight: 600; letter-spacing: -0.03em; }
.cp-field legend small, .cp-field-label small { margin-left: 8px; color: #878787; font-size: 14px; font-weight: 400; }
.cp-field.is-disabled { opacity: .45; }
.cp-finder-group { margin: 4px 0 -12px; padding-top: 32px; border-top: 1px solid var(--cp-line); color: var(--cp-blue); font-size: 16px; font-weight: 700; }

.cp-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.cp-choice { position: relative; display: block; }
.cp-choice input { position: absolute; opacity: 0; pointer-events: none; }
.cp-choice span { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; height: 100%; padding: 10px 16px; border: 1px solid #dddddd; background: #fff; color: #505050; font-size: 16px; line-height: 1.4; letter-spacing: -0.03em; text-align: center; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.cp-choice span:hover { border-color: var(--cp-blue); color: #121212; }
.cp-choice input:checked + span { border-color: var(--cp-blue); background: var(--cp-blue); color: #fff; font-weight: 600; }
.cp-choices.is-multi .cp-choice input:checked + span { background: #edf3ff; color: var(--cp-blue); }
.cp-choices.is-multi .cp-choice input:checked + span::before { content: ""; flex: none; width: 10px; height: 6px; margin-top: -3px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(-45deg); }
.cp-choice input:focus-visible + span { outline: 2px solid var(--cp-blue); outline-offset: 2px; }

.cp-number { display: flex; align-items: center; gap: 12px; }
.cp-number input { width: 180px; }
.cp-number span { color: #505050; font-size: 16px; }
.cp-finder input[type="number"], .cp-finder input[type="text"], .cp-finder textarea { width: 100%; height: 56px; padding: 0 18px; border: 1px solid #dddddd; border-radius: 0; background: #fff; color: #121212; font-family: inherit; font-size: 16px; letter-spacing: -0.02em; }
.cp-number input[type="number"] { width: 180px; }
.cp-finder textarea { display: block; height: auto; min-height: 112px; padding: 16px 18px; line-height: 1.65; resize: vertical; }
.cp-finder input::placeholder, .cp-finder textarea::placeholder { color: #9a9a9a; }
.cp-finder input:focus, .cp-finder textarea:focus { border-color: var(--cp-blue); outline: none; box-shadow: 0 0 0 3px rgba(47, 100, 212, .15); }
.cp-finder input:disabled, .cp-finder textarea:disabled { background: #f4f4f4; cursor: not-allowed; }
.cp-field-error { margin: 8px 0 0; color: #c62d2d; font-size: 14px; }
.cp-field-error[hidden] { display: none; }

.cp-finder-wait { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-height: 100%; text-align: center; }
.cp-finder-wait h4 { margin: 8px 0 0; color: #121212; font-size: 26px; font-weight: 700; letter-spacing: -0.03em; }
.cp-finder-wait p { max-width: 460px; margin: 0; color: #505050; font-size: 16px; line-height: 1.7; }
.cp-finder-pulse { display: flex; gap: 10px; }
.cp-finder-pulse span { width: 12px; height: 12px; border-radius: 50%; background: var(--cp-blue); animation: cp-pulse 1.1s ease-in-out infinite; }
.cp-finder-pulse span:nth-child(2) { animation-delay: .15s; }
.cp-finder-pulse span:nth-child(3) { animation-delay: .3s; }
@keyframes cp-pulse { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-8px); } }

.cp-result-head h4 { margin: 14px 0 0; color: #121212; font-size: 32px; font-weight: 700; line-height: 1.4; letter-spacing: -0.03em; }
.cp-result-summary-text { margin: 16px 0 0; color: #505050; font-size: 17px; line-height: 1.7; }
.cp-result-text { margin: 28px 0 0; padding: 32px 36px; border-top: 2px solid #121212; border-bottom: 1px solid var(--cp-line); background: #f9f9f9; color: #505050; font-size: 17px; line-height: 1.8; letter-spacing: -0.02em; white-space: pre-line; word-break: keep-all; overflow-wrap: anywhere; }
.cp-result-input { margin-top: 32px; border: 1px solid var(--cp-line); }
.cp-result-input summary { position: relative; padding: 18px 50px 18px 22px; color: #121212; font-size: 16px; font-weight: 600; list-style: none; cursor: pointer; }
.cp-result-input summary::-webkit-details-marker { display: none; }
.cp-result-input summary::after { content: ""; position: absolute; right: 24px; top: 50%; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid #121212; border-bottom: 2px solid #121212; transform: rotate(45deg); transition: transform .25s ease, margin .25s ease; }
.cp-result-input[open] summary::after { margin-top: -2px; transform: rotate(-135deg); }
.cp-result-input dl { margin: 0; padding: 0 22px 10px; }
.cp-result-input dl > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid #eeeeee; }
.cp-result-input dt { color: #121212; font-size: 15px; font-weight: 600; }
.cp-result-input dd { margin: 0; color: #505050; font-size: 15px; line-height: 1.65; }
.cp-result-notice { display: flex; align-items: flex-start; gap: 12px; margin: 24px 0 0; padding: 18px 22px; background: var(--cp-tint); color: var(--cp-blue-deep); font-size: 15px; font-weight: 500; line-height: 1.7; }
.cp-result-notice::before { content: "!"; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; margin-top: 2px; border-radius: 50%; background: var(--cp-blue); color: #fff; font-size: 14px; font-weight: 700; line-height: 1; }

/* 반응형 */
@media (max-width: 1280px) {
  .cp-steps.is-6 { --cp-cols: 3; gap: 48px 32px; }
  .cp-steps.is-6 > li:nth-child(3n)::after { display: none; }
  .cp-steps:not(.is-6) { --cp-cols: 2; gap: 48px 32px; }
  .cp-steps:not(.is-6) > li:nth-child(2n)::after { display: none; }
  .cp-program { grid-template-columns: 320px 1fr; gap: 48px 60px; }
  .cp-persona { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cp-rows > li { grid-template-columns: 64px minmax(0, 300px) 1fr; gap: 36px; }
}

@media (max-width: 1024px) {
  .cp-intro, .cp-why, .cp-guide, .cp-panel, .cp-head-split { grid-template-columns: 1fr; }
  .cp-intro-title h3 { font-size: 34px; }
  .cp-intro-title:has(.cp-lead) h3 { font-size: 28px; }
  .cp-section { margin-top: 120px; }
  .cp-head h3 { font-size: 30px; }
  .cp-split { grid-template-columns: 1fr 1fr; gap: 48px; }
  .cp-points { grid-template-columns: 1fr; }
  .cp-features { grid-template-columns: 1fr; }
  .cp-program { grid-template-columns: 1fr; }
  .cp-program-head { position: static; }
  .cp-statement-copy h3 { font-size: 48px; }
  .cp-statement-copy blockquote { font-size: 28px; }
  .cp-statement-copy { width: calc(100% - 80px); }
  .cp-notice { grid-template-columns: 1fr; }
  .cp-blocks > article { grid-template-columns: 1fr; gap: 28px; }
  .cp-check { grid-template-columns: 1fr; }
  .cp-panel { padding: 56px 48px; }
  .cp-tiers > li { min-height: 260px; padding: 36px 30px; }
}

@media (max-width: 768px) {
  .cp-shell { padding: 20px 0 180px; }
  .cp-shell:has(> .cp-statement:last-child) { padding-bottom: 0; }
  .cp-shell p, .cp-shell li, .cp-shell dd, .cp-shell td { font-size: 15px; }
  .cp-intro { gap: 24px; }
  .cp-intro-title h3, .cp-title-only h3 { font-size: 26px; }
  .cp-intro-title:has(.cp-lead) h3 { font-size: 24px; }
  .cp-intro-title .cp-lead { margin-top: 0; font-size: 22px; }
  .cp-intro-body p { font-size: 15px; }
  .cp-intro-body .cp-emph, .cp-why-body .cp-emph, .cp-panel-body .cp-emph { font-size: 17px; }
  .cp-shell .cp-visual { margin-top: 48px; }
  .cp-visual img { aspect-ratio: 4 / 3; }
  .cp-actions { margin-top: 28px; }
  .cp-actions .cp-btn { flex: 1 1 100%; }
  .cp-btn { min-height: 52px; padding: 0 22px; font-size: 15px; }
  .cp-section { margin-top: 88px; }
  .cp-head { margin-bottom: 32px; }
  .cp-head h3 { font-size: 23px; }
  .cp-head .cp-kicker { margin-bottom: 10px; font-size: 15px; }
  .cp-head > p:not(.cp-kicker) { font-size: 15px; }

  .cp-compare col.is-label { width: 64px; }
  .cp-compare thead th { padding: 16px 12px; font-size: 15px; }
  .cp-compare thead th small { font-size: 12px; }
  .cp-compare tbody th { padding: 18px 8px 18px 0; font-size: 13px; }
  .cp-compare tbody td { padding: 18px 12px; font-size: 14px; }

  .cp-points > li { grid-template-columns: 56px 1fr; gap: 20px; padding: 28px 0; }
  .cp-points img { width: 56px; height: 56px; }
  .cp-points h4 { font-size: 18px; }
  .cp-features > li > div { padding: 24px; }
  .cp-rows > li { grid-template-columns: 52px 1fr; gap: 12px 18px; padding: 28px 0; }
  .cp-rows img { width: 52px; height: 52px; grid-row: span 2; align-self: start; }
  .cp-rows h4 { font-size: 18px; }
  .cp-rows p { grid-column: 2; }

  .cp-split { grid-template-columns: 1fr; gap: 32px; }
  .cp-split-media img { aspect-ratio: 4 / 3; }
  .cp-checklist > li { padding: 26px 0 26px 28px; font-size: 16px; }
  .cp-checklist > li:first-child { padding-top: 0; }
  .cp-checklist > li::before { top: calc(26px + (1.8em - 24px) / 2); width: 24px; height: 24px; }
  .cp-checklist > li:first-child::before { top: calc((1.8em - 24px) / 2); }

  .cp-steps.cp-steps { --cp-cols: 1; gap: 0; }
  .cp-steps > li { padding: 0 0 36px 40px; }
  .cp-steps > li:last-child { padding-bottom: 0; }
  .cp-steps.cp-steps > li:nth-child(n)::after { display: block; left: 7px; right: auto; top: 22px; bottom: 0; width: 2px; height: auto; }
  .cp-steps.cp-steps > li:last-child::after { display: none; }
  .cp-steps > li::before { top: 2px; }
  .cp-steps img { width: 48px; height: 48px; margin-top: 12px; }
  .cp-steps h4 { margin-top: 8px; font-size: 18px; }
  .cp-steps p { font-size: 15px; }
  .cp-steps:not(.is-6) p { font-size: 17px; }
  .cp-steps-cta { margin-top: 40px; }
  .cp-steps-cta .cp-btn { width: 100%; }

  .cp-statement { margin-top: 88px; }
  .cp-statement.is-visual { margin-top: 40px; }
  .cp-statement-copy { width: calc(100% - 40px); min-height: 360px; padding: 48px 0; }
  .cp-statement.is-tall .cp-statement-copy { min-height: 420px; }
  .cp-statement-copy h3 { font-size: 48px; }
  .cp-statement-copy blockquote { font-size: 19px; }
  .cp-statement-copy p { margin-top: 14px; font-size: 14px; }
  .cp-statement-copy .cp-kicker { font-size: 14px; }

  .cp-note { grid-template-columns: 1fr; gap: 16px; margin-top: 72px; padding: 28px 24px; }
  .cp-note > img { width: 100px; height: 100px; }
  .cp-note h4 { font-size: 23px; }
  .cp-note p { font-size: 18px; }

  .cp-table thead { display: none; }
  .cp-table, .cp-table tbody, .cp-table tr, .cp-table th, .cp-table td { display: block; width: 100%; }
  .cp-table tr { padding: 22px 0; border-bottom: 1px solid var(--cp-line); }
  .cp-table tbody th, .cp-table tbody td { padding: 0; border: 0; white-space: normal; }
  .cp-table tbody th { margin-bottom: 10px; font-size: 17px; }
  .cp-table tbody td { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding: 4px 0; }
  .cp-table tbody td::before { content: attr(data-label); color: var(--cp-muted); font-size: 13px; font-weight: 600; line-height: 1.9; }
  .cp-table tbody td.is-wide { grid-template-columns: 1fr; }
  .cp-table tbody td.is-wide::before { display: none; }
  .cp-shell .cp-block-body .reflux-table th,
  .cp-shell .cp-block-body .reflux-table td { padding: 14px 10px; font-size: 13px; }
  .cp-shell .cp-section > .reflux-table-wrap .reflux-table { min-width: 560px; }
  .cp-shell .cp-section > .reflux-table-wrap .reflux-table th,
  .cp-shell .cp-section > .reflux-table-wrap .reflux-table td { width: auto; padding: 14px 10px; font-size: 13px; }
  .cp-block-body .cp-table tbody th { padding-left: 0; }

  .cp-blocks > article { padding: 36px 0; }
  .cp-block-title h4 { font-size: 21px; }
  .cp-block-body > dl > div { grid-template-columns: 1fr; gap: 10px; }
  .cp-chips li { font-size: 14px; padding: 6px 13px; }

  .cp-programs { margin-top: 72px; }
  .cp-program { gap: 28px; padding: 48px 0; scroll-margin-top: 90px; }
  .cp-program-head img { width: 50px; height: 50px; margin-bottom: 18px; }
  .cp-program-head h3 { font-size: 22px; }
  .cp-program-head p { font-size: 17px; }
  .cp-dose { padding: 26px 22px; }
  .cp-dose h4 { margin-bottom: 14px; font-size: 22px; font-weight: 700; }
  .cp-dose dl > div { grid-template-columns: 1fr; gap: 4px; padding: 12px 0; }
  .cp-dose dt { font-size: 14px; }

  .cp-check > article { padding: 32px 24px; }
  .cp-check h4 { font-size: 20px; margin-bottom: 20px; }
  .cp-check dt { font-size: 16px; }

  .cp-faq summary { gap: 12px; padding: 22px 10px; font-size: 16px; }
  .cp-faq-answer { gap: 12px; padding: 20px; border-radius: 12px; }
  .cp-faq-answer::before { font-size: 15px; }

  .cp-factors { margin-top: 24px; }
  .cp-factors > div { grid-template-columns: 1fr; gap: 4px; padding: 18px 4px; }
  .cp-factors dt { font-size: 15px; }
  .cp-factors dd { font-size: 15px; }
  .cp-why-body .cp-emph { margin-top: 24px; }
  .cp-numbered { margin: 24px 0; }
  .cp-why-body > p, .cp-guide-body > p, .cp-panel-body > p { font-size: 15px; }
  .cp-tiers { grid-template-columns: 1fr; gap: 12px; }
  .cp-tiers > li { min-height: 0; padding: 28px 24px; }
  .cp-tiers h4 { font-size: 22px; }
  .cp-tiers p { padding-top: 16px; font-size: 15px; }
  .cp-persona { grid-template-columns: 1fr; gap: 56px; }
  .cp-shell .cp-persona figure { margin-bottom: 16px; }
  .cp-persona h4 { font-size: 18px; }
  .cp-persona p { font-size: 15px; }
  .cp-numbered li { gap: 14px; padding: 18px 4px; font-size: 16px; }
  .cp-numbered li::before { width: 28px; height: 28px; font-size: 13px; }
  .cp-panel { padding: 36px 24px; }
  .cp-notice { margin-top: 32px; padding: 28px 24px; }
  .cp-notice h4 { font-size: 17px; }
  .cp-notice li { font-size: 14px; }

  .cp-finder { width: 100%; height: 100dvh; margin: 0; box-shadow: none; }
  .cp-finder-frame { grid-template-columns: 1fr; }
  .cp-finder-rail { display: none; }
  .cp-finder-top { padding: 16px 20px 0; }
  .cp-finder-meter { margin: 12px 20px 0; }
  .cp-finder-body { padding: 28px 20px 32px; }
  .cp-finder-foot { padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); }
  .cp-finder-foot .cp-btn { flex: 1; min-height: 50px; padding: 0 14px; font-size: 15px; }
  .cp-finder-foot-actions { flex: 1 1 auto; }
  .cp-finder-intro h4, .cp-finder-q h4, .cp-result-head h4 { font-size: 24px; }
  .cp-finder-intro > p, .cp-finder-q p { font-size: 15px; }
  .cp-finder-facts li { padding: 18px 10px; }
  .cp-finder-facts strong { font-size: 18px; }
  .cp-finder-facts span { font-size: 13px; }
  .cp-finder-q { margin-bottom: 28px; }
  .cp-fields { gap: 28px; }
  .cp-field legend, .cp-field-label { font-size: 16px; }
  .cp-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .cp-choice span { min-height: 50px; font-size: 15px; }
  .cp-number input[type="number"] { width: 140px; }
  .cp-finder-wait h4 { font-size: 21px; }
  .cp-result-summary-text { font-size: 15px; }
  .cp-result-text { padding: 22px 18px; font-size: 15px; }
  .cp-result-input dl > div { grid-template-columns: 1fr; gap: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .cp-shell *, .cp-finder * { transition: none !important; animation: none !important; }
}
