/* roulang page: index */
:root {
  --primary: #0c4a3b;
  --primary-dark: #083529;
  --primary-deep: #05241c;
  --primary-light: #e4efea;
  --accent: #c9a24b;
  --accent-dark: #b28b3e;
  --accent-light: #f5ead2;
  --bg: #faf8f4;
  --card-bg: #ffffff;
  --text: #1b1f1a;
  --text-body: #40453e;
  --text-muted: #6f7570;
  --border: #e4e0d6;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow: 0 4px 12px rgba(28, 43, 35, .06);
  --shadow-hover: 0 12px 26px rgba(28, 43, 35, .12);
  --space-section: 80px;
  --space-section-md: 48px;
  --font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text-body);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body.no-scroll {
  overflow: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: var(--primary);
  text-decoration: none;
  transition: color .25s ease;
}

a:hover {
  color: var(--accent-dark);
}

button {
  font-family: inherit;
  border: 0;
  background: none;
  cursor: pointer;
}

input, select, textarea {
  font-family: inherit;
  font-size: 15px;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--text);
  line-height: 1.3;
  margin: 0;
  font-weight: 600;
}

p {
  margin: 0;
}

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}

.section {
  padding: var(--space-section) 0;
}

.section-sm {
  padding: 48px 0;
}

.section-header {
  max-width: 720px;
  margin-bottom: 44px;
}

.section-header.center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.section-eyebrow {
  display: inline-flex;
  align-items: center;
  background: var(--primary-light);
  color: var(--primary);
  font-size: 13px;
  font-weight: 500;
  border-radius: 999px;
  padding: 4px 14px;
  letter-spacing: .5px;
  margin-bottom: 14px;
}

.section-title {
  font-size: clamp(28px, 3.2vw, 38px);
  line-height: 1.3;
  margin-bottom: 16px;
}

.section-desc {
  color: var(--text-muted);
  font-size: 16px;
  margin: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  padding: 14px 30px;
  transition: all .25s ease;
  border: 1.5px solid transparent;
  white-space: nowrap;
}

.btn:focus-visible {
  outline: 3px solid rgba(201, 162, 75, .5);
  outline-offset: 2px;
}

.btn-accent {
  background: var(--accent);
  color: #fff;
}

.btn-accent:hover {
  background: var(--accent-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.btn-primary {
  background: var(--primary);
  color: #fff;
}

.btn-primary:hover {
  background: var(--primary-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.btn-outline-light {
  border-color: rgba(255, 255, 255, .8);
  color: #fff;
  background: transparent;
}

.btn-outline-light:hover {
  background: #fff;
  color: var(--primary);
  border-color: #fff;
}

.btn-outline {
  border-color: var(--border);
  color: var(--primary);
  background: #fff;
}

.btn-outline:hover {
  border-color: var(--primary);
  background: var(--primary-light);
  color: var(--primary);
}

.btn-lg {
  padding: 16px 38px;
  font-size: 16px;
}

.btn-block {
  width: 100%;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 1px 0 rgba(28, 43, 35, .08), 0 6px 24px rgba(28, 43, 35, .04);
}

.header-main {
  border-bottom: 1px solid var(--border);
}

.header-main-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  gap: 20px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.brand-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 10px;
  background: var(--primary);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 21px;
  font-weight: 700;
}

.brand-name {
  font-size: 19px;
  font-weight: 700;
  color: var(--primary);
  white-space: nowrap;
  letter-spacing: .2px;
}

.header-tools {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}

.header-hotline {
  text-align: right;
  line-height: 1.4;
  color: var(--text);
  display: block;
}

.header-hotline span {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
}

.header-hotline strong {
  display: block;
  color: var(--primary);
  font-weight: 600;
  font-size: 16px;
}

.header-cta {
  padding: 10px 20px;
  font-size: 14px;
}

.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  border: 1px solid var(--border);
  align-items: center;
  justify-content: center;
}

.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  background: var(--primary);
  border-radius: 2px;
  position: relative;
  transition: all .25s ease;
}

.nav-toggle span::before {
  position: absolute;
  top: -7px;
  left: 0;
}

.nav-toggle span::after {
  position: absolute;
  top: 7px;
  left: 0;
}

.nav-toggle.open span {
  background: transparent;
}

.nav-toggle.open span::before {
  top: 0;
  transform: rotate(45deg);
}

.nav-toggle.open span::after {
  top: 0;
  transform: rotate(-45deg);
}

.header-nav {
  background: var(--primary);
  position: relative;
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  gap: 8px;
}

.header-nav .nav-link {
  display: inline-flex;
  align-items: center;
  color: rgba(255, 255, 255, .86);
  font-size: 15px;
  padding: 0 14px;
  height: 48px;
  font-weight: 400;
  border-bottom: 3px solid transparent;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}

.header-nav .nav-link:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, .24);
  background: rgba(255, 255, 255, .05);
}

.header-nav .nav-link.active {
  color: #fff;
  font-weight: 500;
  border-color: var(--accent);
  background: rgba(255, 255, 255, .06);
}

.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 560px;
  padding: 96px 0;
  color: #fff;
  background: linear-gradient(105deg, rgba(4, 28, 22, .95) 0%, rgba(8, 45, 36, .88) 48%, rgba(12, 80, 63, .75) 100%), url('/assets/images/backpic/back-1.png') center center / cover no-repeat;
}

.hero-inner {
  max-width: 780px;
  position: relative;
  z-index: 2;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, .28);
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(6px);
  border-radius: 999px;
  padding: 6px 18px;
  font-size: 14px;
  color: rgba(255, 255, 255, .9);
  margin-bottom: 22px;
}

.hero-tag .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
}

.hero h1 {
  color: #fff;
  font-size: clamp(32px, 4.6vw, 48px);
  line-height: 1.25;
  font-weight: 600;
  margin-bottom: 20px;
}

.hero-sub {
  color: rgba(255, 255, 255, .86);
  font-size: 17px;
  line-height: 1.8;
  margin-bottom: 34px;
  max-width: 620px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 40px;
}

.hero-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  color: rgba(255, 255, 255, .82);
  font-size: 14px;
}

.hero-points li {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.hero-points li::before {
  content: "✓";
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  border-radius: 50%;
  font-size: 11px;
  color: #fff;
}

.stats-strip {
  background: #fff;
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.stat-item {
  text-align: center;
  padding: 32px 20px;
  border-left: 1px solid var(--border);
}

.stat-item:first-child {
  border-left: 0;
}

.stat-num {
  display: block;
  font-size: 34px;
  font-weight: 700;
  color: var(--primary);
  line-height: 1.2;
}

.stat-label {
  color: var(--text-muted);
  font-size: 14px;
  margin-top: 8px;
}

.section-service {
  background: var(--bg);
}

.grid {
  display: grid;
  gap: 28px;
}

.grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.media-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}

.media-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
}

.media-cover {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--primary-light);
}

.media-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.media-card:hover .media-cover img {
  transform: scale(1.04);
}

.media-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  background: rgba(5, 36, 28, .75);
  color: #fff;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .18);
  backdrop-filter: blur(4px);
}

.media-body {
  padding: 24px;
}

.media-body h3 {
  font-size: 18px;
  margin-bottom: 10px;
}

.media-body p {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.7;
  margin: 0;
}

.feature-grid {
  grid-template-columns: repeat(3, 1fr);
}

.feature-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 30px 26px;
  position: relative;
  transition: box-shadow .3s ease, transform .3s ease;
}

.feature-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-3px);
}

.feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--primary-light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-bottom: 18px;
}

.feature-card h3 {
  font-size: 18px;
  margin-bottom: 10px;
}

.feature-card p {
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
}

.steps-section {
  background: var(--primary-deep);
  color: #fff;
}

.steps-section .section-title,
.steps-section .section-desc {
  color: #fff;
}

.steps-section .section-desc {
  color: rgba(255, 255, 255, .7);
}

.steps-section .section-eyebrow {
  background: rgba(201, 162, 75, .16);
  color: var(--accent);
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  counter-reset: step;
}

.step-item {
  position: relative;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--radius);
  padding: 30px 24px;
}

.step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--primary-deep);
  font-weight: 700;
  font-size: 17px;
  margin-bottom: 16px;
}

.step-item h3 {
  color: #fff;
  font-size: 18px;
  margin-bottom: 8px;
}

.step-item p {
  color: rgba(255, 255, 255, .68);
  font-size: 14px;
  margin: 0;
}

.plans-section {
  background: var(--card-bg);
}

.plans-grid {
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
}

.plan-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-bg);
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
}

.plan-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
}

.plan-card.popular {
  border: 2px solid var(--accent);
  box-shadow: 0 0 0 4px rgba(201, 162, 75, .14);
}

.plan-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  border-radius: 999px;
  padding: 4px 12px;
}

.plan-name {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 6px;
}

.plan-fit {
  color: var(--text-muted);
  font-size: 14px;
  margin-bottom: 14px;
}

.plan-price {
  font-size: 26px;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 24px;
  line-height: 1.3;
}

.plan-price small {
  font-size: 13px;
  color: var(--text-muted);
  font-weight: 400;
}

.plan-list {
  list-style: none;
  padding: 0;
  margin: 0 0 30px;
  flex: 1;
}

.plan-list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 8px 0;
  color: var(--text-body);
  font-size: 15px;
}

.plan-list .check {
  color: var(--accent-dark);
  font-weight: 700;
  line-height: 1.4;
}

.cta-band {
  position: relative;
  color: #fff;
  padding: 88px 0;
  background: linear-gradient(115deg, rgba(4, 27, 21, .96) 0%, rgba(7, 44, 35, .9) 55%, rgba(12, 74, 59, .82) 100%), url('/assets/images/backpic/back-2.webp') center center / cover no-repeat;
}

.cta-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 60px;
  align-items: center;
}

.cta-copy .section-title {
  color: #fff;
}

.cta-copy p {
  color: rgba(255, 255, 255, .8);
  margin-top: 16px;
}

.cta-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
}

.cta-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, .86);
  font-size: 15px;
  padding: 6px 0;
}

.cta-list li::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  flex: 0 0 20px;
}

.form-panel {
  background: #fff;
  border-radius: var(--radius);
  padding: 34px 30px;
  box-shadow: var(--shadow-hover);
}

.form-title {
  font-size: 21px;
  color: var(--primary);
  margin-bottom: 4px;
}

.form-tip-text {
  color: var(--text-muted);
  font-size: 14px;
  margin-bottom: 20px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.form-group {
  margin-bottom: 16px;
}

.form-group label {
  display: block;
  font-size: 14px;
  color: var(--text);
  font-weight: 500;
  margin-bottom: 6px;
}

.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 12px 14px;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(12, 74, 59, .1);
  outline: none;
}

.form-group textarea {
  resize: vertical;
}

.form-success {
  display: none;
  background: #eff8f1;
  border: 1px solid #bcddbe;
  color: #226b3b;
  font-size: 14px;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
}

.form-success.show {
  display: flex;
  align-items: center;
  gap: 8px;
}

.form-error {
  display: none;
  background: #fdf1f0;
  border: 1px solid #f2c5c1;
  color: #a54540;
  font-size: 14px;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
}

.form-legal {
  display: block;
  margin-top: 14px;
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
}

.news-section {
  background: #f4f2ec;
}

.news-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
}

.news-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.news-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px 26px;
  transition: box-shadow .25s ease, transform .25s ease;
}

.news-item:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.news-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.news-tag {
  display: inline-block;
  background: var(--primary-light);
  color: var(--primary);
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: 500;
}

.news-time {
  font-size: 13px;
  color: var(--text-muted);
}

.news-item h3 {
  font-size: 17px;
  line-height: 1.5;
  margin-bottom: 6px;
}

.news-item h3 a {
  color: var(--text);
  transition: color .2s ease;
}

.news-item h3 a:hover {
  color: var(--primary);
}

.news-summary {
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-link {
  font-size: 14px;
  font-weight: 500;
  color: var(--primary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.news-link:hover {
  color: var(--accent-dark);
}

.news-empty {
  border: 1.5px dashed var(--border);
  border-radius: var(--radius);
  background: var(--bg);
  padding: 52px 24px;
  text-align: center;
}

.news-empty-icon {
  width: 44px;
  height: 44px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.news-empty p {
  color: var(--text-muted);
  font-size: 15px;
  margin: 0;
}

.news-aside {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.aside-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 26px 24px;
}

.aside-card h3 {
  font-size: 16px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.aside-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.aside-list li {
  border-bottom: 1px dashed var(--border);
  padding: 11px 0;
}

.aside-list li:last-child {
  border-bottom: 0;
}

.aside-list a {
  color: var(--text-body);
  font-size: 15px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  transition: color .2s ease;
}

.aside-list a:hover {
  color: var(--primary);
}

.aside-list .arrow {
  color: var(--accent-dark);
}

.aside-hotline {
  background: var(--primary);
  color: #fff;
  border-color: transparent;
  text-align: center;
}

.aside-hotline .ico {
  font-size: 26px;
  line-height: 1;
  margin-bottom: 8px;
}

.aside-hotline h3 {
  color: #fff;
  border-color: rgba(255, 255, 255, .2);
}

.aside-hotline p {
  color: rgba(255, 255, 255, .75);
  font-size: 14px;
  margin-bottom: 14px;
}

.aside-hotline a {
  display: inline-block;
  color: var(--accent);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}

.faq-section {
  background: var(--bg);
}

.faq-layout {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 60px;
  align-items: start;
}

.faq-copy .section-title {
  margin-bottom: 14px;
}

.faq-copy > p {
  color: var(--text-muted);
  margin-bottom: 24px;
}

.faq-contact-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-top: 16px;
}

.faq-contact-box p {
  font-size: 14px;
  color: var(--text-body);
  margin-bottom: 6px;
}

.faq-contact-box a {
  font-weight: 600;
  color: var(--primary);
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.faq-item {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow .25s ease;
}

.faq-item.active {
  box-shadow: var(--shadow);
  border-color: rgba(12, 74, 59, .25);
}

.faq-question {
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  font-size: 16px;
  font-weight: 500;
  color: var(--text);
  cursor: pointer;
  transition: background .25s ease;
}

.faq-question:hover {
  background: var(--primary-light);
}

.faq-item.active .faq-question {
  color: var(--primary);
}

.faq-icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  left: 3px;
  right: 3px;
  top: 10px;
  height: 2px;
  background: var(--primary);
  border-radius: 2px;
  transition: transform .25s ease;
}

.faq-icon::after {
  transform: rotate(90deg);
}

.faq-item.active .faq-icon::after {
  transform: rotate(0deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.faq-answer-inner {
  padding: 0 22px 20px;
  color: var(--text-muted);
  font-size: 15px;
  line-height: 1.8;
  border-top: 1px dashed var(--border);
  padding-top: 14px;
  margin-left: 22px;
  margin-right: 22px;
  padding-left: 0;
  padding-right: 0;
}

.site-footer {
  background: var(--primary-deep);
  color: rgba(255, 255, 255, .72);
  padding-top: 64px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
  gap: 48px;
  padding-bottom: 44px;
}

.footer-brand .brand-name {
  color: #fff;
  font-size: 22px;
  margin-bottom: 14px;
}

.footer-brand .brand-mark {
  background: rgba(255, 255, 255, .1);
  color: var(--accent);
}

.footer-brand p {
  color: rgba(255, 255, 255, .6);
  font-size: 15px;
  line-height: 1.8;
  max-width: 320px;
}

.footer-title {
  color: #fff;
  font-size: 16px;
  margin-bottom: 16px;
  font-weight: 500;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 10px;
}

.footer-links a {
  color: rgba(255, 255, 255, .66);
  font-size: 15px;
  transition: color .2s ease;
  line-height: 1.4;
}

.footer-links a:hover {
  color: var(--accent);
}

.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-contact li {
  display: flex;
  gap: 10px;
  color: rgba(255, 255, 255, .66);
  font-size: 15px;
  line-height: 1.6;
  padding: 6px 0;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 20px 0;
}

.footer-bottom-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 20px;
  font-size: 13px;
  color: rgba(255, 255, 255, .5);
}

.footer-bottom a {
  color: rgba(255, 255, 255, .55);
}

.footer-bottom a:hover {
  color: var(--accent);
}

.back-top {
  position: fixed;
  right: 24px;
  bottom: 30px;
  z-index: 50;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  box-shadow: var(--shadow);
  opacity: .8;
  transition: all .25s ease;
}

.back-top:hover {
  opacity: 1;
  transform: translateY(-3px);
  background: var(--primary-dark);
  color: #fff;
}

@media (min-width: 993px) {
  .back-top {
    display: none;
  }
}

@media (max-width: 1024px) {
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .feature-grid,
  .plans-grid,
  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .steps-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .cta-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .news-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .faq-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
  }
}

@media (max-width: 992px) {
  .header-hotline {
    display: none;
  }

  .nav-toggle {
    display: inline-flex;
  }

  .header-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--primary-dark);
    box-shadow: var(--shadow-hover);
  }

  .header-nav.open {
    display: block;
  }

  .nav-inner {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 16px;
    min-height: auto;
    gap: 4px;
  }

  .header-nav .nav-link {
    height: 46px;
    border-bottom: 0;
    border-left: 3px solid transparent;
    padding: 0 16px;
    color: rgba(255, 255, 255, .86);
  }

  .header-nav .nav-link:hover,
  .header-nav .nav-link.active {
    border-left-color: var(--accent);
    background: rgba(255, 255, 255, .08);
    color: #fff;
  }
}

@media (max-width: 767px) {
  :root {
    --space-section: 52px;
  }

  .section-title {
    font-size: 26px;
  }

  .btn-lg {
    padding: 14px 28px;
  }

  .hero {
    min-height: 480px;
    padding: 64px 0;
  }

  .hero-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .stats-grid {
    grid-template-columns: 1fr;
  }

  .stat-item {
    border-left: 0;
    border-bottom: 1px solid var(--border);
  }

  .stat-item:last-child {
    border-bottom: 0;
  }

  .grid-4,
  .grid-3,
  .plans-grid,
  .feature-grid {
    grid-template-columns: 1fr;
  }

  .steps-grid {
    grid-template-columns: 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .form-panel {
    padding: 28px 20px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-bottom-inner {
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 520px) {
  .brand-name {
    font-size: 16px;
  }

  .brand-mark {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    font-size: 18px;
  }

  .header-cta {
    display: none;
  }

  .section {
    padding: 44px 0;
  }

  .plan-card {
    padding: 28px 22px;
  }

  .news-item {
    padding: 20px;
  }

  .media-body {
    padding: 20px;
  }
}

/* roulang page: article */
:root{
  --green-950:#062b21;
  --green-900:#0c4a3b;
  --green-800:#12644f;
  --green-700:#1e8067;
  --gold:#c9a24b;
  --gold-deep:#b08738;
  --gold-light:#e4cf9d;
  --bg:#faf7f1;
  --surface:#ffffff;
  --ink-900:#1b1f1a;
  --ink-700:#343c34;
  --ink-500:#5e665b;
  --ink-400:#808a7c;
  --line:#ebe5d9;
  --line-deep:#d9d1c1;
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:8px;
  --shadow-card:0 4px 14px rgba(23,34,27,.06);
  --shadow-hover:0 12px 32px rgba(23,34,27,.11);
  --transition:all .25s ease;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  background:var(--bg);
  color:var(--ink-700);
  line-height:1.7;
  font-size:16px;
}
ul,ol{margin:0;padding:0;list-style:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4,h5,p{margin:0}
h1,h2,h3,h4{color:var(--ink-900);line-height:1.3}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 24px;border-radius:var(--radius-sm);
  font-size:14px;line-height:1;font-weight:600;
  border:1px solid transparent;cursor:pointer;
  transition:var(--transition);white-space:nowrap;
}
.btn-primary{background:var(--green-900);color:#fff;border-color:var(--green-900)}
.btn-primary:hover{background:var(--green-950);border-color:var(--green-950);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.btn-gold{background:var(--gold);color:#1f2a22;border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep);transform:translateY(-2px)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px)}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}

.site-header{position:relative;z-index:99;background:#fff;box-shadow:0 1px 0 rgba(16,47,34,.06)}
.site-header.sticky{position:sticky;top:0}
.header-main{border-bottom:1px solid var(--line)}
.header-main-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:74px}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand-mark{
  width:38px;height:38px;border-radius:10px;
  background:var(--green-900);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:800;
  box-shadow:inset 0 -2px 0 rgba(255,255,255,.18),0 4px 10px rgba(12,74,59,.2);
  letter-spacing:0;
}
.brand-name{font-size:20px;font-weight:700;color:var(--ink-900);letter-spacing:.5px;white-space:nowrap}
.brand-name em{font-style:normal;color:var(--gold-deep)}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:14px}
.header-hotline{display:flex;flex-direction:column;align-items:flex-end;line-height:1.35;color:var(--ink-700)}
.header-hotline span{font-size:12px;color:var(--ink-500)}
.header-hotline strong{font-size:16px;color:var(--green-900);letter-spacing:.5px}
.header-cta{padding:10px 18px}
.nav-toggle{
  display:none;width:42px;height:42px;border:1px solid var(--line-deep);
  border-radius:8px;background:#fff;position:relative;cursor:pointer;
  transition:var(--transition);
}
.nav-toggle:hover{border-color:var(--green-800)}
.nav-toggle span{position:absolute;left:12px;right:12px;top:19px;height:2px;border-radius:4px;background:var(--green-900);transition:var(--transition)}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:100%;height:2px;border-radius:4px;background:var(--green-900);transition:var(--transition)}
.nav-toggle span::before{top:-7px}
.nav-toggle span::after{top:7px}
header.nav-open .nav-toggle span{background:transparent}
header.nav-open .nav-toggle span::before{top:0;transform:rotate(45deg)}
header.nav-open .nav-toggle span::after{top:0;transform:rotate(-45deg)}

.header-nav{background:var(--green-950)}
.nav-inner{display:flex;align-items:center;min-height:48px;gap:6px;overflow-x:auto;scrollbar-width:none}
.nav-inner::-webkit-scrollbar{display:none}
.nav-link{
  padding:12px 16px;color:rgba(255,255,255,.82);
  font-size:15px;font-weight:500;letter-spacing:.4px;
  position:relative;white-space:nowrap;transition:var(--transition);
}
.nav-link::after{
  content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:center;transition:var(--transition);
}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav-link.active{color:#fff}
.nav-link.active::after{transform:scaleX(1)}

.article-hero{
  position:relative;
  padding:68px 0 86px;
  background:
    linear-gradient(105deg,rgba(4,30,22,.94) 12%,rgba(11,72,56,.86) 55%,rgba(17,69,52,.72)),
    url('/assets/images/backpic/back-2.webp') center/cover no-repeat;
  color:#fff;
  border-bottom:4px solid var(--gold);
  overflow:hidden;
}
.article-hero::after{
  content:"";position:absolute;right:-120px;bottom:-160px;width:420px;height:420px;
  border-radius:50%;border:70px solid rgba(201,162,75,.12);
}
.article-hero .container{position:relative;z-index:2}
.hero-breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-size:14px;color:rgba(255,255,255,.74);margin-bottom:22px;
}
.hero-breadcrumb a{color:rgba(255,255,255,.82);transition:var(--transition)}
.hero-breadcrumb a:hover{color:var(--gold-light)}
.hero-breadcrumb .sep{color:rgba(255,255,255,.45)}
.hero-breadcrumb .current{color:rgba(255,255,255,.6);max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.article-kicker{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border:1px solid rgba(255,255,255,.28);
  border-radius:30px;background:rgba(255,255,255,.08);
  color:#f3e6c8;font-size:13px;letter-spacing:1px;margin-bottom:20px;
}
.article-kicker i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.article-hero h1{
  color:#fff;font-size:34px;font-weight:800;line-height:1.35;
  letter-spacing:.5px;max-width:880px;text-wrap:balance;
}
.article-meta-hero{
  display:flex;flex-wrap:wrap;align-items:center;gap:18px;
  margin-top:26px;color:rgba(255,255,255,.82);font-size:14px;
}
.article-meta-hero .meta-item{display:inline-flex;align-items:center;gap:7px}
.article-meta-hero .meta-item i{width:4px;height:4px;border-radius:50%;background:var(--gold);display:inline-block}
.article-meta-hero .meta-divider{width:1px;height:14px;background:rgba(255,255,255,.25)}

.article-main{margin-top:-46px;padding-bottom:10px;position:relative;z-index:5}
.article-shell{
  max-width:920px;margin:0 auto;
  background:var(--surface);
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  box-shadow:var(--shadow-card);
  overflow:hidden;
}
.article-card{padding:48px clamp(20px,5vw,64px) 44px}
.article-summary{
  border-left:4px solid var(--gold);
  background:#faf8f2;
  border-radius:0 10px 10px 0;
  padding:18px 22px;margin:0 0 32px;
  color:var(--ink-700);font-size:16px;line-height:1.8;
}
.article-body{
  font-size:16px;line-height:1.9;color:#2d332c;
  word-wrap:break-word;
}
.article-body p{margin:0 0 1.5em}
.article-body h2{
  font-size:23px;margin:2em 0 .8em;
  padding-bottom:10px;border-bottom:1px solid var(--line);
  color:var(--green-900);
}
.article-body h3{font-size:19px;margin:1.8em 0 .6em;color:var(--ink-900);padding-left:12px;border-left:4px solid var(--gold)}
.article-body h4{font-size:17px;margin:1.5em 0 .5em;color:var(--ink-900)}
.article-body ul,.article-body ol{margin:0 0 1.5em;padding-left:28px}
.article-body ul li{list-style:disc;margin-bottom:.5em}
.article-body ol li{list-style:decimal;margin-bottom:.5em}
.article-body a{color:var(--green-700);font-weight:500;border-bottom:1px solid rgba(18,100,79,.3);transition:var(--transition)}
.article-body a:hover{color:var(--gold-deep);border-color:var(--gold-deep)}
.article-body blockquote{
  border-left:4px solid var(--gold);margin:1.6em 0;padding:16px 20px;
  background:#fbf9f3;color:var(--ink-700);border-radius:0 10px 10px 0;
}
.article-body img{border-radius:14px;margin:1.5em 0;box-shadow:var(--shadow-card)}
.article-body table{width:100%;border-collapse:collapse;margin:1.5em 0}
.article-body th,.article-body td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.article-body th{background:#f6f3ea;color:var(--green-900)}
.article-body iframe{max-width:100%;border-radius:14px}
.article-body code{background:#f2f0e9;border-radius:4px;padding:2px 6px;font-size:.92em;color:var(--green-800)}

.article-tags-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding-top:28px;margin-top:36px;border-top:1px solid var(--line);
}
.tag-label{font-size:14px;color:var(--ink-500);margin-right:2px}
.tag-chip{
  display:inline-flex;align-items:center;height:30px;padding:0 12px;
  background:#f5f2ea;border:1px solid var(--line);
  border-radius:20px;font-size:13px;color:var(--green-800);transition:var(--transition);
}
.tag-chip:hover{background:var(--green-900);color:#fff;border-color:var(--green-900)}

.article-pager{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  padding:20px 0 6px;
}
.pager-btn{
  display:block;padding:18px 20px;border:1px solid var(--line);
  border-radius:14px;background:#fff;transition:var(--transition);min-height:92px;
}
.pager-btn small{display:block;color:var(--ink-500);font-size:12px;margin-bottom:6px;letter-spacing:.5px}
.pager-btn strong{display:block;color:var(--ink-900);font-size:16px;font-weight:600;line-height:1.4}
.pager-btn:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px);border-color:var(--line-deep)}
.pager-btn:hover strong{color:var(--green-800)}
.pager-prev{text-align:left}
.pager-next{text-align:right}

.recommend-section{padding:56px 20px 20px}
.recommend-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}
.recommend-header h2{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--ink-900)}
.recommend-header p{color:var(--ink-500);font-size:14px}
.recommend-header .more-link{font-size:14px;color:var(--green-800);font-weight:500;transition:var(--transition)}
.recommend-header .more-link:hover{color:var(--gold-deep)}
.recommend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.recommend-card{
  display:block;border:1px solid var(--line);border-radius:var(--radius-md);
  overflow:hidden;background:#fff;transition:var(--transition);
}
.recommend-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);border-color:var(--line-deep)}
.thumb-box{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--green-900)}
.thumb-box img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.recommend-card:hover .thumb-box img{transform:scale(1.06)}
.thumb-tag{
  position:absolute;left:12px;top:12px;z-index:2;
  background:rgba(6,43,33,.88);color:var(--gold-light);
  font-size:12px;padding:4px 10px;border-radius:20px;letter-spacing:.5px;
}
.recommend-body{padding:18px 20px 22px}
.recommend-body h3{font-size:17px;font-weight:600;line-height:1.5;color:var(--ink-900);margin-bottom:10px}
.recommend-body p{font-size:14px;color:var(--ink-500);line-height:1.75;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recommend-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-400)}
.recommend-foot time{display:inline-flex;align-items:center;gap:5px}
.read-more{display:inline-flex;align-items:center;gap:4px;color:var(--green-800);font-weight:500;transition:var(--transition)}
.read-more:hover{color:var(--gold-deep)}

.book-cta{
  margin:76px 0 0;padding:76px 0 68px;position:relative;overflow:hidden;
  background:
    linear-gradient(130deg,rgba(4,32,22,.96) 25%,rgba(9,65,50,.9) 72%,rgba(18,76,59,.84)),
    url('/assets/images/backpic/back-3.png') center/cover no-repeat;
  color:#fff;
}
.book-cta::before{
  content:"";position:absolute;left:10%;top:-180px;width:480px;height:480px;
  border-radius:50%;background:radial-gradient(circle,rgba(201,162,75,.18),transparent 62%);
}
.book-cta .container{position:relative;z-index:2}
.cta-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.cta-headline h2{color:#fff;font-size:28px;line-height:1.45;margin-bottom:12px}
.cta-headline h2 span{color:var(--gold)}
.cta-headline p{color:rgba(255,255,255,.78);font-size:15.5px;margin-bottom:28px}
.cta-points{display:flex;flex-direction:column;gap:16px}
.cta-point{display:flex;gap:14px;align-items:flex-start}
.cta-point i{
  width:24px;height:24px;flex:0 0 24px;border-radius:50%;
  border:1px solid var(--gold);color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-style:normal;
  margin-top:4px;
}
.cta-point b{display:block;color:#fff;font-size:15px;font-weight:600;margin-bottom:3px}
.cta-point span{color:rgba(255,255,255,.66);font-size:14px;line-height:1.6}
.booking-card{
  background:#fff;border-radius:18px;padding:34px;box-shadow:0 18px 46px rgba(0,0,0,.2);
}
.booking-card h3{color:var(--ink-900);font-size:21px;margin-bottom:6px}
.booking-card .form-tip{font-size:13px;color:var(--ink-500);margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-item{display:flex;flex-direction:column}
.form-item.full{grid-column:1/-1}
.form-item label{font-size:14px;color:var(--ink-700);margin-bottom:8px;font-weight:500}
.form-item label i{color:#d05a4a;font-style:normal;margin-left:2px}
.form-item input,.form-item select,.form-item textarea{
  width:100%;border:1px solid var(--line-deep);background:#fcfbf7;
  border-radius:9px;padding:10px 12px;font-size:15px;color:var(--ink-900);
  transition:var(--transition);font-family:inherit;
}
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{
  border-color:var(--green-800);outline:none;background:#fff;box-shadow:0 0 0 3px rgba(18,100,79,.1);
}
.form-item textarea{resize:vertical;min-height:78px}
.form-note{font-size:12px;color:var(--ink-400);margin-top:14px;line-height:1.6}
.btn-submit{width:100%;margin-top:16px}
.form-message{
  display:none;align-items:flex-start;gap:8px;margin-top:14px;
  padding:12px 12px;border-radius:8px;font-size:14px;line-height:1.5;
}
.form-message.show{ display:flex }
.form-message.ok{background:#e8f2ec;color:#0b6e45;border:1px solid #b7dcca}
.form-message.error{background:#fbece9;color:#b34032;border:1px solid #efc7bf}

.article-empty-box{
  text-align:center;padding:60px 28px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
}
.article-empty-icon{
  width:68px;height:68px;border-radius:50%;background:#fff;border:1px dashed var(--line-deep);
  display:flex;align-items:center;justify-content:center;
  font-size:30px;color:var(--gold-deep);
}
.article-empty-box p{color:var(--ink-500);font-size:15px}

.site-footer{background:#07241b;color:rgba(255,255,255,.7);margin-top:auto}
.site-footer .brand-name{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr .85fr 1.1fr;gap:36px;padding:54px 0 30px}
.footer-brand p{font-size:14px;line-height:1.8;margin-top:14px;color:rgba(255,255,255,.56)}
.footer-title{font-size:15px;font-weight:600;color:#fff;margin-bottom:16px;letter-spacing:.5px}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:14px;color:rgba(255,255,255,.64);transition:var(--transition)}
.footer-links a:hover{color:var(--gold-light)}
.footer-contact{display:flex;flex-direction:column;gap:10px;font-size:14px;color:rgba(255,255,255,.62)}
.footer-contact li{display:flex;gap:4px;font-style:normal}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1)}
.footer-bottom-inner{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;
  min-height:60px;padding:12px 20px;font-size:13px;color:rgba(255,255,255,.44);
}

@media(max-width:1024px){
  .header-main-inner{grid-template-columns:1fr auto}
  .header-tools{grid-column:auto}
  .header-hotline{display:none}
  .cta-grid{grid-template-columns:1fr;gap:36px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .recommend-grid{grid-template-columns:repeat(2,1fr)}
  .article-hero h1{font-size:29px}
}
@media(max-width:767px){
  .container{padding:0 16px}
  .header-main-inner{min-height:64px;display:flex;justify-content:space-between}
  .brand-mark{width:33px;height:33px;font-size:19px;border-radius:8px}
  .brand-name{font-size:17px}
  .header-cta{display:none}
  .nav-toggle{display:block;flex:0 0 42px}
  .header-nav{
    position:absolute;left:0;right:0;top:100%;display:none;
    background:var(--green-950);box-shadow:0 18px 30px rgba(0,0,0,.18);
  }
  header.nav-open .header-nav{display:block}
  .nav-inner{flex-direction:column;align-items:stretch;padding:12px;overflow:visible}
  .nav-link{display:block;padding:12px 14px;border-radius:8px;font-size:15px}
  .nav-link::after{display:none}
  .nav-link:hover{background:rgba(255,255,255,.07)}
  .article-hero{padding:48px 0 70px}
  .article-hero h1{font-size:24px}
  .article-meta-hero{font-size:13px;gap:10px}
  .article-card{padding:28px 20px}
  .article-summary{padding:15px 16px;font-size:15px}
  .article-body{font-size:15.5px;line-height:1.85}
  .article-pager{grid-template-columns:1fr}
  .recommend-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .book-cta{padding:56px 0}
  .booking-card{padding:24px 18px}
  .footer-grid{grid-template-columns:1fr;gap:28px;padding:42px 0 24px}
  .footer-bottom-inner{flex-direction:column;padding:18px 16px}
  .cta-headline h2{font-size:22px}
}

/* roulang page: category1 */
:root{
  --primary:#0c4a3b;
  --primary-dark:#083128;
  --primary-light:#145243;
  --accent:#c9a24b;
  --accent-deep:#b28e3a;
  --bg:#f7f5ef;
  --surface:#ffffff;
  --ink:#1a211c;
  --text:#40463f;
  --muted:#70766f;
  --line:#e5e1d8;
  --footer-bg:#09241e;
  --footer-line:#1e4d41;
  --radius-lg:16px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-sm:0 4px 14px rgba(18,43,32,.06);
  --shadow-md:0 10px 28px rgba(18,43,32,.10);
  --transition:.2s ease;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.75;
}
a{text-decoration:none;color:var(--primary);transition:color .2s ease;}
img{max-width:100%;display:block;border:0;}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
ul,ol{list-style:none;}
.container{width:100%;max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px;}
.section{padding:80px 0;}
.section-alt{background:var(--surface);}
.section-mid{background:#eeeade;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* ===== 按钮 ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:var(--radius-sm);padding:11px 24px;
  font-size:15px;line-height:1.4;font-weight:600;
  cursor:pointer;border:1px solid transparent;
  transition:background .25s ease,border-color .25s ease,transform .2s ease,box-shadow .25s ease;
}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 10px 22px rgba(12,74,59,.18);}
.btn-accent{background:var(--accent);color:#20220e;}
.btn-accent:hover{background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 10px 20px rgba(201,162,75,.24);}
.btn-outline{border-color:rgba(255,255,255,.7);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.14);border-color:#fff;}
.btn-soft{background:#f0eee7;border-color:var(--line);color:var(--primary);}
.btn-soft:hover{background:var(--primary);color:#fff;border-color:var(--primary);}

/* ===== 导航 ===== */
.site-header{
  position:sticky;top:0;z-index:80;
  box-shadow:0 2px 18px rgba(17,38,29,.06);
}
.header-main{background:var(--surface);border-bottom:1px solid var(--line);}
.header-main-inner{
  min-height:76px;display:flex;align-items:center;gap:18px;
}
.brand{display:inline-flex;align-items:center;gap:12px;font-size:16px;}
.brand-mark{
  width:38px;height:38px;border-radius:9px;
  background:var(--primary);color:#fff;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;font-size:21px;
  box-shadow:0 4px 10px rgba(12,74,59,.18);
}
.brand-name{font-size:20px;font-weight:700;color:var(--ink);letter-spacing:.5px;}
.header-tools{margin-left:auto;display:flex;align-items:center;gap:18px;}
.header-hotline{display:flex;flex-direction:column;line-height:1.3;text-align:right;}
.header-hotline span{font-size:12px;color:var(--muted);}
.header-hotline strong{color:var(--primary);font-size:17px;}
.header-cta{padding:9px 20px;font-size:14px;}
.nav-toggle{display:none;width:42px;height:40px;background:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;position:relative;align-items:center;justify-content:center;}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:10px;width:20px;height:2px;background:var(--primary);transition:all .25s ease;}
.nav-toggle span{top:19px;}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}
.site-header.nav-open .nav-toggle span{background:transparent;}
.site-header.nav-open .nav-toggle span::before{transform:rotate(45deg);top:0;}
.site-header.nav-open .nav-toggle span::after{transform:rotate(-45deg);top:0;}
.header-nav{background:var(--primary);}
.nav-inner{display:flex;align-items:center;overflow-x:auto;}
.nav-link{
  color:rgba(255,255,255,.78);font-size:15px;padding:15px 22px;white-space:nowrap;
  position:relative;display:inline-flex;align-items:center;transition:color .2s ease;
}
.nav-link:hover{color:#fff;}
.nav-link.active{color:#fff;font-weight:600;background:rgba(255,255,255,.08);}
.nav-link.active::after{
  content:"";position:absolute;left:22px;right:22px;bottom:0;height:3px;
  background:var(--accent);border-radius:3px 3px 0 0;
}
@media(max-width:1023px){
  .header-main-inner{min-height:66px;}
  .brand-name{font-size:17px;line-height:1.2;}
  .header-hotline,.header-cta{display:none;}
  .nav-toggle{display:inline-flex;}
  .header-nav{
    position:fixed;top:0;right:0;bottom:0;z-index:120;
    width:min(360px,88vw);max-height:100vh;overflow-y:auto;
    background:var(--primary-dark);
    padding:28px 22px 40px;
    transform:translateX(110%);
    transition:transform .3s ease;
    box-shadow:-20px 0 60px rgba(8,48,39,.28);
  }
  .site-header.nav-open .header-nav{transform:translateX(0);}
  .header-nav .container{padding:0;}
  .nav-inner{flex-direction:column;align-items:stretch;margin-top:20px;gap:6px;}
  .nav-link{padding:15px 8px;border-bottom:1px solid rgba(255,255,255,.14);white-space:normal;}
  .nav-link.active{background:transparent;}
  .nav-link.active::after{left:0;width:4px;right:auto;background:var(--accent);}
  .nav-toggle{position:absolute;right:16px;top:14px;background:var(--surface);z-index:130;}
}

/* ===== 分类横幅 Hero ===== */
.page-hero{
  position:relative;
  background:url('/assets/images/backpic/back-2.webp') center 32% / cover no-repeat,var(--primary-dark);
  padding:84px 0 76px;
  overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(7,38,30,.96) 0%,rgba(8,49,37,.86) 48%,rgba(8,54,41,.62) 100%);
}
.page-hero .container{position:relative;z-index:2;color:#fff;}
.breadcrumb{display:flex;flex-wrap:wrap;gap:9px;font-size:14px;color:rgba(255,255,255,.78);margin-bottom:18px;}
.breadcrumb a{color:rgba(255,255,255,.9);}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb .sep{color:rgba(255,255,255,.5);}
.hero-tag{
  display:inline-flex;align-items:center;gap:7px;
  color:var(--accent);font-size:14px;font-weight:600;margin-bottom:12px;
  letter-spacing:.4px;
}
.hero-tag::before{content:"";width:20px;height:2px;background:var(--accent);display:inline-block;}
.page-hero h1{
  font-size:clamp(30px,4vw,46px);color:#fff;line-height:1.3;letter-spacing:.5px;
  margin-bottom:18px;max-width:820px;
}
.hero-lead{
  font-size:17px;line-height:1.9;color:rgba(255,255,255,.9);
  max-width:760px;margin-bottom:32px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;}
@media(max-width:640px){
  .page-hero{padding:56px 0;}
  .page-hero h1{font-size:28px;}
  .hero-lead{font-size:15px;}
  .hero-actions .btn{width:100%;}
}

/* ===== 频道简介 ===== */
.introduction-wrap{
  display:grid;grid-template-columns:1.14fr .86fr;gap:56px;align-items:start;
}
.intro-copy h2,.note-column h2{font-size:clamp(24px,2.6vw,34px);line-height:1.3;color:var(--ink);margin-bottom:22px;}
.intro-copy p{font-size:16px;line-height:2;margin-bottom:18px;}
.intro-list{margin-top:22px;display:grid;gap:13px;}
.intro-list li{
  padding-left:34px;position:relative;font-size:16px;
}
.intro-list li::before{
  content:"";position:absolute;left:4px;top:6px;width:18px;height:18px;
  background:rgba(12,74,59,.1);border:1.5px solid var(--accent);border-radius:50%;
}
.intro-list li::after{content:"";position:absolute;left:10px;top:12px;width:6px;height:10px;border-right:1.6px solid var(--primary);border-bottom:1.6px solid var(--primary);transform:rotate(45deg);}
.intro-note{
  background:var(--primary);border-radius:var(--radius-lg);
  color:#fff;padding:34px 32px;box-shadow:var(--shadow-md);
}
.intro-note h3{font-size:21px;color:#fff;margin-bottom:22px;font-weight:600;}
.intro-note ol{display:grid;gap:14px;}
.intro-note li{
  background:rgba(255,255,255,.08);border-left:3px solid var(--accent);
  padding:13px 16px;border-radius:10px;font-size:15px;
}
@media(max-width:900px){
  .section{padding:56px 0;}
  .introduction-wrap{grid-template-columns:1fr;gap:32px;}
}

/* ===== 图文内容卡片 ===== */
.sec-head{margin-bottom:46px;}
.sec-head .eyebrow{color:var(--accent-deep);font-weight:700;letter-spacing:1px;font-size:14px;display:inline-block;margin-bottom:10px;}
.sec-head h2{font-size:clamp(24px,3vw,36px);color:var(--ink);line-height:1.3;}
.sec-head p{margin-top:12px;font-size:16px;max-width:760px;color:var(--muted);}
.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.guide-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;
  display:flex;flex-direction:column;
}
.guide-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#cfd6c6;}
.guide-media{aspect-ratio:16/7;background:#d6d8cd;}
.guide-media img{width:100%;height:100%;object-fit:cover;}
.guide-body{padding:26px 26px 30px;display:flex;flex-direction:column;flex:1;}
.guide-body .guide-label{
  display:inline-flex;align-self:flex-start;background:#f0ede4;color:var(--primary);
  border:1px solid var(--line);font-size:13px;font-weight:600;padding:4px 12px;border-radius:100px;margin-bottom:16px;
}
.guide-body h3{font-size:21px;color:var(--ink);font-weight:600;line-height:1.4;margin-bottom:12px;}
.guide-body p{font-size:15px;color:var(--text);line-height:1.9;}
.guide-link{margin-top:auto;padding-top:20px;}
.guide-link a{font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px;}
.guide-link a::after{content:"›";font-size:23px;transition:transform .2s;}
.guide-link a:hover{color:var(--accent-deep);}
.guide-link a:hover::after{transform:translateX(4px);}
@media(max-width:680px){
  .guide-grid{grid-template-columns:1fr;}
}

/* ===== 场景处理 ===== */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.case-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:26px 24px;transition:all .25s ease;position:relative;
}
.case-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px);border-color:var(--accent);}
.case-num{
  color:var(--line);font-weight:700;font-size:30px;line-height:1;position:absolute;top:20px;right:22px;
  font-family:Georgia,serif;
}
.case-card h3{font-size:17px;color:var(--ink);margin-bottom:10px;padding-right:38px;}
.case-card p{font-size:14px;color:var(--text);line-height:1.85;}
.case-card a{font-size:14px;font-weight:600;margin-top:14px;display:inline-flex;align-items:center;gap:6px;}
.case-card a::before{content:"＋";font-size:16px;}
@media(max-width:1023px){.case-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.case-grid{grid-template-columns:1fr;}}

/* ===== 标签快速入口 ===== */
.tag-board{display:grid;grid-template-columns:1fr;gap:34px;}
.topic-cloud{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;}
.topic-cloud a{
  display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--surface);
  border:1px solid var(--line);border-radius:40px;font-size:15px;color:var(--text);
  transition:all .25s ease;
}
.topic-cloud a::before{content:"·";font-size:20px;font-weight:700;color:var(--accent);line-height:1;}
.topic-cloud a:hover{color:var(--primary);border-color:var(--accent);transform:translateY(-2px);}
.channel-switch{
  margin-top:46px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.channel-switch-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:26px 24px;
  display:flex;flex-direction:column;transition:all .25s ease;
}
.channel-switch-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px);border-color:var(--accent);}
.channel-switch-card h3{font-size:18px;color:var(--ink);margin:14px 0 10px;font-weight:600;}
.channel-switch-card p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:20px;flex:1;}
.channel-switch-card a{font-weight:600;font-size:14px;}
@media(max-width:860px){.channel-switch{grid-template-columns:1fr;}}

/* ===== 联系/CTA ===== */
.cta-wrap{
  position:relative;background:url('/assets/images/backpic/back-3.png') center / cover fixed no-repeat;border-radius:22px;
  padding:10px;color:#fff;overflow:hidden;
}
.cta-wrap::before{content:"";position:absolute;inset:0;background:var(--primary-dark);opacity:.94;}
.cta-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:46px;padding:42px;}
.cta-copy h2{color:#fff;font-size:clamp(24px,3vw,34px);line-height:1.45;}
.cta-copy .lead{margin-top:18px;color:rgba(255,255,255,.82);font-size:16px;line-height:2;}
.cta-info-list{margin-top:28px;display:grid;gap:12px;}
.cta-info-list li{display:flex;gap:14px;align-items:center;font-size:15px;color:rgba(255,255,255,.9);}
.cta-info-list li i{display:flex;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;align-items:center;justify-content:center;color:var(--accent);font-style:normal;}
.cta-form{
  background:var(--surface);border-radius:var(--radius-md);padding:30px;
  color:var(--ink);box-shadow:0 20px 50px rgba(0,0,0,.16);
}
.cta-form h3{font-size:21px;font-weight:600;color:var(--ink);margin-bottom:20px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.cta-form input,.cta-form textarea,.cta-form select{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;
  background:#fff;transition:border-color .2s ease,box-shadow .2s ease;
}
.cta-form textarea{min-height:100px;resize:vertical;}
.cta-form input:focus,.cta-form textarea:focus,.cta-form select:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(12,74,59,.09);
}
.submit-row{margin-top:18px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;}
.tip-text{font-size:13px;color:var(--muted);}
@media(max-width:900px){
  .cta-inner{grid-template-columns:1fr;padding:20px;}
  .cta-wrap{background-attachment:scroll;}
  .form-row{grid-template-columns:1fr;}
  .submit-row{grid-template-columns:1fr;}
}

/* ===== FAQ ===== */
.faq-section{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.faq-wrap{display:grid;grid-template-columns:.88fr 1.12fr;gap:50px;align-items:start;}
.faq-wrap h2{font-size:clamp(24px,3vw,34px);line-height:1.35;color:var(--ink);}
.faq-wrap .faq-describe{margin-top:16px;font-size:15px;color:var(--muted);max-width:330px;}
.faq-list{display:grid;gap:12px;}
details.faq-item{
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:0 6px;transition:all .25s ease;
}
details.faq-item[open]{border-color:rgba(12,74,59,.35);background:#f2f5ed;}
summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;
  padding:18px 18px;font-weight:600;color:var(--ink);font-size:16px;
  transition:color .2s ease;
}
summary::-webkit-details-marker{display:none;}
details[open] summary{color:var(--primary);}
.faq-icon{
  width:28px;height:28px;flex:none;border:1px solid var(--accent);border-radius:50%;
  position:relative;margin-left:16px;transition:transform .3s ease;
}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;background:var(--accent-deep);border-radius:2px;}
.faq-icon::before{left:7px;top:13px;width:12px;height:2px;}
.faq-icon::after{left:13px;top:7px;width:2px;height:12px;}
details[open] .faq-icon{transform:rotate(45deg);}
.faq-answer{padding:0 18px 20px 18px;color:var(--text);font-size:15px;line-height:1.9;}
.faq-answer strong{color:var(--primary);}
@media(max-width:900px){
  .faq-wrap{grid-template-columns:1fr;gap:26px;}
}

/* ===== 页面版块间距补充 ===== */
.intro-section{padding:72px 0 66px;}
.guide-section{padding:72px 0;}
.cases-section{padding:72px 0;background:#eef0e6;}
.tag-section{padding:72px 0;background:var(--surface);}
.cta-section{padding:72px 0;background:transparent;}
.faq-section{padding:72px 0;}
.section-line{height:1px;background:var(--line);}

/* ===== 页脚 ===== */
.site-footer{background:var(--footer-bg);color:rgba(255,255,255,.72);}
.site-footer .container{padding-top:52px;padding-bottom:20px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:38px;}
.footer-brand .brand-name{color:#fff;font-size:20px;}
.footer-brand p{margin-top:14px;font-size:14px;line-height:1.9;color:rgba(255,255,255,.66);}
.footer-title{
  color:#fff;font-size:15px;font-weight:600;margin-bottom:18px;position:relative;
  padding-bottom:9px;
}
.footer-title::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--accent);}
.footer-links li,.footer-contact li{margin-bottom:10px;font-size:14px;line-height:1.7;}
.footer-links a{color:rgba(255,255,255,.64);}
.footer-links a:hover{color:#fff;}
.footer-contact li{color:rgba(255,255,255,.62);}
.site-footer .brand{margin-bottom:12px;}
.footer-bottom{border-top:1px solid var(--footer-line);}
.footer-bottom-inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:18px 0 24px;gap:8px;font-size:13px;color:rgba(255,255,255,.55);}
.footer-bottom span{display:inline-flex;gap:6px;}
@media(max-width:860px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:34px;}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom-inner{flex-direction:column;text-align:center;}
}

/* roulang page: category2 */
:root {
  --primary: #0C4A3B;
  --primary-dark: #072E25;
  --primary-rgb: 12, 74, 59;
  --accent: #C9A24B;
  --accent-dark: #B0842F;
  --accent-rgb: 201, 162, 75;
  --surface: #FFFCF7;
  --bg: #F7F4ED;
  --bg-mute: #EFEAE0;
  --text: #1B1F1A;
  --muted: #6F7570;
  --border: #E4E0D5;
  --white: #FFFFFF;
  --radius: 16px;
  --radius-md: 10px;
  --shadow: 0 4px 16px rgba(28, 43, 35, .07);
  --shadow-hover: 0 14px 30px rgba(28, 43, 35, .12);
  --container: 1200px;
  --nav-height: 56px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

body.no-scroll {
  overflow: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

p {
  margin: 0 0 18px;
}

h1, h2, h3 {
  margin: 0;
  line-height: 1.3;
  font-weight: 700;
}

button, input, textarea {
  font: inherit;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

.section {
  padding: 88px 0;
}

.section-head {
  max-width: 860px;
  margin-bottom: 44px;
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .12em;
  color: var(--accent-dark);
}

.section-kicker::before {
  content: "";
  width: 22px;
  height: 2px;
  background: var(--accent);
  display: inline-block;
  border-radius: 2px;
}

.section-head h2 {
  font-size: clamp(26px, 3vw, 36px);
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.section-head p {
  font-size: 16px;
  color: var(--muted);
  margin: 0;
}

.section-dark {
  background: var(--primary-dark);
  color: #F3EDE1;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 13px 26px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease, box-shadow .25s ease;
  background: transparent;
  color: var(--text);
}

.btn:focus-visible {
  outline: 3px solid rgba(201, 162, 75, .55);
  outline-offset: 3px;
}

.btn-primary {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 18px rgba(var(--primary-rgb), .2);
}

.btn-primary:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(var(--primary-rgb), .25);
}

.btn-outline-light {
  border-color: rgba(255, 255, 255, .75);
  color: #fff;
  background: rgba(255, 255, 255, .06);
  backdrop-filter: blur(4px);
}

.btn-outline-light:hover {
  background: rgba(255, 255, 255, .14);
  border-color: #fff;
  transform: translateY(-2px);
}

.btn-gold {
  background: var(--accent);
  color: #1B2A22;
}

.btn-gold:hover {
  background: #D8B269;
  box-shadow: 0 12px 26px rgba(var(--accent-rgb), .3);
  transform: translateY(-2px);
}

.btn-block {
  width: 100%;
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 252, 247, .96);
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(12, 74, 59, .12);
}

.header-main-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--primary);
  color: var(--accent);
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 6px 16px rgba(var(--primary-rgb), .2);
}

.brand-name {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary-dark);
  letter-spacing: .02em;
}

.header-tools {
  display: flex;
  align-items: center;
  gap: 16px;
}

.header-hotline {
  display: flex;
  flex-direction: column;
  line-height: 1.4;
  text-align: right;
  color: var(--muted);
}

.header-hotline span {
  font-size: 12px;
}

.header-hotline strong {
  font-size: 16px;
  color: var(--primary);
  font-weight: 700;
}

.header-nav {
  background: var(--primary);
  box-shadow: 0 4px 14px rgba(7, 46, 37, .14);
}

.nav-inner {
  display: flex;
  align-items: center;
  min-height: 50px;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}

.nav-inner::-webkit-scrollbar {
  display: none;
}

.nav-link {
  position: relative;
  color: rgba(255, 255, 255, .8);
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  padding: 17px 18px;
  white-space: nowrap;
  transition: color .2s ease, background .2s ease;
}

.nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.nav-link.active {
  color: #fff;
  font-weight: 600;
}

.nav-link.active::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 9px;
  left: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--accent);
}

.nav-toggle {
  display: none;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: var(--primary);
  border-radius: 8px;
  cursor: pointer;
  position: relative;
}

.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
  content: "";
  position: absolute;
  left: 11px;
  width: 18px;
  height: 2px;
  border-radius: 3px;
  background: #fff;
  transition: all .25s ease;
}

.nav-toggle span {
  top: 19px;
}

.nav-toggle span::before {
  top: -6px;
}

.nav-toggle span::after {
  top: 6px;
}

.nav-toggle.active span {
  background: transparent;
}

.nav-toggle.active span::before {
  top: 0;
  transform: rotate(45deg);
}

.nav-toggle.active span::after {
  top: 0;
  transform: rotate(-45deg);
}

/* Hero */
.channel-hero {
  position: relative;
  padding: 100px 0 96px;
  background-image: url("/assets/images/backpic/back-2.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}

.channel-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(6, 36, 29, .95) 12%, rgba(12, 74, 59, .84) 55%, rgba(12, 74, 59, .52));
  z-index: 1;
}

.channel-hero .container {
  position: relative;
  z-index: 2;
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 32px;
  font-size: 14px;
  color: rgba(255, 255, 255, .72);
}

.breadcrumb a {
  color: rgba(255, 255, 255, .86);
  transition: color .2s ease;
}

.breadcrumb a:hover {
  color: var(--accent);
}

.breadcrumb span {
  color: #fff;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border: 1px solid rgba(201, 162, 75, .55);
  border-radius: 30px;
  color: #EFE1BD;
  background: rgba(201, 162, 75, .12);
  font-size: 13px;
  letter-spacing: .08em;
  margin-bottom: 22px;
}

.channel-hero h1 {
  font-size: clamp(34px, 4.8vw, 54px);
  line-height: 1.15;
  color: #fff;
  margin-bottom: 18px;
  letter-spacing: .02em;
}

.channel-hero h1 .hero-sub {
  display: block;
  margin-top: 14px;
  font-size: .5em;
  font-weight: 500;
  color: #D8E8E0;
  letter-spacing: .04em;
}

.channel-hero-lead {
  max-width: 720px;
  font-size: 18px;
  line-height: 1.8;
  color: rgba(255, 255, 255, .86);
  margin-bottom: 28px;
}

.channel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 46px;
}

.channel-actions .btn-primary {
  background: var(--accent);
  color: #1C2D24;
  border-color: var(--accent);
}

.channel-actions .btn-primary:hover {
  background: #DDBA6B;
  border-color: #DDBA6B;
}

.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 860px;
}

.hero-stat {
  padding: 18px 20px;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  backdrop-filter: blur(4px);
}

.hero-stat strong {
  display: block;
  font-size: 22px;
  color: var(--accent);
  margin-bottom: 2px;
}

.hero-stat span {
  font-size: 13px;
  color: rgba(255, 255, 255, .76);
}

/* Intro */
.intro-layout {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  gap: 62px;
}

.intro-copy p {
  color: #4A5149;
}

.intro-copy-list {
  display: grid;
  gap: 14px;
  margin: 24px 0 28px;
}

.intro-copy-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 16px;
  color: #2E342D;
}

.intro-copy-list li::before {
  content: "";
  flex: 0 0 18px;
  height: 18px;
  margin-top: 5px;
  border: 2px solid var(--accent);
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 0 4px var(--bg);
}

.intro-cover {
  position: relative;
}

.cover-panel {
  aspect-ratio: 4 / 4.4;
  border-radius: 22px;
  background-image: linear-gradient(150deg, rgba(12, 74, 59, .12), rgba(12, 74, 59, .5)), url("/assets/images/coverpic/cover-4.webp");
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(12, 74, 59, .15);
  box-shadow: var(--shadow-hover);
}

.cover-tag-card {
  position: absolute;
  left: -14px;
  bottom: 44px;
  max-width: 245px;
  background: rgba(255, 252, 247, .95);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(6px);
}

.cover-tag-card strong {
  color: var(--primary);
  font-size: 16px;
}

.cover-tag-card span {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}

/* Benefits */
.benefit-band {
  background: var(--surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.benefit-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 30px 26px;
  box-shadow: var(--shadow);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position: relative;
}

.benefit-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(var(--accent-rgb), .45);
}

.benefit-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 18px;
}

.benefit-name {
  font-size: 19px;
  color: var(--primary-dark);
  font-weight: 700;
}

.benefit-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent-dark);
  border: 1px solid rgba(var(--accent-rgb), .5);
  border-radius: 30px;
  padding: 3px 11px;
  background: rgba(var(--accent-rgb), .08);
}

.benefit-card p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 14px;
}

.benefit-line {
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--accent), transparent 90%);
  margin-top: 18px;
}

/* Events */
.event-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.event-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform .25s ease, box-shadow .25s ease;
}

.event-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
}

.event-media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  position: relative;
  background: var(--bg-mute);
}

.event-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.event-card:hover .event-media img {
  transform: scale(1.05);
}

.event-status {
  position: absolute;
  top: 14px;
  right: 14px;
  background: rgba(255, 255, 255, .92);
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 600;
  padding: 5px 13px;
  border-radius: 30px;
  backdrop-filter: blur(4px);
}

.event-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.event-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 12px;
}

.event-meta time {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.event-meta .place {
  color: var(--accent-dark);
}

.event-body h3 {
  font-size: 19px;
  color: var(--text);
  margin-bottom: 10px;
  line-height: 1.5;
}

.event-body p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 18px;
}

.event-link {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  font-weight: 600;
  font-size: 15px;
}

.event-link::after {
  content: "→";
  transition: transform .2s ease;
}

.event-link:hover::after {
  transform: translateX(5px);
}

/* Tags */
.tags-panel {
  border: 1px solid var(--border);
  background: linear-gradient(120deg, rgba(12, 74, 59, .04), rgba(201, 162, 75, .06));
  border-radius: 22px;
  padding: 34px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  text-align: center;
}

.tag-link {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  padding: 9px 18px;
  background: rgba(255, 252, 247, .75);
  border: 1px solid var(--border);
  border-radius: 30px;
  color: #3E463E;
  transition: all .2s ease;
}

.tag-link:hover {
  border-color: var(--accent);
  background: var(--primary);
  color: #fff;
  box-shadow: 0 8px 20px rgba(var(--primary-rgb), .18);
}

/* Steps */
.steps-band {
  background: #EFECE3;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.step-card {
  background: rgba(255, 252, 247, .92);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 32px 26px;
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease;
}

.step-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
}

.step-num {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--primary);
  color: var(--accent);
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 22px;
  border: 1px solid rgba(201, 162, 75, .45);
}

.step-card h3 {
  font-size: 18px;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.step-card p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}

/* FAQ */
.faq-wrap {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 64px;
  align-items: start;
}

.faq-side .section-head {
  margin-bottom: 26px;
}

.faq-note {
  background: var(--bg-mute);
  border-radius: 14px;
  padding: 20px 22px;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.8;
}

.faq-note a {
  color: var(--primary);
  font-weight: 600;
  border-bottom: 1px solid rgba(var(--primary-rgb), .3);
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.faq-item {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 16px;
  box-shadow: 0 3px 10px rgba(28, 43, 35, .04);
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.faq-item.open {
  border-color: rgba(var(--primary-rgb), .35);
  box-shadow: var(--shadow);
}

.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 18px 22px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  transition: color .2s ease;
}

.faq-item.open .faq-q {
  color: var(--primary);
}

.faq-icon {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(var(--primary-rgb), .4);
  border-radius: 50%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.faq-icon::before, .faq-icon::after {
  content: "";
  position: absolute;
  background: var(--primary);
  border-radius: 3px;
}

.faq-icon::before {
  width: 12px;
  height: 2px;
}

.faq-icon::after {
  width: 2px;
  height: 12px;
  transition: opacity .2s ease;
}

.faq-item.open .faq-icon::after {
  opacity: 0;
}

.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.faq-item.open .faq-a {
  max-height: 360px;
}

.faq-a-inner {
  padding: 0 22px 20px;
  border-top: 1px dashed var(--border);
  margin-top: 0;
  padding-top: 14px;
}

.faq-a p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  margin: 0;
}

/* Contact */
.contact-wrap {
  position: relative;
  background-image: url("/assets/images/backpic/back-3.png");
  background-size: cover;
  background-position: center;
  padding: 96px 0;
  color: #fff;
}

.contact-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(5, 33, 26, .94), rgba(12, 74, 59, .78) 78%);
  z-index: 1;
}

.contact-wrap .container {
  position: relative;
  z-index: 2;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 68px;
  align-items: center;
}

.contact-copy .section-head {
  margin-bottom: 20px;
}

.contact-copy .section-kicker {
  color: #E6C977;
}

.contact-copy h2 {
  color: #fff;
}

.contact-copy p {
  color: rgba(255, 255, 255, .82);
}

.contact-points {
  display: grid;
  gap: 13px;
  margin-top: 28px;
  color: rgba(255, 255, 255, .85);
  font-size: 15px;
}

.contact-points li {
  display: flex;
  gap: 10px;
}

.contact-points li::before {
  content: "·";
  font-weight: 800;
  color: var(--accent);
}

.contact-form-card {
  background: rgba(255, 252, 247, .97);
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 22px;
  padding: 30px;
  color: var(--text);
  box-shadow: 0 20px 46px rgba(5, 33, 26, .25);
}

.contact-form-card h3 {
  font-size: 22px;
  color: var(--primary-dark);
  margin-bottom: 18px;
}

.form-group {
  margin-bottom: 16px;
}

.form-group label {
  display: block;
  margin-bottom: 7px;
  font-size: 14px;
  font-weight: 600;
  color: #394138;
}

.form-group input,
.form-group textarea {
  width: 100%;
  border: 1px solid #D8D3C6;
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  color: var(--text);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12);
}

.form-group textarea {
  resize: vertical;
  min-height: 84px;
}

.form-tip {
  font-size: 13px;
  color: var(--muted);
  margin-top: 12px;
  text-align: center;
}

.form-message {
  display: none;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 14px;
  text-align: center;
}

.form-message.show {
  display: block;
}

.form-message.success {
  background: #E7F2EA;
  border: 1px solid #A9CBB5;
  color: #0A4A32;
}

.form-message.error {
  background: #FBECEA;
  border: 1px solid #E4B6B0;
  color: #7C2B25;
}

/* Footer */
.site-footer {
  background: #112B22;
  color: #C9D8D1;
  padding-top: 68px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr .9fr 1.1fr;
  gap: 42px;
  padding-bottom: 42px;
}

.footer-brand .brand-name {
  color: #fff;
}

.footer-brand p {
  font-size: 14px;
  line-height: 1.85;
  margin-top: 16px;
  color: #AABBB4;
}

.footer-title {
  font-size: 16px;
  color: #fff;
  font-weight: 600;
  margin-bottom: 16px;
}

.footer-links, .footer-contact {
  display: grid;
  gap: 10px;
}

.footer-links a {
  font-size: 14px;
  color: #AABBB4;
  transition: color .2s ease;
}

.footer-links a:hover {
  color: var(--accent);
}

.footer-contact li {
  font-size: 14px;
  color: #AABBB4;
  line-height: 1.8;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 18px 0;
}

.footer-bottom-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  color: #8FA59C;
  font-size: 13px;
}

.footer-brand .brand-mark {
  background: rgba(255, 255, 255, .1);
  color: var(--accent);
  box-shadow: none;
  border: 1px solid rgba(201, 162, 75, .4);
}

/* Mobile drawer */
@media (max-width: 1023px) {
  .section {
    padding: 64px 0;
  }

  .benefit-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .steps-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .intro-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .faq-wrap {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .cover-panel {
    aspect-ratio: 16 / 10;
  }

  .cover-tag-card {
    left: 16px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 767px) {
  .container {
    padding: 0 16px;
  }

  .section {
    padding: 52px 0;
  }

  .section-head {
    margin-bottom: 30px;
  }

  .header-main-inner {
    min-height: 64px;
  }

  .header-cta {
    display: none;
  }

  .header-hotline {
    display: none;
  }

  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .header-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 14px 26px rgba(0, 0, 0, .16);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }

  .header-nav.open {
    display: block;
  }

  .nav-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: auto;
  }

  .nav-link, .nav-link.active {
    padding: 15px 20px;
    color: var(--text);
    border-bottom: 1px solid var(--border);
  }

  .nav-link:hover {
    background: var(--bg);
    color: var(--primary);
  }

  .nav-link.active {
    background: rgba(var(--primary-rgb), .06);
    color: var(--primary);
  }

  .nav-link.active::after {
    right: auto;
    bottom: auto;
    top: 0;
    left: 0;
    width: 4px;
    height: auto;
    border-radius: 0 3px 3px 0;
    background: var(--accent);
  }

  .header-nav {
    background: #fff;
  }

  .channel-hero {
    padding: 64px 0 56px;
    min-height: auto;
  }

  .channel-hero h1 {
    font-size: 34px;
  }

  .channel-hero-lead {
    font-size: 16px;
  }

  .hero-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .hero-stat {
    padding: 14px 16px;
  }

  .channel-actions .btn {
    width: 100%;
  }

  .benefit-grid {
    grid-template-columns: 1fr;
  }

  .event-grid {
    grid-template-columns: 1fr;
  }

  .steps-grid {
    grid-template-columns: 1fr;
  }

  .tags-panel {
    padding: 22px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-bottom-inner {
    flex-direction: column;
    text-align: center;
  }

  .contact-form-card {
    padding: 22px;
  }

  .contact-wrap {
    padding: 60px 0;
  }

  .faq-side {
    margin-bottom: -10px;
  }

  .btn {
    width: 100%;
  }
}

@media (max-width: 380px) {
  .brand-name {
    font-size: 17px;
  }

  .brand-mark {
    width: 36px;
    height: 36px;
    font-size: 20px;
  }

  .cover-tag-card {
    left: 8px;
    bottom: 16px;
  }
}

/* roulang page: category3 */
:root{
  --primary:#0C4A3B;
  --primary-dark:#07352B;
  --primary-light:#155D4D;
  --accent:#C9A24B;
  --accent-dark:#A9852F;
  --bg:#F7F4EE;
  --surface:#FFFFFF;
  --text:#1B1F1A;
  --muted:#657069;
  --border:#E5E2D8;
  --line:#D8D2C6;
  --radius-lg:16px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow:0 4px 14px rgba(23,38,30,.06);
  --shadow-lg:0 14px 32px rgba(23,38,30,.12);
  --container:1200px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
button,input,select,textarea{font:inherit;color:inherit;}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:0;border-radius:var(--radius-sm);padding:12px 24px;
  font-size:15px;font-weight:600;cursor:pointer;transition:all .25s ease;white-space:nowrap;
}
.btn:focus-visible,.nav-link:focus-visible,a:focus-visible,summary:focus-visible{
  outline:3px solid rgba(201,162,75,.45);outline-offset:2px;
}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 10px 20px rgba(12,74,59,.18);}
.btn-primary:active{transform:translateY(1px);box-shadow:none;}
.btn-gold{background:var(--accent);color:#1C2A22;}
.btn-gold:hover{background:var(--accent-dark);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px rgba(168,133,47,.24);}
.btn-outline-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.62);}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-1px);}
.btn-line{background:transparent;color:var(--primary);border:1px solid var(--primary);}
.btn-line:hover{background:var(--primary);color:#fff;}

/* Header */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--surface);
  box-shadow:0 1px 0 rgba(0,0,0,.04),0 8px 26px rgba(20,40,32,.05);
}
.header-main{border-bottom:1px solid var(--border);background:#fff;}
.header-main-inner{display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:24px;padding-top:10px;padding-bottom:10px;}
.brand{display:inline-flex;align-items:center;gap:10px;}
.brand-mark{
  width:40px;height:40px;flex:0 0 40px;border-radius:10px;
  background:var(--primary);color:#fff;font-size:20px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(12,74,59,.18);
}
.brand-name{font-size:21px;font-weight:800;color:var(--text);letter-spacing:.5px;white-space:nowrap;}
.header-tools{display:flex;align-items:center;gap:16px;}
.header-hotline{display:inline-flex;flex-direction:column;line-height:1.35;padding-right:6px;border-right:1px solid var(--border);margin-right:4px;}
.header-hotline span{font-size:12px;color:var(--muted);}
.header-hotline strong{font-size:16px;color:var(--primary);font-weight:700;letter-spacing:.4px;}
.header-cta{padding:9px 18px;font-size:14px;}
.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;background:#fff;align-items:center;justify-content:center;cursor:pointer;}
.nav-toggle span{position:relative;display:block;width:18px;height:2px;background:var(--primary);transition:background .2s;}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--primary);transition:transform .25s;transform-origin:center;}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}
.nav-toggle.active span{background:transparent;}
.nav-toggle.active span::before{transform:translateY(6px) rotate(45deg);}
.nav-toggle.active span::after{transform:translateY(-6px) rotate(-45deg);}
.header-nav{background:var(--primary);}
.nav-inner{display:flex;align-items:center;flex-wrap:wrap;min-height:50px;}
.nav-link{
  display:inline-block;color:rgba(255,255,255,.82);padding:13px 24px;
  font-size:15px;font-weight:500;line-height:1.2;transition:all .2s;position:relative;
}
.nav-link:first-child{padding-left:0;}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.1);}
.nav-link.active{
  color:#fff;background:var(--accent);font-weight:600;
  box-shadow:inset 0 -3px 0 var(--accent-dark);
}

/* Category Hero */
.category-hero{
  background:linear-gradient(96deg,rgba(4,32,25,.92) 0%,rgba(10,66,52,.78) 100%),url('/assets/images/backpic/back-1.png') center/cover no-repeat;
  color:#fff;padding:74px 0 88px;position:relative;overflow:hidden;
}
.category-hero::after{
  content:"";position:absolute;right:-80px;top:-100px;width:430px;height:430px;
  border:1px solid rgba(255,255,255,.16);border-radius:50%;
}
.category-hero::before{
  content:"";position:absolute;right:-30px;top:-60px;width:290px;height:290px;
  border:1px solid rgba(201,162,75,.4);border-radius:50%;
}
.hero-category{position:relative;z-index:1;}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:rgba(255,255,255,.68);margin-bottom:28px;}
.breadcrumb a{color:rgba(255,255,255,.82);transition:color .2s;}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb span{color:rgba(255,255,255,.45);}
.category-hero h1{font-size:42px;line-height:1.25;letter-spacing:.5px;font-weight:800;margin-bottom:18px;}
.hero-lead{font-size:17px;line-height:1.8;color:rgba(255,255,255,.88);max-width:840px;margin-bottom:32px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:46px;}
.hero-points{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:880px;
  border-top:1px solid rgba(255,255,255,.18);padding-top:28px;
}
.hero-point strong{display:block;font-size:16px;color:var(--accent);margin-bottom:6px;font-weight:700;}
.hero-point span{font-size:14px;color:rgba(255,255,255,.75);line-height:1.6;display:block;}

/* Sections */
.section{padding:84px 0;}
.section-tint{background:#F0ECE3;}
.section-white{background:#fff;}
.section-head{max-width:760px;margin-bottom:46px;}
.eyebrow{display:inline-block;color:var(--accent-dark);font-weight:700;letter-spacing:2px;font-size:13px;text-transform:uppercase;margin-bottom:12px;}
.section-head h2{font-size:30px;line-height:1.35;font-weight:800;color:var(--text);}
.section-head p{color:var(--muted);font-size:16px;line-height:1.8;margin-top:14px;}

/* Feature Cards */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.feature-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:28px 24px;position:relative;transition:all .25s ease;overflow:hidden;
}
.feature-card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s ease;
}
.feature-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:#d8cfc2;}
.feature-card:hover::before{transform:scaleX(1);}
.feature-index{
  display:inline-flex;width:42px;height:42px;border-radius:10px;background:rgba(12,74,59,.08);
  color:var(--primary);font-weight:800;font-size:17px;align-items:center;justify-content:center;margin-bottom:20px;
}
.feature-card:nth-child(2) .feature-index{background:rgba(201,162,75,.16);color:var(--accent-dark);}
.feature-card h3{font-size:18px;font-weight:700;color:var(--text);margin-bottom:10px;}
.feature-card p{font-size:14px;line-height:1.75;color:var(--muted);}

/* Split */
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.split-media{position:relative;}
.split-media::before{
  content:"";position:absolute;width:70%;height:80%;top:14px;left:16px;
  background:var(--primary);border-radius:var(--radius-lg);opacity:.08;
}
.split-media img{
  position:relative;z-index:1;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}
.split-content .eyebrow{margin-bottom:8px;}
.split-content h2{font-size:28px;font-weight:800;line-height:1.35;margin-bottom:16px;}
.split-content>p{color:var(--muted);margin-bottom:24px;font-size:16px;}
.check-list{display:grid;gap:14px;margin-top:8px;}
.check-list li{
  position:relative;padding-left:32px;color:#343A34;font-size:15px;line-height:1.6;
}
.check-list li::before{
  content:"✓";position:absolute;left:0;top:1px;
  width:20px;height:20px;border-radius:6px;background:rgba(201,162,75,.18);color:var(--accent-dark);
  font-size:13px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;
}

/* Plans modes */
.mode-list{display:grid;gap:18px;}
.mode-row{
  display:grid;grid-template-columns:90px 1fr auto;gap:28px;align-items:start;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:26px 28px;transition:all .25s ease;position:relative;
}
.mode-row:hover{box-shadow:var(--shadow-lg);border-color:#d8cfc2;transform:translateY(-2px);}
.mode-index{font-size:30px;font-weight:800;color:transparent;-webkit-text-stroke:1px var(--accent);line-height:1;}
.mode-row h3{font-size:19px;font-weight:700;color:var(--text);margin-bottom:8px;}
.mode-row p{color:var(--muted);font-size:15px;line-height:1.75;max-width:760px;}
.mode-tag{
  display:inline-block;background:rgba(201,162,75,.15);color:var(--accent-dark);
  font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;white-space:nowrap;
  align-self:center;
}

/* Audience */
.audience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.audience-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:26px 22px;transition:all .25s ease;
}
.audience-card:hover{box-shadow:var(--shadow-lg);background:#fff;}
.audience-card h3{font-size:17px;font-weight:700;margin:14px 0 8px;color:var(--text);}
.audience-card p{font-size:13.5px;color:var(--muted);line-height:1.7;}
.audience-label{font-size:12px;font-weight:700;color:var(--accent-dark);letter-spacing:.5px;}

/* Procedure */
.procedure-section{
  background:linear-gradient(135deg,#07352B 0%,#0C4A3B 100%);color:#fff;position:relative;overflow:hidden;
}
.procedure-section::after{
  content:"";position:absolute;right:-60px;bottom:-120px;width:360px;height:360px;border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
}
.procedure-wrap{position:relative;z-index:1;}
.section-head-light h2{color:#fff;}
.section-head-light .eyebrow{color:var(--accent);}
.section-head-light p{color:rgba(255,255,255,.72);}
.procedure-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}
.procedure-step{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(4px);
  padding:26px 22px;border-radius:var(--radius-lg);min-height:210px;transition:all .3s ease;position:relative;
}
.procedure-step:hover{background:rgba(255,255,255,.11);transform:translateY(-4px);}
.procedure-step .step-num{font-size:14px;font-weight:800;color:var(--accent);letter-spacing:1px;margin-bottom:26px;}
.procedure-step h3{font-size:18px;font-weight:700;margin-bottom:10px;}
.procedure-step p{font-size:13.5px;color:rgba(255,255,255,.75);line-height:1.7;}

/* Contact */
.contact-section{background:#F0ECE3;}
.contact-card{
  display:grid;grid-template-columns:1fr 1fr;gap:54px;background:var(--surface);
  border-radius:22px;box-shadow:var(--shadow);overflow:hidden;
}
.contact-intro{padding:50px 0 50px 50px;}
.contact-intro h2{font-size:28px;font-weight:800;line-height:1.4;margin-bottom:16px;}
.contact-intro>p{color:var(--muted);margin-bottom:28px;font-size:15px;}
.contact-tips{display:grid;gap:18px;}
.contact-tips li{display:flex;gap:14px;align-items:flex-start;}
.contact-tips .tip-icon{
  flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:rgba(12,74,59,.1);
  color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:17px;
}
.contact-tips h3{font-size:15px;font-weight:700;margin-bottom:2px;}
.contact-tips p{font-size:13.5px;color:var(--muted);line-height:1.6;}
.contact-form-panel{padding:50px 50px 50px 0;}
.form-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:var(--shadow);}
.form-card h3{font-size:19px;font-weight:700;margin-bottom:6px;}
.form-card>p{font-size:13.5px;color:var(--muted);margin-bottom:24px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field-full{grid-column:1/-1;}
.form-field label{display:block;font-size:14px;font-weight:600;margin-bottom:7px;color:#2B302B;}
.form-field label span{color:#B54A3D;}
.form-field input,.form-field select,.form-field textarea{
  width:100%;border:1px solid #D8D4CA;border-radius:10px;
  background:#FBFCFB;padding:11px 14px;font-size:15px;color:var(--text);
  transition:border-color .2s,box-shadow .2s;outline:none;
}
.form-field textarea{min-height:90px;resize:vertical;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(12,74,59,.1);background:#fff;
}
.form-submit{width:100%;margin-top:8px;font-size:16px;padding:14px 0;}
.form-note{font-size:12px;color:#8A8E88;margin-top:14px;text-align:center;}

/* FAQ */
.faq-wrap{max-width:820px;margin:0 auto;}
.faq-head{max-width:760px;margin:0 auto 42px;text-align:center;}
.faq-head .eyebrow{display:inline-block;}
.faq-head h2{font-size:30px;font-weight:800;}
.faq-list{display:grid;gap:14px;}
.faq-item{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  transition:box-shadow .25s ease;
}
.faq-item[open]{box-shadow:var(--shadow);border-color:#D6CCB5;}
.faq-item summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:19px 24px;font-size:16px;font-weight:600;color:#242A24;cursor:pointer;transition:color .2s;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";flex:0 0 28px;width:28px;height:28px;border-radius:50%;
  background:rgba(201,162,75,.16);color:var(--accent-dark);font-size:20px;font-weight:400;
  display:inline-flex;align-items:center;justify-content:center;transition:transform .3s ease,background .2s;
}
.faq-item[open] summary{color:var(--primary);}
.faq-item[open] summary::after{transform:rotate(45deg);background:var(--accent);color:#fff;}
.faq-answer{padding:0 24px 20px;font-size:14.5px;color:var(--muted);line-height:1.8;border-top:1px dashed var(--border);margin:0 24px 0;padding:16px 0 20px;}
.faq-final{text-align:center;margin-top:36px;background:#F0ECE3;border-radius:16px;padding:30px 24px;}
.faq-final h3{font-size:18px;font-weight:700;margin-bottom:12px;}
.faq-final .btn{margin-top:10px;}

/* Footer */
.site-footer{background:#062E25;color:rgba(255,255,255,.76);margin-top:0;}
.site-footer .container{padding-top:66px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:46px;}
.footer-brand .brand{margin-bottom:20px;}
.footer-brand .brand-name{color:#fff;}
.footer-brand .brand-mark{background:var(--accent);color:#1F2C24;}
.footer-brand p{font-size:14px;line-height:1.85;color:rgba(255,255,255,.62);max-width:320px;}
.footer-title{font-size:16px;font-weight:700;color:#fff;margin-bottom:18px;padding-top:2px;}
.footer-links,.footer-contact{display:grid;gap:12px;}
.footer-links a{color:rgba(255,255,255,.66);font-size:14px;transition:color .2s,padding-left .2s;}
.footer-links a:hover{color:var(--accent);padding-left:4px;}
.footer-contact li{font-size:14px;color:rgba(255,255,255,.66);line-height:1.7;padding-left:2px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);}
.footer-bottom-inner{
  display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:center;padding-top:20px;padding-bottom:22px;
  font-size:13px;color:rgba(255,255,255,.48);
}

/* Scroll top */
.back-top{
  position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;
  background:var(--primary);color:#fff;border:0;box-shadow:var(--shadow-lg);font-size:20px;z-index:90;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:transform .2s,background .2s;opacity:.9;
}
.back-top:hover{transform:translateY(-4px);background:var(--primary-dark);opacity:1;}

@media (max-width:1023px){
  .nav-link{padding:13px 18px;}
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .procedure-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-grid{grid-template-columns:1fr 1fr;gap:34px;}
  .contact-card{grid-template-columns:1fr;gap:0;}
  .contact-intro{padding:40px 40px 30px;}
  .contact-form-panel{padding:10px 40px 40px;}
  .header-cta{display:none;}
}
@media (max-width:767px){
  .section{padding:58px 0;}
  .category-hero{padding:58px 0 64px;}
  .container{padding:0 18px;}
  .header-main-inner{min-height:62px;}
  .brand-name{font-size:17px;white-space:normal;}
  .brand-mark{width:36px;height:36px;flex-basis:36px;font-size:18px;}
  .header-hotline{display:none;}
  .nav-toggle{display:inline-flex;}
  .header-nav{display:none;background:var(--primary-dark);}
  .site-header.nav-open .header-nav{display:block;}
  .nav-inner{flex-direction:column;align-items:stretch;padding:10px 0 14px;gap:2px;}
  .nav-link{display:block;padding:12px 8px;color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.08);}
  .nav-link:first-child{padding-left:8px;}
  .nav-link.active{background:transparent;color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);}
  .category-hero h1{font-size:30px;}
  .hero-lead{font-size:15px;margin-bottom:26px;}
  .hero-points{grid-template-columns:1fr;gap:18px;}
  .feature-grid{grid-template-columns:1fr;}
  .section-head h2,.contact-intro h2,.faq-head h2{font-size:25px;}
  .split-grid{grid-template-columns:1fr;gap:40px;}
  .mode-row{grid-template-columns:1fr;gap:14px;padding:22px;}
  .mode-index{font-size:26px;}
  .mode-tag{width:max-content;}
  .audience-grid{grid-template-columns:1fr;}
  .procedure-grid{grid-template-columns:1fr;}
  .procedure-step{min-height:0;}
  .contact-intro{padding:30px 22px 20px;}
  .contact-form-panel{padding:14px 22px 30px;}
  .form-card{padding:22px 20px;}
  .form-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:30px;}
  .footer-bottom-inner{justify-content:flex-start;}
}

/* roulang page: category4 */
:root {
  --primary: #0C4A3B;
  --primary-deep: #073229;
  --primary-soft: rgba(12, 74, 59, .09);
  --accent: #C9A24B;
  --accent-light: #DDBF73;
  --accent-soft: rgba(201, 162, 75, .16);
  --bg: #F6F4EF;
  --bg-deep: #102A24;
  --surface: #FFFFFF;
  --text: #1B211B;
  --text-body: #414A42;
  --text-weak: #707870;
  --line: rgba(12, 74, 59, .14);
  --line-strong: rgba(12, 74, 59, .26);
  --radius: 14px;
  --radius-md: 10px;
  --radius-lg: 20px;
  --shadow: 0 6px 18px rgba(14, 47, 36, .08);
  --shadow-hover: 0 16px 36px rgba(14, 47, 36, .13);
  --space-section: 84px;
  --font-stack: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--font-stack);
  font-size: 16px;
  line-height: 1.7;
  color: var(--text-body);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
body.lock {
  overflow: hidden;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}
ul, ol {
  list-style: none;
}
button, input, textarea {
  font: inherit;
  border: none;
  outline: none;
  background: none;
}
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
.section {
  padding: var(--space-section) 0;
}
.section-head {
  max-width: 760px;
  margin-bottom: 44px;
}
.section-head.center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.section-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--primary);
  background: var(--primary-soft);
  border: 1px solid rgba(12, 74, 59, .1);
  padding: 5px 14px;
  border-radius: 40px;
  margin-bottom: 16px;
}
.section-tag::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
}
.section-title {
  font-size: 32px;
  line-height: 1.4;
  color: var(--text);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.section-sub {
  margin-top: 14px;
  font-size: 16px;
  color: var(--text-weak);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background .25s, color .25s, box-shadow .25s, transform .2s;
  border: 1px solid transparent;
  white-space: nowrap;
}
.btn:focus-visible {
  outline: 3px solid rgba(201, 162, 75, .5);
  outline-offset: 2px;
}
.btn-primary {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 16px rgba(12, 74, 59, .2);
}
.btn-primary:hover {
  background: #0E5B49;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(12, 74, 59, .26);
}
.btn-primary:active {
  transform: translateY(0);
  background: var(--primary-deep);
}
.btn-accent {
  background: var(--accent);
  color: #1A2C24;
  box-shadow: 0 6px 16px rgba(201, 162, 75, .2);
}
.btn-accent:hover {
  background: var(--accent-light);
  transform: translateY(-2px);
}
.btn-accent:active {
  transform: translateY(0);
  background: #B28D3E;
}
.btn-ghost {
  border: 1px solid rgba(255, 255, 255, .6);
  color: #fff;
  background: rgba(255, 255, 255, .08);
}
.btn-ghost:hover {
  background: rgba(255, 255, 255, .18);
  border-color: #fff;
}
.btn-light {
  background: #fff;
  color: var(--primary);
  border: 1px solid var(--line-strong);
}
.btn-light:hover {
  background: var(--primary-soft);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 2px 10px rgba(12, 74, 59, .06);
}
.header-main-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 68px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: var(--primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 22px;
  box-shadow: 0 4px 10px rgba(12, 74, 59, .18);
}
.brand-name {
  font-size: 19px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: .01em;
  line-height: 1.3;
}
.brand-desc {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--text-weak);
  letter-spacing: .12em;
}
.header-tools {
  display: flex;
  align-items: center;
  gap: 18px;
}
.header-hotline {
  display: flex;
  flex-direction: column;
  line-height: 1.4;
  text-align: right;
  border-left: 1px solid var(--line);
  padding-left: 16px;
}
.header-hotline span {
  font-size: 12px;
  color: var(--text-weak);
}
.header-hotline strong {
  font-size: 17px;
  font-weight: 700;
  color: var(--primary);
}
.header-cta {
  padding: 10px 18px;
  font-size: 14px;
}
.nav-toggle {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  border: 1px solid var(--line);
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
  content: "";
  width: 20px;
  height: 2px;
  background: var(--primary);
  display: block;
  position: relative;
  border-radius: 2px;
  transition: transform .3s, background .3s;
}
.nav-toggle span::before {
  position: absolute;
  top: -6px;
  left: 0;
}
.nav-toggle span::after {
  position: absolute;
  top: 6px;
  left: 0;
}
.nav-toggle.open span {
  background: transparent;
}
.nav-toggle.open span::before {
  top: 0;
  transform: rotate(45deg);
}
.nav-toggle.open span::after {
  top: 0;
  transform: rotate(-45deg);
}
.header-nav {
  background: var(--primary);
  border-top: 1px solid rgba(255, 255, 255, .06);
}
.nav-inner {
  display: flex;
  align-items: center;
  column-gap: 8px;
  min-height: 48px;
}
.nav-link {
  position: relative;
  color: rgba(255, 255, 255, .82);
  font-size: 15px;
  font-weight: 500;
  padding: 12px 16px;
  display: inline-flex;
  align-items: center;
  transition: color .2s, background .2s;
}
.nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}
.nav-link.active {
  color: #fff;
  font-weight: 600;
}
.nav-link.active::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 7px;
  height: 3px;
  border-radius: 3px;
  background: var(--accent);
}
@media (max-width: 920px) {
  .header-hotline {
    display: none;
  }
}
@media (max-width: 767px) {
  .header-main-inner {
    min-height: 60px;
  }
  .brand-name {
    font-size: 16px;
  }
  .brand-mark {
    width: 38px;
    height: 38px;
    font-size: 19px;
  }
  .button .btText {
    font-size: 13px;
    white-space: normal;
    line-height: 30px;
  }
  .header-cta {
    display: none;
  }
  .nav-toggle {
    display: flex;
  }
  .header-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--primary);
    box-shadow: 0 20px 40px rgba(0, 0, 0, .16);
    max-height: 90vh;
    overflow-y: auto;
  }
  .header-nav.open {
    display: block;
  }
  .nav-inner {
    flex-direction: column;
    align-items: stretch;
    padding: 10px 0;
    gap: 2px;
  }
  .nav-link {
    padding: 13px 18px;
    color: rgba(255, 255, 255, .9);
  }
  .nav-link:hover{
    background: rgba(255,255,255,.08);
    color:#fff;
  }
  .nav-link.active {
    background: rgba(255, 255, 255, .08);
    color: #fff;
  }
  .nav-link.active::after {
    right: auto;
    left: 18px;
    top: 50%;
    bottom: auto;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: var(--accent);
  }
}

.page-banner {
  position: relative;
  min-height: 360px;
  display: flex;
  align-items: center;
  background: linear-gradient(120deg, rgba(6, 32, 27, .92), rgba(12, 74, 59, .78)), url('/assets/images/backpic/back-2.webp') center/cover no-repeat;
  color: #fff;
  padding: 64px 0;
  overflow: hidden;
}
.banner-pattern {
  position: absolute;
  width: 460px;
  height: 460px;
  right: -120px;
  top: -120px;
  border: 1px solid rgba(201, 162, 75, .22);
  border-radius: 50%;
}
.banner-pattern::after {
  content: "";
  position: absolute;
  inset: 60px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 50%;
}
.banner-content {
  position: relative;
  z-index: 2;
  max-width: 820px;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, .68);
  margin-bottom: 22px;
}
.breadcrumb a {
  color: rgba(255, 255, 255, .82);
  transition: color .2s;
}
.breadcrumb a:hover {
  color: var(--accent-light);
}
.banner-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--accent-light);
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(201, 162, 75, .3);
  padding: 6px 14px;
  border-radius: 40px;
  margin-bottom: 20px;
}
.banner-eyebrow .dot {
  width: 6px;
  height: 6px;
  background: var(--accent);
  border-radius: 50%;
  display: inline-block;
}
.page-banner h1 {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  letter-spacing: .01em;
}
.banner-lead {
  font-size: 17px;
  color: rgba(255, 255, 255, .82);
  max-width: 680px;
  margin-top: 16px;
  line-height: 1.8;
}
.banner-stats {
  display: flex;
  gap: 36px;
  margin-top: 32px;
}
.banner-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-left: 2px solid var(--accent);
  padding-left: 14px;
}
.banner-stat b {
  font-size: 22px;
  color: #fff;
}
.banner-stat span {
  font-size: 13px;
  color: rgba(255, 255, 255, .7);
}
@media (max-width: 767px) {
  .page-banner {
    min-height: 0;
    padding: 48px 0;
  }
  .page-banner h1 {
    font-size: 28px;
  }
  .banner-lead {
    font-size: 15px;
  }
  .banner-stats {
    flex-wrap: wrap;
    gap: 18px 24px;
  }
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  margin-top: 36px;
}
.intro-block {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 28px;
  box-shadow: var(--shadow);
}
.intro-block .icon-node {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: 22px;
  margin-bottom: 16px;
}
.intro-block h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}
.intro-block p {
  font-size: 15px;
  line-height: 1.9;
  color: var(--text-body);
}
@media (max-width: 767px) {
  .intro-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.secure-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.secure-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform .3s, box-shadow .3s;
  display: flex;
  flex-direction: column;
}
.secure-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-hover);
}
.card-media {
  aspect-ratio: 4 / 3;
  background: #e4e8e2;
  overflow: hidden;
  position: relative;
}
.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.secure-card-body {
  padding: 22px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.secure-index {
  font-size: 12px;
  font-weight: 800;
  color: var(--accent);
  letter-spacing: .1em;
  margin-bottom: 8px;
}
.secure-card h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
}
.secure-card p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--text-weak);
}
.card-link-more {
  margin-top: auto;
  padding-top: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color .2s, gap .2s;
}
.card-link-more:hover {
  color: var(--accent);
  gap: 10px;
}
@media (max-width: 1023px) {
  .secure-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .secure-cards {
    grid-template-columns: 1fr;
  }
}

.metrics-band {
  background: linear-gradient(135deg, var(--primary-deep), var(--primary));
  padding: 50px 0;
}
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  text-align: center;
}
.metric-card {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--radius);
  padding: 28px 24px;
  color: #fff;
  transition: background .3s;
}
.metric-card:hover {
  background: rgba(255, 255, 255, .13);
}
.metric-num {
  font-size: 30px;
  font-weight: 800;
  color: var(--accent-light);
  letter-spacing: .02em;
}
.metric-label {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, .92);
}
.metric-desc {
  margin-top: 4px;
  font-size: 13px;
  color: rgba(255, 255, 255, .58);
}
@media (max-width: 767px) {
  .metrics-grid {
    grid-template-columns: 1fr;
  }
}

.rules-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  counter-reset: steps;
}
.rule-step {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px 22px;
  transition: border-color .3s, transform .3s;
  position: relative;
}
.rule-step::before {
  counter-increment: steps;
  content: "0" counter(steps);
  font-size: 26px;
  font-weight: 800;
  color: var(--primary-soft);
  line-height: 1;
  display: block;
  margin-bottom: 14px;
}
.rule-step:hover {
  border-color: var(--accent);
  transform: translateY(-4px);
}
.rule-step h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}
.rule-step p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--text-weak);
}
.rule-step .step-time {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 20px;
  padding: 3px 12px;
  margin-top: 12px;
}
@media (max-width: 1023px) {
  .rules-steps {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .rules-steps {
    grid-template-columns: 1fr;
  }
}

.protocol-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 28px;
  align-items: start;
}
.protocol-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 30px;
  box-shadow: var(--shadow);
}
.protocol-panel h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  color: var(--text);
  margin-bottom: 18px;
}
.protocol-panel h3::before {
  content: "";
  width: 7px;
  height: 7px;
  background: var(--accent);
  border-radius: 2px;
}
.protocol-list li {
  display: flex;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px dashed rgba(12, 74, 59, .12);
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-body);
}
.protocol-list li:last-child {
  border-bottom: none;
}
.protocol-list li::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: none;
  border-radius: 50%;
  background: var(--primary-soft);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
}
.protocol-list li:hover {
  color: var(--text);
}
@media (max-width: 920px) {
  .protocol-grid {
    grid-template-columns: 1fr;
  }
}

.topic-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 28px;
}
.topic-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--primary);
  padding: 12px 24px;
  border-radius: 40px;
  font-size: 15px;
  font-weight: 600;
  transition: all .3s;
  box-shadow: 0 2px 4px rgba(0,0,0,.03);
}
.topic-tag::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
}
.topic-tag:hover {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(12, 74, 59, .16);
}
.topic-tag.current-tag {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}

.cta-band {
  background: linear-gradient(105deg, var(--primary-deep), var(--primary) 70%), url('/assets/images/backpic/back-3.png') center/cover no-repeat;
  padding: 64px 0;
  color: #fff;
  text-align: center;
}
.cta-band .cta-inner {
  max-width: 670px;
  margin: 0 auto;
}
.cta-band h2 {
  font-size: 32px;
  line-height: 1.45;
  color: #fff;
}
.cta-band p {
  color: rgba(255, 255, 255, .78);
  margin: 14px 0 28px;
  font-size: 16px;
}
.cta-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  .cta-band h2 {
    font-size: 26px;
  }
}

.faq-wrap {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 48px;
  align-items: start;
}
.faq-title-block .faq-help {
  border-top: 1px solid var(--line);
  margin-top: 26px;
  padding-top: 20px;
  font-size: 14px;
  color: var(--text-weak);
  line-height: 1.9;
}
.faq-title-block .faq-help a {
  color: var(--primary);
  font-weight: 600;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.faq-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 4px 0;
  transition: border-color .2s, box-shadow .2s;
}
.faq-item[open] {
  border-color: var(--line-strong);
  box-shadow: var(--shadow);
}
.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 22px;
  cursor: pointer;
  user-select: none;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.4;
}
.faq-q::-webkit-details-marker {
  display: none;
}
.faq-q .faq-icon {
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: transform .3s, border-color .3s;
}
.faq-q .faq-icon::before,
.faq-q .faq-icon::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 1.5px;
  background: var(--primary);
  border-radius: 2px;
}
.faq-q .faq-icon::after {
  transform: rotate(90deg);
}
.faq-item[open] .faq-q {
  color: var(--primary);
}
.faq-item[open] .faq-q .faq-icon {
  transform: rotate(45deg);
  border-color: var(--accent);
}
.faq-item[open] .faq-q .faq-icon::before {
  background: var(--accent);
}
.faq-item[open] .faq-q .faq-icon::after {
  background: var(--accent);
}
.faq-a {
  padding: 0 22px 18px;
  font-size: 14px;
  line-height: 1.82;
  color: var(--text-body);
  max-width: 640px;
}
@media (max-width: 920px) {
  .faq-wrap {
    grid-template-columns: 1fr;
  }
}

.site-footer {
  background: #0A241E;
  color: rgba(255, 255, 255, .72);
  margin-top: 0;
}
.site-footer .brand {
  margin-bottom: 16px;
}
.site-footer .brand-name {
  color: #fff;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 40px;
  padding: 60px 0 42px;
}
.footer-brand p {
  font-size: 14px;
  line-height: 1.9;
  color: rgba(255, 255, 255, .62);
  max-width: 310px;
}
.footer-title {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 16px;
}
.footer-links li,
.footer-contact li {
  margin-bottom: 10px;
}
.footer-links a {
  font-size: 14px;
  color: rgba(255, 255, 255, .68);
  transition: color .2s;
}
.footer-links a:hover {
  color: var(--accent-light);
}
.footer-contact li {
  font-size: 14px;
  color: rgba(255, 255, 255, .68);
  line-height: 1.8;
}
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 18px 0;
}
.footer-bottom-inner {
  display: flex;
  gap: 14px 28px;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 13px;
  color: rgba(255, 255, 255, .46);
}
.footer-bottom-inner a {
  color: rgba(255, 255, 255, .5);
}
.footer-bottom-inner a:hover {
  color: var(--accent-light);
}
@media (max-width: 920px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }
}
@media (max-width: 600px) {
  .footer-grid {
    grid-template-columns: 1fr;
  }
}

.backtop {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(12, 74, 59, .9);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 80;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .3s, transform .3s, visibility .3s, background .3s;
}
.backtop.show {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.backtop:hover {
  background: var(--accent);
  color: #1B2A24;
}
@media (max-width: 600px) {
  .backtop {
    right: 16px;
    bottom: 16px;
  }
}

.flow-line {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
  margin-top: 46px;
}
.flow-line::before {
  content: "";
  position: absolute;
  top: 34px;
  left: 9%;
  right: 9%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), var(--accent), transparent);
}
.flow-node {
  position: relative;
  text-align: center;
  background: transparent;
  padding: 0 8px;
}
.flow-node .node-circle {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  background: var(--surface);
  color: var(--primary);
  font-size: 22px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  position: relative;
  box-shadow: 0 0 0 8px var(--bg);
}
.flow-node h4 {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}
.flow-node p {
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-weak);
}
@media (max-width: 920px) {
  .flow-line {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .flow-line::before {
    display: none;
  }
}

.guide-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 24px;
  margin-top: 24px;
}
.guide-list li {
  position: relative;
  padding-left: 26px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-body);
}
.guide-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 7px;
  height: 7px;
  background: var(--accent);
  border-radius: 2px;
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .guide-list {
    grid-template-columns: 1fr;
  }
}
