/* 广州富力医院官网 — 品牌样式 */
:root {
  --purple: #724c94;
  --blue-mid: #5875b6;
  --blue-light: #7ab8e8;
  --gradient: linear-gradient(135deg, #724c94 0%, #5875b6 50%, #7ab8e8 100%);
  --gradient-soft: linear-gradient(135deg, rgba(114, 76, 148, 0.08) 0%, rgba(122, 184, 232, 0.12) 100%);
  --text: #1f2937;
  --text-muted: #6b7280;
  --bg: #ffffff;
  --bg-soft: #f8fafc;
  --border: #e5e7eb;
  --radius: 1.25rem;
  --radius-pill: 9999px;
  --shadow: 0 10px 40px -12px rgba(114, 76, 148, 0.18);
  --shadow-sm: 0 4px 16px -4px rgba(0, 0, 0, 0.08);
  --nav-h: 4.75rem;
  --max: 1200px;
  --nav-blue: #1e4d8c;
  --panel-blue: #d7e6f5;
  --panel-blue-deep: #c5daf0;
  --font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font);
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

ul {
  list-style: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

/* Layout */
.container {
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}

.section {
  padding: 5rem 0;
}

.section-soft {
  background: var(--bg-soft);
}

.section-label {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--purple);
  margin-bottom: 0.75rem;
}

.section-title {
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}

.section-desc {
  color: var(--text-muted);
  font-size: 1.05rem;
  max-width: min(100%, 52rem);
  line-height: 1.7;
  word-break: keep-all;
  overflow-wrap: normal;
}

.section-head {
  margin-bottom: 2.75rem;
}

.section-head.center {
  text-align: center;
}

.section-head.center .section-desc {
  margin-inline: auto;
  white-space: nowrap;
  max-width: none;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1.6rem;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: 0.95rem;
  border: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  background: var(--gradient);
  color: #fff;
  box-shadow: 0 8px 24px -8px rgba(114, 76, 148, 0.55);
}

.btn-primary:hover {
  box-shadow: 0 12px 28px -8px rgba(114, 76, 148, 0.65);
}

.btn-outline {
  background: transparent;
  color: var(--purple);
  border: 1.5px solid var(--purple);
}

.btn-outline:hover {
  background: rgba(114, 76, 148, 0.06);
}

.btn-white {
  background: #fff;
  color: var(--purple);
}

.btn-ghost-white {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.75);
}

.btn-ghost-white:hover {
  background: rgba(255, 255, 255, 0.12);
}

.btn-sm {
  padding: 0.55rem 1.15rem;
  font-size: 0.875rem;
}

/* ========== Header (参考曜影：白底双层导航) ========== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

.header-main {
  background: #fff;
}

.nav {
  height: var(--nav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.logo {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-shrink: 0;
}

.logo-mark {
  width: 2.6rem;
  height: 2.6rem;
  flex-shrink: 0;
}

/* 官方 Logo 完整锁合（图标 + 中英文） */
.logo-img {
  height: 3rem;
  width: auto;
  max-width: min(280px, 42vw);
  display: block;
  object-fit: contain;
  object-position: left center;
}

.logo-text {
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--nav-blue);
}

.logo-text small {
  display: block;
  font-weight: 400;
  font-size: 0.7rem;
  color: #7a8a9a;
  letter-spacing: 0.04em;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex: 1;
  justify-content: center;
}

/* 参考曜影等医疗官网主导航字号：约 16px */
.nav-links > a,
.nav-item > .nav-link-btn {
  padding: 0.65rem 1.05rem;
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--nav-blue);
  border-radius: 0;
  position: relative;
  transition: color 0.15s ease;
  white-space: nowrap;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.nav-item > .nav-link-btn::after {
  content: "";
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.65;
  margin-top: 2px;
}

.nav-links > a:hover,
.nav-links > a.active,
.nav-item:hover > .nav-link-btn,
.nav-item.is-open > .nav-link-btn,
.nav-item > .nav-link-btn.active {
  color: var(--purple);
  background: transparent;
}

.nav-links > a.active::after,
.nav-links > a:hover::after {
  content: "";
  position: absolute;
  left: 1.05rem;
  right: 1.05rem;
  bottom: 0.2rem;
  height: 2.5px;
  background: var(--purple);
  border-radius: 1px;
}

/* 下拉菜单 */
.nav-item {
  position: relative;
}

.nav-dropdown {
  position: absolute;
  top: calc(100% - 0.15rem);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 10.5rem;
  padding: 0.45rem 0;
  background: #fff;
  border: 1px solid #e8eef5;
  border-radius: 0.75rem;
  box-shadow: 0 12px 32px rgba(20, 40, 80, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index: 50;
}

.nav-dropdown a {
  display: block;
  padding: 0.65rem 1.15rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: #2a4a72;
  white-space: nowrap;
  transition: background 0.12s ease, color 0.12s ease;
}

.nav-dropdown a:hover,
.nav-dropdown a.active {
  background: rgba(114, 76, 148, 0.06);
  color: var(--purple);
}

.nav-item:hover .nav-dropdown,
.nav-item.is-open .nav-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* ========== 查找科室（目录 + 详情） ========== */
.dept-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.dept-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.dept-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1.1rem;
  padding: 1.4rem 1.35rem 1.15rem;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  display: flex;
  flex-direction: column;
  min-height: 11.5rem;
}

.dept-card:hover,
.dept-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: rgba(114, 76, 148, 0.25);
  outline: none;
}

.dept-card-cat {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--purple);
  letter-spacing: 0.04em;
  margin-bottom: 0.55rem;
}

.dept-card-name {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1a3358;
  margin-bottom: 0.25rem;
}

.dept-card-en {
  font-size: 0.8rem;
  color: #7a8fa8;
  margin-bottom: 0.75rem;
  line-height: 1.4;
}

.dept-card-desc {
  font-size: 0.92rem;
  color: var(--text-muted);
  line-height: 1.6;
  flex: 1;
}

.dept-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eef2f7;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--nav-blue);
}

.dept-card:hover .dept-card-foot {
  color: var(--purple);
}

.dept-card-foot .arrow {
  transition: transform 0.15s ease;
}

.dept-card:hover .dept-card-foot .arrow {
  transform: translateX(3px);
}

/* 科室详情 */
.dept-detail-page {
  padding: 2rem 0 4rem;
  background: #f7fafc;
  min-height: 60vh;
}

.dept-back-btn {
  cursor: pointer;
}

.dept-detail-layout {
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  display: block;
}

.dept-detail-main {
  background: #fff;
  border-radius: 1.2rem;
  border: 1px solid #e8eef5;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: 0 8px 28px rgba(20, 40, 80, 0.04);
}

.dept-detail-cat {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--purple);
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}

.dept-detail-title {
  font-size: clamp(1.55rem, 2.5vw, 2rem);
  font-weight: 700;
  color: #1a3358;
  margin-bottom: 0.35rem;
}

.dept-detail-en {
  font-size: 0.95rem;
  color: #7a8fa8;
  margin-bottom: 1rem;
}

.dept-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.dept-chip {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(114, 76, 148, 0.08);
  color: var(--purple);
  font-size: 0.82rem;
  font-weight: 600;
}

.dept-block {
  margin-bottom: 1.5rem;
}

.dept-block h2 {
  font-size: 1.1rem;
  color: #1a3358;
  margin-bottom: 0.65rem;
}

.dept-block p {
  font-size: 0.98rem;
  line-height: 1.85;
  color: #3d4f63;
}

.dept-service-list {
  margin: 0;
  padding-left: 1.15rem;
  color: #3d4f63;
  font-size: 0.95rem;
  line-height: 1.8;
}

.dept-service-list li {
  margin-bottom: 0.35rem;
}

.dept-related h3 {
  font-size: 1.1rem;
  color: #1a3358;
  margin-bottom: 0.85rem;
}

.dept-related-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}

.dept-doc-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-align: left;
  padding: 0.65rem 0.75rem;
  border-radius: 0.85rem;
  border: 1px solid #e8eef5;
  background: #f8fafc;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.dept-doc-card:hover {
  border-color: rgba(114, 76, 148, 0.3);
  box-shadow: var(--shadow-sm);
}

.dept-doc-card img {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  flex-shrink: 0;
  background: #e8eef5;
}

.dept-doc-card strong {
  display: block;
  font-size: 0.95rem;
  color: #1a3358;
}

.dept-doc-card span {
  display: block;
  font-size: 0.78rem;
  color: #7a8fa8;
  line-height: 1.35;
  margin-top: 0.15rem;
}

.dept-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid #eef2f7;
}

/* 科室详情侧栏「快速联系」已移除；预约/客服使用全站右侧悬浮按钮 */

/* 通用侧栏二维码（体检套餐详情等仍使用） */
.dept-aside-qr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  text-align: center;
  margin-bottom: 1.15rem;
}

.dept-aside-qr img {
  width: 100%;
  max-width: 110px;
  height: auto;
  margin: 0 auto 0.4rem;
  border-radius: 0.35rem;
  background: #fff;
  padding: 0.25rem;
}

.dept-aside-qr span {
  font-size: 0.78rem;
  color: #2a4a72;
  font-weight: 600;
}

.dept-aside-phone {
  font-size: 0.88rem;
  color: #4a6fa5;
  line-height: 1.5;
  text-align: center;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.55);
}

.dept-aside-phone a {
  display: inline-block;
  margin-top: 0.2rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--nav-blue);
}

/* ========== 体检套餐（参考曜影健康套餐列表） ========== */
.pkg-hero .container h1 {
  letter-spacing: -0.02em;
}

.pkg-advantages {
  background: #fff;
  border-bottom: 1px solid #eef2f7;
  padding: 1.25rem 0;
}

.pkg-adv-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.pkg-adv-item {
  padding: 0.35rem 0.25rem;
}

.pkg-adv-item strong {
  display: block;
  font-size: 0.95rem;
  color: #1a3358;
  margin-bottom: 0.25rem;
}

.pkg-adv-item span {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.45;
}

.pkg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.pkg-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1.15rem;
  padding: 1.35rem 1.3rem 1.2rem;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  min-height: 100%;
}

.pkg-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: rgba(114, 76, 148, 0.22);
}

.pkg-card-head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.75rem;
}

.pkg-badge {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #724c94, #5875b6);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
}

.pkg-cat {
  font-size: 0.78rem;
  font-weight: 600;
  color: #4a6fa5;
}

.pkg-gender {
  display: inline-block;
  margin-left: auto;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.pkg-gender.male {
  background: rgba(30, 77, 140, 0.1);
  color: #1e4d8c;
}

.pkg-gender.female {
  background: rgba(190, 64, 120, 0.1);
  color: #b8326e;
}

.pkg-gender.both {
  background: rgba(114, 76, 148, 0.1);
  color: var(--purple);
}

.pkg-name {
  font-size: 1.2rem;
  font-weight: 700;
  color: #1a3358;
  margin-bottom: 0.2rem;
}

.pkg-en {
  font-size: 0.8rem;
  color: #8aa0b8;
  margin-bottom: 0.75rem;
}

.pkg-meta {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: #5b6b7c;
  margin-bottom: 0.85rem;
  line-height: 1.45;
}

.pkg-highlights {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  flex: 1;
}

.pkg-highlights li {
  position: relative;
  padding-left: 0.9rem;
  font-size: 0.9rem;
  color: #3d4f63;
  line-height: 1.55;
  margin-bottom: 0.3rem;
}

.pkg-highlights li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--purple);
}

.pkg-foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.95rem;
  border-top: 1px solid #eef2f7;
  margin-top: auto;
}

.pkg-price strong {
  display: block;
  font-size: 1.25rem;
  color: var(--purple);
  font-weight: 700;
  line-height: 1.2;
}

.pkg-price small {
  display: block;
  font-size: 0.75rem;
  color: #8aa0b8;
  margin-top: 0.15rem;
}

.pkg-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.pkg-step {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1.35rem 1.15rem;
  text-align: center;
}

.pkg-step .num {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--purple);
  letter-spacing: 0.08em;
  margin-bottom: 0.55rem;
}

.pkg-step h3 {
  font-size: 1.05rem;
  margin-bottom: 0.4rem;
  color: #1a3358;
}

.pkg-step p {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.5;
}

/* 套餐详情弹层 */
.pkg-overlay {
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(20, 35, 60, 0.45);
  backdrop-filter: blur(4px);
}

.pkg-detail {
  position: relative;
  width: min(100%, 920px);
  max-height: min(90vh, 840px);
  overflow: auto;
  background: #f7fafc;
  border-radius: 1.2rem;
  box-shadow: 0 28px 80px -20px rgba(15, 40, 80, 0.35);
  padding: clamp(1.35rem, 3vw, 2rem);
}

.pkg-detail-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.75fr;
  gap: 1.25rem;
  align-items: start;
}

.pkg-detail-main {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid #e8eef5;
  padding: 1.5rem 1.4rem;
}

.pkg-detail-top {
  margin-bottom: 0.65rem;
}

.pkg-detail-main h2 {
  font-size: 1.45rem;
  color: #1a3358;
  margin-bottom: 0.25rem;
}

.pkg-detail-price {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin: 0.85rem 0 1.15rem;
}

.pkg-detail-price strong {
  font-size: 1.5rem;
  color: var(--purple);
}

.pkg-detail-price span {
  font-size: 0.85rem;
  color: #8aa0b8;
}

.pkg-detail-block {
  margin-bottom: 1.15rem;
}

.pkg-detail-block h3 {
  font-size: 1rem;
  color: #1a3358;
  margin-bottom: 0.45rem;
}

.pkg-detail-block > p {
  font-size: 0.95rem;
  color: #3d4f63;
  line-height: 1.75;
}

.pkg-detail-group {
  margin-bottom: 0.85rem;
}

.pkg-detail-group h4 {
  font-size: 0.9rem;
  color: var(--purple);
  margin-bottom: 0.35rem;
}

.pkg-detail-group ul {
  margin: 0;
  padding-left: 1.1rem;
  color: #3d4f63;
  font-size: 0.92rem;
  line-height: 1.7;
}

.pkg-disclaimer {
  font-size: 0.8rem;
  color: #8aa0b8;
  line-height: 1.55;
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eef2f7;
}

.pkg-detail-aside {
  background: linear-gradient(165deg, #e8f1fb 0%, #dce8f6 100%);
  border-radius: 1rem;
  border: 1px solid #d5e4f4;
  padding: 1.35rem 1.2rem;
  position: sticky;
  top: 0.5rem;
}

.pkg-detail-aside h3 {
  font-size: 1.05rem;
  color: #1a3358;
  margin-bottom: 0.4rem;
}

.pkg-detail-aside > p {
  font-size: 0.9rem;
  color: #4a6fa5;
  margin-bottom: 1rem;
  line-height: 1.55;
}

/* ========== 保险服务 · 商保合作 ========== */
.ins-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.ins-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 0.9rem;
  padding: 1.1rem 0.85rem 0.9rem;
  text-align: center;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  min-height: 6.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.ins-card:hover {
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.ins-card img {
  max-width: 100%;
  height: 2.4rem;
  width: auto;
  object-fit: contain;
}

.ins-card span {
  font-size: 0.8rem;
  color: #5b6b7c;
  line-height: 1.3;
}

.ins-home-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.75rem;
}

.ins-home-grid .ins-card {
  min-height: 5.5rem;
  padding: 0.85rem 0.5rem;
}

.ins-home-grid .ins-card span {
  font-size: 0.72rem;
}

/* ========== 职等你来 · 招聘 ========== */
.job-list {
  display: grid;
  gap: 1rem;
}

.job-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1.1rem;
  padding: 1.35rem 1.4rem;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.job-card:hover {
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.job-card-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
}

.job-card-top h3 {
  font-size: 1.1rem;
  color: #1a3358;
  margin: 0;
}

.job-tag {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: rgba(114, 76, 148, 0.08);
  color: var(--purple);
  font-size: 0.75rem;
  font-weight: 600;
}

.job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.1rem;
  font-size: 0.85rem;
  color: #7a8a9a;
  margin-bottom: 0.75rem;
}

.job-card > p {
  font-size: 0.95rem;
  color: #3d4f63;
  line-height: 1.7;
  margin-bottom: 0.9rem;
}

.job-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eef2f7;
  font-size: 0.88rem;
  color: #7a8a9a;
}

/* ========== 医院环境 · 动态展示 ========== */
.env-hero {
  position: relative;
  height: min(78vh, 640px);
  min-height: 420px;
  overflow: hidden;
  background: #0f1a2a;
  color: #fff;
}

.env-hero-slides {
  position: absolute;
  inset: 0;
}

.env-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity 1.1s ease, transform 6.5s ease;
  z-index: 0;
}

.env-hero-slide.is-active {
  opacity: 1;
  transform: scale(1);
  z-index: 1;
}

.env-hero-mask {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(100deg, rgba(12, 22, 40, 0.72) 0%, rgba(12, 22, 40, 0.35) 48%, rgba(12, 22, 40, 0.15) 100%),
    linear-gradient(0deg, rgba(12, 22, 40, 0.55) 0%, transparent 42%);
  pointer-events: none;
}

.env-hero-content {
  position: relative;
  z-index: 3;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 3.25rem;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
}

.env-hero-crumb {
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 1rem;
}

.env-hero-crumb a:hover {
  color: #fff;
}

.env-hero-label {
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 0.65rem;
}

.env-hero-content h1 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}

.env-hero-sub {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.88);
  margin-bottom: 1.5rem;
  word-break: keep-all;
}

.env-hero-ctrl {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  max-width: 22rem;
}

.env-hero-btn {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 1.35rem;
  cursor: pointer;
  line-height: 1;
  transition: background 0.15s ease;
}

.env-hero-btn:hover {
  background: rgba(255, 255, 255, 0.22);
}

.env-hero-progress {
  flex: 1;
  height: 3px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.22);
  overflow: hidden;
}

.env-hero-progress i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #7ab8e8, #fff);
  border-radius: 99px;
}

@keyframes envBar {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}

.env-hero-count {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.85);
  min-width: 4.2rem;
}

.env-hero-dots {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.env-hero-dots button {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: height 0.2s ease, background 0.2s ease;
}

.env-hero-dots button.is-active {
  height: 1.15rem;
  border-radius: 99px;
  background: #fff;
}

/* 胶片横向滚动 */
.env-marquee {
  overflow: hidden;
  background: #0f1a2a;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.env-marquee-track {
  display: flex;
  gap: 0.65rem;
  width: max-content;
  animation: envMarquee 55s linear infinite;
}

.env-marquee:hover .env-marquee-track {
  animation-play-state: paused;
}

@keyframes envMarquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.env-marquee-item {
  flex: 0 0 auto;
  width: 9.5rem;
  height: 6.4rem;
  padding: 0;
  border: none;
  border-radius: 0.55rem;
  overflow: hidden;
  cursor: pointer;
  background: #1a2740;
  opacity: 0.88;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.env-marquee-item:hover {
  opacity: 1;
  transform: translateY(-2px);
}

.env-marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Bento 不规则相册 */
.env-bento-section {
  background: linear-gradient(180deg, #f7fafc 0%, #fff 40%);
}

.env-bento {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 11.5rem;
  gap: 0.85rem;
}

.env-bento-item {
  position: relative;
  padding: 0;
  border: none;
  border-radius: 1rem;
  overflow: hidden;
  cursor: pointer;
  background: #e8eef5;
  opacity: 0;
  transform: translateY(28px) scale(0.98);
  transition: opacity 0.55s ease, transform 0.55s ease, box-shadow 0.25s ease;
}

.env-bento-item.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.env-bento-item.wide {
  grid-column: span 2;
}

.env-bento-item.tall {
  grid-row: span 2;
}

.env-bento-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}

.env-bento-item:hover img {
  transform: scale(1.08);
}

.env-bento-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 0.9rem 1rem;
  background: linear-gradient(0deg, rgba(15, 26, 42, 0.65) 0%, transparent 55%);
  color: #fff;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.env-bento-item:hover .env-bento-overlay {
  opacity: 1;
}

.env-bento-overlay em {
  font-style: normal;
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: 0.06em;
}

.env-bento-overlay span {
  font-size: 0.8rem;
  opacity: 0.9;
}

.env-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

.env-reveal.is-in {
  opacity: 1;
  transform: none;
}

/* 灯箱 */
.env-lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: rgba(8, 14, 24, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 4.5rem 4rem;
  animation: envFadeIn 0.25s ease;
}

@keyframes envFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.env-lightbox[hidden] {
  display: none !important;
}

.env-lb-stage {
  max-width: min(100%, 1180px);
  max-height: 82vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.env-lightbox img,
.env-lb-stage img {
  max-width: 100%;
  max-height: 82vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.5rem;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.5);
  opacity: 0;
  transform: scale(0.97);
  transition: opacity 0.28s ease, transform 0.28s ease;
}

.env-lightbox img.is-show,
.env-lb-stage img.is-show {
  opacity: 1;
  transform: scale(1);
}

.env-lb-close,
.env-lb-prev,
.env-lb-next {
  position: absolute;
  border: none;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  border-radius: 50%;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.5rem;
  line-height: 1;
  transition: background 0.15s ease;
  z-index: 2;
}

.env-lb-close:hover,
.env-lb-prev:hover,
.env-lb-next:hover {
  background: rgba(255, 255, 255, 0.28);
}

.env-lb-close {
  top: 1rem;
  right: 1rem;
}

.env-lb-prev {
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.env-lb-next {
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.env-lb-cap {
  position: absolute;
  bottom: 1.15rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

/* 资讯列表卡片 */
.news-list {
  display: grid;
  gap: 1rem;
}

.news-item {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 1.25rem;
  padding: 1.25rem 1.35rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

a.news-item-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.news-item:hover {
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
  border-color: rgba(114, 76, 148, 0.28);
}

.news-date {
  font-size: 0.85rem;
  color: var(--purple);
  font-weight: 600;
  line-height: 1.4;
}

.news-tag {
  display: inline-block;
  margin-top: 0.25rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--blue-mid);
}

.news-item h3 {
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
  transition: color 0.15s ease;
}

.news-item-link:hover h3 {
  color: var(--purple);
}

.news-item p {
  font-size: 0.92rem;
  color: var(--text-muted);
}

.news-more {
  display: inline-block;
  margin-top: 0.55rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--purple);
}

.story-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.story-card-link:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: transparent;
}

.story-card-link .news-more {
  margin-top: 0.85rem;
}

.health-disclaimer {
  margin-top: 1.75rem;
  color: var(--text-muted);
  font-size: 0.92rem;
  line-height: 1.65;
}

.health-empty {
  padding: 2rem;
  text-align: center;
  color: var(--text-muted);
  background: var(--bg-soft);
  border-radius: var(--radius);
}

/* 文章详情 */
.page-banner-sm {
  padding: 3.25rem 0 3rem;
}

.container-article {
  max-width: 800px;
}

.article-sheet {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) + 0.15rem);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: var(--shadow-sm);
}

.article-head {
  margin-bottom: 1.75rem;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid var(--border);
}

.article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin-bottom: 0.9rem;
  font-size: 0.88rem;
  color: var(--text-muted);
}

.article-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: var(--gradient-soft);
  color: var(--purple);
  font-weight: 600;
  font-size: 0.8rem;
}

.article-head h1 {
  font-size: clamp(1.55rem, 3.2vw, 2.05rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.02em;
  margin-bottom: 0.65rem;
  word-break: keep-all;
}

.article-author {
  font-size: 0.92rem;
  color: var(--text-muted);
}

.article-source-link {
  color: var(--purple);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(114, 76, 148, 0.35);
}

.article-source-link:hover {
  border-bottom-color: var(--purple);
}

.article-cover,
.article-figure {
  margin: 0 0 1.35rem;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #eef2f7;
}

.article-cover img,
.article-figure img {
  width: 100%;
  height: auto;
  max-height: min(70vh, 640px);
  display: block;
  object-fit: contain;
  background: #f1f5f9;
}

.article-cover figcaption,
.article-figure figcaption {
  padding: 0.65rem 0.85rem 0.85rem;
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.5;
  background: #f8fafc;
}

.article-body .article-figure {
  margin: 1.35rem 0 1.5rem;
}

.article-gallery {
  display: grid;
  gap: 1rem;
  margin: 1.25rem 0 1.5rem;
}

@media (min-width: 720px) {
  .article-gallery {
    grid-template-columns: 1fr 1fr;
  }
}

.article-body {
  font-size: 1.05rem;
  line-height: 1.85;
  color: var(--text);
}

.article-body .article-lead {
  font-size: 1.12rem;
  color: #374151;
  line-height: 1.8;
  margin-bottom: 1.35rem;
  padding: 1rem 1.15rem;
  background: var(--bg-soft);
  border-radius: 0.85rem;
  border-left: 3px solid var(--blue-light);
}

.article-body h2 {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 1.75rem 0 0.75rem;
  color: var(--nav-blue);
}

.article-body p {
  margin-bottom: 1rem;
}

.article-body ul {
  margin: 0.5rem 0 1.15rem 1.15rem;
  list-style: disc;
  color: var(--text);
}

.article-body li {
  margin-bottom: 0.45rem;
  padding-left: 0.2rem;
  line-height: 1.7;
}

.article-tip {
  margin: 1.75rem 0 0.5rem;
  padding: 1.1rem 1.2rem;
  border-radius: 0.9rem;
  background: linear-gradient(135deg, rgba(114, 76, 148, 0.06), rgba(122, 184, 232, 0.1));
  border: 1px solid rgba(114, 76, 148, 0.12);
}

.article-tip strong {
  display: block;
  color: var(--purple);
  margin-bottom: 0.4rem;
  font-size: 0.92rem;
}

.article-tip p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text-muted);
  line-height: 1.7;
}

.article-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.article-related {
  margin-top: 2.75rem;
}

.article-related h2 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

.article-missing {
  text-align: center;
  padding: 3rem 1.5rem;
}

.article-missing h1 {
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
}

.article-missing p {
  color: var(--text-muted);
  margin-bottom: 1.5rem;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.nav-toggle {
  display: none;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: #fff;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}

.nav-toggle span {
  display: block;
  width: 1.1rem;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
}

/* ========== 首页 Hero · 电影感院区轮播 ========== */
.hero-full {
  position: relative;
  width: 100%;
  min-height: min(94vh, 860px);
  height: min(94vh, 860px);
  overflow: hidden;
  background: #0a1220;
  color: #fff;
}

.hero-full .hero-slider {
  position: absolute;
  inset: 0;
}

.hero-slides {
  position: absolute;
  inset: 0;
}

.hero-slide {
  position: absolute;
  inset: -4%;
  width: 108%;
  height: 108%;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  z-index: 0;
  will-change: transform, opacity, filter;
  transition: opacity 1.25s cubic-bezier(0.4, 0, 0.2, 1), filter 1.25s ease;
  filter: saturate(0.92) brightness(0.92);
  pointer-events: none;
}

.hero-slide.is-active {
  opacity: 1;
  z-index: 1;
  filter: saturate(1.05) brightness(1);
  pointer-events: auto;
}

/* 交替 Ken Burns：推近 / 平移 / 拉远 */
.hero-slide.is-active.ken-a {
  animation: heroKenA 8.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.hero-slide.is-active.ken-b {
  animation: heroKenB 8.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.hero-slide.is-active.ken-c {
  animation: heroKenC 8.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

@keyframes heroKenA {
  from {
    transform: scale(1.14) translate3d(-1.5%, 0, 0);
  }
  to {
    transform: scale(1) translate3d(1%, 0, 0);
  }
}
@keyframes heroKenB {
  from {
    transform: scale(1) translate3d(2%, -1%, 0);
  }
  to {
    transform: scale(1.12) translate3d(-1.5%, 1%, 0);
  }
}
@keyframes heroKenC {
  from {
    transform: scale(1.18) translate3d(0, 2%, 0);
  }
  to {
    transform: scale(1.02) translate3d(0, -1.5%, 0);
  }
}

.hero-mask {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(115deg, rgba(8, 14, 28, 0.82) 0%, rgba(8, 14, 28, 0.48) 42%, rgba(8, 14, 28, 0.12) 72%, rgba(8, 14, 28, 0.28) 100%),
    linear-gradient(0deg, rgba(8, 14, 28, 0.78) 0%, rgba(8, 14, 28, 0.15) 42%, transparent 62%),
    radial-gradient(ellipse 70% 55% at 70% 35%, rgba(114, 76, 148, 0.18), transparent 70%);
}

/* 柔光与细网格，打破平面感 */
.hero-glow {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 72%, rgba(122, 184, 232, 0.22), transparent 28%),
    radial-gradient(circle at 86% 18%, rgba(114, 76, 148, 0.2), transparent 32%);
  animation: heroGlowPulse 7s ease-in-out infinite alternate;
  mix-blend-mode: screen;
  opacity: 0.85;
}

@keyframes heroGlowPulse {
  from {
    opacity: 0.55;
    transform: scale(1);
  }
  to {
    opacity: 0.95;
    transform: scale(1.04);
  }
}

.hero-grid-fx {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.07;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.45) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.45) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
}

.hero-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  padding: 0 0 8.2rem;
  max-width: 40rem;
}

.hero-copy.is-animating .hero-badge,
.hero-copy.is-animating .hero-kicker,
.hero-copy.is-animating .hero-title-line,
.hero-copy.is-animating .hero-lead-line,
.hero-copy.is-animating .hero-scene,
.hero-copy.is-animating .hero-cta-row {
  animation: heroCopyIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-copy .hero-badge {
  animation-delay: 0.05s;
}
.hero-copy .hero-kicker {
  animation-delay: 0.12s;
}
.hero-copy .hero-title-line:nth-child(1) {
  animation-delay: 0.18s;
}
.hero-copy .hero-title-line:nth-child(2) {
  animation-delay: 0.28s;
}
.hero-copy .hero-lead-line {
  animation-delay: 0.38s;
}
.hero-copy .hero-scene {
  animation-delay: 0.46s;
}
.hero-copy .hero-cta-row {
  animation-delay: 0.54s;
}

@keyframes heroCopyIn {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.85rem 0.35rem 0.55rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
  white-space: nowrap;
}

.hero-badge-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #7ab8e8;
  box-shadow: 0 0 0 0 rgba(122, 184, 232, 0.55);
  animation: heroDotPulse 2s ease-out infinite;
}

@keyframes heroDotPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(122, 184, 232, 0.55);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(122, 184, 232, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(122, 184, 232, 0);
  }
}

.hero-kicker {
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.72);
  margin-bottom: 0.75rem;
}

.hero-title {
  font-size: clamp(2.55rem, 6vw, 3.85rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.03em;
  margin-bottom: 1rem;
}

.hero-title-line {
  display: block;
}

.hero-title-line.light {
  font-weight: 300;
  opacity: 0.95;
  background: linear-gradient(90deg, #fff 0%, #cfe6f8 55%, #a8c4f0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-lead-line {
  font-size: 1.08rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 1.15rem;
  max-width: 34rem;
  word-break: keep-all;
}

.hero-scene {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.55rem 0.85rem;
  margin-bottom: 1.45rem;
  min-height: 1.5rem;
}

.hero-scene-label {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.65rem;
  border-radius: 0.35rem;
  background: linear-gradient(135deg, rgba(114, 76, 148, 0.75), rgba(88, 117, 182, 0.75));
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.hero-scene-cap {
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.78);
  word-break: keep-all;
}

.hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.hero-cta-row .btn {
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.hero-cta-row .btn:hover {
  transform: translateY(-2px);
}

.hero-cta-row .btn-white:hover {
  box-shadow: 0 12px 28px -10px rgba(255, 255, 255, 0.45);
}

.hero-ui {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.hero-ui > * {
  pointer-events: auto;
}

.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(12, 20, 38, 0.28);
  color: #fff;
  font-size: 1.55rem;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.45);
}

.hero-arrow:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.55);
  transform: translateY(-50%) scale(1.08);
  box-shadow: 0 12px 28px -10px rgba(0, 0, 0, 0.5);
}

.hero-arrow:active {
  transform: translateY(-50%) scale(0.98);
}

.hero-arrow.prev {
  left: 1.35rem;
}

.hero-arrow.next {
  right: 1.35rem;
}

.hero-bottom {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5rem;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.hero-progress {
  flex: 1;
  max-width: 14rem;
  height: 3px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.18);
  overflow: hidden;
}

.hero-progress i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #7ab8e8, #fff 70%, #e8d4f5);
  border-radius: 99px;
  box-shadow: 0 0 12px rgba(122, 184, 232, 0.65);
}

@keyframes heroBar {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}

.hero-count {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.9);
  min-width: 4.4rem;
  font-variant-numeric: tabular-nums;
}

.hero-dots {
  display: flex;
  gap: 0.4rem;
  margin-left: auto;
}

.hero-dots button {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: width 0.25s ease, background 0.25s ease, border-radius 0.25s ease, transform 0.2s ease;
}

.hero-dots button:hover {
  background: rgba(255, 255, 255, 0.7);
  transform: scale(1.15);
}

.hero-dots button.is-active {
  width: 1.55rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.45);
}

.hero-thumbs {
  position: absolute;
  right: max(1.25rem, calc((100% - var(--max)) / 2));
  bottom: 1.2rem;
  display: flex;
  gap: 0.5rem;
  max-width: min(48vw, 32rem);
  padding: 0.35rem;
  border-radius: 0.65rem;
  background: rgba(8, 14, 28, 0.35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

.hero-thumbs button {
  flex: 0 0 auto;
  width: 3.65rem;
  height: 2.45rem;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 0.4rem;
  overflow: hidden;
  cursor: pointer;
  opacity: 0.55;
  background: #1a2740;
  transition: opacity 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.hero-thumbs button:hover {
  opacity: 0.9;
  transform: translateY(-3px);
}

.hero-thumbs button.is-active {
  opacity: 1;
  border-color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 8px 18px -8px rgba(0, 0, 0, 0.55);
}

.hero-thumbs button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}

.hero-thumbs button.is-active img,
.hero-thumbs button:hover img {
  transform: scale(1.08);
}

/* ========== 右侧悬浮：预约 / 客服（悬停出二维码） ========== */
.side-float {
  position: fixed;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.side-float-item {
  position: relative;
}

.side-float-btn {
  width: 4.75rem;
  min-height: 5.25rem;
  padding: 0.7rem 0.4rem 0.65rem;
  border-radius: 0.9rem;
  background: #fff;
  border: 1px solid #e2eaf3;
  box-shadow: 0 8px 24px rgba(30, 77, 140, 0.14);
  color: var(--nav-blue);
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  line-height: 1.25;
  transition: transform 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.side-float-btn .ico {
  font-size: 2.3rem; /* 约为原 1.15rem 的两倍 */
  line-height: 1;
}

.side-float-btn:hover,
.side-float-item.is-open .side-float-btn {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(30, 77, 140, 0.2);
  color: var(--purple);
}

.side-float-pop {
  position: absolute;
  right: calc(100% + 0.75rem);
  top: 50%;
  transform: translateY(-50%) translateX(6px);
  width: 11.5rem;
  padding: 0.85rem 0.85rem 0.75rem;
  background: #fff;
  border-radius: 0.9rem;
  border: 1px solid #e8eef5;
  box-shadow: 0 12px 36px rgba(15, 30, 60, 0.16);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
  text-align: center;
}

.side-float-pop::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: #fff;
  border-right: 1px solid #e8eef5;
  border-top: 1px solid #e8eef5;
}

.side-float-pop img {
  width: 148px;
  height: 148px;
  margin: 0 auto 0.55rem;
  display: block;
  border-radius: 0.35rem;
}

.side-float-pop p {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--nav-blue);
  line-height: 1.4;
  margin: 0;
}

.side-float-pop small {
  display: block;
  font-weight: 400;
  color: #7a8a9a;
  font-size: 0.72rem;
  margin-top: 0.15rem;
}

.side-float-item:hover .side-float-pop,
.side-float-item.is-open .side-float-pop {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}

/* Page banner (inner pages) · 光影呼吸 + 底部柔波 */
.page-banner {
  position: relative;
  padding: 4.5rem 0 4.35rem;
  background: var(--gradient);
  color: #fff;
  overflow: hidden;
  --banner-wave-fill: #ffffff;
}

/* 流动光影（减弱，避免刺穿渐变色块） */
.page-banner::before {
  content: "";
  position: absolute;
  inset: -18%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 40% 36% at 16% 26%, rgba(255, 255, 255, 0.16) 0%, transparent 62%),
    radial-gradient(ellipse 36% 32% at 84% 16%, rgba(255, 255, 255, 0.12) 0%, transparent 58%),
    radial-gradient(ellipse 44% 38% at 58% 90%, rgba(122, 184, 232, 0.16) 0%, transparent 62%);
  animation: bannerMeshDrift 22s ease-in-out infinite alternate;
  will-change: transform, opacity;
}

.page-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* 轻罩一层，压住过亮高光，保持色块整体感 */
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, transparent 38%),
    linear-gradient(0deg, rgba(12, 20, 38, 0.06) 0%, transparent 28%);
  opacity: 1;
}

.page-banner .container {
  position: relative;
  z-index: 2;
}

/* 注入的光斑 / 柔波层 */
.banner-fx {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

/* 光斑单独容器：底部渐隐，避免亮斑压到波浪与色块接缝 */
.banner-fx-orbs {
  position: absolute;
  inset: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 92%);
  mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 92%);
}

.banner-orb {
  position: absolute;
  border-radius: 50%;
  /* 不用 mix-blend，避免高光“穿破”紫蓝渐变 */
  filter: blur(32px);
  opacity: 0.5;
  will-change: transform, opacity;
  pointer-events: none;
}

.banner-orb-1 {
  width: min(38vw, 280px);
  height: min(38vw, 280px);
  top: -10%;
  right: 10%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0) 72%);
  animation: bannerOrbA 16s ease-in-out infinite alternate;
}

.banner-orb-2 {
  width: min(42vw, 320px);
  height: min(42vw, 320px);
  bottom: 12%;
  left: -4%;
  background: radial-gradient(circle, rgba(122, 184, 232, 0.28) 0%, rgba(122, 184, 232, 0) 72%);
  animation: bannerOrbB 20s ease-in-out infinite alternate;
}

.banner-orb-3 {
  width: min(24vw, 170px);
  height: min(24vw, 170px);
  top: 32%;
  left: 44%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.18) 0%, transparent 74%);
  animation: bannerOrbC 14s ease-in-out infinite alternate;
}

/*
 * 双层柔波（可见层次 + 不易晕）：
 * - 背波半透明、前波实色，形成柔和层次
 * - 路径低起伏、首尾同高（无缝）
 * - 横移极慢 + 轻微上下呼吸；不用高频线性滚动
 */
.banner-wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 52px;
  z-index: 2;
  color: var(--banner-wave-fill, #fff);
  pointer-events: none;
  /* 整体轻轻起伏，比横移更自然、更不易晕 */
  animation: bannerWaveBob 9s ease-in-out infinite;
}

.banner-wave-layer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  overflow: hidden;
}

.banner-wave-layer.is-back {
  height: 100%;
  opacity: 0.42;
}

.banner-wave-layer.is-front {
  height: 88%;
  bottom: 0;
}

.banner-wave-track {
  display: flex;
  width: 200%;
  height: 100%;
  will-change: transform;
}

.banner-wave-layer.is-back .banner-wave-track {
  /* 极慢横移，反向，制造层次感 */
  animation: bannerWaveSlide 72s linear infinite reverse;
}

.banner-wave-layer.is-front .banner-wave-track {
  animation: bannerWaveSlide 54s linear infinite;
}

.banner-wave-track svg {
  display: block;
  width: 50%;
  height: 100%;
  flex: 0 0 50%;
  margin: 0;
  margin-right: -0.5px; /* 消亚像素细缝 */
}

.banner-wave .wave-back,
.banner-wave .wave-front {
  fill: currentColor;
}

@keyframes bannerWaveBob {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -3px, 0);
  }
}

@keyframes bannerMeshDrift {
  0% {
    transform: translate3d(-1.5%, -0.8%, 0) scale(1);
    opacity: 0.75;
  }
  50% {
    opacity: 0.9;
  }
  100% {
    transform: translate3d(2%, 1.2%, 0) scale(1.04);
    opacity: 0.8;
  }
}

@keyframes bannerOrbA {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0.4;
  }
  100% {
    transform: translate3d(-5%, 8%, 0) scale(1.1);
    opacity: 0.62;
  }
}

@keyframes bannerOrbB {
  0% {
    transform: translate3d(0, 0, 0) scale(1.02);
    opacity: 0.35;
  }
  100% {
    transform: translate3d(6%, -5%, 0) scale(1.12);
    opacity: 0.55;
  }
}

@keyframes bannerOrbC {
  0% {
    transform: translate3d(0, 0, 0) scale(0.95);
    opacity: 0.28;
  }
  100% {
    transform: translate3d(8%, -6%, 0) scale(1.12);
    opacity: 0.48;
  }
}

@keyframes bannerWaveSlide {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

/* 文案轻微入场 */
.page-banner.has-banner-fx .container > * {
  animation: bannerCopyIn 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.page-banner.has-banner-fx .container > *:nth-child(1) {
  animation-delay: 0.06s;
}
.page-banner.has-banner-fx .container > *:nth-child(2) {
  animation-delay: 0.14s;
}
.page-banner.has-banner-fx .container > *:nth-child(3) {
  animation-delay: 0.22s;
}
.page-banner.has-banner-fx .container > *:nth-child(4) {
  animation-delay: 0.3s;
}

@keyframes bannerCopyIn {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 1rem;
}

.breadcrumb a:hover {
  color: #fff;
  text-decoration: underline;
}

.page-banner h1 {
  font-size: clamp(1.85rem, 3.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 0.65rem;
}

.page-banner p {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.9);
  max-width: min(100%, 52rem);
  line-height: 1.65;
  word-break: keep-all;
  overflow-wrap: normal;
  white-space: nowrap;
}

/* Cards */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.75rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: transparent;
}

.card-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 0.9rem;
  background: var(--gradient-soft);
  color: var(--purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  margin-bottom: 1.1rem;
}

.card h3 {
  font-size: 1.2rem;
  font-weight: 650;
  margin-bottom: 0.55rem;
}

.card p {
  color: var(--text-muted);
  font-size: 0.95rem;
}

.card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 1rem;
  color: var(--purple);
  font-weight: 600;
  font-size: 0.9rem;
}

.card-link:hover {
  text-decoration: underline;
}

/* Stats */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-top: -3rem;
  position: relative;
  z-index: 2;
}

.stat-card {
  background: #fff;
  border-radius: var(--radius);
  padding: 1.5rem 1.25rem;
  text-align: center;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
}

.stat-card strong {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 0.25rem;
}

.stat-card span {
  font-size: 0.9rem;
  color: var(--text-muted);
}

/* Feature split */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}

.split-visual {
  border-radius: calc(var(--radius) + 0.25rem);
  min-height: 320px;
  background: var(--gradient);
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.split-visual::before {
  content: "";
  position: absolute;
  inset: -12%;
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.22) 0%, transparent 48%),
    radial-gradient(circle at 75% 70%, rgba(255, 255, 255, 0.14) 0%, transparent 44%),
    radial-gradient(circle at 50% 50%, rgba(122, 184, 232, 0.12) 0%, transparent 58%);
  animation: bannerMeshDrift 20s ease-in-out infinite alternate;
  pointer-events: none;
}

.split-visual-inner {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  padding: 2rem;
  z-index: 2;
}

.split-visual-inner .big {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.split-visual-inner .sub {
  opacity: 0.9;
  font-size: 1rem;
}

/* 医院介绍 · 品牌口号区块（标题/说明尽量单行） */
.brand-block-head {
  margin-bottom: 1.75rem;
}

.brand-block-title {
  white-space: nowrap;
  letter-spacing: 0.04em;
}

.brand-block-desc {
  max-width: none;
  margin-inline: auto;
  white-space: nowrap;
  font-size: 0.98rem;
}

.brand-tagline {
  max-width: 40rem;
  margin: 0 auto 2rem;
  padding: 1.75rem 2rem;
  text-align: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) + 0.35rem);
}

.brand-tagline-en {
  font-size: 1.35rem;
  font-weight: 650;
  color: var(--text);
  letter-spacing: 0.02em;
  margin-bottom: 0.55rem;
  white-space: nowrap;
}

.brand-tagline-zh {
  font-size: 1rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.brand-mv .mv-card h3 {
  font-size: 1.15rem;
  white-space: nowrap;
  line-height: 1.5;
}

.brand-mv .mv-card {
  min-height: auto;
  padding: 1.75rem 1.5rem;
  justify-content: center;
}

/* Philosophy / brand blocks */
.manifesto {
  background: var(--bg-soft);
  border-radius: calc(var(--radius) + 0.35rem);
  padding: 2.5rem clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--border);
}

.manifesto blockquote {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  line-height: 1.85;
  color: var(--text);
  font-weight: 500;
  border-left: 4px solid var(--purple);
  padding-left: 1.25rem;
}

.manifesto .source {
  margin-top: 1.25rem;
  color: var(--text-muted);
  font-size: 0.9rem;
}

/* 品牌宣言 · 宽幅居中新版式 */
.manifesto-section .section-head {
  margin-bottom: 1.75rem;
}

.manifesto-wide {
  max-width: min(100%, 56rem);
  margin: 0 auto;
  padding: 2.5rem clamp(1.75rem, 5vw, 3.5rem);
  text-align: center;
  background: linear-gradient(165deg, #faf8fc 0%, #f3f7fc 55%, #eef4fb 100%);
  border-radius: 1.35rem;
  border: 1px solid rgba(114, 76, 148, 0.12);
  box-shadow: 0 12px 40px -20px rgba(30, 60, 120, 0.12);
  position: relative;
}

.manifesto-wide::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 4.5rem;
  height: 3px;
  border-radius: 999px;
  background: var(--gradient);
}

.manifesto-line {
  font-size: clamp(1.08rem, 1.65vw, 1.28rem);
  line-height: 1.9;
  color: #2a3a4d;
  font-weight: 500;
  margin: 0 auto 1.15rem;
  max-width: 46rem;
}

.manifesto-line:last-child {
  margin-bottom: 0;
}

.manifesto-line.accent {
  font-size: clamp(1.15rem, 1.85vw, 1.4rem);
  font-weight: 700;
  color: var(--purple);
  letter-spacing: 0.02em;
}

.mv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.mv-card {
  border-radius: var(--radius);
  padding: 2rem;
  color: #fff;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  overflow: hidden;
}

.mv-card.mission {
  background: linear-gradient(145deg, #724c94, #5875b6);
}

.mv-card.vision {
  background: linear-gradient(145deg, #5875b6, #7ab8e8);
}

.mv-card .label {
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  opacity: 0.85;
  margin-bottom: 0.75rem;
}

.mv-card h3 {
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.5;
}

/* Timeline */
.timeline {
  position: relative;
  padding-left: 1.75rem;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 0.35rem;
  top: 0.35rem;
  bottom: 0.35rem;
  width: 2px;
  background: linear-gradient(180deg, var(--purple), var(--blue-light));
  border-radius: 2px;
}

.timeline-item {
  position: relative;
  padding-bottom: 2rem;
  padding-left: 1.25rem;
}

.timeline-item:last-child {
  padding-bottom: 0;
}

.timeline-item::before {
  content: "";
  position: absolute;
  left: -1.52rem;
  top: 0.45rem;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--purple);
  box-shadow: 0 0 0 4px rgba(114, 76, 148, 0.12);
}

.timeline-year {
  display: inline-block;
  font-weight: 700;
  color: var(--purple);
  font-size: 0.95rem;
  margin-bottom: 0.35rem;
}

.timeline-item h4 {
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}

.timeline-item p {
  color: var(--text-muted);
  font-size: 0.95rem;
}

/* Department chips */
.dept-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.dept-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.1rem 1.2rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.dept-item:hover {
  border-color: rgba(114, 76, 148, 0.35);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.dept-dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--gradient);
  flex-shrink: 0;
}

.dept-item span {
  font-weight: 500;
  font-size: 0.95rem;
}

/* Values */
.value-list {
  display: grid;
  gap: 1.25rem;
}

.value-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
}

.value-item:last-child {
  border-bottom: none;
}

.value-num {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  flex-shrink: 0;
}

.value-item h4 {
  font-size: 1.05rem;
  margin-bottom: 0.3rem;
}

.value-item p {
  color: var(--text-muted);
  font-size: 0.95rem;
}

/* CTA band */
.cta-band {
  background: var(--gradient);
  color: #fff;
  text-align: center;
  padding: 4rem 0 4.5rem;
  position: relative;
  overflow: hidden;
  /* 接深色页脚 */
  --banner-wave-fill: #1a1625;
}

.cta-band::before {
  content: "";
  position: absolute;
  inset: -16%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.12) 0%, transparent 55%),
    radial-gradient(ellipse 40% 35% at 15% 70%, rgba(122, 184, 232, 0.14) 0%, transparent 58%),
    radial-gradient(ellipse 35% 30% at 88% 40%, rgba(255, 255, 255, 0.08) 0%, transparent 52%);
  animation: bannerMeshDrift 22s ease-in-out infinite alternate;
}

.cta-band .container {
  position: relative;
  z-index: 2;
}

.cta-band h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin-bottom: 0.75rem;
}

.cta-band p {
  opacity: 0.92;
  margin-bottom: 1.75rem;
  max-width: none;
  width: fit-content;
  margin-inline: auto;
  line-height: 1.65;
  word-break: keep-all;
  overflow-wrap: normal;
  white-space: nowrap;
  padding: 0 1rem;
}

/* Footer */
.site-footer {
  background: #1a1625;
  color: rgba(255, 255, 255, 0.78);
  padding: 3.5rem 0 1.5rem;
  font-size: 0.9rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.footer-brand .logo-text {
  color: #fff;
  margin-bottom: 0.85rem;
}

.footer-brand p {
  line-height: 1.7;
  max-width: 18rem;
}

.footer-col h4 {
  color: #fff;
  font-size: 0.95rem;
  margin-bottom: 1rem;
}

.footer-col a {
  display: block;
  padding: 0.3rem 0;
  transition: color 0.15s ease;
}

.footer-col a:hover {
  color: var(--blue-light);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem 1.25rem;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.5);
}

.footer-bottom-left {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  max-width: min(100%, 36rem);
}

.footer-beian {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  font-size: 0.78rem;
}

.footer-beian a {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
}

.footer-beian a:hover {
  color: var(--blue-light, #7ab8e8);
  text-decoration: underline;
}

/* Forms */
.form-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
}

.form-group {
  margin-bottom: 1.1rem;
}

.form-group label {
  display: block;
  font-size: 0.9rem;
  font-weight: 500;
  margin-bottom: 0.4rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--purple);
  box-shadow: 0 0 0 3px rgba(114, 76, 148, 0.12);
}

.form-group textarea {
  min-height: 110px;
  resize: vertical;
}

.contact-info {
  display: grid;
  gap: 1.25rem;
}

.contact-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.contact-item .icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.85rem;
  background: var(--gradient-soft);
  color: var(--purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  flex-shrink: 0;
}

.contact-item h4 {
  font-size: 0.95rem;
  margin-bottom: 0.2rem;
}

.contact-item p {
  color: var(--text-muted);
  font-size: 0.92rem;
}

/* Modal */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 12, 24, 0.55);
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.modal-overlay.open {
  display: flex;
}

.modal {
  background: #fff;
  width: min(100%, 420px);
  border-radius: calc(var(--radius) + 0.15rem);
  padding: 1.75rem;
  box-shadow: 0 24px 60px -16px rgba(0, 0, 0, 0.35);
}

.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}

.modal-head h3 {
  font-size: 1.25rem;
}

.modal-close {
  width: 2rem;
  height: 2rem;
  border: none;
  background: var(--bg-soft);
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--text-muted);
}

/* Prose for about content */
.prose {
  max-width: 48rem;
}

.prose p {
  margin-bottom: 1.1rem;
  color: #374151;
  font-size: 1.02rem;
}

.prose h2 {
  font-size: 1.45rem;
  margin: 2rem 0 0.85rem;
}

.prose h3 {
  font-size: 1.15rem;
  margin: 1.5rem 0 0.65rem;
  color: var(--purple);
}

.prose ul {
  margin: 0.75rem 0 1.25rem 1.2rem;
  list-style: disc;
  color: #374151;
}

.prose li {
  margin-bottom: 0.4rem;
}

/* Highlights strip */
.highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.highlight {
  padding: 1.5rem;
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid var(--border);
}

.highlight strong {
  display: block;
  color: var(--purple);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  margin-bottom: 0.5rem;
}

.highlight p {
  font-size: 0.98rem;
  color: var(--text);
  line-height: 1.65;
}

/* Doctor cards */
.doctor-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}

.doctor-card .doctor-photo {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  background: linear-gradient(180deg, #e8eef5 0%, #dfe7f2 100%);
  display: block;
}

.doctor-card .doctor-body {
  padding: 1.15rem 1.25rem 1.35rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.doctor-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.doctor-title {
  color: var(--purple) !important;
  font-size: 0.88rem !important;
  margin-bottom: 0.55rem !important;
  line-height: 1.45 !important;
}

.doctor-dept {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.78rem;
  padding: 0.2rem 0.7rem;
  border-radius: var(--radius-pill);
  background: rgba(114, 76, 148, 0.08);
  color: var(--purple);
  margin-bottom: 0.75rem;
  font-weight: 500;
}

.doctor-card .doctor-body p {
  font-size: 0.9rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.doctor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.doctor-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.filter-btn {
  padding: 0.45rem 1rem;
  border-radius: var(--radius-pill);
  border: 1px solid var(--border);
  background: #fff;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  color: var(--text);
  transition: all 0.15s ease;
}

.filter-btn:hover {
  border-color: rgba(114, 76, 148, 0.4);
  color: var(--purple);
}

.filter-btn.active {
  background: var(--purple);
  border-color: var(--purple);
  color: #fff;
}

.doctor-search {
  width: min(100%, 260px);
  padding: 0.6rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  outline: none;
}

.doctor-search:focus {
  border-color: var(--purple);
  box-shadow: 0 0 0 3px rgba(114, 76, 148, 0.12);
}

.doctor-empty {
  text-align: center;
  color: var(--text-muted);
  padding: 2.5rem 1rem;
  grid-column: 1 / -1;
}

/* Doctor detail modal */
/* ========== 专家详情（参考曜影：左文右图） ========== */
.doc-profile-overlay {
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(20, 35, 60, 0.45);
  backdrop-filter: blur(4px);
}

.doc-profile {
  position: relative;
  width: min(100%, 960px);
  max-height: min(90vh, 820px);
  overflow: auto;
  background: #f7fafc;
  border-radius: 1.25rem;
  box-shadow: 0 28px 80px -20px rgba(15, 40, 80, 0.35);
  padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 2.75rem);
}

.doc-profile-close {
  position: absolute;
  top: 0.85rem;
  right: 0.95rem;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 50%;
  background: #fff;
  color: #6b7280;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  z-index: 2;
}

.doc-profile-close:hover {
  color: var(--nav-blue);
}

.doc-profile-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}

.doc-profile-name {
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight: 700;
  color: #1a3358;
  line-height: 1.35;
  margin-bottom: 0.55rem;
  padding-right: 2rem;
}

.doc-profile-en {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 500;
  color: #7a8fa8;
  margin-left: 0.25rem;
}

.doc-profile-role {
  font-size: 1rem;
  color: #4a6fa5;
  margin-bottom: 1.15rem;
  font-weight: 500;
}

.doc-profile-intro {
  font-size: 0.98rem;
  line-height: 1.85;
  color: #3d4f63;
  margin-bottom: 1.75rem;
}

.doc-profile-block {
  margin-bottom: 1.5rem;
}

.doc-profile-block h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a3358;
  margin-bottom: 0.65rem;
}

.doc-profile-langs {
  font-size: 0.95rem;
  color: #4a6fa5;
}

.doc-profile-exp {
  list-style: disc;
  padding-left: 1.2rem;
  margin: 0;
  color: #3d4f63;
  font-size: 0.95rem;
  line-height: 1.75;
}

.doc-profile-exp li {
  margin-bottom: 0.35rem;
}

.doc-profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.doc-profile-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1rem;
  border-radius: 0.75rem;
  background: #fff;
  border: 1px solid #e2eaf3;
  color: #1e4d8c;
  font-size: 0.9rem;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(30, 77, 140, 0.04);
}

.doc-profile-tag .tag-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #724c94, #7ab8e8);
  flex-shrink: 0;
}

.doc-profile-aside {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 0.5rem;
}

.doc-profile-photo-wrap {
  position: relative;
  width: min(100%, 280px);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.doc-profile-rings {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, transparent 52%, rgba(180, 210, 240, 0.35) 53%, transparent 54%),
    radial-gradient(circle at 50% 50%, transparent 62%, rgba(180, 210, 240, 0.28) 63%, transparent 64%),
    radial-gradient(circle at 72% 70%, rgba(200, 225, 250, 0.55) 0%, transparent 42%),
    radial-gradient(circle at 28% 30%, rgba(210, 230, 250, 0.45) 0%, transparent 38%);
  pointer-events: none;
}

.doc-profile-rings::before,
.doc-profile-rings::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1.5px dashed rgba(122, 170, 220, 0.55);
}

.doc-profile-rings::before {
  inset: 6%;
}

.doc-profile-rings::after {
  inset: -2%;
  border-color: rgba(122, 170, 220, 0.35);
}

.doc-profile-photo {
  position: relative;
  z-index: 1;
  width: 78%;
  height: 78%;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  background: #e8eef5;
  box-shadow: 0 12px 40px rgba(30, 77, 140, 0.15);
}

@media (max-width: 800px) {
  .doc-profile-grid {
    grid-template-columns: 1fr;
  }

  .doc-profile-aside {
    order: -1;
    padding-top: 0;
    padding-bottom: 0.5rem;
  }

  .doc-profile-photo-wrap {
    width: min(220px, 70vw);
  }
}

/* Tag cloud for centers */
.centers {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.center-pill {
  padding: 0.7rem 1.2rem;
  border-radius: var(--radius-pill);
  background: #fff;
  border: 1px solid var(--border);
  font-weight: 500;
  font-size: 0.92rem;
  transition: all 0.2s ease;
}

.center-pill:hover {
  border-color: var(--purple);
  color: var(--purple);
  box-shadow: var(--shadow-sm);
}

/* Responsive */
@media (max-width: 960px) {
  .grid-3,
  .grid-4,
  .stats,
  .dept-list,
  .highlights,
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .split,
  .mv-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .hero-full {
    min-height: 78vh;
    height: 78vh;
  }

  .hero-copy {
    padding-bottom: 6.8rem;
  }

  .hero-thumbs {
    display: none;
  }

  .hero-arrow.prev {
    left: 0.65rem;
  }

  .hero-arrow.next {
    right: 0.65rem;
  }

  .hero-grid-fx {
    display: none;
  }

  .side-float {
    right: 0.65rem;
  }

  .nav-links a {
    font-size: 1rem;
  }

  .logo-img {
    height: 2.55rem;
    max-width: min(220px, 48vw);
  }

  .side-float-pop {
    width: 10.5rem;
  }

  .side-float-pop img {
    width: 128px;
    height: 128px;
  }

  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--border);
    flex-direction: column;
    align-items: stretch;
    padding: 0.75rem 1.25rem 1rem;
    gap: 0.15rem;
    box-shadow: var(--shadow-sm);
    justify-content: flex-start;
    max-height: min(70vh, 520px);
    overflow: auto;
  }

  .nav-links.open {
    display: flex;
  }

  .nav-links > a,
  .nav-item > .nav-link-btn {
    padding: 0.75rem 0.85rem;
    width: 100%;
    justify-content: space-between;
  }

  .nav-links > a.active::after,
  .nav-links > a:hover::after {
    display: none;
  }

  .nav-item {
    width: 100%;
  }

  .nav-dropdown {
    position: static;
    transform: none;
    left: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    display: none;
    box-shadow: none;
    border: none;
    border-radius: 0;
    padding: 0 0 0.35rem 0.75rem;
    min-width: 0;
  }

  .nav-item.is-open .nav-dropdown {
    display: block;
    transform: none;
  }

  .nav-toggle {
    display: flex;
  }

  .nav-actions .btn-sm {
    display: none;
  }

  .site-header {
    position: sticky;
  }

  .header-main,
  .nav {
    position: relative;
  }

  .news-item {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .dept-grid {
    grid-template-columns: 1fr 1fr;
  }

  .dept-related-grid {
    grid-template-columns: 1fr;
  }

  .pkg-adv-grid,
  .pkg-grid,
  .pkg-steps {
    grid-template-columns: 1fr 1fr;
  }

  .pkg-detail-grid {
    grid-template-columns: 1fr;
  }

  .pkg-detail-aside {
    position: static;
  }

  .ins-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .ins-home-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .env-bento {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 10rem;
  }

  .env-bento-item.wide {
    grid-column: span 2;
  }

  .env-hero {
    height: min(68vh, 520px);
  }

  .env-hero-dots {
    display: none;
  }

  .brand-block-title {
    white-space: nowrap;
    font-size: 1.55rem;
  }

  .brand-block-desc {
    white-space: normal;
    max-width: 36rem;
  }

  .brand-mv .mv-card h3 {
    white-space: normal;
    font-size: 1.05rem;
  }

  .section-head.center .section-desc,
  .page-banner p,
  .cta-band p {
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .grid-3,
  .grid-4,
  .grid-2,
  .stats,
  .dept-list,
  .highlights,
  .footer-grid,
  .dept-grid,
  .pkg-adv-grid,
  .pkg-grid,
  .pkg-steps,
  .ins-grid,
  .ins-home-grid {
    grid-template-columns: 1fr 1fr;
  }

  .env-bento {
    grid-template-columns: 1fr;
    grid-auto-rows: 12rem;
  }

  .env-bento-item.wide,
  .env-bento-item.tall {
    grid-column: span 1;
    grid-row: span 1;
  }

  .env-hero-content h1 {
    font-size: 1.75rem;
  }

  .env-marquee-item {
    width: 7.5rem;
    height: 5rem;
  }

  .hero-full {
    min-height: 86vh;
    height: 86vh;
  }

  .hero-copy {
    padding-bottom: 5.6rem;
  }

  .hero-title {
    font-size: 2.15rem;
  }

  .hero-lead-line {
    font-size: 0.98rem;
  }

  .hero-badge {
    font-size: 0.65rem;
    letter-spacing: 0.1em;
  }

  .hero-scene-cap {
    font-size: 0.85rem;
  }

  .hero-arrow {
    width: 2.4rem;
    height: 2.4rem;
    font-size: 1.15rem;
  }

  .hero-bottom {
    bottom: 3.9rem;
  }

  .hero-cta-row .btn {
    padding: 0.65rem 1.1rem;
    font-size: 0.9rem;
  }

  .section {
    padding: 3.5rem 0;
  }

  .stats {
    margin-top: -2rem;
  }

  .side-float-btn {
    width: 4.25rem;
    min-height: 4.75rem;
    font-size: 0.78rem;
  }

  .side-float-btn .ico {
    font-size: 2rem;
  }

  .brand-block-title,
  .brand-block-desc,
  .brand-tagline-en,
  .brand-tagline-zh,
  .brand-mv .mv-card h3 {
    white-space: normal;
  }

  .brand-mv .mv-card h3 {
    font-size: 1.05rem;
  }

  /* 小屏允许副标题/说明换行，避免撑破布局 */
  .section-head.center .section-desc,
  .page-banner p,
  .cta-band p {
    white-space: normal;
    max-width: 36rem;
  }

  .banner-wave {
    height: 40px;
  }

  /* 小屏再减运动量 */
  .banner-wave-layer.is-back .banner-wave-track {
    animation-duration: 90s;
  }
  .banner-wave-layer.is-front .banner-wave-track {
    animation-duration: 70s;
  }
}

/* ========== 滚动入场 ========== */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal.is-in {
  opacity: 1;
  transform: none;
}

/* 错落延迟：同一网格内依次浮现 */
.reveal-delay-1 { transition-delay: 0.06s; }
.reveal-delay-2 { transition-delay: 0.12s; }
.reveal-delay-3 { transition-delay: 0.18s; }
.reveal-delay-4 { transition-delay: 0.24s; }
.reveal-delay-5 { transition-delay: 0.3s; }
.reveal-delay-6 { transition-delay: 0.36s; }
.reveal-delay-7 { transition-delay: 0.42s; }
.reveal-delay-8 { transition-delay: 0.48s; }

/* 减少动效：尊重系统设置 */
@media (prefers-reduced-motion: reduce) {
  .page-banner::before,
  .cta-band::before,
  .split-visual::before,
  .banner-orb,
  .banner-wave,
  .banner-wave-track,
  .page-banner.has-banner-fx .container > * {
    animation: none !important;
  }

  .page-banner.has-banner-fx .container > * {
    opacity: 1;
    transform: none;
  }

  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* === language switcher === */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;
}
.lang-switch .lang-link {
  color: var(--text-muted, #64748b);
  text-decoration: none;
  padding: 0.25rem 0.2rem;
  border-radius: 0.25rem;
  transition: color 0.15s ease, background 0.15s ease;
}
.lang-switch .lang-link:hover {
  color: var(--nav-blue, #1e4d8c);
}
.lang-switch .lang-link.is-active {
  color: var(--nav-blue, #1e4d8c);
  background: rgba(30, 77, 140, 0.08);
}
.lang-switch .lang-sep {
  color: #cbd5e1;
  user-select: none;
}
body[data-lang="en"] {
  font-family: Inter, "Noto Sans SC", system-ui, -apple-system, sans-serif;
}
@media (max-width: 960px) {
  .lang-switch {
    order: -1;
  }
}
