/*
Theme Name: slm-theme
Theme URI:
Author:
Author URI:
Description: saimu-limit.jp 専用 1カラムテーマ（base-theme派生）。
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: slm-theme
*/

/* ------------------------------------------------------------------
   CSS Variables（カスタマイザーから上書きされる）
------------------------------------------------------------------ */
:root {
    --slm-main: #C22047;
    --slm-link: #2563eb;
    --slm-nav-bg: #C22047;
    --slm-nav-text: #ffffff;
    --slm-footer-bg: #fafafa;
    --slm-footer-text: #666666;
    --slm-accent-bg: #fdf3f5;
    --slm-border: #eeeeee;
    --slm-text: #2a2a2a;
    --slm-text-muted: #777777;
    --slm-bg: #ffffff;
}

/* ------------------------------------------------------------------
   Reset & Base
------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: 'Hiragino Sans', 'ヒラギノ角ゴシック', 'Noto Sans JP', 'Yu Gothic', 'Meiryo', sans-serif;
    font-size: 16px;
    line-height: 1.85;
    color: var(--slm-text);
    background: var(--slm-bg);
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--slm-link); text-decoration: underline; }
a:hover { text-decoration: none; }
a:visited { color: var(--slm-link); }

/* ------------------------------------------------------------------
   Layout
------------------------------------------------------------------ */
.slm-wrapper {
    max-width: 800px;
    margin: 0 auto;
    background: var(--slm-bg);
    border-left: 1px solid var(--slm-border);
    border-right: 1px solid var(--slm-border);
}

/* ------------------------------------------------------------------
   Header
------------------------------------------------------------------ */
.slm-header {
    padding: 20px 28px 16px;
    border-bottom: 1px solid var(--slm-border);
}
.slm-header-inner {
    text-align: left;
}
.slm-logo {
    line-height: 0;
}
.slm-logo img {
    max-height: 56px;
    width: auto;
    height: auto;
    vertical-align: middle;
}
.slm-logo .custom-logo-link {
    display: inline-block;
}
.slm-site-title {
    font-size: 22px;
    font-weight: 500;
    margin: 0;
    line-height: 1.3;
}
.slm-site-title a {
    color: var(--slm-main);
    text-decoration: none;
    letter-spacing: 0.5px;
}

/* ------------------------------------------------------------------
   Global Navigation
------------------------------------------------------------------ */
.slm-nav {
    background: var(--slm-nav-bg);
}
.slm-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.slm-nav-list li a {
    display: block;
    padding: 12px 18px;
    color: var(--slm-nav-text);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
}
.slm-nav-list li a:hover { opacity: 0.85; }
.slm-nav-list li:not(:last-child) a {
    border-right: 1px solid rgba(255, 255, 255, 0.25);
}

/* ------------------------------------------------------------------
   Main
------------------------------------------------------------------ */
.slm-main {
    padding: 0;
}
.slm-main-inner {
    padding: 24px 28px 40px;
}

/* Breadcrumb */
.slm-breadcrumb {
    font-size: 12px;
    color: var(--slm-text-muted);
    margin: 0 0 18px;
    line-height: 1.6;
}
.slm-breadcrumb a {
    color: var(--slm-link);
    text-decoration: none;
}
.slm-breadcrumb a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------
   Headings
------------------------------------------------------------------ */
.slm-single-content h1,
.slm-page-content h1,
.slm-single-title,
.slm-page-title,
.slm-archive-title {
    font-size: 24px;
    font-weight: 500;
    color: var(--slm-text);
    border-bottom: 3px solid var(--slm-main);
    padding-bottom: 10px;
    margin: 0 0 18px;
    line-height: 1.4;
}
.slm-single-content h2,
.slm-page-content h2 {
    font-size: 20px;
    font-weight: 500;
    color: var(--slm-text);
    border-bottom: 2px solid var(--slm-main);
    padding-bottom: 8px;
    margin: 32px 0 16px;
    line-height: 1.5;
}
.slm-single-content h3,
.slm-page-content h3 {
    font-size: 17px;
    font-weight: 500;
    color: var(--slm-text);
    border-left: 4px solid var(--slm-main);
    padding: 3px 0 3px 12px;
    margin: 26px 0 12px;
    line-height: 1.5;
}
.slm-single-content h4,
.slm-page-content h4 {
    font-size: 16px;
    font-weight: 500;
    color: var(--slm-main);
    margin: 22px 0 10px;
    line-height: 1.5;
}
.slm-single-content h4::before,
.slm-page-content h4::before {
    content: "■ ";
}
.slm-single-content h5,
.slm-page-content h5 {
    font-size: 15px;
    font-weight: 500;
    color: var(--slm-text);
    border-bottom: 1px dotted #999;
    padding-bottom: 4px;
    margin: 18px 0 8px;
}
.slm-single-content h6,
.slm-page-content h6 {
    font-size: 14px;
    font-weight: 500;
    color: #666;
    margin: 16px 0 8px;
}

/* ------------------------------------------------------------------
   Fake Heading（偽見出し）
   通常の<p>タグだが、見出し的に表示する。
   the_contentフィルタで自動付与される。
------------------------------------------------------------------ */
.slm-single-content .slm-fake-h,
.slm-page-content .slm-fake-h {
    font-size: 16px;
    font-weight: 500;
    color: var(--slm-main);
    margin: 22px 0 10px;
    line-height: 1.6;
}
.slm-single-content .slm-fake-h::before,
.slm-page-content .slm-fake-h::before {
    content: "▼ ";
}

/* ------------------------------------------------------------------
   Step Flow（ステップフロー）
   連番型偽見出しが3個以上連続する範囲を自動グループ化。
------------------------------------------------------------------ */
.slm-single-content .slm-step-flow,
.slm-page-content .slm-step-flow {
    background: var(--slm-accent-bg);
    border: 1px solid var(--slm-main);
    padding: 14px 18px;
    margin: 18px 0;
    box-sizing: border-box;
}
.slm-single-content .slm-step-flow > *:first-child,
.slm-page-content .slm-step-flow > *:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}
.slm-single-content .slm-step-flow > *:last-child,
.slm-page-content .slm-step-flow > *:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}

.slm-single-content .slm-step-item,
.slm-page-content .slm-step-item {
    display: flex !important;
    gap: 12px;
    padding: 14px 0 18px;
    border-bottom: 1px dashed var(--slm-main);
    position: relative;
    margin: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    box-sizing: border-box;
}
.slm-single-content .slm-step-item:first-child,
.slm-page-content .slm-step-item:first-child {
    padding-top: 0;
}
.slm-single-content .slm-step-item:last-child,
.slm-page-content .slm-step-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
/* ▼矢印（境界線の上に重なる位置） */
.slm-single-content .slm-step-item:not(:last-child)::after,
.slm-page-content .slm-step-item:not(:last-child)::after {
    content: "▼";
    position: absolute;
    bottom: -8px;
    left: 8px;
    color: var(--slm-main);
    font-size: 11px;
    background: var(--slm-accent-bg);
    padding: 0 6px;
    line-height: 1;
}

/* 番号バブル */
.slm-single-content .slm-step-num,
.slm-page-content .slm-step-num {
    background: var(--slm-main);
    color: #fff;
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    font-size: 14px;
    flex-shrink: 0;
    line-height: 1;
    margin: 0 !important;
    box-sizing: border-box;
}

/* 右側コンテンツ */
.slm-single-content .slm-step-content,
.slm-page-content .slm-step-content {
    flex: 1;
    min-width: 0;
    margin: 0 !important;
    padding-top: 4px; /* 番号バブルとの垂直位置合わせ */
}
.slm-single-content .slm-step-content > *:first-child,
.slm-page-content .slm-step-content > *:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}

/* タイトル */
.slm-single-content .slm-step-title,
.slm-page-content .slm-step-title {
    font-weight: 500;
    color: var(--slm-main);
    font-size: 15px;
    margin: 0 0 6px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 6px !important;
    line-height: 1.5;
    padding: 0;
}

/* 本文 */
.slm-single-content .slm-step-body,
.slm-page-content .slm-step-body {
    font-size: 14px;
    color: #444;
    line-height: 1.8;
    margin: 0 !important;
    margin-block-start: 0 !important;
}
.slm-single-content .slm-step-body p,
.slm-page-content .slm-step-body p {
    margin: 0 0 6px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 6px !important;
}
.slm-single-content .slm-step-body p:first-child,
.slm-page-content .slm-step-body p:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}
.slm-single-content .slm-step-body p:last-child,
.slm-page-content .slm-step-body p:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}

/* ------------------------------------------------------------------
   Checklist Card（<br>区切り型チェックリスト）
   「○○リスト」の見出し直後にタイトル<br>本文が連続する構造を装飾
------------------------------------------------------------------ */
.slm-single-content .slm-checklist-card,
.slm-page-content .slm-checklist-card {
    background: #fff;
    border: 0.5px solid var(--slm-border);
    border-radius: 4px;
    padding: 16px 18px;
    margin: 18px 0;
    box-sizing: border-box;
}
.slm-single-content .slm-checklist-card > *:first-child,
.slm-page-content .slm-checklist-card > *:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}
.slm-single-content .slm-checklist-card > *:last-child,
.slm-page-content .slm-checklist-card > *:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}

.slm-single-content .slm-checklist-title,
.slm-page-content .slm-checklist-title {
    font-weight: 500;
    color: var(--slm-main);
    font-size: 14px;
    line-height: 1.5;
    margin: 0 0 14px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 14px !important;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--slm-accent-bg);
}

.slm-single-content .slm-checklist-item,
.slm-page-content .slm-checklist-item {
    margin: 0 0 14px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 14px !important;
    padding: 0;
}
.slm-single-content .slm-checklist-item:last-child,
.slm-page-content .slm-checklist-item:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}

.slm-single-content .slm-checklist-item-title,
.slm-page-content .slm-checklist-item-title {
    position: relative;
    padding-left: 22px;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.5;
    color: #2a2a2a;
    margin: 0 0 4px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 4px !important;
}
.slm-single-content .slm-checklist-item-title::before,
.slm-page-content .slm-checklist-item-title::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--slm-main);
    font-weight: 500;
    font-size: 16px;
    line-height: 1.4;
}

.slm-single-content .slm-checklist-item-body,
.slm-page-content .slm-checklist-item-body {
    font-size: 13px;
    color: #444;
    line-height: 1.8;
    padding-left: 22px;
    margin: 0 !important;
    margin-block-start: 0 !important;
}

/* ------------------------------------------------------------------
   Q&A
   ■■QAセクション■■内のH3を自動的にQ/Aブロックに装飾。
------------------------------------------------------------------ */
.slm-single-content .slm-qa-block,
.slm-page-content .slm-qa-block {
    margin: 18px 0;
    border: 1px solid var(--slm-border);
    background: #fff;
}
.slm-single-content .slm-qa-q,
.slm-page-content .slm-qa-q {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border-bottom: 1px solid var(--slm-border);
    background: var(--slm-accent-bg);
}
.slm-single-content .slm-qa-a,
.slm-page-content .slm-qa-a {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
}
.slm-single-content .slm-qa-mark,
.slm-page-content .slm-qa-mark {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    font-size: 14px;
    flex-shrink: 0;
    line-height: 1;
}
.slm-single-content .slm-qa-q .slm-qa-mark,
.slm-page-content .slm-qa-q .slm-qa-mark {
    background: var(--slm-main);
    color: #fff;
}
.slm-single-content .slm-qa-a .slm-qa-mark,
.slm-page-content .slm-qa-a .slm-qa-mark {
    background: #fff;
    color: var(--slm-main);
    border: 2px solid var(--slm-main);
}
.slm-single-content .slm-qa-q .slm-qa-text,
.slm-page-content .slm-qa-q .slm-qa-text {
    font-weight: 500;
    font-size: 15px;
    line-height: 1.6;
    padding-top: 4px;
}
.slm-single-content .slm-qa-a .slm-qa-text,
.slm-page-content .slm-qa-a .slm-qa-text {
    flex: 1;
    font-size: 14px;
    color: #444;
    line-height: 1.85;
    padding-top: 2px;
}
.slm-single-content .slm-qa-a .slm-qa-text p:first-child,
.slm-page-content .slm-qa-a .slm-qa-text p:first-child { margin-top: 0; }
.slm-single-content .slm-qa-a .slm-qa-text p:last-child,
.slm-page-content .slm-qa-a .slm-qa-text p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------
   体験談吹き出し（blockquote）
   フィルタで <div class="slm-bq-side"> + <div class="slm-bq-body"> に
   置換されたものを flex レイアウトで表示。
------------------------------------------------------------------ */
.slm-single-content blockquote,
.slm-page-content blockquote {
    display: flex;
    gap: 14px;
    background: var(--slm-accent-bg);
    border: 1px solid #f0c8d3;
    padding: 14px 16px;
    margin: 20px 0;
    font-size: 14px;
    color: #2a2a2a;
    line-height: 1.85;
    font-style: normal;
    border-left: 1px solid #f0c8d3;
}
.slm-single-content blockquote .slm-bq-side,
.slm-page-content blockquote .slm-bq-side {
    flex-shrink: 0;
    width: 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.slm-single-content blockquote .slm-bq-icon,
.slm-page-content blockquote .slm-bq-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--slm-main);
    color: var(--slm-main);
    font-weight: 500;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.slm-single-content blockquote .slm-bq-cap,
.slm-page-content blockquote .slm-bq-cap {
    font-size: 10px;
    color: #777;
    line-height: 1.3;
    text-align: center;
}
.slm-single-content blockquote .slm-bq-body,
.slm-page-content blockquote .slm-bq-body {
    flex: 1;
    min-width: 0;
}
.slm-single-content blockquote .slm-bq-body p,
.slm-page-content blockquote .slm-bq-body p {
    margin: 0 0 8px;
}
.slm-single-content blockquote .slm-bq-body p:last-child,
.slm-page-content blockquote .slm-bq-body p:last-child {
    margin-bottom: 0;
}

/* ------------------------------------------------------------------
   注意喚起ボックス（ただし、〜 / 指定末尾）
------------------------------------------------------------------ */
.slm-single-content .slm-warning-box,
.slm-page-content .slm-warning-box {
    background: #fffbe8;
    border: 1px solid #f0d674;
    border-left: 5px solid #d49b1a;
    padding: 12px 14px;
    margin: 14px 0;
}
.slm-single-content .slm-warning-label,
.slm-page-content .slm-warning-label {
    font-weight: 500;
    color: #8a6d1c;
    font-size: 13px;
    margin-bottom: 4px;
}
.slm-single-content .slm-warning-body,
.slm-page-content .slm-warning-body {
    font-size: 14px;
    line-height: 1.85;
    color: #2a2a2a;
}

/* ------------------------------------------------------------------
   注釈スタイル（※段落）
------------------------------------------------------------------ */
.slm-single-content .slm-note-para,
.slm-page-content .slm-note-para {
    font-size: 12px;
    color: #777;
    background: #f5f5f5;
    padding: 6px 10px;
    margin: 8px 0;
    line-height: 1.7;
    border-left: 3px solid #bbb;
    white-space: pre-line;
}

/* ------------------------------------------------------------------
   テーブル注釈（テーブル直後の※）
   テーブルとの距離を縮めて、文字を小さくする
------------------------------------------------------------------ */
.slm-single-content .slm-table-note,
.slm-page-content .slm-table-note {
    font-size: 11px;
    color: #888;
    background: transparent;
    padding: 4px 2px;
    margin: -10px 0 14px;
    line-height: 1.6;
    border: none;
    white-space: pre-line;
}

/* ------------------------------------------------------------------
   目次（自動生成）
------------------------------------------------------------------ */
.slm-single-content .slm-toc,
.slm-page-content .slm-toc {
    background: #fafafa;
    border: 1px solid var(--slm-border);
    margin: 20px 0;
    padding: 0;
}
.slm-single-content .slm-toc-title,
.slm-page-content .slm-toc-title {
    background: var(--slm-main);
    color: #fff;
    padding: 9px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 500;
    font-size: 14px;
}
.slm-single-content .slm-toc-toggle,
.slm-page-content .slm-toc-toggle {
    background: rgba(255,255,255,0.2);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.4);
    padding: 3px 10px;
    font-size: 11px;
    cursor: pointer;
    line-height: 1.4;
}
.slm-single-content .slm-toc-toggle:hover,
.slm-page-content .slm-toc-toggle:hover {
    background: rgba(255,255,255,0.3);
}
.slm-single-content .slm-toc-list,
.slm-page-content .slm-toc-list {
    list-style: none;
    margin: 0;
    padding: 12px 14px;
    counter-reset: slm-toc-h2;
}
.slm-single-content .slm-toc-list li,
.slm-page-content .slm-toc-list li {
    margin: 4px 0;
    line-height: 1.6;
}
.slm-single-content .slm-toc-list li.slm-toc-h2,
.slm-page-content .slm-toc-list li.slm-toc-h2 {
    counter-increment: slm-toc-h2;
    font-size: 14px;
    font-weight: 500;
    padding-left: 0;
}
.slm-single-content .slm-toc-list li.slm-toc-h2::before,
.slm-page-content .slm-toc-list li.slm-toc-h2::before {
    content: counter(slm-toc-h2) ". ";
    color: var(--slm-main);
    font-weight: 500;
}
.slm-single-content .slm-toc-list li.slm-toc-h3,
.slm-page-content .slm-toc-list li.slm-toc-h3 {
    font-size: 13px;
    padding-left: 22px;
    color: #555;
}
.slm-single-content .slm-toc-list li.slm-toc-h3::before,
.slm-page-content .slm-toc-list li.slm-toc-h3::before {
    content: "└ ";
    color: #999;
}
.slm-single-content .slm-toc-list a,
.slm-page-content .slm-toc-list a {
    color: var(--slm-text);
    text-decoration: none;
}
.slm-single-content .slm-toc-list a:hover,
.slm-page-content .slm-toc-list a:hover {
    color: var(--slm-main);
    text-decoration: underline;
}
.slm-single-content .slm-toc.slm-toc-collapsed .slm-toc-list,
.slm-page-content .slm-toc.slm-toc-collapsed .slm-toc-list {
    display: none;
}

/* スクロール時の見出しの上余白（目次クリックで該当位置に飛んだ時にヘッダーに隠れない） */
.slm-single-content h2[id^="slm-toc-"],
.slm-page-content h2[id^="slm-toc-"],
.slm-single-content h3[id^="slm-toc-"],
.slm-page-content h3[id^="slm-toc-"] {
    scroll-margin-top: 20px;
}

/* ------------------------------------------------------------------
   テーブル横スクロールラッパー
------------------------------------------------------------------ */
.slm-single-content .slm-table-wrap,
.slm-page-content .slm-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 0 14px;
    border: 1px solid var(--slm-border);
}
.slm-single-content .slm-table-wrap table,
.slm-page-content .slm-table-wrap table {
    margin: 0;
    border: none;
    min-width: 500px;
}
/* テーブルセル内のリンク（URL・公式サイトなど）を確実に折り返し */
.slm-single-content .slm-table-wrap td a,
.slm-page-content .slm-table-wrap td a {
    word-break: break-all;
    color: var(--slm-link);
}

/* ------------------------------------------------------------------
   テーブルキャプション（テーブル直前の短い段落）
------------------------------------------------------------------ */
.slm-single-content .slm-table-caption,
.slm-page-content .slm-table-caption {
    background: var(--slm-main);
    color: #fff;
    padding: 8px 14px;
    margin: 16px 0 0;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.5;
    border-radius: 0;
    border: none;
    display: block;
    box-sizing: border-box;
}
.slm-single-content .slm-table-caption + .slm-table-wrap,
.slm-page-content .slm-table-caption + .slm-table-wrap,
.slm-single-content .slm-table-caption + figure .slm-table-wrap,
.slm-page-content .slm-table-caption + figure .slm-table-wrap,
.slm-single-content .slm-table-caption + figure,
.slm-page-content .slm-table-caption + figure {
    margin-top: 0;
    border-top: none;
}
/* キャプション付きテーブルは基本デザイン（薄グレーthead）と統一 */
.slm-single-content .slm-table-caption + .slm-table-wrap table,
.slm-page-content .slm-table-caption + .slm-table-wrap table,
.slm-single-content .slm-table-caption + figure table,
.slm-page-content .slm-table-caption + figure table {
    margin: 0;
}

/* ------------------------------------------------------------------
   通常のリスト装飾（クラス無し ul / ol）
   slm- 系のクラスがついていないリストにベーススタイル
------------------------------------------------------------------ */
.slm-single-content ul:not([class*="slm-"]):not([class*="wp-block-"]),
.slm-page-content ul:not([class*="slm-"]):not([class*="wp-block-"]) {
    list-style: none;
    padding-left: 0;
    margin: 12px 0;
}
.slm-single-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li,
.slm-page-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li {
    position: relative;
    padding: 4px 0 4px 22px;
    margin: 2px 0;
    line-height: 1.85;
}
.slm-single-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li::before,
.slm-page-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 13px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--slm-main);
}
.slm-single-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li li::before,
.slm-page-content ul:not([class*="slm-"]):not([class*="wp-block-"]) li li::before {
    background: transparent;
    border: 1.5px solid var(--slm-main);
    width: 7px;
    height: 7px;
}

/* ------------------------------------------------------------------
   リードカード（「この記事を読めばわかること」見出し+リスト）
------------------------------------------------------------------ */
.slm-single-content .slm-lead-card,
.slm-page-content .slm-lead-card {
    border: 1px solid var(--slm-main);
    margin: 18px 0;
    overflow: hidden;
    box-sizing: border-box;
}
.slm-single-content .slm-lead-card-title,
.slm-page-content .slm-lead-card-title {
    background: var(--slm-main);
    color: #fff;
    padding: 9px 14px;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.5;
    border: none;
    margin: 0;
    box-shadow: none;
    display: block;
}
.slm-single-content .slm-lead-card-body,
.slm-page-content .slm-lead-card-body {
    padding: 0;
    background: var(--slm-accent-bg);
    margin: 0;
    border: none;
}
/* リードカード内の最初/最後の子要素の余白を強制リセット（WP block CSS干渉対策） */
.slm-single-content .slm-lead-card-body > *:first-child,
.slm-page-content .slm-lead-card-body > *:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}
.slm-single-content .slm-lead-card-body > *:last-child,
.slm-page-content .slm-lead-card-body > *:last-child {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}
/* リードカード内のulは背景・border・marginをリセット（他CSSの干渉防止） */
.slm-single-content .slm-lead-card-body ul,
.slm-page-content .slm-lead-card-body ul,
.slm-single-content .slm-lead-card .slm-check-list,
.slm-page-content .slm-lead-card .slm-check-list {
    margin: 0 !important;
    border: none;
    background: transparent;
    padding: 12px 16px 12px 18px;
    list-style: none;
    box-shadow: none;
}
/* リードカード内のliから border / box-shadow を完全に除去 */
.slm-single-content .slm-lead-card-body ul li,
.slm-page-content .slm-lead-card-body ul li,
.slm-single-content .slm-lead-card .slm-check-list li,
.slm-page-content .slm-lead-card .slm-check-list li {
    position: relative;
    padding: 2px 0 2px 22px;
    margin: 0 0 4px 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 4px !important;
    line-height: 1.7;
    border: none;
    box-shadow: none;
    background: transparent;
}
.slm-single-content .slm-lead-card-body ul li:last-child,
.slm-page-content .slm-lead-card-body ul li:last-child,
.slm-single-content .slm-lead-card .slm-check-list li:last-child,
.slm-page-content .slm-lead-card .slm-check-list li:last-child {
    margin-bottom: 0 !important;
}
/* リードカード内の通常ul（チェックリストでない）は赤丸 */
.slm-single-content .slm-lead-card-body ul:not(.slm-check-list) li::before,
.slm-page-content .slm-lead-card-body ul:not(.slm-check-list) li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 12px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--slm-main);
    border: none;
}
/* リードカード内のチェックリストは✓ */
.slm-single-content .slm-lead-card .slm-check-list li,
.slm-page-content .slm-lead-card .slm-check-list li {
    padding-left: 24px;
}
.slm-single-content .slm-lead-card .slm-check-list li::before,
.slm-page-content .slm-lead-card .slm-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--slm-main);
    font-weight: 500;
    font-size: 16px;
    background: transparent;
    width: auto;
    height: auto;
    border-radius: 0;
    border: none;
}

/* ------------------------------------------------------------------
   リードチェックリスト（slm-lead-cardの外でも使える独立スタイル）
   「この記事を読めばわかること」直後のulに✓マーク付与
------------------------------------------------------------------ */
.slm-single-content ul.slm-check-list,
.slm-page-content ul.slm-check-list {
    list-style: none;
    padding: 14px 16px;
    background: var(--slm-accent-bg);
    border: 1px solid var(--slm-main);
    margin: 14px 0;
}
.slm-single-content ul.slm-check-list li,
.slm-page-content ul.slm-check-list li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 6px;
    font-size: 14px;
    line-height: 1.7;
}
.slm-single-content ul.slm-check-list li::before,
.slm-page-content ul.slm-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--slm-main);
    font-weight: 500;
    font-size: 16px;
}
.slm-single-content ul.slm-check-list li:last-child,
.slm-page-content ul.slm-check-list li:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------
   参考資料リスト
   「## 参考資料」H2配下のulをカード型出典リストに
------------------------------------------------------------------ */
.slm-single-content ul.slm-reference-list,
.slm-page-content ul.slm-reference-list {
    list-style: none;
    padding: 14px 18px;
    background: #fafafa;
    border: 1px solid var(--slm-border);
    margin: 14px 0;
}
.slm-single-content ul.slm-reference-list li,
.slm-page-content ul.slm-reference-list li {
    position: relative;
    padding: 6px 0 6px 22px;
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    border-bottom: 1px dotted var(--slm-border);
}
.slm-single-content ul.slm-reference-list li:last-child,
.slm-page-content ul.slm-reference-list li:last-child { border-bottom: none; }
.slm-single-content ul.slm-reference-list li::before,
.slm-page-content ul.slm-reference-list li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 13px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--slm-main);
}
.slm-single-content ul.slm-reference-list a,
.slm-page-content ul.slm-reference-list a {
    color: var(--slm-link);
    text-decoration: none;
}
.slm-single-content ul.slm-reference-list a:hover,
.slm-page-content ul.slm-reference-list a:hover {
    text-decoration: underline;
}

/* ------------------------------------------------------------------
   Body Text
------------------------------------------------------------------ */
.slm-single-content p,
.slm-page-content p {
    margin: 0 0 14px;
}
.slm-single-content strong,
.slm-page-content strong {
    font-weight: 500;
    color: var(--slm-main);
}
.slm-single-content em,
.slm-page-content em {
    font-style: normal;
    background: linear-gradient(transparent 60%, #fff0a0 60%);
    padding: 0 2px;
}
.slm-single-content code,
.slm-page-content code {
    background: #f5f5f5;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'Menlo', 'Consolas', 'Courier New', monospace;
    font-size: 0.92em;
    color: var(--slm-main);
}
.slm-single-content pre,
.slm-page-content pre {
    background: #2a2a2a;
    color: #f0f0f0;
    padding: 14px 16px;
    font-family: 'Menlo', 'Consolas', 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.7;
    overflow-x: auto;
    margin: 0 0 14px;
    border-radius: 3px;
}
.slm-single-content pre code,
.slm-page-content pre code {
    background: transparent;
    padding: 0;
    color: inherit;
}

/* ------------------------------------------------------------------
   Lists
------------------------------------------------------------------ */
.slm-single-content ul,
.slm-page-content ul,
.slm-single-content ol,
.slm-page-content ol {
    margin: 0 0 14px;
    padding-left: 26px;
}
.slm-single-content ul li,
.slm-page-content ul li,
.slm-single-content ol li,
.slm-page-content ol li {
    margin-bottom: 4px;
}

/* ------------------------------------------------------------------
   Boxes
------------------------------------------------------------------ */
.slm-box {
    padding: 14px 16px;
    margin: 0 0 14px;
    border-radius: 0;
}
.slm-box-title {
    font-weight: 500;
    margin-bottom: 6px;
    font-size: 14px;
}
.slm-box-point {
    background: var(--slm-accent-bg);
    border-left: 4px solid var(--slm-main);
}
.slm-box-point .slm-box-title { color: var(--slm-main); }
.slm-box-warning {
    background: #fffbe8;
    border: 1px solid #f0d674;
}
.slm-box-warning .slm-box-title { color: #8a6d1c; }
.slm-box-merit {
    background: #f0f8f0;
    border: 1px solid #b8d8b8;
}
.slm-box-merit .slm-box-title { color: #2d6a35; }
.slm-box-note {
    background: #f5f5f5;
    border: 1px solid #ccc;
}
.slm-box-note .slm-box-title { color: #555; }

/* ------------------------------------------------------------------
   Blockquote
------------------------------------------------------------------ */
.slm-single-content blockquote,
.slm-page-content blockquote {
    border-left: 4px solid #ccc;
    background: #fafafa;
    padding: 14px 18px;
    margin: 0 0 14px;
    font-size: 14px;
    color: #555;
}
.slm-single-content blockquote p:last-child,
.slm-page-content blockquote p:last-child {
    margin-bottom: 0;
}

/* ------------------------------------------------------------------
   Table
------------------------------------------------------------------ */
.slm-single-content table,
.slm-page-content table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 0 0 14px;
    background: #fff;
}
.slm-single-content table th,
.slm-page-content table th {
    background: #f7f7f7;
    color: var(--slm-main);
    padding: 10px 12px;
    border: 1px solid var(--slm-border);
    border-bottom: 2px solid var(--slm-main);
    text-align: left;
    font-weight: 500;
    font-size: 13px;
    line-height: 1.55;
}
.slm-single-content table td,
.slm-page-content table td {
    padding: 9px 12px;
    border: 1px solid var(--slm-border);
    background: #fff;
    line-height: 1.7;
}
.slm-single-content table tbody tr td:first-child,
.slm-page-content table tbody tr td:first-child {
    background: var(--slm-accent-bg);
    font-weight: 500;
    color: #2a2a2a;
}
.slm-single-content table tbody tr:hover td,
.slm-page-content table tbody tr:hover td {
    background: #fafafa;
}
.slm-single-content table tbody tr:hover td:first-child,
.slm-page-content table tbody tr:hover td:first-child {
    background: #fae9ed;
}

/* ------------------------------------------------------------------
   Button (.slm-button or .button)
------------------------------------------------------------------ */
.slm-button,
.slm-single-content .wp-block-button .wp-block-button__link,
.slm-page-content .wp-block-button .wp-block-button__link {
    display: inline-block;
    background: var(--slm-main);
    color: #fff;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 4px;
    border: 2px solid var(--slm-main);
    text-align: center;
    transition: opacity 0.2s;
}
.slm-button:hover { opacity: 0.85; color: #fff; }
.slm-button-outline {
    background: #fff;
    color: var(--slm-main);
    border: 2px solid var(--slm-main);
}
.slm-button-outline:hover { background: var(--slm-accent-bg); color: var(--slm-main); }

/* ------------------------------------------------------------------
   Figure / Images
------------------------------------------------------------------ */
.slm-single-content figure,
.slm-page-content figure {
    margin: 0 0 16px;
}
.slm-single-content figcaption,
.slm-page-content figcaption {
    font-size: 12px;
    color: var(--slm-text-muted);
    text-align: center;
    margin-top: 6px;
}

/* HR */
.slm-single-content hr,
.slm-page-content hr {
    border: none;
    border-top: 1px solid var(--slm-border);
    margin: 18px 0;
}

/* ------------------------------------------------------------------
   Single / Page
------------------------------------------------------------------ */
.slm-single,
.slm-page {
    margin-bottom: 30px;
}
.slm-single-meta,
.slm-post-meta {
    font-size: 12px;
    color: var(--slm-text-muted);
    margin-bottom: 18px;
}
.slm-single-meta time:not(:last-child) {
    margin-right: 14px;
}
.slm-single-thumb {
    margin-bottom: 20px;
}
.slm-single-terms {
    margin-top: 24px;
    padding-top: 14px;
    border-top: 1px solid var(--slm-border);
    font-size: 13px;
    color: var(--slm-text-muted);
}
.slm-single-terms a {
    color: var(--slm-link);
    text-decoration: none;
}

/* ------------------------------------------------------------------
   Post List (Archive / Index)
------------------------------------------------------------------ */
.slm-archive-header {
    margin-bottom: 22px;
}
.slm-archive-desc {
    font-size: 14px;
    color: var(--slm-text-muted);
}
.slm-post-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.slm-post-card {
    display: flex;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid var(--slm-border);
}
.slm-post-card:first-child { padding-top: 0; }
.slm-post-thumb {
    flex: 0 0 160px;
}
.slm-post-thumb img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    display: block;
}
.slm-post-body {
    flex: 1;
    min-width: 0;
}
.slm-post-title {
    font-size: 17px;
    font-weight: 500;
    margin: 0 0 6px;
    line-height: 1.5;
}
.slm-post-title a {
    color: var(--slm-text);
    text-decoration: none;
}
.slm-post-title a:hover {
    color: var(--slm-main);
}
.slm-post-excerpt {
    font-size: 13px;
    color: #555;
    line-height: 1.7;
}
.slm-post-excerpt p { margin: 0; }

/* ------------------------------------------------------------------
   Pagination
------------------------------------------------------------------ */
.slm-pagination {
    margin: 30px 0 10px;
    text-align: center;
}
.slm-pagination .nav-links {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}
.slm-pagination .page-numbers {
    display: inline-block;
    padding: 7px 13px;
    border: 1px solid var(--slm-border);
    color: var(--slm-link);
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    background: #fff;
}
.slm-pagination .page-numbers.current {
    background: var(--slm-main);
    color: #fff;
    border-color: var(--slm-main);
}
.slm-pagination .page-numbers:hover:not(.current) {
    background: var(--slm-accent-bg);
}

/* ------------------------------------------------------------------
   Search Form
------------------------------------------------------------------ */
.slm-searchform {
    display: flex;
    gap: 0;
    max-width: 400px;
    margin: 18px 0;
}
.slm-search-input {
    flex: 1;
    padding: 9px 12px;
    border: 1px solid #ccc;
    font-size: 14px;
    border-right: none;
    outline: none;
}
.slm-search-input:focus { border-color: var(--slm-main); }
.slm-search-button {
    padding: 9px 18px;
    background: var(--slm-main);
    color: #fff;
    border: 1px solid var(--slm-main);
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}
.slm-search-button:hover { opacity: 0.9; }
.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
}

/* ------------------------------------------------------------------
   404
------------------------------------------------------------------ */
.slm-404 {
    text-align: center;
    padding: 30px 0;
}
.slm-404-title {
    font-size: 22px;
    font-weight: 500;
    color: var(--slm-main);
    margin: 0 0 16px;
}

/* ------------------------------------------------------------------
   Footer
------------------------------------------------------------------ */
.slm-footer {
    background: var(--slm-footer-bg);
    border-top: 1px solid var(--slm-border);
    color: var(--slm-footer-text);
    padding: 22px 28px 16px;
}
.slm-footer a {
    color: var(--slm-link);
    text-decoration: none;
}
.slm-footer a:hover { text-decoration: underline; }
.slm-footer-widgets {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 20px;
    font-size: 12px;
}
.slm-footer-widgets .widget-title {
    font-size: 13px;
    font-weight: 500;
    color: var(--slm-main);
    border-bottom: 1px solid var(--slm-border);
    padding-bottom: 5px;
    margin: 0 0 8px;
}
.slm-footer-widgets ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.slm-footer-widgets ul li {
    padding: 3px 0;
    border-bottom: 1px dotted var(--slm-border);
}
.slm-footer-nav-list {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 16px;
    font-size: 12px;
}
.slm-copyright {
    text-align: center;
    font-size: 11px;
    color: var(--slm-footer-text);
    border-top: 1px solid var(--slm-border);
    padding-top: 12px;
    margin-top: 6px;
}

/* ------------------------------------------------------------------
   WP Standard Classes
------------------------------------------------------------------ */
.alignleft { float: left; margin: 0 16px 12px 0; }
.alignright { float: right; margin: 0 0 12px 16px; }
.aligncenter { display: block; margin: 0 auto 12px; }
.alignwide { max-width: 100%; }
.alignfull { max-width: 100%; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 12px; color: var(--slm-text-muted); text-align: center; margin-top: 6px; }
.sticky { display: block; }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.gallery-caption { font-size: 11px; color: var(--slm-text-muted); }

/* ------------------------------------------------------------------
   Comments
------------------------------------------------------------------ */
.comments-area {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--slm-border);
}
.comments-title {
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 16px;
}
.comment-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}
.comment-list .comment {
    padding: 14px 0;
    border-bottom: 1px solid var(--slm-border);
}

/* ------------------------------------------------------------------
   Responsive
------------------------------------------------------------------ */
@media (max-width: 768px) {
    body { font-size: 15px; line-height: 1.8; }
    .slm-wrapper { border: none; }
    .slm-header { padding: 18px 16px 14px; }
    .slm-site-title { font-size: 19px; }
    .slm-nav-list { display: flex; flex-wrap: wrap; }
    .slm-nav-list li { flex: 1 1 50%; }
    .slm-nav-list li a {
        padding: 11px 14px;
        font-size: 13px;
        border-right: 1px solid rgba(255, 255, 255, 0.25) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    }
    .slm-nav-list li:nth-child(2n) a { border-right: none !important; }
    .slm-main-inner { padding: 18px 16px 30px; }
    .slm-single-title, .slm-page-title, .slm-archive-title { font-size: 21px; }
    .slm-single-content h2, .slm-page-content h2 { font-size: 18px; }
    .slm-single-content h3, .slm-page-content h3 { font-size: 16px; }
    .slm-post-card { flex-direction: column; gap: 10px; }
    .slm-post-thumb { flex: 0 0 auto; }
    .slm-post-thumb img { width: 100%; height: auto; max-height: 200px; }
    .slm-footer { padding: 18px 16px 14px; }
    .slm-footer-widgets { grid-template-columns: 1fr; gap: 16px; }
    .slm-single-content table, .slm-page-content table { font-size: 13px; }
    .slm-single-content table th, .slm-page-content table th,
    .slm-single-content table td, .slm-page-content table td { padding: 7px 9px; }
}

@media (max-width: 480px) {
    .slm-nav-list li { flex: 1 1 100%; }
    .slm-nav-list li a { border-right: none !important; }
}

/* ====================================================================
   Front Page (front-page.php)
   ==================================================================== */

.slm-fp { display: block; }

/* ヒーローセクション */
.slm-fp-hero {
    background: linear-gradient(135deg, var(--slm-main) 0%, #8d1834 100%);
    padding: 48px 28px;
    text-align: center;
    color: #fff;
    margin: 0 -28px 0;
}
.slm-fp-hero-inner {
    max-width: 600px;
    margin: 0 auto;
}
.slm-fp-hero-catchcopy {
    color: #fff;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.5;
    margin: 0 0 14px;
}
.slm-fp-hero-subtext {
    font-size: 14px;
    line-height: 1.85;
    opacity: 0.95;
    margin: 0 0 24px;
    color: #fff;
}
.slm-fp-hero-ctas {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.slm-fp-cta {
    display: inline-block;
    padding: 11px 28px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
    transition: opacity 0.2s;
}
.slm-fp-cta:hover { opacity: 0.85; }
.slm-fp-cta-primary {
    background: #fff;
    color: var(--slm-main) !important;
}
.slm-fp-cta-secondary {
    background: transparent;
    color: #fff !important;
    border: 1px solid #fff;
}

/* セクション共通 */
.slm-fp-section {
    padding: 36px 0 30px;
    border-bottom: 1px solid var(--slm-border);
}
.slm-fp-section:last-child { border-bottom: none; }
.slm-fp-section-header {
    text-align: center;
    margin-bottom: 22px;
}
.slm-fp-section-header-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    text-align: left;
}
.slm-fp-section-title {
    color: var(--slm-main);
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 4px;
}
.slm-fp-section-subtitle {
    color: #999;
    font-size: 11px;
    letter-spacing: 1.5px;
}
.slm-fp-section-more {
    font-size: 13px;
    color: var(--slm-link);
    text-decoration: none;
}
.slm-fp-section-more:hover { text-decoration: underline; }

/* カテゴリーセクション */
.slm-fp-cat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.slm-fp-cat-card {
    background: #fff;
    border: 1px solid var(--slm-border);
    border-radius: 4px;
    padding: 18px 10px;
    text-align: center;
    text-decoration: none !important;
    color: inherit;
    transition: all 0.2s;
}
.slm-fp-cat-card:hover {
    border-color: var(--slm-main);
    transform: translateY(-2px);
}
.slm-fp-cat-name {
    font-size: 13px;
    font-weight: 500;
    color: #2a2a2a;
    margin-bottom: 4px;
}
.slm-fp-cat-count {
    font-size: 11px;
    color: #999;
}

/* 注目記事 */
.slm-fp-pickup-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.slm-fp-pickup-card {
    border: 0.5px solid var(--slm-border);
    border-radius: 4px;
    overflow: hidden;
    text-decoration: none !important;
    color: inherit;
    background: #fff;
    transition: all 0.2s;
}
.slm-fp-pickup-card:hover {
    border-color: var(--slm-main);
    transform: translateY(-2px);
}
.slm-fp-pickup-thumb {
    aspect-ratio: 16/9;
    background: var(--slm-accent-bg);
    overflow: hidden;
}
.slm-fp-pickup-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.slm-fp-pickup-thumb-empty { background: var(--slm-accent-bg); }
.slm-fp-pickup-body { padding: 12px 14px; }
.slm-fp-pickup-cat {
    display: inline-block;
    background: var(--slm-main);
    color: #fff;
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 2px;
}
.slm-fp-pickup-title {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    margin: 8px 0 6px;
    color: #2a2a2a;
}
.slm-fp-pickup-date {
    font-size: 11px;
    color: #999;
}

/* 新着記事 */
.slm-fp-recent-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 16px;
}
.slm-fp-recent-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    text-decoration: none !important;
    color: inherit;
    padding: 8px;
    border-radius: 4px;
    transition: background 0.2s;
    min-width: 0;
}
.slm-fp-recent-item:hover { background: var(--slm-accent-bg); }
.slm-fp-recent-thumb {
    width: 90px;
    min-width: 90px;
    aspect-ratio: 16/9;
    background: var(--slm-accent-bg);
    border-radius: 4px;
    overflow: hidden;
}
.slm-fp-recent-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.slm-fp-recent-thumb-empty { background: var(--slm-accent-bg); }
.slm-fp-recent-body { flex: 1; min-width: 0; }
.slm-fp-recent-cat {
    display: inline-block;
    background: var(--slm-accent-bg);
    color: var(--slm-main);
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 2px;
    font-weight: 500;
}
.slm-fp-recent-title {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    margin: 6px 0 4px;
    color: #2a2a2a;
}
.slm-fp-recent-date {
    font-size: 11px;
    color: #999;
}

/* 自由コンテンツ */
.slm-fp-free-content,
.slm-fp-about-content {
    font-size: 14px;
    line-height: 1.85;
    color: #2a2a2a;
}
.slm-fp-free-content p,
.slm-fp-about-content p {
    margin: 0 0 12px;
}
.slm-fp-free-content p:last-child,
.slm-fp-about-content p:last-child { margin-bottom: 0; }

/* レスポンシブ */
@media (max-width: 600px) {
    .slm-fp-hero { padding: 36px 20px; }
    .slm-fp-hero-catchcopy { font-size: 22px; }
    .slm-fp-cat-grid { grid-template-columns: repeat(2, 1fr); }
    .slm-fp-pickup-grid { grid-template-columns: 1fr; }
    .slm-fp-recent-list { grid-template-columns: 1fr; }
    .slm-fp-recent-thumb { width: 90px; min-width: 90px; }
}
