/* ========================================
   益露梵晨 - 公益机构官网样式
   配色方案（参照 Logo）：深绿 #1a5c3a | 橙色 #e8913a | 米黄 #fff8e7
   适配：桌面 / 平板 / 手机 全断点响应式
   ======================================== */

/* 本地字体：Noto Sans/Serif SC 子集（GB2312 常用字 + 全站用字），不依赖外部 CDN
   400 / 700 各用独立字形文件，标题与强调文字是"真粗"，
   不再让浏览器在 400 字形上合成假粗（小字发糊、笔画粘连的主要原因） */
@font-face {
    font-family: 'Noto Sans SC';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/noto-sans-400.woff2') format('woff2');
}

@font-face {
    font-family: 'Noto Sans SC';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/noto-sans-700.woff2') format('woff2');
}

@font-face {
    font-family: 'Noto Serif SC';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/noto-serif-400.woff2') format('woff2');
}

@font-face {
    font-family: 'Noto Serif SC';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/noto-serif-700.woff2') format('woff2');
}

:root {
    /* 主色调 - 来自 Logo */
    --color-primary: #1a5c3a;
    --color-primary-light: #2d8659;
    --color-primary-dark: #0f3d26;
    --color-primary-rgb: 26, 92, 58;

    /* 辅助色 - 橙色 */
    --color-accent: #e8913a;
    --color-accent-light: #f5a623;
    --color-accent-lighter: #ffd280;
    --color-accent-dark: #c77d20;

    /* 背景色 */
    --color-bg-warm: #fff8e7;
    --color-bg-cream: #fef3d8;
    --color-bg-white: #ffffff;
    --color-bg-light: #f9f5ed;

    /* 文字色 —— 全部经 WCAG 对比度校验（相对米黄底 #fff8e7 / 白底） */
    --color-text: #1f2b26;        /* 正文·标题  13.9:1 */
    --color-text-light: #47574e;  /* 段落正文    7.2:1 */
    --color-text-muted: #5f6f66;  /* 辅助说明    5.0:1 */
    --color-text-placeholder: #7c8b82;
    --color-text-white: #ffffff;

    /* 页脚（深绿底 #0f3d26）文字色 */
    --color-footer-text: #cfe0d5;  /* 8.9:1 */
    --color-footer-muted: #a9bfb3; /* 6.4:1 */

    /* 字号阶梯（1rem = 16px） */
    --fs-2xs: 0.75rem;    /* 12px 极小标记 */
    --fs-xs: 0.8125rem;   /* 13px 元信息 */
    --fs-sm: 0.875rem;    /* 14px 辅助正文 */
    --fs-base: 0.9375rem; /* 15px 正文 */
    --fs-md: 1rem;        /* 16px 强调正文 */
    --fs-lg: 1.125rem;    /* 18px 小标题 */
    --fs-xl: 1.375rem;    /* 22px 卡片标题 */
    --fs-2xl: 1.75rem;    /* 28px 区块标题 */
    --fs-3xl: 2.25rem;    /* 36px 大标题 */

    /* 行高 */
    --lh-tight: 1.25;
    --lh-snug: 1.45;
    --lh-base: 1.75;
    --lh-relaxed: 1.95;

    /* 中文段落每行字数上限（约 34 字，阅读舒适区） */
    --measure: 34em;

    /* 功能色 */
    --color-success: #27ae60;
    --color-error: #e74c3c;
    --color-border: #e6dbcb;

    /* 间距 */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
    --spacing-3xl: 4rem;

    /* 圆角 */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-xl: 20px;
    --radius-2xl: 28px;
    --radius-full: 50%;

    /* 阴影 */
    --shadow-sm: 0 2px 10px rgba(26, 92, 58, 0.06);
    --shadow-md: 0 8px 28px rgba(26, 92, 58, 0.09);
    --shadow-lg: 0 18px 48px rgba(26, 92, 58, 0.14);
    --shadow-primary: 0 10px 26px rgba(var(--color-primary-rgb), 0.24);

    /* 字体 */
    --font-serif: 'Noto Serif SC', 'Songti SC', 'STSong', serif;
    --font-sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', 'Segoe UI', sans-serif;

    /* 过渡 */
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    /* 导航高度 */
    --nav-height: 70px;

    /* 内容容器 */
    --container-max: 1200px;
    --gutter: clamp(16px, 4vw, 24px);
}

/* ========================================
   Reset & Base
   ======================================== */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-family: var(--font-sans);
    color: var(--color-text);
    background-color: var(--color-bg-white);
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    letter-spacing: 0.02em;      /* 中文正文轻微加距，避免字挤在一起 */
    font-synthesis: none;        /* 禁止合成假粗／假斜，配合 400+700 两套真字形 */
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
}

/* 中文排版基础规则
   balance：短标题行宽均衡，避免末行只剩一两个字
   pretty ：段落末行不留孤字
   strict ：标点不出现在行首 */
h1, h2, h3, h4 {
    line-break: strict;
    text-wrap: balance;
    letter-spacing: 0.02em;
}

p, li {
    line-break: strict;
    text-wrap: pretty;
    overflow-wrap: break-word;
}

/* 语义分句：每一句独占一行，断行位置由文案结构决定，
   而不是交给浏览器随机折行（杜绝“区。”这类孤字行） */
.clause {
    display: block;
}

/* 仅在窄屏才换行的分句（桌面保持单行） */
.clause-sm {
    display: inline;
}

/* 移动端菜单展开时锁定页面滚动 */
body.nav-open {
    overflow: hidden;
}

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

ul { list-style: none; }

button { font-family: inherit; }

/* 键盘聚焦可见性 */
:focus-visible {
    outline: 3px solid rgba(232, 145, 58, 0.6);
    outline-offset: 3px;
    border-radius: 4px;
}

/* 锚点跳转时避开固定导航 */
section[id] {
    scroll-margin-top: calc(var(--nav-height) + 12px);
}

.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--gutter);
}

.section {
    /* 参考恩派：区块上下留白用 9vw 节奏，紧凑端 72 / 宽松端 128 */
    padding: clamp(72px, 9vw, 128px) 0;
}

/* ========================================
   导航栏
   ======================================== */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255, 248, 231, 0.92);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid transparent;
    transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.navbar.scrolled {
    background: rgba(255, 248, 231, 0.98);
    border-bottom-color: var(--color-border);
    box-shadow: 0 4px 20px rgba(26, 92, 58, 0.08);
}

.nav-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    height: var(--nav-height);
}

.logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.logo-img {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-full);
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(26, 92, 58, 0.16);
}

.logo-text {
    font-family: var(--font-serif);
    font-size: 1.22rem;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: clamp(18px, 2.6vw, 34px);
}

.nav-link {
    font-size: var(--fs-base);
    font-weight: 500;
    color: var(--color-text);
    position: relative;
    padding: 4px 0;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--color-accent);
    border-radius: 2px;
    transition: width 0.3s ease;
}

.nav-link:hover,
.nav-link.active {
    color: var(--color-primary);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin-right: -8px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    border-radius: var(--radius-md);
}

.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--color-primary);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.2s ease;
}

.hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}
.hamburger.active span:nth-child(2) {
    opacity: 0;
}
.hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* ========================================
   Hero 区域：居中大标题 + 梵净山剪影
   ======================================== */
.hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 100vh;
    min-height: 100svh;
    /* 底部为水墨山景预留空间（插画高约 277px），内容整体上移避免压图 */
    padding: calc(var(--nav-height) + clamp(28px, 4vw, 56px)) 0
             clamp(200px, 21vw, 300px);
    overflow: hidden;
}

/* 底部梵净山剪影（原始 d 版：贴底、不缩放、文字不覆盖） */
.hero-mountain {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.hero-mountain::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 34px;
    background: linear-gradient(180deg, var(--color-bg-warm) 0%, rgba(255,248,231,0) 100%);
    z-index: 1;
}

.hero-mountain img {
    display: block;
    width: 100%;
    aspect-ratio: 1920 / 370;
    max-height: clamp(240px, 30vw, 460px);
    object-fit: cover;
    object-position: center bottom;
    /* 山景改为透明底实线图：线条色直接取参考截图的淡灰绿，
       不再靠半透明稀释，避免叠在米黄底上发灰、不清晰 */
    opacity: 1;
}

.hero-bg {
    position: absolute;
    inset: 0;
    background: var(--color-bg-warm);
    overflow: hidden;   /* 裁掉右上角装饰圆，避免撑出横向滚动 */
}

.hero-bg::before {
    content: '';
    position: absolute;
    top: -12%;
    right: -12%;
    width: clamp(280px, 42vw, 620px);
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(232, 145, 58, 0.10) 0%, transparent 70%);
    border-radius: var(--radius-full);
}

.hero-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.hero-copy {
    min-width: 0;
    text-align: left;
}

/* 主区：左标题按钮 + 右信息卡 */
.hero-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 372px);
    gap: clamp(36px, 6vw, 88px);
    align-items: center;
}

.hero-copy {
    display: flex;
    flex-direction: column;
}

.hero-copy .hero-title {
    margin-bottom: clamp(20px, 2.6vw, 32px);
}

.hero-copy .hero-subtitle {
    margin-bottom: clamp(26px, 3.4vw, 40px);
}

.hero-copy .hero-actions {
    margin-bottom: 0;
    margin-top: auto;
}

/* 右侧信息卡：极轻磨砂玻璃（透明无底色，融入米黄页面，仅留边框与高光） */
.hero-side {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 1.8vw, 22px);
    padding: clamp(22px, 2.4vw, 30px) clamp(22px, 2.6vw, 32px) clamp(18px, 2.2vw, 26px);
    /* 几乎全透明的暖白：只在顶部留一丝受光感，不形成可见色块 */
    background: linear-gradient(160deg,
        rgba(255, 255, 255, 0.20) 0%,
        rgba(255, 255, 255, 0.04) 45%,
        rgba(255, 255, 255, 0) 100%);
    border: 1px solid rgba(26, 92, 58, 0.14);
    border-radius: 22px;
    box-shadow: 0 18px 40px -34px rgba(26, 92, 58, 0.45);
    backdrop-filter: blur(10px) saturate(1.06);
    -webkit-backdrop-filter: blur(10px) saturate(1.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

/* 玻璃亮边：只保留左上角一道细高光，其余透明，避免形成"盒子"感 */
.hero-side::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(140deg,
        rgba(255, 255, 255, 0.90) 0%,
        rgba(255, 255, 255, 0) 22%,
        rgba(255, 255, 255, 0) 80%,
        rgba(255, 255, 255, 0.30) 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
}

.hero-side:hover {
    transform: translateY(-3px);
    border-color: rgba(26, 92, 58, 0.22);
    box-shadow: 0 24px 52px -32px rgba(26, 92, 58, 0.5);
}

.hero-side-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: var(--fs-sm);
    font-weight: 500;
    letter-spacing: 0.16em;
    color: var(--color-accent);
}

.hero-side-label::before {
    content: '';
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--color-accent);
}

/* 手写艺术字引言：透明背景，宽度跟随卡片，高度自适应 */
.hero-quote-art {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: clamp(2px, 0.6vw, 6px) 0 clamp(4px, 0.8vw, 8px);
    -webkit-user-select: none;
    user-select: none;
}

.hero-quote {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: clamp(1.12rem, 1.5vw, 1.34rem);
    color: var(--color-text);
    line-height: 1.85;
    letter-spacing: 0.05em;
    border-top: none;
    padding-top: 0;
    margin: 0;
}

.hero-quote span {
    display: block;
}

/* 卡内统计：三列等分，细线分隔 */
.hero-side .hero-stats {
    display: flex;
    gap: 0;
    padding-top: clamp(14px, 1.8vw, 18px);
    border-top: 1px dashed rgba(26, 92, 58, 0.18);
}

.hero-side .stat-item {
    flex: 1 1 0;
    min-width: 0;
}

.hero-side .stat-item + .stat-item {
    padding-left: clamp(10px, 1.2vw, 16px);
    border-left: 1px solid rgba(26, 92, 58, 0.10);
}

.hero-side .stat-item + .stat-item::before {
    display: none;
}

.hero-side .stat-value {
    font-size: clamp(1.45rem, 1.9vw, 1.9rem);
    color: var(--color-primary);
}

.hero-side .stat-label {
    margin-top: 2px;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}



.hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--fs-md);
    font-weight: 500;
    color: var(--color-primary);
    letter-spacing: 0.12em;
    margin-bottom: clamp(14px, 2vw, 22px);
}

.eyebrow-line {
    width: 34px;
    height: 2px;
    flex-shrink: 0;
    background: var(--color-accent);
    border-radius: 2px;
}

.hero-title {
    font-family: var(--font-serif);
    line-height: 1.22;
    margin-bottom: clamp(18px, 2.6vw, 30px);
}

.hero-title-line {
    display: block;
    font-size: clamp(2.6rem, 6vw, 5.4rem);
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: 0.03em;
    line-height: 1.16;
}

.hero-title-line.t-accent {
    color: var(--color-accent);
}

.hero-title-line.t-primary {
    color: var(--color-primary);
}

.ht-em {
    color: var(--color-accent);
    font-style: normal;
}

.hero-subtitle {
    font-size: clamp(0.98rem, 1.5vw, 1.15rem);
    color: var(--color-text-light);
    max-width: 40em;
    margin-bottom: clamp(26px, 3.6vw, 40px);
    line-height: var(--lh-relaxed);
    letter-spacing: 0.015em;
    text-wrap: pretty;
}

.hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: clamp(30px, 4.5vw, 46px);
}

/* 按钮样式 */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    font-size: var(--fs-md);
    font-weight: 500;
    border-radius: var(--radius-lg);
    border: 2px solid transparent;
    cursor: pointer;
    transition: background-color 0.22s ease,
                color 0.22s ease,
                border-color 0.22s ease,
                transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.22s cubic-bezier(0.22, 1, 0.36, 1);
    font-family: var(--font-sans);
    letter-spacing: 0.04em;
    white-space: nowrap;
    line-height: 1.2;
}

.btn:hover:active {
    transform: translateY(0) scale(0.97);
}

.btn:active {
    transform: scale(0.97);
}

.btn-primary {
    background: var(--color-primary);
    color: var(--color-text-white);
    border-color: var(--color-primary);
}

.btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(26, 92, 58, 0.28);
}

.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-outline:hover {
    background: var(--color-primary);
    color: var(--color-text-white);
    transform: translateY(-2px);
}

.btn-full {
    width: 100%;
}

/* 统计数据：横排三项，竖线分隔 */
.hero-stats {
    display: flex;
    gap: clamp(22px, 4vw, 52px);
    padding-top: clamp(18px, 2.6vw, 26px);
    border-top: 1px solid rgba(26, 92, 58, 0.14);
}

.stat-item {
    position: relative;
    min-width: 0;
}

.stat-item + .stat-item::before {
    content: '';
    position: absolute;
    left: calc(clamp(22px, 4vw, 52px) / -2);
    top: 4px;
    bottom: 4px;
    width: 1px;
    background: rgba(26, 92, 58, 0.14);
}

.stat-value {
    display: flex;
    align-items: baseline;
    gap: 2px;
    font-family: var(--font-serif);
    font-size: clamp(1.7rem, 2.8vw, 2.3rem);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.stat-number {
    font: inherit;
    color: inherit;
}

.stat-label {
    display: block;
    margin-top: 4px;
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    letter-spacing: 0.02em;
    white-space: nowrap;
}






.fc-num {
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-accent);
    font-variant-numeric: tabular-nums;
}

.fc-label {
    font-size: var(--fs-xs);
    color: var(--color-text-light);
    line-height: 1.55;
}



/* ========================================
   Section 通用
   ======================================== */
.section-header {
    text-align: center;
    max-width: 760px;
    /* 标题块与内容的间隔对齐恩派 clamp(55px,7vw,92px) 的中低段 */
    margin: 0 auto clamp(40px, 5vw, 64px);
}

.section-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(26, 92, 58, 0.07);
    border: 1px solid rgba(26, 92, 58, 0.12);
    color: var(--color-primary);
    font-size: var(--fs-xs);
    font-weight: 500;
    letter-spacing: 0.08em;
    border-radius: 999px;
    margin-bottom: 14px;
}

.section-title {
    font-family: var(--font-serif);
    font-size: clamp(1.65rem, 3.3vw, 2.25rem);
    font-weight: 700;           /* 真·粗体字形，不再由 400 合成 */
    color: var(--color-primary);
    line-height: 1.3;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
}

.section-desc {
    font-size: clamp(1rem, 1.45vw, 1.125rem);
    color: #3d4f45;
    line-height: var(--lh-relaxed);
    max-width: 32em;
    margin: 0 auto;
}

.build-note {
    display: inline-block;
    margin-top: 10px;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(26, 92, 58, 0.07);
    border: 1px solid rgba(26, 92, 58, 0.16);
    color: var(--color-text-muted);
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1.6;
}

/* 机构简介段落：行宽收到约 38 字/行，中文阅读舒适区 */
.about-intro {
    max-width: 720px;
    margin: 0 auto clamp(44px, 5.5vw, 72px);
    text-align: left;
}

/* 正文主文：字号、字色、行距整体上调，长段不再发灰发糊 */
.intro-main p {
    font-size: clamp(1rem, 1.15vw, 1.0625rem);
    color: #32443a;
    line-height: 2.0;
    letter-spacing: 0.025em;
    margin-bottom: 1.25em;
    text-wrap: pretty;
}

/* 第一段作引导段：更大更沉，和后面的说明文字拉开主次 */
.intro-main p:first-child {
    font-size: clamp(1.0625rem, 1.35vw, 1.1875rem);
    color: var(--color-text);
    line-height: 1.95;
    letter-spacing: 0.02em;
}

/* 段首橙色短线，与文末品牌寓意的短线首尾呼应 */
.intro-main p:first-child::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    margin-bottom: 16px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--color-accent) 0%, rgba(232, 145, 58, 0.22) 100%);
}

.intro-main p:last-child {
    margin-bottom: 0;
}

/* 第三段：品牌寓意 —— 细线引出，衬线小字，克制的收尾 */
.intro-lead {
    display: flex;
    align-items: flex-start;
    gap: clamp(16px, 1.8vw, 22px);
    margin: clamp(20px, 2.4vw, 28px) 0 0;
    padding-top: clamp(16px, 1.8vw, 22px);
    border-top: 1px solid rgba(26, 92, 58, 0.09);
}

.lead-rule {
    flex-shrink: 0;
    width: clamp(26px, 2.6vw, 36px);
    height: 2px;
    margin-top: clamp(13px, 1.4vw, 17px);
    background: linear-gradient(90deg, var(--color-accent) 0%, rgba(232, 145, 58, 0.25) 100%);
    border-radius: 2px;
}

.intro-lead p {
    font-family: var(--font-serif);
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    color: #2c3d33;
    line-height: 2;
    letter-spacing: 0.03em;
    margin: 0;
    text-wrap: pretty;
}

.about-intro strong {
    color: var(--color-primary);
    font-weight: 700;
}

/* ========================================
   关于我们
   ======================================== */
.about-section {
    background: var(--color-bg-warm);
    /* 红线标注：首屏山景底部到「关于我们」标签之间空行过多，此处进一步收紧 */
    padding-top: clamp(34px, 4vw, 54px);
    /* 与下一个同底色区块接壤：只承担一半间隙 */
    padding-bottom: clamp(28px, 3.4vw, 48px);
}

/* 绿线布局优化：关于区标题到正文的间距单独收紧（通用 section-header 为 64px，此处更紧凑） */
.about-section .section-header {
    margin-bottom: clamp(24px, 3vw, 38px);
}

.about-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2.2vw, 26px);
    margin-bottom: clamp(28px, 4.5vw, 52px);
}

.about-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    background: var(--color-bg-white);
    padding: clamp(26px, 3vw, 36px) clamp(22px, 2.4vw, 30px) clamp(24px, 2.8vw, 32px);
    border-radius: var(--radius-2xl);
    text-align: left;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                background-color 0.3s ease,
                border-color 0.3s ease,
                box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    border: 1px solid rgba(230, 219, 203, 0.8);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

/* 悬停/聚焦时的右上角暖光 */
.about-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 86% 8%, rgba(232, 145, 58, 0.26), transparent 58%);
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

.about-card:hover,
.about-card:focus-within {
    transform: translateY(-6px);
    background: var(--color-primary);
    border-color: var(--color-primary);
    box-shadow: 0 22px 44px -24px rgba(26, 92, 58, 0.55);
}

.about-card:hover::after,
.about-card:focus-within::after {
    opacity: 1;
}

/* 悬停变绿后：文字、图标、序号同步换色 */
.about-card > *:not(.about-num) {
    position: relative;
    z-index: 1;
}

.about-card .about-num {
    z-index: 1;
}

.about-card h3,
.about-card p,
.about-icon,
.about-icon svg,
.about-num {
    transition: color 0.3s ease, background-color 0.3s ease, opacity 0.3s ease;
}

.about-card h3::after {
    transition: background-color 0.3s ease, opacity 0.3s ease, width 0.3s ease;
}

.about-card:hover h3,
.about-card:focus-within h3 {
    color: var(--color-bg-warm);
}

.about-card:hover p,
.about-card:focus-within p {
    color: rgba(255, 248, 231, 0.82);
}

.about-card:hover .about-icon,
.about-card:focus-within .about-icon {
    background-color: rgba(255, 255, 255, 0.14);
}

.about-card:hover .about-icon svg,
.about-card:focus-within .about-icon svg {
    color: var(--color-bg-warm);
}

.about-card:hover .about-num,
.about-card:focus-within .about-num {
    color: rgba(255, 255, 255, 0.16);
}

.about-card:hover h3::after,
.about-card:focus-within h3::after {
    opacity: 1;
    width: 32px;
}

/* 右上角大序号水印 */
.about-num {
    position: absolute;
    top: 18px;
    right: 22px;
    font-family: var(--font-serif);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
    color: rgba(26, 92, 58, 0.09);
    font-variant-numeric: tabular-nums;
    user-select: none;
}

.about-icon {
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background-color: rgba(232, 145, 58, 0.14);
}

.about-icon svg {
    width: 28px;
    height: 28px;
    color: var(--color-primary);
}

.about-card h3 {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 8px;
}

/* 标题下的短装饰线 */
.about-card h3::after {
    content: '';
    display: block;
    width: 24px;
    height: 2px;
    margin: 10px auto 0;
    border-radius: 2px;
    background: var(--color-accent);
    opacity: 0.75;
}

/* 正文：两行语义分句，行宽 17em 保证每行在 16 字左右不断词 */
.about-card p {
    color: var(--color-text-light);
    font-size: var(--fs-base);
    line-height: 1.8;
    letter-spacing: 0.012em;
    max-width: 17em;
    margin: 12px 0 0;
    text-align: left;
}

/* 高亮区域：四图标卡（参考布局） */
.about-highlight {
    display: block;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    border: none;
}

.highlight-badge {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(12px, 1.8vw, 18px);
}

/* 2025 圆形徽标：从侧栏移到标题上方，作为成立年份点缀 */
.about-highlight .visual-circle {
    width: clamp(118px, 15vw, 146px);
}

.feature-title {
    text-align: center;
    font-family: var(--font-serif);
    font-size: clamp(1.25rem, 2.2vw, 1.6rem);
    color: var(--color-primary);
    margin-bottom: clamp(22px, 3vw, 36px);
}

.feature-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(14px, 2vw, 22px);
}

.feature-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: var(--color-bg-white);
    border: 1px solid rgba(230, 219, 203, 0.8);
    border-radius: var(--radius-2xl);
    padding: clamp(22px, 2.6vw, 30px) clamp(16px, 2vw, 22px);
    box-shadow: var(--shadow-sm);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                border-color 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
    border-color: rgba(232, 145, 58, 0.45);
}

.fc-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: rgba(26, 92, 58, 0.08);
    margin-bottom: 14px;
}

.fc-icon svg {
    width: 26px;
    height: 26px;
    color: var(--color-primary);
}

.feature-card h4 {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.feature-card .fc-text {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.75;
    margin: 0;
}

.highlight-content h3 {
    font-family: var(--font-serif);
    font-size: clamp(1.2rem, 2vw, 1.4rem);
    color: var(--color-primary);
    margin-bottom: 6px;
}

.feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 15px 0;
    border-bottom: 1px dashed var(--color-border);
}

.feature-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: var(--color-primary);
    color: #fff;
    border-radius: var(--radius-full);
    font-size: var(--fs-2xs);
    flex-shrink: 0;
    margin-top: 4px;
}

.feature-list strong {
    display: block;
    color: var(--color-text);
    font-size: var(--fs-md);
    font-weight: 600;
    line-height: 1.6;
    margin-bottom: 2px;
}

.feature-list div > span {
    display: block;
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.75;
}

.visual-card {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(8px, 2vw, 24px);
    position: relative;
}

/* 点阵背景衬底 */
.visual-card::before {
    content: '';
    position: absolute;
    right: 8%;
    bottom: 4%;
    width: 120px;
    height: 130px;
    background-image: radial-gradient(rgba(232, 145, 58, 0.4) 2px, transparent 2.5px);
    background-size: 18px 18px;
}

.visual-circle {
    position: relative;
    z-index: 1;
    width: clamp(150px, 22vw, 190px);
    aspect-ratio: 1;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-primary);
}

.visual-big-text {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 3.6vw, 2.4rem);
    font-weight: 700;
    color: #fff;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.visual-small-text {
    font-size: var(--fs-sm);
    color: rgba(255, 255, 255, 0.9);
    margin-top: 6px;
    letter-spacing: 0.04em;
}

/* ========================================
   活动动态：新闻式大图卡片（参考腾讯公益）
   ======================================== */
.activities-section {
    background: var(--color-bg-warm);
    /* 承接上一个同底色区块：上半段间隙由关于区承担，此处只留一半 */
    padding-top: clamp(32px, 4vw, 56px);
    /* 与下一个同底色区块接壤：只承担一半间隙，避免两段 padding 叠加成双倍空白 */
    padding-bottom: clamp(28px, 3.4vw, 48px);
}

/* 左标题 + 右"更多动态" */
.activities-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: clamp(24px, 3.2vw, 40px);
}

.ah-left {
    min-width: 0;
}

.ah-left .section-title,
.ah-left .section-desc {
    text-align: left;
    margin-left: 0;
}

.ah-left .section-desc {
    max-width: 34em;
}

.more-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
    padding: 0 0 4px;
    border: 0;
    background: none;
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--color-text-light);
    white-space: nowrap;
    cursor: pointer;
    transition: color 0.2s ease;
}

.more-link svg {
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.more-link.is-expanded svg {
    transform: rotate(90deg);
}

.more-link:active {
    transform: scale(0.97);
}

.more-link[hidden] {
    display: none;
}

.more-link svg {
    width: 16px;
    height: 16px;
    transition: transform 0.25s ease;
}

.more-link:hover {
    color: var(--color-primary);
}

.more-link:hover svg {
    transform: translateX(4px);
}

.more-link.is-expanded svg {
    transform: rotate(90deg);
}

.activities-filter {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    margin-bottom: clamp(28px, 3.6vw, 44px);
    flex-wrap: wrap;
}

.filter-btn {
    padding: 9px 20px;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    cursor: pointer;
    transition: background-color 0.22s ease,
                color 0.22s ease,
                border-color 0.22s ease,
                transform 0.18s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.22s ease;
    white-space: nowrap;
}

.filter-btn:active {
    transform: scale(0.96);
}

.filter-btn:hover {
    color: var(--color-primary);
    border-color: var(--color-primary-light);
}

.filter-btn.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
    box-shadow: 0 6px 16px rgba(26, 92, 58, 0.22);
}

.activities-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.4vw, 28px);
    align-items: stretch;
}

.activities-loading {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--color-text-muted);
    font-size: var(--fs-base);
    padding: 40px 0;
}

/* ---- 折叠：只展示最新 3 条 ---- */
.activity-card.is-hidden {
    display: none !important;
}

.activity-card {
    display: flex;
    flex-direction: column;
    background: var(--color-bg-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                border-color 0.3s ease;
    border: 1px solid rgba(230, 219, 203, 0.9);
}

.activity-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

/* 主图外显：16:10 大图 */
.activity-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--color-bg-cream);
}

/* 无封面时的柔和占位，避免破图 */
.activity-noimg {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f7efdb, #eaddc2);
}

.activity-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), filter 0.25s ease;
    will-change: transform;
}

.activity-card:hover .activity-media img {
    transform: scale(1.035);
}

.activity-card:hover .activity-media {
    filter: brightness(1.04);
}

.activity-tag {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 1;
    display: inline-block;
    padding: 5px 13px;
    background: rgba(255, 255, 255, 0.95);
    color: var(--color-primary);
    font-size: var(--fs-xs);
    font-weight: 500;
    letter-spacing: 0.01em;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    white-space: nowrap;
}

.activity-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
    /* 文字区左右各留 4 个字符宽：用卡片自身字号换算，避免 4em 被 17px 基准放大 */
    --cap: 4ch;
    padding: clamp(20px, 2vw, 24px) calc(var(--cap) + clamp(4px, 0.6vw, 10px)) 22px;
    text-align: left;
}

.activity-date {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
}

.activity-body h3 {
    font-family: var(--font-serif);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 8px 0;
    line-height: 1.6;
    letter-spacing: 0.01em;
    transition: color 0.25s ease;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    /* 标题均衡断行：两行宽度接近，左右边缘视觉对齐 */
    text-wrap: balance;
}

/* 摘要里的英文引号悬挂修正：行首窄引号视觉对齐 */
.activity-body p {
    hanging-punctuation: allow-end;
}

.activity-card:hover .activity-body h3 {
    color: var(--color-primary);
}

.activity-body p {
    flex: 1;
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.8;
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: pretty;
}

.activity-more {
    display: inline-block;
    margin-top: 10px;
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--color-primary);
    letter-spacing: 0.02em;
    transition: gap 0.2s ease, transform 0.2s ease;
}

.activity-card:hover .activity-more {
    transform: translateX(3px);
}

.activity-meta {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: auto;
    width: 100%;
    padding-top: 12px;
    border-top: 1px solid rgba(230, 219, 203, 0.9);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.activity-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.meta-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    opacity: 0.85;
}

/* ========================================
   联系我们：左侧深绿信息面板 + 右侧表单
   ======================================== */
.contact-section {
    background: var(--color-bg-warm);
    /* 按内容自适应高度：原先强制撑满一屏，会在内容少时产生大片空白 */
    display: block;
    /* 承接上一个同底色区块：上半段间隙由活动区承担，此处只留一半 */
    padding-top: clamp(32px, 4vw, 56px);
}

.contact-section > .container {
    width: 100%;
}

.contact-section .section-header {
    margin-bottom: clamp(28px, 3.6vw, 44px);
}

.contact-section .section-title {
    font-size: clamp(1.6rem, 2.6vw, 2.05rem);
    margin-bottom: clamp(8px, 1.2vh, 12px);
}

.contact-section .section-tag {
    margin-bottom: clamp(8px, 1.2vh, 12px);
    padding: 5px 16px;
}

.contact-section .section-desc {
    font-size: var(--fs-base);
}

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    gap: clamp(22px, 2.6vw, 32px);
    align-items: stretch;
}

/* 深绿信息面板：与右侧表单等高，消除大片留白 */
.contact-panel {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-2xl);
    background: linear-gradient(160deg, #145032 0%, var(--color-primary) 58%, #237a4b 130%);
    color: #fff;
    padding: clamp(18px, 2.4vh, 32px) clamp(20px, 2.2vw, 30px);
}

.contact-panel::after {
    content: '';
    position: absolute;
    top: -64px;
    right: -64px;
    width: 210px;
    aspect-ratio: 1;
    border: 2px dashed rgba(255, 255, 255, 0.18);
    border-radius: var(--radius-full);
    pointer-events: none;
}

.panel-head {
    margin-bottom: clamp(8px, 1.2vh, 14px);
    padding-bottom: clamp(10px, 1.4vh, 16px);
}

.panel-head h3 {
    font-family: var(--font-serif);
    font-size: clamp(1.35rem, 1.7vw, 1.55rem);
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.panel-head p {
    font-size: var(--fs-sm);
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.7;
}

/* 分隔式列表：不再套小卡片，层级更干净 */
.contact-panel .contact-item {
    display: flex;
    align-items: flex-start;
    gap: clamp(12px, 1.4vw, 16px);
    flex: 1;
    min-height: 0;
    padding: clamp(12px, 1.6vh, 18px) 2px;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    transition: background 0.28s ease;
}

.contact-panel .contact-item:first-of-type {
    margin-top: clamp(6px, 1vh, 12px);
}

.contact-panel .contact-item:hover {
    background: rgba(255, 255, 255, 0.05);
}

.contact-panel .contact-icon {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: var(--radius-md);
    margin-top: 1px;
}

.contact-panel .contact-icon svg {
    width: 19px;
    height: 19px;
    color: rgba(255, 255, 255, 0.92);
}

.contact-panel .contact-body {
    min-width: 0;
}

.contact-panel .contact-body h4 {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--color-accent-lighter);
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}

.contact-panel .contact-body p {
    font-size: var(--fs-base);
    color: rgba(255, 255, 255, 0.93);
    line-height: 1.65;
}

.contact-panel .contact-body a {
    color: #fff;
    font-weight: 500;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.contact-panel .contact-body a:hover {
    border-bottom-color: var(--color-accent-lighter);
    color: var(--color-accent-lighter);
}

/* 公众号关注卡：与左侧信息面板等高 */
.contact-follow-card {
    display: flex;
    flex-direction: column;
    background: var(--color-bg-white);
    border-radius: var(--radius-2xl);
    padding: clamp(18px, 2.4vh, 32px) clamp(20px, 2.2vw, 30px);
    box-shadow: var(--shadow-md);
    border: 1px solid rgba(230, 219, 203, 0.8);
}

.follow-head h3 {
    font-family: var(--font-serif);
    font-size: clamp(1.35rem, 1.7vw, 1.55rem);
    color: var(--color-primary);
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.follow-head p {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.7;
}

/* 二维码 + 右侧说明：紧凑居中，不撑满 */
.follow-qr-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(16px, 1.8vw, 24px);
    margin: clamp(10px, 1.6vh, 18px) 0;
    flex: 1;
    min-height: 0;
}

.follow-qr {
    flex-shrink: 0;
    width: clamp(150px, 14vw, 176px);
    aspect-ratio: 1;
    padding: 8px;
    background: #fff;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(230, 219, 203, 0.9);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.follow-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    border-radius: calc(var(--radius-lg) - 6px);
}

.follow-qr-info {
    min-width: 0;
}

.follow-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    background: rgba(31, 122, 76, 0.07);
    border: 1px solid rgba(31, 122, 76, 0.15);
    border-radius: var(--radius-full);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.follow-badge svg {
    width: 16px;
    height: 16px;
    color: var(--color-primary);
}

.follow-qr-id {
    font-size: var(--fs-base);
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: 4px;
    word-break: break-all;
}

.follow-qr-note {
    font-size: var(--fs-xs);
    color: var(--color-text-light);
    line-height: 1.6;
}

/* 邮件联系条：整行浅底块，左文右钮垂直居中 */
.follow-mail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(14px, 1.6vw, 20px);
    margin-top: auto;
    padding: clamp(14px, 1.8vh, 18px) clamp(14px, 1.5vw, 18px);
    background: #fdfaf2;
    border: 1px solid rgba(230, 219, 203, 0.9);
    border-radius: var(--radius-lg);
}

.follow-mail-text {
    min-width: 0;
}

.follow-mail-text h4 {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: 0.1em;
    margin-bottom: 3px;
}

.follow-mail-text p {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    line-height: 1.55;
    margin-bottom: 6px;
    white-space: nowrap;
}

.follow-mail-addr {
    display: inline-block;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-text);
    border-bottom: 1px solid rgba(var(--color-primary-rgb), 0.28);
    word-break: break-all;
    line-height: 1.5;
}

.follow-mail-addr:hover {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}

.follow-mail-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: clamp(9px, 1.2vh, 12px) clamp(16px, 1.6vw, 20px);
    font-size: var(--fs-sm);
    white-space: nowrap;
}

.follow-mail-btn svg {
    width: 17px;
    height: 17px;
}

/* ========================================
   页脚
   ======================================== */
.footer {
    background: var(--color-primary-dark);
    color: var(--color-footer-text);
    padding: clamp(44px, 6vw, 72px) 0 clamp(22px, 3vw, 32px);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.7fr 1fr 1fr 1.25fr;
    gap: clamp(26px, 4vw, 52px);
    margin-bottom: clamp(26px, 4vw, 44px);
}

.footer-brand {
    min-width: 0;
}

.footer-logo {
    width: 54px;
    height: 54px;
    border-radius: var(--radius-full);
    object-fit: cover;
    margin-bottom: 14px;
}

.footer-slogan {
    font-family: var(--font-sans);
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--color-accent-lighter);
    margin-bottom: 10px;
    letter-spacing: 0.05em;
}

.footer-desc {
    font-size: var(--fs-sm);
    line-height: 1.95;
    color: var(--color-footer-muted);
    max-width: 20em;
    letter-spacing: 0.015em;
}

.footer-links h4 {
    font-size: var(--fs-md);
    font-weight: 600;
    color: #fff;
    margin-bottom: 12px;
    letter-spacing: 0.08em;
}

.footer-links a {
    display: block;
    font-size: var(--fs-sm);
    color: var(--color-footer-text);
    padding: 7px 0;
    line-height: 1.6;
    letter-spacing: 0.015em;
}

.footer-links a:hover {
    color: var(--color-accent-lighter);
}

/* 社交按钮：改为自适应胶囊，彻底避免文字换行
   （选择器需提升权重，覆盖 .footer-links a 的 display/padding） */
/* 社交按钮：固定 2×2 网格，任何屏宽下都不会出现文字断行或 3+1 的不均衡 */
.social-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    max-width: 224px;
}

.social-links .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 0 12px;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    font-size: var(--fs-sm);
    color: var(--color-footer-text);
    line-height: 1;
    white-space: nowrap;
    transition: var(--transition);
}

.social-links .social-link:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    transform: translateY(-2px);
}

/* 页脚「关注我们」平台切换 */
.social-tabs {
    max-width: 224px;
}
.social-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.social-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 0 12px;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    font-size: var(--fs-sm);
    color: var(--color-footer-text);
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    font-family: inherit;
    transition: var(--transition);
}
.social-btn:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    transform: translateY(-2px);
}
.social-btn.active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}
.social-panels {
    margin-top: 14px;
}
.social-panel {
    display: none;
    text-align: center;
    animation: socialFade 0.25s ease;
}
.social-panel.active {
    display: block;
}
@keyframes socialFade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
.social-qr {
    width: 118px;
    height: 118px;
    object-fit: contain;
    background: #fff;
    padding: 6px;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
.social-panel-name {
    margin: 10px 0 2px;
    font-weight: 600;
    color: #fff;
}
.social-panel-note {
    margin: 0;
    font-size: var(--fs-xs);
    color: var(--color-footer-text);
    opacity: 0.85;
}
.social-panel-tip {
    margin: 4px 0 0;
    font-size: var(--fs-sm);
    line-height: 1.85;
    color: var(--color-footer-text);
    background: rgba(255, 255, 255, 0.06);
    border: 1px dashed rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    padding: 14px 12px;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: clamp(18px, 2.6vw, 26px);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: var(--fs-xs);
    color: var(--color-footer-muted);
    letter-spacing: 0.02em;
}

.footer-legal {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-legal a {
    color: var(--color-footer-muted);
}

.footer-legal a:hover {
    color: var(--color-accent-lighter);
}

/* ========================================
   Toast 提示
   ======================================== */
.toast {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%) translateY(120px);
    max-width: calc(100vw - 32px);
    background: var(--color-primary);
    color: #fff;
    padding: 14px 26px;
    border-radius: var(--radius-lg);
    font-size: var(--fs-base);
    line-height: 1.6;
    text-align: center;
    z-index: 3000;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease;
    box-shadow: var(--shadow-lg);
    opacity: 0;
    pointer-events: none;
}

.toast.show {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

/* ========================================
   动画
   ======================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-in {
    animation: fadeInUp 0.6s ease forwards;
}

/* ---- 滚动进入：淡入上移，恩派式缓动 ---- */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.reveal.is-in {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ========================================
   响应式
   ======================================== */
@media (min-width: 1280px) {
    :root {
        --container-max: 1200px;
        --gutter: 28px;
    }
}

/* 小桌面 / 平板横屏 */
@media (max-width: 1024px) {
    .activities-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-desc {
        max-width: 24em;
    }
}

/* 平板竖屏 —— 导航切换为抽屉，Hero 改单列 */
@media (max-width: 900px) {
    :root {
        --nav-height: 62px;
    }

    .contact-grid {
        /* minmax(0,1fr) 防止内容把单列撑破视口 */
        grid-template-columns: minmax(0, 1fr);
    }

    .contact-panel,
    .contact-follow-card {
        min-width: 0;
    }

    .contact-panel .contact-item {
        flex: none;
    }

    .hamburger {
        display: flex;
    }

    .nav-menu {
        position: fixed;
        top: var(--nav-height);
        left: 0;
        right: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px var(--gutter) 20px;
        background: #fffdf8;
        border-bottom: 1px solid var(--color-border);
        box-shadow: 0 18px 40px rgba(26, 92, 58, 0.14);
        max-height: calc(100svh - var(--nav-height));
        overflow-y: auto;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-10px);
        transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;
    }

    .nav-menu.active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .nav-link {
        font-size: 1rem;
        padding: 15px 4px;
        border-bottom: 1px solid rgba(230, 219, 203, 0.7);
    }

    .nav-link:last-child {
        border-bottom: none;
    }

    .nav-link::after {
        display: none;
    }

    .hero {
        min-height: auto;
        align-items: flex-start;
        padding-bottom: 140px;
    }

    .hero-inner {
        display: flex;
        flex-direction: column;
        gap: clamp(24px, 4vw, 36px);
    }

    .hero-main {
        grid-template-columns: 1fr;
        gap: clamp(24px, 4vw, 34px);
        align-items: start;
    }

    .hero-side {
        max-width: 480px;
        width: 100%;
    }

    .hero-mountain {
        bottom: clamp(-40px, -4vw, -20px);
    }

    .hero-mountain img {
        max-height: clamp(130px, 20vw, 220px);
    }

    /* 四图标卡：平板两列 */
    .feature-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .about-card {
        padding: 24px 26px;
    }
}

/* 手机横屏 / 小平板 */
@media (max-width: 768px) {
    .activities-grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
    }

    .activities-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px;
    }

    .footer-bottom {
        justify-content: center;
        text-align: center;
    }

    .clause-sm {
        display: block;
    }

    .footer-legal {
        justify-content: center;
    }
}

/* 手机 */
@media (max-width: 620px) {
    /* 手机端细条插画太扁会压掉起伏：加高并聚焦底部云雾带 */
    .hero .hero-mountain img {
        height: clamp(84px, 24vw, 104px);
        max-height: none;
        aspect-ratio: auto;
        object-fit: cover;
        object-position: center 58%;
    }

    .logo-img {
        width: 38px;
        height: 38px;
    }

    .logo-text {
        font-size: 1.08rem;
    }

    .hero-title-line {
        letter-spacing: 1px;
    }

    
    .hero-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        max-width: 320px;
    }

    .btn {
        width: 100%;
    }

    .hero-stats {
        gap: 16px;
        justify-content: space-between;
    }

    .stat-item + .stat-item::before {
        left: -8px;
    }

    .hero {
        padding-bottom: 140px;
    }

    .hero-side {
        padding: 22px 22px 18px;
        border-radius: 16px;
    }

    .hero-side .stat-value {
        font-size: 1.4rem;
    }

    .hero-side .stat-label {
        font-size: 0.72rem;
    }

    .about-card {
        padding: 22px 22px 24px;
    }

    .about-grid {
        grid-template-columns: 1fr;
        max-width: 460px;
        margin-left: auto;
        margin-right: auto;
    }

    .feature-cards {
        grid-template-columns: 1fr;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
    }

    .about-icon {
        width: 54px;
        height: 54px;
        border-radius: 16px;
    }

    .about-icon svg {
        width: 26px;
        height: 26px;
    }

    .about-card p {
        max-width: 100%;
    }

    .activities-filter {
        gap: 8px;
    }

    .filter-btn {
        padding: 8px 15px;
        font-size: var(--fs-xs);
        flex: 1 1 auto;
    }

    .activity-media {
        aspect-ratio: 16 / 9;
    }

    .activity-body h3 {
        font-size: 1rem;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    /* 公众号卡：窄屏改上下布局，二维码居中 */
    .follow-qr-wrap {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 14px;
        margin-top: 16px;
    }

    .follow-qr {
        width: 152px;
    }

    .follow-mail {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    /* 窄屏放开 nowrap，否则长句会把卡片撑破 */
    .follow-mail-text p {
        white-space: normal;
    }

    .follow-mail-btn {
        justify-content: center;
        width: 100%;
    }

    /* 寓意段：手机端取消横线，直接排布，避免挤压正文 */
    .intro-lead {
        display: block;
        padding-top: 18px;
        margin-top: 22px;
    }

    .lead-rule {
        display: none;
    }

    .intro-lead p {
        font-size: 0.95rem;
        line-height: 1.95;
    }

    .footer-brand {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .footer-desc {
        max-width: 100%;
    }

    /* 社交按钮 2×2 居中 */
    .social-links {
        margin: 0 auto;
    }
}

/* 小屏手机 */
@media (max-width: 400px) {
    .hero-subtitle {
        font-size: 0.9rem;
    }

    .about-card p {
        font-size: var(--fs-sm);
    }

    .contact-item {
        gap: 12px;
        padding: 12px 14px;
    }
}

/* ========================================
   无障碍：尊重系统「减少动态效果」设置
   ======================================== */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
}

/* ========================================
   活动 / 资讯 详情弹层
   ======================================== */
.activity-card {
    cursor: pointer;
}

.article-modal {
    position: fixed;
    inset: 0;
    z-index: 2500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 3vw, 40px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.article-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.article-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 38, 27, 0.58);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.article-modal-panel {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    max-height: min(86vh, 860px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--color-bg-white);
    border-radius: var(--radius-2xl);
    box-shadow: 0 44px 96px -44px rgba(15, 45, 30, 0.6);
    transform: translateY(16px) scale(0.985);
    transition: transform 0.34s cubic-bezier(0.22, 0.7, 0.3, 1);
}

.article-modal.is-open .article-modal-panel {
    transform: none;
}

.article-modal-media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--color-bg-cream);
    overflow: hidden;
}

.article-modal-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.article-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-primary);
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    transition: var(--transition);
}

.article-modal-close:hover {
    background: #fff;
    transform: rotate(90deg);
}

.article-modal-close svg {
    width: 18px;
    height: 18px;
}

.article-modal-body {
    padding: clamp(22px, 3vw, 36px);
}

.article-modal-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.article-modal-tag {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(26, 92, 58, 0.08);
    color: var(--color-primary);
    font-size: var(--fs-xs);
    font-weight: 500;
}

.article-modal-date {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
}

.article-modal-body h3 {
    font-family: var(--font-serif);
    font-size: clamp(1.22rem, 2.1vw, 1.55rem);
    line-height: 1.6;
    color: var(--color-text);
    margin-bottom: 14px;
    text-wrap: balance;
}

.article-modal-text {
    font-size: var(--fs-base);
    line-height: 1.95;
    color: var(--color-text-light);
    margin-bottom: 22px;
}

.article-modal-text p {
    margin: 0 0 16px;
    text-indent: 2em;
}

.article-modal-text p:last-child {
    margin-bottom: 0;
}

.article-modal-text .article-fig {
    margin: 18px 0;
    text-align: center;
}

.article-modal-text .article-fig img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(26, 92, 58, 0.12);
}

.article-modal-text .article-fig figcaption {
    margin-top: 8px;
    font-size: 0.82em;
    color: var(--color-text-light);
    opacity: 0.82;
}

.article-modal-info {
    border-top: 1px solid rgba(230, 219, 203, 0.9);
    padding-top: 16px;
}

.article-modal-info .activity-meta {
    margin: 0;
}

body.modal-open {
    overflow: hidden;
}

@media (max-width: 620px) {
    .article-modal {
        padding: 0;
        align-items: flex-end;
    }

    .article-modal-panel {
        width: 100%;
        max-height: 92vh;
        border-radius: 22px 22px 0 0;
    }

    .article-modal-media {
        aspect-ratio: 16 / 10;
    }
}
