/* =====================================================================
   McCaw Sports Education · 公共样式
   高端青少年体育教育 · 欧美现代化视觉
   ===================================================================== */

:root{
  /* 色彩系统 */
  --c-ink: #0a1929;          /* 主色 深蓝黑 */
  --c-ink-2: #122a40;        /* 辅助深色 */
  --c-ink-3: #1c3a5a;        /* 中间色 */
  --c-gold: #c8a96a;         /* 高级金 */
  --c-gold-2: #b8964f;       /* 金色加深 */
  --c-green: #00c896;        /* 活力点缀绿 */
  --c-line: rgba(255,255,255,.14);
  --c-line-dark: rgba(10,25,41,.1);
  --c-white: #ffffff;
  --c-mute: #8a99a8;

  /* 尺寸 */
  --nav-h: 88px;
  --max-w: 1400px;
  --radius: 2px;

  /* 过渡 */
  --ease: cubic-bezier(.22,.61,.36,1);
  --t-fast: .25s;
  --t-mid: .45s;
  --t-slow: .8s;

  /* 阴影 */
  --shadow-nav: 0 8px 30px rgba(0,0,0,.18);
  --shadow-soft: 0 12px 40px rgba(10,25,41,.08);
}

/* ================== 基础重置 ================== */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  line-height: 1.6;
  font-size: 16px;
  font-weight: 400;
  font-family:'PingFang SC','HarmonyOS Sans SC','Microsoft YaHei','微软雅黑',Arial,sans-serif;
  color: #0a1929;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
p{ margin-bottom: 5px; }
ul,li{ list-style: none; }
ul{ padding-left: 0; margin: 0; }
a{ text-decoration: none !important; color: inherit; transition: color var(--t-fast) var(--ease); }
a:hover{ color: var(--c-gold); }
img{ max-width: 100%; display: block; }
button{ font-family: inherit; cursor: pointer; border: 0; background: none; padding: 0; color: inherit; }
.btn:focus,.btn:active,.form-control:focus{ outline: none; box-shadow: none; border: none; }

/* 通用容器 */
.w-90{
  width: 90%;
  max-width: var(--max-w);
  margin: 0 auto;
}

/* 显隐 */
.pc{ display: block; }
.mb{ display: none; }
@media(max-width: 992px){
  .pc{ display: none !important; }
  .mb{ display: block !important; }
}

/* ================== 公共导航 ================== */
.site-header{
  position: sticky;             /* 页面下拉后浮顶 */
  top: 0;
  left: 0; right: 0;
  z-index: 130;                 /* 高于抽屉菜单(105)和背景遮罩(104)，保证切换按钮始终可点 */
  height: var(--nav-h);
  background: #ffffff;          /* 默认白色背景 */
  border-bottom: 1px solid #f0f0f0;
  box-shadow: 0 1px 0 rgba(10,25,41,.02);
  transition: box-shadow var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease);
}
.site-header.is-scrolled{
  /* 滚动后：浮顶加强阴影 */
  box-shadow: 0 6px 24px rgba(10,25,41,.08);
  border-bottom-color: transparent;
}

.nav-inner{
  position: relative;
  width: 92%;
  max-width: var(--max-w);
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

/* Logo */
.brand{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 100%;
}
.brand img{
  height: 66px;
  width: auto;
  transition: filter var(--t-mid) var(--ease), transform var(--t-mid) var(--ease);
}

/* 菜单 */
.nav-menu{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
}
.nav-list{
  display: flex;
  align-items: center;
  gap: 4px;
}
.nav-item{
  position: relative;
}
.nav-link{
  position: relative;
  display: inline-flex;
  align-items: center;
  height: var(--nav-h);
  padding: 0 18px;
  color: var(--c-ink);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .04em;
  transition: color var(--t-fast) var(--ease);
}
.nav-link span{
  position: relative;
  display: inline-block;
}
.nav-link span::after{
  content: '';
  position: absolute;
  left: 50%; bottom: -8px;
  width: 0; height: 2px;
  background: var(--c-gold);
  transition: width var(--t-mid) var(--ease), left var(--t-mid) var(--ease);
}
.nav-item:hover .nav-link,
.nav-item.is-active .nav-link{
  color: var(--c-gold);
}
.nav-item:hover .nav-link span::after,
.nav-item.is-active .nav-link span::after{
  width: calc(100% - 4px);
  left: 2px;
}

/* CTA 按钮 */
.nav-cta{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 22px;
  background: transparent;
  color: var(--c-ink);
  border: 1.5px solid var(--c-gold);
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
  white-space: nowrap;
}
.nav-cta i{ font-size: 14px; transition: transform var(--t-fast) var(--ease); }
.nav-cta:hover{
  background: var(--c-gold);
  color: var(--c-ink);
  transform: translateY(-1px);
}
.nav-cta:hover i{ transform: translateX(4px); }

/* 汉堡按钮（移动端） */
.nav-toggle{
  display: none;
  width: 40px; height: 40px;
  position: relative;
  z-index: 110;
}
.nav-toggle span{
  display: block;
  position: absolute;
  left: 8px; right: 8px;
  height: 2px;
  background: var(--c-ink);
  border-radius: 2px;
  transition: transform var(--t-mid) var(--ease), opacity var(--t-fast) var(--ease), top var(--t-mid) var(--ease), background-color var(--t-fast) var(--ease);
}
.nav-toggle span:nth-child(1){ top: 13px; }
.nav-toggle span:nth-child(2){ top: 19px; }
.nav-toggle span:nth-child(3){ top: 25px; }
.nav-toggle.is-open span{ background: var(--c-ink); }
.nav-toggle.is-open span:nth-child(1){ top: 19px; transform: rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity: 0; }
.nav-toggle.is-open span:nth-child(3){ top: 19px; transform: rotate(-45deg); }

/* ================== 首页 Banner ================== */
.hero-banner{
  position: relative;
  width: 100%;
  background: var(--c-ink);
  overflow: hidden;
}
.banner-stage{
  position: relative;
  width: 100%;
  /* 高度由 JS 根据图片比例动态计算 */
  height: 0;
  transition: height var(--t-slow) var(--ease);
}
.banner-slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--t-slow) var(--ease), visibility 0s linear var(--t-slow);
  overflow: hidden;
  will-change: opacity, transform;
}
.banner-slide.is-active{
  opacity: 1;
  visibility: visible;
  transition: opacity var(--t-slow) var(--ease), visibility 0s linear 0s;
}
.banner-img{
  width: 100%;
  height: auto;
  display: block;
  transform: scale(1.08);
  transition: transform 1.6s var(--ease);
}
.banner-slide.is-active .banner-img{
  transform: scale(1);
}
/* 轻微的暗角，让两张图切换时过渡更柔和 */
.banner-stage::after{
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 70%, rgba(0,0,0,.15) 100%);
  pointer-events: none;
  z-index: 2;
}

/* 左右切换箭头 */
.banner-arrow{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px; height: 42px;
  border: 1.5px solid rgba(255,255,255,.6);
  border-radius: 50%;
  color: var(--c-white);
  background: rgba(10,25,41,.18);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  z-index: 3;
  opacity: 0;
  transition: opacity var(--t-mid) var(--ease), background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.banner-arrow:hover{
  background: var(--c-gold);
  border-color: var(--c-gold);
  color: var(--c-ink);
}
.banner-arrow:active{ transform: translateY(-50%) scale(.96); }
.banner-prev{ left: 24px; }
.banner-next{ right: 24px; }
.hero-banner:hover .banner-arrow{ opacity: 1; }

/* 移动端始终可见箭头 */
@media (hover: none){
  .banner-arrow{ opacity: .85; width: 36px; height: 36px; font-size: 16px; }
  .banner-prev{ left: 10px; }
  .banner-next{ right: 10px; }
}

/* 底部进度条 */
.banner-progress{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: rgba(255,255,255,.18);
  z-index: 3;
}
.banner-progress-bar{
  display: block;
  height: 100%;
  width: 0;
  background: var(--c-gold);
  transform-origin: left center;
  transition: width 80ms linear;
}
.banner-progress.is-paused .banner-progress-bar{
  /* 暂停时变为绿色提示 */
  background: var(--c-green);
}

/* ================== 移动端抽屉 ================== */
@media (max-width: 992px){
  :root{ --nav-h: 68px; }

  .brand img{ height: 36px; }
  .nav-toggle{ display: inline-flex; align-items: center; justify-content: center; }

  .nav-menu{
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 86%;
    max-width: 360px;
    background: #ffffff;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0;
    padding: 100px 0 32px;
    transform: translateX(100%);
    transition: transform var(--t-mid) var(--ease);
    box-shadow: -16px 0 40px rgba(0,0,0,.12);
    z-index: 105;
  }
  .nav-menu.is-open{ transform: translateX(0); }

  .nav-list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0 24px;
  }
  .nav-link{
    width: 100%;
    height: 56px;
    color: var(--c-ink);
    justify-content: flex-start;
    border-bottom: 1px solid var(--c-line-dark);
    padding: 0 8px;
  }
  .nav-link span::after{ display: none; }
  .nav-item:hover .nav-link,
  .nav-item.is-active .nav-link{
    color: var(--c-gold);
  }
  .nav-cta{
    margin: 24px 24px 0;
    color: var(--c-ink);
    border-color: var(--c-ink);
    justify-content: center;
  }
  .nav-cta:hover{ color: var(--c-white); background: var(--c-ink); }

  /* 抽屉遮罩 */
  .nav-backdrop{
    position: fixed; inset: 0;
    background: rgba(10,25,41,.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-mid) var(--ease), visibility 0s linear var(--t-mid);
    z-index: 104;
  }
  .nav-backdrop.is-open{
    opacity: 1;
    visibility: visible;
    transition: opacity var(--t-mid) var(--ease), visibility 0s linear 0s;
  }

  /* 移动端 banner 箭头更紧凑 */
  .banner-arrow{ width: 34px; height: 34px; font-size: 14px; }
  .banner-prev{ left: 8px; }
  .banner-next{ right: 8px; }
}

/* 防止抽屉打开时页面滚动 */
body.nav-open{ overflow: hidden; }

/* ================== 微调 ================== */
@media (max-width: 768px){
  .brand img{ height: 32px; }
  .nav-link{ font-size: 12px; padding: 0 12px; }
  .banner-progress{ height: 2px; }
}
@media (max-width: 480px){
  .nav-inner{ gap: 12px; }
  .nav-link{ padding: 0 10px; letter-spacing: .02em; }
}

/* ================== 品牌定位 ================== */
.brand-position{
  position: relative;
  width: 100%;
  background: #ffffff;
  padding: 60px 0;
  overflow: hidden;
}
.bp-inner{
  width: 90%;
  max-width: 1400px;
  margin: 0 auto;
}

/* 标题区 */
.bp-header{
  text-align: center;
  max-width: 820px;
  margin: 0 auto 50px;
}
.bp-eyebrow{
  display: inline-block;
  position: relative;
  font-size: 0.75rem;          /* rem 仅用于 font-size */
  font-weight: 400;
  letter-spacing: 0.32em;
  color: var(--c-gold);
  text-transform: uppercase;
  padding: 0 48px;
  margin-bottom: 20px;
}
.bp-eyebrow::before,
.bp-eyebrow::after{
  content: '';
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.bp-eyebrow::before{ left: 0; }
.bp-eyebrow::after{ right: 0; }
.bp-title{
  font-size: 3rem;             /* rem 仅用于 font-size */
  font-weight: 700;
  line-height: 1.2;
  color: var(--c-ink);
  letter-spacing: -0.01em;
  margin: 0 0 24px;
}
.bp-desc{
  font-size: 1.0625rem;         /* rem 仅用于 font-size */
  line-height: 1.85;
  color: #5a6b7a;
  margin: 0;
}

/* 三栏价值卡 */
.bp-values{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  align-items: stretch;
}
.bp-value{
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 24px 32px;
  border-left: 1px solid var(--c-gold);
  border-radius: 0;
  transition: background-color 0.4s var(--ease);
}
.bp-value:first-child{
  border-left: none;          /* 首个不显示左边竖线 */
}
.bp-value:hover{
  background-color: #fafaf8;
}
.bp-value-icon{
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-gold);
  font-size: 36px;
  line-height: 1;
  margin-top: 2px;
}
.bp-value-icon i{ display: block; }
.bp-value-body{
  flex: 1 1 auto;
  min-width: 0;
}
.bp-value-title{
  font-size: 1.5rem;          /* rem 仅用于 font-size */
  font-weight: 600;
  color: var(--c-gold-2);
  letter-spacing: 0.04em;
  margin: 0 0 12px;
}
.bp-value-desc{
  font-size: 0.9375rem;       /* rem 仅用于 font-size */
  line-height: 1.85;
  color: #4a5a6a;
  margin: 0;
}

/* 品牌定位响应式 */
@media (max-width: 992px){
  .brand-position{ padding: 50px 0; }
  .bp-header{ margin-bottom: 48px; }
  .bp-title{ font-size: 2.25rem; }
  .bp-values{ grid-template-columns: 1fr; gap: 0; }
  .bp-value{
    padding: 24px 0;
    border-left: none;
    border-top: 1px solid var(--c-gold);
  }
  .bp-value:first-child{ border-top: none; }
  .bp-value-icon{ width: 44px; height: 44px; font-size: 32px; }
}
@media (max-width: 768px){
  .brand-position{ padding: 40px 0; }
  .bp-header{ margin-bottom: 36px; }
  .bp-title{ font-size: 1.75rem; }
  .bp-desc{ font-size: 1rem; }
  .bp-eyebrow{ padding: 0 36px; letter-spacing: 0.24em; margin-bottom: 20px; }
  .bp-eyebrow::before, .bp-eyebrow::after{ width: 20px; }
  .bp-value{ padding: 20px 0; }
  .bp-value-title{ font-size: 1.25rem; }
  .bp-value-icon{ width: 40px; height: 40px; font-size: 28px; margin-top: 0; }
}

/* ================== 服务项目 ================== */
.programs{
  position: relative;
  width: 100%;
  background: #fafaf8;           /* 淡米色底，与上方品牌定位形成节奏 */
  padding: 60px 0;
  padding-bottom: 80px;
  overflow: hidden;
}
.prog-inner{
  width: 90%;
  max-width: 1400px;
  margin: 0 auto;
}

/* 标题区：与品牌定位保持一致节奏 */
.prog-header{
  text-align: center;
  max-width: 820px;
  margin: 0 auto 50px;
}
.prog-eyebrow{
  display: inline-block;
  position: relative;
  font-size: 0.75rem;            /* rem 仅用于 font-size */
  font-weight: 400;
  letter-spacing: 0.32em;
  color: var(--c-gold);
  text-transform: uppercase;
  padding: 0 48px;
  margin-bottom: 20px;
}
.prog-eyebrow::before,
.prog-eyebrow::after{
  content: '';
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.prog-eyebrow::before{ left: 0; }
.prog-eyebrow::after{ right: 0; }
.prog-title{
  font-size: 3rem;               /* rem 仅用于 font-size */
  font-weight: 700;
  line-height: 1.2;
  color: var(--c-ink);
  letter-spacing: 1px;
  margin: 0 0 24px;
}
.prog-desc{
  font-size: 1.0625rem;           /* rem 仅用于 font-size */
  line-height: 1.85;
  color: #5a6b7a;
  margin: 0;
}

/* 卡片网格：4 列 × 1 行 */
.prog-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  align-items: stretch;
}
.prog-item{
  position: relative;
  border-radius: 0;              /* 项目规范：去圆角 */
  overflow: hidden;
  background: #ffffff;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.prog-link{
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
}
.prog-img{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;          /* 4 列下更舒展的横向比例 */
  overflow: hidden;
  background: #eee;
}
.prog-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;              /* 项目规范：去圆角 */
  transition: transform 0.4s ease;  /* 项目规范 */
}
.prog-item:hover{
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -16px rgba(10,25,41,0.18);
}
.prog-item:hover .prog-img img{
  transform: scale(1.05);        /* 项目规范 */
}
.prog-info{
  flex: 1 1 auto;
  padding: 20px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.prog-name{
  font-size: 1.1rem;           /* rem 仅用于 font-size */
  font-weight: 600;
  color: var(--c-ink);
  margin: 0;
}
.prog-en{
  display: block;
  font-size: 0.75rem;            /* rem 仅用于 font-size */
  font-weight: 400;
  color: var(--c-gold);
  text-transform: uppercase;
}

/* 服务项目响应式 */
@media (max-width: 992px){
  .programs{ padding: 50px 0; }
  .prog-header{ margin-bottom: 40px; }
  .prog-title{ font-size: 2.25rem; }
  .prog-grid{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 768px){
  .programs{ padding: 40px 0; }
  .prog-header{ margin-bottom: 32px; }
  .prog-title{ font-size: 1.75rem; }
  .prog-desc{ font-size: 1rem; }
  .prog-eyebrow{ padding: 0 36px; letter-spacing: 0.24em; margin-bottom: 20px; }
  .prog-eyebrow::before, .prog-eyebrow::after{ width: 20px; }
  .prog-grid{ grid-template-columns: 1fr; gap: 20px; }
  .prog-info{ padding: 18px 20px 22px; }
  .prog-name{ font-size: 1.25rem; }
}

/* ============ 为什么选择麦考 ============ */
.why-us{
  position: relative;
  width: 100%;
  padding: 100px 0;
  overflow: hidden;
  isolation: isolate;
}
.why-bg{
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("../images/bg.jpg");
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  transform: scale(1.02);
}
.why-us::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(10,25,41,0.5) 0%, rgba(10,25,41,0.4) 50%, rgba(10,25,41,0.6) 100%);
}
.why-inner{
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
}
.why-header{
  text-align: center;
  margin-bottom: 60px;
  color: #fff;
}
.why-eyebrow{
  display: inline-block;
  position: relative;
  padding: 0 60px;
  margin-bottom: 20px;
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  text-transform: uppercase;
  font-weight: 500;
}
.why-eyebrow::before, .why-eyebrow::after{
  content: "";
  position: absolute;
  top: 50%;
  width: 40px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.why-eyebrow::before{ left: 0; }
.why-eyebrow::after{ right: 0; }
.why-title{
  font-size: 2.5rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: 0.05em;
}
.why-desc{
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  max-width: 720px;
  margin: 0 auto;
  line-height: 1.8;
}
.why-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(200,169,106,0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.why-item{
  position: relative;
  padding: 50px 36px;
  text-align: center;
  color: #fff;
  border-right: 1px solid rgba(200,169,106,0.18);
  border-bottom: 1px solid rgba(200,169,106,0.18);
  transition: background 0.4s ease;
}
.why-item:nth-child(3n){ border-right: 0; }
.why-item:nth-last-child(-n+3){ border-bottom: 0; }
.why-item:hover{
  background: rgba(200,169,106,0.08);
}
.why-icon{
  width: 80px;
  height: 80px;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--c-gold);
  border-radius: 50%;
  color: var(--c-gold);
  font-size: 2rem;
  transition: background 0.4s ease, color 0.4s ease, transform 0.4s ease;
}
.why-item:hover .why-icon{
  background: var(--c-gold);
  color: #fff;
  transform: rotate(360deg);
}
.why-name{
  font-size: 1.25rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 12px;
  letter-spacing: 0.05em;
}
.why-text{
  font-size: 0.95rem;
  color: rgba(255,255,255,0.72);
  line-height: 1.75;
  margin: 0;
}

@media (max-width: 1024px){
  .why-us{ padding: 80px 0; }
  .why-inner{ padding: 0 30px; }
  .why-title{ font-size: 2rem; }
  .why-grid{ grid-template-columns: repeat(2, 1fr); }
  .why-item{ padding: 40px 24px; }
  .why-item:nth-child(3n){ border-right: 1px solid rgba(200,169,106,0.18); }
  .why-item:nth-child(2n){ border-right: 0; }
  .why-item:nth-last-child(-n+3){ border-bottom: 1px solid rgba(200,169,106,0.18); }
  .why-item:nth-last-child(-n+2){ border-bottom: 0; }
}
@media (max-width: 768px){
  .why-us{ padding: 60px 0; }
  .why-inner{ padding: 0 20px; }
  .why-header{ margin-bottom: 40px; }
  .why-title{ font-size: 1.75rem; }
  .why-desc{ font-size: 0.9rem; }
  .why-grid{ grid-template-columns: 1fr; }
  .why-item{
    padding: 36px 24px;
    border-right: 0;
    border-bottom: 1px solid rgba(200,169,106,0.18);
  }
  .why-item:last-child{ border-bottom: 0; }
  .why-icon{ width: 64px; height: 64px; font-size: 1.6rem; margin-bottom: 18px; }
  .why-name{ font-size: 1.1rem; }
  .why-text{ font-size: 0.9rem; }
}

/* ============ 最新活动 ============ */
.events{
  position: relative;
  width: 100%;
  background: #fff;
  padding: 80px 0;
  overflow: hidden;
}
.ev-inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
}
.ev-header{
  text-align: center;
  margin-bottom: 60px;
}
.ev-eyebrow{
  display: inline-block;
  position: relative;
  padding: 0 60px;
  margin-bottom: 20px;
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  text-transform: uppercase;
  font-weight: 500;
}
.ev-eyebrow::before, .ev-eyebrow::after{
  content: "";
  position: absolute;
  top: 50%;
  width: 40px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.ev-eyebrow::before{ left: 0; }
.ev-eyebrow::after{ right: 0; }
.ev-title{
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 20px;
  letter-spacing: 0.05em;
}
.ev-desc{
  font-size: 1rem;
  color: #6b7785;
  max-width: 720px;
  margin: 0 auto;
  line-height: 1.8;
}
.ev-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.ev-item{
  position: relative;
  background: #fff;
  border: 1px solid #ecedf0;
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
  overflow: hidden;
}
.ev-link{
  display: block;
  color: inherit;
  text-decoration: none;
}
.ev-link:focus-visible{ outline: 2px solid var(--c-gold); outline-offset: 2px; }
.ev-item:hover{
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -16px rgba(10,25,41,0.18);
  border-color: var(--c-gold);
}
.ev-img{
  position: relative;
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #f3f4f6;
}
.ev-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.ev-item:hover .ev-img img{
  transform: scale(1.05);
}
.ev-date{
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 8px 14px;
  background: #fff;
  border-left: 3px solid var(--c-gold);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
  min-width: 60px;
}
.ev-date-day{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 4px;
}
.ev-date-yy{
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--c-gold);
  font-weight: 500;
}
.ev-info{
  padding: 28px 24px 32px;
}
.ev-name{
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 12px;
  letter-spacing: 0.03em;
  line-height: 1.4;
}
.ev-meta{
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--c-gold);
  margin-bottom: 14px;
}
.ev-meta i{ font-size: 0.9rem; }
.ev-text{
  font-size: 0.9rem;
  color: #6b7785;
  line-height: 1.7;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 1024px){
  .events{ padding: 80px 0; }
  .ev-inner{ padding: 0 30px; }
  .ev-title{ font-size: 2rem; }
  .ev-grid{ gap: 20px; }
  .ev-info{ padding: 24px 20px 28px; }
  .ev-name{ font-size: 1.1rem; }
}
@media (max-width: 768px){
  .events{ padding: 60px 0; }
  .ev-inner{ padding: 0 20px; }
  .ev-header{ margin-bottom: 40px; }
  .ev-title{ font-size: 1.75rem; }
  .ev-desc{ font-size: 0.9rem; }
  .ev-grid{ grid-template-columns: 1fr; gap: 20px; }
  .ev-info{ padding: 24px 20px; }
}

/* ============ 广告语横幅 ============ */
.cta-slogan{
  position: relative;
  width: 100%;
  min-height: 480px;
  background-image: var(--cta-slogan-bg, none);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}
.cta-slogan-overlay{
  position: absolute;
  inset: 0;
  z-index: -1;
  /*background: linear-gradient(180deg, rgba(10,25,41,0.45) 0%, rgba(10,25,41,0.30) 50%, rgba(10,25,41,0.50) 100%);*/
}
.cta-slogan-inner{
  position: relative;
  text-align: center;
  color: #fff;
  max-width: 1100px;
  padding: 50px 50px;
}
.cta-slogan-title{
  font-size: 2.85rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  margin: 0 0 20px;
  color: #fff;
}
.cta-slogan-text{
  font-size: 1.1rem;
  color: rgba(255,255,255,0.88);
  letter-spacing: 0.05em;
  line-height: 1.8;
  margin: 0;
}

@media (max-width: 1024px){
  .cta-slogan{ min-height: 220px; }
  .cta-slogan-title{ font-size: 2.2rem; }
  .cta-slogan-text{ font-size: 0.95rem; }
  .cta-slogan-inner{ padding: 40px 30px; }
}
@media (max-width: 768px){
  .cta-slogan{ min-height: 180px; }
  .cta-slogan-inner{ padding: 36px 20px; }
  .cta-slogan-title{ font-size: 1.5rem; letter-spacing: 0.1em; margin-bottom: 14px; }
  .cta-slogan-text{ font-size: 0.85rem; line-height: 1.7; }
}

/* ============ 公共页脚 ============ */
.site-footer{
  background: #0a1929;
  color: rgba(255,255,255,0.75);
}
.ft-inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
}
.ft-top{
  padding: 60px 0 40px;
  text-align: center;
  border-bottom: 1px solid rgba(200,169,106,0.15);
}
.ft-brand{
  display: inline-block;
  margin-bottom: 20px;
}
.ft-brand img{
  height: 66px;
  display: block;
  filter: brightness(0) invert(1);
}
.ft-intro{
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  margin: 0 0 10px;
  text-transform: uppercase;
  font-weight: 500;
}
.ft-tagline{
  font-size: 0.95rem;
  color: rgba(255,255,255,0.7);
  margin: 0;
  letter-spacing: 0.05em;
}
.ft-contact{
  padding: 30px 0;
  border-bottom: 1px solid rgba(200,169,106,0.15);
}
.ft-contact-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 50px;
  flex-wrap: wrap;
}
.ft-contact-item{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.85);
}
.ft-contact-item i{
  color: var(--c-gold);
  font-size: 1rem;
}
.ft-contact-item a{
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  transition: color 0.3s ease;
}
.ft-contact-item a:hover{ color: var(--c-gold); }
.ft-bottom{
  padding: 24px 0;
  text-align: center;
}
.ft-copy, .ft-icp{
  margin: 0 0 6px;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.05em;
}
.ft-icp a{
  color: rgba(255,255,255,0.5);
  text-decoration: none;
  transition: color 0.3s ease;
}
.ft-icp a:hover{ color: var(--c-gold); }
.ft-sep{
  margin: 0 10px;
  color: rgba(255,255,255,0.3);
}

@media (max-width: 1024px){
  .ft-inner{ padding: 0 30px; }
  .ft-contact-list{ gap: 30px; }
}
@media (max-width: 768px){
  .ft-inner{ padding: 0 20px; }
  .ft-top{ padding: 50px 0 30px; }
  .ft-brand img{ height: 32px; }
  .ft-contact-list{
    flex-direction: column;
    gap: 14px;
  }
  .ft-bottom{ padding: 20px 0; }
  .ft-copy, .ft-icp{ font-size: 0.75rem; }
}

/* ============ 公共悬浮按钮 ============ */
.float-actions{
  position: fixed;
  right: 10px;
  bottom: 80px;
  z-index: 99;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
}
.fa-btn{
  position: relative;
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--c-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  cursor: pointer;
  box-shadow: 0 8px 24px -8px rgba(10,25,41,0.28);
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  pointer-events: auto;
}
.fa-btn:hover{
  background: var(--c-ink);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px -8px rgba(10,25,41,0.4);
}
.fa-btn-chat{
  background: var(--c-gold);
  color: #fff;
}
.fa-btn-chat:hover{ background: #b8964f; }
.fa-tip{
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  padding: 6px 12px;
  background: var(--c-ink);
  color: #fff;
  font-size: 0.8rem;
  white-space: nowrap;
  border-radius: 4px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.fa-tip::after{
  content: "";
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: var(--c-ink);
}
.fa-btn:hover .fa-tip{
  opacity: 1;
  transform: translateY(-50%) translateX(-2px);
}
.fa-btn-top{
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease, background 0.3s ease, color 0.3s ease;
}
.fa-btn-top.is-show{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (max-width: 768px){
  .float-actions{ right: 16px; bottom: 24px; gap: 10px; }
  .fa-btn{ width: 46px; height: 46px; font-size: 1.1rem; }
  .fa-tip{ display: none; }
}

/* ============ 关于我们 ============ */
/* Banner */
.about-banner{
  position: relative;
  width: 100%;
  height: 400px;
  overflow: hidden;
  isolation: isolate;
}
.about-banner::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--about-banner-bg, url("../images/565-1920x600.jpg"));
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
}
.about-banner-overlay{
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(10,25,41,0.65) 0%, rgba(10,25,41,0.55) 100%);
}
.about-banner-inner{
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
}
.about-banner-eyebrow{
  display: inline-block;
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  text-transform: uppercase;
  margin-bottom: 16px;
  font-weight: 500;
}
.about-banner-title{
  font-size: 3rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: 0.1em;
}
.about-breadcrumb{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.75);
}
.about-breadcrumb a{
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  transition: color 0.3s ease;
}
.about-breadcrumb a:hover{ color: var(--c-gold); }
.about-breadcrumb-sep{ color: rgba(255,255,255,0.4); }
.about-breadcrumb-current{ color: var(--c-gold); }

/* 通用容器与标题 */
.about-inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 50px;
}
.about-eyebrow{
  display: inline-block;
  position: relative;
  padding: 0 50px;
  margin-bottom: 16px;
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  text-transform: uppercase;
  font-weight: 500;
}
.about-eyebrow::before, .about-eyebrow::after{
  content: "";
  position: absolute;
  top: 50%;
  width: 30px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.about-eyebrow::before{ left: 0; }
.about-eyebrow::after{ right: 0; }
.about-eyebrow-light{ color: var(--c-gold); }
.about-title{
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 20px;
  letter-spacing: 0.05em;
}
.about-title-light{ color: #fff; }
.about-desc{
  font-size: 1rem;
  color: #6b7785;
  max-width: 720px;
  margin: 0 auto;
  line-height: 1.8;
}

/* 公司简介 */
.about-intro{
  padding: 100px 0;
  background: #fff;
}
.about-intro-grid{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 60px;
  align-items: center;
}
.about-intro-text .about-eyebrow{ padding-left: 0; }
.about-intro-text .about-eyebrow::before{ display: none; }
.about-lead{
  font-size: 1.1rem;
  color: var(--c-ink);
  line-height: 1.8;
  margin: 0 0 20px;
  font-weight: 500;
}
.about-para{
  font-size: 0.95rem;
  color: #5a6b7a;
  line-height: 1.85;
  margin: 0 0 28px;
}
.about-intro-points{
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 24px;
}
.about-intro-points li{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  color: var(--c-ink);
}
.about-intro-points i{
  color: var(--c-gold);
  font-size: 1rem;
  flex-shrink: 0;
}
.about-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 30px;
  background: var(--c-ink);
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
  border: 1px solid var(--c-ink);
  cursor: pointer;
}
.about-btn span,
.about-btn i{ color: inherit; }
.about-btn:hover{
  background: var(--c-gold);
  border-color: var(--c-gold);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}
.about-btn i{ transition: transform 0.3s ease; }
.about-btn:hover i{ transform: translateX(4px); }

.about-intro-media{
  position: relative;
}
.about-intro-img{
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eee;
}
.about-intro-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.about-intro-img:hover img{ transform: scale(1.05); }
.about-intro-play{
  position: absolute;
  left: 30px;
  bottom: 30px;
  width: 70px;
  height: 70px;
  border: 0;
  border-radius: 50%;
  background: var(--c-gold);
  color: #fff;
  font-size: 1.8rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 28px -6px rgba(10,25,41,0.45);
  transition: all 0.3s ease;
}
.about-intro-play::before{
  content: "";
  position: absolute;
  inset: -10px;
  border: 1px solid rgba(200,169,106,0.5);
  border-radius: 50%;
  animation: aboutPulse 2s ease-in-out infinite;
}
.about-intro-play:hover{
  background: #b8964f;
  transform: scale(1.08);
}
@keyframes aboutPulse{
  0%{ transform: scale(1); opacity: 1; }
  100%{ transform: scale(1.4); opacity: 0; }
}

/* 使命愿景价值观 */
.about-values{
  padding: 100px 0;
  background: #fafaf8;
}
.about-values-header{
  text-align: center;
  margin-bottom: 60px;
}
.about-values-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.about-value-card{
  background: #fff;
  padding: 40px 28px;
  text-align: center;
  border: 1px solid #ecedf0;
  transition: all 0.4s ease;
}
.about-value-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 24px 48px -16px rgba(10,25,41,0.18);
  border-color: var(--c-gold);
}
.about-value-icon{
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--c-gold);
  border-radius: 50%;
  color: var(--c-gold);
  font-size: 1.6rem;
  transition: all 0.4s ease;
}
.about-value-card:hover .about-value-icon{
  background: var(--c-gold);
  color: #fff;
  transform: rotate(360deg);
}
.about-value-name{
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 12px;
  letter-spacing: 0.05em;
}
.about-value-text{
  font-size: 0.9rem;
  color: #5a6b7a;
  line-height: 1.75;
  margin: 0;
}

/* 数字成就 */
.about-numbers{
  position: relative;
  padding: 100px 0;
  overflow: hidden;
  isolation: isolate;
}
.about-numbers-bg{
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--about-numbers-bg, url("https://picsum.photos/seed/numbers-mccaw/1920/700"));
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  transform: scale(1.02);
}
.about-numbers::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(10,25,41,0.92) 0%, rgba(10,25,41,0.85) 50%, rgba(10,25,41,0.92) 100%);
}
.about-numbers-header{
  text-align: center;
  margin-bottom: 60px;
}
.about-numbers-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.about-number{
  text-align: center;
  padding: 30px 20px;
  border: 1px solid rgba(200,169,106,0.25);
  background: rgba(255,255,255,0.04);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.about-number-value{
  font-family: 'Oswald', 'Roboto', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 3.6rem;
  font-weight: 600;
  color: var(--c-gold);
  line-height: 1;
  margin-bottom: 12px;
  letter-spacing: 0.04em;
}
.about-number-label{
  font-size: 0.95rem;
  color: rgba(255,255,255,0.85);
  letter-spacing: 0.1em;
}

/* 发展历程 */
.about-timeline{
  padding: 100px 0;
  background: #fff;
}
.about-timeline-header{
  text-align: center;
  margin-bottom: 60px;
}
.about-timeline-track{
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding: 20px 0;
}
.about-timeline-track::before{
  content: "";
  position: absolute;
  left: 200px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, var(--c-gold) 10%, var(--c-gold) 90%, transparent 100%);
}
.about-timeline-item{
  display: flex;
  align-items: flex-start;
  gap: 60px;
  padding: 30px 0;
  position: relative;
}
.about-timeline-year{
  flex-shrink: 0;
  width: 160px;
  text-align: right;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  font-weight: 700;
  color: var(--c-gold);
  line-height: 1;
  padding-top: 8px;
}
.about-timeline-item::before{
  content: "";
  position: absolute;
  left: 192px;
  top: 36px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--c-gold);
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px var(--c-gold);
  z-index: 1;
}
.about-timeline-body{
  flex: 1 1 auto;
  padding-left: 20px;
}
.about-timeline-name{
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 8px;
  letter-spacing: 0.03em;
}
.about-timeline-text{
  font-size: 0.95rem;
  color: #5a6b7a;
  line-height: 1.75;
  margin: 0;
}

/* 合作学校 */
.about-partners{
  padding: 100px 0;
  background: #fafaf8;
}
.about-partners-header{
  text-align: center;
  margin-bottom: 60px;
}
.about-partners-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.about-partner-item{
  background: #fff;
  border: 1px solid #ecedf0;
  padding: 40px 24px;
  text-align: center;
  font-size: 1.05rem;
  color: var(--c-ink);
  font-weight: 500;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
}
.about-partner-item:hover{
  border-color: var(--c-gold);
  color: var(--c-gold);
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -12px rgba(10,25,41,0.12);
}

/* CTA */
.about-cta{
  position: relative;
  padding: 100px 0;
  overflow: hidden;
  isolation: isolate;
}
.about-cta-bg{
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--about-cta-bg, url("https://picsum.photos/seed/cta-mccaw/1920/600"));
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  transform: scale(1.02);
}
.about-cta::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(10,25,41,0.92) 0%, rgba(10,25,41,0.85) 50%, rgba(10,25,41,0.92) 100%);
}
.about-cta-inner{
  text-align: center;
  color: #fff;
}
.about-cta-title{
  font-size: 2.5rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: 0.05em;
}
.about-cta-text{
  font-size: 1.05rem;
  color: rgba(255,255,255,0.8);
  max-width: 720px;
  margin: 0 auto 36px;
  line-height: 1.8;
}
.about-cta-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.about-cta-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 30px;
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
  border: 1px solid transparent;
}
.about-cta-btn-primary{
  background: var(--c-gold);
  color: #fff;
  border-color: var(--c-gold);
}
.about-cta-btn-primary:hover{
  background: #b8964f;
  border-color: #b8964f;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}
.about-cta-btn-ghost{
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.4);
}
.about-cta-btn-ghost:hover{
  border-color: var(--c-gold);
  color: var(--c-gold);
}

/* 关于我们响应式 */
@media (max-width: 1024px){
  .about-banner{ height: 320px; }
  .about-banner-title{ font-size: 2.4rem; }
  .about-intro{ padding: 80px 0; }
  .about-intro-grid{ grid-template-columns: 1fr; gap: 40px; }
  .about-intro-img{ aspect-ratio: 16 / 10; }
  .about-values{ padding: 80px 0; }
  .about-values-grid{ grid-template-columns: repeat(2, 1fr); }
  .about-numbers{ padding: 80px 0; }
  .about-numbers-grid{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .about-number-value{ font-size: 2.8rem; }
  .about-timeline{ padding: 80px 0; }
  .about-timeline-track{ padding-left: 0; }
  .about-timeline-track::before{ left: 100px; }
  .about-timeline-item{ gap: 30px; }
  .about-timeline-year{ width: 80px; font-size: 1.6rem; }
  .about-timeline-item::before{ left: 92px; }
  .about-partners{ padding: 80px 0; }
  .about-partners-grid{ grid-template-columns: repeat(2, 1fr); }
  .about-cta{ padding: 80px 0; }
  .about-cta-title{ font-size: 2rem; }
}
@media (max-width: 768px){
  .about-inner{ padding: 0 20px; }
  .about-banner{ height: 260px; }
  .about-banner-title{ font-size: 1.8rem; }
  .about-banner-eyebrow{ font-size: 0.75rem; padding: 0 30px; }
  .about-intro{ padding: 60px 0; }
  .about-intro-points{ grid-template-columns: 1fr; }
  .about-intro-play{ width: 56px; height: 56px; font-size: 1.4rem; left: 20px; bottom: 20px; }
  .about-title{ font-size: 1.75rem; }
  .about-values{ padding: 60px 0; }
  .about-values-grid{ grid-template-columns: 1fr; }
  .about-numbers{ padding: 60px 0; }
  .about-numbers-grid{ grid-template-columns: repeat(2, 1fr); }
  .about-number-value{ font-size: 2.2rem; }
  .about-number-label{ font-size: 0.85rem; }
  .about-timeline{ padding: 60px 0; }
  .about-timeline-track::before{ left: 16px; }
  .about-timeline-item{ gap: 16px; padding: 20px 0; }
  .about-timeline-year{ width: 50px; font-size: 1rem; text-align: left; }
  .about-timeline-item::before{ left: 8px; top: 24px; width: 12px; height: 12px; }
  .about-timeline-body{ padding-left: 12px; }
  .about-timeline-name{ font-size: 1.1rem; }
  .about-partners{ padding: 60px 0; }
  .about-partners-grid{ grid-template-columns: 1fr; }
  .about-cta{ padding: 60px 0; }
  .about-cta-title{ font-size: 1.6rem; }
  .about-cta-text{ font-size: 0.9rem; }
  .about-cta-btn{ padding: 12px 24px; font-size: 0.9rem; }
}

/* ============ 公共表单弹窗 ============ */
.form-modal{
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.form-modal.is-open{
  visibility: visible;
  opacity: 1;
}
.form-modal-overlay{
  position: absolute;
  inset: 0;
  background: rgba(10,25,41,0.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}
.form-modal-dialog{
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  background: #fff;
  padding: 50px 40px 40px;
  overflow-y: auto;
  box-shadow: 0 30px 60px -10px rgba(10,25,41,0.4);
  transform: translateY(20px) scale(0.98);
  transition: transform 0.3s ease;
}
.form-modal.is-open .form-modal-dialog{
  transform: translateY(0) scale(1);
}
.form-modal-close{
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  background: transparent;
  border: 0;
  color: #5a6b7a;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.3s ease, background 0.3s ease;
}
.form-modal-close:hover{
  color: var(--c-ink);
  background: #f3f4f6;
}
.form-modal-title{
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 8px;
  letter-spacing: 0.05em;
  text-align: center;
}
.form-modal-body{
  margin-top: 20px;
}

body.modal-open{ overflow: hidden; }

/* 表单控件 */
.quick-form-desc{
  font-size: 0.9rem;
  color: #5a6b7a;
  margin: 0 0 24px;
  line-height: 1.7;
  text-align: center;
}
.form-honeypot{
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.form-modal .form-group,
.quick-form .form-group{
  margin-bottom: 16px;
}
.form-modal .form-control,
.quick-form .form-control{
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #e5e7eb;
  background: #fafaf8;
  font-size: 0.95rem;
  color: var(--c-ink);
  font-family: inherit;
  border-radius: 0;
  transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
  box-sizing: border-box;
}
.form-modal .form-control:focus,
.quick-form .form-control:focus{
  outline: none;
  border-color: var(--c-gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(200,169,106,0.12);
}
.form-modal textarea.form-control,
.quick-form textarea.form-control{
  resize: vertical;
  min-height: 100px;
  line-height: 1.6;
}
.form-group-captcha{
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.form-control-captcha{
  flex: 0 0 130px;
}
.form-captcha-img{
  height: 44px;
  cursor: pointer;
  border: 1px solid #e5e7eb;
  background: #fff;
  vertical-align: middle;
}
.form-submit{
  width: 100%;
  padding: 14px 20px;
  background: var(--c-ink);
  color: #fff;
  border: 0;
  font-size: 1rem;
  letter-spacing: 0.1em;
  cursor: pointer;
  font-family: inherit;
  border-radius: 0;
  margin-top: 8px;
  transition: background 0.3s ease, transform 0.3s ease;
}
.form-submit:hover{
  background: var(--c-gold);
  transform: translateY(-1px);
}
.form-submit:active{ transform: translateY(0); }

@media (max-width: 768px){
  .form-modal-dialog{ padding: 40px 24px 28px; }
  .form-modal-title{ font-size: 1.2rem; }
  .form-control-captcha{ flex: 0 0 100px; }
  .form-captcha-img{ height: 40px; }
}

/* ============== 服务项目页面 ============== */

/* —— 顶部 Banner —— */
.pl-banner{
  position: relative;
  height: 460px;
  background-image: var(--pl-banner-bg);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: 80px;
  margin-top: 0;
}
.pl-banner-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,0.45) 0%, rgba(10,25,41,0.85) 100%);
}
.pl-banner-inner{
  position: relative;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
}
.pl-banner-eyebrow{
  font-size: 0.85rem;
  letter-spacing: 0.4em;
  color: var(--c-gold);
  margin-bottom: 16px;
  text-transform: uppercase;
  font-weight: 500;
}
.pl-banner-title{
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  line-height: 1.2;
}
.pl-banner-subtitle{
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  max-width: 620px;
  line-height: 1.8;
}

/* —— 公共容器与眉头 —— */
.pl-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
}
.pl-section-head{
  text-align: center;
  margin-bottom: 60px;
}
.pl-section-head .pl-lead{
  margin-left: auto;
  margin-right: auto;
}
.pl-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  margin-bottom: 18px;
  text-transform: uppercase;
  font-weight: 500;
}
.pl-eyebrow span{
  width: 32px;
  height: 1px;
  background: var(--c-gold);
}
.pl-eyebrow-light{ color: var(--c-gold); }
.pl-title{
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 18px;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.pl-title-light{ color: #fff; }
.pl-lead{
  font-size: 1rem;
  color: #5a6b7a;
  line-height: 1.8;
  max-width: 720px;
  margin: 0 auto;
}
.pl-lead-light{ color: rgba(255,255,255,0.7); }

/* —— 服务概览（数据） —— */
.pl-intro{
  padding: 100px 0;
  background: #fafaf8;
}
.pl-intro-head{
  text-align: center;
  margin-bottom: 60px;
}
.pl-stats{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
}
.pl-stat{
  text-align: center;
  padding: 36px 24px;
  background: #fff;
  border-top: 3px solid var(--c-gold);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pl-stat:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -10px rgba(10,25,41,0.12);
}
.pl-stat-value{
  font-family: 'Oswald', 'Roboto', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 3rem;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1;
  margin-bottom: 12px;
  letter-spacing: 0.04em;
}
.pl-stat-label{
  font-size: 0.9rem;
  color: #5a6b7a;
  letter-spacing: 0.05em;
}

/* —— 核心服务列表 —— */
.pl-services{
  padding: 100px 0;
  background: #fff;
}
.pl-service-list{
  display: flex;
  flex-direction: column;
  gap: 100px;
}
.pl-service{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
}
.pl-service-num{
  position: absolute;
  top: -60px;
  left: -10px;
  font-family: 'Oswald', 'Roboto', sans-serif;
  font-size: 8rem;
  font-weight: 600;
  color: rgba(200,169,106,0.15);
  line-height: 1;
  letter-spacing: 0.04em;
  z-index: 0;
  pointer-events: none;
}
.pl-service-reverse .pl-service-num{
  left: auto;
  right: -10px;
}
.pl-service-body{
  position: relative;
  z-index: 1;
}
.pl-service-icon{
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--c-ink);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 24px;
  transition: transform 0.3s ease, background 0.3s ease;
}
.pl-service:hover .pl-service-icon{
  background: var(--c-gold);
  color: #fff;
  transform: scale(1.05);
}
.pl-service-title{
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 18px;
  letter-spacing: 0.05em;
  position: relative;
  padding-bottom: 18px;
}
.pl-service-title::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 2px;
  background: var(--c-gold);
}
.pl-service-desc{
  font-size: 0.95rem;
  color: #5a6b7a;
  line-height: 1.85;
  margin-bottom: 28px;
}
.pl-service-items{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pl-service-items li{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.95rem;
  color: var(--c-ink);
}
.pl-service-items i{
  color: var(--c-gold);
  font-size: 1rem;
  flex-shrink: 0;
}
.pl-service-visual{
  position: relative;
  aspect-ratio: 4 / 3;
  background-image: var(--pl-svc-bg);
  background-size: cover;
  background-position: top center;
  overflow: hidden;
}
.pl-service-visual-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(10,25,41,0.15) 0%, rgba(10,25,41,0.45) 100%);
  transition: background 0.4s ease;
}
.pl-service:hover .pl-service-visual-overlay{
  background: linear-gradient(135deg, rgba(10,25,41,0.0) 0%, rgba(10,25,41,0.25) 100%);
}
.pl-service-tag{
  position: absolute;
  bottom: 24px;
  left: 24px;
  font-family: 'Oswald', 'Roboto', sans-serif;
  font-size: 0.8rem;
  color: var(--c-gold);
  letter-spacing: 0.3em;
  background: rgba(10,25,41,0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 8px 14px;
  border-left: 2px solid var(--c-gold);
  z-index: 1;
}
.pl-service-reverse .pl-service-body{ order: 2; }
.pl-service-reverse .pl-service-visual{ order: 1; }
.pl-service-reverse .pl-service-title{ padding-left: 0; }
.pl-service-reverse .pl-service-title::after{ left: 0; }

/* —— 服务流程 —— */
.pl-process{
  padding: 100px 0;
  background: var(--c-ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.pl-process-deco{
  position: absolute;
  top: -100px;
  right: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(200,169,106,0.12) 0%, transparent 70%);
  pointer-events: none;
}
.pl-process-deco::after{
  content: '';
  position: absolute;
  bottom: -150px;
  left: -150px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(200,169,106,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.pl-process .pl-section-head{ position: relative; z-index: 1; }
.pl-process-track{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
  z-index: 1;
}
.pl-step{
  text-align: center;
  position: relative;
  padding: 30px 15px;
}
.pl-step::after{
  content: '';
  position: absolute;
  top: 56px;
  right: -10px;
  width: 20px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--c-gold) 50%, transparent 100%);
  opacity: 0.4;
}
.pl-step:last-child::after{ display: none; }
.pl-step-num{
  font-family: 'Oswald', 'Roboto', sans-serif;
  font-size: 0.8rem;
  color: var(--c-gold);
  letter-spacing: 0.2em;
  margin-bottom: 18px;
  font-weight: 600;
}
.pl-step-icon{
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(200,169,106,0.3);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  transition: all 0.3s ease;
}
.pl-step:hover .pl-step-icon{
  background: var(--c-gold);
  color: var(--c-ink);
  transform: scale(1.05);
  border-color: var(--c-gold);
  box-shadow: 0 12px 24px -6px rgba(200,169,106,0.4);
}
.pl-step-title{
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}
.pl-step-desc{
  font-size: 0.85rem;
  color: rgba(255,255,255,0.6);
  line-height: 1.6;
}

/* —— 为什么选择 —— */
.pl-why{
  padding: 100px 0;
  background: #fafaf8;
}
.pl-why-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.pl-why-card{
  padding: 40px 30px;
  background: #fff;
  text-align: center;
  transition: all 0.3s ease;
  border-bottom: 2px solid transparent;
  position: relative;
}
.pl-why-card::before{
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--c-gold);
  transition: width 0.4s ease;
}
.pl-why-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -10px rgba(10,25,41,0.12);
}
.pl-why-card:hover::before{
  width: 60%;
}
.pl-why-icon{
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(200,169,106,0.1);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  transition: all 0.3s ease;
}
.pl-why-card:hover .pl-why-icon{
  background: var(--c-gold);
  color: #fff;
  transform: scale(1.05);
}
.pl-why-card h3{
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--c-ink);
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}
.pl-why-card p{
  font-size: 0.9rem;
  color: #5a6b7a;
  line-height: 1.7;
  margin: 0;
}

/* —— CTA 横幅按钮（给 cta-slogan 加按钮变体） —— */
.cta-slogan-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  background: var(--c-gold);
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  margin-top: 32px;
  border: 1px solid var(--c-gold);
  cursor: pointer;
  transition: all 0.3s ease;
}
.cta-slogan-btn span,
.cta-slogan-btn i{ color: inherit; }
.cta-slogan-btn:hover{
  background: transparent;
  color: var(--c-gold);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}
.cta-slogan-btn i{ transition: transform 0.3s ease; }
.cta-slogan-btn:hover i{ transform: translateX(4px); }

/* —— 响应式 —— */
@media (max-width: 1024px){
  .pl-service{ gap: 50px; }
  .pl-service-num{ font-size: 6rem; top: -40px; }
  .pl-process-track{ grid-template-columns: repeat(3, 1fr); row-gap: 50px; column-gap: 20px; }
  .pl-step:nth-child(3)::after{ display: none; }
  .pl-why-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px){
  .pl-banner{ height: 320px; padding-bottom: 50px; }
  .pl-banner-title{ font-size: 2.2rem; }
  .pl-banner-subtitle{ font-size: 0.9rem; }
  .pl-inner{ padding: 0 20px; }
  .pl-intro,
  .pl-services,
  .pl-process,
  .pl-why{ padding: 60px 0; }
  .pl-title{ font-size: 1.8rem; }
  .pl-section-head{ margin-bottom: 40px; }
  .pl-stats{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .pl-stat-value{ font-size: 2.2rem; }
  .pl-service{ grid-template-columns: 1fr; gap: 30px; }
  .pl-service-num{ font-size: 4rem; top: -20px; }
  .pl-service-reverse .pl-service-body{ order: 1; }
  .pl-service-reverse .pl-service-visual{ order: 2; }
  .pl-service-list{ gap: 70px; }
  .pl-service-title{ font-size: 1.5rem; }
  .pl-process-track{ grid-template-columns: 1fr; }
  .pl-step::after{ display: none; }
  .pl-why-grid{ grid-template-columns: 1fr; }
  .cta-slogan-btn{ padding: 12px 24px; font-size: 0.9rem; }
}

/* ============== 合作案例页面 ============== */

/* —— 公共容器与眉头 —— */
.cases-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
}
.cases-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  margin-bottom: 18px;
  text-transform: uppercase;
  font-weight: 500;
}
.cases-eyebrow span{
  width: 32px;
  height: 1px;
  background: var(--c-gold);
}
.cases-eyebrow-light{ color: var(--c-gold); }
.cases-title{
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 18px;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.cases-title-light{ color: #fff; }
.cases-lead{
  font-size: 1rem;
  color: #5a6b7a;
  line-height: 1.8;
  max-width: 720px;
  margin: 0 auto;
}
.cases-lead-light{ color: rgba(255,255,255,0.7); }
.cases-section-head{
  text-align: center;
  margin-bottom: 60px;
}

/* —— 顶部 Banner —— */
.cases-banner{
  position: relative;
  height: 460px;
  background-image: var(--cases-banner-bg);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: 80px;
}
.cases-banner-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,0.45) 0%, rgba(10,25,41,0.85) 100%);
}
.cases-banner-inner{
  position: relative;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
}
.cases-banner-eyebrow{
  font-size: 0.85rem;
  letter-spacing: 0.4em;
  color: var(--c-gold);
  margin-bottom: 16px;
  text-transform: uppercase;
  font-weight: 500;
}
.cases-banner-title{
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  line-height: 1.2;
}
.cases-banner-subtitle{
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  max-width: 620px;
  line-height: 1.8;
}

/* —— 数据统计 —— */
.cases-stats{
  padding: 80px 0;
  background: #fafaf8;
  border-bottom: 1px solid #ecedf0;
}
.cases-stats .cases-inner{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}
.cases-stat{
  text-align: center;
  padding: 30px 20px;
  background: #fff;
  border-top: 3px solid var(--c-gold);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cases-stat:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -10px rgba(10,25,41,0.12);
}
.cases-stat-value{
  font-family: 'Oswald', 'Roboto', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 3rem;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1;
  margin-bottom: 12px;
  letter-spacing: 0.04em;
}
.cases-stat-label{
  font-size: 0.9rem;
  color: #5a6b7a;
  letter-spacing: 0.05em;
}

/* —— 筛选 + 标题区 —— */
.cases-filter{
  padding: 100px 0 50px;
  background: #fff;
  text-align: center;
}
.cases-filter-tags{
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 40px;
  padding: 8px;
  background: #fafaf8;
  border: 1px solid #ecedf0;
}
.cases-tag{
  padding: 10px 24px;
  background: transparent;
  border: 0;
  color: #5a6b7a;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.3s ease;
  position: relative;
}
.cases-tag:hover{ color: var(--c-ink); }
.cases-tag.is-active{
  background: var(--c-ink);
  color: var(--c-gold);
  font-weight: 500;
}

/* —— 案例网格 —— */
.cases-grid-section{
  padding: 50px 0 100px;
  background: #fff;
}
.cases-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.case-card{
  background: #fff;
  border: 1px solid #ecedf0;
  transition: all 0.4s ease;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.case-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 48px -12px rgba(10,25,41,0.15);
  border-color: var(--c-gold);
}
.case-card.is-hidden{
  display: none;
}
.case-card-img{
  position: relative;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.case-card-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,0.0) 0%, rgba(10,25,41,0.55) 100%);
  transition: background 0.4s ease;
}
.case-card:hover .case-card-overlay{
  background: linear-gradient(180deg, rgba(10,25,41,0.1) 0%, rgba(10,25,41,0.4) 100%);
}
.case-card-type{
  position: absolute;
  top: 16px;
  left: 16px;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  background: var(--c-gold);
  color: #fff;
  padding: 6px 14px;
  z-index: 1;
  font-weight: 500;
}
.case-card-body{
  padding: 30px 28px 28px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.case-card-meta{
  display: flex;
  gap: 20px;
  font-size: 0.8rem;
  color: #8a98a4;
  margin-bottom: 14px;
  letter-spacing: 0.03em;
}
.case-card-meta span{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.case-card-meta i{ color: var(--c-gold); font-size: 0.85rem; }
.case-card-title{
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--c-ink);
  margin-bottom: 12px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  transition: color 0.3s ease;
}
.case-card:hover .case-card-title{ color: var(--c-gold-2); }
.case-card-desc{
  font-size: 0.9rem;
  color: #5a6b7a;
  line-height: 1.8;
  margin-bottom: 24px;
  flex: 1;
}
.case-card-result{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid #ecedf0;
}
.case-result-item{ text-align: center; }
.case-result-value{
  font-family: 'Oswald', 'Roboto', sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--c-gold-2);
  line-height: 1;
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}
.case-result-label{
  font-size: 0.75rem;
  color: #8a98a4;
  letter-spacing: 0.05em;
}

/* —— 客户证言 —— */
.cases-testimonial{
  padding: 100px 0;
  background: var(--c-ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.cases-testimonial::before{
  content: '';
  position: absolute;
  top: -150px;
  right: -150px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(200,169,106,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.cases-testimonial::after{
  content: '';
  position: absolute;
  bottom: -150px;
  left: -150px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(200,169,106,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.cases-testimonial .cases-section-head{ position: relative; z-index: 1; }
.testimonial-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  position: relative;
  z-index: 1;
}
.testimonial-card{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(200,169,106,0.2);
  padding: 40px 32px;
  transition: all 0.3s ease;
  position: relative;
}
.testimonial-card:hover{
  background: rgba(255,255,255,0.06);
  border-color: var(--c-gold);
  transform: translateY(-4px);
}
.testimonial-quote{
  position: absolute;
  top: 20px;
  right: 24px;
  font-size: 3rem;
  color: var(--c-gold);
  opacity: 0.3;
}
.testimonial-text{
  font-size: 0.95rem;
  line-height: 1.85;
  color: rgba(255,255,255,0.85);
  margin: 0 0 28px;
}
.testimonial-author{
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid rgba(200,169,106,0.2);
}
.testimonial-avatar{
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--c-gold);
  color: var(--c-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 600;
  flex-shrink: 0;
}
.testimonial-info{ line-height: 1.6; }
.testimonial-name{
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  margin-bottom: 4px;
  letter-spacing: 0.03em;
}
.testimonial-role{
  font-size: 0.8rem;
  color: rgba(255,255,255,0.6);
  letter-spacing: 0.03em;
}

/* —— 合作学校墙 —— */
.cases-partners{
  padding: 100px 0;
  background: #fafaf8;
}
.partners-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border-top: 1px solid #ecedf0;
  border-left: 1px solid #ecedf0;
}
.partner-item{
  padding: 30px 20px;
  background: #fff;
  text-align: center;
  font-size: 0.95rem;
  color: var(--c-ink);
  letter-spacing: 0.05em;
  border-right: 1px solid #ecedf0;
  border-bottom: 1px solid #ecedf0;
  transition: all 0.3s ease;
  position: relative;
  font-weight: 500;
}
.partner-item::before{
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--c-gold);
  transition: width 0.4s ease;
}
.partner-item:hover{
  background: #fff;
  color: var(--c-gold-2);
}
.partner-item:hover::before{
  width: 60%;
}

/* —— 响应式 —— */
@media (max-width: 1024px){
  .cases-stats .cases-inner{ grid-template-columns: repeat(2, 1fr); }
  .cases-grid{ grid-template-columns: 1fr; }
  .testimonial-grid{ grid-template-columns: 1fr; }
  .partners-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px){
  .cases-banner{ height: 320px; padding-bottom: 50px; }
  .cases-banner-title{ font-size: 2.2rem; }
  .cases-banner-subtitle{ font-size: 0.9rem; }
  .cases-inner{ padding: 0 20px; }
  .cases-filter,
  .cases-grid-section,
  .cases-testimonial,
  .cases-partners{ padding: 60px 0; }
  .cases-stats{ padding: 50px 0; }
  .cases-title{ font-size: 1.8rem; }
  .cases-section-head{ margin-bottom: 40px; }
  .cases-stat-value{ font-size: 2.2rem; }
  .cases-tag{ padding: 8px 16px; font-size: 0.85rem; }
  .partners-grid{ grid-template-columns: repeat(2, 1fr); }
  .case-card-body{ padding: 24px 22px 22px; }
  .case-card-title{ font-size: 1.05rem; }
  .case-card-result{ grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .case-result-value{ font-size: 1.1rem; }
  .testimonial-card{ padding: 30px 24px; }
}

/* ============== 新闻列表 + 详情页面 ============== */

/* —— 公共容器与眉头 —— */
.news-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
}
.news-inner-narrow{
  max-width: 900px;
}
.news-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  margin-bottom: 14px;
  text-transform: uppercase;
  font-weight: 500;
}
.news-eyebrow span{
  width: 32px;
  height: 1px;
  background: var(--c-gold);
}

/* —— 顶部 Banner —— */
.news-banner{
  position: relative;
  height: 460px;
  background-image: var(--news-banner-bg);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: 70px;
}
.news-banner-sm{ height: 280px; padding-bottom: 60px; }
.news-banner-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,0.4) 0%, rgba(10,25,41,0.85) 100%);
}
.news-banner-inner{
  position: relative;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
}
.news-banner-eyebrow{
  font-size: 0.85rem;
  letter-spacing: 0.4em;
  color: var(--c-gold);
  margin-bottom: 16px;
  text-transform: uppercase;
  font-weight: 500;
}
.news-banner-title{
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
  line-height: 1.2;
}
.news-banner-sm .news-banner-title{ font-size: 2.4rem; margin-bottom: 0; }
.news-banner-subtitle{
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  max-width: 620px;
  line-height: 1.8;
}

/* —— 面包屑 —— */
.news-breadcrumb{
  background: #fafaf8;
  border-bottom: 1px solid #ecedf0;
  padding: 15px 0;
}
.news-breadcrumb .news-inner{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: #8a98a4;
}
.news-bc-home{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #5a6b7a;
  text-decoration: none;
  transition: color 0.3s ease;
}
.news-bc-home i{ font-size: 0.95rem; color: var(--c-gold); margin-bottom: 3px;}
.news-bc-home:hover{ color: var(--c-ink); }
.news-bc-sep{ font-size: 0.75rem; color: #c8d0d6; }
.news-breadcrumb a{
  color: #5a6b7a;
  text-decoration: none;
  transition: color 0.3s ease;
}
.news-breadcrumb a:hover{ color: var(--c-ink); }
.news-bc-current{ color: var(--c-ink); font-weight: 500; }

/* —— 列表页 —— */
.news-list-section{
  padding: 80px 0 100px;
  background: #fff;
}
.news-list-head{
  text-align: center;
  margin-bottom: 60px;
}
.news-list-title{
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--c-ink);
  letter-spacing: 0.04em;
  line-height: 1.3;
  margin: 0;
}
.news-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.news-card{
  position: relative;
  background: #fff;
  border: 1px solid #ecedf0;
  transition: all 0.4s ease;
  overflow: hidden;
}
.news-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 48px -12px rgba(10,25,41,0.15);
  border-color: var(--c-gold);
}
.news-card-link{
  display: block;
  text-decoration: none;
  color: inherit;
  position: relative;
}
.news-card-img{
  position: relative;
  aspect-ratio: 16 / 10;
  background: #f3f4f6;
  overflow: hidden;
}
.news-card-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.news-card:hover .news-card-img img{ transform: scale(1.05); }
.news-card-img-empty{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: #d1d5db;
  background: #f3f4f6;
}
.news-card-img-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(10,25,41,0.3) 100%);
  pointer-events: none;
}
.news-card-body{
  padding: 24px 24px 22px;
}
.news-card-title{
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1.5;
  margin: 0 0 12px;
  letter-spacing: 0.03em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.3s ease;
  min-height: 3.3em;
}
.news-card:hover .news-card-title{ color: var(--c-gold-2); }
.news-card-desc{
  font-size: 0.9rem;
  color: #5a6b7a;
  line-height: 1.7;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 3em;
}
.news-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 0.8rem;
  color: #8a98a4;
  padding-top: 14px;
  border-top: 1px solid #ecedf0;
}
.news-meta-item{
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.news-meta-item i{ color: var(--c-gold); font-size: 0.85rem; }
.news-meta-loc{
  color: var(--c-ink);
  font-weight: 500;
}
.news-card-arrow{
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  background: rgba(10,25,41,0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  opacity: 0;
  transform: translate(-8px, 8px);
  transition: all 0.3s ease;
  z-index: 2;
}
.news-card:hover .news-card-arrow{
  opacity: 1;
  transform: translate(0, 0);
}

/* —— 空数据 —— */
.news-empty{
  text-align: center;
  padding: 80px 20px;
  color: #8a98a4;
}
.news-empty i{
  font-size: 4rem;
  color: #d1d5db;
  margin-bottom: 16px;
  display: block;
}
.news-empty p{
  font-size: 1rem;
  margin: 0;
}

/* —— 分页 —— */
.news-pagination{
  margin-top: 60px;
  display: flex;
  justify-content: center;
}
.news-pagination .page-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  margin: 0 4px;
  background: #fff;
  border: 1px solid #ecedf0;
  color: var(--c-ink);
  font-size: 0.9rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
.news-pagination .page-link:hover{
  background: var(--c-ink);
  color: var(--c-gold);
  border-color: var(--c-ink);
}
.news-pagination .page-item.active .page-link,
.news-pagination .page-link.active{
  background: var(--c-ink);
  color: var(--c-gold);
  border-color: var(--c-ink);
}
.news-pagination .page-item.disabled .page-link{
  color: #c8d0d6;
  cursor: not-allowed;
  background: #fafaf8;
}

/* —— 详情页 —— */
.news-detail{
  padding: 80px 0 60px;
  background: #fff;
}
.news-article-head{
  text-align: center;
  margin-bottom: 40px;
  padding-bottom: 30px;
  border-bottom: 1px solid #ecedf0;
}
.news-article-flag{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  font-size: 0.75rem;
  font-weight: 500;
  margin-bottom: 16px;
  letter-spacing: 0.05em;
}
.news-article-flag-headline{
  background: rgba(200,169,106,0.1);
  color: var(--c-gold-2);
  border: 1px solid var(--c-gold);
}
.news-article-flag-recommend{
  background: rgba(10,25,41,0.06);
  color: var(--c-ink);
  border: 1px solid #d1d5db;
}
.news-article-flag-top{
  background: rgba(220,38,38,0.08);
  color: #dc2626;
  border: 1px solid rgba(220,38,38,0.3);
}
.news-article-title{
  font-size: 2rem;
  font-weight: 700;
  color: var(--c-ink);
  line-height: 1.4;
  margin: 0 0 24px;
  letter-spacing: 0.04em;
}
.news-article-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  font-size: 0.85rem;
  color: #5a6b7a;
}
.news-article-meta-item{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.news-article-meta-item i{ color: var(--c-gold); }
.news-article-meta-loc{
  color: var(--c-ink);
  font-weight: 500;
  padding: 2px 10px;
  background: rgba(200,169,106,0.1);
  border-radius: 0;
}
.news-article-cover{
  margin-bottom: 40px;
  overflow: hidden;
}
.news-article-cover img{
  width: 100%;
  height: auto;
  display: block;
}
.news-article-content{
  font-size: 1rem;
  color: #2d3a47;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.news-article-content p{
  margin: 0 0 20px;
}
.news-article-content h2,
.news-article-content h3,
.news-article-content h4{
  color: var(--c-ink);
  font-weight: 700;
  margin: 32px 0 16px;
  letter-spacing: 0.03em;
}
.news-article-content h2{ font-size: 1.5rem; }
.news-article-content h3{ font-size: 1.25rem; }
.news-article-content h4{ font-size: 1.1rem; }
.news-article-content img{
  max-width: 100%;
  height: auto;
  display: block;
  margin: 24px auto;
}
.news-article-content a{
  color: var(--c-gold-2);
  text-decoration: none;
  border-bottom: 1px solid var(--c-gold);
  transition: color 0.3s ease;
}
.news-article-content a:hover{ color: var(--c-ink); border-color: var(--c-ink); }
.news-article-content blockquote{
  border-left: 3px solid var(--c-gold);
  padding: 16px 24px;
  background: #fafaf8;
  color: #5a6b7a;
  margin: 24px 0;
  font-style: italic;
}
.news-article-content ul,
.news-article-content ol{
  padding-left: 24px;
  margin: 0 0 20px;
}
.news-article-content li{ margin-bottom: 8px; }
.news-article-content table{
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}
.news-article-content table th,
.news-article-content table td{
  padding: 10px 14px;
  border: 1px solid #ecedf0;
  text-align: left;
}
.news-article-content table th{
  background: #fafaf8;
  font-weight: 600;
  color: var(--c-ink);
}
.news-article-content pre{
  background: #1a2332;
  color: #e6edf3;
  padding: 20px;
  overflow-x: auto;
  font-size: 0.9rem;
  line-height: 1.7;
  margin: 20px 0;
}
.news-article-content code{
  background: #f3f4f6;
  color: #c7254e;
  padding: 2px 6px;
  font-size: 0.9em;
  font-family: 'Consolas', 'Monaco', monospace;
}
.news-article-content pre code{
  background: transparent;
  color: inherit;
  padding: 0;
}

/* —— 文章标签 —— */
.news-article-tags{
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #ecedf0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.news-article-tags > i{
  color: var(--c-gold);
  font-size: 1rem;
  margin-right: 4px;
}
.news-tag-item{
  display: inline-block;
  padding: 5px 14px;
  background: #fafaf8;
  border: 1px solid #ecedf0;
  color: #5a6b7a;
  font-size: 0.85rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
.news-tag-item:hover{
  background: var(--c-ink);
  color: var(--c-gold);
  border-color: var(--c-ink);
}

/* —— 上下篇 —— */
.news-nav{
  margin-top: 50px;
  padding-top: 30px;
  border-top: 1px solid #ecedf0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.news-nav-item{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px;
  background: #fafaf8;
  border: 1px solid #ecedf0;
  text-decoration: none;
  color: #5a6b7a;
  transition: all 0.3s ease;
  min-height: 70px;
}
.news-nav-item.is-active:hover{
  background: #fff;
  border-color: var(--c-gold);
  color: var(--c-ink);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px -6px rgba(10,25,41,0.1);
}
.news-nav-item.is-active:hover .news-nav-label,
.news-nav-item.is-active:hover i{ color: var(--c-gold); }
.news-nav-item i{
  font-size: 1.1rem;
  color: #8a98a4;
  flex-shrink: 0;
  transition: color 0.3s ease;
}
.news-nav-right{ justify-content: flex-end; text-align: right; }
.news-nav-text{ display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.news-nav-label{
  font-size: 0.75rem;
  color: #8a98a4;
  letter-spacing: 0.1em;
}
.news-nav-title{
  font-size: 0.95rem;
  color: var(--c-ink);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.3s ease;
}
.news-nav-item.is-active:hover .news-nav-title{ color: var(--c-gold-2); }

/* —— 相关推荐 —— */
.news-related{
  padding: 60px 0 100px;
  background: #fafaf8;
}
.news-related-head{
  text-align: center;
  margin-bottom: 40px;
}
.news-related-title{
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--c-ink);
  margin: 0;
  letter-spacing: 0.04em;
}
.news-related-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.news-related-item{
  background: #fff;
  transition: all 0.3s ease;
  overflow: hidden;
  border: 1px solid #ecedf0;
}
.news-related-item:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -10px rgba(10,25,41,0.12);
  border-color: var(--c-gold);
}
.news-related-link{
  display: block;
  text-decoration: none;
  color: inherit;
}
.news-related-img{
  aspect-ratio: 4 / 3;
  background: #f3f4f6;
  overflow: hidden;
}
.news-related-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.news-related-item:hover .news-related-img img{ transform: scale(1.05); }
.news-related-img-empty{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #d1d5db;
}
.news-related-body{
  padding: 16px;
}
.news-related-body h4{
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1.5;
  margin: 0 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.3s ease;
  min-height: 2.85em;
}
.news-related-item:hover h4{ color: var(--c-gold-2); }
.news-related-date{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  color: #8a98a4;
}
.news-related-date i{ color: var(--c-gold); font-size: 0.8rem; }

/* —— 响应式 —— */
@media (max-width: 1024px){
  .news-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px){
  .news-banner{ height: 280px; padding-bottom: 50px; }
  .news-banner-sm{ height: 220px; padding-bottom: 50px; }
  .news-banner-title{ font-size: 2rem; }
  .news-banner-sm .news-banner-title{ font-size: 1.8rem; }
  .news-inner,
  .news-inner-narrow{ padding: 0 20px; }
  .news-list-section,
  .news-detail,
  .news-related{ padding: 50px 0; }
  .news-related{ padding-bottom: 60px; }
  .news-list-title{ font-size: 1.8rem; }
  .news-list-head{ margin-bottom: 40px; }
  .news-grid{ grid-template-columns: 1fr; gap: 24px; }
  .news-related-grid{ grid-template-columns: 1fr; }
  .news-article-title{ font-size: 1.5rem; }
  .news-article-meta{ gap: 12px; }
  .news-nav{ grid-template-columns: 1fr; gap: 12px; }
  .news-nav-right{ justify-content: flex-start; text-align: left; flex-direction: row; }
}

/* ============== 联系我们页面 ============== */

/* —— 公共容器与眉头 —— */
.contact-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
}
.contact-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: var(--c-gold);
  margin-bottom: 18px;
  text-transform: uppercase;
  font-weight: 500;
}
.contact-eyebrow span{
  width: 32px;
  height: 1px;
  background: var(--c-gold);
}
.contact-eyebrow-light{ color: var(--c-gold); }
.contact-title{
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 18px;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.contact-title-light{ color: #fff; }
.contact-lead{
  font-size: 1rem;
  color: #5a6b7a;
  line-height: 1.8;
  max-width: 720px;
  margin: 0 auto;
}
.contact-lead-light{ color: rgba(255,255,255,0.7); margin: 0; }
.contact-section-head{
  text-align: center;
  margin-bottom: 60px;
}

/* —— 顶部 Banner —— */
.contact-banner{
  position: relative;
  height: 460px;
  background-image: var(--contact-banner-bg);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: 80px;
}
.contact-banner-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,0.45) 0%, rgba(10,25,41,0.85) 100%);
}
.contact-banner-inner{
  position: relative;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
}
.contact-banner-eyebrow{
  font-size: 0.85rem;
  letter-spacing: 0.4em;
  color: var(--c-gold);
  margin-bottom: 16px;
  text-transform: uppercase;
  font-weight: 500;
}
.contact-banner-title{
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  line-height: 1.2;
}
.contact-banner-subtitle{
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  max-width: 620px;
  line-height: 1.8;
}

/* —— 联系方式卡片 —— */
.contact-channels{
  padding: 100px 0;
  background: #fff;
}
.contact-channel-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.contact-channel{
  position: relative;
  padding: 40px 30px;
  background: #fafaf8;
  border: 1px solid #ecedf0;
  text-align: center;
  transition: all 0.4s ease;
  overflow: hidden;
}
.contact-channel::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--c-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
}
.contact-channel:hover{
  background: #fff;
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -10px rgba(10,25,41,0.15);
  border-color: var(--c-gold);
}
.contact-channel:hover::before{ transform: scaleX(1); }
.contact-channel-icon{
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: var(--c-ink);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  transition: all 0.3s ease;
}
.contact-channel:hover .contact-channel-icon{
  background: var(--c-gold);
  color: #fff;
  transform: scale(1.05) rotate(-5deg);
}
.contact-channel-title{
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 10px;
  letter-spacing: 0.05em;
}
.contact-channel-desc{
  font-size: 0.85rem;
  color: #8a98a4;
  line-height: 1.6;
  margin: 0 0 18px;
  min-height: 2.7em;
}
.contact-channel-link{
  display: block;
  font-size: 0.95rem;
  color: var(--c-gold-2);
  font-weight: 500;
  text-decoration: none;
  word-break: break-all;
  transition: color 0.3s ease;
  letter-spacing: 0.02em;
}
a.contact-channel-link:hover{ color: var(--c-ink); }

/* —— 地图 + 公司信息 —— */
.contact-map-section{
  padding: 100px 0;
  background: #fafaf8;
}
.contact-map-grid{
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 50px;
  align-items: stretch;
}
.contact-info{
  background: #fff;
  padding: 50px 44px;
  border: 1px solid #ecedf0;
}
.contact-info .contact-eyebrow,
.contact-info .contact-title{ text-align: left; }
.contact-info-desc{
  font-size: 0.95rem;
  color: #5a6b7a;
  line-height: 1.8;
  margin: 0 0 36px;
}
.contact-info-list{
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.contact-info-list li{
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.contact-info-list i{
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(200,169,106,0.1);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}
.contact-info-label{
  font-size: 0.8rem;
  color: #8a98a4;
  margin-bottom: 4px;
  letter-spacing: 0.05em;
}
.contact-info-value{
  font-size: 0.95rem;
  color: var(--c-ink);
  font-weight: 500;
  line-height: 1.6;
}
.contact-visit-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  background: var(--c-ink);
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  border: 1px solid var(--c-ink);
  transition: all 0.3s ease;
  cursor: pointer;
}
.contact-visit-btn span,
.contact-visit-btn i{ color: inherit; }
.contact-visit-btn:hover{
  background: var(--c-gold);
  border-color: var(--c-gold);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}
.contact-map{
  position: relative;
  min-height: 540px;
  background: #f3f4f6;
  border: 1px solid #ecedf0;
  overflow: hidden;
}
.contact-map iframe{
  width: 100%;
  height: 100%;
  min-height: 540px;
  display: block;
  border: 0;
}
.contact-map-link{
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: rgba(10,25,41,0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  text-decoration: none;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  z-index: 2;
  transition: background 0.3s ease;
}
.contact-map-link:hover{ background: var(--c-gold); }

/* —— 留言表单（深色） —— */
.contact-message{
  padding: 100px 0;
  background: var(--c-ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.contact-message::before{
  content: '';
  position: absolute;
  top: -150px;
  right: -150px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(200,169,106,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.contact-message::after{
  content: '';
  position: absolute;
  bottom: -150px;
  left: -150px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(200,169,106,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.contact-message-grid{
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 60px;
  position: relative;
  z-index: 1;
}
.contact-message-side .contact-eyebrow,
.contact-message-side .contact-title{
  text-align: left;
}
.contact-message-side .contact-lead{ margin: 0 0 40px; }
.contact-message-tips{
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contact-tip{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(200,169,106,0.2);
  color: rgba(255,255,255,0.85);
  font-size: 0.9rem;
  transition: all 0.3s ease;
}
.contact-tip:hover{
  background: rgba(255,255,255,0.06);
  border-color: var(--c-gold);
  transform: translateX(4px);
}
.contact-tip i{
  color: var(--c-gold);
  font-size: 1.2rem;
  flex-shrink: 0;
}
.contact-message-form{
  background: #fff;
  padding: 50px 44px;
  color: var(--c-ink);
}
.contact-form-title{
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0 0 28px;
  letter-spacing: 0.05em;
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 1px solid #ecedf0;
  position: relative;
}
.contact-form-title::after{
  content: '';
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: var(--c-gold);
}
.contact-form-body .quick-form-desc{
  font-size: 0.95rem;
  color: #5a6b7a;
  margin: 0 0 28px;
  line-height: 1.7;
  text-align: center;
}
.contact-form-body .form-control{
  background: #fafaf8;
}
.contact-form-body .form-control:focus{
  background: #fff;
}
.contact-form-body .form-submit{
  background: var(--c-ink);
  color: #fff;
  transition: all 0.3s ease;
}
.contact-form-body .form-submit:hover{
  background: var(--c-gold);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}

/* —— FAQ —— */
.contact-faq{
  padding: 100px 0;
  background: #fff;
}
.contact-faq-list{
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contact-faq-item{
  background: #fafaf8;
  border: 1px solid #ecedf0;
  transition: all 0.3s ease;
  overflow: hidden;
}
.contact-faq-item[open]{
  background: #fff;
  border-color: var(--c-gold);
  box-shadow: 0 12px 24px -10px rgba(10,25,41,0.08);
}
.contact-faq-item:hover{
  border-color: var(--c-gold);
}
.contact-faq-q{
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 28px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: all 0.3s ease;
}
.contact-faq-q::-webkit-details-marker{ display: none; }
.contact-faq-num{
  font-family: 'Oswald', 'Roboto', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--c-gold);
  letter-spacing: 0.05em;
  flex-shrink: 0;
  min-width: 32px;
}
.contact-faq-text{
  flex: 1;
  font-size: 1rem;
  color: var(--c-ink);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.6;
}
.contact-faq-item[open] .contact-faq-text{ color: var(--c-gold-2); }
.contact-faq-arrow{
  color: #8a98a4;
  font-size: 1rem;
  transition: transform 0.3s ease, color 0.3s ease;
  flex-shrink: 0;
}
.contact-faq-item[open] .contact-faq-arrow{
  transform: rotate(180deg);
  color: var(--c-gold);
}
.contact-faq-a{
  padding: 0 28px 24px 80px;
  font-size: 0.95rem;
  color: #5a6b7a;
  line-height: 1.85;
}
.contact-faq-a p{ margin: 0; }
.contact-faq-more{
  margin-top: 50px;
  text-align: center;
  padding-top: 40px;
  border-top: 1px solid #ecedf0;
}
.contact-faq-more p{
  font-size: 1rem;
  color: #5a6b7a;
  margin: 0 0 20px;
}
.contact-faq-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  background: var(--c-ink);
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  border: 1px solid var(--c-ink);
  transition: all 0.3s ease;
  cursor: pointer;
}
.contact-faq-btn span,
.contact-faq-btn i{ color: inherit; }
.contact-faq-btn:hover{
  background: var(--c-gold);
  border-color: var(--c-gold);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(200,169,106,0.4);
}
.contact-faq-btn i{ transition: transform 0.3s ease; }
.contact-faq-btn:hover i{ transform: translateX(4px); }

/* —— 响应式 —— */
@media (max-width: 1024px){
  .contact-channel-grid{ grid-template-columns: repeat(2, 1fr); }
  .contact-map-grid{ grid-template-columns: 1fr; gap: 30px; }
  .contact-map{ min-height: 400px; }
  .contact-map iframe{ min-height: 400px; }
  .contact-message-grid{ grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px){
  .contact-banner{ height: 320px; padding-bottom: 50px; }
  .contact-banner-title{ font-size: 2.2rem; }
  .contact-banner-subtitle{ font-size: 0.9rem; }
  .contact-inner{ padding: 0 20px; }
  .contact-channels,
  .contact-map-section,
  .contact-message,
  .contact-faq{ padding: 60px 0; }
  .contact-title{ font-size: 1.8rem; }
  .contact-section-head{ margin-bottom: 40px; }
  .contact-channel-grid{ grid-template-columns: 1fr; }
  .contact-info{ padding: 30px 24px; }
  .contact-info .contact-eyebrow,
  .contact-info .contact-title{ text-align: center; }
  .contact-info-desc{ text-align: center; }
  .contact-info-list li{ gap: 12px; }
  .contact-info-list i{ width: 36px; height: 36px; font-size: 0.9rem; }
  .contact-message-form{ padding: 30px 24px; }
  .contact-form-title{ font-size: 1.2rem; }
  .contact-faq-q{ padding: 18px 20px; gap: 12px; }
  .contact-faq-text{ font-size: 0.95rem; }
  .contact-faq-a{ padding: 0 20px 20px 56px; font-size: 0.9rem; }
  .contact-visit-btn,
  .contact-faq-btn{ padding: 12px 24px; font-size: 0.9rem; }
}

