/* ============================================================
   Announcement card: title always visible + body expand on hover
   公告卡默认显示：标题行「📢 公告」+ 公告首段标题(常驻)。
   鼠标悬浮(或触屏点击)时，正文在卡片内部向下展开。
   不溢出卡片边界，保留圆角裁切。非线性缓动。
   ※ 侧栏卡片 .card-widget 自带 overflow:hidden，不能在卡片外
   弹浮层(会被裁掉)——一律卡片内部展开。
   结构(由 announce-hover.js 生成)：
     .card-announcement
       .item-headline        「📢 公告」
       .announcement_title   公告首段(常驻标题)
       .announcement_body    其余正文(默认折叠，hover/open 展开)
   ============================================================ */

.card-announcement {
  position: relative;
}

/* ---- 标题行：强制始终可见、醒目 ---- */
.card-announcement .item-headline {
  display: flex !important;
  align-items: center;
  gap: 6px;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 1.02em;
  font-weight: 600;
  line-height: 1.6;
  min-height: 0;
}

/* 图标加载失败时仍有可读标题文字 */
.card-announcement .item-headline span {
  color: inherit;
}

/* ---- 常驻公告标题（首段）---- */
.card-announcement .announcement_title {
  display: block;
  margin-top: 6px;
  font-size: 0.95em;
  font-weight: 600;
  line-height: 1.6;
  color: var(--theme-color, #49b1f5);
  word-break: break-word;
}

/* ---- 正文：卡片内折叠展开 ---- */
.card-announcement .announcement_body {
  overflow: hidden;                     /* 配合 max-height 做折叠动画 */
  max-height: 0;                        /* 默认折叠 */
  opacity: 0;
  margin-top: 0;
  padding: 0 2px;
  font-size: 0.92em;
  line-height: 1.8;
  text-align: left;
  transition:
    max-height 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
    opacity 0.3s ease,
    margin-top 0.5s cubic-bezier(0.22, 0.61, 0.36, 1),
    padding 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 悬浮 或 触屏 .open：正文向下展开 */
.card-announcement:hover .announcement_body,
.card-announcement.open .announcement_body {
  max-height: 720px;                    /* 足够容纳长文 */
  opacity: 1;
  margin-top: 6px;
  padding: 2px;
}

/* ---- 标题与正文之间的分隔线（展开时可见） ---- */
.card-announcement .announcement_body {
  border-top: 1px solid transparent;
}
.card-announcement:hover .announcement_body,
.card-announcement.open .announcement_body {
  border-top-color: rgba(0, 0, 0, 0.08);
}
html[data-theme='dark'] .card-announcement:hover .announcement_body,
html[data-theme='dark'] .card-announcement.open .announcement_body {
  border-top-color: rgba(255, 255, 255, 0.12);
}

/* ---- 正文排版细节 ---- */
.card-announcement .announcement_body p {
  margin: 0.4em 0;
}
.card-announcement .announcement_body ul {
  margin: 0.2em 0 0.2em 1.2em;
  padding: 0;
}
.card-announcement .announcement_body li {
  margin: 0.15em 0;
}
.card-announcement .announcement_body blockquote {
  margin: 0.5em 0;
  padding: 0.2em 0.8em;
}
