/*
 * Puxin Education v7 Brand Layer
 * 全站新版视觉与交互覆盖层，保留现有 PHP 功能与数据结构。
 */

:root {
  --px-blue: #1769b2;
  --px-blue-deep: #0b3f82;
  --px-blue-ink: #082b5f;
  --px-cyan: #16b8d7;
  --px-green: #14b89a;
  --px-orange: #ff9b16;
  --px-red: #e94b43;
  --px-ink: #11182f;
  --px-body: #4f5f75;
  --px-muted: #8090a5;
  --px-line: #dce8f5;
  --px-soft: #f3f8ff;
  --px-paper: #ffffff;
  --px-radius: 18px;
  --px-radius-sm: 10px;
  --px-shadow: 0 20px 60px rgba(17, 43, 87, .10);
  --px-shadow-strong: 0 28px 80px rgba(17, 43, 87, .16);
  --px-font: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;
}

body {
  color: var(--px-ink);
  background:
    linear-gradient(180deg, rgba(244, 249, 255, .82), rgba(255, 255, 255, 0) 420px),
    #fff;
  font-family: var(--px-font);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image:
    linear-gradient(rgba(23, 105, 178, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23, 105, 178, .045) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(180deg, black, transparent 65%);
}

.container {
  width: min(1220px, calc(100% - 40px));
}

.header-topbar {
  background: var(--px-blue);
}

.topbar-inner,
.header-inner {
  min-height: auto;
}

.header-main {
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid rgba(220, 232, 245, .88);
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 28px rgba(17, 43, 87, .06);
}

.site-logo,
.mobile-nav-logo,
.footer-logo {
  gap: 12px;
}

.site-logo-image,
.mobile-logo-image,
.footer-logo-image,
.admin-logo-image {
  display: block;
  width: auto;
  height: 52px;
  object-fit: contain;
}

.site-logo-image {
  height: 50px;
  max-width: 218px;
}

.mobile-logo-image {
  height: 42px;
  max-width: 180px;
}

.footer-logo-image {
  height: 48px;
  max-width: 210px;
  filter: brightness(0) invert(1);
}

.logo-icon,
.logo-text,
.mobile-nav-logo > i,
.footer-logo-icon {
  display: none !important;
}

.nav-link {
  border-radius: 12px;
  color: #20314a;
  font-weight: 700;
}

.nav-link:hover,
.nav-link.active {
  background: #eef6ff;
  color: var(--px-blue);
}

.header-phone {
  color: var(--px-blue);
  font-weight: 900;
}

.btn,
button,
.topbar-btn {
  letter-spacing: 0;
}

.btn-primary,
.topbar-btn,
.hero-cta-primary,
.appointment-form button,
.claim-form button {
  border: 0;
  background: linear-gradient(135deg, var(--px-orange), #ff7a00) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(255, 155, 22, .26);
}

.btn-primary:hover,
.topbar-btn:hover,
.appointment-form button:hover,
.claim-form button:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 36px rgba(255, 155, 22, .34);
}

.btn-outline,
.btn-secondary {
  border: 1px solid #cfe0f4 !important;
  background: #fff !important;
  color: var(--px-blue) !important;
  box-shadow: none;
}

.section {
  padding-top: clamp(56px, 6vw, 92px);
  padding-bottom: clamp(56px, 6vw, 92px);
}

.section-tag {
  background: #eaf4ff;
  color: var(--px-blue);
  border: 1px solid #d8eaff;
  border-radius: 999px;
  padding: 7px 14px;
  font-weight: 900;
  letter-spacing: .12em;
}

.section-title {
  color: var(--px-ink);
  font-weight: 900;
  letter-spacing: 0;
}

.section-desc {
  color: var(--px-body);
}

.hero-section,
.hero-slide,
.page-header,
.campus-detail-hero {
  position: relative;
  overflow: hidden;
}

.hero-section::after,
.page-header::after,
.campus-detail-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 130px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
}

.hero-content,
.page-header-content,
.campus-detail-hero .container {
  position: relative;
  z-index: 2;
}

.hero-title,
.page-header h1,
.campus-detail-copy h1 {
  letter-spacing: 0;
  font-weight: 900;
}

/* v7 首页首屏 */
.hero-section {
  height: auto !important;
  min-height: clamp(660px, 78vh, 860px);
  background:
    radial-gradient(circle at 76% 28%, rgba(22, 184, 215, .24), transparent 28%),
    linear-gradient(135deg, #071b3f, #0b3f82 48%, #1769b2);
}

.hero-swiper,
.hero-swiper .swiper-slide {
  min-height: clamp(660px, 78vh, 860px);
}

.hero-bg-image {
  opacity: .32 !important;
  filter: saturate(1.02) contrast(1.02) !important;
  mix-blend-mode: screen;
}

.hero-swiper .swiper-slide::before {
  background:
    linear-gradient(90deg, rgba(7, 27, 63, .92), rgba(7, 27, 63, .72) 48%, rgba(7, 27, 63, .2)),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0)) !important;
}

.hero-layout {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px) !important;
  gap: clamp(32px, 5vw, 72px) !important;
  padding: 56px 0 96px;
}

.hero-tag {
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(255,255,255,.28) !important;
  color: #dff2ff;
  font-weight: 900;
}

.hero-title {
  max-width: 760px;
  font-size: clamp(42px, 5.6vw, 78px) !important;
  line-height: 1.04 !important;
  text-shadow: 0 20px 56px rgba(0,0,0,.28) !important;
}

.hero-subtitle {
  max-width: 680px;
  font-size: clamp(18px, 1.7vw, 24px) !important;
  line-height: 1.75 !important;
  color: rgba(255,255,255,.88) !important;
}

.hero-proof {
  gap: 10px !important;
  margin-bottom: 28px !important;
}

.hero-proof span {
  padding: 10px 14px !important;
  border-color: rgba(255,255,255,.24) !important;
  background: rgba(255,255,255,.11) !important;
}

.hero-proof strong {
  color: #8ee8ff !important;
}

.hero-lead-card {
  border-radius: 28px !important;
  border: 1px solid rgba(255,255,255,.5) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,248,253,.95)) !important;
  box-shadow: 0 34px 90px rgba(3, 15, 38, .38) !important;
}

.hero-lead-badge {
  background: #eaf4ff !important;
  color: var(--px-blue) !important;
  font-weight: 900 !important;
}

.hero-lead-card h2 {
  font-weight: 900;
  color: var(--px-ink);
}

.strength-section {
  background: transparent !important;
  margin-top: -82px;
  position: relative;
  z-index: 5;
}

.strength-grid {
  gap: 18px !important;
}

.strength-item {
  min-height: 190px;
  border-radius: 26px !important;
  overflow: hidden;
  position: relative;
}

.strength-item::after {
  content: "";
  position: absolute;
  right: -44px;
  top: -44px;
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: rgba(23,105,178,.08);
}

.strength-icon {
  background: linear-gradient(135deg, var(--px-blue), var(--px-cyan)) !important;
  border-radius: 18px !important;
}

.strength-number {
  color: var(--px-ink) !important;
  font-weight: 900 !important;
}

.solution-section {
  background: linear-gradient(180deg, #fff, #f6faff) !important;
}

.solution-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.solution-card {
  position: relative;
  min-height: 330px;
  padding: 26px !important;
  border: 1px solid var(--px-line) !important;
  border-radius: 24px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.96)) !important;
  box-shadow: var(--px-shadow) !important;
  overflow: hidden;
}

.solution-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--px-blue), var(--px-cyan), var(--px-orange));
}

.solution-icon {
  width: 58px !important;
  height: 58px !important;
  border-radius: 18px !important;
  background: #eaf4ff !important;
  color: var(--px-blue) !important;
}

.solution-body h3 {
  color: var(--px-ink);
  font-weight: 900;
}

.solution-tags span {
  background: #eef6ff !important;
  color: #315272 !important;
  border: 1px solid #dceaff;
}

.solution-link {
  color: var(--px-blue) !important;
  font-weight: 900;
}

.solution-process {
  border: 1px solid #dceaff !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: var(--px-shadow);
}

.course-tabs,
.campuses-tabs {
  gap: 10px !important;
}

.course-tab,
.campus-tab {
  border: 1px solid #dceaff !important;
  background: #fff !important;
  color: #315272 !important;
  box-shadow: 0 10px 26px rgba(15,23,42,.04);
}

.course-tab.active,
.campus-tab.active {
  background: linear-gradient(135deg, var(--px-blue), #0b8bd3) !important;
  color: #fff !important;
  border-color: transparent !important;
}

.course-content,
.campus-content {
  padding: 24px !important;
}

.course-title,
.campus-name {
  font-weight: 900 !important;
  color: var(--px-ink) !important;
}

.course-footer {
  border-top: 1px solid #edf4fb;
  padding-top: 16px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.class-type-card,
.teacher-card,
.testimonial-card,
.faq-item {
  border: 1px solid var(--px-line) !important;
  border-radius: 24px !important;
  box-shadow: var(--px-shadow) !important;
}

/* v7 课程中心 */
.course-advisor-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
  gap: 28px;
  align-items: center;
  margin-bottom: 28px;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid #dceaff;
  border-radius: 30px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,247,255,.92)),
    radial-gradient(circle at right top, rgba(22,184,215,.16), transparent 36%);
  box-shadow: var(--px-shadow);
}

.course-advisor-copy h2 {
  margin: 14px 0 12px;
  font-size: clamp(28px, 3vw, 42px);
  color: var(--px-ink);
  font-weight: 900;
}

.course-advisor-copy p {
  max-width: 660px;
  color: var(--px-body);
  font-size: 17px;
  line-height: 1.8;
}

.course-advisor-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid #e1ecf8;
  box-shadow: 0 16px 38px rgba(17,43,87,.08);
}

.course-advisor-form input,
.course-advisor-form select {
  height: 48px;
  padding: 0 14px;
}

.course-advisor-form button {
  grid-column: span 2;
  height: 50px;
  justify-content: center;
}

.course-page-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

.course-page-stats div {
  padding: 18px 20px;
  border: 1px solid #dceaff;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(17,43,87,.05);
}

.course-page-stats strong {
  display: block;
  color: var(--px-blue);
  font-size: 22px;
  font-weight: 900;
}

.course-page-stats span {
  display: block;
  margin-top: 4px;
  color: var(--px-body);
  font-size: 13px;
}

/* v7 预约页 */
.appointment-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 28px;
  padding: 16px;
  border: 1px solid #dceaff;
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--px-shadow);
}

.appointment-flow div {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #617389;
  font-weight: 800;
}

.appointment-flow strong {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eef6ff;
  color: var(--px-blue);
}

.appointment-flow .active strong {
  background: linear-gradient(135deg, var(--px-blue), var(--px-cyan));
  color: #fff;
}

.appointment-flow i {
  color: #aac0d7;
}

.appointment-section .form-card {
  padding: clamp(24px, 4vw, 42px) !important;
}

.appointment-section .form-card h2 {
  margin-top: 14px;
  color: var(--px-ink);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 900;
}

.appointment-summary-card {
  background:
    linear-gradient(135deg, #082b5f, #1769b2) !important;
  color: #fff;
}

.appointment-summary-card h3 {
  margin: 14px 0 18px;
  color: #fff;
  font-weight: 900;
}

.summary-list {
  display: grid;
  gap: 12px;
}

.summary-list div {
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
}

.summary-list strong,
.summary-list span {
  display: block;
}

.summary-list strong {
  color: #fff;
  margin-bottom: 4px;
}

.summary-list span {
  color: rgba(255,255,255,.78);
  line-height: 1.65;
}

@media (max-width: 1080px) {
  .hero-layout,
  .solution-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .course-advisor-panel,
  .course-page-stats {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .hero-layout,
  .solution-grid,
  .course-advisor-panel,
  .course-page-stats {
    grid-template-columns: 1fr !important;
  }

  .hero-layout {
    padding-top: 36px;
  }

  .strength-section {
    margin-top: -42px;
  }

  .course-advisor-form {
    grid-template-columns: 1fr;
  }

  .course-advisor-form button {
    grid-column: auto;
  }

  .appointment-flow {
    border-radius: 24px;
    flex-wrap: wrap;
  }
}

.hero-proof,
.hero-stats .stat-item,
.strength-item,
.course-card,
.campus-card,
.teacher-card,
.news-card,
.geo-answer-card,
.detail-card,
.campus-info-panel,
.campus-map-panel,
.campus-feature-panel,
.campus-related-panel,
.course-detail-card,
.course-related-card,
.form-card {
  border: 1px solid var(--px-line) !important;
  border-radius: var(--px-radius) !important;
  box-shadow: var(--px-shadow) !important;
  background: rgba(255,255,255,.94) !important;
}

.course-card,
.campus-card,
.teacher-card,
.news-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.course-card:hover,
.campus-card:hover,
.teacher-card:hover,
.news-card:hover {
  transform: translateY(-6px);
  border-color: #bcd7f6 !important;
  box-shadow: var(--px-shadow-strong) !important;
}

.course-image,
.campus-image,
.news-image {
  border-radius: var(--px-radius) var(--px-radius) 0 0;
  background: linear-gradient(135deg, #eaf4ff, #f8fbff) !important;
}

.course-category,
.campus-type-badge,
.badge {
  border-radius: 999px;
}

.appointment-form input,
.appointment-form select,
.appointment-form textarea,
.form-control,
.sidebar-form input,
.sidebar-form select,
.campus-consult-form input,
.campus-consult-form select {
  border-radius: 12px !important;
  border-color: #d6e4f4 !important;
  background: #fbfdff !important;
}

.appointment-form input:focus,
.appointment-form select:focus,
.appointment-form textarea:focus,
.form-control:focus {
  border-color: var(--px-blue) !important;
  box-shadow: 0 0 0 4px rgba(23, 105, 178, .12) !important;
}

.site-footer {
  background:
    linear-gradient(135deg, #082b5f, #0b3f82 58%, #1769b2);
  color: rgba(255,255,255,.82);
}

.site-footer h4,
.footer-logo span,
.footer-links a:hover,
.footer-contact i {
  color: #fff;
}

.service-dock {
  right: 22px;
}

.service-dock-panel {
  border: 1px solid #dbeafe;
  border-radius: 22px !important;
  box-shadow: 0 24px 54px rgba(17,43,87,.18);
}

.service-dock-item {
  color: var(--px-blue) !important;
}

.service-dock-primary span,
.service-dock-item:hover span {
  color: var(--px-blue);
}

.service-pop > *,
.phone-card,
.claim-card,
.qr-card {
  border-radius: 22px !important;
  box-shadow: 0 24px 64px rgba(17,43,87,.18) !important;
}

.claim-card-desc {
  margin: -6px 0 14px;
  color: #5c6f86;
  font-size: 14px;
  line-height: 1.65;
}

@media (max-width: 768px) {
  .container {
    width: min(100% - 28px, 1220px);
  }

  .site-logo-image {
    height: 42px;
    max-width: 176px;
  }

  .header-actions {
    display: none;
  }

  .service-dock {
    right: 12px;
    bottom: 16px;
  }
}

/* v7 校区模块 */
.campus-locator-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
  gap: 28px;
  align-items: center;
  margin-bottom: 30px;
  padding: clamp(24px, 4vw, 42px);
  border-radius: 32px;
  border: 1px solid #dceaff;
  background:
    radial-gradient(circle at 92% 16%, rgba(22,184,215,.18), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,247,255,.94));
  box-shadow: var(--px-shadow);
}

.campus-locator-panel h2 {
  margin: 14px 0 12px;
  color: var(--px-ink);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 900;
}

.campus-locator-panel p {
  max-width: 720px;
  color: var(--px-body);
  font-size: 17px;
  line-height: 1.85;
}

.campus-locator-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.campus-locator-stats span {
  min-height: 110px;
  padding: 18px 14px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid #e0ebf8;
  color: var(--px-body);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  box-shadow: 0 12px 30px rgba(17,43,87,.06);
}

.campus-locator-stats strong {
  color: var(--px-blue);
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 8px;
}

.campus-card {
  overflow: hidden;
}

.campus-image {
  height: 190px !important;
  background:
    radial-gradient(circle at 18% 18%, rgba(22,184,215,.32), transparent 28%),
    linear-gradient(135deg, #0a6ed4, #1648c7) !important;
}

.campus-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,27,63,0), rgba(7,27,63,.18));
  pointer-events: none;
}

.campus-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.campus-type-badge {
  z-index: 2;
  color: #075eaa !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(207,224,244,.9);
}

.campus-content {
  display: flex;
  min-height: 250px;
  flex-direction: column;
}

.campus-name {
  color: var(--px-ink) !important;
  font-size: 21px !important;
}

.campus-address,
.campus-phone {
  color: var(--px-body) !important;
}

.campus-phone {
  margin-top: auto;
}

.campus-actions {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 10px !important;
}

.campus-actions .btn {
  justify-content: center;
}

.campus-map-switch {
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid #dceaff;
  border-radius: 32px;
  background: #fff;
  box-shadow: var(--px-shadow);
}

.campus-map-tabs {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.campus-map-tab {
  border: 1px solid #d9e7f7;
  border-radius: 999px;
  padding: 12px 20px;
  background: #f6f9fc;
  color: #516173;
  font-weight: 900;
  cursor: pointer;
  transition: all .2s ease;
}

.campus-map-tab.active,
.campus-map-tab:hover {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--px-blue), var(--px-blue-2));
  box-shadow: 0 14px 30px rgba(10,110,212,.24);
}

.campus-map-card {
  display: none;
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid #dceaff;
  background: #f7fbff;
}

.campus-map-card.active {
  display: block;
  animation: pxFadeUp .25s ease both;
}

.campus-map-copy {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 18px;
  align-items: center;
  padding: 22px 24px;
}

.campus-map-copy span {
  grid-row: span 2;
  width: 86px;
  height: 86px;
  border-radius: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 900;
  background: linear-gradient(135deg, var(--px-blue), var(--px-cyan));
}

.campus-map-copy h3 {
  margin: 0;
  color: var(--px-ink);
  font-size: 26px;
  font-weight: 900;
}

.campus-map-copy p {
  margin: 0;
  color: var(--px-body);
}

.campus-map-card img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #edf5ff;
}

.campus-detail-hero {
  min-height: 620px;
  padding: 160px 0 88px;
  background:
    radial-gradient(circle at 78% 16%, rgba(22,184,215,.24), transparent 28%),
    linear-gradient(135deg, #071b3f, #0b3f82 52%, #1769b2);
}

.campus-detail-breadcrumb,
.campus-detail-breadcrumb a {
  color: rgba(255,255,255,.78);
}

.campus-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 560px);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.campus-detail-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.2);
  font-weight: 900;
}

.campus-detail-copy h1 {
  color: #fff;
  font-size: clamp(42px, 5vw, 72px);
  margin: 22px 0 16px;
}

.campus-detail-copy p {
  max-width: 680px;
  color: rgba(255,255,255,.82);
  font-size: 18px;
  line-height: 1.9;
}

.campus-detail-actions {
  margin-top: 28px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.campus-detail-photo {
  border-radius: 34px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}

.campus-detail-photo img {
  width: 100%;
  min-height: 380px;
  display: block;
  object-fit: cover;
}

.campus-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 28px;
  align-items: start;
}

.campus-info-list,
.campus-feature-grid,
.campus-related-grid {
  display: grid;
  gap: 14px;
}

.campus-info-item {
  display: flex;
  gap: 14px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid #e1ecf8;
  background: #f8fbff;
}

.campus-info-item i {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(135deg, var(--px-blue), var(--px-cyan));
}

.campus-info-item span {
  display: block;
  color: #718199;
  font-size: 13px;
  margin-bottom: 4px;
}

.campus-info-item strong {
  color: var(--px-ink);
  line-height: 1.55;
}

.campus-map-preview {
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid #dceaff;
  background: #f7fbff;
}

.campus-map-preview img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}

.campus-map-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.campus-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.campus-feature-grid span {
  padding: 14px 16px;
  border-radius: 16px;
  color: var(--px-ink);
  font-weight: 800;
  background: #f7fbff;
  border: 1px solid #e1ecf8;
}

.campus-feature-grid i {
  color: var(--px-blue);
  margin-right: 8px;
}

.campus-related-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.campus-related-card {
  color: inherit;
  text-decoration: none;
}

.campus-related-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 18px;
  margin-bottom: 12px;
}

.campus-consult-card {
  position: sticky;
  top: 118px;
  padding: 24px;
  border-radius: 28px;
  border: 1px solid #dceaff;
  background: #fff;
  box-shadow: var(--px-shadow);
}

.campus-consult-card h3 {
  color: var(--px-ink);
  font-size: 26px;
  font-weight: 900;
}

.campus-consult-form {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.campus-sidebar-phone {
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--px-blue);
  font-weight: 900;
}

@keyframes pxFadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1080px) {
  .campus-locator-panel,
  .campus-detail-hero-grid,
  .campus-detail-layout {
    grid-template-columns: 1fr;
  }

  .campus-consult-card {
    position: static;
  }
}

@media (max-width: 760px) {
  .campus-locator-stats,
  .campus-related-grid,
  .campus-feature-grid {
    grid-template-columns: 1fr;
  }

  .campus-map-copy {
    grid-template-columns: 1fr;
  }

  .campus-map-copy span {
    width: auto;
    height: auto;
    padding: 12px 16px;
    border-radius: 999px;
  }

  .campus-detail-hero {
    padding-top: 126px;
  }
}

/* v7 师资与新闻模块 */
.v5-page-hero,
.news-detail-hero {
  position: relative;
  overflow: hidden;
  padding: 154px 0 92px;
  background:
    radial-gradient(circle at 76% 12%, rgba(22,184,215,.22), transparent 28%),
    linear-gradient(135deg, #071b3f, #0b3f82 54%, #1769b2) !important;
}

.v5-page-hero::after,
.news-detail-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 110px;
  background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
  pointer-events: none;
}

.v5-page-hero-content,
.news-detail-hero-grid {
  position: relative;
  z-index: 2;
}

.v5-page-tag {
  display: inline-flex;
  padding: 8px 14px;
  border-radius: 999px;
  color: #fff !important;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.2);
  font-weight: 900;
  letter-spacing: .12em;
}

.v5-page-title {
  color: #fff !important;
  font-size: clamp(42px, 5vw, 72px) !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.v5-page-desc,
.v5-page-breadcrumb,
.v5-page-breadcrumb a {
  color: rgba(255,255,255,.78) !important;
}

.v5-teachers-stats {
  border: 1px solid #dceaff;
  border-radius: 30px;
  background: #fff;
  box-shadow: var(--px-shadow);
}

.v5-teacher-card {
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 28px;
  padding: clamp(22px, 3vw, 34px) !important;
  border: 1px solid var(--px-line) !important;
  border-radius: 30px !important;
  background: #fff !important;
  box-shadow: var(--px-shadow) !important;
}

.v5-teacher-avatar {
  width: 172px !important;
  height: 172px !important;
  border-radius: 34px !important;
  overflow: hidden;
  background: linear-gradient(135deg, #eaf4ff, #f7fbff);
  border: 1px solid #dceaff;
}

.v5-teacher-avatar-img {
  border-radius: 34px !important;
}

.v5-teacher-info h3 {
  color: var(--px-ink) !important;
  font-size: 30px !important;
  font-weight: 900 !important;
}

.v5-teacher-title,
.v5-teacher-section p {
  color: var(--px-body) !important;
}

.v5-teacher-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.v5-tag {
  border-radius: 999px !important;
  border: 1px solid #dceaff !important;
  background: #f4f9ff !important;
  color: var(--px-blue) !important;
}

.v5-values-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.v5-value-card {
  border: 1px solid var(--px-line) !important;
  border-radius: 28px !important;
  background: #fff !important;
  box-shadow: var(--px-shadow) !important;
}

.v5-news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.v5-news-card {
  overflow: hidden;
  border: 1px solid var(--px-line) !important;
  border-radius: 30px !important;
  background: #fff !important;
  box-shadow: var(--px-shadow) !important;
}

.v5-news-image {
  height: 220px !important;
  background: linear-gradient(135deg, #0a6ed4, #1648c7) !important;
}

.v5-news-category {
  background: rgba(255,255,255,.92) !important;
  color: var(--px-blue) !important;
  border: 1px solid rgba(207,224,244,.9);
}

.v5-news-title a {
  color: var(--px-ink) !important;
  font-weight: 900;
}

.v5-news-summary,
.v5-news-meta {
  color: var(--px-body) !important;
}

.v5-news-sidebar,
.v5-subscribe-card {
  margin-top: 34px;
  border: 1px solid var(--px-line) !important;
  border-radius: 30px !important;
  background: #fff !important;
  box-shadow: var(--px-shadow) !important;
}

.v7-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 34px;
}

.v7-pagination a {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--px-blue);
  background: #fff;
  border: 1px solid #dceaff;
  font-weight: 900;
  text-decoration: none;
}

.v7-pagination a.active,
.v7-pagination a:hover {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--px-blue), var(--px-blue-2));
}

.news-detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 560px);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.news-detail-copy .breadcrumb,
.news-detail-copy .breadcrumb a {
  color: rgba(255,255,255,.72);
}

.news-detail-copy h1 {
  color: #fff;
  font-size: clamp(36px, 4.6vw, 64px);
  font-weight: 900;
  line-height: 1.14;
  margin: 20px 0 16px;
}

.news-detail-copy p {
  color: rgba(255,255,255,.82);
  font-size: 18px;
  line-height: 1.85;
}

.news-detail-copy .article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.news-detail-copy .article-meta span {
  padding: 9px 12px;
  border-radius: 999px;
  color: rgba(255,255,255,.86);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
}

.news-detail-cover {
  border-radius: 34px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}

.news-detail-cover img {
  width: 100%;
  min-height: 360px;
  display: block;
  object-fit: cover;
}

.news-article-card {
  padding: clamp(24px, 4vw, 46px);
  border: 1px solid var(--px-line);
  border-radius: 30px;
  background: #fff;
  box-shadow: var(--px-shadow);
  color: var(--px-ink);
  line-height: 1.9;
}

.news-article-card img {
  max-width: 100%;
  border-radius: 18px;
}

.news-consult-card {
  background: linear-gradient(135deg, #082b5f, #1769b2) !important;
  color: #fff;
}

.news-consult-card h3,
.news-consult-card p {
  color: #fff;
}

.related-news-item {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #e8f0fa;
  color: var(--px-ink);
  text-decoration: none;
}

.related-news-item small {
  display: block;
  margin-top: 6px;
  color: var(--px-body);
}

@media (max-width: 1080px) {
  .v5-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .news-detail-hero-grid,
  .v5-teacher-card {
    grid-template-columns: 1fr;
  }

  .v5-values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .v5-news-grid,
  .v5-values-grid {
    grid-template-columns: 1fr;
  }

  .v5-page-hero,
  .news-detail-hero {
    padding-top: 126px;
  }
}

/* v7.5 首页首屏修正 */
.hero-section {
  min-height: clamp(620px, 72vh, 760px) !important;
  background:
    radial-gradient(circle at 72% 30%, rgba(255,255,255,.16), transparent 34%),
    linear-gradient(135deg, #081f45, #0b4f96 54%, #1b79c5) !important;
}

.hero-swiper,
.hero-swiper .swiper-slide {
  min-height: clamp(620px, 72vh, 760px) !important;
}

.hero-bg-image {
  opacity: .68 !important;
  filter: saturate(1.08) contrast(1.04) brightness(.9) !important;
  mix-blend-mode: normal !important;
}

.hero-swiper .swiper-slide::before {
  background:
    linear-gradient(90deg, rgba(7,27,63,.88) 0%, rgba(7,27,63,.68) 43%, rgba(7,27,63,.2) 72%, rgba(7,27,63,.08) 100%),
    linear-gradient(180deg, rgba(7,27,63,.12), rgba(7,27,63,.28)) !important;
}

.hero-section::after {
  height: 86px !important;
  background: linear-gradient(180deg, rgba(255,255,255,0), #f7fbff) !important;
}

.hero-layout {
  display: block !important;
  padding: clamp(70px, 8vw, 118px) 0 132px !important;
}

.hero-text {
  max-width: 880px;
}

.hero-lead-card {
  display: none !important;
}

.hero-title {
  max-width: 900px !important;
  font-size: clamp(44px, 4.6vw, 68px) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  word-break: keep-all;
  text-wrap: balance;
}

.hero-subtitle {
  margin-top: 22px !important;
}

.hero-proof {
  display: flex !important;
  flex-wrap: wrap !important;
  width: auto !important;
  max-width: 760px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  gap: 12px !important;
  margin: 28px 0 28px !important;
}

.hero-proof span {
  width: auto !important;
  min-width: 118px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.13) !important;
  backdrop-filter: blur(12px);
}

.hero-proof strong {
  color: #9cecff !important;
}

.strength-section {
  margin-top: -34px !important;
  padding-top: 0 !important;
  background: linear-gradient(180deg, #f7fbff, #fff) !important;
}

.strength-grid {
  transform: translateY(0);
}

@media (max-width: 760px) {
  .hero-layout {
    padding: 58px 0 92px !important;
  }

  .hero-title {
    font-size: clamp(36px, 10vw, 48px) !important;
  }

  .hero-proof span {
    min-width: 0;
    flex: 1 1 138px;
  }

  .strength-section {
    margin-top: 0 !important;
    padding-top: 34px !important;
  }
}

/* v8.9: concise top service bar */
.header-topbar {
  min-height: 30px !important;
  padding: 0 !important;
}

.header-topbar .container,
.topbar-inner {
  min-height: 30px !important;
  height: 30px !important;
}

.topbar-inner,
.topbar-left,
.topbar-right {
  display: flex !important;
  align-items: center !important;
}

.topbar-left,
.topbar-right {
  gap: 18px !important;
}

.topbar-time,
.topbar-note {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  height: 30px !important;
  color: rgba(255,255,255,.94) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.topbar-phone,
.topbar-btn {
  display: none !important;
}
