.info-grid, .service-grid, .digital-cards, .contact-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; }
.info-panel, .service-block, .digital-card, .news-column { padding: 26px; }
.info-panel span, .digital-card span { display: block; color: var(--muted); }
.info-panel strong, .digital-card strong { display: block; margin: 8px 0; color: var(--green); font-size: 19px; font-family: "Source Han Serif SC", SimSun, serif; }
.visit-strip { padding-top: 32px; padding-bottom: 32px; background: rgba(247,243,234,.58); }
.visit-strip-inner { display: grid; grid-template-columns: 1fr 1.5fr 1fr; overflow: hidden; border: 1px solid rgba(18,63,53,.22); border-radius: 8px; background: rgba(255,250,241,.9); box-shadow: 0 18px 46px rgba(18,63,53,.08); }
.visit-strip article { min-height: 102px; padding: 24px 26px; border-right: 1px solid rgba(18,63,53,.18); }
.visit-strip span { display: block; color: var(--clay); font-size: 14px; font-weight: 800; }
.visit-strip strong { display: block; margin-top: 8px; color: var(--green); font-size: 20px; line-height: 1.35; }
.visit-strip a { display: grid; place-items: center; color: #fffaf1; background: var(--green); font-weight: 800; transition: background .2s ease; }
.visit-strip a:hover { background: var(--clay); }
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.stat-grid strong { padding: 24px; border-radius: 8px; background: #fffaf1; color: var(--green); font-size: 28px; box-shadow: var(--shadow); }
.stat-grid span { display: block; font: 15px/1.5 "Microsoft YaHei", sans-serif; color: var(--muted); }
.feature-photo { width: 100%; border-radius: 8px; box-shadow: var(--shadow); transition: filter .4s ease, opacity .4s ease; }
.feature-photo-wrap { position: relative; display: inline-block; overflow: hidden; border-radius: 8px; }
.feature-photo-wrap .feature-photo { filter: brightness(.55); }
.feature-photo-wrap:hover .feature-photo { filter: brightness(1); }
.feature-cta { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 12px 32px; color: #fffaf1; text-decoration: none; border: 1px solid rgba(255,255,255,.4); border-radius: 4px; background: rgba(18,63,53,.82); backdrop-filter: blur(6px); font-size: 15px; font-weight: 600; letter-spacing: .06em; white-space: nowrap; opacity: .7; transition: opacity .35s ease, background .25s ease, border-color .25s ease; }
.feature-photo-wrap:hover .feature-cta { opacity: 1; }
.feature-cta:hover { background: rgba(18,63,53,.94); border-color: rgba(240,207,139,.6); }
.digital-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; padding: 24px; color: #eef9f2; background: #103b32; border-radius: 8px; }
.digital-layout img { height: 430px; width: 100%; object-fit: cover; border-radius: 6px; }
.digital-links { display: grid; gap: 12px; }
.digital-links a { display: flex; justify-content: space-between; gap: 18px; padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 6px; background: rgba(255,255,255,.06); }
.home-digital { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(18,63,53,.06), rgba(18,63,53,.02)); border-top: 1px solid rgba(18,63,53,.08); border-bottom: 1px solid rgba(18,63,53,.08); }
.home-digital::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 0 58%, rgba(198,155,87,.08) 58% 59%, transparent 59%); pointer-events: none; }
.home-digital-layout { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 24px; align-items: stretch; }
.home-digital-hero { position: relative; min-height: 430px; overflow: hidden; border-radius: 8px; color: #fffaf1; background: var(--green); box-shadow: 0 20px 54px rgba(18,63,53,.16); }
.home-digital-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: transform .5s ease; }
.home-digital-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,35,29,.92), rgba(7,35,29,.54) 58%, rgba(7,35,29,.2)); }
.home-digital-hero:hover img { transform: scale(1.04); }
.home-digital-hero span,
.home-digital-hero strong,
.home-digital-hero em { position: relative; z-index: 1; display: block; max-width: 640px; margin-left: 34px; margin-right: 34px; }
.home-digital-hero span { margin-top: 42px; color: #f0cf8b; font-size: 13px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.home-digital-hero strong { margin-top: 16px; color: #fffaf1; font: 700 clamp(30px,4vw,52px)/1.14 "Source Han Serif SC", SimSun, serif; }
.home-digital-hero em { margin-top: 16px; color: rgba(255,250,241,.76); font-style: normal; line-height: 1.86; }
.home-digital-cards { display: grid; gap: 14px; }
.home-digital-cards a { position: relative; display: grid; grid-template-columns: 58px minmax(0,1fr); gap: 8px 16px; align-content: center; min-height: 134px; padding: 22px 24px; border: 1px solid rgba(18,63,53,.12); border-radius: 8px; background: linear-gradient(145deg, rgba(255,250,241,.96), rgba(247,243,234,.72)); box-shadow: 0 14px 36px rgba(18,63,53,.07); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.home-digital-cards a:hover { transform: translateY(-3px); border-color: rgba(169,79,53,.3); box-shadow: 0 20px 48px rgba(18,63,53,.12); }
.home-digital-cards img { grid-row: 1 / span 2; width: 52px; height: 52px; }
.home-digital-cards strong { color: var(--green); font-size: 19px; line-height: 1.35; }
.home-digital-cards span { color: var(--muted); font-size: 14px; line-height: 1.72; }
.home-digital-cards a::after { content: "→"; position: absolute; right: 22px; top: 22px; color: var(--clay); font-weight: 900; opacity: .65; }
.news-layout { display: grid; grid-template-columns: .92fr 1.08fr; gap: 26px; }
.news-lead { padding: 0; border-radius: 8px; overflow: hidden; background: #fffaf1; box-shadow: var(--shadow); }
.news-lead-img { position: relative; overflow: hidden; }
.news-lead-img img { height: 330px; width: 100%; object-fit: cover; display: block; }
.news-lead-img span { position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; min-height: 28px; padding: 0 14px; border-radius: 4px; background: rgba(18,63,53,.86); color: #f0cf8b; font-size: 13px; font-weight: 700; letter-spacing: .06em; backdrop-filter: blur(6px); }
.news-lead h3 { display: block; margin: 18px 24px 8px; }
.news-lead p { display: block; margin: 8px 24px 18px; }
.tab-bar { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.tab-bar button { min-height: 38px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; background: #fffaf1; color: var(--green); cursor: pointer; }
.tab-bar button.active { color: #fffaf1; background: var(--green); }
.tab-more { margin-left: auto; color: var(--clay); font-size: 15px; font-weight: 800; text-decoration: none; white-space: nowrap; transition: transform .2s ease; }
.tab-more:hover { transform: translateY(-3px); }
.tab-panel { display: none; }
.tab-panel.active { display: grid; gap: 15px; }
.tab-panel a, .news-column a { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--green); }
.floor-plan, .cta-band, .empty-state { /* background: #fffaf1;border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); */}
.floor-list, .chapter-grid, .visit-flow, .guide-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; padding: 0; list-style: none; }
.floor-list span, .chapter-grid li, .visit-flow li, .guide-list article { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fffaf1; box-shadow: var(--shadow); }
/* ── Artifact Detail (artifact-detail.html) ── */
.ad-page { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; min-height: 0; }
.ad-visual { position: relative; display: block; padding: 0; background: linear-gradient(160deg, #0f3a30, #1b5848); overflow: hidden; }
.ad-visual-inner { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.ad-visual-inner img { width: 100%; height: 110%; object-fit: cover; display: block; }
.ad-visual.artifact-visual .ad-visual-inner { /*padding: 36px;*/ background: radial-gradient(circle at 50% 44%, rgba(240,207,139,.16), rgba(15,58,48,.92) 64%); }
.ad-visual.artifact-visual .ad-visual-inner img { object-fit: contain; border-radius: 8px; filter: drop-shadow(0 24px 34px rgba(0,0,0,.24)); }
.ad-visual-cap { position: absolute; bottom: 0; left: 0; right: 0; text-align: center; padding: 8px 16px; color: rgba(255,255,255,.6); font-size: 12px; letter-spacing: .04em; background: linear-gradient(transparent, rgba(0,0,0,.4)); margin: 0; }
.ad-body { display: flex; flex-direction: column; justify-content: center; gap: 0; padding: 32px 7vw 32px 36px; background: var(--paper-2); }
.ad-body .tag { margin-bottom: 8px; align-self: flex-start; }
.ad-title { color: var(--green); font-size: clamp(22px,2.8vw,30px); margin-bottom: 4px; line-height: 1.2; }
.ad-sub { color: var(--gold); font-size: 13px; font-weight: 600; margin-bottom: 16px; }
.ad-desc { margin-bottom: 18px; }
.ad-desc p { color: var(--muted); line-height: 1.7; font-size: 14px; }
.ad-desc p + p { margin-top: 8px; }
.ad-specs { display: grid; gap: 0; margin-bottom: 20px; border-top: 2px solid var(--green); }
.ad-spec { display: grid; grid-template-columns: 80px 1fr; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.ad-spec span { color: var(--gold); font-weight: 800; font-size: 13px; }
.ad-spec strong { color: var(--ink); font-weight: 600; font-size: 14px; }
.ad-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* ── 3D Modal (artifact-detail.html) ── */
.ad-related .image-card img { /*height: 160px;*/ }
.ad-related .image-card div { padding: 14px; }
.ad-related .image-card h3 { font-size: 16px; }
.ad-related .image-card p { font-size: 13px; line-height: 1.5; }
.ad-modal { position: fixed; inset: 0; z-index: 9999; display: none; }
.ad-modal.open { display: block; }
.ad-modal-mask { position: absolute; inset: 0; background: rgba(0,0,0,.82); }
.ad-modal-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(680px, 92vw); background: var(--paper-2); border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.5); overflow: hidden; }
.ad-modal-head { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--green); color: #fffaf1; }
.ad-modal-head .tag { background: rgba(240,207,139,.24); color: #f0cf8b; margin-bottom: 4px; }
.ad-modal-head h3 { color: #fffaf1; font-size: 18px; }
.ad-modal-close { width: 36px; height: 36px; border: none; border-radius: 50%; background: rgba(255,255,255,.16); color: #fffaf1; font-size: 18px; cursor: pointer; transition: background .15s ease; }
.ad-modal-close:hover { background: rgba(255,255,255,.3); }
.ad-3d-stage { position: relative; height: 420px; background: radial-gradient(circle at center, #1a4036, #0a241e); overflow: hidden; display: flex; align-items: center; justify-content: center; user-select: none; }
.ad-3d-rotor { width: 260px; height: 260px; cursor: grab; transition: transform .08s ease; will-change: transform; }
.ad-3d-rotor.dragging { cursor: grabbing; transition: none; }
.ad-3d-rotor img { width: 100%; height: 100%; object-fit: contain; border-radius: 8px; filter: drop-shadow(0 0 42px rgba(240,207,139,.22)); }
.ad-3d-hint { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.5); font-size: 13px; pointer-events: none; }
.ad-3d-controls { position: absolute; top: 16px; right: 16px; display: flex; gap: 8px; }
.ad-3d-btn { padding: 6px 14px; border: 1px solid rgba(255,255,255,.24); border-radius: 4px; background: rgba(0,0,0,.3); color: #fffaf1; font-size: 13px; cursor: pointer; transition: background .15s ease; }
.ad-3d-btn:hover { background: rgba(240,207,139,.2); border-color: rgba(240,207,139,.5); }
.ad-3d-info { padding: 16px 24px 20px; }
.ad-3d-info p { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0; }
.action-row { display: flex; gap: 12px; margin-top: 24px; }
.news-list-page { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.contact-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.contact-grid .contact-map { grid-column: 1 / -1; min-height: 300px; border-color: var(--line); color: var(--muted); background: #fffaf1; }
.artifact-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 66px) / 4); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: none; }
.artifact-carousel::-webkit-scrollbar { display: none; }
.artifact-carousel .image-card { scroll-snap-align: start; }
.image-card.artifact-card img { object-fit: contain;/* padding: 14px;*/ background: linear-gradient(145deg, #f7efe3, #eadcc8); }
.sub-hero.artifact-hero img { object-fit: contain; padding: 28px 0; background: #123f35; }
.sub-hero .hero-overlay { background: linear-gradient(90deg, rgba(6,31,26,.9), rgba(6,31,26,.62) 48%, rgba(6,31,26,.16)); }
.sub-hero-text h1 { text-shadow: 0 8px 28px rgba(0,0,0,.24); }
.intro-panel, .content-band, .service-hero-grid, .detail-layout, .pending-layout, .digital-hub, .vr-layout, .audio-layout, .edu-layout, .news-board { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 34px; align-items: stretch; }
.intro-copy, .band-copy, .service-feature, .exhibition-summary, .detail-aside, .detail-main, .pending-card, .digital-feature, .vr-stage, .audio-intro, .edu-lead, .news-feature { padding: 34px; border: 1px solid rgba(18,63,53,.16); border-radius: 8px; background: rgba(255,250,241,.82); box-shadow: 0 18px 46px rgba(18,63,53,.08); }
.intro-copy h2, .band-copy h2, .service-feature h2, .exhibition-summary h2, .digital-feature h2, .audio-intro h2, .edu-lead h2, .news-feature h2 { color: var(--green); margin: 8px 0 16px; }
.intro-copy p:not(.eyebrow), .band-copy p:not(.eyebrow), .service-feature p:not(.eyebrow), .exhibition-summary p:not(.eyebrow), .digital-feature p:not(.eyebrow), .audio-intro p:not(.eyebrow), .edu-lead p:not(.eyebrow), .news-feature p:not(.eyebrow) { color: var(--muted); max-width: 64ch; }
.profile-metrics { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.profile-metrics span { min-height: 132px; padding: 24px; border: 1px solid rgba(18,63,53,.14); border-radius: 8px; background: linear-gradient(145deg, rgba(255,250,241,.9), rgba(247,243,234,.72)); color: var(--muted); box-shadow: 0 14px 36px rgba(18,63,53,.07); }
.profile-metrics strong { display: block; color: var(--green); font: 700 38px/1.05 "Source Han Serif SC", SimSun, serif; }
.route-cards, .digital-cards, .edu-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.notice-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.route-cards { grid-column: 1 / -1; }
.route-cards article, .route-cards a, .notice-card, .digital-card, .edu-grid article { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,250,241,.86); box-shadow: 0 14px 34px rgba(18,63,53,.07); transition: transform .2s ease, border-color .2s ease; }
.route-cards a:hover, .digital-card:hover, .vr-points a:hover { transform: translateY(-3px); border-color: rgba(169,79,53,.36); }
.route-cards h3, .route-cards strong, .notice-card h2, .notice-card h3, .digital-card h3, .digital-card strong, .edu-grid h3 { color: var(--green); margin-bottom: 10px; }
.route-cards p, .notice-card p, .edu-grid p { color: var(--muted); }
.route-cards span { display: block; color: var(--muted); }
.service-hero-grid { grid-template-columns: minmax(360px, .74fr) minmax(0, 1fr); align-items: center; }
.service-hero-grid .route-cards { grid-column: auto; grid-template-columns: repeat(2, minmax(0,1fr)); }
.service-feature dl { display: grid; grid-template-columns: 92px 1fr; gap: 10px 18px; margin: 22px 0 0; }
.service-feature dt { color: var(--green); font-weight: 800; }
.service-feature dd { margin: 0; color: var(--ink); font-weight: 600; }
.process-list, .floor-axis, .audio-list { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; padding: 0; margin: 0; list-style: none; }
.process-list { grid-template-columns: repeat(5, minmax(0,1fr)); }
.process-list li, .floor-axis article, .floor-axis span, .audio-list article { padding: 24px; border-radius: 8px; background: #103b32; color: rgba(255,255,255,.76); box-shadow: 0 18px 42px rgba(18,63,53,.14); }
.process-list strong, .floor-axis strong, .audio-list strong { display: block; color: #fffaf1; font-size: 22px; margin-bottom: 8px; }
.floor-axis span { display: flex; align-items: center; min-height: 118px; color: #fffaf1; font-weight: 800; line-height: 1.45; }
.data-note { margin-top: 18px; padding: 16px 18px; border-left: 4px solid var(--clay); background: rgba(169,79,53,.08); color: #6b4a3f; }
.detail-layout { grid-template-columns: 320px minmax(0,1fr); align-items: start; }
.detail-aside { position: sticky; top: 96px; }
.detail-aside img { width: 100%; height: 210px; object-fit: cover; border-radius: 6px; margin-bottom: 18px; }
.detail-aside a { display: block; padding: 14px 0; border-top: 1px solid var(--line); color: var(--green); font-weight: 800; }
.detail-main { display: grid; gap: 22px; }
.prose-block { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.prose-block h2 { color: var(--green); margin-bottom: 10px; font-size: 24px; }
.prose-block p, .pending-card p, .vr-stage p { color: var(--muted); }
/* ── Media Bridge (exhibitions.html) ── */
.media-bridge { background: linear-gradient(160deg, #0d2e26 0%, #123f35 40%, #164b3f 100%); color: #dce6df; position: relative; overflow: hidden; }
.media-bridge::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 600px 400px at 20% 50%, rgba(198,155,87,.08), transparent), radial-gradient(ellipse 500px 350px at 80% 30%, rgba(198,155,87,.05), transparent); }
.media-bridge-inner { position: relative; z-index: 1; }
.media-bridge-head { text-align: center; max-width: 640px; margin: 0 auto 36px; }
.media-bridge-head .eyebrow { color: var(--gold); }
.media-bridge-head h2 { color: #fff8e9; font-size: clamp(24px,3vw,34px); }
.media-bridge-head p { color: rgba(255,255,255,.68); margin-top: 10px; font-size: 15px; }
.media-bridge-cards { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.media-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 32px 20px 24px; border-radius: 10px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); text-decoration: none; color: #dce6df; transition: all .3s ease; }
.media-card:hover { background: rgba(255,255,255,.1); border-color: rgba(240,207,139,.35); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.25); }
.media-card-icon { width: 70px; height: 70px; border-radius: 50%; background: rgba(240,207,139,.08); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: background .3s ease; }
.media-card:hover .media-card-icon { background: rgba(240,207,139,.16); }
.media-card h3 { color: #fff8e9; font-size: 17px; margin-bottom: 8px; }
.media-card p { color: rgba(255,255,255,.58); font-size: 13px; line-height: 1.6; margin-bottom: 12px; }
.media-card-link { color: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: .04em; transition: color .2s; }
.media-card:hover .media-card-link { color: #f0cf8b; }
.pending-layout { grid-template-columns: 1fr 1fr; }
.pending-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.pending-fields span { padding: 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--green); background: rgba(247,243,234,.62); }
/* ── Collection Filter & Pagination (collections.html) ── */
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.filter-tag { padding: 8px 18px; border: 1px solid var(--line); border-radius: 999px; color: var(--green); background: #fffaf1; font-weight: 700; cursor: pointer; user-select: none; transition: all .15s ease; }
.filter-tag:hover { border-color: var(--clay); }
.filter-tag.active { color: #fffaf1; background: var(--green); border-color: var(--green); }
.pagination { display: flex; gap: 10px; justify-content: center; margin-top: 34px; }
.page-btn { min-width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 8px; background: #fffaf1; color: var(--green); font-weight: 800; cursor: pointer; transition: all .15s ease; }
.page-btn:hover { border-color: var(--clay); }
.page-btn.active { color: #fffaf1; background: var(--green); border-color: var(--green); }
.collection-filter { margin-bottom: 24px; padding: 22px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,250,241,.82); }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.filter-row span { padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--green); background: #fffaf1; font-weight: 700; }
.digital-hub { grid-template-columns: .82fr 1.18fr; align-items: center; }
.digital-hub .digital-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
.digital-card a { display: inline-block; margin-top: 18px; color: var(--clay); font-weight: 800; }
.digital-card small { display: block; margin-top: 10px; color: #8b7a6b; font-size: 13px; line-height: 1.55; }
.vr-layout { grid-template-columns: 1.2fr .8fr; }
.vr-stage { min-height: 430px; display: flex; flex-direction: column; justify-content: flex-end; color: #fffaf1; background: linear-gradient(180deg, rgba(16,59,50,.18), rgba(16,59,50,.92)), url("../images/content/hangu-map-wall.jpg") center/cover; }
.vr-stage p { color: rgba(255,255,255,.78); }
.vr-points { display: grid; gap: 12px; }
.vr-points a { padding: 18px 20px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,250,241,.86); color: var(--green); font-weight: 800; }
.audio-layout, .edu-layout, .news-board { align-items: start; }
.audio-list { grid-template-columns: 1fr; }
.news-board { grid-template-columns: .95fr 1.05fr; }
.news-feature img { width: 100%; height: 260px; object-fit: cover; border-radius: 6px; margin-bottom: 18px; }
/* ── Contact Hero Strip (contact.html) ── */
.contact-hero-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 32px; align-items: stretch; }
.contact-hero-info { padding: 36px; border: 1px solid rgba(18,63,53,.1); border-radius: 12px; background: linear-gradient(160deg, rgba(255,250,241,.98), rgba(252,248,238,.82)); box-shadow: 0 16px 40px rgba(18,63,53,.05); }
.contact-hero-info h2 { color: var(--green); margin: 8px 0 28px; }
.ch-info-list { list-style: none; display: grid; gap: 0; }
.ch-info-list li { display: flex; gap: 18px; padding: 18px 0; border-bottom: 1px solid rgba(18,63,53,.06); align-items: flex-start; }
.ch-info-list li:last-child { border-bottom: none; }
.ch-icon { width: 52px; height: 52px; border-radius: 50%; background: rgba(18,63,53,.06); color: var(--green); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .3s ease, color .3s ease; }
.ch-info-list li:hover .ch-icon { background: var(--green); color: var(--gold); }
.ch-info-list li strong { display: block; color: var(--green); font-size: 14px; margin-bottom: 3px; }
.ch-info-list li p { color: var(--muted); font-size: 15px; line-height: 1.6; margin: 0; }
.ch-note { font-size: 13px; color: #8b7a6b; }
.contact-hero-map { border-radius: 12px; overflow: hidden; box-shadow: 0 16px 40px rgba(18,63,53,.07); min-height: 480px; }
.contact-hero-map iframe { width: 100%; height: 100%; min-height: 480px; }

/* ── Visit Cards Strip (contact.html) ── */
.ct-visit-strip { background: linear-gradient(180deg, rgba(255,250,241,.7), rgba(247,243,234,.3)); border-top: 1px solid rgba(18,63,53,.05); border-bottom: 1px solid rgba(18,63,53,.05); }
.ct-visit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ct-visit-card { padding: 38px 30px; border: 1px solid rgba(18,63,53,.08); border-radius: 12px; background: linear-gradient(160deg, rgba(255,250,241,.95), rgba(252,248,238,.8)); box-shadow: 0 14px 36px rgba(18,63,53,.04); text-align: center; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.ct-visit-card:hover { transform: translateY(-5px); box-shadow: 0 22px 50px rgba(18,63,53,.1); border-color: rgba(169,79,53,.25); }
.ct-visit-icon { width: 68px; height: 68px; border-radius: 50%; background: rgba(18,63,53,.06); color: var(--green); display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; transition: background .3s ease, color .3s ease; }
.ct-visit-card:hover .ct-visit-icon { background: var(--green); color: var(--gold); }
.ct-visit-card h3 { color: var(--green); font-size: 19px; margin-bottom: 12px; }
.ct-visit-card p { color: var(--muted); font-size: 14px; line-height: 1.72; margin: 0; }

/* ── Nearby Strip (contact.html) ── */
.ct-nearby-strip { background: #fffaf1; }
.ct-nearby-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ct-nearby-card { padding: 34px 28px; border: 1px solid rgba(18,63,53,.08); border-radius: 12px; background: rgba(255,250,241,.92); box-shadow: 0 14px 36px rgba(18,63,53,.04); transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.ct-nearby-card:hover { transform: translateY(-5px); box-shadow: 0 22px 50px rgba(18,63,53,.1); border-color: rgba(169,79,53,.25); }
.ct-nearby-icon { width: 60px; height: 60px; border-radius: 50%; background: rgba(240,207,139,.12); color: var(--gold); display: flex; align-items: center; justify-content: center; margin-bottom: 22px; transition: background .3s ease, color .3s ease; }
.ct-nearby-card:hover .ct-nearby-icon { background: rgba(240,207,139,.24); }
.ct-nearby-card h3 { color: var(--green); font-size: 18px; margin-bottom: 10px; }
.ct-nearby-card p { color: var(--muted); font-size: 14px; line-height: 1.72; margin: 0; }

/* ── Inquiry Strip (contact.html) ── */
.ct-inquiry-strip { background: linear-gradient(180deg, rgba(255,250,241,.3), rgba(247,243,234,.5)); border-top: 1px solid rgba(18,63,53,.05); border-bottom: 1px solid rgba(18,63,53,.05); }
.ct-inquiry-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ct-inquiry-card { padding: 32px 24px; border: 1px solid rgba(18,63,53,.08); border-radius: 12px; background: linear-gradient(160deg, rgba(255,250,241,.95), rgba(252,248,238,.8)); box-shadow: 0 12px 32px rgba(18,63,53,.03); text-align: center; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.ct-inquiry-card:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(18,63,53,.08); border-color: rgba(169,79,53,.22); }
.ct-inquiry-icon { width: 56px; height: 56px; border-radius: 50%; background: rgba(18,63,53,.06); color: var(--green); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; transition: background .3s ease, color .3s ease; }
.ct-inquiry-card:hover .ct-inquiry-icon { background: var(--green); color: var(--gold); }
.ct-inquiry-card h3 { color: var(--green); font-size: 16px; margin-bottom: 10px; }
.ct-inquiry-val { color: var(--green); font: 700 20px/1.3 "Source Han Serif SC", SimSun, serif; margin: 0 0 6px; }
.ct-inquiry-card small { display: block; color: #8b7a6b; font-size: 13px; }

/* Service block icons */
.service-icon { font-size: 32px; margin-bottom: 14px; line-height: 1; }

/* ── Digital: 数字体验 (digital.html) ── */
.digital-hero-strip { background: linear-gradient(170deg, rgba(255,250,241,.7), rgba(247,243,234,.42)); border-top: 1px solid rgba(18,63,53,.06); border-bottom: 1px solid rgba(18,63,53,.06); }
.dg-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.dg-card { display: flex; gap: 28px; padding: 34px 30px; border: 1px solid rgba(18,63,53,.08); border-radius: 12px; background: linear-gradient(160deg, rgba(255,250,241,.98), rgba(252,248,238,.82)); box-shadow: 0 16px 40px rgba(18,63,53,.05); text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; align-items: flex-start; }
.dg-card:hover { transform: translateY(-5px); box-shadow: 0 24px 54px rgba(18,63,53,.12); border-color: rgba(169,79,53,.28); }
.dg-icon-circle { width: 72px; height: 72px; border-radius: 50%; background: rgba(18,63,53,.04); display: flex; align-items: center; justify-content: center; color: var(--green); flex-shrink: 0; transition: background .3s ease, color .3s ease, transform .3s ease; }
.dg-card:hover .dg-icon-circle { background: var(--green); color: #f0cf8b; transform: scale(1.08); }
.dg-card-body { flex: 1; min-width: 0; }
.dg-card-body h3 { color: var(--green); font-size: 20px; margin-bottom: 10px; }
.dg-card-body p { color: var(--muted); font-size: 14px; line-height: 1.72; margin-bottom: 14px; }
.dg-link { display: inline-flex; align-items: center; gap: 6px; color: var(--clay); font-size: 14px; font-weight: 800; letter-spacing: .04em; transition: color .2s ease; }
.dg-link::after { content: "→"; transition: transform .2s ease; }
.dg-card:hover .dg-link::after { transform: translateX(3px); }
.tag-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 28px; margin-bottom: 12px; }
.tag-3d { color: #fffaf1; background: var(--green); }
.image-card.artifact-card > div { display: flex; flex: 1; flex-direction: column; }
.image-card.artifact-card .tag { align-self: flex-start; flex: 0 0 auto; width: auto; max-width: max-content; white-space: nowrap; justify-content: flex-start; }
.image-card.artifact-card .tag-row + h3 { margin-top: 0; }
.image-card.artifact-card h3 { min-height: 50px; line-height: 1.45; }
.image-card.artifact-card p { flex: 1; }

/* ── Digital: 重点3D文物 (digital.html) ── */
.digital-artifact-strip { background: linear-gradient(170deg, rgba(247,243,234,.5), transparent); border-top: 1px solid rgba(18,63,53,.05); }

/* ── Digital: 参观流程 (digital.html) ── */

/* ── News Full List (news.html) ── */
.news-full-list { }
.news-full-list .tab-bar { margin-bottom: 28px; }
.news-full-list .tab-panel.active { gap: 0; }
.news-item { display: flex; align-items: center; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--green); text-decoration: none; transition: all .15s ease; }
.news-item:hover { background: rgba(255,250,241,.45); margin: 0 -12px; padding-left: 12px; padding-right: 12px; border-radius: 6px; }
.news-item img { width: 120px; height: 80px; object-fit: cover; border-radius: 6px; flex-shrink: 0; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.ni-body { flex: 1; min-width: 0; }
.ni-title { display: block; font-weight: 600; font-size: 16px; color: var(--green); margin-bottom: 4px; }
.ni-summary { display: block; font-size: 13px; color: var(--muted); line-height: 1.45; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.edu-list-page .ni-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; }
.ni-date { font-size: 13px; color: #8b7a6b; white-space: nowrap; flex-shrink: 0; }
.audio-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.audio-entry { display: flex; align-items: center; gap: 18px; padding: 26px 22px; border: 1px solid var(--line); border-radius: 8px; background: #fffaf1; box-shadow: 0 14px 34px rgba(18,63,53,.07); transition: transform .2s ease; }
.audio-entry:hover { transform: translateY(-3px); border-color: rgba(169,79,53,.36); }
.audio-entry .entry-num { display: grid; place-items: center; min-width: 48px; height: 48px; border-radius: 50%; background: var(--green); color: #f0cf8b; font: 700 18px/1 "Source Han Serif SC", SimSun, serif; flex-shrink: 0; }
.audio-entry strong { display: block; color: var(--green); font-size: 18px; margin-bottom: 6px; }
.audio-entry small { display: block; color: var(--muted); font-size: 13px; line-height: 1.5; }

/* ── Audio Guide: 展厅播放列表 (guide.html) ── */
.guide-page-body { padding-bottom: 0; }
.guide-page-body .site-footer { padding-bottom: 0; }
.audio-guide-page { background: linear-gradient(180deg, rgba(255,250,241,.62), rgba(246,241,230,.18)); }
.audio-guide-workspace { display: grid; grid-template-columns: 330px minmax(0,1fr); gap: 32px; align-items: start; }
.audio-hall-list { position: sticky; top: 96px; display: grid; gap: 12px; }
.audio-hall-tab { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 10px 14px; align-items: start; width: 100%; padding: 20px; border: 1px solid rgba(18,63,53,.14); border-radius: 8px; background: rgba(255,250,241,.82); color: var(--green); text-align: left; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.audio-hall-tab:hover { border-color: rgba(169,79,53,.36); }
.audio-hall-tab.active { color: #fffaf1; background: var(--green); border-color: var(--green); }
.audio-hall-tab span { grid-row: 1 / span 2; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(198,155,87,.16); color: var(--clay); font: 800 15px/1 "Source Han Serif SC", SimSun, serif; }
.audio-hall-tab.active span { color: var(--green); background: #f0cf8b; }
.audio-hall-tab strong { display: block; font-size: 16px; line-height: 1.45; }
.audio-hall-tab small { display: block; color: var(--muted); font-size: 13px; }
.audio-hall-tab.active small { color: rgba(255,250,241,.68); }
.audio-playlist-area { min-width: 0; }
.audio-hall-panel { display: none; padding: 34px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: rgba(255,250,241,.9); box-shadow: 0 16px 40px rgba(18,63,53,.07); }
.audio-hall-panel.active { display: block; }
.audio-panel-head { padding-bottom: 22px; border-bottom: 1px solid rgba(18,63,53,.12); }
.audio-panel-head h2 { margin: 6px 0 12px; }
.audio-panel-head p:not(.eyebrow) { color: var(--muted); max-width: 70ch; }
.audio-track-list { display: grid; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.audio-track { position: relative; display: grid; grid-template-columns: 44px minmax(0,1fr) 56px 34px; gap: 12px; align-items: center; width: 100%; min-height: 62px; padding: 10px 12px; border: 1px solid rgba(18,63,53,.1); border-radius: 8px; background: rgba(255,250,241,.62); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.audio-track::after { content: ""; grid-column: 4; grid-row: 1; justify-self: end; width: 30px; height: 30px; border: 1px solid rgba(18,63,53,.16); border-radius: 50%; background: rgba(255,255,255,.76); }
.audio-track::before { content: ""; grid-column: 4; grid-row: 1; justify-self: center; width: 0; height: 0; margin-left: 3px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--green); z-index: 1; }
.audio-track:hover { border-color: rgba(169,79,53,.3); background: rgba(255,250,241,.9); transform: translateX(2px); box-shadow: 0 10px 22px rgba(18,63,53,.06); }
.audio-track:hover strong { color: var(--clay); }
.audio-track.active strong { color: var(--green); }
.audio-track.active::after { border-color: var(--green); background: var(--green); }
.audio-track.active::before { border-left-color: #fffaf1; }
.audio-track span { grid-column: 1; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(18,63,53,.08); color: var(--clay); font-weight: 800; font-size: 13px; }
.audio-track.active span { color: #fffaf1; background: var(--green); }
.audio-track strong { grid-column: 2; font-size: 16px; line-height: 1.5; color: var(--ink); }
.audio-track em { grid-column: 3; color: #8b7a6b; font-style: normal; font-size: 13px; text-align: right; }
.audio-dock { position: fixed; left: 50%; right: auto; bottom: 18px; z-index: 50; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(150px,220px); gap: 16px; align-items: center; width: min(940px, calc(100vw - 48px)); min-height: 66px; padding: 12px 16px; border: 1px solid rgba(240,207,139,.28); border-radius: 12px; background: rgba(12,54,45,.94); color: #fffaf1; box-shadow: 0 18px 42px rgba(8,28,22,.24); backdrop-filter: blur(14px); transform: translateX(-50%); }
.audio-dock-title { min-width: 0; }
.audio-dock-title span { display: block; color: #f0cf8b; font-size: 12px; font-weight: 800; margin-bottom: 2px; }
.audio-dock-title strong { display: block; overflow: hidden; color: #fffaf1; font: 700 17px/1.32 "Source Han Serif SC", SimSun, serif; text-overflow: ellipsis; white-space: nowrap; }
.audio-dock-controls { display: flex; align-items: center; gap: 8px; }
.audio-dock-controls button { display: grid; place-items: center; width: 38px; height: 38px; min-height: 0; padding: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.06); color: #fffaf1; cursor: pointer; }
.audio-dock-controls button:hover { border-color: rgba(240,207,139,.45); }
.audio-dock-controls svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.audio-dock-controls .audio-play-toggle { width: 42px; height: 42px; color: var(--green); background: #f0cf8b; border-color: #f0cf8b; }
.audio-play-toggle .icon-play { fill: currentColor; stroke: none; margin-left: 2px; }
.audio-play-toggle .icon-pause { display: none; }
.audio-play-toggle.is-playing .icon-play { display: none; }
.audio-play-toggle.is-playing .icon-pause { display: block; }
.audio-dock-progress { display: grid; grid-template-columns: minmax(0,1fr) 46px; gap: 12px; align-items: center; }
.audio-progress-track { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.18); }
.audio-progress-track span { display: block; width: 34%; height: 100%; border-radius: inherit; background: #f0cf8b; }
.audio-dock-progress em { color: rgba(255,250,241,.68); font-style: normal; font-size: 13px; text-align: right; }

/* ── Visit: 开放与到馆 (visit.html) ── */
.visit-hero-strip { background: linear-gradient(170deg, rgba(255,250,241,.7), rgba(247,243,234,.42)); border-top: 1px solid rgba(18,63,53,.06); border-bottom: 1px solid rgba(18,63,53,.06); }
.visit-hero-sub { color: var(--muted); font-size: 16px; margin: 10px 0 36px; max-width: 480px; }
.visit-info-cards-new { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; overflow: hidden; border-top: 1px solid rgba(18,63,53,.14); border-bottom: 1px solid rgba(18,63,53,.14); background: rgba(255,250,241,.42); }
.vic-new { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: start; gap: 12px 16px; min-height: 156px; padding: 26px 24px; border: 0; border-right: 1px solid rgba(18,63,53,.12); border-radius: 0; background: transparent; box-shadow: none; text-align: left; transition: none; }
.vic-new:last-child { border-right: 0; }
.vic-new:hover { transform: none; box-shadow: none; border-color: rgba(18,63,53,.12); }
.vic-icon-circle { grid-row: 1 / span 4; width: 40px; height: 40px; border-radius: 50%; background: rgba(198,155,87,.1); display: flex; align-items: center; justify-content: center; color: var(--gold); margin: 0; transition: none; }
.vic-icon-circle svg { width: 24px; height: 24px; }
.vic-new:hover .vic-icon-circle { background: rgba(198,155,87,.1); color: var(--gold); }
.vic-new h3 { color: var(--green); font-size: 15px; margin: 0; }
.vic-new strong { display: block; color: var(--green); font: 700 24px/1.2 "Source Han Serif SC", SimSun, serif; margin: 2px 0 0; }
.vic-new p { color: var(--muted); font-size: 14px; margin: 0; }
.vic-new small { display: block; color: #8b7a6b; font-size: 13px; }

/* ── Visit: 楼层导览 (visit.html) ── */
.floor-guide { margin-top: 8px; }
.fg-tabs { display: flex; gap: 14px; margin-bottom: 22px; }
.fg-tab {
  flex: 1; display: flex; align-items: center; gap: 12px;
  padding: 14px 20px; border: 1.5px solid var(--line); border-radius: 10px;
  background: #fffaf1; cursor: pointer; transition: all .25s ease;
  font-family: inherit; text-align: left; color: var(--muted);
}
.fg-tab:hover { border-color: var(--gold); background: rgba(198,155,87,.05); color: var(--green); }
.fg-tab.active { border-color: var(--green); background: var(--green); color: #f0cf8b; }
.fg-tab-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 8px; flex-shrink: 0;
  background: rgba(18,63,53,.08); color: var(--green);
  font: 700 17px/1 "Source Han Serif SC", SimSun, serif;
  transition: all .25s ease;
}
.fg-tab.active .fg-tab-badge { background: rgba(240,207,139,.22); color: #f0cf8b; }
.fg-tab-name { font-size: 15px; font-weight: 600; line-height: 1.3; }

.fg-panel { display: none; }
.fg-panel.active {
  display: grid; grid-template-columns: 1fr 280px; gap: 24px; align-items: stretch;
}
.fg-plan-wrap {
  border: 1px solid var(--line); border-radius: 12px; background: #fffaf1;
  padding: 24px; box-shadow: 0 14px 36px rgba(18,63,53,.06);
  display: flex; align-items: center; justify-content: center;
  min-height: 380px;
}
.fg-plan-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: var(--muted); gap: 10px;
  width: 100%; min-height: 340px;
  border: 2px dashed rgba(18,63,53,.14); border-radius: 10px;
  background: linear-gradient(160deg, rgba(255,250,241,.52), rgba(247,243,234,.28));
  padding: 40px 20px;
}
.fg-plan-placeholder svg { color: var(--gold); opacity: .6; }
.fg-plan-placeholder span { display: block; font-size: 18px; font-weight: 800; color: var(--green); }
.fg-plan-placeholder small { display: block; font-size: 13px; color: #8b7a6b; }

.fg-legend {
  padding: 26px 24px; border: 1px solid var(--line); border-radius: 12px;
  background: linear-gradient(160deg, rgba(255,250,241,.9), rgba(247,243,234,.5));
  box-shadow: 0 14px 36px rgba(18,63,53,.05);
}
.fg-legend h3 { color: var(--green); font-size: 18px; margin-bottom: 4px; }
.fg-legend h3 span { display: block; color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .04em; margin-top: 2px; }
.fg-legend-desc { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 12px 0 16px; }
.fg-legend-key {
  display: flex; flex-wrap: wrap; gap: 8px 14px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(18,63,53,.08); margin-bottom: 14px;
}
.fg-legend-key span { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--muted); }
.fg-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.fg-dot-gold { background: var(--gold); }
.fg-dot-green { background: var(--green); opacity: .5; }
.fg-dot-clay { background: var(--clay); opacity: .55; }
.fg-dot-gray { background: #999; opacity: .45; }
.fg-room-list { list-style: none; padding: 0; margin: 0; }
.fg-room-list li {
  display: flex; align-items: center; gap: 8px;
  color: var(--muted); font-size: 13px; line-height: 1.6; padding: 5px 0;
}

/* ── Visit: service layout (visit.html) ── */
.visit-quick-strip { background: rgba(247,243,234,.5); border-top: 1px solid rgba(18,63,53,.06); border-bottom: 1px solid rgba(18,63,53,.06); }
.vq-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.vq-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 20px 24px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.96), rgba(252,248,238,.82)); box-shadow: 0 14px 36px rgba(18,63,53,.05); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.vq-card:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(18,63,53,.12); border-color: rgba(169,79,53,.28); }
.vq-icon-circle { width: 58px; height: 58px; border-radius: 50%; background: rgba(18,63,53,.06); display: flex; align-items: center; justify-content: center; color: var(--green); margin-bottom: 16px; transition: background .25s ease, color .25s ease; }
.vq-card:hover .vq-icon-circle { background: var(--green); color: #f0cf8b; }
.vq-card strong { display: block; color: var(--green); font-size: 18px; margin-bottom: 6px; }
.vq-card span { display: block; color: var(--muted); font-size: 14px; }

/* ── Visit: 参观动线 (visit.html) ── */
.route-flow-strip { background: linear-gradient(180deg, rgba(247,243,234,.6), rgba(247,243,234,.15)); }
.route-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr; gap: 0; align-items: stretch; }
.rf-step { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 16px; border: 1px solid rgba(18,63,53,.1); border-radius: 12px; background: rgba(255,250,241,.92); box-shadow: 0 10px 30px rgba(18,63,53,.05); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.rf-step:hover { transform: translateY(-5px); border-color: rgba(198,155,87,.4); box-shadow: 0 16px 40px rgba(18,63,53,.1); }
.rf-badge { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--green); color: var(--gold); font: 700 15px/1 "Source Han Serif SC", SimSun, serif; margin-bottom: 12px; flex-shrink: 0; }
.rf-icon { width: 54px; height: 54px; border-radius: 50%; background: rgba(198,155,87,.1); display: grid; place-items: center; color: var(--gold); margin-bottom: 12px; transition: background .25s ease, color .25s ease; }
.rf-step:hover .rf-icon { background: var(--green); }
.rf-floor { display: inline-block; font-size: 12px; font-weight: 700; color: var(--clay); padding: 3px 12px; border-radius: 20px; background: rgba(169,79,53,.08); margin-bottom: 10px; white-space: nowrap; }
.rf-step h4 { color: var(--green); font-size: 16px; margin-bottom: 8px; line-height: 1.4; }
.rf-step p { color: var(--muted); font-size: 13px; line-height: 1.6; margin: 0; }
.rf-arrow { display: flex; align-items: center; justify-content: center; color: rgba(198,155,87,.45); padding: 0 4px; }

/* ── Visit: 参观须知 (visit.html) ── */
.visit-notice-strip { background: linear-gradient(170deg, rgba(255,250,241,.7), rgba(247,243,234,.42)); }
.notice-grid-new { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.notice-new { display: flex; flex-direction: column; align-items: flex-start; padding: 30px 24px 26px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.98), rgba(252,248,238,.8)); box-shadow: 0 14px 36px rgba(18,63,53,.05); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.notice-new:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(18,63,53,.11); border-color: rgba(169,79,53,.18); }
.nn-icon-circle { width: 54px; height: 54px; border-radius: 50%; background: rgba(198,155,87,.08); display: flex; align-items: center; justify-content: center; color: var(--gold); margin-bottom: 18px; transition: background .25s ease; }
.notice-new:hover .nn-icon-circle { background: rgba(198,155,87,.18); }
.notice-new h3 { color: var(--green); font-size: 18px; margin-bottom: 12px; }
.notice-new p { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 0; }
.notice-new p strong { color: var(--clay); font-weight: 800; }

/* ── Keep old notice-card for backward compat, override where needed ── */

/* ── News Detail Page (news-detail.html) ── */
.news-detail-page { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 40px; align-items: start; }
.breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 14px; color: var(--muted); }
.breadcrumb a { color: var(--muted); transition: color .15s ease; }
.breadcrumb a:hover { color: var(--green); }
.breadcrumb span:last-child { color: var(--green); font-weight: 600; }
.news-article { padding: 36px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper-2); box-shadow: 0 14px 34px rgba(18,63,53,.07); }
.news-article .tag { margin-bottom: 14px; }
.nda-title { color: var(--green); font-size: clamp(24px,3vw,34px); line-height: 1.3; margin-bottom: 16px; }
.nda-meta { display: flex; flex-wrap: wrap; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: 24px; color: var(--muted); font-size: 14px; }
.nda-cover { margin: 0 0 26px; }
.nda-cover img { width: 100%; height: 360px; object-fit: cover; border-radius: 6px; }
.nda-body p { color: var(--ink); line-height: 1.92; margin-bottom: 16px; font-size: 16px; }
.nda-body h3 { color: var(--green); font-size: 19px; margin: 28px 0 14px; }
.nda-body ul { padding-left: 20px; margin-bottom: 16px; }
.nda-body ul li { color: var(--ink); line-height: 1.92; margin-bottom: 8px; }
.nda-body blockquote { margin: 22px 0; padding: 18px 24px; border-left: 4px solid var(--gold); background: rgba(198,155,87,.08); color: #5a4a2f; font-size: 16px; line-height: 1.8; border-radius: 0 6px 6px 0; }
.nda-footer { margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line); }
.nda-share { display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: 14px; }
.nda-share a { color: var(--green); font-weight: 600; transition: color .15s ease; }
.nda-share a:hover { color: var(--clay); }
.article-pager { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; flex: 1; min-width: min(100%, 520px); }
.article-pager a { display: grid; gap: 6px; min-height: 78px; padding: 16px 18px; border: 1px solid rgba(18,63,53,.12); border-radius: 8px; background: rgba(255,250,241,.72); color: var(--green); transition: border-color .2s ease, background .2s ease; }
.article-pager a:hover { border-color: rgba(169,79,53,.32); background: rgba(255,250,241,.95); }
.article-pager span { color: var(--clay); font-size: 13px; font-weight: 800; }
.article-pager strong { overflow: hidden; font-size: 15px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.article-pager-three { grid-template-columns: minmax(0,1fr) 150px minmax(0,1fr); min-width: 0; }
.article-pager-three a { align-content: center; min-height: 86px; }
.article-pager-three .pager-back { place-items: center; text-align: center; background: var(--green); color: #fffaf1; border-color: var(--green); }
.article-pager-three .pager-back span { color: #f0cf8b; }
.article-pager-three .pager-back strong { color: #fffaf1; }
.article-pager-three .pager-next { text-align: right; }
.nda-related { margin-top: 32px; }
.nda-related h3 { color: var(--green); font-size: 20px; margin-bottom: 16px; }
.nda-related a { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); transition: background .15s ease; }
.nda-related a:hover { background: rgba(247,243,234,.5); }
.nda-related a img { width: 120px; height: 80px; object-fit: cover; border-radius: 4px; }
.nda-related strong { display: block; color: var(--ink); font-size: 15px; line-height: 1.5; margin-bottom: 8px; }
.nda-related span { color: var(--muted); font-size: 13px; }
.news-detail-aside { position: sticky; top: 96px; display: grid; gap: 24px; }
.nda-aside-block { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper-2); box-shadow: 0 14px 34px rgba(18,63,53,.07); }
.nda-aside-block h3 { color: var(--green); font-size: 18px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--green); }
.nda-cat-list { list-style: none; padding: 0; margin: 0; }
.nda-cat-list li { margin-bottom: 2px; }
.nda-cat-list a { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-radius: 4px; color: var(--ink); font-size: 15px; transition: all .15s ease; }
.nda-cat-list a:hover, .nda-cat-list a.active { background: var(--green); color: #fffaf1; }
.nda-cat-list a span { color: var(--muted); font-size: 13px; }
.nda-cat-list a:hover span, .nda-cat-list a.active span { color: rgba(255,255,255,.7); }
.nda-hot-list { list-style: none; padding: 0; margin: 0; counter-reset: hot; }
.nda-hot-list li { counter-increment: hot; margin-bottom: 12px; }
.nda-hot-list li::before { content: counter(hot); display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 3px; background: var(--gold); color: #fffaf1; font-size: 12px; font-weight: 800; vertical-align: middle; }
.nda-hot-list a { color: var(--ink); font-size: 14px; line-height: 1.5; transition: color .15s ease; }
.nda-hot-list a:hover { color: var(--clay); }
.nda-quick-links { display: grid; gap: 8px; }
.nda-quick-links a { display: block; padding: 10px 14px; border: 1px solid var(--line); border-radius: 4px; color: var(--green); font-size: 14px; font-weight: 600; transition: all .15s ease; }
.nda-quick-links a:hover { background: var(--green); color: #fffaf1; border-color: var(--green); }

/* ── About: 馆情概况 (about.html) ── */
.about-intro-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.about-intro-text h2 { margin-bottom: 4px; }
.about-intro-sub { color: var(--gold); font-size: 17px; font-weight: 600; margin-bottom: 18px; }
.about-intro-text p:not(.eyebrow):not(.about-intro-sub) { color: var(--muted); max-width: 64ch; line-height: 1.82; }
.about-intro-photo { position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 24px 54px rgba(18,63,53,.16); }
.about-intro-photo img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; display: block; }
.about-intro-photo-cap { position: absolute; bottom: 0; left: 0; right: 0; padding: 14px 20px; background: linear-gradient(transparent, rgba(8,28,22,.65)); color: rgba(255,255,255,.82); font-size: 13px; font-weight: 600; letter-spacing: .04em; }

/* Stats bar */
.about-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 38px; }
.about-stat { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 20px 24px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.94), rgba(247,243,234,.72)); box-shadow: 0 14px 36px rgba(18,63,53,.06); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.about-stat:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(18,63,53,.13); border-color: rgba(169,79,53,.22); }
.about-stat svg { margin-bottom: 14px; }
.about-stat strong { display: block; color: var(--green); font: 700 38px/1 "Source Han Serif SC", SimSun, serif; margin-bottom: 4px; }
.about-stat strong small { font-size: 22px; color: var(--gold); font-weight: 700; }
.about-stat span { display: block; color: var(--muted); font-size: 14px; font-weight: 600; }

/* ── About: 发展沿革 Timeline (about.html) ── */
.about-timeline { position: relative; padding-left: 0; display: grid; gap: 0; margin-top: 24px; }
.about-timeline::before { content: ""; position: absolute; left: 114px; top: 0; bottom: 0; width: 2px; background: linear-gradient(180deg, rgba(198,155,87,.35), rgba(169,79,53,.18), rgba(198,155,87,.35)); }
.tl-milestone { display: grid; grid-template-columns: 90px 24px 1fr; gap: 24px; align-items: start; padding: 12px 0; }
.tl-year { text-align: right; color: var(--clay); font: 700 30px/1.15 "Source Han Serif SC", SimSun, serif; padding-top: 6px; letter-spacing: .02em; }
.tl-dot { width: 16px; height: 16px; border-radius: 50%; background: var(--gold); margin-top: 14px; position: relative; z-index: 1; box-shadow: 0 0 0 5px rgba(198,155,87,.12); flex-shrink: 0; }
.tl-body { padding: 22px 26px; border: 1px solid rgba(18,63,53,.1); border-radius: 8px; background: linear-gradient(135deg, rgba(255,250,241,.92), rgba(247,243,234,.68)); box-shadow: 0 10px 28px rgba(18,63,53,.05); transition: transform .2s ease, box-shadow .2s ease; }
.tl-body:hover { transform: translateX(4px); box-shadow: 0 14px 34px rgba(18,63,53,.1); }
.tl-body h3 { color: var(--green); margin-bottom: 6px; font-size: 18px; }
.tl-body p { color: var(--muted); font-size: 15px; line-height: 1.72; }

/* ── About: page modules (about.html) ── */
.about-service-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.about-service-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 20px 24px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.94), rgba(247,243,234,.72)); box-shadow: 0 14px 36px rgba(18,63,53,.06); text-decoration: none; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.about-service-card:hover { transform: translateY(-4px); border-color: rgba(169,79,53,.3); box-shadow: 0 20px 46px rgba(18,63,53,.12); }
.asc-icon { width: 58px; height: 58px; border-radius: 50%; background: rgba(198,155,87,.06); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; transition: background .25s ease; }
.about-service-card:hover .asc-icon { background: rgba(198,155,87,.16); }
.about-service-card strong { display: block; color: var(--green); font-size: 17px; margin-bottom: 6px; }
.about-service-card span { display: block; color: var(--muted); font-size: 13px; line-height: 1.6; }

/* ── Exhibitions: 展厅与楼层分布 (exhibitions.html) ── */
.floor-showcase { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fs-card { display: flex; flex-direction: column; border: 1px solid rgba(18,63,53,.1); border-radius: 12px; background: linear-gradient(160deg, rgba(255,250,241,.97), rgba(247,243,234,.78)); box-shadow: 0 14px 38px rgba(18,63,53,.06); overflow: hidden; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.fs-card:hover { transform: translateY(-5px); box-shadow: 0 22px 52px rgba(18,63,53,.14); border-color: rgba(169,79,53,.22); }
.fs-card-top { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px 18px; background: linear-gradient(135deg, rgba(18,63,53,.06), transparent); border-bottom: 1px solid rgba(18,63,53,.06); }
.fs-floor-badge { display: flex; flex-direction: column; }
.fs-floor-num { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, #0f3a30, #154a3d); color: #f0cf8b; font: 700 22px/1 "Source Han Serif SC", SimSun, serif; letter-spacing: .02em; box-shadow: 0 4px 14px rgba(18,63,53,.2); }
.fs-floor-label { color: var(--muted); font-size: 13px; font-weight: 600; margin-top: 6px; letter-spacing: .06em; }
.fs-icon { color: var(--gold); opacity: .35; transition: opacity .3s ease; }
.fs-card:hover .fs-icon { opacity: .7; }
.fs-card-body { padding: 24px 24px 28px; flex: 1; display: flex; flex-direction: column; }
.fs-card-body h3 { color: var(--green); font-size: 19px; margin-bottom: 6px; }
.fs-subtitle { color: var(--gold); font-size: 14px; font-weight: 600; letter-spacing: .04em; margin-bottom: 12px; }
.fs-desc { color: var(--muted); font-size: 14px; line-height: 1.75; margin-bottom: 14px; }
.fs-link { display: inline-flex; align-items: center; gap: 6px; color: var(--clay); font-size: 14px; font-weight: 800; text-decoration: none; transition: color .2s ease; }
.fs-link:hover { color: #8b3a2b; }
.fs-divider { height: 1px; background: rgba(18,63,53,.08); margin: 18px 0; }
.fs-card-body h4 { color: var(--green); font-size: 16px; margin-bottom: 6px; padding-top: 2px; }
.fs-card-body h4::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); margin-right: 8px; vertical-align: middle; margin-top: -2px; }

.vr-panorama-banner { display: block; margin: 30px 0 0; overflow: hidden; border: 1px solid rgba(18,63,53,.14); border-radius: 8px; background: var(--green); box-shadow: 0 18px 44px rgba(18,63,53,.12); transition: transform .25s ease, box-shadow .25s ease; }
.vr-panorama-banner img { display: block; width: 100%; height: auto; }
.vr-panorama-banner:hover { transform: translateY(-3px); box-shadow: 0 24px 56px rgba(18,63,53,.18); }

/* ── Exhibition Detail: 汉函谷关专题展 (exhibition-hangu.html) ── */
.hangu-overview { background: linear-gradient(180deg, rgba(255,250,241,.58), rgba(246,241,230,.18)); }
.hangu-intro-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 30px; align-items: stretch; }
.hangu-intro-copy { padding: 36px; border: 1px solid rgba(18,63,53,.14); border-radius: 8px; background: rgba(255,250,241,.9); box-shadow: 0 16px 42px rgba(18,63,53,.07); }
.hangu-intro-copy h2 { margin: 8px 0 16px; color: var(--green); }
.hangu-intro-copy p:not(.eyebrow) { color: var(--muted); line-height: 1.9; }
.hangu-hall-banner { position: relative; min-height: 420px; margin: 0; overflow: hidden; border-radius: 8px; border: 1px solid rgba(18,63,53,.14); background: var(--green); box-shadow: 0 18px 48px rgba(18,63,53,.12); }
.hangu-hall-banner img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
.hangu-hall-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 52%, rgba(8,28,22,.72)); pointer-events: none; }
.hangu-hall-banner figcaption { position: absolute; left: 24px; bottom: 20px; z-index: 1; color: rgba(255,250,241,.82); font-size: 14px; letter-spacing: .08em; }
.hangu-tab-bar { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.hangu-tab-bar.four-tabs { grid-template-columns: repeat(4, minmax(0,1fr)); }
.hangu-tab-bar button { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 16px; border: 1px solid rgba(18,63,53,.14); border-radius: 8px; background: rgba(255,250,241,.86); color: var(--green); cursor: pointer; font-weight: 800; text-align: left; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.hangu-tab-bar button:hover { transform: translateY(-2px); border-color: rgba(169,79,53,.32); }
.hangu-tab-bar button.active { background: var(--green); color: #fffaf1; border-color: var(--green); }
.hangu-tab-bar span { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: rgba(198,155,87,.16); color: var(--clay); font-size: 12px; }
.hangu-tab-bar button.active span { background: #f0cf8b; color: var(--green); }
.hangu-chapter-panel { display: none; padding: 38px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: linear-gradient(150deg, rgba(255,250,241,.96), rgba(246,241,230,.72)); box-shadow: 0 18px 44px rgba(18,63,53,.08); }
.hangu-chapter-panel.active { display: block; }
.chapter-kicker { color: var(--clay); font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hangu-chapter-panel h3 { margin: 8px 0 12px; color: var(--green); font-size: clamp(24px,3vw,34px); }
.hangu-chapter-panel > p { max-width: 74ch; color: var(--muted); line-height: 1.85; }
.hangu-chapter-panel ul { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin: 26px 0 0; padding: 0; list-style: none; }
.hangu-chapter-panel li { padding: 22px; border-left: 3px solid var(--clay); background: rgba(255,250,241,.78); box-shadow: inset 0 0 0 1px rgba(18,63,53,.08); }
.hangu-chapter-panel li strong { display: block; color: var(--green); margin-bottom: 8px; font-size: 18px; }
.hangu-chapter-panel li span { color: var(--muted); line-height: 1.75; }

/* ── Education: 教育活动 (education.html) ── */
.edu-services-strip { background: linear-gradient(180deg, rgba(247,243,234,.72), rgba(247,243,234,.2)); }
.edu-services-sub { text-align: left; color: var(--muted); font-size: 15px; max-width: 54ch; margin: -12px 0 32px; }
.es-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.es-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 34px 22px 28px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.97), rgba(247,243,234,.68)); box-shadow: 0 12px 34px rgba(18,63,53,.05); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.es-card:hover { transform: translateY(-4px); border-color: rgba(169,79,53,.26); box-shadow: 0 18px 44px rgba(18,63,53,.12); }
.es-icon { width: 60px; height: 60px; border-radius: 50%; background: rgba(198,155,87,.08); display: flex; align-items: center; justify-content: center; color: var(--clay); margin-bottom: 18px; transition: background .25s ease, color .25s ease; }
.es-card:hover .es-icon { background: var(--green); color: var(--gold); }
.es-card h3 { color: var(--green); font-size: 18px; margin-bottom: 10px; }
.es-card p { color: var(--muted); font-size: 14px; line-height: 1.72; }

/* ── Education: 推荐研学主题 (education.html) ── */
.edu-courses-sub { text-align: left; color: var(--muted); font-size: 15px; max-width: 60ch; margin: -12px 0 28px; }
.ec-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ec-card { border: 1px solid rgba(18,63,53,.1); border-radius: 10px; overflow: hidden; background: linear-gradient(160deg, rgba(255,250,241,.97), rgba(247,243,234,.68)); box-shadow: 0 12px 34px rgba(18,63,53,.05); transition: transform .25s ease, box-shadow .25s ease; }
.ec-card:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(18,63,53,.12); }
.ec-img { position: relative; overflow: hidden; }
.ec-img img { width: 100%; height: 180px; object-fit: cover; display: block; transition: transform .4s ease; }
.ec-card:hover .ec-img img { transform: scale(1.06); }
.ec-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8,28,22,.3)); pointer-events: none; }
.ec-body { padding: 20px 22px 24px; }
.ec-tag { display: inline-block; padding: 3px 12px; border-radius: 3px; background: rgba(18,63,53,.08); color: var(--green); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 10px; }
.ec-body h3 { color: var(--green); font-size: 17px; margin-bottom: 8px; }
.ec-body p { color: var(--muted); font-size: 14px; line-height: 1.68; }

/* ── Education: 近期活动预告 (education.html) ── */

/* ── Education: 合作与共建 (education.html) ── */
.edu-partners-sub { color: var(--muted); font-size: 15px; max-width: 60ch; margin: -12px 0 28px; }
.ep-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ep-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 22px 26px; border: 1px solid rgba(18,63,53,.08); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.97), rgba(247,243,234,.68)); box-shadow: 0 12px 34px rgba(18,63,53,.05); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.ep-card:hover { transform: translateY(-4px); border-color: rgba(169,79,53,.26); box-shadow: 0 18px 44px rgba(18,63,53,.12); }
.ep-icon { width: 60px; height: 60px; border-radius: 50%; background: rgba(198,155,87,.08); display: flex; align-items: center; justify-content: center; color: var(--clay); margin-bottom: 16px; transition: background .25s ease, color .25s ease; }
.ep-card:hover .ep-icon { background: var(--green); color: var(--gold); }
.ep-card h3 { color: var(--green); font-size: 18px; margin-bottom: 10px; }
.ep-card p { color: var(--muted); font-size: 14px; line-height: 1.72; }

/* 二稿内页优化：参观服务、教育活动、关于 */
.visit-contact-section { background: linear-gradient(180deg, rgba(255,250,241,.68), rgba(246,241,230,.38)); border-top: 1px solid rgba(18,63,53,.06); border-bottom: 1px solid rgba(18,63,53,.06); }
.visit-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 36px; }
.visit-contact-card { padding: 0 0 22px 22px; border: 0; border-left: 3px solid rgba(198,155,87,.56); border-radius: 0; background: transparent; box-shadow: none; }
.visit-contact-card span { display: block; margin-bottom: 6px; color: var(--clay); font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.visit-contact-card strong { display: block; color: var(--green); font: 700 21px/1.35 "Source Han Serif SC", SimSun, serif; margin-bottom: 10px; }
.visit-contact-card p { color: var(--muted); font-size: 14px; line-height: 1.75; }
.visit-map-card { position: relative; grid-column: 1 / -1; min-height: 340px; overflow: hidden; border: 1px solid rgba(18,63,53,.16); border-radius: 10px; background: linear-gradient(135deg, rgba(18,63,53,.94), rgba(31,90,72,.86)), radial-gradient(circle at 78% 30%, rgba(198,155,87,.24), transparent 30%); box-shadow: 0 18px 44px rgba(18,63,53,.12); color: #fffaf1; }
.visit-map-card::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(240,207,139,.18); border-radius: 6px; }
.visit-map-card::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(30deg, rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(120deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 84px 84px, 110px 110px; opacity: .42; }
.map-pin { position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%, -50%); padding: 10px 18px; border-radius: 999px; background: #fffaf1; color: var(--green); font-weight: 800; box-shadow: 0 14px 32px rgba(0,0,0,.22); white-space: nowrap; }
.map-pin::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: var(--clay); box-shadow: 0 0 0 5px rgba(169,79,53,.16); }
.map-line { position: absolute; z-index: 1; height: 2px; border-radius: 999px; background: rgba(240,207,139,.5); transform-origin: left center; }
.map-line.one { left: 8%; top: 34%; width: 48%; transform: rotate(8deg); }
.map-line.two { right: 12%; top: 58%; width: 42%; transform: rotate(-15deg); }
.map-line.three { left: 18%; bottom: 24%; width: 66%; transform: rotate(-4deg); }
.visit-map-card p { position: absolute; left: 28px; right: 28px; bottom: 24px; z-index: 2; color: rgba(255,250,241,.72); font-size: 13px; line-height: 1.65; }
.notice-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 42px; border-top: 2px solid rgba(18,63,53,.16); border-bottom: 1px solid rgba(18,63,53,.1); }
.notice-service-grid .notice-new { display: grid; grid-template-columns: 54px 120px minmax(0,1fr); gap: 16px; align-items: start; min-height: 0; padding: 20px 0; border: 0; border-bottom: 1px solid rgba(18,63,53,.1); border-radius: 0; background: transparent; box-shadow: none; transition: none; }
.notice-service-grid .notice-new:hover { transform: none; box-shadow: none; border-color: rgba(18,63,53,.1); }
.notice-service-grid .notice-new > span { display: inline-grid; place-items: center; width: 40px; height: 40px; margin: 0; border-radius: 50%; background: rgba(18,63,53,.08); color: var(--clay); font: 800 13px/1 "Source Han Serif SC", SimSun, serif; }
.notice-service-grid .notice-new:hover > span { color: var(--clay); background: rgba(18,63,53,.08); }
.notice-service-grid .notice-new h3 { margin: 7px 0 0; color: var(--green); font-size: 17px; line-height: 1.45; }
.notice-service-grid .notice-new p { margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.78; }

.edu-news-hub { background: linear-gradient(180deg, rgba(255,250,241,.54), rgba(246,241,230,.2)); }
.edu-news-layout { display: grid; grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr); gap: 28px; align-items: stretch; }
.edu-news-feature { position: relative; overflow: hidden; min-height: 420px; padding: 0; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: var(--green); box-shadow: 0 18px 46px rgba(18,63,53,.12); }
.edu-news-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .72; }
.edu-news-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,28,22,.1), rgba(8,28,22,.88)); }
.edu-news-feature span, .edu-news-feature h3, .edu-news-feature p { position: relative; z-index: 1; }
.edu-news-feature span { display: inline-flex; margin: 210px 28px 16px; padding: 5px 13px; border-radius: 999px; background: rgba(240,207,139,.18); color: #f0cf8b; font-size: 13px; font-weight: 800; }
.edu-news-feature h3 { margin: 0 28px 10px; color: #fffaf1; font-size: 23px; }
.edu-news-feature p { margin: 0 28px 28px; color: rgba(255,250,241,.74); line-height: 1.75; }
.edu-news-tabs { padding: 28px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: rgba(255,250,241,.9); box-shadow: 0 16px 38px rgba(18,63,53,.07); }
.edu-news-tabs .tab-panel.active { display: grid; gap: 0; }
.edu-news-tabs .tab-panel a { align-items: center; min-height: 74px; padding: 18px 0; color: var(--green); }
.edu-news-tabs .tab-panel a span { color: var(--clay); font-size: 13px; font-weight: 800; white-space: nowrap; }
.edu-news-columns { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.edu-news-column { padding: 30px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: linear-gradient(150deg, rgba(255,250,241,.96), rgba(246,241,230,.72)); box-shadow: 0 14px 36px rgba(18,63,53,.06); }
.edu-news-column h2 { margin: 6px 0 12px; font-size: 25px; }
.edu-news-column p:not(.eyebrow) { color: var(--muted); min-height: 76px; }
.edu-news-column a { display: inline-flex; margin-top: 22px; color: var(--clay); font-weight: 800; }

.edu-topic-section { background: linear-gradient(180deg, rgba(255,250,241,.56), rgba(246,241,230,.2)); }
.edu-topic-showcase { display: grid; grid-template-columns: minmax(0,1.04fr) minmax(360px,.96fr); gap: 28px; align-items: stretch; }
.edu-topic-feature { position: relative; min-height: 430px; overflow: hidden; border-radius: 10px; background: var(--green); box-shadow: 0 18px 48px rgba(18,63,53,.14); }
.edu-topic-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .76; transition: transform .45s ease; }
.edu-topic-feature:hover img { transform: scale(1.04); }
.edu-topic-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,28,22,.04), rgba(8,28,22,.88)); }
.edu-topic-feature div { position: absolute; left: 30px; right: 30px; bottom: 28px; z-index: 1; color: #fffaf1; }
.edu-topic-feature span { display: inline-flex; margin-bottom: 14px; padding: 5px 13px; border-radius: 999px; background: rgba(240,207,139,.18); color: #f0cf8b; font-size: 13px; font-weight: 800; }
.edu-topic-feature h3 { color: #fffaf1; font-size: clamp(23px,2.4vw,32px); margin-bottom: 12px; }
.edu-topic-feature p { max-width: 60ch; color: rgba(255,250,241,.76); line-height: 1.8; }
.edu-topic-feature a { display: inline-flex; margin-top: 18px; color: #f0cf8b; font-weight: 800; }
.edu-topic-list { display: initial; align-self: stretch; padding: 2px 0 0; }
.edu-topic-list > a { display: grid; grid-template-columns: minmax(0,1fr) 84px; gap: 18px; align-items: center; min-height: 84px; padding: 0; border-bottom: 1px solid rgba(18,63,53,.14); color: var(--green); transition: color .15s ease, padding .15s ease; }
.edu-topic-list > .edu-topic-more { display: flex; justify-self: end; grid-template-columns: none; min-height: auto; margin-bottom: 10px; border-bottom: 0; color: var(--clay); font-weight: 800; }
.edu-topic-list > a:hover { color: var(--clay); padding-left: 8px; }
.edu-topic-list > .edu-topic-more:hover { padding-left: 0; }
.edu-topic-list > a > span:first-child { min-width: 0; }
.edu-topic-list > a strong { display: block; overflow: hidden; color: inherit; font-size: 17px; font-weight: 700; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.edu-topic-list > a em { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 5px; color: var(--muted); font-size: 14px; font-style: normal; line-height: 1.58; }
.edu-topic-list > a > span:last-child { color: #8b7a6b; font-size: 13px; font-weight: 700; text-align: right; white-space: nowrap; }
.edu-topic-list > a:not(.edu-topic-more) { cursor: pointer; }
.edu-news-duo { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; padding-top: 34px; }
.edu-list-board { padding: 30px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: linear-gradient(150deg, rgba(255,250,241,.96), rgba(246,241,230,.72)); box-shadow: 0 16px 40px rgba(18,63,53,.07); }
.edu-list-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid rgba(18,63,53,.12); }
.edu-list-head .eyebrow { grid-column: 1 / -1; margin-bottom: -4px; }
.edu-list-head h2 { margin: 0; color: var(--green); }
.edu-list-head a { color: var(--clay); font-weight: 800; }
.edu-list-items { display: grid; }
.edu-list-items a { display: grid; grid-template-columns: 42px minmax(0,1fr) 84px; gap: 14px; align-items: center; min-height: 76px; border-bottom: 1px solid rgba(18,63,53,.1); color: var(--ink); }
.edu-list-items a:last-child { border-bottom: 0; }
.edu-list-items span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(18,63,53,.08); color: var(--clay); font-size: 12px; font-weight: 800; }
.edu-list-items strong { color: var(--green); font-size: 16px; line-height: 1.45; }
.edu-list-items em { color: var(--clay); font-size: 13px; font-style: normal; font-weight: 800; text-align: right; }
.edu-list-items a:hover strong { color: var(--clay); }
.edu-volunteer-section { padding-top: 12px; }
.volunteer-recruit-banner { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 24px; align-items: center; min-height: 190px; padding: 36px 44px; overflow: hidden; border-radius: 10px; color: #fffaf1; background: linear-gradient(120deg, rgba(9,45,38,.95), rgba(18,63,53,.88)), url("../images/content/hangu-gallery-wide.jpg") center/cover; box-shadow: 0 20px 54px rgba(18,63,53,.16); }
.volunteer-recruit-banner::before { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(240,207,139,.18); border-radius: 8px; pointer-events: none; }
.volunteer-recruit-banner span { position: relative; z-index: 1; color: #f0cf8b; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.volunteer-recruit-banner strong { position: relative; z-index: 1; grid-column: 1; color: #fffaf1; font: 700 clamp(28px,4vw,46px)/1.15 "Source Han Serif SC", SimSun, serif; }
.volunteer-recruit-banner em { position: relative; z-index: 1; grid-column: 1; max-width: 720px; color: rgba(255,250,241,.72); font-style: normal; line-height: 1.75; }
.volunteer-recruit-banner b { position: relative; z-index: 1; grid-column: 2; grid-row: 1 / span 3; display: inline-flex; align-items: center; justify-content: center; min-width: 132px; height: 48px; padding: 0 24px; border-radius: 999px; background: #f0cf8b; color: var(--green); font-size: 15px; }

.about-office-page { background: linear-gradient(180deg, rgba(255,250,241,.62), rgba(246,241,230,.18)); }
.about-office-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 34px; align-items: stretch; }
.about-office-intro { padding: 34px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: rgba(255,250,241,.9); box-shadow: 0 16px 40px rgba(18,63,53,.07); }
.about-office-intro h2 { margin: 6px 0 18px; }
.about-office-intro p:not(.eyebrow) { color: var(--muted); line-height: 1.88; }
.about-office-intro p + p { margin-top: 14px; }
.about-office-photo { position: relative; overflow: hidden; min-height: 360px; border-radius: 10px; box-shadow: 0 18px 44px rgba(18,63,53,.13); }
.about-office-photo img { width: 100%; height: 100%; object-fit: cover; }
.about-office-photo span { position: absolute; left: 18px; bottom: 18px; padding: 6px 12px; border-radius: 999px; background: rgba(18,63,53,.82); color: #f0cf8b; font-size: 13px; font-weight: 800; }
.org-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.org-grid article { min-height: 210px; padding: 26px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: linear-gradient(150deg, rgba(255,250,241,.96), rgba(246,241,230,.72)); box-shadow: 0 14px 36px rgba(18,63,53,.06); }
.org-grid h3 { color: var(--green); margin-bottom: 12px; font-size: 18px; }
.org-grid p { color: var(--muted); font-size: 14px; line-height: 1.78; }
.org-chart-panel { position: relative; overflow: hidden; padding: 42px 38px 34px; border: 1px solid rgba(18,63,53,.12); border-radius: 10px; background: linear-gradient(160deg, rgba(255,250,241,.96), rgba(246,241,230,.72)); box-shadow: 0 18px 46px rgba(18,63,53,.08); }
.org-chart-panel::before { content: ""; position: absolute; left: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(198,155,87,.16), transparent 62%); pointer-events: none; }
.org-duty { position: relative; z-index: 1; display: grid; grid-template-columns: 136px minmax(0,1fr); gap: 18px; align-items: start; max-width: 1120px; margin: 0 auto 42px; }
.org-duty h3 { color: var(--clay); font: 700 24px/1.3 "Source Han Serif SC", SimSun, serif; }
.org-duty p { color: var(--ink); line-height: 1.9; }
.org-root { position: relative; z-index: 1; width: max-content; margin: 0 auto 46px; padding: 12px 30px 14px; border-top: 5px solid var(--clay); color: var(--clay); font: 700 22px/1.2 "Source Han Serif SC", SimSun, serif; letter-spacing: .08em; }
.org-root::after { content: ""; position: absolute; left: 50%; bottom: -46px; width: 1px; height: 46px; background: rgba(169,79,53,.62); }
.org-branch-scroll { position: relative; z-index: 1; overflow-x: auto; padding: 0 0 4px; }
.org-branch-list { position: relative; display: grid; grid-template-columns: repeat(8, minmax(92px, 1fr)); gap: 0; min-width: 860px; padding-top: 28px; }
.org-branch-list::before { content: ""; position: absolute; top: 0; left: 46px; right: 46px; height: 1px; background: rgba(169,79,53,.62); }
.org-branch-list span { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; min-height: 176px; padding-top: 24px; color: var(--ink); text-align: center; }
.org-branch-list span::before { content: ""; position: absolute; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--clay); box-shadow: 0 0 0 4px rgba(169,79,53,.08); }
.org-branch-list span::after { content: ""; position: absolute; top: 0; width: 1px; height: 48px; background: rgba(169,79,53,.52); }
.org-branch-list strong { position: relative; z-index: 1; writing-mode: vertical-rl; text-orientation: mixed; color: var(--ink); font-size: 18px; font-weight: 700; line-height: 1.22; letter-spacing: .08em; }
.org-branch-list em { color: #8b7a6b; font-size: 12px; font-style: normal; }
.org-chart-note { position: relative; z-index: 1; margin-top: 20px; color: #8b7a6b; font-size: 13px; text-align: center; }
.org-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin-top: 22px; }
.org-detail-grid article { padding: 22px 24px; border-left: 3px solid rgba(169,79,53,.62); background: rgba(255,250,241,.68); box-shadow: inset 0 0 0 1px rgba(18,63,53,.08); }
.org-detail-grid h3 { color: var(--green); font-size: 18px; margin-bottom: 8px; }
.org-detail-grid p { color: var(--muted); font-size: 14px; line-height: 1.78; }
.leader-section { background: linear-gradient(180deg, rgba(246,241,230,.16), rgba(255,250,241,.58)); }
.leader-table { overflow: hidden; border: 1px solid rgba(18,63,53,.14); border-radius: 10px; background: rgba(255,250,241,.92); box-shadow: 0 16px 40px rgba(18,63,53,.07); }
.leader-row { display: grid; grid-template-columns: .8fr .8fr 1.4fr; min-height: 64px; border-top: 1px solid rgba(18,63,53,.1); }
.leader-row:first-child { border-top: 0; }
.leader-row span { display: flex; align-items: center; padding: 16px 22px; color: var(--muted); border-left: 1px solid rgba(18,63,53,.1); }
.leader-row span:first-child { border-left: 0; }
.leader-row.head { min-height: 52px; background: var(--green); }
.leader-row.head span { color: #fffaf1; font-weight: 800; border-left-color: rgba(255,255,255,.14); }
