/* ===================================================================
   page-home.css — Index (homepage) hero + sections (~480 lines, unchanged from original)
   =================================================================== */
.hero {
  --hero-slide-media-w: 30vw;
  --hero-slide-content-w: 23.3828vw;
  --hero-slide-content-shift-x: 9.6667vw;
  --hero-slide-w: max(var(--hero-slide-media-w), calc(var(--hero-slide-content-w) + var(--hero-slide-content-shift-x)));
  color: #fff;
  background: url('/img/index_banner.jpg') center top/cover no-repeat;
  overflow: hidden; height: 90vh;
}
.hero-inner { min-height: 97.2222vh; display: flex; flex-wrap: nowrap; align-items: flex-start; margin-top: 16.5vh; }
.hero-copy { flex: 0 0 25.39vw; width: 25.39vw; padding-top: 9.2593vh; }
.hero h1 {
  margin: 0 0 2.7778vh; font-size: var(--fs-80); line-height: 3.5156vw;
  font-weight: 900; border-bottom: #3e4d5e solid 0.0521vw;
  padding-bottom: 2.5926vh; margin-bottom: 4.1667vh;
}
.hero-copy p {
  margin: 0 0 7vh; max-width: 32.2917vw;
  color: rgba(255, 255, 255, .84); font-size: var(--fs-20); line-height: 1.9;
}
.hero-slogan { color: var(--gold); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.7292vw; }
.outline-btn {
  display: inline-flex; align-items: center; gap: 0.625vw;
  padding: 1.2963vh 1.1458vw; border-radius: var(--pill-radius);
  border: 0.0521vw solid rgba(214, 167, 52, .4); color: var(--gold);
  font-weight: 800; transition: transform .2s ease, background .2s ease, color .2s ease;
  font-size: 1.25vw;
}
.consult-arrow { display: block; transform: rotate(-45deg); flex: none; }
.outline-btn.muted { border-color: rgba(255, 255, 255, .16); color: #fff; }
.outline-btn:hover { transform: translateY(-0.1852vh); background: rgba(255, 255, 255, .06); }

/* Hero slider */
.hero-slider-wrap {
  position: relative; flex: 1 1 auto; min-width: 0; width: auto;
  display: flex; flex-direction: column; align-items: flex-end;
  padding-bottom: 2.5vh; margin-left: 0;
}
.hero-slider-head { position: absolute; left: 8vw; top: 57vh; display: flex; align-items: center; justify-content: flex-start; gap: 0; margin-bottom: 0; z-index: 99; }
.hero-slider-head h2 { margin: 0.7407vh 0 0; font-size: 1.875vw; line-height: 1.1; }
.slider-controls { display: flex; gap: 0.8203vw; }
.slider-btn {
  width: 2.4vw; height: 4.5vh; border: 0.055vw solid #315177; border-radius: 50%;
  background: #1f426a; display: grid; place-items: center; cursor: pointer; padding: 0;
}
.slider-btn img { display: block; width: 0.7vw; height: auto; max-width: none; max-height: none; }
.slider-btn-prev img { transform: scaleX(-1); }
.slider-btn-next { border-color: #315177; }
.slider-btn-next img { transform: none; }
.slider-btn[disabled] { cursor: not-allowed; opacity: 1; }
.hero-slider {
  display: block; position: relative; overflow-x: visible; overflow-y: visible;
  padding-bottom: 0; scrollbar-width: none;
  width: var(--hero-slide-w); height: auto; min-height: 72.2222vh;
}
.hero-slide { display: none; width: var(--hero-slide-w); min-height: 0; height: auto; }
.hero-slide.is-active { display: block; }
.hero-slide-link {
  display: flex; flex-direction: column; position: relative;
  width: var(--hero-slide-w); height: auto; min-height: 0;
  border-radius: 2.6042vw; overflow: visible;
}
.hero-slide-media {
  position: relative; width: var(--hero-slide-media-w); aspect-ratio: 738 / 679;
  border-radius: 2.6042vw; overflow: hidden; box-shadow: var(--shadow);
}
.hero-slide-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-slide.is-active .hero-slide-media img { animation: heroImageFade 1.3s ease both; }
@keyframes heroImageFade { from { opacity: 0; } to { opacity: 1; } }
.hero-slide-media.placeholder img { object-fit: cover; }
.hero-slide-content {
  position: relative; width: var(--hero-slide-content-w); height: 22.3478vh;
  margin-top: -14.3704vh; margin-left: var(--hero-slide-content-shift-x); margin-right: 0;
  border-radius: 1.7708vw; background: transparent; z-index: 2; isolation: isolate;
}
.hero-slide-content .baibox {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: rgba(255, 255, 255, .13); z-index: -2; pointer-events: none;
}
.hero-slide-content .hongbox {
  content: ""; position: absolute; inset: 0;
  transform: translate(0.7813vw, 1.3889vh); border-radius: inherit;
  background: rgba(184, 30, 58, .73);
  box-shadow: 0 0.8333vw 1.875vw rgba(0, 0, 0, .12);
  z-index: -1; pointer-events: none; padding: 2.4444vh 2.125vw 1.5926vh;
}
.slide-tag {
  display: flex; justify-content: space-between; align-items: center; gap: 0.625vw;
  margin: 0 0 0.9259vh; color: rgba(255, 255, 255, .78);
  font-size: 0.625vw; font-weight: 700; letter-spacing: 0.0521vw;
}
.slide-tag span { color: rgba(255, 255, 255, .78); }
.hero-slide-content h3 {
  margin: 0 0 1.1111vh; font-size: 1.5vw; line-height: 1.34;
  color: #fff; font-weight: 900; position: relative; z-index: 1;
  display: block; overflow: visible;
}
.slide-summary { margin: 0 0 1.4815vh; max-width: 95%; color: rgba(255, 255, 255, .82); font-size: 0.7813vw; line-height: 1.8; }
.hero-slide-more { display: block; margin-top: 0.7407vh; margin-left: 0; color: #fff; font-size: 1.4583vw; line-height: 1; position: static; z-index: 1; }

/* Overview */
.overview { height: 88.2758vh; padding-top: 9.1954vh; box-sizing: border-box; background: url('/img/index_banner1.jpg') center bottom/cover no-repeat; }
.overview-grid { display: grid; grid-template-columns: minmax(0, 27.7343vw) minmax(0, 1fr); gap: 2.8125vw; margin-top: 7.2222vh; }
.overview-media-carousel { display: flex; flex-direction: column; gap: 0; }
.overview-media-track { position: relative; width: 100%; height: 47.3563vh; border-radius: 1.9792vw; overflow: hidden; box-shadow: var(--shadow); }
.overview-media-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.3s ease; }
.overview-media-slide.is-active { opacity: 1; }
.overview-media-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.overview-dots { display: flex; gap: 0.625vw; align-items: center; justify-content: center; min-height: 2.2222vh; position: relative; top: -4.4444vh; z-index: 2; margin-bottom: -2.2222vh; }
.overview-dot {
  width: 0.4688vw; height: 0.8333vh; padding: 0; border: 0; border-radius: 50%;
  box-sizing: border-box; background: #9a968b; cursor: pointer; flex: none;
}
.overview-dot.is-active { width: 0.9896vw; height: 1.7593vh; border: 0.2604vw solid #dd262f; background: transparent; }

/* Feature cards */
.feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.78125vw; }
.feature-card {
  cursor: pointer; position: relative; isolation: isolate;
  padding: 2.1481vh 1.875vw; border-radius: 1.7708vw;
  background: #f8fafd; backdrop-filter: blur(0.1042vw);
  box-shadow: 0 0.7813vw 2.6042vw rgba(43, 58, 76, .06);
  overflow: hidden; border: #eeeeee 1px solid;
}
.feature-card::after {
  content: ""; position: absolute; top: -5.5556vh; right: -3.125vw;
  width: 9.375vw; height: 16.6667vh; border-radius: 50%;
  background: rgba(245, 241, 230); opacity: 0; transform: scale(.9);
  transition: opacity .25s ease, transform .25s ease; pointer-events: none; z-index: 0;
}
.feature-card:hover::after,
.feature-card.is-active::after { opacity: 1; transform: scale(1); }
.feature-card.is-active { border-bottom: 0; }
.feature-card:hover,
.feature-card.is-active { border-bottom: 0.2083vw solid #e62640; }
.feature-icon { position: absolute; top: 2.7778vh; right: 1.5625vw; z-index: 2; }
.feature-icon img { position: absolute; top: 0.463vh; left: -2.3438vw; display: block; width: 1.6406vw; height: auto; transition: opacity .2s ease; }
.feature-icon-default { opacity: 1; }
.feature-icon-hover { opacity: 0; }
.feature-card:hover .feature-icon-default,
.feature-card.is-active .feature-icon-default { opacity: 0; }
.feature-card:hover .feature-icon-hover,
.feature-card.is-active .feature-icon-hover { opacity: 1; }
.feature-corner-arrow { position: absolute; left: 1.5625vw; top: 2.5926vh; z-index: 2; pointer-events: none; }
.feature-corner-arrow img { display: block; width: 0.625vw; height: auto; max-width: none; max-height: none; transform: rotate(45deg); transform-origin: center; }
.feature-card b { float: right; color: #b0b7be; font-size: 1.6667vw; }
.feature-card:hover h3,
.feature-card.is-active h3 { color: var(--red); }
.feature-card h3 { margin: 3.7037vh 0 0.7292vw; font-size: var(--fs-30); line-height: 1.35; }
.feature-card p { margin: 0; color: var(--deep); font-size: var(--fs-20); line-height: 1.85; }

/* Services */
.services { height: 88.8888vh; background: #08213f url('/img/index_banner2.jpg') center/cover no-repeat; }
.services-heading { flex-direction: column; align-items: center; justify-content: center; gap: 0.625vw; padding-top: 7vh; }
.services-heading small { color: var(--red); font-size: var(--fs-24); }
.services-heading h2 { margin: 0; color: #fff; font-size: var(--fs-56); line-height: 1.28; }
.services-heading h2 span { color: var(--red); }
.service-coverflow { position: relative; width: 100%; margin-top: 1.1111vh; height: 74.0741vh; overflow: visible; transform: translateY(-6.1303vh); }
.service-coverflow-viewport { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; perspective: 83.3333vw; }
.service-slide {
  position: absolute; top: 50%; left: 50%; margin: 0; z-index: 0; isolation: isolate;
  width: 35.4167vw; height: 65.0926vh; box-sizing: border-box;
  border: 0.0521vw solid #30445f; border-radius: 1.4583vw; overflow: hidden;
  box-shadow: 0 1.3542vw 3.125vw rgba(0, 0, 0, .28); opacity: .15;
  transition: transform .45s ease, opacity .45s ease, filter .45s ease, width .45s ease, height .45s ease;
  transform: translate(-50%, -50%) scale(.74); filter: saturate(.84);
  transform-origin: center center; background-color: #0c2341;
  background-size: cover; background-position: center center; background-repeat: no-repeat;
}
.service-slide.is-active { opacity: 1; z-index: 1; width: 26.5625vw; height: 53.6398vh; transform: translate(-50%, -50%) scale(1); filter: none; }
.service-slide.is-prev { opacity: .82; z-index: 2; width: 19.53125vw; height: 38.3142vh; cursor: pointer; transform: translate(calc(-50% - 24.4141vw), -50%) scale(.82) rotateY(24deg); }
.service-slide.is-next { opacity: .82; z-index: 2; width: 19.53125vw; height: 38.3142vh; cursor: pointer; transform: translate(calc(-50% + 24.4141vw), -50%) scale(.82) rotateY(-24deg); }
.service-slide.is-hidden { opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(.68); }
.service-slide::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(6, 26, 49, .08) 0%, rgba(6, 26, 49, .55) 52%, rgba(6, 26, 49, .92) 100%),
              linear-gradient(90deg, rgba(196, 30, 58, .35), transparent 45%);
  pointer-events: none;
}
.service-slide-content { position: absolute; left: 1.7708vw; right: 1.7708vw; bottom: 5.7407vh; z-index: 2; color: #fff; text-align: center; }
.service-slide-content h3 { margin: 0; font-size: 2.1875vw; line-height: 1.12; font-weight: 900; text-shadow: 0 0.5208vw 1.25vw rgba(0, 0, 0, .38); }
.service-slide-content h3::after { content: ""; display: block; width: 2.3958vw; height: 0.1852vh; margin: 1.4815vh auto 0; background: rgba(255, 255, 255, .86); }
.service-slide-content p { margin: 1.6667vh auto 0; max-width: 27.0833vw; color: rgba(255, 255, 255, .82); font-size: 0.7813vw; line-height: 1.7; font-weight: 700; }
.service-tags { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.625vw; margin-top: 1.6667vh; }
.service-tags span {
  padding: 0.7407vh 0.7813vw; border-radius: var(--pill-radius);
  color: rgba(255, 255, 255, .9); background: rgba(255, 255, 255, .18);
  font-size: 0.7292vw; line-height: 1; white-space: nowrap; backdrop-filter: blur(0.4167vw);
}
.service-slide.is-prev .service-slide-content,
.service-slide.is-next .service-slide-content { left: 1.25vw; right: 1.25vw; bottom: 5vh; }
.service-slide.is-prev .service-slide-content h3,
.service-slide.is-next .service-slide-content h3 { font-size: 1.5625vw; }
.service-slide.is-prev .service-slide-content h3::after,
.service-slide.is-next .service-slide-content h3::after { display: none; }
.service-slide.is-prev .service-slide-content p,
.service-slide.is-next .service-slide-content p { margin-top: 1.1111vh; max-width: 18.75vw; font-size: 0.6771vw; line-height: 1.55; }
.service-slide.is-prev .service-tags,
.service-slide.is-next .service-tags,
.service-slide.is-hidden .service-slide-content { display: none; }
.service-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 2.3958vw; height: 5.7407vh; border: 0; padding: 0; background: center/100% 100% no-repeat; cursor: pointer; z-index: 3; display: grid; place-items: center; }
.service-arrow img { display: block; width: 36.9565%; height: 22.5806%; max-width: none; max-height: none; object-fit: contain; }
.service-arrow-prev { left: calc(50% - 37.5vw); background-image: url('/img/serverbg1.png'); }
.service-arrow-next { right: calc(50% - 37.5vw); background-image: url('/img/serverbg2.png'); }
.service-arrow:disabled { cursor: default; opacity: 1; }

/* News */
.news { height: 88.5824vh; padding-top: 7.1264vh; background: url('/img/index_banner3.jpg') center/cover no-repeat; }
.news-heading { align-items: center; }
.news-heading small { color: var(--red); font-size: var(--fs-24); }
.news-heading h2 { font-size: var(--fs-56); }
.news-heading a { color: #6d7580; font-size: 0.7813vw; white-space: nowrap; }
.news-layout { display: grid; grid-template-columns: minmax(0, 27.34375vw) minmax(0, 1fr); gap: 1.953125vw; margin-top: 6.6667vh; }
.news-list { display: flex; flex-direction: column; gap: 0.9375vw; width: 27.34375vw; height: 48.9655vh; }
.news-list article {
  display: grid; grid-template-columns: 7.8125vw 1fr; align-items: center; gap: 0.9375vw;
  flex: 0 0 15.3257vh; width: 27.34375vw; height: 15.3257vh; min-height: 0;
  padding: 1.6667vh 1.4583vw 1.6667vh 0.9375vw;
  border-top: 0.1563vw solid transparent; border-radius: 1.25vw;
  background: #fff; box-shadow: 0 0.5208vw 1.8229vw rgba(38, 50, 71, .08);
  transition: border-color .2s ease;
}
.news-list article:hover { border-top-color: var(--red); }
.news-list img { width: 6.5104vw; height: 10.1852vh; object-fit: cover; border-radius: 0.3125vw; }
.news-thumb-link { display: block; }
.news-list time { color: #727a85; font-size: var(--fs-20); }
.news-list h3 { margin: 1.1111vh 0 0; font-size: var(--fs-24); line-height: 1.7; }
.news-list h3 a,
.lead-news-body h3 a { color: inherit; text-decoration: none; }
.lead-news { position: relative; }
.lead-news-media {
  position: relative; overflow: hidden; width: 33.4375vw; height: 48.9655vh;
  border-radius: 1.875vw; background-size: cover; background-position: center; box-shadow: var(--shadow);
}
.lead-news-media::after { content: none; }
.lead-news-body {
  position: absolute; left: 10.390625vw; bottom: -5.0575vh;
  width: 25.78125vw; height: 21.6858vh; padding: 3.5185vh 2.1875vw;
  border-left: 0.2604vw solid var(--red); border-radius: 1.3021vw;
  background: #fff; box-shadow: 0 0.9375vw 2.0833vw rgba(29, 44, 65, .11);
}
.lead-news-body p { margin: 0; font-size: var(--fs-20); }
.lead-news-body b { color: var(--red); }
.lead-news-body h3 { margin: 2.5926vh 0 0; font-size: var(--fs-32); font-weight: 500; line-height: 1.45; color: #000; }
.lead-news-body span,
.lead-news-more { float: right; margin-top: 1.8519vh; color: var(--red); font-size: 1.3542vw; text-decoration: none; }

/* Partners */
.partners { height: 20.0766vh; padding: 1.6092vh 0 1.875vw; }
.partners h2 { margin: 0 0 3.8889vh; font-size: 1.3021vw; }
.partner-row { display: flex; align-items: center; gap: 0.5729vw; }
.partner-track { min-width: 0; flex: 1; display: flex; align-items: center; gap: 0.5729vw; padding: 0 0.0521vw; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; box-sizing: border-box; }
.partner-pill {
  flex: 0 0 8.359375vw; width: 8.359375vw; height: 7.9693vh; box-sizing: border-box;
  display: grid; place-items: center; padding: 0; border: 0.0521vw solid #cacaca;
  border-radius: 0.3125vw; background: #fff; color: #174373; text-decoration: none;
  font-size: 0.8333vw; font-weight: 900; text-align: center;
  box-shadow: 0 0.2083vw 0.6771vw rgba(34, 52, 72, .05);
}
.partner-pill img { width: 6.25vw; height: 5.3640vh; object-fit: contain; }
.partner-row button { width: 1.5625vw; height: 7.9693vh; border: 0; background: transparent; color: #b8bec5; font-size: 2.1875vw; line-height: 1; cursor: pointer; flex: none; display: grid; place-items: center; }
