/* 누리 - 종합병원 테마의 뿌리.
   병원 화면은 급한 사람과 눈이 어두운 사람이 함께 본다.
   대비를 넉넉히 잡고, 색은 뜻이 있을 때만 쓴다. */

/* 코어에 함께 오는 글꼴을 쓴다. 바깥에서 받아오지 않는다 */
@font-face {
	font-family: 'Pretendard';
	src: url('../../../common/fonts/PretendardVariable.woff2') format('woff2-variations');
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
}

:root {
	/* 신뢰의 파랑. 의료 표기의 기본색으로 쓴다 */
	--nu-brand: #0b5cab;
	--nu-brand-dark: #084680;
	--nu-brand-soft: rgba(11, 92, 171, .07);
	--nu-brand-line: rgba(11, 92, 171, .22);

	/* 돌봄의 청록. 건강·안내 계열에만 쓴다 */
	--nu-accent: #00806d;
	--nu-accent-soft: rgba(0, 128, 109, .09);

	/* 급한 것 */
	--nu-urgent: #c4342a;
	--nu-urgent-soft: rgba(196, 52, 42, .08);

	--nu-ink: #16202b;
	--nu-ink-sub: #4d5c6b;
	--nu-muted: #8493a3;
	--nu-line: #e3e9ef;
	--nu-line-strong: #cdd7e1;
	--nu-bg: #ffffff;
	--nu-surface: #f5f8fb;
	--nu-surface-2: #eef3f8;
	--nu-deep: #0d2136;

	--nu-radius: 12px;
	--nu-radius-lg: 18px;
	--nu-radius-xl: 26px;
	--nu-radius-pill: 999px;
	--nu-shadow: 0 2px 18px rgba(13, 33, 54, .07);
	--nu-shadow-lg: 0 14px 44px rgba(13, 33, 54, .14);

	--nu-w: 1240px;
	--nu-font: 'Pretendard', 'Pretendard Variable', -apple-system, BlinkMacSystemFont, system-ui, 'Segoe UI', 'Malgun Gothic', sans-serif;

	color-scheme: light;
}

/* 코어 기본 여백을 지운다. 두지 않으면 화면 가장자리에 흰 테가 남는다 */
html, body { margin: 0; padding: 0; }
body { background: #ffffff; }

/* ── 바탕 ── */
.nu {
	font-family: var(--nu-font);
	font-size: 16px;
	line-height: 1.75;
	color: var(--nu-ink);
	background: var(--nu-bg);
	word-break: keep-all;
	-webkit-font-smoothing: antialiased;
}

.nu *, .nu *::before, .nu *::after { box-sizing: border-box; }
.nu a { color: inherit; text-decoration: none; }
.nu img { max-width: 100%; }
.nu button { font-family: inherit; }

/* 키보드로 다니는 사람이 자기 위치를 잃지 않게 한다 */
.nu :focus-visible { outline: 3px solid var(--nu-brand); outline-offset: 2px; border-radius: 4px; }

/* 화면 낭독기 전용 */
.nu-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 본문 바로가기. 키보드 사용자가 GNB 를 건너뛴다 */
.nu-skip { position: absolute; left: 50%; top: -60px; transform: translateX(-50%); z-index: 300; padding: 12px 24px; border-radius: 0 0 12px 12px; background: var(--nu-brand); color: #fff; font-size: 15px; font-weight: 700; transition: top .15s; }
.nu-skip:focus { top: 0; color: #fff; }

.nu-inner { width: 100%; max-width: var(--nu-w); margin: 0 auto; padding-left: 24px; padding-right: 24px; }
@media (max-width: 720px) { .nu-inner { padding-left: 18px; padding-right: 18px; } }

/* ── 글자 ── */
.nu h1, .nu h2, .nu h3, .nu h4 { margin: 0; font-weight: 800; letter-spacing: -.035em; line-height: 1.3; }
.nu-eyebrow { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 800; letter-spacing: .14em; color: var(--nu-brand); }
.nu-title { font-size: clamp(26px, 3.6vw, 38px); }
.nu-title-sm { font-size: clamp(21px, 2.6vw, 27px); }
.nu-lead { margin: 14px 0 0; font-size: 17px; line-height: 1.8; color: var(--nu-ink-sub); }

/* ── 단추 ──
   `.nu a { color: inherit }` 가 0,1,1 이라 클래스 하나짜리 규칙을 이긴다.
   링크로 쓰는 단추가 있으므로 a 를 붙여 같은 무게로 맞춘다. */
.nu-btn, .nu a.nu-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 13px 26px; border: 1px solid var(--nu-line-strong); border-radius: 10px; background: var(--nu-bg); font-size: 16px; font-weight: 700; color: var(--nu-ink); cursor: pointer; text-decoration: none; transition: background-color .15s, border-color .15s, color .15s; }
.nu-btn:hover, .nu a.nu-btn:hover { border-color: var(--nu-brand); color: var(--nu-brand); }
.nu-btn svg { width: 19px; height: 19px; fill: currentColor; flex: none; }

.nu-btn-primary, .nu a.nu-btn-primary { background: var(--nu-brand); border-color: var(--nu-brand); color: #fff; }
.nu-btn-primary:hover, .nu a.nu-btn-primary:hover { background: var(--nu-brand-dark); border-color: var(--nu-brand-dark); color: #fff; }

.nu-btn-accent, .nu a.nu-btn-accent { background: var(--nu-accent); border-color: var(--nu-accent); color: #fff; }
.nu-btn-accent:hover, .nu a.nu-btn-accent:hover { color: #fff; filter: brightness(1.08); }

.nu-btn-ghost, .nu a.nu-btn-ghost { background: transparent; border-color: rgba(255, 255, 255, .4); color: #fff; }
.nu-btn-ghost:hover, .nu a.nu-btn-ghost:hover { background: rgba(255, 255, 255, .12); border-color: #fff; color: #fff; }
.nu-btn-lg { min-height: 58px; padding: 16px 32px; font-size: 17.5px; }
.nu-btn-sm { min-height: 42px; padding: 9px 18px; font-size: 14.5px; }
.nu-btn-block { width: 100%; }

/* ── 딱지 ── */
.nu-chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 13px; border-radius: var(--nu-radius-pill); background: var(--nu-surface); font-size: 13px; font-weight: 700; color: var(--nu-ink-sub); }
.nu-chip.is-brand { background: var(--nu-brand-soft); color: var(--nu-brand); }
.nu-chip.is-accent { background: var(--nu-accent-soft); color: var(--nu-accent); }
.nu-chip.is-urgent { background: var(--nu-urgent-soft); color: var(--nu-urgent); }

/* ── 구역 ── */
.nu-sec { padding: 76px 0; }
.nu-sec.is-tight { padding: 52px 0; }
.nu-sec.is-surface { background: var(--nu-surface); }
.nu-sec-head { margin-bottom: 34px; }
.nu-sec-head.is-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.nu-sec-more { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; color: var(--nu-brand); }
.nu-sec-more:hover { text-decoration: underline; }
@media (max-width: 720px) { .nu-sec { padding: 52px 0; } }

/* ── 카드 바탕 ── */
.nu-card { border: 1px solid var(--nu-line); border-radius: var(--nu-radius-lg); background: var(--nu-bg); }

/* ── 표 ── */
.nu-table { width: 100%; border-collapse: collapse; border-top: 2px solid var(--nu-ink); }
.nu-table th, .nu-table td { padding: 15px 14px; border-bottom: 1px solid var(--nu-line); font-size: 15.5px; text-align: left; }
.nu-table th { font-size: 14px; font-weight: 800; color: var(--nu-ink-sub); background: var(--nu-surface); }

/* 넓은 표는 제 안에서만 가로로 흐른다 */
.nu-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ── 폼 ── */
.nu-field { margin-bottom: 16px; }
.nu-field label { display: block; margin-bottom: 7px; font-size: 14.5px; font-weight: 700; color: var(--nu-ink-sub); }
.nu-field input, .nu-field select, .nu-field textarea { width: 100%; min-height: 52px; padding: 14px 16px; border: 1px solid var(--nu-line-strong); border-radius: 10px; font-family: inherit; font-size: 16px; background: var(--nu-bg); color: var(--nu-ink); }
.nu-field textarea { min-height: 100px; line-height: 1.75; }
.nu-field input:focus, .nu-field select:focus, .nu-field textarea:focus { outline: none; border-color: var(--nu-brand); box-shadow: 0 0 0 3px var(--nu-brand-soft); }
.nu-field-help { margin: 7px 0 0; font-size: 13.5px; color: var(--nu-muted); }

/* 움직임을 싫어하는 사람에게는 움직이지 않는다 */
@media (prefers-reduced-motion: reduce) {
	.nu *, .nu *::before, .nu *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

@media print {
	.nu-skip, .nu-util, .nu-head, .nu-foot, .nu-quick, .nu-float { display: none !important; }
}
