/* ============ 玲君永恒 · 样式表 ============ */
/* 日常默认主题：温暖米白 + 暖棕 */
:root, body[data-theme="normal"] {
  --theme: #b5651d;
  --theme-strong: #8a5a33;
  --theme-soft: #f6efe4;
  --bg: #faf7f2;
  --card: #ffffff;
  --line: #e8ddd0;
  --text: #333333;
  --text-soft: #8a8a8a;
  --banner-bg: #8a5a33;
  --banner-text: #fff7ec;
}
/* 生辰 · 暖金 */
body[data-theme="birthday"] { --theme:#c9972b; --theme-strong:#a87c1e; --theme-soft:#faf3e0; --banner-bg:#c9972b; --banner-text:#fffdf5; }
/* 忌日 · 素雅灰 */
body[data-theme="memorial"] { --theme:#7d7d78; --theme-strong:#5e5e5a; --theme-soft:#f1efec; --banner-bg:#6e6e69; --banner-text:#f7f7f4; }
/* 结婚纪念 · 暖玫瑰 */
body[data-theme="wedding"] { --theme:#bf7a6a; --theme-strong:#9d5f50; --theme-soft:#f9ece7; --banner-bg:#bf7a6a; --banner-text:#fff8f5; }
/* 清明 · 青绿 */
body[data-theme="qingming"] { --theme:#6f8f6f; --theme-strong:#527052; --theme-soft:#eef3ec; --banner-bg:#6f8f6f; --banner-text:#f4f9f4; }
/* 七夕 · 淡粉 */
body[data-theme="qixi"] { --theme:#c48a9c; --theme-strong:#a26a7c; --theme-soft:#f8eef2; --banner-bg:#c48a9c; --banner-text:#fff8fb; }
/* 七月十五 · 月白 */
body[data-theme="zhongyuan"] { --theme:#7d8a96; --theme-strong:#5f6a75; --theme-soft:#eef1f4; --banner-bg:#7d8a96; --banner-text:#f4f7fa; }

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:-apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.7;
}

/* ============ 导航 ============ */
.site-nav {
  position:sticky; top:0; z-index:50;
  background:var(--banner-bg);
  transition:background .6s ease;
}
.nav-inner {
  max-width:1000px; margin:0 auto; padding:12px 18px;
  display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;
}
.nav-brand { color:var(--banner-text); font-size:19px; font-weight:700; text-decoration:none; letter-spacing:2px; }
.nav-links { display:flex; gap:16px; flex-wrap:wrap; }
.nav-links a { color:var(--banner-text); text-decoration:none; font-size:14px; opacity:.92; }
.nav-links a:hover { opacity:1; text-decoration:underline; }

/* ============ 纪念日状态条 ============ */
.memorial-bar {
  background:var(--theme-soft);
  border-bottom:1px solid var(--line);
  color:var(--theme-strong);
  text-align:center;
  font-size:14px;
  padding:8px 16px;
  transition:background .6s ease, color .6s ease;
}

/* ============ 首屏 ============ */
.hero {
  max-width:1000px; margin:0 auto; padding:44px 18px 20px;
  text-align:center;
}
.hero-title { font-size:38px; font-weight:700; color:var(--theme-strong); letter-spacing:10px; }
.hero-sub { font-size:17px; color:var(--text-soft); margin-top:8px; letter-spacing:2px; }
.hero-slogan { font-size:15px; color:var(--theme); margin-top:10px; letter-spacing:4px; }
.hero-main {
  display:flex; align-items:stretch; justify-content:center;
  gap:20px; margin-top:34px; flex-wrap:wrap;
}
.flower-zone {
  flex:1; min-width:170px; max-width:240px;
  background:var(--theme-soft);
  border:1px dashed var(--theme);
  border-radius:12px;
  padding:22px 14px;
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px;
  transition:background .6s ease, border-color .6s ease;
}
.flower-title { font-size:16px; font-weight:700; color:var(--theme-strong); }
.flower-hint { font-size:13px; color:var(--text-soft); }
.flower-btn {
  background:var(--theme); color:#fff;
  border:none; border-radius:22px;
  padding:10px 26px; font-size:14px; cursor:pointer;
  transition:opacity .2s;
}
.flower-btn:hover { opacity:.85; }
.hero-photo {
  flex:1.7; min-width:240px; max-width:380px;
  padding:10px;
}
.hero-photo img {
  width:100%; border-radius:8px;
  border:3px solid var(--line);
  box-shadow:0 6px 20px rgba(0,0,0,.08);
  transition:border-color .6s ease;
}
.hero-photo-cap { margin-top:10px; font-size:14px; color:var(--theme); letter-spacing:3px; }
.hero-count { margin-top:22px; font-size:14px; color:var(--text-soft); }

/* ============ 通用区块 ============ */
.section { max-width:1000px; margin:0 auto; padding:40px 18px 10px; }
.section-title {
  font-size:26px; color:var(--theme-strong); text-align:center;
  letter-spacing:6px; padding-bottom:12px; margin-bottom:22px;
  border-bottom:1px solid var(--line);
}

/* ============ 影像记忆 ============ */
.video-grid { display:flex; gap:18px; flex-wrap:wrap; }
.video-card { flex:1; min-width:280px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px; }
.video-player {
  background:#000; border-radius:8px; aspect-ratio:16/9;
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.video-placeholder { text-align:center; color:#bbb; }
.video-play-mark { font-size:40px; color:var(--theme); display:block; }
.video-placeholder-text { font-size:13px; display:block; margin-top:8px; }
.video-cap { margin-top:10px; font-size:14px; color:var(--text-soft); text-align:center; }

/* ============ 纪念文字 ============ */
.texts-grid { display:flex; gap:18px; flex-wrap:wrap; }
.texts-col { flex:1; min-width:280px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
.col-title { font-size:17px; color:var(--theme-strong); margin-bottom:12px; }
.article-list, .message-list { list-style:none; }
.article-list li, .message-list li {
  padding:10px 4px; border-bottom:1px dashed var(--line); font-size:14px;
}
.article-item { cursor:pointer; color:var(--theme-strong); }
.article-item .article-title { font-weight:600; }
.article-item .article-date { color:var(--text-soft); font-size:12px; margin-left:8px; }
.article-body { display:none; font-size:14px; color:var(--text); margin-top:8px; white-space:pre-wrap; }
.article-item.open .article-body { display:block; }
.message-item .message-text { color:var(--text); }
.message-item .message-meta { color:var(--text-soft); font-size:12px; margin-top:2px; }
.empty-hint { color:var(--text-soft); font-size:13px; }
.message-btn {
  margin-top:14px; background:var(--theme); color:#fff; border:none;
  border-radius:20px; padding:9px 22px; font-size:14px; cursor:pointer;
}
.message-btn:hover { opacity:.85; }

/* ============ 照片库 ============ */
.photo-filter { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:16px; }
.filter-chip {
  background:var(--theme-soft); color:var(--theme-strong);
  border:1px solid var(--line); border-radius:16px;
  padding:5px 14px; font-size:13px; cursor:pointer;
}
.filter-chip.active { background:var(--theme); color:#fff; border-color:var(--theme); }
.photo-grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:12px;
}
.photo-grid .empty-hint { grid-column:1 / -1; text-align:center; padding:40px 0; }
.photo-more { text-align:center; margin-top:18px; }
.photo-more-btn {
  background:var(--theme); color:#fff; border:none; border-radius:22px;
  padding:10px 26px; font-size:14px; cursor:pointer;
}
.photo-more-btn:hover { opacity:.85; }
.photo-more-done { color:var(--text-soft); font-size:13px; }
.photo-card {
  position:relative; border-radius:8px; overflow:hidden; cursor:pointer;
  aspect-ratio:1/1; background:var(--theme-soft);
}
.photo-card img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.photo-card:hover img { transform:scale(1.04); }
.photo-card .photo-cap {
  position:absolute; left:0; right:0; bottom:0;
  background:rgba(0,0,0,.45); color:#fff; font-size:12px;
  padding:4px 8px; text-align:left;
}

/* ============ 留言表单 ============ */
.message-form {
  background:var(--theme-soft); border:1px solid var(--line);
  border-radius:10px; padding:12px; margin-bottom:14px;
}
.msg-from {
  width:100%; padding:7px 10px; font-size:14px;
  border:1px solid var(--line); border-radius:6px; margin-bottom:8px;
  font-family:inherit; box-sizing:border-box;
}
.msg-text {
  width:100%; padding:8px 10px; font-size:14px;
  border:1px solid var(--line); border-radius:6px; resize:vertical;
  font-family:inherit; box-sizing:border-box;
}
.msg-row {
  display:flex; justify-content:space-between; align-items:center;
  margin-top:8px; gap:8px; flex-wrap:wrap;
}
.msg-status { font-size:12px; color:var(--theme-strong); }
.message-btn { margin-top:0; }

/* ============ 页脚 ============ */
.site-footer {
  margin-top:50px; padding:26px 18px;
  background:var(--theme-strong); color:rgba(255,255,255,.85);
  text-align:center; font-size:13px;
}
.footer-icp { margin-top:6px; opacity:.7; }

/* ============ 献花弹层 ============ */
.modal {
  position:fixed; inset:0; z-index:100;
  background:rgba(0,0,0,.45);
  display:flex; align-items:center; justify-content:center; padding:18px;
}
.modal.hidden, .lightbox.hidden { display:none; }
.modal-box {
  background:var(--card); border-radius:14px; padding:22px;
  width:100%; max-width:420px; max-height:90vh; overflow-y:auto;
  border:1px solid var(--line);
}
.modal-close, .lightbox-close {
  float:right; border:none; background:none;
  font-size:24px; color:var(--text-soft); cursor:pointer; line-height:1;
}
.modal-title { font-size:18px; color:var(--theme-strong); margin-bottom:14px; }
.flower-options { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.flower-option {
  flex:1; min-width:86px; text-align:center;
  border:1px solid var(--line); border-radius:10px; padding:10px 6px; cursor:pointer;
  background:var(--bg);
}
.flower-option.selected { border-color:var(--theme); background:var(--theme-soft); }
.flower-option .flower-dot {
  display:inline-block; width:20px; height:20px; border-radius:50%;
  border:2px solid var(--theme);
}
.flower-option-name { font-size:12px; color:var(--text); margin-top:4px; display:block; }
.flower-note-label { font-size:13px; color:var(--text-soft); }
.flower-note {
  width:100%; margin-top:6px; padding:8px 10px; font-size:14px;
  border:1px solid var(--line); border-radius:8px; font-family:inherit;
  resize:vertical;
}
.flower-submit-row { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:14px; flex-wrap:wrap; }
.flower-anonymous { font-size:12px; color:var(--text-soft); }
.flower-submit {
  background:var(--theme); color:#fff; border:none; border-radius:20px;
  padding:9px 22px; font-size:14px; cursor:pointer;
}
.flower-submit:hover { opacity:.85; }

/* ============ 灯箱 ============ */
.lightbox {
  position:fixed; inset:0; z-index:110;
  background:rgba(0,0,0,.8);
  display:flex; align-items:center; justify-content:center; padding:18px;
}
.lightbox-close { position:absolute; top:18px; right:22px; color:#fff; }
.lightbox-figure { max-width:900px; width:100%; text-align:center; }
.lightbox-figure img { max-width:100%; max-height:78vh; border-radius:8px; }
.lightbox-cap { color:#ddd; font-size:13px; margin-top:10px; }

/* ============ 响应式 ============ */
@media (max-width:640px) {
  .hero-title { font-size:30px; letter-spacing:6px; }
  .hero-main { gap:12px; }
  .hero-photo { min-width:100%; max-width:100%; }
  .section-title { font-size:22px; letter-spacing:4px; }
}
