/**
 * 仔兎図書館 ― CPT専用スタイル
 *
 * 書架と書物の視覚言語で構成。
 * すべてのセレクタを .encyclopedia-* スコープに限定し、
 * SWELLのデフォルトスタイルとの競合を防ぐ。
 *
 * @package petitlapin-child
 * @since   2026-04
 */

/* ============================================================
 * デザイントークン（CSS変数）
 * ============================================================ */
.encyclopedia-article,
.encyclopedia-archive {
    /* 色：書架と書物の世界 */
    --enc-paper: #FAF7F2;          /* 経年したアイボリー */
    --enc-paper-deep: #F2EBDF;     /* 装飾枠の影色 */
    --enc-ink: #2B2420;            /* 本体テキストのインクブラウン */
    --enc-ink-soft: #5A4F46;       /* 補助テキスト */
    --enc-oak: #5C4A3A;            /* 書架のオーク材色（見出し） */
    --enc-oak-light: #8A7563;      /* オーク材の明色 */
    --enc-accent: #A03A2E;         /* しおり紐の朱赤 */
    --enc-accent-soft: #C97A6E;    /* アクセントの淡色 */
    --enc-rule: #D9CFBF;           /* 罫線・枠線 */
    --enc-rule-soft: #EAE2D2;      /* 弱い罫線 */
    --enc-shadow: rgba(60, 45, 30, 0.12);
    --enc-shadow-deep: rgba(60, 45, 30, 0.22);

    /* タイポグラフィ */
    --enc-font-jp: "Noto Serif JP", "游明朝", "YuMincho", "Hiragino Mincho ProN", serif;
    --enc-font-fr: "Cormorant Garamond", "Cormorant", "Hiragino Mincho ProN", serif;
    --enc-font-disp: "Cormorant Garamond", "Noto Serif JP", serif;

    /* 寸法 */
    --enc-radius: 2px;
    --enc-radius-card: 4px;
    --enc-content-w: 720px;
    --enc-wide-w: 1080px;
}

/* ============================================================
 * 全体ベース
 * ============================================================ */
.encyclopedia-article,
.encyclopedia-archive {
    background-color: var(--enc-paper);
    color: var(--enc-ink);
    font-family: var(--enc-font-jp);
    font-feature-settings: "palt" 1;
    line-height: 1.95;
    letter-spacing: 0.02em;
}

.encyclopedia-article *,
.encyclopedia-archive * {
    box-sizing: border-box;
}

/* SWELLのコンテンツラッパーに食い込ませるため、上下マージンを調整 */
.encyclopedia-article {
    margin: 0 auto;
    max-width: 100%;
}

/* Google Fonts 読み込みは functions.php から行う想定。
   ここは既に読み込まれている前提で書体指定だけ行う。 */

/* ============================================================
 * 第一帯：装幀帯（カバーセクション）
 * ============================================================ */
.encyclopedia-cover {
    position: relative;
    width: 100%;
    margin-bottom: 0;
    overflow: hidden;
    isolation: isolate;
}

.encyclopedia-cover__bg {
    position: absolute;
    inset: 0;
    background-color: var(--enc-oak);
    background-size: cover;
    background-position: center;
    z-index: 0;
}

/* アイキャッチ未登録時のフォールバック：書架の木目を模した縦縞 */
.encyclopedia-cover__bg:not([style]) {
    background-image:
        repeating-linear-gradient(
            90deg,
            #4a3a2c 0px,
            #4a3a2c 2px,
            #5C4A3A 2px,
            #5C4A3A 80px,
            #4a3a2c 80px,
            #4a3a2c 82px,
            #6a574a 82px,
            #6a574a 160px
        );
}

.encyclopedia-cover__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(43, 36, 32, 0.55) 0%,
        rgba(43, 36, 32, 0.7) 100%
    );
}

.encyclopedia-cover__inner {
    position: relative;
    z-index: 1;
    max-width: var(--enc-content-w);
    margin: 0 auto;
    padding: clamp(60px, 10vw, 120px) 24px clamp(50px, 8vw, 90px);
    text-align: center;
    color: #F4ECDD;
}

.encyclopedia-cover__library-mark {
    display: inline-block;
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.95rem;
    letter-spacing: 0.18em;
    color: rgba(244, 236, 221, 0.75);
    border-top: 1px solid rgba(244, 236, 221, 0.4);
    border-bottom: 1px solid rgba(244, 236, 221, 0.4);
    padding: 6px 18px;
    margin-bottom: 28px;
}

.encyclopedia-cover__french {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    letter-spacing: 0.08em;
    color: rgba(244, 236, 221, 0.85);
    margin: 0 0 6px;
}

.encyclopedia-cover__title {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: clamp(1.8rem, 4.5vw, 2.8rem);
    line-height: 1.4;
    letter-spacing: 0.08em;
    margin: 0 0 18px;
    color: #FAF7F2;
}

.encyclopedia-cover__era {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.95rem;
    letter-spacing: 0.1em;
    color: rgba(244, 236, 221, 0.7);
    margin: 0 0 30px;
}

.encyclopedia-cover__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.encyclopedia-badge {
    display: inline-block;
    padding: 5px 14px;
    font-size: 0.82rem;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-radius: 999px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.encyclopedia-badge--category {
    background: rgba(250, 247, 242, 0.15);
    color: #F4ECDD;
    border: 1px solid rgba(250, 247, 242, 0.4);
}

.encyclopedia-badge--theme {
    background: transparent;
    color: rgba(244, 236, 221, 0.85);
    border: 1px solid rgba(244, 236, 221, 0.45);
}

.encyclopedia-badge:hover {
    background: rgba(250, 247, 242, 0.25);
    color: #FFF;
}

/* ============================================================
 * メイン2カラムレイアウト
 * ============================================================ */
.encyclopedia-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
    max-width: var(--enc-wide-w);
    margin: 0 auto;
    padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 40px);
}

@media (min-width: 960px) {
    .encyclopedia-layout {
        grid-template-columns: minmax(0, 1fr) 280px;
        gap: 60px;
    }
}

.encyclopedia-main {
    min-width: 0;  /* grid内のはみ出し防止 */
}

/* ============================================================
 * 第二帯：扉ページ帯（書誌情報）
 * ============================================================ */
.encyclopedia-frontispiece {
    margin-bottom: 50px;
}

/* エクスリブリス（蔵書票）枠 */
.encyclopedia-exlibris {
    position: relative;
    background: var(--enc-paper-deep);
    padding: 40px clamp(28px, 5vw, 56px);
    margin: 0 auto 36px;
    max-width: 640px;
    text-align: center;
}

.encyclopedia-exlibris::before,
.encyclopedia-exlibris::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    height: 1px;
    background: var(--enc-oak);
}

.encyclopedia-exlibris::before { top: 12px; }
.encyclopedia-exlibris::after  { bottom: 12px; }

/* 四隅の装飾コーナー */
.encyclopedia-exlibris__corner {
    position: absolute;
    width: 18px;
    height: 18px;
    border-color: var(--enc-oak);
    border-style: solid;
    border-width: 0;
}
.encyclopedia-exlibris__corner--tl { top: 6px;    left: 6px;    border-top-width: 1.5px; border-left-width: 1.5px; }
.encyclopedia-exlibris__corner--tr { top: 6px;    right: 6px;   border-top-width: 1.5px; border-right-width: 1.5px; }
.encyclopedia-exlibris__corner--bl { bottom: 6px; left: 6px;    border-bottom-width: 1.5px; border-left-width: 1.5px; }
.encyclopedia-exlibris__corner--br { bottom: 6px; right: 6px;   border-bottom-width: 1.5px; border-right-width: 1.5px; }

.encyclopedia-exlibris__text {
    font-family: var(--enc-font-jp);
    font-size: clamp(1rem, 1.6vw, 1.15rem);
    line-height: 1.9;
    color: var(--enc-ink);
    margin: 0;
    letter-spacing: 0.06em;
}

.encyclopedia-exlibris__text::first-letter {
    font-family: var(--enc-font-fr);
    font-size: 2.2em;
    line-height: 1;
    float: left;
    margin: 4px 8px 0 0;
    color: var(--enc-accent);
    font-weight: 500;
}

/* 書誌情報テーブル */
.encyclopedia-meta {
    display: grid;
    gap: 0;
    margin: 0 auto;
    max-width: 600px;
    border-top: 1px solid var(--enc-rule);
    border-bottom: 1px solid var(--enc-rule);
    padding: 8px 0;
}

.encyclopedia-meta__row {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 16px;
    padding: 12px 8px;
    border-bottom: 1px dotted var(--enc-rule-soft);
    margin: 0;
}

.encyclopedia-meta__row:last-child {
    border-bottom: none;
}

@media (max-width: 600px) {
    .encyclopedia-meta__row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

.encyclopedia-meta__label {
    font-family: var(--enc-font-jp);
    font-size: 0.85rem;
    color: var(--enc-oak);
    letter-spacing: 0.1em;
    margin: 0;
    font-weight: 500;
}

.encyclopedia-meta__value {
    font-family: var(--enc-font-jp);
    font-size: 0.95rem;
    color: var(--enc-ink);
    margin: 0;
    line-height: 1.7;
}

.encyclopedia-meta__value--french {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 1.05rem;
    color: var(--enc-ink);
}

/* しおり風バッジ（取り扱いステータス） */
.encyclopedia-bookmark {
    display: inline-block;
    padding: 3px 14px 3px 20px;
    font-size: 0.85rem;
    color: #FFF;
    background: var(--enc-oak-light);
    position: relative;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
}

.encyclopedia-bookmark--always    { background: #4A6B5C; }   /* 緑系：常時取扱 */
.encyclopedia-bookmark--seasonal  { background: var(--enc-accent); }  /* 朱：期間限定 */
.encyclopedia-bookmark--irregular { background: var(--enc-oak-light); }  /* 中間：不定期 */
.encyclopedia-bookmark--none      { background: #8A8275; }   /* グレー：取り扱いなし */

/* ============================================================
 * 第三帯：本文帯（自由記述 + ACFセクション）
 * ============================================================ */

/* 本文エディター（the_content）の組版 */
.encyclopedia-freeform {
    margin: 60px 0;
    max-width: var(--enc-content-w);
    margin-left: auto;
    margin-right: auto;
}

.encyclopedia-freeform p {
    font-family: var(--enc-font-jp);
    font-size: 1.02rem;
    line-height: 1.95;
    color: var(--enc-ink);
    margin: 0 0 1.4em;
    text-align: justify;
    text-justify: inter-ideograph;
}

.encyclopedia-freeform h2 {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--enc-oak);
    letter-spacing: 0.08em;
    margin: 2.5em 0 1em;
    padding-bottom: 0.4em;
    border-bottom: 1px solid var(--enc-rule);
    position: relative;
}

.encyclopedia-freeform h2::before {
    content: "❦";
    color: var(--enc-accent);
    margin-right: 0.6em;
    font-size: 0.9em;
}

.encyclopedia-freeform h3 {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--enc-oak);
    margin: 2em 0 0.8em;
    padding-left: 0.8em;
    border-left: 3px solid var(--enc-accent-soft);
}

.encyclopedia-freeform blockquote {
    font-family: var(--enc-font-jp);
    margin: 1.8em 0;
    padding: 0 0 0 1.4em;
    border-left: 2px solid var(--enc-oak);
    color: var(--enc-ink-soft);
    font-style: italic;
}

.encyclopedia-freeform blockquote p {
    margin-bottom: 0.5em;
}

.encyclopedia-freeform ul,
.encyclopedia-freeform ol {
    margin: 1em 0 1.4em;
    padding-left: 1.6em;
}

.encyclopedia-freeform li {
    margin-bottom: 0.6em;
    line-height: 1.85;
}

.encyclopedia-freeform a {
    color: var(--enc-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.encyclopedia-freeform a:hover {
    color: var(--enc-ink);
}

/* ブロックエディターの画像・ギャラリーを「図版」風に */
.encyclopedia-freeform .wp-block-image,
.encyclopedia-freeform figure {
    margin: 2em auto;
    max-width: 100%;
}

.encyclopedia-freeform .wp-block-image img,
.encyclopedia-freeform figure img {
    border-radius: var(--enc-radius);
    box-shadow: 0 4px 18px var(--enc-shadow);
}

.encyclopedia-freeform figcaption,
.encyclopedia-freeform .wp-block-image figcaption {
    font-family: var(--enc-font-jp);
    font-size: 0.85rem;
    font-style: italic;
    color: var(--enc-ink-soft);
    text-align: center;
    margin-top: 0.8em;
    line-height: 1.7;
}

/* ギャラリーブロック：図版ページ風 */
.encyclopedia-freeform .wp-block-gallery {
    margin: 2.5em 0;
    padding: 24px;
    background: var(--enc-paper-deep);
    border-radius: var(--enc-radius);
    position: relative;
}

.encyclopedia-freeform .wp-block-gallery::before {
    content: "Planches";
    position: absolute;
    top: -10px;
    left: 24px;
    background: var(--enc-paper);
    padding: 0 10px;
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.85rem;
    color: var(--enc-oak);
    letter-spacing: 0.1em;
}

.encyclopedia-freeform .wp-block-gallery .wp-block-image {
    margin: 8px;
}

.encyclopedia-freeform .wp-block-gallery img {
    box-shadow: 0 2px 10px var(--enc-shadow);
}

/* 引用・コード・表 */
.encyclopedia-freeform pre,
.encyclopedia-freeform code {
    font-family: "SF Mono", "Menlo", monospace;
    background: var(--enc-paper-deep);
    border-radius: var(--enc-radius);
    color: var(--enc-ink);
}

.encyclopedia-freeform table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.8em 0;
    font-size: 0.95rem;
}

.encyclopedia-freeform table th {
    background: var(--enc-paper-deep);
    color: var(--enc-oak);
    text-align: left;
    padding: 10px 14px;
    font-weight: 500;
    border-bottom: 1.5px solid var(--enc-oak);
}

.encyclopedia-freeform table td {
    padding: 10px 14px;
    border-bottom: 1px dotted var(--enc-rule);
}

/* ============================================================
 * セクション見出し（章番号付き）
 * ============================================================ */
.encyclopedia-section-head {
    margin: 70px 0 30px;
    text-align: center;
    position: relative;
}

.encyclopedia-section-head--small {
    margin: 50px 0 20px;
}

.encyclopedia-section-head__chapter {
    display: block;
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.9rem;
    letter-spacing: 0.25em;
    color: var(--enc-accent);
    margin-bottom: 12px;
    text-transform: uppercase;
}

.encyclopedia-section-head__title {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: clamp(1.4rem, 2.5vw, 1.85rem);
    color: var(--enc-oak);
    margin: 0 0 12px;
    letter-spacing: 0.08em;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
}

.encyclopedia-section-head__sub {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-weight: 400;
    font-size: 0.85em;
    color: var(--enc-oak-light);
    letter-spacing: 0.1em;
}

.encyclopedia-section-head__lede {
    font-family: var(--enc-font-jp);
    font-size: 0.95rem;
    color: var(--enc-ink-soft);
    margin: 8px auto 0;
    max-width: 540px;
    line-height: 1.85;
}

.encyclopedia-chapter-icon {
    display: inline-flex;
    width: 28px;
    height: 28px;
    color: var(--enc-accent);
}

.encyclopedia-chapter-icon svg {
    width: 100%;
    height: 100%;
}

/* セクション見出しの下の装飾罫線 */
.encyclopedia-section-head::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    background: var(--enc-rule);
    margin: 20px auto 0;
}

/* ============================================================
 * テーマ別チャプター本文
 * ============================================================ */
.encyclopedia-chapter {
    max-width: var(--enc-content-w);
    margin: 0 auto 60px;
}

.encyclopedia-chapter__body {
    background: var(--enc-paper-deep);
    border-radius: var(--enc-radius);
    padding: clamp(28px, 4vw, 50px);
    border: 1px solid var(--enc-rule);
    position: relative;
}

/* 章ごとに左端に薄い色帯（書籍の小口を模す） */
.encyclopedia-chapter__body::before {
    content: "";
    position: absolute;
    left: 0;
    top: 24px;
    bottom: 24px;
    width: 4px;
    background: var(--enc-accent-soft);
    border-radius: 0 2px 2px 0;
    opacity: 0.6;
}

.encyclopedia-chapter--history    .encyclopedia-chapter__body::before { background: #8B6F47; }
.encyclopedia-chapter--ingredients .encyclopedia-chapter__body::before { background: #B89968; }
.encyclopedia-chapter--tools      .encyclopedia-chapter__body::before { background: #6B5D4F; }
.encyclopedia-chapter--seasonal   .encyclopedia-chapter__body::before { background: var(--enc-accent-soft); }
.encyclopedia-chapter--regional   .encyclopedia-chapter__body::before { background: #5A7569; }

/* 各フィールド */
.encyclopedia-field {
    margin-bottom: 28px;
}

.encyclopedia-field:last-child {
    margin-bottom: 0;
}

.encyclopedia-field__label {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--enc-oak);
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px dotted var(--enc-rule);
    letter-spacing: 0.08em;
}

.encyclopedia-field__value {
    font-family: var(--enc-font-jp);
    font-size: 1rem;
    color: var(--enc-ink);
    line-height: 1.95;
    margin: 0;
}

.encyclopedia-field__value p {
    margin: 0 0 1em;
}

.encyclopedia-field__value p:last-child {
    margin-bottom: 0;
}

.encyclopedia-field__value--inline {
    font-family: var(--enc-font-jp);
    line-height: 1.8;
}

.encyclopedia-field--highlight .encyclopedia-field__value {
    background: rgba(160, 58, 46, 0.06);
    padding: 14px 18px;
    border-left: 3px solid var(--enc-accent);
    border-radius: 0 var(--enc-radius) var(--enc-radius) 0;
}

.encyclopedia-field--shop .encyclopedia-field__value {
    background: rgba(92, 74, 58, 0.05);
    padding: 14px 18px;
    border-radius: var(--enc-radius);
    font-style: italic;
}

/* 道具の図版 */
.encyclopedia-plate {
    margin: 0 0 28px;
    text-align: center;
}

.encyclopedia-plate img {
    max-width: 100%;
    height: auto;
    border-radius: var(--enc-radius);
    box-shadow: 0 6px 22px var(--enc-shadow);
    border: 1px solid var(--enc-rule);
}

.encyclopedia-plate__caption {
    font-family: var(--enc-font-jp);
    font-size: 0.85rem;
    font-style: italic;
    color: var(--enc-ink-soft);
    margin-top: 10px;
    line-height: 1.7;
}

/* 季節タグ */
.encyclopedia-season-tags {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.encyclopedia-season-tag {
    padding: 6px 18px;
    background: var(--enc-paper);
    border: 1px solid var(--enc-rule);
    border-radius: 999px;
    font-size: 0.9rem;
    color: var(--enc-ink);
    font-family: var(--enc-font-jp);
    letter-spacing: 0.1em;
}

.encyclopedia-season-tag--spring     { background: #FCE4E0; color: #8C3A3F; border-color: #F5C7C0; }
.encyclopedia-season-tag--summer     { background: #E8F0E0; color: #4A6940; border-color: #C9DAB8; }
.encyclopedia-season-tag--autumn     { background: #F5E5D0; color: #8B5A2B; border-color: #E5C9A8; }
.encyclopedia-season-tag--winter     { background: #E0E8F0; color: #3F5870; border-color: #C0CFDC; }
.encyclopedia-season-tag--year_round { background: var(--enc-paper); color: var(--enc-ink-soft); }

/* 起源地の座標表示 */
.encyclopedia-coords {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 18px;
    background: var(--enc-paper);
    border-radius: var(--enc-radius);
    border: 1px solid var(--enc-rule);
}

.encyclopedia-coords__region {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    color: var(--enc-oak);
}

.encyclopedia-coords__values {
    font-family: var(--enc-font-fr);
    font-size: 0.85rem;
    font-style: italic;
    color: var(--enc-ink-soft);
    letter-spacing: 0.05em;
}

/* 同地域の関連菓子（ミニリスト） */
.encyclopedia-related-mini {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.encyclopedia-related-mini li a {
    display: inline-block;
    padding: 6px 14px;
    background: var(--enc-paper);
    border: 1px solid var(--enc-rule);
    border-radius: var(--enc-radius);
    font-size: 0.9rem;
    color: var(--enc-ink);
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.encyclopedia-related-mini li a:hover {
    background: var(--enc-rule-soft);
    color: var(--enc-accent);
}

/* ============================================================
 * 第四帯：関連商品
 * ============================================================ */
.encyclopedia-related-products {
    max-width: var(--enc-wide-w);
    margin: 80px auto 60px;
}

.encyclopedia-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.encyclopedia-product-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    background: var(--enc-paper);
    border: 1px solid var(--enc-rule);
    border-radius: var(--enc-radius-card);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.encyclopedia-product-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px var(--enc-shadow);
}

.encyclopedia-product-card__image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--enc-paper-deep);
}

.encyclopedia-product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.encyclopedia-product-card__placeholder {
    width: 100%;
    height: 100%;
    background:
        repeating-linear-gradient(
            45deg,
            var(--enc-paper-deep),
            var(--enc-paper-deep) 8px,
            var(--enc-rule-soft) 8px,
            var(--enc-rule-soft) 9px
        );
}

.encyclopedia-product-card__body {
    padding: 18px 20px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.encyclopedia-product-card__title {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--enc-oak);
    margin: 0 0 8px;
    letter-spacing: 0.06em;
}

.encyclopedia-product-card__excerpt {
    font-family: var(--enc-font-jp);
    font-size: 0.9rem;
    color: var(--enc-ink-soft);
    line-height: 1.75;
    margin: 0 0 12px;
    flex: 1;
}

.encyclopedia-product-card__more {
    display: inline-block;
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.85rem;
    color: var(--enc-accent);
    letter-spacing: 0.05em;
    margin-top: auto;
}

/* ============================================================
 * 第五帯：関連書（書棚）
 * ============================================================ */
.encyclopedia-related-articles {
    max-width: var(--enc-wide-w);
    margin: 80px auto 60px;
}

.encyclopedia-bookshelf {
    list-style: none;
    padding: 30px 20px 12px;
    margin: 40px 0 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    background:
        linear-gradient(180deg, transparent 0%, transparent calc(100% - 16px), var(--enc-oak) calc(100% - 16px), var(--enc-oak) calc(100% - 14px), var(--enc-oak-light) calc(100% - 14px), var(--enc-oak-light) 100%);
    border-radius: var(--enc-radius);
}

.encyclopedia-bookshelf__item {
    display: block;
}

/* 書籍の背表紙 */
.encyclopedia-spine {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 56px;
    height: 240px;
    padding: 18px 8px;
    background: linear-gradient(135deg, #E8DDC9 0%, #D9CBB1 50%, #E8DDC9 100%);
    border: 1px solid var(--enc-oak-light);
    border-radius: 1px;
    text-decoration: none;
    color: var(--enc-ink);
    box-shadow:
        inset 2px 0 0 rgba(255, 255, 255, 0.4),
        inset -2px 0 0 rgba(60, 45, 30, 0.15),
        0 4px 12px var(--enc-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}

.encyclopedia-spine:hover {
    transform: translateY(-6px);
    box-shadow:
        inset 2px 0 0 rgba(255, 255, 255, 0.4),
        inset -2px 0 0 rgba(60, 45, 30, 0.15),
        0 8px 22px var(--enc-shadow-deep);
}

/* 背表紙ごとに微妙に色を変える（nth-childで雰囲気を出す） */
.encyclopedia-bookshelf__item:nth-child(2n) .encyclopedia-spine {
    background: linear-gradient(135deg, #C9B89B 0%, #B8A484 50%, #C9B89B 100%);
}

.encyclopedia-bookshelf__item:nth-child(3n) .encyclopedia-spine {
    background: linear-gradient(135deg, #B89986 0%, #A38570 50%, #B89986 100%);
    color: #FAF7F2;
}

.encyclopedia-bookshelf__item:nth-child(5n) .encyclopedia-spine {
    background: linear-gradient(135deg, #8B5A4A 0%, #75483A 50%, #8B5A4A 100%);
    color: #FAF7F2;
}

.encyclopedia-bookshelf__item:nth-child(7n) .encyclopedia-spine {
    background: linear-gradient(135deg, #5A6B5C 0%, #485848 50%, #5A6B5C 100%);
    color: #FAF7F2;
}

.encyclopedia-spine__theme {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    opacity: 0.7;
    writing-mode: horizontal-tb;
    text-align: center;
}

.encyclopedia-spine__title {
    font-family: var(--enc-font-jp);
    font-weight: 500;
    font-size: 0.85rem;
    line-height: 1.3;
    letter-spacing: 0.15em;
    writing-mode: vertical-rl;
    text-orientation: upright;
    flex: 1;
    display: flex;
    align-items: center;
    overflow: hidden;
    max-height: 160px;
}

.encyclopedia-spine__mark {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.75rem;
    opacity: 0.55;
    letter-spacing: 0.1em;
    border-top: 1px solid currentColor;
    padding-top: 6px;
    width: 60%;
    text-align: center;
}

/* ============================================================
 * 第六帯：奥付
 * ============================================================ */
.encyclopedia-colophon {
    max-width: var(--enc-content-w);
    margin: 80px auto 0;
    padding: 40px clamp(24px, 4vw, 40px);
    background: var(--enc-paper-deep);
    border-top: 3px double var(--enc-oak);
    border-bottom: 1px solid var(--enc-oak);
}

.encyclopedia-references {
    list-style: none;
    padding: 0;
    margin: 0;
}

.encyclopedia-references__item {
    padding-left: 1.6em;
    text-indent: -1.6em;
    margin-bottom: 1em;
    font-family: var(--enc-font-jp);
    font-size: 0.92rem;
    line-height: 1.85;
    color: var(--enc-ink);
}

.encyclopedia-references__item:last-child {
    margin-bottom: 0;
}

.encyclopedia-references__title {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-weight: 500;
    color: var(--enc-oak);
    margin-right: 0.6em;
}

.encyclopedia-references__meta {
    color: var(--enc-ink-soft);
    font-size: 0.92em;
}

.encyclopedia-colophon__date {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.8rem;
    color: var(--enc-ink-soft);
    text-align: right;
    margin: 24px 0 0;
    letter-spacing: 0.05em;
}

/* ============================================================
 * サイドバー
 * ============================================================ */
.encyclopedia-aside {
    align-self: start;
}

@media (min-width: 960px) {
    .encyclopedia-aside {
        position: sticky;
        top: 100px;
    }
}

.encyclopedia-aside__widget {
    background: var(--enc-paper-deep);
    border: 1px solid var(--enc-rule);
    border-radius: var(--enc-radius);
    padding: 24px 22px;
    margin-bottom: 24px;
}

.encyclopedia-aside__heading {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 1rem;
    color: var(--enc-oak);
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--enc-rule);
    letter-spacing: 0.08em;
}

.encyclopedia-aside__group-label {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.8rem;
    color: var(--enc-accent);
    letter-spacing: 0.15em;
    margin: 14px 0 6px;
    text-transform: uppercase;
}

.encyclopedia-aside__group-label:first-of-type {
    margin-top: 0;
}

.encyclopedia-aside__termlist {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.encyclopedia-aside__termlist li a {
    display: inline-block;
    padding: 4px 10px;
    background: var(--enc-paper);
    border: 1px solid var(--enc-rule);
    border-radius: var(--enc-radius);
    font-size: 0.85rem;
    color: var(--enc-ink);
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.encyclopedia-aside__termlist li a:hover {
    background: var(--enc-oak);
    color: #FAF7F2;
    border-color: var(--enc-oak);
}

/* ============================================================
 * アーカイブ：書架の入口
 * ============================================================ */
.encyclopedia-archive {
    max-width: var(--enc-wide-w);
    margin: 0 auto;
    padding: clamp(50px, 8vw, 90px) clamp(20px, 4vw, 40px);
}

.encyclopedia-archive__header {
    text-align: center;
    margin-bottom: 50px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--enc-rule);
}

.encyclopedia-archive__breadcrumb {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.9rem;
    color: var(--enc-accent);
    letter-spacing: 0.18em;
    margin: 0 0 14px;
    text-transform: uppercase;
}

.encyclopedia-archive__title {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    color: var(--enc-oak);
    margin: 0 0 18px;
    letter-spacing: 0.1em;
}

.encyclopedia-archive__lead {
    font-family: var(--enc-font-jp);
    font-size: 1rem;
    line-height: 1.95;
    color: var(--enc-ink-soft);
    max-width: 600px;
    margin: 0 auto;
}

/* フィルター帯 */
.encyclopedia-archive__filter {
    margin-bottom: 28px;
}

.encyclopedia-archive__filter-label {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.85rem;
    color: var(--enc-accent);
    letter-spacing: 0.18em;
    margin: 0 0 12px;
    text-transform: uppercase;
}

.encyclopedia-archive__filter-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.encyclopedia-archive__filter-link {
    display: inline-block;
    padding: 6px 16px;
    background: var(--enc-paper);
    border: 1px solid var(--enc-rule);
    border-radius: 999px;
    font-family: var(--enc-font-jp);
    font-size: 0.9rem;
    color: var(--enc-ink);
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: all 0.15s ease;
}

.encyclopedia-archive__filter-link:hover {
    border-color: var(--enc-oak);
    color: var(--enc-oak);
}

.encyclopedia-archive__filter-link.is-current {
    background: var(--enc-oak);
    color: #FAF7F2;
    border-color: var(--enc-oak);
}

/* 記事グリッド */
.encyclopedia-archive__grid {
    list-style: none;
    padding: 0;
    margin: 50px 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 36px;
}

.encyclopedia-archive__card {
    margin: 0;
}

.encyclopedia-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease;
}

.encyclopedia-card:hover {
    transform: translateY(-4px);
}

.encyclopedia-card__cover {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--enc-oak);
    border-radius: 2px;
    box-shadow:
        0 6px 18px var(--enc-shadow),
        inset -3px 0 0 rgba(255, 255, 255, 0.08),
        inset 3px 0 0 rgba(0, 0, 0, 0.15);
    transition: box-shadow 0.25s ease;
}

.encyclopedia-card:hover .encyclopedia-card__cover {
    box-shadow:
        0 12px 30px var(--enc-shadow-deep),
        inset -3px 0 0 rgba(255, 255, 255, 0.1),
        inset 3px 0 0 rgba(0, 0, 0, 0.18);
}

.encyclopedia-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.encyclopedia-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(135deg, var(--enc-oak) 0%, var(--enc-oak-light) 100%);
}

.encyclopedia-card__placeholder-mark {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 2rem;
    color: rgba(250, 247, 242, 0.4);
    border: 1px solid rgba(250, 247, 242, 0.4);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.05em;
}

/* カバー右端の影（書籍の厚みを表現） */
.encyclopedia-card__shadow {
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 100%;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.18) 0%,
        rgba(0, 0, 0, 0.05) 50%,
        rgba(0, 0, 0, 0.12) 100%
    );
    pointer-events: none;
}

.encyclopedia-card__body {
    padding: 18px 4px 0;
}

.encyclopedia-card__category {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.8rem;
    color: var(--enc-accent);
    letter-spacing: 0.12em;
    margin: 0 0 6px;
    text-transform: uppercase;
}

.encyclopedia-card__title {
    font-family: var(--enc-font-jp);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--enc-oak);
    margin: 0 0 6px;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.encyclopedia-card__french {
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.9rem;
    color: var(--enc-ink-soft);
    margin: 0 0 8px;
    letter-spacing: 0.05em;
}

.encyclopedia-card__lede {
    font-family: var(--enc-font-jp);
    font-size: 0.88rem;
    line-height: 1.75;
    color: var(--enc-ink-soft);
    margin: 0;
}

/* ページネーション */
.encyclopedia-archive__pagination {
    margin-top: 60px;
    text-align: center;
}

.encyclopedia-archive__pagination .nav-links {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
}

.encyclopedia-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    font-family: var(--enc-font-fr);
    font-style: italic;
    font-size: 0.95rem;
    color: var(--enc-ink);
    text-decoration: none;
    border: 1px solid var(--enc-rule);
    border-radius: var(--enc-radius);
    background: var(--enc-paper);
    transition: all 0.15s ease;
}

.encyclopedia-archive__pagination .page-numbers:hover {
    border-color: var(--enc-oak);
    color: var(--enc-oak);
}

.encyclopedia-archive__pagination .page-numbers.current {
    background: var(--enc-oak);
    color: #FAF7F2;
    border-color: var(--enc-oak);
}

.encyclopedia-archive__empty {
    text-align: center;
    padding: 60px 20px;
    font-family: var(--enc-font-jp);
    font-style: italic;
    color: var(--enc-ink-soft);
}

/* ============================================================
 * モバイル微調整
 * ============================================================ */
@media (max-width: 600px) {
    .encyclopedia-cover__library-mark {
        font-size: 0.8rem;
        letter-spacing: 0.15em;
        padding: 5px 12px;
    }

    .encyclopedia-bookshelf {
        padding: 24px 12px 10px;
        gap: 8px;
    }

    .encyclopedia-spine {
        width: 44px;
        height: 200px;
        padding: 14px 6px;
    }

    .encyclopedia-spine__title {
        font-size: 0.78rem;
        max-height: 130px;
    }

    .encyclopedia-section-head__title {
        flex-direction: column;
        gap: 4px;
    }
}

/* ============================================================
 * SWELLの自動目次（TOC）を仔兎図書館CPTで無効化する
 * ─────────────────────────────────────────────────
 * SWELLは投稿タイプを問わず本文中に目次を自動挿入する仕様だが、
 * 仔兎図書館は書架の世界観を保つため目次は表示しない。
 * functions-snippet.php 側で the_content から目次HTMLを除去する
 * 処理を入れているが、SWELLのバージョン違いで HTML 除去が
 * 効かないケースに備え、CSS でも保険として非表示化する。
 *
 * SWELLのバージョンごとに目次のクラス名が異なるため、
 * 候補（p-toc / toc / swell-block-toc / swl-toc /
 * wp-block-table-of-contents）を網羅的に列挙する。
 *
 * 商品CPTで採用した方式を本CPT用にスコープを変更して移植したもの。
 * 今後 qa CPT 等を実装する際にも同じ方式を使える。
 * ============================================================ */

/* 本文ラッパー .encyclopedia-freeform 内に出現するTOCを非表示 */
.encyclopedia-freeform [class*="toc"],
.encyclopedia-freeform .p-toc,
.encyclopedia-freeform .toc,
.encyclopedia-freeform .wp-block-table-of-contents,
.encyclopedia-freeform .swell-block-toc,
.encyclopedia-freeform .swl-toc {
    display: none !important;
}

/* CPTテンプレート全体スコープでも保険として指定 */
.encyclopedia-article [class*="toc"],
.encyclopedia-article .p-toc,
.encyclopedia-article .toc,
.encyclopedia-article .wp-block-table-of-contents,
.encyclopedia-article .swell-block-toc,
.encyclopedia-article .swl-toc {
    display: none !important;
}

/* body クラスでの最終保険（SWELLが個別投稿テンプレートで body にクラスを付与する場合） */
body.single-encyclopedia [class*="toc"],
body.single-encyclopedia .p-toc,
body.single-encyclopedia .swell-block-toc {
    display: none !important;
}