/* ============================================================
   優妃思 · 文章頁版型
   疊在 tokens + ufans-ai.css + style.css（.single-post .entry-content 閱讀排版）+ ufans-blog.css 之上
   ============================================================ */

/* ───────── 閱讀進度條（由 ufans-post.js 插進 .nav，貼齊選單下緣，不會和選單之間留縫） ───────── */
.ufans-post .nav .read-progress{
  position: absolute; left: 0; right: 0; bottom: -1px;
  height: 3px; pointer-events: none;
}
.ufans-post .nav .read-progress i{
  display: block; height: 100%;
  background: var(--grad);
  transform: scaleX(0); transform-origin: 0 50%;
  box-shadow: 0 0 12px rgba(255,107,157,.55);
}

/* ───────── 標頭 ───────── */
.ufans-post .post-hero{
  border-bottom: 1px solid var(--line);
  background-image:
    linear-gradient(rgba(36,24,32,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36,24,32,.035) 1px, transparent 1px);
  background-size: 44px 44px;
}
.ufans-post .post-hero-in{
  position: relative; z-index: 20;
  max-width: 920px;
  padding-block: clamp(2.5rem, 6vw, 4rem) clamp(2.25rem, 5vw, 3.25rem);
  text-align: center;
}
.ufans-post .crumbs{
  display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem;
  font-family: var(--mono); font-size: .75rem; letter-spacing: .08em;
  color: var(--muted);
}
.ufans-post .crumbs a{ color: var(--rose); }
.ufans-post .crumbs a:hover{ text-decoration: underline; text-underline-offset: 3px; }
.ufans-post .post-hero h1{
  margin: 1rem auto 0;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  line-height: 1.35;
  color: var(--ink);
  text-wrap: pretty;
  max-width: 20em;
}
.ufans-post .post-hero .post-meta{ margin-top: 1.1rem; }

/* 封面：16:9 品牌封面，壓在標頭下緣 */
.ufans-post .post-cover{
  position: relative; z-index: 21;
  max-width: 960px;
  margin: -1.5rem auto 0;
}
.ufans-post .post-cover img{
  display: block; width: 100%; height: auto;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid var(--line);
  box-shadow: 0 28px 64px rgba(36,24,32,.12);
}

/* ───────── 內文＋左側導覽 ───────── */
.ufans-post .post-layout{
  display: grid; grid-template-columns: minmax(0, 720px);
  justify-content: center;
  gap: 3.5rem;
  padding-block: clamp(2.5rem, 5vw, 3.5rem) 1rem;
}
.ufans-post.has-toc .post-layout{ grid-template-columns: 220px minmax(0, 720px); }

.ufans-post .post-toc{
  position: -webkit-sticky; position: sticky;
  top: calc(var(--nav-h, 69px) + 2rem);
  align-self: start;
  max-height: calc(100vh - var(--nav-h, 69px) - 4rem);
  overflow-y: auto;
  padding: 1rem 0 1rem 1rem;
  border-left: 1px solid var(--line);
}
.admin-bar.ufans-post .post-toc{ top: calc(var(--nav-h, 69px) + 32px + 2rem); }
.ufans-post .toc-label{
  margin: 0 0 .75rem;
  font-family: var(--mono); font-size: .6875rem; letter-spacing: .16em; color: var(--rose);
}
.ufans-post .post-toc ol{ list-style: none; margin: 0; padding: 0; }
.ufans-post .post-toc li{ margin: 0; }
.ufans-post .post-toc a{
  position: relative;
  display: flex; gap: .6rem;
  padding: .45rem 0;
  font-size: .8125rem; line-height: 1.55; color: var(--ink-3);
  transition: color .2s ease;
}
.ufans-post .post-toc a::before{
  content: ""; position: absolute; left: calc(-1rem - 1px); top: .45rem; bottom: .45rem;
  width: 2px; border-radius: 2px;
  background: var(--grad);
  transform: scaleY(0); transition: transform .25s ease;
}
.ufans-post .post-toc a:hover{ color: var(--ink); }
.ufans-post .post-toc a[aria-current="true"]{ color: var(--ink); font-weight: 600; }
.ufans-post .post-toc a[aria-current="true"]::before{ transform: scaleY(1); }
.ufans-post .toc-no{
  flex-shrink: 0;
  font-family: var(--mono); font-size: .6875rem; font-weight: 400;
  color: var(--muted); padding-top: .15rem;
}
.ufans-post .post-toc a[aria-current="true"] .toc-no{ color: var(--rose); }

/* 桌機有左側導覽時，內文裡的 Rank Math 目錄就不重複顯示（手機照常顯示） */
.ufans-post.has-toc .entry-content .wp-block-rank-math-toc-block{ display: none; }

/* ───────── 內文補強（原本靠 Flatsome 的基礎樣式） ───────── */
.ufans-post .entry-content{ margin-inline: 0; }
.ufans-post .entry-content h2,
.ufans-post .entry-content h3{ scroll-margin-top: calc(var(--nav-h, 69px) + 1.5rem); }
.ufans-post .entry-content p{ margin-top: 0; }
.ufans-post .entry-content a{
  color: var(--rose);
  text-decoration: underline; text-decoration-color: rgba(224,79,130,.35);
  text-underline-offset: 3px;
  transition: text-decoration-color .18s ease;
}
.ufans-post .entry-content a:hover{ text-decoration-color: var(--rose); }
.ufans-post .entry-content figure{ margin: 1.8em 0; }
.ufans-post .entry-content img{ height: auto; border-radius: 12px; }
/* 內文開頭的封面圖（自動發文放的）當作封面呈現 */
.ufans-post .entry-content > .wp-block-image:first-child{ margin-top: 0; }
.ufans-post .entry-content > .wp-block-image:first-child img{
  border: 1px solid var(--line);
  box-shadow: 0 22px 52px rgba(36,24,32,.10);
}
.ufans-post .entry-content figcaption{
  margin-top: .6em; text-align: center;
  font-size: .82em; color: var(--muted);
}
.ufans-post .entry-content table{ border-collapse: collapse; width: 100%; }
.ufans-post .entry-content th, .ufans-post .entry-content td{ border: 1px solid var(--line); text-align: left; }
.ufans-post .entry-content hr{ border: 0; border-top: 1px solid var(--line); margin: 2.5em 0; }

/* 內文的 Rank Math 目錄（手機才看得到）：精簡、只列大標、不加底線 */
.ufans-post .entry-content .wp-block-rank-math-toc-block{
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  padding: 1em 1.2em;
}
.ufans-post .entry-content .wp-block-rank-math-toc-block h2{
  font-family: var(--mono); font-size: .72em; font-weight: 500; letter-spacing: .16em;
  color: var(--rose); border: 0; padding: 0; margin: 0 0 .6em;
}
.ufans-post .entry-content .wp-block-rank-math-toc-block ul,
.ufans-post .entry-content .wp-block-rank-math-toc-block ol{ list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.ufans-post .entry-content .wp-block-rank-math-toc-block ul ul,
.ufans-post .entry-content .wp-block-rank-math-toc-block ol ol{ display: none; }
.ufans-post .entry-content .wp-block-rank-math-toc-block li{
  counter-increment: toc;
  display: flex; gap: .6em;
  margin: 0; padding: .35em 0;
  font-size: .9em; line-height: 1.6;
}
.ufans-post .entry-content .wp-block-rank-math-toc-block li::before{
  content: counter(toc, decimal-leading-zero);
  font-family: var(--mono); font-size: .8em; color: var(--muted); padding-top: .15em;
}
.ufans-post .entry-content .wp-block-rank-math-toc-block a{
  color: var(--ink-2); text-decoration: none;
}

/* 重點摘要 → AI 摘要卡 */
.ufans-post .entry-content .post-summary{
  position: relative;
  background: linear-gradient(180deg, #FFFFFF, #FFF8F4);
  border: 1px solid var(--line-2); border-left-width: 1px;
  border-radius: 14px;
  padding: 2.6em 1.4em 1.2em;
  box-shadow: 0 14px 34px rgba(255,122,77,.08);
}
.ufans-post .entry-content .post-summary::before{
  content: "◆ AI SUMMARY";
  position: absolute; left: 0; right: 0; top: 0;
  padding: .55em 1.35em;
  font-family: var(--mono); font-size: .68em; letter-spacing: .16em; color: var(--rose);
  border-bottom: 1px dashed var(--line-2);
  border-radius: 14px 14px 0 0;
  background: rgba(255,244,239,.7);
}
.ufans-post .entry-content .post-summary ul{ margin-bottom: 0; }

/* 提示框 */
.ufans-post .entry-content .ufans-callout{
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 3px solid var(--orange);
  border-radius: 12px;
}

/* 常見問答（Rank Math FAQ 區塊） */
.ufans-post .entry-content .rank-math-faq-item{
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface);
  padding: 1em 1.25em; margin-bottom: .9em;
}
.ufans-post .entry-content .rank-math-question{
  font-size: 1.02em; line-height: 1.55; margin: 0 0 .45em; color: var(--ink);
  border: 0; padding: 0;
}
.ufans-post .entry-content .rank-math-question::before{
  content: "Q"; font-family: var(--mono); font-weight: 500;
  color: var(--rose); margin-right: .55em;
}
.ufans-post .entry-content .rank-math-answer{ color: var(--ink-2); }
.ufans-post .entry-content .rank-math-answer p:last-child{ margin-bottom: 0; }

/* ───────── 文末：標籤、分享 ───────── */
.ufans-post .post-foot{
  margin-top: 3rem; padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem;
}
.ufans-post .post-tags{ display: flex; flex-wrap: wrap; gap: .4rem .8rem; }
.ufans-post .post-tags span{ font-family: var(--mono); font-size: .75rem; color: var(--muted); }
.ufans-post .post-share{ display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.ufans-post .share-label{ font-size: .8125rem; color: var(--muted); margin-right: .25rem; }
.ufans-post .share-btn{
  font: 500 .8125rem/1 var(--sans);
  padding: .55rem .9rem; border-radius: 999px;
  color: var(--ink-2); background: var(--surface);
  border: 1px solid var(--line); cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}
.ufans-post .share-btn:hover{ border-color: var(--line-2); color: var(--rose); }
.ufans-post .share-btn.is-done{ color: #1E9E63; border-color: rgba(34,181,115,.4); }

/* ───────── 繼續閱讀 ───────── */
.ufans-post .related{ padding-block: clamp(3rem, 6vw, 4.5rem) clamp(2.5rem, 5vw, 3.5rem); }
.ufans-post .related-head{ margin-bottom: 1.5rem; }
.ufans-post .related-head .eyebrow{ font-family: var(--mono); }
.ufans-post .related-head h2{ font-size: clamp(1.35rem, 2.4vw, 1.7rem); margin-top: .4rem; color: var(--ink); }

/* ───────── 響應式 ───────── */
@media (max-width: 1100px){
  .ufans-post.has-toc .post-layout{ grid-template-columns: minmax(0, 720px); }
  .ufans-post .post-toc{ display: none; }
  .ufans-post.has-toc .entry-content .wp-block-rank-math-toc-block{ display: block; }
}
@media (max-width: 860px){
  .ufans-post .post-cover{ margin-top: -1rem; }
  .ufans-post .post-foot{ flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce){
  .ufans-post .post-toc a::before{ transition: none; }
}
