/* =========================================================
   Silver Tree homepage
   레이아웃 단위: --u = 시안(1400px 기준 축소본)의 1px.
   본문 컨테이너 876u = 데스크톱 1200px. 시안 좌표를 그대로 옮겨 적기 위해 사용.
   ========================================================= */

@font-face { font-family: "SUIT"; font-weight: 300; font-display: swap; src: url("../assets/fonts/SUIT-Light.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 900; font-display: swap; src: url("../assets/fonts/SUIT-Heavy.woff2") format("woff2"); }
@font-face { font-family: "Avenir Next"; font-weight: 600; font-display: swap; src: local("Avenir Next Demi Bold"), local("AvenirNext-DemiBold"), url("../assets/fonts/AvenirNext-DemiBold.woff2") format("woff2"); }
@font-face { font-family: "Avenir Next"; font-weight: 700; font-display: swap; src: local("Avenir Next Bold"), local("AvenirNext-Bold"), url("../assets/fonts/AvenirNext-Bold.woff2") format("woff2"); }
@font-face { font-family: "Avenir Next"; font-weight: 800; font-display: swap; src: local("Avenir Next Heavy"), local("AvenirNext-Heavy"), url("../assets/fonts/AvenirNext-Heavy.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 400; font-display: swap; src: url("../assets/fonts/SUIT-Regular.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 500; font-display: swap; src: url("../assets/fonts/SUIT-Medium.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 600; font-display: swap; src: url("../assets/fonts/SUIT-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 700; font-display: swap; src: url("../assets/fonts/SUIT-Bold.woff2") format("woff2"); }
@font-face { font-family: "SUIT"; font-weight: 800; font-display: swap; src: url("../assets/fonts/SUIT-ExtraBold.woff2") format("woff2"); }

:root {
  --wrap: min(1200px, 100vw - 48px);
  --u: calc(var(--wrap) / 876);
  --bg: #2b2a2a;
  --text: #fff;
  --muted: #d4d4da;
  --sub: #bdbdc5;
  --line: rgba(255, 255, 255, .85);
  --accent: #f0b94a;
  --header-h: calc(var(--u) * 120);
  --ko: "SUIT", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --av: "Avenir Next", "SUIT", "Segoe UI", sans-serif;
  --serif: "KoPubWorldBatang", "KoPubWorld Batang", "Noto Serif KR", serif;
  --ink: #222;
  --grey: #595758;
  --navy: #0d3388;
  --red: #d0101b;
  --purple: #733f94;
  --suit: "SUIT", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --orange: #ea5503;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--ko);
  font-weight: 400;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ol, ul, dl, dd, figure { margin: 0; padding: 0; }
ol, ul { list-style: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.wrap { width: var(--wrap); margin: 0 auto; position: relative; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: calc(var(--u) * 172);
  transition: height .35s ease, background-color .35s ease, backdrop-filter .35s ease;
}
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand img { width: calc(var(--u) * 120); }
.gnb { display: flex; gap: calc(var(--u) * 23.5); }
.gnb a {
  position: relative;
  font-size: calc(var(--u) * 13.9);
  font-weight: 400;
  letter-spacing: -.01em;
  padding: 6px 0;
  opacity: .95;
}
.gnb a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--accent); transform: scaleX(0); transition: transform .25s ease;
}
.gnb a:hover::after, .gnb a.is-active::after { transform: scaleX(1); }
.site-header.is-scrolled {
  height: 76px;
  background: rgba(40, 38, 36, .72);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(255,255,255,.06);
}
.nav-toggle { display: none; }

/* ---------- Sections & backgrounds ---------- */
.sec {
  position: relative;
  background-color: var(--bg);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  padding: calc(var(--u) * 182) 0 calc(var(--u) * 110);
}
.bg-main     { background-image: url("../assets/img/bg-main.webp"); }
/* 같은 배경을 쓰는 연속 섹션이 이음새 없이 이어지도록 데스크톱에서는 고정 배경 */
@media (hover: hover) and (pointer: fine) and (min-width: 1024px) {
  .sec { background-attachment: fixed; background-position: center center; }
}

.sec-title {
  font-family: var(--en);
  font-weight: 700;
  font-size: calc(var(--u) * 64.5);
  line-height: 1;
  letter-spacing: -.035em;
  text-align: center;
}

.sec-head { text-align: center; margin-top: calc(var(--u) * -3); }
.sec-head h2 { font-size: calc(var(--u) * 30); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; }
.sec-head p { margin-top: calc(var(--u) * 15); font-size: calc(var(--u) * 16.5); line-height: 1.38; font-weight: 400; }

/* ---------- 섹션 테마 ---------- */
.sec.light { background: #f7f9f8; color: var(--ink); }
.sec.gray  { background: #e6e6e6; color: var(--ink); }
.sec.light, .sec.gray { background-image: none; padding-top: calc(var(--u) * 226); }

/* 헤더: 밝은 섹션 위에서는 회색 로고/글자 */
.brand { position: relative; display: block; }
.brand .logo-g { position: absolute; inset: 0; opacity: 0; }
.brand img { transition: opacity .3s ease; }
.site-header.on-light .brand .logo-w { opacity: 0; }
.site-header.on-light .brand .logo-g { opacity: 1; }
.site-header.on-light .gnb a { color: #555; }
.site-header.on-light.is-scrolled { background: rgba(247, 249, 248, .86); box-shadow: 0 1px 0 rgba(0,0,0,.06); }

/* ---------- 공통 머리글 ---------- */
.head { text-align: center; margin-top: calc(var(--u) * 72); }
.sec > .wrap > .head:first-child { margin-top: 0; }
.eyebrow { font-family: var(--av); font-weight: 600; font-size: calc(var(--u) * 22); line-height: 1.1; letter-spacing: -.01em; color: var(--orange); }
.head h2 { margin-top: calc(var(--u) * 17); font-family: var(--suit); font-weight: 800; font-size: calc(var(--u) * 37.4); line-height: 1.2; letter-spacing: -.03em; color: var(--navy); }
.dark .eyebrow { color: #fff; font-weight: 600; }
.dark .head h2 { color: #fff; }
.subhead { margin-top: calc(var(--u) * 51); text-align: center; font-family: var(--suit); font-weight: 700; font-size: calc(var(--u) * 26.8); color: var(--grey); letter-spacing: -.03em; }
.subhead.big { margin-top: calc(var(--u) * 50); font-size: calc(var(--u) * 30); }
.body-c { margin-top: calc(var(--u) * 14); text-align: center; font-family: var(--suit); font-weight: 300; font-size: calc(var(--u) * 19.3); line-height: calc(var(--u) * 30); letter-spacing: -.02em; }
.body-c.lead { margin-top: calc(var(--u) * 36); }
#apply .head { margin-top: calc(var(--u) * 100); }
#apply .head:first-child, #equipment .head:first-child { margin-top: 0; }
#equipment .head { margin-top: calc(var(--u) * 82); }
.photo { width: calc(var(--u) * 460); aspect-ratio: 460 / 333; margin: calc(var(--u) * 42) auto 0; overflow: hidden; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.red { color: var(--red); }

/* ---------- 1. 센터소개 ---------- */
#intro { padding-top: calc(var(--u) * 232); min-height: calc(var(--u) * 1313); }
.intro { text-align: center; }
.intro-kicker { font-family: var(--suit); font-weight: 400; font-size: calc(var(--u) * 33.8); letter-spacing: -.03em; line-height: 1.2; }
.intro-kicker b { font-weight: 800; }
.quote { margin-top: calc(var(--u) * 39); font-family: var(--serif); font-weight: 300; font-size: calc(var(--u) * 43); line-height: calc(var(--u) * 55); letter-spacing: -.03em; }
.letter { margin-top: calc(var(--u) * 81); font-family: var(--suit); font-weight: 300; font-size: calc(var(--u) * 22); line-height: calc(var(--u) * 43); letter-spacing: -.02em; }
.letter p + p { margin-top: calc(var(--u) * 43); }
.letter .sign { margin-top: calc(var(--u) * 48); font-weight: 700; font-size: calc(var(--u) * 21.6); }

/* ---------- 2. 약속 + 오시는 길 ---------- */
#promise { padding-top: calc(var(--u) * 228); }
.promises { display: grid; grid-template-columns: repeat(3, calc(var(--u) * 292)); justify-content: center; margin-top: calc(var(--u) * 35); text-align: center; }
.promises li { display: flex; flex-direction: column; align-items: center; }
.promises img { height: calc(var(--u) * 116); width: auto; }
.promises .i2, .promises .i3 { height: calc(var(--u) * 102); margin-top: calc(var(--u) * 12); }
.promises h3 { margin-top: calc(var(--u) * 30); font-family: var(--suit); font-weight: 800; font-size: calc(var(--u) * 27); letter-spacing: -.04em; line-height: 1.2; }
.promises p { margin-top: calc(var(--u) * 18); font-family: var(--suit); font-weight: 300; font-size: calc(var(--u) * 19.5); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
#location { margin-top: calc(var(--u) * 102); scroll-margin-top: 80px; }
.map { width: calc(var(--u) * 756); margin: calc(var(--u) * 40) 0 0 calc(var(--u) * 60); }
.map svg { display: block; width: 100%; height: auto; }
.transit { display: grid; grid-template-columns: calc(var(--u) * 77) auto; width: max-content; margin: calc(var(--u) * 26) 0 0 calc(var(--u) * 405); font-family: var(--suit); font-size: calc(var(--u) * 19.9); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.transit dt { font-weight: 700; }
.transit dd { font-weight: 300; }
.transit dt:nth-of-type(2) { font-weight: 300; margin-top: 0; }

/* ---------- 3. 장기요양보험 ---------- */
.two-col { display: grid; grid-template-columns: 1fr 1fr; margin-top: calc(var(--u) * 68); text-align: center; font-family: var(--suit); }
.two-col h3 { font-weight: 700; font-size: calc(var(--u) * 26.9); color: var(--grey); letter-spacing: -.03em; line-height: 1.2; }
.two-col p { margin-top: calc(var(--u) * 26); font-weight: 300; font-size: calc(var(--u) * 19.5); line-height: calc(var(--u) * 30); letter-spacing: -.02em; }
.two-col p + p { margin-top: calc(var(--u) * 30); }
.two-col b { font-weight: 800; color: #111; }
.two-col em { font-style: normal; font-weight: 600; color: var(--red); }

.grades { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(var(--u) * 14); margin-top: calc(var(--u) * 42); text-align: center; font-family: var(--suit); }
.grades li { background: #e8e8e8; border-radius: calc(var(--u) * 10); padding: calc(var(--u) * 26) 0 calc(var(--u) * 30); }
.grades h3 { font-weight: 800; font-size: calc(var(--u) * 25); color: #802630; letter-spacing: -.03em; line-height: 1.2; }
.grades .score { margin-top: calc(var(--u) * 6); font-weight: 700; font-size: calc(var(--u) * 25); color: #eb6736; letter-spacing: -.03em; line-height: 1.2; }
.grades p:last-child { margin-top: calc(var(--u) * 14); font-weight: 300; font-size: calc(var(--u) * 19.7); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.grades b { display: block; font-weight: 800; color: #111; }

.copay { display: grid; grid-template-columns: calc(var(--u) * 164) 1fr; align-items: center; margin-top: calc(var(--u) * 18); background: #fff; border-radius: calc(var(--u) * 10); padding: calc(var(--u) * 14) 0; font-family: var(--suit); }
.copay h3 { text-align: center; font-weight: 700; font-size: calc(var(--u) * 22); color: var(--grey); letter-spacing: -.03em; border-right: 1px solid #c9c9c9; line-height: calc(var(--u) * 116); }
.copay dl { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; }
.copay dt { font-weight: 700; font-size: calc(var(--u) * 16); color: var(--grey); }
.copay dd { font-weight: 300; font-size: calc(var(--u) * 15.5); color: #333; }
.copay strong { display: block; margin: calc(var(--u) * 6) 0 calc(var(--u) * 2); font-weight: 800; font-size: calc(var(--u) * 46); line-height: 1.1; color: var(--red); letter-spacing: -.04em; }
.copay strong small { font-size: .55em; }

.cta-line { display: flex; align-items: center; gap: calc(var(--u) * 16); margin: calc(var(--u) * 36) 0 0 calc(var(--u) * 46); font-family: var(--suit); }
.cta-line .l-nhis { width: calc(var(--u) * 150); }
.cta-line .l-ltc { width: calc(var(--u) * 100); }
.cta-line a { margin-left: calc(var(--u) * 12); font-weight: 700; font-size: calc(var(--u) * 25); color: var(--grey); letter-spacing: -.03em; }
.cta-line a:hover { color: var(--navy); }

/* ---------- 4. 등급신청 ---------- */
.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(var(--u) * 14); margin-top: calc(var(--u) * 42); text-align: center; font-family: var(--suit); }
.steps li { background: #fff; border-radius: calc(var(--u) * 10); padding: calc(var(--u) * 14) 0 calc(var(--u) * 26); }
.step { font-family: var(--av); font-weight: 700; color: var(--purple); font-size: calc(var(--u) * 19); line-height: 1.1; }
.step b { display: block; font-weight: 800; font-size: calc(var(--u) * 33); letter-spacing: -.01em; }
.steps h3 { margin-top: calc(var(--u) * 12); font-weight: 700; font-size: calc(var(--u) * 22); color: var(--grey); letter-spacing: -.04em; }
.steps p { margin-top: calc(var(--u) * 20); font-weight: 300; font-size: calc(var(--u) * 19.5); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.steps p.red { margin-top: calc(var(--u) * 16); font-weight: 800; color: var(--red); }
.steps p.dark-b { font-weight: 800; color: #111; }
.steps .step { margin-top: 0; }

.num { font-family: var(--av); font-weight: 800; font-size: calc(var(--u) * 34); line-height: 1; letter-spacing: -.01em; }
.red-n { color: #c75249; } .pink-n { color: #e61e88; } .green-n { color: #2c8a56; }
.red-t { font-style: normal; color: #c75249; } .pink-t { font-style: normal; color: #e61e88; }
.split-card { display: grid; grid-template-columns: 1fr 1fr; margin-top: calc(var(--u) * 58); background: #fff; border-radius: calc(var(--u) * 12); padding: calc(var(--u) * 30) 0 calc(var(--u) * 40); text-align: center; font-family: var(--suit); position: relative; }
.split-card::before { content: ""; position: absolute; left: 50%; top: calc(var(--u) * 30); bottom: calc(var(--u) * 40); border-left: 1px dashed #777; }
.split-card > div { display: flex; flex-direction: column; align-items: center; }
.split-card .si { height: calc(var(--u) * 110); width: auto; margin-bottom: calc(var(--u) * 26); }
.split-card h3 { margin-top: calc(var(--u) * 16); font-weight: 700; font-size: calc(var(--u) * 26); line-height: calc(var(--u) * 38); color: var(--grey); letter-spacing: -.04em; }
.split-card p:last-child { margin-top: calc(var(--u) * 24); font-weight: 300; font-size: calc(var(--u) * 19.5); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.split-card b { font-weight: 800; color: #111; }
.split-card.allowance { padding-top: calc(var(--u) * 36); }

.warn { margin-top: calc(var(--u) * 42); text-align: center; font-family: var(--suit); }
.warn img { width: calc(var(--u) * 76); margin: 0 auto; }
.warn p { margin-top: calc(var(--u) * 14); font-weight: 800; font-size: calc(var(--u) * 23); color: #111; letter-spacing: -.04em; }
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 18); margin-top: calc(var(--u) * 30); text-align: center; font-family: var(--suit); }
.cards3 li { background: #fff; border-radius: calc(var(--u) * 10); padding: calc(var(--u) * 34) 0 calc(var(--u) * 36); }
.cards3 h3 { font-weight: 700; font-size: calc(var(--u) * 22.5); color: var(--grey); letter-spacing: -.04em; }
.cards3 p { margin-top: calc(var(--u) * 22); font-weight: 300; font-size: calc(var(--u) * 19.5); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.cards3 b.red { font-weight: 800; }
.cards3.req { margin-top: calc(var(--u) * 46); }

.banner { display: block; text-align: center; margin: calc(var(--u) * 30) auto 0; width: calc(var(--u) * 736); border-radius: calc(var(--u) * 10); padding: calc(var(--u) * 26) 0; color: #fff; font-family: var(--suit); font-weight: 700; font-size: calc(var(--u) * 19); line-height: calc(var(--u) * 30); letter-spacing: -.03em; }
.banner b { font-weight: 800; }
.red-bg { background: #cd371e; }
.green-bg { background: #0f6b37; font-weight: 500; }
.navy-bg { background: var(--navy); margin-top: calc(var(--u) * 60); }
a.banner:hover { filter: brightness(1.08); }

/* ---------- 5. 방문요양 ---------- */
.care4 { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 14) calc(var(--u) * 14); margin-top: calc(var(--u) * 54); font-family: var(--suit); }
.care4 li { background: #fff; border-radius: calc(var(--u) * 10); overflow: hidden; text-align: center; display: flex; flex-direction: column; }
.care4 .t { padding: calc(var(--u) * 26) calc(var(--u) * 6) calc(var(--u) * 24); }
.care4 h3 { margin-top: calc(var(--u) * 10); font-weight: 800; font-size: calc(var(--u) * 26); color: #2c8a56; letter-spacing: -.04em; }
.care4 .tags { margin-top: calc(var(--u) * 12); font-weight: 700; font-size: calc(var(--u) * 18.5); color: #222; letter-spacing: -.04em; }
.care4 p:last-child { margin-top: calc(var(--u) * 16); font-weight: 300; font-size: calc(var(--u) * 19.3); line-height: calc(var(--u) * 29); letter-spacing: -.03em; }
.care4 img { width: 100%; aspect-ratio: 431 / 322; object-fit: cover; margin-top: auto; }
.care4 + .banner { margin-top: calc(var(--u) * 26); }

/* ---------- 6. 가족요양 ---------- */
.family5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(var(--u) * 14); margin-top: calc(var(--u) * 46); font-family: var(--suit); }
.family5 li { background: #fff; border-radius: calc(var(--u) * 10); display: flex; flex-direction: column; align-items: center; padding: calc(var(--u) * 10) 0 calc(var(--u) * 24); font-weight: 700; font-size: calc(var(--u) * 21); color: var(--grey); letter-spacing: -.03em; }
.family5 img { width: calc(var(--u) * 156); margin-bottom: calc(var(--u) * 8); }
.note { margin-top: calc(var(--u) * 34); text-align: center; font-family: var(--suit); font-weight: 800; font-size: calc(var(--u) * 21); color: #111; letter-spacing: -.04em; }

/* ---------- 7. 복지용구 ---------- */
.items { display: grid; margin-top: calc(var(--u) * 46); font-family: var(--suit); }
.items4 { grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 11); }
.items3 { grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 16) calc(var(--u) * 18); }
.items li { background: #fff; border-radius: calc(var(--u) * 10); overflow: hidden; display: flex; flex-direction: column; text-align: center; }
.items .t { padding: calc(var(--u) * 30) calc(var(--u) * 4) calc(var(--u) * 26); }
.items h3 { font-weight: 700; font-size: calc(var(--u) * 22); color: var(--grey); letter-spacing: -.04em; }
.items p { margin-top: calc(var(--u) * 16); font-weight: 300; font-size: calc(var(--u) * 18.5); line-height: calc(var(--u) * 27); letter-spacing: -.04em; }
.items img { width: 100%; object-fit: cover; margin-top: auto; }
.items4 img { aspect-ratio: 210 / 139; }
.items3 img { aspect-ratio: 279 / 188; }
#equipment { padding-bottom: calc(var(--u) * 140); }

/* 모바일 전화 버튼 */
.call-fab { display: none; }

/* ---------- Footer ---------- */
.site-footer { background: #232221; padding: 36px 0 44px; font-size: 13px; color: #9a9aa5; line-height: 1.8; }
.footer-logo { width: 120px; margin-bottom: 14px; opacity: .85; }
.site-footer span { margin: 0 .5em; opacity: .4; }
.site-footer .copy { margin-top: 6px; color: #6d6d78; }

/* ---------- Reveal ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .scroll-cue span { animation: none; }
}

/* =========================================================
   Tablet / Mobile
   ========================================================= */
@media (max-width: 1023px) {
  :root { --wrap: calc(100vw - 48px); }
  .site-header { height: 76px; }
  .brand img { width: 104px; }
  .gnb a { font-size: 14px; }
  .gnb { gap: 18px; }
}

@media (max-width: 767px) {
  :root { --wrap: calc(100vw - 32px); }
  body { font-size: 15px; }
  .site-header, .site-header.is-scrolled { height: 64px; }
  .brand img { width: 96px; }

  .nav-toggle {
    display: block; position: relative; z-index: 2; width: 40px; height: 40px; margin-right: -8px;
    background: none; border: 0; cursor: pointer; padding: 0;
  }
  .nav-toggle span { position: absolute; left: 10px; right: 10px; height: 2px; background: #fff; transition: transform .3s ease, opacity .2s ease; }
  .nav-toggle span:nth-child(1) { top: 13px; }
  .nav-toggle span:nth-child(2) { top: 19px; }
  .nav-toggle span:nth-child(3) { top: 25px; }
  .nav-open .nav-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .nav-open .nav-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .gnb {
    position: fixed; inset: 0; flex-direction: column; justify-content: center; align-items: center; gap: 22px;
    background: rgba(34, 33, 32, .96); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s;
  }
  .nav-open .gnb { opacity: 1; visibility: visible; }
  .gnb a { font-size: 20px; font-weight: 700; }
  .nav-open { overflow: hidden; }

  .sec { padding: 104px 0 72px; }
  .sec-title { font-size: 44px; }
  .sec-head h2 { font-size: 26px; }
  .sec-head p { font-size: 15px; margin-top: 10px; }

  .head { margin-top: 64px; }
  .eyebrow { font-size: 14px; }
  .head h2 { margin-top: 8px; font-size: 23px; }
  .subhead, .subhead.big { margin-top: 26px; font-size: 18px; }
  .body-c, .body-c.lead { margin-top: 16px; font-size: 15px; line-height: 1.75; }
  .body-c br, .letter br, .promises p br { display: none; }
  .photo { width: 100%; margin-top: 24px; }

  #intro { padding-top: 110px; min-height: 100svh; }
  .intro-kicker { font-size: 21px; }
  .quote { margin-top: 26px; font-size: 24px; line-height: 1.5; }
  .letter { margin-top: 36px; font-size: 15px; line-height: 1.85; text-align: left; }
  .letter p + p { margin-top: 18px; }
  .letter .sign { text-align: center; margin-top: 26px; }

  #promise { padding-top: 90px; }
  .promises { grid-template-columns: 1fr; row-gap: 40px; margin-top: 32px; }
  .promises img, .promises .i2, .promises .i3 { height: 72px; margin-top: 0; }
  .promises h3 { margin-top: 16px; font-size: 19px; }
  .promises p { margin-top: 8px; font-size: 15px; line-height: 1.7; }
  #location { margin-top: 72px; }
  .map { width: 100%; margin: 26px 0 0; }
  .transit { width: auto; margin: 20px 0 0; grid-template-columns: 58px auto; font-size: 15px; line-height: 1.75; }

  .two-col { grid-template-columns: 1fr; row-gap: 36px; margin-top: 30px; }
  .two-col h3 { font-size: 19px; }
  .two-col p { margin-top: 12px; font-size: 15px; line-height: 1.75; }
  .two-col p + p { margin-top: 14px; }

  .grades { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 26px; }
  .grades li { padding: 18px 6px 20px; }
  .grades li:last-child { grid-column: 1 / -1; }
  .grades h3, .grades .score { font-size: 18px; }
  .grades p:last-child { margin-top: 8px; font-size: 13.5px; line-height: 1.65; }
  .copay { grid-template-columns: 1fr; padding: 18px 0; }
  .copay h3 { border-right: 0; line-height: 1.4; font-size: 17px; margin-bottom: 12px; }
  .copay dt { font-size: 12.5px; }
  .copay dd { font-size: 11.5px; }
  .copay strong { font-size: 30px; }
  .cta-line { flex-wrap: wrap; justify-content: center; margin: 26px 0 0; gap: 12px; }
  .cta-line .l-nhis { width: 110px; } .cta-line .l-ltc { width: 76px; }
  .cta-line a { margin: 4px 0 0; width: 100%; text-align: center; font-size: 17px; }

  .steps { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 26px; }
  .steps li { padding: 14px 6px 20px; }
  .steps li:last-child { grid-column: 1 / -1; }
  .step { font-size: 14px; } .step b { font-size: 24px; }
  .steps h3 { font-size: 16px; margin-top: 8px; }
  .steps p, .steps p.red { margin-top: 10px; font-size: 13.5px; line-height: 1.65; }
  .steps p br { display: none; }

  .num { font-size: 26px; }
  .split-card { grid-template-columns: 1fr; row-gap: 34px; margin-top: 28px; padding: 26px 12px 30px; }
  .split-card::before { display: none; }
  .split-card > div + div { border-top: 1px dashed #999; padding-top: 30px; }
  .split-card .si { height: 76px; margin-bottom: 14px; }
  .split-card h3 { margin-top: 10px; font-size: 18px; line-height: 1.45; }
  .split-card p:last-child { margin-top: 14px; font-size: 14px; line-height: 1.75; }
  .split-card p br { display: inline; }

  .warn { margin-top: 26px; }
  .warn img { width: 56px; }
  .warn p { font-size: 16px; }
  .cards3, .cards3.req { grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
  .cards3 li { padding: 20px 10px 22px; }
  .cards3 h3 { font-size: 17px; }
  .cards3 p { margin-top: 10px; font-size: 14px; line-height: 1.7; }
  .banner { width: 100%; padding: 18px 12px; font-size: 14.5px; line-height: 1.7; }

  .care4 { grid-template-columns: 1fr; gap: 14px; margin-top: 26px; }
  .care4 .t { padding: 22px 12px 20px; }
  .care4 h3 { font-size: 20px; }
  .care4 .tags { font-size: 13px; }
  .care4 p:last-child { font-size: 14px; line-height: 1.7; }

  .family5 { grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 26px; }
  .family5 li { font-size: 13px; padding: 6px 0 14px; }
  .family5 img { width: 100%; margin-bottom: 4px; }
  .note { margin-top: 20px; font-size: 14px; line-height: 1.6; }

  .items { margin-top: 24px; }
  .items4, .items3 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .items .t { padding: 16px 6px 14px; }
  .items h3 { font-size: 15px; }
  .items p { margin-top: 8px; font-size: 12.5px; line-height: 1.6; }
  .items p br { display: none; }
  #equipment { padding-bottom: 80px; }

  .call-fab { display: block; position: fixed; right: 16px; bottom: 16px; z-index: 40; padding: 12px 18px; border-radius: 999px; background: var(--navy); color: #fff; font-family: var(--suit); font-weight: 700; font-size: 15px; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
  .site-header.on-light .nav-toggle span { background: #444; }

  .site-footer { font-size: 12px; }
  .site-footer span { display: none; }
}
