/* ============================================================
   漳州市小吃协会官网 · 全站样式
   设计语言：闽南红砖厝 × 宣纸金苍 | 紧凑节奏 · 正式文化门户
   ============================================================ */

/* ---------- 设计令牌 ---------- */
:root {
  --red: #C7A25A;          /* 主强调：香槟金（深底上可读） */
  --red-deep: #E3C888;
  --red-dark: #15140F;      /* 深底：暖炭黑 */
  --red-tint: #2A2418;
  --red-line: rgba(199, 162, 90, .30);
  --gold: #C7A25A;
  --gold-lit: #E3C888;
  --gold-deep: #C7A25A;
  --gold-tint: #2A2418;
  --ink: #F0EBDE;           /* 文字主色：宣纸白 */
  --ink-2: #C6BFAE;
  --ink-3: #A8A191;
  --paper: #15140F;         /* 底色：暖炭黑 */
  --paper-2: #1E1C16;
  --paper-3: #26231A;
  --card: #1E1C16;
  --line: rgba(240, 235, 222, .14);
  --line-2: rgba(240, 235, 222, .24);
  --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  /* 展示字体：宋体体系（正式、端正）；首页另加载思源宋体子集 */
  --font-display: "ZZ Serif", "Source Han Serif SC", "Noto Serif CJK SC", "Noto Serif SC", "Songti SC", "STSong", "SimSun", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;
  --r: 8px;
  --r-md: 12px;
  --r-lg: 14px;
  --r-img: 14px;            /* 全站图片统一圆角 */
  --sh-1: 0 1px 2px rgba(42, 37, 33, .06);
  --sh-2: 0 6px 20px rgba(42, 37, 33, .07);
  --sh-3: 0 14px 34px rgba(42, 37, 33, .10);
  --header-h: 68px;
}

/* ---------- 基础 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  background-color: var(--paper);
  background-image: repeating-linear-gradient(0deg, transparent 0 34px, rgba(199, 162, 90, .045) 34px 35px);
  overflow-x: clip;
}
img, svg { max-width: 100%; height: auto; display: block; }
svg { width: 1em; height: 1em; flex-shrink: 0; }
a { color: var(--red); text-decoration: none; transition: color .2s; }
a:hover { color: var(--red-deep); }
h1, h2, h3, h4 { font-family: var(--font-display); line-height: 1.45; margin: 0; text-wrap: balance; font-feature-settings: "palt" 1; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }
button { font-family: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; border-radius: 4px; }
::selection { background: var(--gold); color: #17140E; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.skip-link { position: absolute; left: 16px; top: -48px; z-index: 200; background: var(--gold); color: #17140E; padding: 8px 16px; border-radius: 0 0 var(--r) var(--r); transition: top .2s; }
.skip-link:focus { top: 0; color: #17140E; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- 头部 ---------- */
.topbar { background: #15140F; color: #C9BFA8; font-size: 12.5px; }
.topbar .container { display: flex; justify-content: space-between; align-items: center; min-height: 34px; gap: 16px; }
.topbar a { color: #D9C79C; }
.topbar a:hover { color: var(--gold-lit); }
.topbar .tb-item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.topbar .tb-sep { opacity: .35; margin: 0 10px; }

.nav {
  position: sticky; top: 0; z-index: 90;
  background: rgba(21, 20, 15, .94);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow .25s;
}
.nav.scrolled { box-shadow: 0 6px 20px rgba(42, 37, 33, .08); }
.nav .container { display: flex; align-items: center; height: var(--header-h); gap: 28px; }

.brand { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand img { width: 46px; height: 46px; border-radius: 50%;
  background: var(--ink); padding: 3px; box-shadow: 0 0 0 1px var(--red-line); }
.brand .b-name { font-family: var(--font-display); font-size: 21px; font-weight: 700; color: var(--ink); letter-spacing: .06em; line-height: 1.2; }
.brand .b-en { font-size: 10px; letter-spacing: .22em; color: var(--ink-3); text-transform: uppercase; }
.brand:hover .b-name { color: var(--red); }

.nav-menu { display: flex; align-items: center; gap: 2px; margin-left: auto; height: 100%; }
.nav-item { position: relative; height: 100%; }
.nav-item > a {
  display: flex; align-items: center; gap: 4px; height: 100%; padding: 0 15px;
  font-size: 15.5px; color: var(--ink); position: relative; white-space: nowrap;
}
.nav-item > a::after {
  content: ""; position: absolute; left: 15px; right: 15px; bottom: 0; height: 3px;
  background: var(--red); border-radius: 3px 3px 0 0; transform: scaleX(0); transition: transform .25s;
}
.nav-item:hover > a, .nav-item.active > a { color: var(--red); font-weight: 600; }
.nav-item:hover > a::after, .nav-item.active > a::after { transform: scaleX(1); }
.nav-item .caret { width: 8px; height: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translateY(-1px); transition: transform .2s; }
.nav-item:hover .caret { transform: rotate(225deg) translateY(0); }

.dropdown {
  position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px);
  min-width: 172px; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--sh-2); padding: 8px;
  opacity: 0; visibility: hidden; transition: all .22s; z-index: 95;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.dropdown a { display: block; padding: 9px 14px; border-radius: 6px; font-size: 14px; color: var(--ink-2); }
.dropdown a:hover { background: var(--red-tint); color: var(--red-deep); }

.nav-cta { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
.nav-search {
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line-2);
  background: var(--card); display: grid; place-items: center; color: var(--ink-2);
}
.nav-search:hover { border-color: var(--red); color: var(--red); }
.nav-search svg { width: 16px; height: 16px; }

.nav-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--card); }
.nav-toggle span { display: block; width: 20px; height: 2px; background: var(--ink); margin: 4px auto; transition: .25s; border-radius: 2px; }
.nav-toggle.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 26px; border-radius: var(--r); font-size: 15px; font-weight: 600;
  border: 1.5px solid transparent; letter-spacing: .04em;
  transition: background-color .22s, border-color .22s, color .22s; white-space: nowrap;
}
.btn-red { background: var(--red); color: #17140E; }
.btn-red:hover { background: var(--red-deep); color: #17140E; }
.btn-line { border-color: var(--red); color: var(--red); background: transparent; }
.btn-line:hover { background: var(--gold); color: #17140E; }
.btn-gold { background: var(--gold); color: #17140E; }
.btn-gold:hover { background: var(--gold-deep); color: #17140E; }
.btn-ghost { border-color: var(--line-2); color: var(--ink-2); background: var(--card); }
.btn-ghost:hover { border-color: var(--red); color: var(--red); }
.btn-sm { padding: 9px 20px; font-size: 14px; }

/* ---------- 首页英雄区 ---------- */
.hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #1B1913 0%, var(--paper) 70%, var(--paper-2) 100%); }
.hero-inner { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; padding: 56px 24px 0; display: grid; grid-template-columns: 1.04fr .96fr; gap: 46px; align-items: stretch; text-align: left; }
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; font-size: 12px;
  letter-spacing: .32em; color: var(--gold-deep); text-transform: uppercase; margin-bottom: 20px;
}
.hero-eyebrow::before, .hero-eyebrow::after { content: ""; width: 36px; height: 1px; background: var(--gold); }
.hero h1 { font-size: clamp(38px, 5.8vw, 64px); letter-spacing: .05em; color: var(--ink); font-weight: 700; line-height: 1.3; }
.hero h1 em { font-style: normal; color: var(--red); }
.hero-slogan { font-family: var(--font-display); font-size: clamp(17px, 2.2vw, 21px); color: var(--ink-2); letter-spacing: .22em; margin: 18px 0 12px; }
.hero-desc { max-width: 540px; margin: 0 0 30px; color: var(--ink-2); font-size: 16px; line-height: 1.9; }
.hero-actions { display: flex; gap: 14px; justify-content: flex-start; flex-wrap: wrap; }
.hero-skyline { margin-top: 44px; position: relative; }
.hero-skyline svg { width: 100%; height: auto; }

/* 首页 hero 数字背书条（硬数据上首屏） */
.hero-stats {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(18px, 3.6vw, 46px); flex-wrap: wrap;
  margin: 36px auto 0; padding: 22px clamp(18px, 3.6vw, 40px);
  border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold);
  max-width: 860px; position: relative;
}
.hero-stats::before, .hero-stats::after {
  content: ""; position: absolute; left: 50%; transform: translateX(-50%);
  width: 56px; height: 1px; background: var(--red);
}
.hero-stats::before { top: -3px; }
.hero-stats::after { bottom: -3px; }
.hs-item { text-align: center; }
.hs-num {
  display: block; font-family: var(--font-display); font-weight: 700;
  font-size: clamp(30px, 3.4vw, 40px); color: var(--red); line-height: 1;
  font-variant-numeric: tabular-nums; letter-spacing: .02em;
}
.hs-label { display: block; margin-top: 9px; font-size: 12px; letter-spacing: .16em; color: var(--ink-3); line-height: 1.7; }
.hs-sep { width: 1px; height: 36px; background: var(--line-2); }
@media (max-width: 720px) {
  .hero-stats { gap: 18px 26px; }
  .hs-sep { display: none; }
}

/* ---------- 区块通用 ---------- */
.sec { padding: clamp(72px, 8vw, 112px) 0; }
.sec-tight { padding: clamp(52px, 6vw, 80px) 0; }
.sec-paper2 { background: var(--paper-2); }
.sec-head { text-align: center; margin-bottom: clamp(40px, 5vw, 56px); }
.sec-head .sh-seal { margin: 0 auto 14px; }
.sec-head h2 { font-size: clamp(26px, 3.2vw, 34px); letter-spacing: .07em; color: var(--ink); }
.sec-head .sh-en { font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep); margin-top: 10px; }
.sec-head .sh-rule { width: 44px; height: 3px; background: var(--red); margin: 14px auto 0; border-radius: 2px; }
.sec-head.left { text-align: left; }
.sec-head.left .sh-seal { margin: 0 0 12px; }
.sec-head.left .sh-rule { margin-left: 0; }

/* 印章方块 */
.seal {
  width: 52px; height: 52px; background: var(--red); color: #17140E;
  font-family: var(--font-display); font-size: 27px; font-weight: 700;
  display: grid; place-items: center; border-radius: var(--r-img);
  transform: none; position: relative; flex-shrink: 0;
  box-shadow: inset 0 0 0 2px rgba(255, 253, 246, .32), var(--sh-1);
}
.seal.sm { width: 38px; height: 38px; font-size: 19px; border-radius: 5px; }
.seal.gold { background: var(--gold-deep); }

/* 面包屑 */
.crumb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--ink-3); }
.crumb a { color: var(--ink-3); }
.crumb a:hover { color: var(--red); }
.crumb .sep { opacity: .5; }
.crumb .cur { color: var(--red-deep); }

/* 页面头图 */
.page-hero {
  background: linear-gradient(180deg, var(--paper-2), var(--paper));
  border-bottom: 1px solid var(--line);
  padding: 44px 0 38px; text-align: center; position: relative; overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-deep), transparent);
  opacity: .6;
}
.page-hero h1 { font-size: clamp(26px, 3.4vw, 34px); letter-spacing: .12em; }
.page-hero .ph-en { font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep); margin-top: 10px; }
.page-hero .crumb { justify-content: center; margin-top: 16px; }
.page-hero.crumb-only { padding: 18px 0 20px; border-bottom: 1px solid var(--line); text-align: left; }
.page-hero.crumb-only::after { display: none; }
.page-hero.crumb-only .ph-en { margin-top: 0; text-align: left; }
.page-hero.crumb-only .crumb { justify-content: flex-start; margin-top: 10px; }

/* 标签 */
.tag {
  display: inline-flex; align-items: center; padding: 3px 10px; border-radius: var(--r);
  font-size: 12px; line-height: 1.6; border: 1px solid var(--red-line); color: var(--red-deep); background: var(--red-tint);
}
.tag.gold { border-color: #E3D3AC; color: var(--gold-deep); background: var(--gold-tint); }
.tag.gray { border-color: var(--line-2); color: var(--ink-3); background: var(--paper-2); }
.tag-row { display: flex; flex-wrap: wrap; gap: 8px; }

/* 图片占位（待协会提供实拍素材）· 品牌化线描版 */
.ph {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 10px;
  background: radial-gradient(circle at 50% 42%, #26231A 0%, var(--paper-2) 62%, var(--paper-3) 100%);
  color: var(--ink-3); font-size: 13px; text-align: center; padding: 18px;
}
.ph::before {
  content: ""; position: absolute; inset: 9px; border: 1px solid var(--red-line);
  border-radius: 6px; pointer-events: none; opacity: .75;
}
.ph svg { width: 46px; height: 46px; color: var(--red); opacity: .82; position: relative; z-index: 1; }
.ph span { position: relative; z-index: 1; }
.ph .ph-note { font-size: 12px; opacity: .8; }
.thumb { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-2); border-bottom: 1px solid var(--line); }
.thumb.wide { aspect-ratio: 16 / 9; }
.thumb.tall { aspect-ratio: 3 / 4; }
.thumb img { width: 100%; height: 100%; object-fit: cover; }

/* 会员信息征集表 */
.jf-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 24px 0 30px; }
.jf-tip { font-size: 13px; color: var(--ink-3); }
.jf-mod { margin-bottom: 30px; }
.jf-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.jf-head h3 { font-size: 17.5px; margin: 0; }
.jf-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line); }
.jf-table th { width: 42%; text-align: left; font-weight: 500; padding: 9px 12px; background: var(--paper-2); border-bottom: 1px solid var(--line); vertical-align: top; }
.jf-table td { padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.jf-name { display: block; font-size: 14.5px; color: var(--ink); }
.jf-req { display: block; font-size: 12px; color: var(--red); margin-top: 2px; }
.jf-note { font-size: 13px; color: var(--ink-3); line-height: 1.7; }
.jf-blank { width: 34%; background: linear-gradient(var(--paper-2), var(--paper-2)) no-repeat left 12px bottom 14px / calc(100% - 24px) 1px; height: 34px; }
@media (max-width: 720px) {
  .jf-table th, .jf-table td { display: block; width: auto; }
  .jf-blank { display: none; }
}
@media print {
  .jf-wrap { display: block; }
  .jf-mod { break-inside: avoid; page-break-inside: avoid; }
  .jf-blank { height: 40px; }
}

/* 美食地图：站点实拍图与三图组 */
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ms-photo { margin: 12px 0 2px; border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--line); position: relative; aspect-ratio: 21 / 9; }
.ms-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ms-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 12px; font-size: 12px; color: #fff; background: linear-gradient(transparent, rgba(20,12,8,.62)); }
.gallery3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.g3-item { margin: 0; border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--line); position: relative; aspect-ratio: 4 / 3; background: var(--paper-2); }
.g3-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.g3-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 7px 12px; font-size: 12.5px; color: #fff; background: linear-gradient(transparent, rgba(20,12,8,.62)); }
@media (max-width: 720px) { .gallery3 { grid-template-columns: 1fr; } }

/* 详情页头图与图集（协会官方渠道图片） */
.detail-figure { margin: 0 0 28px; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--card); }
.detail-figure img { width: 100%; display: block; }
.detail-figure figcaption { padding: 10px 18px; font-size: 12.5px; color: var(--ink-3); background: var(--paper-2); border-top: 1px solid var(--line); }
.detail-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 0 0 26px; }
.detail-gallery img { width: 100%; height: 210px; object-fit: cover; border-radius: var(--r); border: 1px solid var(--line); display: block; }
.dg-item { margin: 0; }
.dg-item figcaption { font-size: 12.5px; color: var(--ink-3); text-align: center; padding: 6px 0 0; }
@media (max-width: 720px) { .detail-gallery img { height: 150px; } }

/* 卡片通用 */
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; height: 100%;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--sh-2); border-color: var(--red-line); }
.card-body { padding: 18px 20px 20px; }
.card-title { font-size: 18px; color: var(--ink); font-weight: 700; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card:hover .card-title { color: var(--red-deep); }
.card-text { font-size: 14px; color: var(--ink-2); margin: 10px 0 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card-meta { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--ink-3); margin-top: 14px; }

/* 新闻卡片 */
.news-card .card-body { display: flex; flex-direction: column; }
.news-card .nc-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.news-card .nc-date { font-size: 12.5px; color: var(--ink-3); font-variant-numeric: tabular-nums; }

/* 小吃卡片（图上文下） */
.snack-card { display: flex; flex-direction: column; }
.snack-card .card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.snack-card .sc-name { font-size: 17px; font-weight: 700; color: var(--ink); font-family: var(--font-display); letter-spacing: .04em; }
.snack-card .sc-region { font-size: 12.5px; color: var(--ink-3); margin-top: -2px; }
.snack-card .card-text { -webkit-line-clamp: 2; margin: 0; }

/* 厨师卡片：圆形头像占位 + 完整简介 + 整卡可点 */
.ph.circle { padding: 10px; gap: 3px; }
.ph.circle::before { inset: 5px; border-radius: 50%; }
.ph.circle svg { width: 30px; height: 30px; }
.ph.circle span { font-size: 11px; }
.ph.circle .ph-note { display: none; }
.chef-card { text-decoration: none; display: block; }
.chef-card .card-text { -webkit-line-clamp: unset; display: block; overflow: visible; }
.snack-card .tag-row { margin-top: auto; padding-top: 6px; }

/* 会员卡片 */
.member-card .card-body { display: flex; gap: 14px; align-items: flex-start; }
.member-logo {
  width: 58px; height: 58px; border-radius: 6px; flex-shrink: 0;
  display: grid; place-items: center; font-family: var(--font-display); font-size: 22px; font-weight: 700;
  background: var(--red-tint); color: var(--red-deep); border: 1px solid var(--red-line);
}
.member-card .card-title { font-size: 16px; }

/* 活动卡片 */
.act-card { display: grid; grid-template-columns: 210px 1fr; }
.act-card .thumb { border-bottom: none; border-right: 1px solid var(--line); }
.act-card .card-body { padding: 22px 24px; }
.act-date { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 62px; height: 62px; background: var(--gold); color: #17140E; border-radius: var(--r-md); flex-shrink: 0; font-family: var(--font-display); }
.act-date .d { font-size: 24px; font-weight: 700; line-height: 1.1; }
.act-date .m { font-size: 11px; opacity: .85; letter-spacing: .08em; }

/* ---------- 首页专区 ---------- */
/* 深色文化带 */
.band-dark { position: relative; background: var(--red-dark); color: var(--ink-2); overflow: hidden; }
.band-dark::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cg fill='none' stroke='%23E9D9B8' stroke-width='1.1'%3E%3Cpath d='M24 3 L45 24 L24 45 L3 24 Z'/%3E%3Cpath d='M24 11 L37 24 L24 37 L11 24 Z'/%3E%3Ccircle cx='24' cy='24' r='2.6'/%3E%3C/g%3E%3C/svg%3E");
  opacity: .14;
}
.band-dark .sec-head h2 { color: var(--ink); }
.band-dark .sec-head .sh-en { color: #D9B36A; }
.band-dark .sec-head .sh-rule { background: #D9B36A; }
.pillar { text-align: center; padding: 28px 22px; position: relative; z-index: 1; }
.pillar .p-seal { margin: 0 auto 16px; }
.pillar h3 { font-size: 19px; color: var(--ink); letter-spacing: .08em; }
.pillar p { font-size: 14px; color: var(--ink-2); margin: 12px 0 0; }
.pillar-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; position: relative; z-index: 1; }
.pillar + .pillar::before { content: ""; position: absolute; left: -10px; top: 20%; bottom: 20%; width: 1px; background: rgba(233, 217, 184, .25); }

/* CTA 带 */
.cta-band { background: var(--paper-2); text-align: center; }
.cta-band .cb-inner { max-width: 720px; margin: 0 auto; }
.cta-band h2 { font-size: clamp(24px, 3vw, 30px); letter-spacing: .1em; }
.cta-band p { color: var(--ink-2); margin: 14px 0 26px; }

/* 时间轴（文化页） */
.timeline { position: relative; max-width: 760px; margin: 0 auto; padding-left: 34px; }
.timeline::before { content: ""; position: absolute; left: 8px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(180deg, var(--gold), var(--red-line)); }
.tl-item { position: relative; padding: 0 0 30px 22px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-item::before {
  content: ""; position: absolute; left: -32px; top: 8px; width: 12px; height: 12px;
  background: var(--red); border: 2.5px solid var(--paper); border-radius: 50%; box-shadow: 0 0 0 2px var(--red-line);
}
.tl-era { font-family: var(--font-display); font-weight: 700; color: var(--red-deep); font-size: 17px; letter-spacing: .06em; }
.tl-text { color: var(--ink-2); font-size: 14.5px; margin-top: 6px; }

/* ---------- 列表页 ---------- */
.tabs { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 34px; }
.tab {
  padding: 9px 20px; border-radius: var(--r); border: 1px solid var(--line-2);
  background: var(--card); color: var(--ink-2); font-size: 14px; transition: all .2s;
}
.tab:hover { border-color: var(--red); color: var(--red); }
.tab.active { background: var(--gold); border-color: var(--gold); color: #17140E; font-weight: 600; }

.news-row { display: grid; grid-template-columns: 224px 1fr; gap: 26px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.news-row:first-of-type { border-top: 1px solid var(--line); }
.news-row .thumb { aspect-ratio: 16 / 10; border: 1px solid var(--line); border-radius: var(--r); border-bottom: 1px solid var(--line); }
.news-row .nr-body { display: flex; flex-direction: column; }
.news-row .nr-meta { display: flex; align-items: center; gap: 12px; font-size: 12.5px; color: var(--ink-3); margin-bottom: 8px; flex-wrap: wrap; }
.news-row h3 { font-size: 19px; color: var(--ink); }
.news-row:hover h3 { color: var(--red-deep); }
.news-row .nr-text { font-size: 14px; color: var(--ink-2); margin: 8px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-row .nr-more { margin-top: auto; padding-top: 12px; font-size: 13.5px; font-weight: 600; color: var(--red); }

.empty-tip { text-align: center; color: var(--ink-3); padding: 48px 0; font-size: 14.5px; }

/* 侧栏 */
.list-layout { display: grid; grid-template-columns: 1fr 300px; gap: 44px; align-items: start; }
.side-box { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; margin-bottom: 24px; }
.side-box h4 { font-size: 16px; color: var(--ink); padding-bottom: 12px; border-bottom: 1px solid var(--line); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.side-box h4::before { content: ""; width: 4px; height: 16px; background: var(--red); border-radius: 2px; }
.side-links li a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; font-size: 14px; color: var(--ink-2); border-bottom: 1px solid var(--line); }
.side-links li:last-child a { border-bottom: none; }
.side-links li a:hover { color: var(--red); padding-left: 4px; }
.side-links .sl-seal { color: var(--red); font-family: var(--font-display); font-weight: 700; }

/* ---------- 详情页 ---------- */
.article-layout { display: grid; grid-template-columns: 1fr 300px; gap: 44px; align-items: start; }
.article-head { border-bottom: 1px solid var(--line); padding-bottom: 22px; margin-bottom: 28px; }
.article-head h1 { font-size: clamp(24px, 3.2vw, 32px); letter-spacing: .02em; color: var(--ink); }
.article-meta { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin-top: 16px; font-size: 13.5px; color: var(--ink-3); }
.article-meta .am-item { display: inline-flex; align-items: center; gap: 6px; }
.article-meta svg { width: 14px; height: 14px; opacity: .7; }

.article { font-size: 16.5px; line-height: 1.9; color: var(--ink-2); }
.article h2 { font-size: 22px; color: var(--ink); margin: 1.9em 0 .8em; padding-left: 14px; border-left: 4px solid var(--red); letter-spacing: .04em; }
.article h3 { font-size: 18px; color: var(--ink); margin: 1.8em 0 .7em; }
.article p { margin: 0 0 1.1em; }
.article strong { color: var(--ink); }
.article blockquote {
  margin: 1.6em 0; padding: 16px 22px; background: var(--paper-2);
  border-left: 4px solid var(--gold); border-radius: 0 var(--r) var(--r) 0; color: var(--ink-2); font-size: 15.5px;
}
.article figure { margin: 1.8em 0; }
.article figure .fig-wrap { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.article figure .fig-wrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.article figure img { width: 100%; }
.article figcaption { text-align: center; font-size: 13px; color: var(--ink-3); margin-top: 10px; }
.article ul.dot { padding-left: 4px; }
.article ul.dot li { position: relative; padding-left: 22px; margin-bottom: .6em; }
.article ul.dot li::before { content: ""; position: absolute; left: 2px; top: .68em; width: 7px; height: 7px; background: var(--red); border-radius: 50%; }
.article table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: 14.5px; }
.article th, .article td { border: 1px solid var(--line-2); padding: 10px 14px; text-align: left; }
.article th { background: var(--paper-2); color: var(--ink); font-family: var(--font-display); font-weight: 700; }

.info-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 1.6em 0; }
.info-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 20px; }
.info-card .ic-label { font-size: 12.5px; color: var(--ink-3); letter-spacing: .06em; }
.info-card .ic-value { font-family: var(--font-display); font-size: 16px; color: var(--ink); font-weight: 700; margin-top: 6px; word-break: break-all; }

.prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 40px; }
.pn-card { display: flex; flex-direction: column; gap: 6px; padding: 18px 22px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); transition: all .2s; }
.pn-card:hover { border-color: var(--red); color: var(--red-deep); }
.pn-card .pn-label { font-size: 12.5px; color: var(--ink-3); }
.pn-card .pn-title { font-size: 15px; font-weight: 600; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.pn-card.next { text-align: right; }

.related { margin-top: 52px; }
.related h3 { font-size: 20px; margin-bottom: 22px; display: flex; align-items: center; gap: 10px; }
.related h3::before { content: ""; width: 4px; height: 20px; background: var(--red); border-radius: 2px; }

/* ---------- 组织架构 ---------- */
.org-tree { max-width: 860px; margin: 0 auto; }
.org-node { background: var(--card); border: 1.5px solid var(--red-line); border-radius: var(--r-lg); padding: 16px 22px; text-align: center; position: relative; }
.org-node .on-name { font-family: var(--font-display); font-size: 17px; font-weight: 700; color: var(--red-deep); }
.org-node .on-note { font-size: 12.5px; color: var(--ink-3); margin-top: 4px; }
.org-node.top { background: var(--red); border-color: var(--red); }
.org-node.top .on-name { color: #17140E; font-size: 19px; }
.org-node.top .on-note { color: #3A311E; }
.org-link { width: 2px; height: 26px; background: var(--red-line); margin: 0 auto; }
.org-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.org-row.four { grid-template-columns: repeat(4, 1fr); }
.org-dept { background: var(--paper-2); border: 1px dashed var(--line-2); border-radius: var(--r); padding: 12px 14px; text-align: center; font-size: 13.5px; color: var(--ink-2); }

/* 手风琴 */
.acc-item { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--card); margin-bottom: 14px; overflow: hidden; }
.acc-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 22px; background: none; border: none; font-size: 16px; font-weight: 600; color: var(--ink); text-align: left; font-family: var(--font-display); }
.acc-head:hover { color: var(--red-deep); }
.acc-head .acc-icon { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--red-tint); color: var(--red-deep); display: grid; place-items: center; font-size: 15px; transition: transform .25s; font-family: var(--sans); }
.acc-item.open .acc-head .acc-icon { transform: rotate(45deg); background: var(--gold); color: #17140E; }
.acc-body { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.acc-body .acc-inner { padding: 0 22px 20px; color: var(--ink-2); font-size: 14.5px; line-height: 1.9; }

/* ---------- 搜索页 ---------- */
.search-hero { background: linear-gradient(180deg, var(--paper-2), var(--paper)); padding: 52px 0 44px; text-align: center; border-bottom: 1px solid var(--line); }
.search-box { display: flex; max-width: 640px; margin: 26px auto 0; background: var(--card); border: 1.5px solid var(--line-2); border-radius: var(--r); overflow: hidden; transition: border-color .2s; }
.search-box:focus-within { border-color: var(--red); box-shadow: 0 0 0 4px rgba(163, 46, 34, .08); }
.search-box input { flex: 1; border: none; outline: none; padding: 14px 24px; font-size: 15.5px; background: transparent; color: var(--ink); }
.search-box button { border: none; background: var(--gold); color: #17140E; padding: 0 30px; font-size: 15px; font-weight: 600; }
.search-box button:hover { background: var(--red-deep); }
.search-count { font-size: 13.5px; color: var(--ink-3); margin: 22px 0 16px; }
.result-item { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: flex-start; }
.result-item .ri-type { flex-shrink: 0; margin-top: 2px; }
.result-item h3 { font-size: 16.5px; color: var(--ink); }
.result-item:hover h3 { color: var(--red-deep); }
.result-item .ri-text { font-size: 13.5px; color: var(--ink-2); margin-top: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.result-item mark { background: var(--gold-tint); color: var(--red-deep); padding: 0 2px; border-radius: 2px; }

/* 网格响应式（覆盖内联栅格） */
@media (max-width: 1080px) {
  .grid-4 { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 960px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .grid-2 { grid-template-columns: 1fr !important; }
}
@media (max-width: 640px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr !important; }
}

/* ---------- 页脚 ---------- */
.footer { background: #15140F; color: #A8A191; margin-top: 0; }
.footer-main { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding: 56px 0 40px; }
.footer .f-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.footer .f-brand img { width: 52px; height: 52px; border-radius: var(--r-md); }
.footer .f-brand .b-name { font-family: var(--font-display); font-size: 19px; color: #F3E9DA; font-weight: 700; letter-spacing: .08em; }
.footer .f-brand .b-en { font-size: 10px; letter-spacing: .2em; color: #8F8375; text-transform: uppercase; }
.footer .f-desc { font-size: 13.5px; line-height: 1.9; color: #9C9084; }
.footer h5 { font-size: 15px; color: #F3E9DA; margin: 0 0 16px; font-family: var(--font-display); letter-spacing: .1em; display: flex; align-items: center; gap: 8px; }
.footer h5::after { content: ""; flex: 1; height: 1px; background: rgba(243, 233, 218, .14); }
.footer .f-links li { margin-bottom: 10px; }
.footer .f-links a { color: #BDB0A0; font-size: 13.5px; }
.footer .f-links a:hover { color: var(--gold-lit); padding-left: 4px; }
.footer .f-contact li { display: flex; gap: 10px; font-size: 13.5px; margin-bottom: 12px; line-height: 1.7; }
.footer .f-contact svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 5px; color: var(--gold); }
.footer .f-qr { display: flex; gap: 14px; align-items: center; margin-top: 16px; }
.qr-box { width: 84px; height: 84px; background: #221F18; border: 1px solid rgba(199, 162, 90, .28); border-radius: var(--r-lg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #A8A191; font-size: 11px; text-align: center; padding: 6px; flex-shrink: 0; line-height: 1.5; }
.qr-box svg { width: 22px; height: 22px; }
.footer .f-bottom { border-top: 1px solid rgba(243, 233, 218, .1); padding: 18px 0; font-size: 12.5px; color: #857A6D; }
.footer .f-bottom .container { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: space-between; align-items: center; }
.footer .f-bottom a { color: #A79B8D; }

/* ---------- 404 ---------- */
.nf-wrap { text-align: center; padding: 90px 24px; }
.nf-wrap .nf-code { font-family: var(--font-display); font-size: clamp(80px, 14vw, 140px); font-weight: 700; color: var(--red); line-height: 1; letter-spacing: .06em; }
.nf-wrap .nf-sky { width: min(420px, 80%); margin: 26px auto 8px; }
.nf-wrap h1 { font-size: 22px; color: var(--ink); margin-top: 18px; }
.nf-wrap p { color: var(--ink-2); margin: 12px 0 28px; }

/* ---------- 返回顶部 ---------- */
.back-top {
  position: fixed; right: 22px; bottom: 26px; width: 44px; height: 44px; border-radius: 50%;
  background: var(--red); color: #fff; border: none; display: grid; place-items: center;
  box-shadow: var(--sh-2); opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .3s; z-index: 80;
}
.back-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.back-top:hover { background: var(--red-deep); }
.back-top svg { width: 18px; height: 18px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .list-layout, .article-layout { grid-template-columns: 1fr; }
  .side-box { display: none; }
  .pillar-grid { grid-template-columns: repeat(2, 1fr); }
  .pillar + .pillar::before { display: none; }
}
@media (max-width: 960px) {
  .grid-3 { grid-template-columns: repeat(2, 1fr) !important; }
  .nav-menu {
    position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0;
    background: var(--paper); flex-direction: column; align-items: stretch; gap: 0;
    padding: 18px 24px 40px; overflow-y: auto; height: auto;
    transform: translateX(100%); transition: transform .3s; border-top: 1px solid var(--line);
  }
  .nav-menu.open { transform: translateX(0); }
  .nav-item { height: auto; border-bottom: 1px solid var(--line); }
  .nav-item > a { padding: 15px 4px; justify-content: space-between; }
  .nav-item > a::after { display: none; }
  .dropdown {
    position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none;
    border: none; padding: 0 0 10px 16px; min-width: 0; display: none;
  }
  .nav-item.expand .dropdown { display: block; }
  .nav-toggle { display: block; margin-left: auto; }
  .nav-cta .btn-red { display: none; }
  .act-card { grid-template-columns: 1fr; }
  .act-card .thumb { border-right: none; border-bottom: 1px solid var(--line); aspect-ratio: 16/9; }
  .org-row, .org-row.four { grid-template-columns: repeat(2, 1fr); }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 720px) {
  .sec { padding: 48px 0; }
  .news-row { grid-template-columns: 1fr; gap: 14px; }
  .news-row .thumb { aspect-ratio: 16/9; }
  .info-cards { grid-template-columns: 1fr; }
  .prev-next { grid-template-columns: 1fr; }
  .pillar-grid { grid-template-columns: 1fr; }
  .hero-inner { padding-top: 44px; }
  .topbar .tb-hide-sm { display: none; }
  .footer-main { grid-template-columns: 1fr; }
  .brand .b-name { font-size: 18px; }
  .brand .b-en { display: none; }
  .topbar .tb-item { white-space: normal; overflow-wrap: anywhere; }
  .grid-4, .grid-3 { grid-template-columns: 1fr !important; }
  .heritage-card .hc-name { font-size: 16px; }
}

/* ---------- 动效与可访问性 ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  html { scroll-behavior: auto; }
}
/* 默认可见；仅当 main.js 接管动画时才隐藏 */
html.js-rv .reveal:not(.in) { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ---- 非遗标签 / 详情盒 ---- */
.tag.heritage { background: var(--gold); color: #17140E; border-color: var(--gold); font-weight: 600; }
.heritage-box { margin: 18px 0 4px; background: linear-gradient(180deg, #26231A, #1E1C16);
  border: 1px solid var(--line); border-left: 4px solid var(--red); border-radius: var(--r-lg); padding: 16px 20px; }
.heritage-box .hb-head { font-size: 13px; font-weight: 700; color: var(--red); letter-spacing: .04em; }
.heritage-box .hb-text { margin: 8px 0 6px; font-size: 15px; font-weight: 600; color: var(--ink); }
.heritage-box .hb-note { margin: 0; font-size: 12.5px; color: var(--ink-2); }
.heritage-box .hb-row { display: flex; gap: 10px; margin-top: 8px; font-size: 13.5px; }
.heritage-box .hb-k { color: var(--ink-2); flex: 0 0 64px; }
.heritage-box .hb-v { color: var(--ink); font-weight: 600; }

/* ---- 非遗名录页 ---- */
.hg-batch { font-size: 19px; color: var(--red); margin: 6px 0 18px; padding-left: 12px;
  border-left: 4px solid var(--gold); }
.heritage-card { padding: 18px 18px 16px; display: block; text-decoration: none; position: relative; }
.heritage-card .hc-link::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.heritage-card .hc-src { position: relative; z-index: 1; }
.heritage-card .hc-name { font-size: 16.5px; font-weight: 700; color: var(--ink); line-height: 1.4; }
.heritage-card .hc-meta { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 6px; }
.heritage-card .hc-region { font-size: 12.5px; color: var(--ink-2);
  background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r); padding: 2px 10px; }
.heritage-card .hc-batch { font-size: 12.5px; color: var(--gold-lit);
  background: #2A2418; border: 1px solid rgba(199, 162, 90, .30); border-radius: var(--r); padding: 2px 10px; }
.heritage-card .hc-cat { font-size: 12px; color: var(--ink-2);
  background: #242219; border: 1px solid rgba(240, 235, 222, .18); border-radius: var(--r); padding: 2px 10px; }
.heritage-card .hc-unit { font-size: 13px; color: var(--ink-2); margin-bottom: 10px; }
.heritage-card .hc-src { font-size: 12.5px; color: var(--red); }
.heritage-card .hc-src:hover { text-decoration: underline; }

/* ---- 数据表格 ---- */
.table-wrap { overflow-x: auto; margin: 14px 0 6px; border-radius: var(--r-lg); border: 1px solid var(--line); }
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 560px; }
.data-table th, .data-table td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--line); }
.data-table thead th { background: var(--paper-2); color: var(--ink); font-weight: 700; }
.data-table tbody tr:nth-child(even) { background: rgba(240, 235, 222, .035); }
.data-table tbody tr:hover { background: rgba(199, 162, 90, .10); }

.grid-3 { }

/* ---- 行业背景数据 ---- */
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.stat { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 14px; text-align: center; }
.stat-num { font-size: clamp(28px, 3vw, 34px); font-weight: 700; color: var(--red); line-height: 1; font-family: var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.stat-num small { font-size: 14px; font-weight: 600; margin-left: 2px; color: var(--ink-2); }
.stat-label { margin-top: 8px; font-size: 12.5px; color: var(--ink-2); }

/* ---- 非遗美食地图 ---- */
.map-route { display: flex; flex-direction: column; gap: 14px; margin: 22px 0 8px; }
.map-stop { display: flex; gap: 18px; align-items: flex-start; background: var(--paper-2);
  border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 20px; }
.ms-no { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; background: var(--gold); color: #17140E;
  display: grid; place-items: center; font-weight: 800; font-family: var(--font-display); }
.ms-body { flex: 1; }
.ms-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ms-head h3 { margin: 0; font-size: 18px; }
.ms-note { font-size: 12.5px; color: var(--ink-2); }
.ms-foods { margin-top: 10px; font-size: 13.5px; color: var(--ink-2); }
.ms-foods-label { font-weight: 600; color: var(--ink); margin-right: 8px; }
.lede { font-size: 15.5px; line-height: 1.9; color: var(--ink); }
.src-note { font-size: 12.5px; color: var(--ink-2); background: var(--paper-2);
  border: 1px dashed var(--line); border-radius: var(--r); padding: 12px 14px; margin-top: 16px; word-break: break-all; }
.src-note a { color: var(--red); }

@media (max-width: 720px) {
  .stat-row { grid-template-columns: repeat(2, 1fr); }
  .map-stop { flex-direction: column; gap: 10px; }
}

/* ---- 无障碍：跳转链接与键盘焦点 ---- */
.skip-link {
  position: absolute; left: 12px; top: -64px; z-index: 200;
  background: var(--gold); color: #17140E; padding: 10px 18px; border-radius: var(--r);
  font-size: 14px; text-decoration: none; transition: top .2s ease;
}
.skip-link:focus { top: 12px; outline: 3px solid #fff; outline-offset: 2px; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; border-radius: 3px; }
img:focus-visible, svg:focus-visible, a:focus-visible .seal { outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .skip-link { transition: none; } }

/* ---- 404 页内嵌搜索 ---- */
.nf-search { display: flex; gap: 10px; justify-content: center; max-width: 460px; margin: 22px auto 6px; }
.nf-search input { flex: 1; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--r); font-size: 15px; background: var(--card); color: var(--ink); }
.nf-search .btn { white-space: nowrap; }

/* ---- 打印样式 ---- */
@media print {
  .nav, .topbar, .back-top, .skip-link, .cta-band { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  body { background: #fff !important; color: #111 !important; }
  a { color: #111 !important; text-decoration: underline; }
  .card, .info-card, .heritage-card, .map-stop { break-inside: avoid; }
}

/* ---- 设计升级·编辑感细节（大牌实证：细线+偏移下划线） ---- */
.article a, .lede a, .ms-foods a {
  text-decoration: underline;
  text-decoration-color: var(--red-line);
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  transition: text-decoration-color .2s, color .2s;
}
.article a:hover, .lede a:hover, .ms-foods a:hover { text-decoration-color: var(--red); color: var(--red-deep); }
.jf-note a { text-decoration: underline; text-underline-offset: 3px; }

/* ════════════════════════════════════════════════════════════════
   设计升级层 · design-taste-plus
   原则：原有内容 / 结构 / 品牌色（闽南红·宣纸金）一律不变；
   仅以视觉层——材质、光影、节奏、动效、装饰母题——提升质感。
   纯 CSS 实现，对全站 71+ 页统一生效，可整体回退。
   ════════════════════════════════════════════════════════════════ */

/* ---------- 设计令牌增强 ---------- */
:root {
  --r-xl: 18px;
  --sh-card: 0 2px 5px rgba(42, 37, 33, .05), 0 14px 30px rgba(42, 37, 33, .07);
  --sh-pop: 0 8px 18px rgba(42, 37, 33, .10), 0 28px 54px rgba(42, 37, 33, .13);
  --accent-grad: linear-gradient(135deg, var(--red) 0%, var(--red-deep) 100%);
  --gold-grad: linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
  --line-soft: rgba(240, 235, 222, .12);
}

/* ---------- 全站纸纹质感（极淡颗粒，叠加层不影响内容与交互） ---------- */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.85'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px; opacity: .035; mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) { body::after { display: none; } }

/* ---------- 首页英雄区：光影纵深 + 入场 ---------- */
.hero::before {
  content: ""; position: absolute; left: 50%; top: -12%; transform: translateX(-50%);
  width: min(960px, 92vw); height: 560px; z-index: 1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(184, 137, 58, .20), rgba(163, 46, 34, .06) 52%, transparent 72%);
  filter: blur(6px);
}
.hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 130px; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(21, 20, 15, .92));
}
.hero-inner { position: relative; z-index: 2; }
@keyframes heroRise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.hero-inner > * { animation: heroRise .7s cubic-bezier(.2, .7, .2, 1) both; }
.hero-inner > *:nth-child(1) { animation-delay: .04s; }
.hero-inner > *:nth-child(2) { animation-delay: .10s; }
.hero-inner > *:nth-child(3) { animation-delay: .16s; }
.hero-inner > *:nth-child(4) { animation-delay: .22s; }
.hero-inner > *:nth-child(5) { animation-delay: .28s; }
.hero-inner > *:nth-child(6) { animation-delay: .34s; }
@media (prefers-reduced-motion: reduce) { .hero-inner > * { animation: none; } }
.hero-stats {
  background: rgba(30, 28, 22, .72); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-radius: var(--r-lg); box-shadow: var(--sh-1);
}
.hero-skyline { margin-top: 46px; filter: drop-shadow(0 18px 26px rgba(42, 37, 33, .10)); }

/* ---------- 区块标题：母题装饰（闽南回纹/印章意向） ---------- */
.sec-head::before {
  content: ""; display: block; width: 34px; height: 34px; margin: 0 auto 14px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%3E%3Cg%20fill='none'%20stroke='%23C7A25A'%20stroke-width='1.4'%3E%3Crect%20x='9'%20y='9'%20width='22'%20height='22'%20transform='rotate(45%2020%2020)'/%3E%3Crect%20x='15'%20y='15'%20width='10'%20height='10'%20transform='rotate(45%2020%2020)'%20stroke='%238F6B24'/%3E%3C/g%3E%3Ccircle%20cx='20'%20cy='20'%20r='2.1'%20fill='%23A32E22'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .92;
}
.sec-head.left::before { margin: 0 0 12px; }

/* ---------- 卡片：立体化 + 顶部渐变描边 + 图片缩放 ---------- */
.card { position: relative; border-radius: var(--r-lg); border-color: var(--line-soft); box-shadow: var(--sh-card); }
.card::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; pointer-events: none;
  border-radius: var(--r-lg) var(--r-lg) 0 0; background: var(--accent-grad);
  transform: scaleX(0); transform-origin: left center; transition: transform .35s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--sh-pop); border-color: var(--red-line); }
.card:hover::after { transform: scaleX(1); }
.thumb img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.card:hover .thumb img { transform: scale(1.05); }
.card-title { letter-spacing: .02em; }

/* ---------- 深色文化带：支柱微交互 ---------- */
.pillar { transition: transform .3s ease; }
.pillar:hover { transform: translateY(-4px); }

/* ---------- 按钮：完整状态 + 光泽扫过 ---------- */
.btn { position: relative; overflow: hidden; }
.btn::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; transform: translateX(-120%);
  background: linear-gradient(120deg, transparent 35%, rgba(255, 255, 255, .25) 50%, transparent 65%);
  transition: transform .6s ease;
}
.btn:hover::before { transform: translateX(120%); }
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 3px; }
.btn[disabled], .btn.is-loading { opacity: .6; pointer-events: none; }

/* ---------- 标签 / 分类：胶囊化 ---------- */
.tag { border-radius: 999px; padding: 3px 12px; }
.tab { border-radius: 999px; }

/* ---------- 顶部导航：滚动后金色描边 ---------- */
.nav.scrolled { box-shadow: 0 4px 22px rgba(42, 37, 33, .10); border-bottom-color: transparent; background: rgba(21, 20, 15, .96); }
.nav.scrolled::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: .7;
}

/* ---------- 页脚：金色顶饰 ---------- */
.footer { position: relative; }
.footer::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
}

/* ---------- 区块节奏微调 ---------- */
.sec { padding: clamp(76px, 8.5vw, 120px) 0; }
.page-hero { background: linear-gradient(180deg, var(--paper-2), var(--paper)); }

/* ---------- CTA 带：升级为质感卡片 ---------- */
.cta-band .cb-inner {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-xl);
  padding: 46px 44px; box-shadow: var(--sh-card);
}
.cta-band .cb-inner .btn-red { box-shadow: 0 10px 24px rgba(163, 46, 34, .22); }

/* ════════════════════════════════════════════════════════════════
   高级感精修层 · 第二版（去除廉价感、强化克制与质感）
   原则：内容/结构/品牌色不变；仅深化视觉语言。
   ════════════════════════════════════════════════════════════════ */

/* 1) 修复标题"伪造粗体"：文楷仅 400 字重，700 会触发 faux-bold 发虚。
      统一回到 400，以字号 / 字距 / 色彩建立层级，恢复笔意。 */
.hero h1, .sec-head h2, .page-hero h1, .article-head h1,
.hero-slogan, .brand .b-name, .seal, .snack-card .sc-name,
.card-title, .act-date, .hs-num, .tl-era, .ms-no,
.member-logo, .footer .b-brand .b-name { font-weight: 400; }

/* 2) 英雄区：编辑感"封面"——金色双线框 + 暖光渐变 + 舒展排版 */
.hero {
  background:
    radial-gradient(120% 90% at 50% -12%, rgba(199, 162, 90, .12), transparent 58%),
    linear-gradient(180deg, #1B1913 0%, var(--paper) 64%, var(--paper-2) 100%);
}
/* 右侧招牌小吃大图：清晰可辨 + 金色名牌，与左栏等高满幅，纯显示层处理，未改原图 */
.hero-feature { position: relative; margin: 0; border-radius: var(--r-xl); overflow: hidden;
  border: 1px solid rgba(184, 137, 58, .42); box-shadow: var(--sh-pop); min-height: 460px; }
.hero-feature img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
.hero-feature-cap {
  position: absolute; left: 16px; bottom: 16px; pointer-events: none;
  font-family: var(--font-display); font-size: 15px; letter-spacing: .08em; color: #fff;
  padding: 9px 16px; border-radius: 999px;
  background: rgba(42, 37, 33, .58); border: 1px solid rgba(255, 255, 255, .28);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .22);
}
.hero-copy {
  position: relative; max-width: 560px;
  padding: 46px 46px 42px; border-radius: var(--r-xl);
  background: linear-gradient(180deg, rgba(30, 28, 22, .92), rgba(30, 28, 22, .78));
  box-shadow: var(--sh-card), inset 0 0 0 1px rgba(255, 255, 255, .7);
}
.hero-copy::before {
  content: ""; position: absolute; inset: 10px; pointer-events: none;
  border: 1px solid rgba(184, 137, 58, .32); border-radius: calc(var(--r-xl) - 6px);
}
.hero h1 { font-size: clamp(40px, 6vw, 68px); letter-spacing: .09em; line-height: 1.28; }
.hero h1 em { color: var(--red); }
.hero-eyebrow { letter-spacing: .38em; gap: 14px; }
.hero-eyebrow::before, .hero-eyebrow::after {
  width: 52px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold) 60%, var(--red));
}
.hero-desc { font-size: 16.5px; }

/* 3) 按钮：金属渐变 + 既有光泽扫过，去掉扁平填色 */
.btn-red {
  background: linear-gradient(135deg, #D3AF68 0%, #A8823C 100%);
  box-shadow: 0 6px 16px rgba(120, 90, 35, .22);
  color: #17140E;
}
.btn-red:hover { background: linear-gradient(135deg, #E3C888 0%, #B8893A 100%); color: #17140E; }
.btn-gold {
  background: linear-gradient(135deg, #CBA85F 0%, #8F6B24 100%);
  box-shadow: 0 6px 16px rgba(143, 107, 36, .24);
}
.btn-gold:hover { background: linear-gradient(135deg, #B8964F 0%, #755615 100%); }
.btn-line { border-color: var(--gold); color: var(--gold-deep); }
.btn-line:hover { background: var(--gold); border-color: var(--gold); color: #17140E; }

/* 4) 卡片：金线描边 + 克制悬停（去促销感红顶条） */
.card { border-color: var(--line-soft); box-shadow: var(--sh-card); }
.card::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; pointer-events: none;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: linear-gradient(90deg, var(--gold) 0%, var(--red) 100%);
  opacity: .45; transform: scaleX(0); transform-origin: left center;
  transition: transform .35s ease, opacity .35s ease;
}
.card:hover { transform: translateY(-5px); box-shadow: var(--sh-pop); border-color: #E3D3AC; }
.card:hover::after { transform: scaleX(1); opacity: 1; }

/* 5) 深色文化带：金晕 + 玻璃支柱 */
.band-dark {
  background:
    radial-gradient(100% 62% at 50% 0%, rgba(231, 201, 140, .22), transparent 56%),
    var(--red-dark);
}
.pillar {
  border: 1px solid rgba(231, 201, 140, .28); border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.pillar:hover {
  transform: translateY(-6px); border-color: rgba(231, 201, 140, .55);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .30), inset 0 1px 0 rgba(255, 255, 255, .14);
}
.pillar + .pillar::before { background: rgba(231, 201, 140, .22); }

/* 6) 区块标题：更精致的金色母题与分隔 */
.sec-head .sh-en { letter-spacing: .36em; }
.sec-head .sh-rule {
  width: 58px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--red) 50%, var(--gold) 70%, transparent);
}
.sec-head::before { opacity: 1; filter: drop-shadow(0 2px 4px rgba(163, 46, 34, .12)); }

/* 7) 页脚：厚润深色 + 金顶饰（保留） */
.footer { background: radial-gradient(120% 80% at 50% 0%, #221E16, #15140F 72%); }

/* 8) 引用 / 非遗盒：更温润的纸金底 */
.article blockquote {
  border-left: 3px solid var(--gold);
  background: linear-gradient(180deg, #26231A, #1E1C16);
}
.heritage-box { background: linear-gradient(180deg, #26231A, #1E1C16); }

/* 9) 页面头图：更舒展 + 金色细线 */
.page-hero { background: linear-gradient(180deg, #1E1C16, var(--paper)); padding: 52px 0 44px; }

/* 10) CTA 卡片：金顶饰 */
.cta-band .cb-inner {
  position: relative;
  background: linear-gradient(180deg, #221F18, #1E1C16);
  border-top: 1px solid var(--line);
}
.cta-band .cb-inner::before {
  content: ""; position: absolute; top: -1px; left: 50%; transform: translateX(-50%);
  width: 128px; height: 3px; border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, var(--gold), var(--red), var(--gold));
}

/* 11) 移动端：英雄分栏堆叠，图置于文上，框内缩避免拥挤 */
@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; gap: 26px; padding-top: 44px; }
  .hero-feature { order: -1; min-height: 0; aspect-ratio: 16 / 10; }
  .hero-feature img { position: static; }
}
@media (max-width: 720px) {
  .hero-inner { grid-template-columns: 1fr; gap: 22px; padding: 40px 22px 36px; }
  .hero-copy { padding: 34px 26px 30px; }
  .hero-copy::before { inset: 7px; border-radius: 8px; }
  .hero h1 { letter-spacing: .06em; }
}


/* ===== 《漳州小吃》官方画册 ===== */
.al-intro{display:grid;grid-template-columns:280px 1fr;gap:36px;align-items:start;margin:8px 0 48px}
.al-cover img{width:100%;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.al-intro-txt h2{font-size:30px;margin:0 0 8px}
.al-pub{color:var(--ink-2,#666);font-size:14px;margin:0 0 16px}
.al-intro-txt p{line-height:1.9;margin:0 0 12px}
.al-note{font-size:13px;color:var(--ink-3,#888);line-height:1.8;background:var(--paper-2);border-left:3px solid var(--gold);padding:10px 14px;border-radius:0 4px 4px 0}
.al-sec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:18px;margin-bottom:46px}
.al-sec-card{display:block;padding:22px;border:1px solid rgba(199, 162, 90, .26);border-radius:8px;background:var(--card);text-decoration:none;color:inherit;transition:.2s}
.al-sec-card:hover{border-color:var(--gold);box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}
.al-sec-no{font-size:12px;letter-spacing:.12em;color:#b08d3f;font-weight:700}
.al-sec-card h3{margin:8px 0 2px;font-size:21px}
.al-sec-en{font-size:11px;letter-spacing:.14em;color:var(--ink-3)}
.al-sec-card p{font-size:13px;color:var(--ink-2,#666);line-height:1.75;margin:12px 0}
.al-sec-meta{font-size:12px;color:var(--ink-3);border-top:1px dashed rgba(240, 235, 222, .18);padding-top:10px}
.al-group{margin:0 0 30px}
.al-group h3{font-size:18px;margin:0 0 12px;display:flex;align-items:baseline;gap:10px}
.al-group h3 span{font-size:12px;color:var(--ink-3);font-weight:400}
.al-chips{display:flex;flex-wrap:wrap;gap:9px}
.al-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(199, 162, 90, .26);border-radius:20px;background:var(--card);font-size:13.5px;text-decoration:none;color:inherit}
.al-chip:hover{background:rgba(199, 162, 90, .10);border-color:var(--gold)}
.al-chip small{font-size:11px;color:var(--ink-3)}
.al-lead{font-size:16px;line-height:1.9;margin:0 0 10px}
.al-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin:22px 0 34px}
.al-page-card{display:block;text-align:center;text-decoration:none;color:inherit;border:1px solid rgba(240, 235, 222, .14);border-radius:6px;padding:8px;background:var(--card);transition:.2s}
.al-page-card:hover{border-color:var(--gold);box-shadow:0 6px 18px rgba(0,0,0,.09)}
.al-page-card img{width:100%;height:auto;border-radius:3px;display:block}
.al-page-card span{display:block;font-size:12px;color:var(--ink-3);margin-top:7px}
.al-prevnext{display:flex;justify-content:space-between;gap:12px;border-top:1px solid rgba(240, 235, 222, .14);padding-top:20px;font-size:14px}
.al-prevnext a{color:var(--gold);text-decoration:none}
.al-prevnext a:hover{text-decoration:underline}
.al-reader{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:34px;align-items:start}
.al-full{margin:0}
.al-full img{width:100%;height:auto;border-radius:6px;box-shadow:0 8px 28px rgba(0,0,0,.13);display:block}
.al-full figcaption{font-size:12px;color:var(--ink-3);text-align:center;margin-top:10px;line-height:1.7}
.al-ocr-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--gold);padding-bottom:10px;margin-bottom:14px}
.al-ocr-head h2{font-size:21px;margin:0}
.al-ocr-head span{font-size:11px;letter-spacing:.1em;color:var(--ink-3)}
.al-ocr p{line-height:1.95;font-size:14.5px;margin:0 0 10px;text-align:justify}
.al-thumbs{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
.al-thumb{display:block;width:130px;text-align:center;text-decoration:none;color:inherit;font-size:12px}
.al-thumb img{width:100%;border:1px solid rgba(240, 235, 222, .14);border-radius:4px;display:block}
.al-thumb span{display:block;margin-top:5px;color:var(--ink-3)}
@media(max-width:860px){.al-intro,.al-reader{grid-template-columns:1fr}.al-cover{max-width:240px}}


/* ════════════════════════════════════════════════════════════════
   v3 统一层 · 黑金装帧 + 全站图片统一圆角矩形
   放在最后，确保覆盖前面所有 border-radius: 0 / 6px 的旧值
   ════════════════════════════════════════════════════════════════ */
img { border-radius: var(--r-img); }
img[src$=".svg"] { border-radius: 0; }               /* 天际线等 SVG 装饰不圆角 */
.brand img, .footer .f-brand img { border-radius: 50%; }

/* overflow:hidden 的图片容器同步圆角，否则会把图片的圆角裁成直角 */
.thumb, .ms-photo, .g3-item, .detail-figure, .detail-gallery img,
.article figure .fig-wrap, .hero-feature, .news-row .thumb, .act-card .thumb,
.al-full, .al-cover, .al-thumb, .al-page-card, .al-page-grid > a,
.card, .snack-card, .act-card, .side-box, .info-card, .pn-card,
.acc-item, .stat, .hero-copy, .cta-band .cb-inner, .table-wrap {
  border-radius: var(--r-img);
}
.card, .snack-card, .act-card { overflow: hidden; }
.al-thumb img, .al-page-card img, .al-cover img, .al-full img { border-radius: var(--r-img); }


/* ════════════════════════════════════════════════════════════════
   v3.1 全站统一层 · 内页墨底金字（与首页同一套黑金）
   ════════════════════════════════════════════════════════════════ */
body { background-color: var(--paper); }
body::before { opacity: .35; }

input, textarea, select { background-color: var(--card); color: var(--ink); border-color: var(--line-2); }
input::placeholder, textarea::placeholder { color: var(--ink-3); opacity: 1; }

/* 导航（非首页）深底浅字 */
.nav, .nav.scrolled { background-color: rgba(21, 20, 15, .94); }
.nav .brand .b-name, .nav-item > a, .nav-search, .nav-toggle { color: var(--ink); }
.nav-item:hover > a, .nav-item.active > a { color: var(--gold-lit); }
.nav-item:hover > a::after, .nav-item.active > a::after { background: var(--gold); }
.nav-toggle span { background: var(--ink); }
.dropdown { background: var(--paper-2); border-color: rgba(199, 162, 90, .26); }
.dropdown a { color: var(--ink-2); }
.dropdown a:hover { background: rgba(199, 162, 90, .12); color: var(--gold-lit); }

/* 卡片 / 区块：统一深底 + 暗金细线 + 统一圆角 */
.card, .side-box, .info-card, .pn-card, .stat, .acc-item, .org-node,
.al-sec-card, .al-chip, .al-page-card, .al-note, .heritage-box,
.search-box, .hero-stats, .cta-band .cb-inner, .table-wrap {
  border-color: rgba(199, 162, 90, .22);
  border-radius: var(--r-img);
}
.card, .al-sec-card, .al-page-card { background: var(--card); }
.hero-stats { background: rgba(30, 28, 22, .72); }
.data-table th, .data-table td { border-color: var(--line); }
.article blockquote { border-left-color: var(--gold); }

/* 画册：文字层级在深底上提亮 */
.al-intro-txt h2, .al-sec-card h3, .al-group h3, .al-ocr-head h2 { color: var(--ink); }
.al-pub, .al-note, .al-sec-card p, .al-lead, .al-ocr p { color: var(--ink-2); }
.al-sec-no { color: var(--gold-lit); }
.al-full figcaption, .al-page-card span, .al-thumb span { color: var(--ink-3); }


/* ════════════════════════════════════════════════════════════════
   v7 统一层 · 黑金装帧收尾
   ════════════════════════════════════════════════════════════════ */
.btn-red, .btn-red:hover, .btn-gold, .btn-gold:hover,
.btn-line:hover, .org-node.top .on-name { color: #17140E; }
/* 所有内容图统一圆角矩形（SVG 装饰除外） */
img:not([src$=".svg"]) { border-radius: var(--r-img); }
/* 品牌 logo：全站统一为圆形印章，不受通用图片圆角影响 */
body .brand img, body .footer .f-brand img { border-radius: 50%; }


/* ── 章程公示说明框（v11） ─────────────────────────────── */
.notice-box {
  background: var(--paper-2); border: 1px solid var(--line);
  border-left: 3px solid var(--gold); border-radius: var(--r-lg);
  padding: 22px 26px; margin: 0 0 26px;
}
.notice-box .nb-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.notice-box .nb-tag {
  font-family: var(--font-display); font-size: 13px; letter-spacing: .12em;
  color: #17140E; background: var(--gold); border-radius: 999px; padding: 4px 14px;
}
.notice-box .nb-date { font-size: 12.5px; color: var(--ink-3); letter-spacing: .06em; }
.notice-box p { margin: 0 0 9px; font-size: 15px; line-height: 1.9; color: var(--ink-2); }
.notice-box .nb-meta { font-size: 12.5px; color: var(--ink-3); margin-bottom: 0; }
@media (max-width: 640px) {
  .notice-box { padding: 18px 18px; }
  .notice-box p { font-size: 14px; }
}

/* ── v12 · 移动端抽屉菜单统一修正（须位于所有规则之后） ─────────── */
@media (max-width: 960px) {
  /* 关键：不再用 flex，避免菜单项被压缩而内容溢出重叠 */
  .nav-menu {
    display: block !important;
    box-sizing: border-box;
    padding: 6px 22px 56px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .nav-item {
    display: block; height: auto !important; flex: none !important;
    border-bottom: 1px solid var(--line);
  }
  .nav-item > a {
    height: auto !important; min-height: 56px; box-sizing: border-box;
    padding: 15px 2px !important; font-size: 16px;
    display: flex; align-items: center; justify-content: space-between;
  }
  .nav-item .caret {
    flex: none; margin-left: 12px;
    transform: rotate(45deg) translateY(-1px); transition: transform .2s;
  }
  .nav-item.expand .caret { transform: rotate(225deg) translateY(0); }

  /* 子菜单：取消浅色卡片，改为左侧细金线 + 逐行链接 */
  .nav-item .dropdown, .nav .nav-item .dropdown {
    position: static !important; transform: none !important;
    opacity: 1 !important; visibility: visible !important;
    box-shadow: none !important; background: transparent !important;
    border: 0 !important;
    border-left: 1px solid rgba(199, 162, 90, .32) !important;
    border-radius: 0 !important; min-width: 0 !important; width: auto !important;
    margin: 0 0 14px 3px !important; padding: 0 0 0 16px !important;
    display: none;
  }
  .nav-item.expand > .dropdown { display: block !important; }
  .nav-item .dropdown a, .nav .nav-item .dropdown a {
    display: block; box-sizing: border-box; width: auto;
    padding: 11px 12px !important; margin: 0 !important;
    font-size: 14.5px; line-height: 1.55;
    color: var(--ink-2) !important; background: transparent !important;
    border: 0 !important; border-bottom: 1px solid rgba(199, 162, 90, .14) !important;
    border-radius: 0 !important; white-space: normal;
  }
  .nav-item .dropdown a:last-child { border-bottom: 0 !important; }
  .nav-item .dropdown a:hover, .nav-item .dropdown a:active {
    background: rgba(199, 162, 90, .10) !important;
    color: var(--gold-lit) !important;
  }
}

/* ── v13 · 页脚备案公示（ICP 号 + 公安联网备案） ───────────────── */
.f-beian { display: inline-flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.f-beian a {
  color: var(--ink-3); text-decoration: none; letter-spacing: .02em;
  transition: color .2s;
}
.f-beian a:hover, .f-beian a:focus-visible { color: var(--gold-lit); }
.f-beian a.f-police { display: inline-flex; align-items: center; gap: 6px; }
.f-beian a.f-police svg { width: 15px; height: 15px; flex: none; }
@media (max-width: 640px) {
  .f-beian { gap: 8px 14px; }
}

/* ── v13b · 备案链接特异性：压过 .footer .f-bottom a ───────────── */
.footer .f-bottom .f-beian a { color: #A79B8D; }
.footer .f-bottom .f-beian a:hover,
.footer .f-bottom .f-beian a:focus-visible { color: var(--gold-lit); }
