:root {
  --sz-navy: #0a2b48;
  --sz-navy-2: #123a5e;
  --sz-gold: #c9a227;
  --sz-gold-soft: #f2b824;
  --sz-bg: #f3f6fb;
  --sz-text: #1f3348;
  --sz-muted: #5f738a;
  --sz-line: #d7e2ef;
  --sz-white: #fff;
  --sz-max: 1180px;
  --sz-font: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --sz-display: "Source Han Serif SC", "Noto Serif SC", "STSong", "SimSun", serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sz-font);
  color: var(--sz-text);
  background:
    radial-gradient(1200px 400px at 10% -10%, rgba(242,184,36,.12), transparent 55%),
    linear-gradient(180deg, #eef3f9 0%, var(--sz-bg) 240px, var(--sz-bg) 100%);
  min-height: 100vh;
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

.sz-wrap { width: min(100% - 2rem, var(--sz-max)); margin: 0 auto; }

/* top bar */
.sz-topbar {
  background: linear-gradient(90deg, #071f35, var(--sz-navy));
  color: rgba(255,255,255,.88);
  font-size: .86rem;
}
.sz-topbar .sz-wrap {
  display: flex; justify-content: space-between; align-items: center;
  min-height: 36px; gap: 1rem;
}
.sz-topbar a:hover { color: var(--sz-gold-soft); }

/* header / brand */
.sz-header {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--sz-line);
  position: sticky; top: 0; z-index: 50;
}
.sz-header-main {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; min-height: 78px;
}
.sz-brand { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.sz-brand-name {
  font-family: var(--sz-display);
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  font-weight: 700;
  color: var(--sz-navy);
  letter-spacing: .04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sz-brand-motto {
  font-size: .82rem;
  color: var(--sz-muted);
}
.sz-header-phone {
  display: inline-flex; align-items: center; gap: .4rem;
  background: linear-gradient(135deg, var(--sz-navy), var(--sz-navy-2));
  color: #fff; padding: .55rem 1rem; border-radius: .35rem;
  font-weight: 600; white-space: nowrap;
}
.sz-header-phone span { color: var(--sz-gold-soft); }

.sz-nav-toggle {
  display: none; border: 1px solid var(--sz-line); background: #fff;
  width: 42px; height: 42px; border-radius: .35rem; cursor: pointer;
}
.sz-nav-toggle span {
  display: block; width: 18px; height: 2px; background: var(--sz-navy);
  margin: 4px auto; border-radius: 2px;
}

/* nav */
.sz-nav { border-top: 1px solid var(--sz-line); background: #fff; }
.sz-nav-list {
  display: flex; flex-wrap: wrap; gap: .15rem;
}
.sz-nav-item { position: relative; }
.sz-nav-link {
  display: block; padding: .85rem 1rem; color: var(--sz-navy);
  font-weight: 600; font-size: .95rem; border-bottom: 3px solid transparent;
}
.sz-nav-item:hover > .sz-nav-link,
.sz-nav-item.is-active > .sz-nav-link {
  color: var(--sz-navy);
  border-bottom-color: var(--sz-gold-soft);
  background: linear-gradient(180deg, transparent, rgba(242,184,36,.08));
}
.sz-sub {
  display: none; position: absolute; left: 0; top: 100%;
  min-width: 180px; background: #fff; border: 1px solid var(--sz-line);
  box-shadow: 0 12px 28px rgba(10,43,72,.12); z-index: 40;
}
.sz-nav-item:hover > .sz-sub { display: block; }
.sz-sub a {
  display: block; padding: .7rem 1rem; color: var(--sz-text); font-size: .9rem;
  border-bottom: 1px solid #eef3f8;
}
.sz-sub a:hover { background: #f7fafc; color: var(--sz-navy); }

/* hero */
.sz-hero {
  position: relative; overflow: hidden;
  background: #0b243c;
  min-height: clamp(220px, 38vw, 420px);
}
.sz-hero-slides { position: relative; width: 100%; height: 100%; }
.sz-hero-slide {
  position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease;
}
.sz-hero-slide.is-active { opacity: 1; position: relative; }
.sz-hero-slide img {
  width: 100%; height: clamp(220px, 38vw, 420px); object-fit: cover;
}
.sz-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(7,28,48,.72), rgba(7,28,48,.18) 55%, transparent);
  pointer-events: none;
}
.sz-hero-copy {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 2rem 0 2.4rem; color: #fff; z-index: 2;
}
.sz-hero-copy h1 {
  font-family: var(--sz-display);
  font-size: clamp(1.5rem, 3vw, 2.3rem);
  font-weight: 700; margin-bottom: .4rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
}
.sz-hero-copy p { max-width: 36rem; color: rgba(255,255,255,.9); }
.sz-hero-dots {
  position: absolute; right: 1.2rem; bottom: 1rem; z-index: 3;
  display: flex; gap: .4rem;
}
.sz-hero-dots button {
  width: 10px; height: 10px; border-radius: 50%; border: 0;
  background: rgba(255,255,255,.45); cursor: pointer;
}
.sz-hero-dots button.is-active { background: var(--sz-gold-soft); }

/* sections */
.sz-section { padding: 2.4rem 0; }
.sz-section-head {
  display: flex; align-items: end; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.2rem;
}
.sz-section-head h2 {
  font-family: var(--sz-display);
  font-size: 1.55rem; color: var(--sz-navy);
  border-left: 4px solid var(--sz-gold-soft);
  padding-left: .7rem; line-height: 1.2;
}
.sz-section-head p { color: var(--sz-muted); font-size: .92rem; }
.sz-more {
  color: var(--sz-navy); font-weight: 600; font-size: .9rem;
  white-space: nowrap;
}
.sz-more:hover { color: var(--sz-gold); }

.sz-grid-2 {
  display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.2rem;
}
.sz-panel {
  background: var(--sz-white);
  border: 1px solid var(--sz-line);
  padding: 1.2rem 1.25rem 1.35rem;
}
.sz-panel-title {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 1rem; padding-bottom: .7rem;
  border-bottom: 2px solid var(--sz-navy);
}
.sz-panel-title h3 {
  font-size: 1.15rem; color: var(--sz-navy); font-weight: 700;
}

.sz-news-feature {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 1rem;
  margin-bottom: 1rem;
}
.sz-news-feature img {
  width: 100%; height: 180px; object-fit: cover; background: #d9e4f0;
}
.sz-news-feature h4 {
  font-size: 1.1rem; color: var(--sz-navy); margin: .3rem 0 .5rem;
}
.sz-news-feature p { color: var(--sz-muted); font-size: .92rem; }
.sz-list li {
  display: flex; justify-content: space-between; gap: .8rem;
  padding: .55rem 0; border-bottom: 1px dashed var(--sz-line);
  font-size: .95rem;
}
.sz-list li a:hover { color: var(--sz-gold); }
.sz-list time { color: var(--sz-muted); font-size: .85rem; white-space: nowrap; }

.sz-major-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
}
.sz-major-card {
  background: #fff; border: 1px solid var(--sz-line); padding: 1.1rem;
  min-height: 210px;
  background-image: linear-gradient(180deg, #fff 0%, #f8fbfe 100%);
}
.sz-major-card h3 {
  color: var(--sz-navy); font-size: 1.05rem; margin-bottom: .8rem;
  padding-bottom: .55rem; border-bottom: 2px solid var(--sz-gold-soft);
}
.sz-major-card li {
  padding: .28rem 0 .28rem .9rem; position: relative; color: var(--sz-text);
  font-size: .92rem;
}
.sz-major-card li::before {
  content: ""; position: absolute; left: 0; top: .7rem;
  width: .4rem; height: .4rem; border-radius: 50%; background: var(--sz-gold-soft);
}

.sz-logo-grid, .sz-photo-grid, .sz-act-grid {
  display: grid; gap: .9rem;
}
.sz-logo-grid { grid-template-columns: repeat(5, 1fr); }
.sz-photo-grid { grid-template-columns: repeat(6, 1fr); }
.sz-act-grid { grid-template-columns: repeat(3, 1fr); }

.sz-logo-item, .sz-photo-item, .sz-act-item {
  background: #fff; border: 1px solid var(--sz-line); overflow: hidden;
}
.sz-logo-item {
  min-height: 88px; display: grid; place-items: center; padding: .8rem;
  text-align: center; font-weight: 600; color: var(--sz-navy);
}
.sz-photo-item img, .sz-act-item img {
  width: 100%; height: 120px; object-fit: cover; background: #d7e2ef;
}
.sz-photo-item span, .sz-act-item span {
  display: block; padding: .55rem .7rem; font-size: .88rem; color: var(--sz-navy);
}

.sz-contact-box {
  display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.2rem;
}
.sz-contact-box .sz-panel { min-height: 180px; }
.sz-contact-box p { margin: .45rem 0; color: var(--sz-text); }

/* cert quick */
.sz-cert-quick {
  background: linear-gradient(120deg, #fffaf0, #fff);
  border: 1px solid #ebd9a3;
  padding: 1.2rem 1.25rem;
}
.sz-cert-quick h3 {
  color: var(--sz-navy); margin-bottom: .9rem;
  display: flex; align-items: center; gap: .5rem;
}
.sz-cert-form {
  display: grid; grid-template-columns: 1.2fr 1.2fr .9fr auto; gap: .7rem; align-items: end;
}
.sz-field label {
  display: block; font-size: .85rem; color: var(--sz-muted); margin-bottom: .25rem;
}
.sz-field input, .sz-field select, .sz-input {
  width: 100%; border: 1px solid var(--sz-line); background: #fff;
  padding: .72rem .85rem; border-radius: .3rem; font: inherit; color: var(--sz-text);
}
.sz-btn {
  border: 0; cursor: pointer; font: inherit; font-weight: 700;
  background: var(--sz-navy); color: #fff; padding: .75rem 1.2rem;
  border-radius: .3rem; display: inline-flex; align-items: center; gap: .4rem;
}
.sz-btn:hover { background: var(--sz-navy-2); }
.sz-btn-gold { background: linear-gradient(135deg, #d4af37, #b8941f); color: #1b1403; }
.sz-btn-block { width: 100%; justify-content: center; }

/* inner pages */
.sz-page { padding: 1.6rem 0 2.6rem; }
.sz-breadcrumb {
  color: var(--sz-muted); font-size: .9rem; margin-bottom: 1rem;
}
.sz-breadcrumb a:hover { color: var(--sz-gold); }
.sz-page-layout {
  display: grid; grid-template-columns: 240px 1fr; gap: 1.2rem; align-items: start;
}
.sz-side {
  background: #fff; border: 1px solid var(--sz-line);
}
.sz-side h3 {
  background: var(--sz-navy); color: #fff; padding: .85rem 1rem; font-size: 1rem;
}
.sz-side a {
  display: block; padding: .75rem 1rem; border-bottom: 1px solid #eef3f8;
  color: var(--sz-text);
}
.sz-side a.is-active, .sz-side a:hover {
  background: #f7fafc; color: var(--sz-navy); font-weight: 600;
}
.sz-main {
  background: #fff; border: 1px solid var(--sz-line); padding: 1.4rem 1.5rem 1.8rem;
  min-height: 360px;
}
.sz-main h1 {
  font-family: var(--sz-display);
  font-size: 1.55rem; color: var(--sz-navy);
  margin-bottom: 1rem; padding-bottom: .7rem;
  border-bottom: 2px solid var(--sz-gold-soft);
}
.sz-article { color: var(--sz-text); line-height: 1.85; }
.sz-article p { margin: .7rem 0; }
.sz-article img { margin: 1rem 0; }

.sz-empty {
  padding: 2rem; text-align: center; color: var(--sz-muted);
}

/* cert pages: same content width as .sz-nav-list (inside .sz-wrap) */
.sz-cert-page .sz-main,
.sz-cert-page .cert-detail-card,
.sz-cert-page .not-found-card {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.sz-cert-page .sz-field { margin-bottom: 1rem; }
.sz-cert-hint { margin-top: .8rem; color: var(--sz-muted); font-size: .9rem; text-align: center; }

/* footer */
.sz-footer {
  margin-top: 1rem;
  background: linear-gradient(180deg, #0b2740, #071d30);
  color: rgba(255,255,255,.82);
  padding: 2rem 0 1.2rem;
}
.sz-footer-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 1.5rem;
  padding-bottom: 1.4rem; border-bottom: 1px solid rgba(255,255,255,.12);
}
.sz-footer h4 {
  color: #fff; margin-bottom: .7rem; font-size: 1rem;
  border-left: 3px solid var(--sz-gold-soft); padding-left: .55rem;
}
.sz-footer a:hover { color: var(--sz-gold-soft); }
.sz-footer-links { display: flex; flex-wrap: wrap; gap: .55rem .9rem; }
.sz-copy {
  padding-top: 1rem; text-align: center; font-size: .85rem; color: rgba(255,255,255,.65);
}

@media (max-width: 980px) {
  .sz-grid-2, .sz-contact-box, .sz-news-feature, .sz-page-layout { grid-template-columns: 1fr; }
  .sz-major-grid { grid-template-columns: repeat(2, 1fr); }
  .sz-logo-grid { grid-template-columns: repeat(3, 1fr); }
  .sz-photo-grid { grid-template-columns: repeat(3, 1fr); }
  .sz-act-grid { grid-template-columns: 1fr 1fr; }
  .sz-cert-form { grid-template-columns: 1fr 1fr; }
  .sz-footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .sz-header-phone { display: none; }
  .sz-nav-toggle { display: inline-block; }
  .sz-nav { display: none; }
  .sz-nav.is-open { display: block; }
  .sz-nav-list { flex-direction: column; }
  .sz-sub { position: static; display: none; border: 0; box-shadow: none; background: #f7fafc; }
  .sz-nav-item.is-open > .sz-sub { display: block; }
  .sz-major-grid, .sz-logo-grid, .sz-photo-grid, .sz-act-grid, .sz-cert-form { grid-template-columns: 1fr; }
  .sz-brand-name { white-space: normal; }
}
