:root {
  --sw-ink: #17363b;
  --sw-muted: #5d7477;
  --sw-deep: #0d555b;
  --sw-teal: #147f7b;
  --sw-mint: #e8f2ef;
  --sw-warm: #fbfaf6;
  --sw-coral: #c97868;
  --sw-line: #dbe7e3;
  --sw-shadow: 0 18px 48px rgba(18, 65, 66, .08);
}

html { scroll-behavior: smooth; }
body {
  background: var(--sw-warm) !important;
  color: var(--sw-ink) !important;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

#header {
  background: rgba(255, 255, 255, .96) !important;
  border-bottom: 1px solid var(--sw-line) !important;
  box-shadow: 0 4px 18px rgba(16, 71, 74, .04);
  position: relative;
  z-index: 30;
}
#logo a {
  color: var(--sw-deep) !important;
  letter-spacing: .04em !important;
}
#navigate {
  background: var(--sw-deep) !important;
  box-shadow: 0 8px 22px rgba(13, 85, 91, .14) !important;
  position: relative;
  z-index: 25;
}
#navigate .nav-link {
  padding: 15px 24px !important;
  color: #f6fffd !important;
  font-size: 15px;
  letter-spacing: .04em;
  border-color: rgba(255,255,255,.12) !important;
}
#navigate .nav-link:hover,
#navigate .first_menu .nav-link {
  background: var(--sw-teal) !important;
}

.pcbanner-qf {
  background: #e8f0ec;
  overflow: hidden;
}
.pcbanner-qf .ban_list {
  aspect-ratio: 2.75 / 1;
  max-height: 510px;
  overflow: hidden;
}
.pcbanner-qf .swiper-slide img {
  width: 100% !important;
  height: 100% !important;
  min-height: 260px !important;
  object-fit: cover !important;
  object-position: center;
}
.pcbanner-qf .ban-prev,
.pcbanner-qf .ban-next {
  background: rgba(13, 85, 91, .72) !important;
  box-shadow: 0 8px 18px rgba(13, 85, 91, .18);
}

.dept-intro-section {
  background: var(--sw-warm) !important;
  padding: 68px 20px 76px !important;
}
.dept-intro-section > .container,
.dept-intro-section > div {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.dept-intro-section .home-block {
  box-sizing: border-box;
  max-width: 1180px;
  margin: 0 auto 22px;
  padding: clamp(26px, 4vw, 48px);
  background: #fff;
  border: 1px solid var(--sw-line);
  border-radius: 18px;
  box-shadow: var(--sw-shadow);
}
.dept-intro-section .home-block:first-of-type {
  padding: clamp(32px, 5vw, 64px);
  background: var(--sw-mint);
  border-color: transparent;
}
.home-block h1,
.home-block h2 {
  color: var(--sw-ink) !important;
  line-height: 1.25;
  letter-spacing: .01em;
}
.home-block h1 {
  margin: 0 0 18px;
  font-size: clamp(34px, 5vw, 62px);
  font-weight: 800;
}
.home-block h2 {
  margin: 0 0 22px;
  padding-left: 15px;
  border-left: 4px solid var(--sw-coral);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 750;
}
.home-block p,
.home-block li,
.home-block dd {
  color: var(--sw-muted);
  font-size: 16px;
  line-height: 1.95;
}
.home-block p { max-width: 850px; }
.home-block a {
  color: var(--sw-deep);
  text-decoration: underline;
  text-decoration-color: rgba(201,120,104,.55);
  text-underline-offset: 3px;
}
.home-block a:hover { color: var(--sw-coral); }
.home-hero p:first-of-type { font-size: 18px; color: var(--sw-ink); max-width: 760px; }
.home-hero p:last-child a {
  display: inline-flex;
  align-items: center;
  margin-top: 10px;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--sw-deep);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(13,85,91,.18);
}
.home-hero p:last-child a:hover { background: var(--sw-coral); color: #fff; }

.home-services ul,
.home-selection ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.home-services li,
.home-selection li {
  margin: 0;
  padding: 20px;
  background: #f7fbf9;
  border: 1px solid var(--sw-line);
  border-radius: 12px;
}
.home-services strong { display: block; margin-bottom: 8px; color: var(--sw-deep); font-size: 18px; }
.home-process ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: sw-step;
}
.home-process li {
  position: relative;
  min-height: 102px;
  margin: 0;
  padding: 22px 18px 18px 66px;
  background: #fffaf7;
  border: 1px solid #f0ddd5;
  border-radius: 12px;
}
.home-process li::before {
  counter-increment: sw-step;
  content: counter(sw-step, decimal-leading-zero);
  position: absolute;
  top: 18px;
  left: 18px;
  color: var(--sw-coral);
  font-size: 22px;
  font-weight: 800;
}
.home-medical,
.home-policy { background: #f8fbfa !important; }
.home-cost { background: #fffaf7 !important; border-color: #f0ddd5 !important; }
.home-faq-cta dl {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr);
  gap: 0;
  margin: 0 0 24px;
}
.home-faq-cta dt,
.home-faq-cta dd {
  margin: 0;
  padding: 16px 0;
  border-bottom: 1px solid var(--sw-line);
}
.home-faq-cta dt { color: var(--sw-deep); font-weight: 700; }
.home-faq-cta dd { padding-left: 24px; }

.dept-intro-section + section,
.footer { border-top: 1px solid var(--sw-line); }
.footer { background: #edf3f0 !important; }
.footer .footer-text,
.footer .footer-subtext { color: var(--sw-muted) !important; }

@media (max-width: 760px) {
  #navigate { display: none !important; }
  #header { padding: 14px 0 !important; }
  #logo a { font-size: 24px !important; }
  .pcbanner-qf .ban_list { aspect-ratio: 1.55 / 1; }
  .pcbanner-qf .swiper-slide img { min-height: 220px !important; }
  .dept-intro-section { padding: 34px 14px 44px !important; }
  .dept-intro-section .home-block { margin-bottom: 14px; padding: 26px 20px; border-radius: 14px; }
  .home-block h1 { font-size: 36px; }
  .home-block h2 { font-size: 24px; }
  .home-block p,
  .home-block li,
  .home-block dd { font-size: 15px; line-height: 1.8; }
  .home-services ul,
  .home-selection ul,
  .home-process ol { grid-template-columns: 1fr; }
  .home-process li { min-height: 0; }
  .home-faq-cta dl { display: block; }
  .home-faq-cta dt { padding-bottom: 6px; border-bottom: 0; }
  .home-faq-cta dd { padding: 0 0 16px; }
}