:root{
  --container:1200px; --gap:24px; --gap-3col:32px;
  --cream:#F5F6EE;            /* 頁面底色（設計 #f5f6ee） */
  --ink:#282828;             /* 主要深色文字/標題 */
  --ink-soft:#535353;        /* 次要灰內文 */
  --ink-title:#231815;       /* 主視覺近黑 */
  --muted:rgba(40,40,40,.60);
  --accent:#4F485A;          /* 深色引言帶/色塊（設計 #4f485a） */
  --accent-fg:#FFFFFF;
  --rule:rgba(40,40,40,.15); /* 區段細分隔線（維持淡） */
  --rule-accent:#91A4A8;     /* 目錄頁長水平線 */
  --line-1:#91A4A8; --line-2:#BEAE89; --line-3:#9EA889; --line-4:#C3AAA6; /* 首頁4短線 */
  --ph-bg:#FFFFFF; --ph-border:rgba(40,40,40,.22); --ph-icon:#282828;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#F5F6EE; --ink:#282828; --ink-soft:#535353; --ink-title:#231815; --muted:rgba(40,40,40,.60); --accent:#4F485A;
    --accent-fg:#FFFFFF; --rule:rgba(40,40,40,.15); --rule-accent:#91A4A8; --line-1:#91A4A8; --line-2:#BEAE89; --line-3:#9EA889; --line-4:#C3AAA6; --ph-bg:#FFFFFF; --ph-border:rgba(40,40,40,.22); --ph-icon:#282828;
  }
}
:root[data-theme="dark"]{
  --cream:#F5F6EE; --ink:#282828; --ink-soft:#535353; --ink-title:#231815; --muted:rgba(40,40,40,.60); --accent:#4F485A;
  --accent-fg:#FFFFFF; --rule:rgba(40,40,40,.15); --rule-accent:#91A4A8; --line-1:#91A4A8; --line-2:#BEAE89; --line-3:#9EA889; --line-4:#C3AAA6; --ph-bg:#FFFFFF; --ph-border:rgba(40,40,40,.22); --ph-icon:#282828;
}

.dajia .font-hei{ font-family:'Roboto Slab','Noto Sans TC',sans-serif; font-weight:600; }

.dajia *{box-sizing:border-box;margin:0;padding:0;}
.dajia a[href],.dajia a[href] *{cursor:url('data:image/png;base64,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') 4 4,pointer;}
body{margin:0;background:#F5F6EE;}
.dajia{
  font-family:'Noto Serif TC',serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
}

/* ---- 區段結構 ---- */
.page-section{border-bottom:1px solid var(--rule); padding:96px 0 58.216px;}
.page-section:last-child{border-bottom:none;}
.page-section.flush-top{padding-top:0;}

.container{max-width:calc(var(--container) + 48px); margin:0 auto; padding:0 24px;}

/* ---- placeholder 通用 ---- */
.ph{
  background:var(--ph-bg);
  border:1px solid var(--ph-border);
  border-radius:4px;
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:12px;
  overflow:hidden;
}
.ph::before{
  content:""; width:32px; height:32px; opacity:.5;
  background:no-repeat center/contain
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233a3733" stroke-width="1.5"><rect x="3" y="3" width="18" height="18" rx="3"/><circle cx="9" cy="9" r="1.4"/><path d="M4 17l5-5 4 4 3-3 4 4"/></svg>');
}
.ph-label{
  font-size:13px; color:var(--muted); letter-spacing:.5px; text-align:center;
}
.ph-dim{
  display:block; font-size:11px; color:var(--muted); opacity:.7; margin-top:2px;
}

/* ---- 特別色塊文字框 ---- */
.callout{
  background:var(--accent); color:var(--accent-fg);
  border-radius:0; padding:64px 24px; margin:72px calc(50% - 50vw) 0;
  line-height:1.75; font-size:16px; text-align:center;
}
.callout p{max-width:760px; margin:0 auto 20px;}
.callout p:last-child{margin-bottom:0;}

/* ---- 首頁 banner ---- */
.banner{width:100%; height:380px; border-radius:0; border-left:none; border-right:none;}

.hero-copy{text-align:center; margin:32px 0 28px;}
.hero-copy h1{font-family:'EB Garamond','Noto Serif TC',serif; font-size:32px; font-weight:600; line-height:1.25; color:var(--ink); margin-bottom:12px;}
.hero-copy p{color:var(--ink-soft); max-width:600px; margin:0 auto; font-size:20px; line-height:1.8; font-weight:600;}

/* ---- 1x4 書展入口 ---- */
.row4{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); margin-bottom:16px;}
.entry{aspect-ratio:282/180;}

/* ---- 4 組書籍組合圖 ---- */
.row4-square{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap);}
.combo{aspect-ratio:1/1;}

/* ---- 書展切換：與目錄頁共用視覺與操作 ---- */
.fair-switch{
  position:fixed; top:calc(max(20px,env(safe-area-inset-top)) + 32px); left:50%;
  z-index:9200; width:max-content; max-width:calc(100vw - 160px);
  transform:translateX(-50%); --fair-accent:var(--line-1);
}
.fair-pill{
  position:relative; display:flex; align-items:center;
  padding:6px; border:1px solid rgba(40,40,40,.12); border-radius:999px;
  background:rgba(245,246,238,.97); backdrop-filter:blur(14px);
  box-shadow:0 2px 8px rgba(40,40,40,.10),0 8px 40px rgba(40,40,40,.16);
}
.fair-tablist{position:relative; display:flex; align-items:center; gap:2px;}
.fair-indicator{
  position:absolute; top:0; bottom:0; left:0; z-index:0;
  width:0; border-radius:999px; background:var(--fair-accent);
  transform:translate3d(0,0,0);
  transition:transform 250ms cubic-bezier(.65,0,.35,1),width 250ms cubic-bezier(.65,0,.35,1),background-color 250ms cubic-bezier(.65,0,.35,1);
  pointer-events:none;
}
.fair-switch:not(.is-ready) .fair-indicator{transition:none;}
.fair-tab{
  position:relative; z-index:1; min-width:82px; display:block;
  border:0; border-radius:999px; padding:10px 16px;
  background:transparent; color:var(--ink-soft); text-align:center; text-decoration:none;
  font-family:'Noto Serif TC',serif; font-size:15px; font-weight:600; line-height:1.25;
  white-space:nowrap; transition:color 220ms cubic-bezier(.65,0,.35,1);
}
.fair-tab[aria-current="true"],.fair-tab.is-pending{color:var(--ink-title);}
.fair-switch.is-transitioning .fair-tab[aria-current="true"]:not(.is-pending){color:var(--ink-soft);}
.fair-tab:focus-visible,.fair-mobile-toggle:focus-visible,.fair-mobile-option:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
.fair-mobile-toggle,.fair-mobile-menu{display:none;}
@media(min-width:861px) and (max-width:900px){.fair-tab{padding:9px 11px;font-size:13px;}}
@media(max-width:860px){
  .fair-switch{top:max(14px,env(safe-area-inset-top)); max-width:calc(100vw - 150px);}
  .fair-switch.is-menu-open{z-index:9400;}
  .fair-tablist{display:none;}
  .fair-mobile-toggle{
    appearance:none; display:flex; align-items:center; justify-content:center; gap:9px;
    min-width:118px; padding:9px 15px; border:0; border-radius:999px;
    background:var(--fair-accent); color:var(--ink-title);
    font-family:'Noto Serif TC',serif; font-size:14px; font-weight:600;
    transition:background-color 250ms cubic-bezier(.65,0,.35,1);
  }
  .fair-mobile-toggle svg{width:14px;height:14px;}
  .fair-mobile-toggle .fair-toggle-close{display:none;}
  .fair-mobile-toggle[aria-expanded="true"] .fair-toggle-chevron{display:none;}
  .fair-mobile-toggle[aria-expanded="true"] .fair-toggle-close{display:block;}
  .fair-mobile-menu{
    position:fixed; inset:0; z-index:9300; display:flex; flex-direction:column;
    width:100vw; height:100vh; height:100dvh; padding:clamp(22px,5vw,36px);
    background:var(--cream); visibility:hidden; opacity:0; pointer-events:none;
    transform:translateY(-12px);
    transition:visibility .38s,opacity .38s ease,transform .38s cubic-bezier(.65,0,.35,1);
  }
  .fair-mobile-menu.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);}
  .fair-mobile-options{display:flex; flex-direction:column; justify-content:center; flex:1; gap:0; padding:16px 0;}
  .fair-mobile-option{
    display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px;
    align-items:baseline; width:100%; padding:clamp(12px,3vh,24px) 0;
    border:0; border-bottom:1px solid rgba(40,40,40,.16);
    background-color:transparent;
    background-image:linear-gradient(var(--option-color),var(--option-color));
    background-repeat:no-repeat; background-position:left bottom; background-size:0 3px;
    color:var(--ink-title); text-align:left; text-decoration:none;
    opacity:0; transform:translateY(14px);
    transition:opacity .42s ease,transform .42s cubic-bezier(.65,0,.35,1),background-size .48s cubic-bezier(.65,0,.35,1);
    transition-delay:calc(var(--order) * 45ms),calc(var(--order) * 45ms),0ms;
  }
  .fair-mobile-menu.is-open .fair-mobile-option{opacity:1;transform:translateY(0);}
  .fair-mobile-option:hover,.fair-mobile-option:focus-visible{background-size:100% 3px;}
  .fair-mobile-option::before{content:"";width:10px;height:10px;margin-top:.35em;border-radius:50%;background:var(--option-color);}
  .fair-mobile-option span{font-family:'Noto Serif TC',serif;font-size:clamp(22px,5.8vw,30px);font-weight:600;line-height:1.2;text-wrap:balance;}
}
@media(prefers-reduced-motion:reduce){.fair-indicator,.fair-tab,.fair-mobile-menu,.fair-mobile-toggle,.fair-mobile-option{transition:none;}}

/* ---- 分類頁 3 欄書封（直式 2:3）---- */
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap-3col);}
.cover{aspect-ratio:2/3;}

/* ---- 單書頁長文 ---- */
.article{max-width:calc(var(--container) + 48px); margin:0 auto; padding:0 24px;}
.article > *{margin-bottom:0;}
.full-img{width:100%; aspect-ratio:16/9;}
.carousel-dots{
  position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
  display:flex; gap:8px;
}
.carousel-dots .dot{
  width:7px; height:7px; border-radius:50%; background:var(--ink); opacity:.35;
}
.carousel-dots .dot.active{opacity:1;}
.video{
  width:640px; max-width:100%; margin-left:auto; margin-right:auto;
  aspect-ratio:16/9; background:var(--accent);
  border-radius:4px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px;
}
.video .play{
  width:68px; height:68px; border-radius:50%;
  background:rgba(240,235,228,.18);
  display:flex; align-items:center; justify-content:center;
}
.video .play::after{
  content:""; border-left:20px solid var(--accent-fg);
  border-top:13px solid transparent; border-bottom:13px solid transparent;
  margin-left:6px;
}
.video .ph-label{color:var(--accent-fg); opacity:.75;}
.inline-img-h{width:640px; max-width:100%; aspect-ratio:4/3; margin-left:auto; margin-right:auto;}
.inline-img-s{width:640px; max-width:100%; aspect-ratio:1/1; margin-left:auto; margin-right:auto;}
.body-text{
  position:relative;
  width:740px; max-width:100%; min-height:217.448px;
  margin:58.324px auto 0;
  padding:44.724px 50px 41.724px;
  font-family:'Noto Serif TC',serif;
  color:var(--ink);
  text-align:start;
  font-size:18px;
  font-weight:600;
  line-height:32px;
  letter-spacing:normal;
  border:0;
}
.body-text::before,.body-text::after{
  content:""; position:absolute; left:0; width:740px; max-width:100%; height:4px;
  background:var(--rule-accent);
}
.body-text::before{top:0;}
.body-text::after{bottom:0;}

/* ---- RWD 示意（僅結構，不是設計）---- */
@media(max-width:768px){
  .row4,.row4-square{grid-template-columns:repeat(2,1fr);}
  .grid3{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .row4,.row4-square,.grid3,.grid2{grid-template-columns:1fr;}
}

/* ===================== 客戶修改（2026） ===================== */

/* [需求1] 全站 <p> 改用 EB Garamond / Noto Serif TC */
.dajia :where(p){ font-family:'Noto Serif TC',serif; }

/* [需求2] 隱藏區段安全規則（搭配 <section ... hidden>） */
.dajia [hidden]{ display:none !important; }

/* [需求3] 故事頁：書籍資訊文字層次（參考 讀書共和國 article_pic_c，書名最大） */
.book-meta{width:640px; max-width:100%; margin:0 auto; text-align:center;}
.dajia .bm-title{
  font-family:'Noto Sans TC',sans-serif; font-size:32px; font-weight:600;
  line-height:38px; letter-spacing:0; color:var(--ink); margin:0 0 4px;
}
.dajia p.bm-original{
  font-family:'Roboto Slab',serif; font-size:20px; font-weight:400;
  line-height:31px; letter-spacing:0; color:var(--ink); margin:0 0 13px;
}
.meta-divider{display:block; width:32px; height:1px; margin:0 auto 13px; background:var(--ink-soft);}
.bm-info p{
  font-family:'Noto Sans TC',sans-serif; font-size:16px; font-weight:400;
  color:var(--ink-soft); line-height:28px; letter-spacing:.6px; margin:0;
}
.dajia .bm-info .latin{font-family:'Roboto Slab',serif;}

/* [需求4] 故事頁：主述段落與內容簡介的視覺層次（2026 編輯型 Blog 內文區） */
.synopsis{width:640px; max-width:100%; margin:58.926px auto 0; text-align:left;}
.synopsis-kicker{
  font-family:'Noto Sans TC',sans-serif;
  font-size:16px; font-weight:600; line-height:26px; letter-spacing:0; color:var(--ink-soft);
  margin-bottom:28px; text-align:center;
}
.synopsis p{
  font-family:'Noto Serif TC',serif; font-size:15px; font-weight:500;
  line-height:28px; letter-spacing:normal; color:var(--ink-soft); margin:0 0 28px;
  text-align:start;
}
.synopsis .lead{
  font-family:'Noto Serif TC',serif; font-size:18px; font-weight:600;
  color:var(--ink-soft); line-height:28px; text-align:center; text-align-last:center; margin-bottom:28px;
}
.synopsis .closing{margin-bottom:0;}

@media(max-width:768px){ .synopsis{ max-width:100%; } }

/* [需求5] 三層導覽連結佔位最小樣式 */
.dajia .entry-link,.dajia .combo-link,.dajia .cover-link{ display:block; text-decoration:none; color:inherit; }

/* 全站連結游標：滑入連結時以緩慢、帶呼吸感的節奏旋轉 */
.link-cursor{display:none;}
@media (hover:hover) and (pointer:fine){
  .dajia a[href],.dajia a[href] *{cursor:none;}
  .dajia .fair-mobile-toggle,.dajia .fair-mobile-toggle *{cursor:none;}
  .link-cursor{
    position:fixed; left:0; top:0; z-index:10000; display:block;
    width:56px; height:56px; pointer-events:none;
    opacity:0; transform:translate(-8px,-8px);
    transition:opacity .5s ease;
  }
  .link-cursor.is-active{opacity:1;}
  .link-cursor.is-dot{
    width:16px; height:16px; border-radius:50%;
    background:#F5F6EE;
    box-shadow:0 3px 12px rgba(40,40,40,.38),0 0 0 1px rgba(40,40,40,.10);
  }
  .link-cursor img{
    display:block; width:100%; height:100%;
    animation:jazz-cursor-spin 14s linear infinite;
  }
  .link-cursor.is-dot img{opacity:0; animation:none;}
}
@keyframes jazz-cursor-spin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@media (prefers-reduced-motion:reduce){.link-cursor img{animation:none;}}

/* ===================== 故事頁 Carousel（僅 story.block.html） ===================== */
.story-carousel{ width:1200px; max-width:100%; margin:12px auto clamp(40px,6vw,67px); overflow:hidden; }
.skewed{ position:relative; }
.sk-stage{ position:relative; height:600px; perspective:1600px; display:flex; align-items:center; justify-content:center; }
.sk-slide{ position:absolute; top:50%; left:50%; width:40vw; max-width:480px; min-width:320px; aspect-ratio:1/1; border:none; padding:0; background:none; cursor:pointer; transform:translate(-50%,-50%); transform-style:preserve-3d; transition:transform .55s cubic-bezier(.22,.61,.36,1),opacity .55s; will-change:transform; }
.story-carousel:not(.is-ready) .sk-slide:not(:first-child){opacity:0;pointer-events:none;}
.story-carousel:not(.is-ready) .sk-nav{display:none;}
.sk-slide .ph{ width:100%; height:100%; }
.sk-slide:focus-visible{ outline:2px solid var(--ink); outline-offset:4px; }
.sk-nav{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:24px; }
.sk-arrow{ width:40px; height:40px; border:1px solid var(--rule); border-radius:50%; background:none; color:var(--ink); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.sk-arrow:hover{ background:var(--accent); color:var(--accent-fg); }
.sk-dots{ display:flex; gap:8px; }
.sk-dots button{ width:7px; height:7px; padding:0; border:none; border-radius:50%; background:var(--ink); opacity:.3; cursor:pointer; }
.sk-dots button.active{ opacity:1; }
@media(max-width:768px){
  .sk-stage{ perspective:none; height:auto; aspect-ratio:1/1; }
  .sk-slide{ width:74vw; }
  .sk-arrow{ display:none; }
}

/* 左上角 Logo（回首頁） */
.site-logo{
  position:fixed; top:20px; left:20px; z-index:9000;
  display:block; width:64px; height:64px;
}
.site-logo img{display:block; width:100%; height:100%; object-fit:contain;}
@media(max-width:768px){
  .site-logo{top:max(14px, env(safe-area-inset-top)); left:max(14px, env(safe-area-inset-left)); width:52px; height:52px;}
}

/* ===================== §RWD 2026：流體字級 + 斷點 =====================
   做法（2026 主流）：clamp() 流體字級，viewport 375px → 1200px 線性插值；
   最大值 = 設計稿桌機數值（≥1200px 完全對應設計稿），最小值守住手機可讀下限（內文 ≥15px）。
   斷點：1024（平板橫）/ 768（平板直）/ 600（手機）。字重沿用設計稿，不隨尺寸改變。 */
.dajia{
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
  --fs-title:clamp(24px, calc(24px + 8 * (100vw - 375px) / 825), 32px);   /* 設計稿 32px */
  --fs-lead: clamp(16px, calc(16px + 4 * (100vw - 375px) / 825), 20px);   /* 設計稿 20px */
  --fs-name: clamp(16px, calc(16px + 8 * (100vw - 375px) / 825), 24px);   /* 設計稿 24px */
  --fs-read: clamp(16px, calc(16px + 2 * (100vw - 375px) / 825), 18px);   /* 設計稿 18px */
  --fs-cover:clamp(15px, calc(15px + 5 * (100vw - 375px) / 825), 20px);   /* 設計稿 20px */
  --fs-meta: clamp(14px, calc(14px + 2 * (100vw - 375px) / 825), 16px);   /* 設計稿 16px */
}
.dajia .hero-copy h1,.dajia .hero-copy p,.dajia .entry-name,.dajia .cover-title,
.dajia .bm-title,.dajia .bm-original,.dajia .synopsis .lead{ text-wrap:balance; }
.dajia .body-text,.dajia .synopsis p{ text-wrap:wrap; }
.dajia .callout p{ text-wrap:pretty; }

/* --- 故事頁 --- */
.dajia .body-text{ font-size:var(--fs-read); line-height:1.78; text-align:start; }
.dajia .book-meta .bm-title{ font-size:var(--fs-title); line-height:1.2; }
.dajia .book-meta p.bm-original{ font-size:var(--fs-lead); line-height:1.55; overflow-wrap:anywhere; }
.dajia .bm-info p{ font-size:var(--fs-meta); line-height:1.75; }
.dajia .synopsis .lead{ font-size:var(--fs-read); line-height:1.56; }   /* 設計稿 18px / 行高 28px */
.dajia .synopsis .lead + p:not(.lead){ margin-top:1px; }
.dajia .synopsis p{ font-size:15px; line-height:1.87; }
@media(max-width:1024px){
  .page-section{ padding:clamp(72px,12vw,96px) 0 clamp(40px,6vw,58px); }
  .body-text{ margin-top:clamp(36px,6vw,58.324px); }
  .synopsis{ margin-top:clamp(40px,6vw,58.926px); }
}
@media(max-width:768px){
  .dajia .body-text{ max-width:100%; margin-bottom:0; padding:clamp(32px,5vw,42px) clamp(16px,4vw,50px); font-size:var(--fs-read); line-height:1.85; }
  .synopsis p{ margin-bottom:24px; }
  .bm-info p{ letter-spacing:.3px; }
}
@media(max-width:600px){
  .article{ padding:0 20px; }
  .dajia .body-text{ padding:32px 0; line-height:1.9; }
  .dajia .synopsis p{ font-size:15px; line-height:1.9; }
}

/* ===================== §WP  Host override ===================== */
/* 蓋掉 WordPress block theme 的 global-styles 塞給 .is-layout-flow 直接子元素的
   top margin（--wp--preset--spacing--20）。同 specificity（:where() 權重為 0）、
   此段在 <body> 且 source order 較後 → 生效，不需 !important。
   注意：.dajia 的 * reset 只管內部，管不到包住 block 的 WP wrapper，故仍需此條。 */
:root :where(.is-layout-flow) > * { margin-block-start: 0; }
.dajia .kb-fair-empty{padding:40px 0;text-align:center;color:var(--ink-soft);}
.dajia .body-text p + p{margin-top:1em;}
