/**
 * news-letter.css
 * プチ・ラパン 仔兎通信社 CPT 専用スタイル
 *
 * スコープ : .nl-article（個別ページ）/ .nl-archive（一覧ページ）
 * 設計思想 : 新聞・ジャーナル・雑誌の視覚言語
 * SWELL対処: 関門3（CSS保険的非表示）を末尾に記述
 * エンキュー: functions.php の条件付き wp_enqueue_style() で読み込む
 *             条件 : is_singular('news-letter') || is_post_type_archive('news-letter')
 *                    || is_tax(['nl_season','nl_year','pl_item_type'])
 *
 * 配置先 : child-theme/assets/css/cpt/news-letter.css
 */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CSS カスタムプロパティ（仔兎通信社 専用トークン）
   ※ SWELL の Customizer 変数と命名が被らないよう --nl- プレフィックス
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root {
    --nl-ink:         #2B1E14;   /* メインテキスト色（墨インクブラウン）      */
    --nl-ink2:        #5C4230;   /* サブテキスト・ラベル色                   */
    --nl-accent:      #8B3A22;   /* アクセント（朱赤）                       */
    --nl-rule:        #BBA98A;   /* 罫線・ボーダー色（ウォームゴールド）      */
    --nl-paper:       #FAF7F2;   /* 紙色（アイボリー）                       */
    --nl-paper-alt:   #F5EFE6;   /* やや濃い紙色（バッジ・ブロック背景）     */
    --nl-serif:       Georgia, 'Cormorant Garamond', 'Times New Roman', serif;
    --nl-sans:        inherit;   /* SWELL の標準フォントを継承               */

    /* 罫線の太さ */
    --nl-rule-thick:  3px;
    --nl-rule-thin:   0.5px;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   共通：ページ最大幅の調整
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-article,
.nl-archive {
    max-width: 820px;
    margin-inline: auto;
    padding-inline: 1rem;
    color: var(--nl-ink);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   共通：罫線（新聞の題字下に入る太罫＋細罫）
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-rules {
    margin-block: 0.5rem;
}

.nl-rules__thick {
    border: none;
    border-top: var(--nl-rule-thick) solid var(--nl-ink);
    margin-bottom: 3px;
}

.nl-rules__thin {
    border: none;
    border-top: var(--nl-rule-thin) solid var(--nl-rule);
}

.nl-rules--section {
    margin-block: 1.25rem;
}

.nl-rules--footer {
    margin-top: 2.5rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   共通：タクソノミーバッジ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-badge {
    display: inline-block;
    font-size: 0.7rem;
    padding: 0.2em 0.7em;
    border: 0.5px solid var(--nl-rule);
    border-radius: 20px;
    color: var(--nl-ink2);
    background: var(--nl-paper-alt);
    text-decoration: none;
    line-height: 1.4;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
}

.nl-badge:hover {
    background: var(--nl-ink);
    color: #fff;
    border-color: var(--nl-ink);
}

.nl-badge--sm {
    font-size: 0.65rem;
    padding: 0.15em 0.55em;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】マストヘッド（題字・発行情報帯）
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-masthead {
    padding-block: 1rem 0.75rem;
    text-align: center;
    background: transparent;
}

.nl-masthead__inner {
    max-width: 640px;
    margin-inline: auto;
}

.nl-masthead__sub {
    font-family: var(--nl-serif);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    color: var(--nl-ink2);
    margin: 0 0 0.3rem;
    text-transform: uppercase;
}

.nl-masthead__title {
    font-family: var(--nl-serif);
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--nl-ink);
    line-height: 1;
    margin: 0 0 0.25rem;
}

.nl-masthead__dateline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.7rem;
    color: var(--nl-ink2);
    padding-block: 0.4rem;
    border-top: 0.5px solid var(--nl-rule);
    border-bottom: 0.5px solid var(--nl-rule);
    margin-top: 0.5rem;
    gap: 0.5rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】タクソノミーバー（スーパーライン）
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-taxo-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    padding-block: 0.6rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】ヘッドライン・デックゾーン
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-headline-zone {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.25rem;
    align-items: flex-start;
    padding-block: 0.75rem;
}

/* ヘッドライン */
.nl-headline {
    font-family: var(--nl-serif);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--nl-ink);
    margin: 0 0 0.5rem;
}

/* デック（リード文・斜体） */
.nl-deck {
    font-family: var(--nl-serif);
    font-size: 0.95rem;
    font-style: italic;
    line-height: 1.65;
    color: var(--nl-ink2);
    border-left: 3px solid var(--nl-accent);
    padding-left: 0.75rem;
    margin: 0 0 0.75rem;
}

/* バイライン（号数・発行日帯） */
.nl-byline {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-block: 0.5rem;
    border-top: 0.5px solid var(--nl-rule);
    border-bottom: 0.5px solid var(--nl-rule);
    font-size: 0.75rem;
    color: var(--nl-ink2);
}

.nl-byline__number {
    font-family: var(--nl-serif);
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--nl-accent);
    line-height: 1;
    min-width: 2.5rem;
}

.nl-byline__fr {
    font-family: var(--nl-serif);
    font-style: italic;
    font-size: 0.7rem;
    color: var(--nl-rule);
}

.nl-byline__sep {
    color: var(--nl-rule);
}

/* サムネイル画像（表紙） */
.nl-headline-zone__thumb {
    width: 100px;
    flex-shrink: 0;
    border: 0.5px solid var(--nl-rule);
    border-radius: 3px;
    overflow: hidden;
    margin: 0;
}

.nl-thumb-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
}

.nl-thumb-caption {
    font-size: 0.65rem;
    text-align: center;
    color: var(--nl-ink2);
    background: var(--nl-paper-alt);
    padding: 0.2em 0;
    border-top: 0.5px solid var(--nl-rule);
    margin: 0;
}

/* プレースホルダー（サムネイル未登録時） */
.nl-thumb--placeholder {
    width: 100px;
    aspect-ratio: 3 / 4;
    background: var(--nl-paper-alt);
    border: 0.5px solid var(--nl-rule);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nl-thumb--placeholder-num {
    font-family: var(--nl-serif);
    font-size: 1.3rem;
    color: var(--nl-ink2);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】本文エリア（2カラム組版 + 自由記述）
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-body-zone {
    padding-block: 0.5rem;
}

/* ACF wysiwyg 本文：2カラム組版（タブレット以上） */
.nl-body--acf {
    column-count: 2;
    column-gap: 1.75rem;
    column-rule: 0.5px solid var(--nl-rule);
    font-family: var(--nl-serif);
    font-size: 0.925rem;
    line-height: 1.95;
    color: var(--nl-ink);
}

/* 本文内の見出し（カラムをまたがない） */
.nl-body--acf h2,
.nl-body--acf h3 {
    column-span: all;
    font-family: var(--nl-serif);
    font-size: 1.05rem;
    color: var(--nl-ink);
    border-bottom: 0.5px solid var(--nl-rule);
    padding-bottom: 0.3em;
    margin: 1.2em 0 0.6em;
}

/* 本文内の強調 */
.nl-body--acf strong {
    font-weight: 700;
    color: var(--nl-ink);
}

/* 本文内のリスト */
.nl-body--acf ul,
.nl-body--acf ol {
    padding-left: 1.5em;
    margin-bottom: 0.75em;
}

/* 標準エディター自由記述エリア（ギャラリーブロック等） */
.nl-freeform {
    margin-top: 1.25rem;
}

/* ギャラリーブロックの雑誌・図版スタイル */
.nl-freeform .wp-block-gallery,
.nl-freeform .blocks-gallery-grid {
    gap: 0.5rem !important;
}

.nl-freeform .wp-block-gallery .wp-block-image,
.nl-freeform .blocks-gallery-grid .blocks-gallery-item {
    border: 0.5px solid var(--nl-rule);
}

/* ギャラリーキャプション */
.nl-freeform .wp-block-gallery figcaption,
.nl-freeform .wp-block-image figcaption {
    font-family: var(--nl-serif);
    font-size: 0.72rem;
    font-style: italic;
    color: var(--nl-ink2);
    text-align: center;
    padding: 0.3em 0.5em;
    background: var(--nl-paper-alt);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】PDF ダウンロードブロック
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-pdf-block {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--nl-paper-alt);
    border: 0.5px solid var(--nl-rule);
    border-radius: 3px;
    margin-block: 1.25rem;
}

.nl-pdf-block__icon {
    color: var(--nl-ink2);
    flex-shrink: 0;
}

.nl-pdf-block__label {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--nl-ink);
    margin: 0 0 0.2em;
}

.nl-pdf-block__link {
    font-size: 0.72rem;
    color: var(--nl-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.nl-pdf-block__link:hover {
    color: var(--nl-ink);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】セクション区切り（コラム罫線風）
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-section-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-block: 1.5rem 1rem;
}

.nl-section-divider__line {
    flex: 1;
    border: none;
    border-top: 0.5px solid var(--nl-rule);
}

.nl-section-divider__text {
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nl-ink2);
    white-space: nowrap;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】関連コンテンツ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-related {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.nl-related__group {
    background: var(--nl-paper-alt);
    border: 0.5px solid var(--nl-rule);
    border-radius: 3px;
    padding: 0.75rem;
}

.nl-related__heading {
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--nl-ink2);
    margin: 0 0 0.6rem;
    padding-bottom: 0.3rem;
    border-bottom: 0.5px solid var(--nl-rule);
}

.nl-related__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.nl-related__item {
    font-size: 0;
}

.nl-related__link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--nl-ink);
    text-decoration: none;
    line-height: 1.45;
    padding: 0.2rem 0.3rem;
    border-radius: 2px;
    transition: background 0.15s;
}

.nl-related__link:hover {
    background: rgba(139,58,34,0.06);
    color: var(--nl-accent);
}

.nl-related__type {
    font-size: 0.65rem;
    color: var(--nl-accent);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】シェフのひとこと
   本文直後・PDFブロック前に配置。
   背景：暖かみのあるテラコッタ系アイボリーで本文エリアと差別化。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-chef-note {
    position: relative;
    padding: 1.1rem 1.25rem 1rem 1.5rem;
    background: linear-gradient(135deg, #FDF3EC 0%, #F7E8D8 100%);
    border: 0.5px solid #D4A882;
    border-left: 4px solid var(--nl-accent);
    border-radius: 3px;
    margin-block: 1.5rem;
}

/* 装飾的な引用符（新聞コラムの「■」的な役割） */
.nl-chef-note::before {
    content: '✦';
    position: absolute;
    top: -0.6rem;
    left: 1rem;
    font-size: 0.8rem;
    color: var(--nl-accent);
    background: #FDF3EC;
    padding: 0 0.3em;
    line-height: 1;
}

.nl-chef-note__label {
    font-family: var(--nl-serif);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    color: var(--nl-accent);
    font-style: italic;
    margin: 0 0 0.5rem;
}

.nl-chef-note__body {
    font-family: var(--nl-serif);
    font-size: 0.92rem;
    line-height: 1.85;
    color: var(--nl-ink);
}

.nl-chef-note__body p {
    margin: 0;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【個別ページ】前後ナビゲーション
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-nav-issues {
    padding-block: 0.75rem;
}

.nl-nav-issues__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1rem;
    align-items: center;
}

.nl-nav-issues__link {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    text-decoration: none;
    color: var(--nl-ink);
    font-size: 0.78rem;
    padding: 0.4rem;
    border: 0.5px solid transparent;
    border-radius: 3px;
    transition: border-color 0.2s;
}

.nl-nav-issues__link:hover {
    border-color: var(--nl-rule);
}

.nl-nav-issues__link--next {
    text-align: right;
}

.nl-nav-issues__arrow {
    font-size: 1rem;
    color: var(--nl-accent);
}

.nl-nav-issues__label {
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    color: var(--nl-ink2);
}

.nl-nav-issues__title {
    font-family: var(--nl-serif);
    font-size: 0.82rem;
    line-height: 1.4;
}

.nl-nav-issues__archive {
    text-align: center;
}

.nl-nav-issues__archive-link {
    font-size: 0.72rem;
    color: var(--nl-accent);
    text-decoration: none;
    border: 0.5px solid var(--nl-accent);
    border-radius: 20px;
    padding: 0.3em 0.9em;
    display: inline-block;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
}

.nl-nav-issues__archive-link:hover {
    background: var(--nl-accent);
    color: #fff;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】マストヘッド
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-archive-masthead {
    padding-block: 1.25rem 0.75rem;
    text-align: center;
}

.nl-archive-masthead__inner {
    max-width: 640px;
    margin-inline: auto;
}

.nl-archive-masthead__sub-fr {
    font-family: var(--nl-serif);
    font-size: 0.68rem;
    letter-spacing: 0.22em;
    color: var(--nl-ink2);
    text-transform: uppercase;
    margin: 0 0 0.3rem;
}

/* h1 はアーカイブタイトルとしてセット */
.nl-archive-masthead__title {
    font-family: var(--nl-serif);
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--nl-ink);
    line-height: 1;
    margin: 0 0 0.25rem;
}

.nl-archive-masthead__title-fr {
    font-family: var(--nl-serif);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    color: var(--nl-ink2);
    font-style: italic;
    margin: 0 0 0.6rem;
}

.nl-archive-masthead__dateline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.68rem;
    color: var(--nl-ink2);
    padding-block: 0.35rem;
    border-top: 0.5px solid var(--nl-rule);
    border-bottom: 0.5px solid var(--nl-rule);
    margin-top: 0.5rem;
    gap: 0.5rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】タクソノミーターム見出し帯
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-term-header {
    text-align: center;
    padding-block: 0.75rem;
}

.nl-term-header__label {
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--nl-ink2);
    margin: 0 0 0.2rem;
}

.nl-term-header__name {
    font-family: var(--nl-serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--nl-ink);
    margin: 0 0 0.4rem;
}

.nl-term-header__desc {
    font-family: var(--nl-serif);
    font-style: italic;
    font-size: 0.85rem;
    color: var(--nl-ink2);
    max-width: 480px;
    margin-inline: auto;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】フィルターバー
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding-block: 0.7rem;
}

.nl-filter-bar__chip {
    font-size: 0.72rem;
    padding: 0.25em 0.75em;
    border-radius: 20px;
    border: 0.5px solid var(--nl-rule);
    color: var(--nl-ink2);
    text-decoration: none;
    background: transparent;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.nl-filter-bar__chip:hover,
.nl-filter-bar__chip--active {
    background: var(--nl-ink);
    color: #fff;
    border-color: var(--nl-ink);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】カードグリッド
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    padding-block: 0.5rem 1.25rem;
}

/* カード */
.nl-card {
    border: 0.5px solid var(--nl-rule);
    border-radius: 3px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow 0.18s, transform 0.18s;
}

.nl-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(43,30,20,0.08);
}

.nl-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

/* カードサムネイル */
.nl-card__thumb {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-bottom: 0.5px solid var(--nl-rule);
    background: var(--nl-paper-alt);
}

.nl-card__thumb-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.nl-card:hover .nl-card__thumb-img {
    transform: scale(1.03);
}

.nl-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--nl-paper-alt);
}

.nl-card__thumb-placeholder span {
    font-family: var(--nl-serif);
    font-size: 1.6rem;
    color: var(--nl-ink2);
}

/* 号数バッジ（サムネイル右下に重ねる） */
.nl-card__num-badge {
    position: absolute;
    bottom: 0.4rem;
    right: 0.4rem;
    font-size: 0.62rem;
    font-weight: 600;
    color: #fff;
    background: var(--nl-accent);
    padding: 0.15em 0.5em;
    border-radius: 2px;
}

/* カード本文 */
.nl-card__body {
    padding: 0.65rem 0.75rem 0.75rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.nl-card__issue {
    font-size: 0.65rem;
    color: var(--nl-accent);
    font-weight: 600;
    letter-spacing: 0.05em;
    margin: 0;
}

.nl-card__title {
    font-family: var(--nl-serif);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.45;
    color: var(--nl-ink);
    margin: 0;
}

.nl-card__lead {
    font-size: 0.72rem;
    color: var(--nl-ink2);
    line-height: 1.55;
    margin: 0;
}

.nl-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: auto;
    padding-top: 0.35rem;
}

.nl-card__date {
    font-size: 0.65rem;
    color: var(--nl-rule);
    margin: 0;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】ページネーション
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-pagination .page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    padding-block: 0.75rem;
}

.nl-pagination .page-numbers a,
.nl-pagination .page-numbers span {
    display: inline-block;
    padding: 0.3em 0.7em;
    border: 0.5px solid var(--nl-rule);
    border-radius: 20px;
    color: var(--nl-ink2);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.nl-pagination .page-numbers a:hover,
.nl-pagination .page-numbers .current {
    background: var(--nl-ink);
    color: #fff;
    border-color: var(--nl-ink);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   【アーカイブページ】該当なし
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-no-results {
    text-align: center;
    padding-block: 3rem;
}

.nl-no-results__text {
    font-size: 0.9rem;
    color: var(--nl-ink2);
    margin-bottom: 1rem;
}

.nl-no-results__back {
    font-size: 0.8rem;
    color: var(--nl-accent);
    border: 0.5px solid var(--nl-accent);
    border-radius: 20px;
    padding: 0.35em 1em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.nl-no-results__back:hover {
    background: var(--nl-accent);
    color: #fff;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   レスポンシブ：モバイル対応
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 640px) {

    /* 個別ページ */
    .nl-masthead__title {
        font-size: 1.5rem;
    }

    .nl-headline-zone {
        grid-template-columns: 1fr;
    }

    .nl-headline-zone__thumb,
    .nl-thumb--placeholder {
        width: 80px;
        order: -1; /* モバイルでは見出しの前に表示 */
    }

    .nl-headline {
        font-size: 1.3rem;
    }

    /* 本文：モバイルでは1カラム */
    .nl-body--acf {
        column-count: 1;
    }

    .nl-masthead__dateline {
        flex-direction: column;
        text-align: center;
        gap: 0.2rem;
    }

    /* ナビゲーション */
    .nl-nav-issues__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .nl-nav-issues__archive {
        order: -1;
        padding-bottom: 0.5rem;
        border-bottom: 0.5px solid var(--nl-rule);
    }

    /* 関連コンテンツ */
    .nl-related {
        grid-template-columns: 1fr;
    }

    /* アーカイブ */
    .nl-archive-masthead__title {
        font-size: 1.6rem;
    }

    .nl-archive-masthead__dateline {
        flex-direction: column;
        text-align: center;
        gap: 0.2rem;
    }

    .nl-card-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.6rem;
    }
}

@media (max-width: 400px) {
    .nl-card-grid {
        grid-template-columns: 1fr;
    }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   ★ 関門3：SWELL 自動目次の CSS 保険的非表示化
   第一段（PHPメタ上書き）・第二段（the_contentフィルター）を
   くぐり抜けた目次要素をここで最終的に非表示にする。
   セレクタは .nl-article / .nl-archive スコープに限定し
   他のページ（ブログ記事等）の目次には影響させない。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.nl-article .p-toc,
.nl-article .toc,
.nl-article .swell-block-toc,
.nl-article .swl-toc,
.nl-article .wp-block-table-of-contents,
.nl-archive .p-toc,
.nl-archive .toc,
.nl-archive .swell-block-toc,
.nl-archive .swl-toc,
.nl-archive .wp-block-table-of-contents {
    display: none !important;
}