/*
Theme Name: KIDS PLUS ヘルプセンター
Theme URI: https://help.kidsplus.me
Description: V5.0.0 specification.md 準拠。Hero全幅・通知バナー5px・サイドバーis-active・白・紅梅色・12px角丸・薄いシャドウ。
Author: KIDS PLUS
Version: 5.0.0
License: GNU General Public License v2 or later
*/

/* ==========================================================================
   CSS変数（全ページ白ベース・紅梅色アクセント・モダン業務ツール風）
   ========================================================================== */
   :root {
    --kp-red: #E61F53;
    --kp-red-hover: #c41a47;
    --kp-dark: #000000;
    --kp-bg: #FFFFFF;
    --kp-white: #FFFFFF;
    --kp-accent: #E61F53;
    --kp-border: #e8e8e8;
    --kp-text: #000000;
    --kp-text-muted: #555555;
    --kp-font-size-base: 16px;
    --kp-btn-min-size: 44px;
    --kp-radius: 12px;
    --kp-radius-sm: 10px;
    --kp-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    --kp-shadow-lg: 0 4px 24px rgba(0, 0, 0, 0.1);
    --kp-max-width: 1200px;
    --kp-font-family: "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
  }
  
  /* ベース（モバイル可読性・横揺れ防止） */
  body,
  .kp-hero,
  .kp-search-form,
  .kp-card-grid,
  .kp-category-card,
  .kp-sidebar-menu,
  .kp-btn-contact,
  .kp-content-area,
  .kp-related-articles {
    max-width: 100%;
    box-sizing: border-box;
  }
  
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  
  body {
    font-family: var(--kp-font-family);
    font-size: var(--kp-font-size-base);
    line-height: 1.6;
    color: var(--kp-text);
    background-color: #FFFFFF;
    margin: 0;
  }
  
  main {
    background: #FFFFFF;
  }
  
  /* ==========================================================================
     .kp-hero（検索窓付きヒーローエリア）
     固定ページのHTMLブロックで <section class="kp-hero">...</section> として使用
     ========================================================================== */
  .kp-hero {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
    margin-bottom: 3rem;
    padding: 2.5rem 1.25rem 3rem;
    border-radius: 0;
    box-sizing: border-box;
    background: linear-gradient(180deg, var(--kp-red) 0%, var(--kp-red-hover) 100%);
    color: var(--kp-white);
    text-align: center;
  }
  
  .kp-hero__title {
    margin: 0 0 0.75rem;
    font-family: var(--kp-font-family);
    font-size: clamp(1.25rem, 4vw, 1.75rem);
    font-weight: 700;
    letter-spacing: 0.04em;
  }
  
  .kp-hero__lead {
    margin: 0 0 1.5rem;
    font-size: var(--kp-font-size-base);
    opacity: 0.95;
  }
  
  .kp-hero .kp-search-form {
    max-width: 700px;
    margin: 0 auto;
    width: 100%;
  }
  
  /* スリム Hero（カテゴリ・検索結果等・enスケジューラ風スマート高さ・強制極限スリム） */
  .kp-hero--slim {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
    min-height: auto !important;
    margin-bottom: 2.5rem;
    background: #E61F53;
    color: var(--kp-white);
    text-align: left;
  }
  
  .kp-hero--slim .kp-search-box,
  .kp-hero--slim .kp-search-form {
    display: none;
  }
  
  .kp-hero--slim .kp-page__section {
    max-width: var(--kp-max-width);
    margin: 0 auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  
  .kp-hero--slim .kp-hero__title {
    font-size: 1.25rem !important;
    text-align: left !important;
    margin: 0 !important;
    font-weight: 700;
    letter-spacing: 0.02em;
  }
  
  /* ==========================================================================
     .kp-notice-banner（既知の問題・メッセージ形式・記事がある場合のみ表示）
     Hero 直後。白背景・紅梅色左ボーダー・12px角丸・薄いシャドウ・2rem余白
     ========================================================================== */
  .kp-notice-banner {
    max-width: var(--kp-max-width);
    margin: 2rem auto;
    padding: 0;
    background: #FFFFFF;
    border-left: 5px solid #E61F53;
    border-radius: 12px;
    box-shadow: var(--kp-shadow);
    overflow: hidden;
  }
  
  .kp-notice-banner__inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    min-height: var(--kp-btn-min-size);
    font-size: var(--kp-font-size-base);
    font-family: var(--kp-font-family);
  }
  
  .kp-notice-banner__icon {
    flex-shrink: 0;
    font-size: 1.25rem;
  }
  
  .kp-notice-banner__label {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--kp-text);
  }
  
  .kp-notice-banner__link {
    color: #000000;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s, text-decoration 0.2s;
  }
  
  .kp-notice-banner__link:hover {
    color: #E61F53;
    text-decoration: underline;
  }
  
  /* ==========================================================================
     .kp-banner-important（レガシー・未使用時は削除可）
     ========================================================================== */
  .kp-banner-important {
    width: 100%;
    max-width: 100%;
    padding: 1rem 1.25rem;
    background: var(--kp-red);
    color: var(--kp-white);
  }
  
  .kp-banner-important__inner {
    max-width: var(--kp-max-width);
    margin: 0 auto;
  }
  
  .kp-banner-important__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.95;
    margin-bottom: 0.25rem;
  }
  
  .kp-banner-important__title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 700;
  }
  
  .kp-banner-important__title a {
    color: var(--kp-white);
    text-decoration: none;
  }
  
  .kp-banner-important__title a:hover {
    text-decoration: underline;
  }
  
  .kp-banner-important__excerpt {
    margin: 0;
    font-size: 0.875rem;
    opacity: 0.9;
    line-height: 1.4;
  }
  
  /* ==========================================================================
     .kp-known-issues-list（既知の問題・記事リスト・薄い紅梅背景）
     記事が無い場合はセクション非表示。電球アイコン＋紅梅色テキスト
     ========================================================================== */
  .kp-known-issues-list {
    width: 100%;
    max-width: 100%;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    background: rgba(230, 31, 83, 0.12);
    border-radius: var(--kp-radius);
  }
  
  .kp-known-issues-list__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--kp-dark);
  }
  
  .kp-known-issues-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .kp-known-issues-list__items li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(230, 31, 83, 0.2);
  }
  
  .kp-known-issues-list__items li:last-child {
    border-bottom: none;
  }
  
  .kp-known-issues-list__link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 12px 0;
    min-height: var(--kp-btn-min-size);
    font-size: var(--kp-font-size-base);
    color: var(--kp-red);
    text-decoration: none;
  }
  
  .kp-known-issues-list__link:hover {
    text-decoration: underline;
  }
  
  .kp-known-issues-list__icon {
    flex-shrink: 0;
    font-size: 1.25rem;
  }
  
  .kp-known-issues-list__text {
    flex: 1;
  }
  
  /* ==========================================================================
     .kp-category-hero（カテゴリー一覧ページ用ヒーロー・紅梅色）
     ========================================================================== */
  .kp-category-hero {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
    padding: 2rem 1.25rem;
    background: var(--kp-red);
    color: var(--kp-white);
  }
  
  .kp-category-hero__inner {
    max-width: var(--kp-max-width);
    margin: 0 auto;
  }
  
  .kp-category-hero__title {
    margin: 0;
    font-size: clamp(1.25rem, 4vw, 1.75rem);
    font-weight: 700;
  }
  
  /* ==========================================================================
     .kp-archive-list（カテゴリーアーカイブの記事一覧）
     ========================================================================== */
  .kp-archive-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .kp-archive-list li {
    margin: 0;
    border-bottom: 1px solid var(--kp-border);
  }
  
  .kp-archive-list li:last-child {
    border-bottom: none;
  }
  
  .kp-archive-list__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    min-height: var(--kp-btn-min-size);
    background: var(--kp-white);
    border-radius: var(--kp-radius);
    margin-bottom: 0.5rem;
    text-decoration: none;
    color: var(--kp-text);
    font-size: var(--kp-font-size-base);
    font-family: var(--kp-font-family);
    box-shadow: var(--kp-shadow);
    border: 1px solid var(--kp-border);
    transition: box-shadow 0.2s, border-color 0.2s, color 0.2s;
  }
  
  .kp-archive-list__item:hover {
    box-shadow: var(--kp-shadow-lg);
    border-color: rgba(230, 31, 83, 0.3);
    color: var(--kp-red);
  }
  
  .kp-archive-list__title {
    flex: 1;
    min-width: 0;
    font-weight: 600;
  }
  
  .kp-archive-list__date {
    flex-shrink: 0;
    font-size: 0.875rem;
    color: var(--kp-text-muted);
  }
  
  .kp-page--category .kp-page__section {
    padding-top: 0;
  }
  
  /* 2カラム：左サイドバー + 右メイン（中央配置・上部余白確保） */
  .kp-category-body {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2rem;
    max-width: var(--kp-max-width);
    margin: 0 auto;
    margin-top: 3rem;
    padding: 1.5rem 1.25rem 2rem;
    align-items: start;
  }
  
  @media (max-width: 768px) {
    .kp-category-body {
      grid-template-columns: 1fr;
      grid-template-areas: "main" "sidebar";
    }
    .kp-category-main { grid-area: main; }
    .category-sidebar { grid-area: sidebar; }
  }
  
  /* サイドバー：白カード・薄いシャドウ・業務カテゴリのみ（enスケジューラ風垂直リスト） */
  .category-sidebar,
  .kp-sidebar {
    position: sticky;
    top: 1rem;
  }
  
  .kp-sidebar {
    width: 260px !important;
  }
  
  .sidebar-inner {
    background: var(--kp-white);
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    border: 1px solid var(--kp-border);
    padding: 1.25rem;
    font-family: var(--kp-font-family);
  }
  
  .sidebar-title {
    margin: 0 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--kp-border);
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--kp-dark);
  }
  
  /* side-menu：カテゴリリスト（enスケジューラ風・フォント縮小・折り返し防止） */
  .side-menu {
    background: transparent;
    color: #333;
    font-family: var(--kp-font-family);
    font-size: 0.875rem;
  }
  
  .side-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .side-menu > ul > li {
    margin: 0 0 2px;
  }
  
  .side-menu > ul > li:last-child {
    margin-bottom: 0;
  }
  
  .side-menu > ul > li > a {
    display: block;
    padding: 0.5rem 0.75rem 0.5rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.35;
    font-weight: 400;
    color: #333;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
    border-radius: 4px;
  }
  
  /* カテゴリリストのテキストと余白（強制上書き・読みやすくゆとり確保） */
  .kp-category-menu ul li a {
    font-size: 1.05rem !important;
    padding: 0.8rem 1rem 0.8rem 1.2rem !important;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    line-height: 1.5;
    white-space: nowrap;
    transition: all 0.2s ease;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 400;
    color: #333;
    text-decoration: none;
    border-left: 3px solid transparent;
    border-radius: 4px;
  }
  
  .kp-category-menu ul li a:hover {
    background-color: rgba(230, 31, 83, 0.05);
    padding-left: 1.5rem !important;
    color: var(--kp-red);
  }
  
  .kp-category-menu .kp-cat-icon {
    flex-shrink: 0;
    margin-right: 0.25rem;
  }
  
  /* アクティブなカテゴリ：背景・左ボーダー・テキスト紅梅色・太字 */
  .side-menu > ul > li.is-active {
    background: rgba(230, 31, 83, 0.06);
    border-left: 4px solid #E61F53;
    border-radius: 4px;
    margin-left: 0;
  }
  
  .side-menu > ul > li.is-active > a {
    color: #E61F53;
    font-weight: 700;
    border-left-color: transparent;
  }
  
  .sidebar-bottom-links {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--kp-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  
  .sidebar-bottom-links .btn-top {
    display: block;
    padding: 12px 1rem;
    font-size: var(--kp-font-size-base);
    font-weight: 600;
    color: var(--kp-red);
    text-decoration: none;
    border-radius: var(--kp-radius-sm);
    background: rgba(230, 31, 83, 0.08);
    min-height: var(--kp-btn-min-size);
    text-align: center;
    transition: background 0.2s;
  }
  
  .sidebar-bottom-links .btn-top:hover {
    background: rgba(230, 31, 83, 0.15);
    color: var(--kp-red);
  }
  
  .kp-category-main .kp-page__section {
    padding-left: 0;
    padding-right: 0;
  }
  
  .kp-page--category .nav-links,
  .kp-page--search .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
    font-size: var(--kp-font-size-base);
  }
  
  .kp-page--category .nav-links a,
  .kp-page--category .nav-links .current,
  .kp-page--search .nav-links a,
  .kp-page--search .nav-links .current {
    min-width: var(--kp-btn-min-size);
    min-height: var(--kp-btn-min-size);
    padding: 0.5rem 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--kp-radius-sm);
    text-decoration: none;
    color: var(--kp-red);
    background: rgba(230, 31, 83, 0.1);
  }
  
  .kp-page--category .nav-links a:hover,
  .kp-page--search .nav-links a:hover {
    background: rgba(230, 31, 83, 0.2);
  }
  
  .kp-page--category .nav-links .current,
  .kp-page--search .nav-links .current {
    font-weight: 700;
    background: var(--kp-red);
    color: var(--kp-white);
  }
  
  /* ==========================================================================
     .category-grid / .category-card（カテゴリー選択専用ポータルUI）
     子カテゴリのみ表示。紅梅色・角丸・シャドウ・スマホ1列 / PC3列
     ========================================================================== */
  .category-grid {
    width: 100%;
    max-width: var(--kp-max-width);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
  }
  
  @media (max-width: 768px) {
    .category-grid {
      grid-template-columns: 1fr;
      padding-left: 0;
      padding-right: 0;
    }
  }
  
  .category-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 100px;
    padding: 1.5rem;
    background: #FFFFFF;
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    border: 1px solid var(--kp-border);
    text-decoration: none;
    color: var(--kp-text);
    transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
  }
  
  .category-card:hover {
    border-color: var(--kp-red);
    box-shadow: var(--kp-shadow-lg);
    transform: translateY(-3px);
  }
  
  .kp-category-card__header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    width: 100%;
  }
  
  .category-card .kp-category-card__icon {
    flex-shrink: 0;
    font-size: 1.2rem;
    line-height: 1;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(230, 31, 83, 0.08);
  }
  
  .kp-category-card__title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--kp-dark);
    line-height: 1.35;
  }
  
  .category-card .card-link-text {
    margin-top: 0.75rem;
    font-size: var(--kp-font-size-base);
    color: var(--kp-red);
    font-weight: 600;
  }
  
  .category-card:hover .card-link-text {
    text-decoration: underline;
  }
  
  /* 資料室（Document Room） */
  .kp-document-header {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--kp-border);
  }
  
  .kp-document-header__title {
    margin: 0 0 0.5rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--kp-dark);
  }
  
  .kp-document-header__lead {
    margin: 0;
    font-size: var(--kp-font-size-base);
    color: var(--kp-text-muted);
  }
  
  .kp-document-content {
    font-size: var(--kp-font-size-base);
    line-height: 1.7;
  }
  
  .kp-document-content h2 { margin-top: 1.5rem; margin-bottom: 0.75rem; font-size: 1.25rem; }
  .kp-document-content h3 { margin-top: 1.25rem; margin-bottom: 0.5rem; font-size: 1.125rem; }
  .kp-document-content ul, .kp-document-content ol { padding-left: 1.5rem; margin: 1rem 0; }
  .kp-document-content p { margin: 1rem 0; }
  
  /* ==========================================================================
     .kp-search-form（ピル型検索窓・image_27ebe7 準拠）
     ========================================================================== */
  .kp-search-form {
    width: 100%;
  }
  
  /* 検索窓の外枠（ピル型） */
  .kp-search-container {
    display: flex;
    align-items: center;
    background: #FFFFFF;
    border-radius: 50px !important;
    padding: 5px 10px 5px 20px;
    max-width: 700px;
    margin: 0 auto;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  }
  
  /* 虫眼鏡アイコン */
  .kp-search-icon {
    color: #999;
    font-size: 1.2rem;
    margin-right: 10px;
    flex-shrink: 0;
  }
  
  /* 入力エリア */
  .kp-search-container input[type="text"],
  .kp-search-container .kp-search-input {
    flex: 1;
    min-width: 0;
    border: none !important;
    outline: none !important;
    padding: 10px 0;
    font-size: 1rem;
    font-family: var(--kp-font-family);
    background: transparent;
  }
  
  .kp-search-container input::placeholder {
    color: #999;
  }
  
  /* 検索ボタン（枠内配置） */
  .kp-search-btn {
    background-color: #4E66A2;
    color: #FFFFFF;
    border: none;
    border-radius: 50px;
    padding: 10px 30px;
    font-size: 1rem;
    font-family: var(--kp-font-family);
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.2s;
    flex-shrink: 0;
  }
  
  .kp-search-btn:hover,
  .kp-search-btn:focus {
    background-color: #3d5282;
  }
  
  /* ==========================================================================
     検索結果ページ（enスケジューラ風・max-width 1200px 中央配置）
     ========================================================================== */
  .kp-page--search .kp-search-content {
    max-width: 1200px;
    margin: 0 auto;
    margin-top: 3rem;
    padding: 2rem 1.25rem;
  }
  
  .kp-search-header {
    margin-top: 2rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #E0E0E0;
  }
  
  .kp-search-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--kp-text);
  }
  
  /* AI 回答エリア（検索結果上部・仕様書 6.1, 6.2 デザインレギュレーション） */
  .kp-ai-section {
    background: rgba(230, 31, 83, 0.04);
    border-left: 5px solid #E61F53;
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    margin-bottom: 1.5rem;
    overflow: hidden;
  }
  
  .kp-ai-section__header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 1.25rem 0.5rem;
  }
  
  .kp-ai-section__icon {
    flex-shrink: 0;
    font-size: 1.25rem;
  }
  
  .kp-ai-section__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--kp-text);
  }
  
  .kp-ai-section__content {
    padding: 0 1.25rem 20px;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--kp-text);
    min-height: 100px;
  }
  
  .kp-ai-section__content p {
    margin: 0 0 1rem;
  }
  
  .kp-ai-section__content p:last-child {
    margin-bottom: 0;
  }
  
  .kp-ai-section__content ul li,
  .kp-ai-section__content ol li {
    margin-bottom: 10px;
  }
  
  .kp-ai-section__loading {
    color: var(--kp-text-muted);
    font-style: normal;
  }
  
  .kp-ai-section__footer {
    padding: 0.75rem 1.25rem 1rem;
    border-top: 1px solid rgba(230, 31, 83, 0.12);
  }
  
  .kp-ai-section__footer p {
    margin: 0;
    font-size: 0.875rem;
    color: var(--kp-text-muted);
    line-height: 1.5;
  }
  
  .kp-ai-feedback {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(230, 31, 83, 0.1);
  }
  
  .kp-ai-feedback__text {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    color: var(--kp-text-muted);
  }
  
  .kp-ai-feedback__buttons {
    display: flex;
    gap: 0.75rem;
    align-items: center;
  }
  
  .kp-ai-feedback__btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #e8e8e8;
    font-size: 1.25rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.15s;
  }
  
  .kp-ai-feedback__btn:hover {
    background: rgba(230, 31, 83, 0.15);
    transform: scale(1.05);
  }
  
  .kp-ai-feedback__btn:focus {
    outline: 2px solid var(--kp-red);
    outline-offset: 2px;
  }
  
  /* AI 回答「考え中」ローディング（薄いピンク背景・紅梅色アクセント） */
  .ai-loading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    background: rgba(230, 31, 83, 0.06);
    border-radius: var(--kp-radius);
    min-height: 60px;
  }
  
  .ai-loading__spinner,
  .ai-loading .spinner {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: 3px solid rgba(230, 31, 83, 0.2);
    border-top-color: var(--kp-red);
    border-radius: 50%;
    animation: ai-spin 0.8s linear infinite;
  }
  
  .ai-loading__text {
    margin: 0;
    font-size: var(--kp-font-size-base);
    color: var(--kp-text);
    font-family: var(--kp-font-family);
  }
  
  .ai-loading__dots {
    display: inline-block;
    animation: ai-dots 1.2s ease-in-out infinite;
  }
  
  @keyframes ai-spin {
    to { transform: rotate(360deg); }
  }
  
  @keyframes ai-dots {
    0%, 100% { opacity: 0.35; }
    50% { opacity: 1; }
  }
  
  /* 白カード内リスト */
  .kp-result-card {
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    margin: 2rem 0;
    overflow: hidden;
    width: 100%;
  }
  
  .kp-search-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .kp-search-list li {
    margin: 0;
    border-bottom: 1px solid #EEE;
  }
  
  .kp-search-list li:last-child {
    border-bottom: none;
  }
  
  .kp-search-list__link {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 1.25rem 1.25rem;
    color: var(--kp-text);
    text-decoration: none;
    transition: background 0.2s ease;
  }
  
  .kp-search-list__link:hover {
    background: #F9F9F9;
  }
  
  .kp-search-list__icon {
    flex-shrink: 0;
    font-size: 1.125rem;
    margin-right: 0.5rem;
  }
  
  .kp-search-list__title {
    flex: 1;
    min-width: 0;
  }
  
  .kp-search-list__arrow {
    flex-shrink: 0;
    font-size: 1.25rem;
    color: #999;
  }
  
  /* 検索結果 0 件（中央配置・親しみやすい案内） */
  .kp-no-results {
    text-align: center;
    margin: 0;
    padding: 4rem 1.25rem;
  }
  
  .kp-no-results__icon {
    display: block;
    font-size: 3rem;
    line-height: 1;
    margin-bottom: 1rem;
    animation: kp-sparkle 2s ease-in-out infinite;
  }
  
  @keyframes kp-sparkle {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
    50% { transform: scale(1.15) rotate(5deg); opacity: 0.95; }
  }
  
  .kp-no-results__main {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--kp-text);
  }
  
  .kp-no-results__sub {
    margin: 0 0 1.5rem;
    font-size: var(--kp-font-size-base);
    color: var(--kp-text-muted);
  }
  
  .kp-btn-back {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    padding: 0.6rem 1.25rem;
    font-size: var(--kp-font-size-base);
    font-family: var(--kp-font-family);
    color: var(--kp-text);
    background: #FFFFFF;
    border: 1px solid #DDD;
    border-radius: 50px;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease;
  }
  
  .kp-btn-back:hover,
  .kp-btn-back:focus {
    border-color: #E61F53;
    color: #E61F53;
  }
  
  /* ==========================================================================
     .kp-card-grid（カテゴリ選択用グリッド）
     3カラム、スマホ時1カラム
     ========================================================================== */
  .kp-card-grid {
    width: 100%;
    max-width: var(--kp-max-width);
    margin: 0 auto;
    padding: 1.5rem 1.25rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    list-style: none;
    margin-left: 0;
    margin-right: 0;
  }
  
  @media (max-width: 768px) {
    .kp-card-grid {
      grid-template-columns: 1fr;
      padding-left: 1rem;
      padding-right: 1rem;
    }
  }
  
  /* ==========================================================================
     .kp-category-card（アイコン・タイトル・説明のカード）
     固定ページで <div class="kp-category-card">...</div> として使用
     ========================================================================== */
  .kp-category-card {
    width: 100%;
    max-width: 100%;
    padding: 1.5rem;
    background: var(--kp-white);
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    border: 1px solid var(--kp-border);
    text-decoration: none;
    color: var(--kp-text);
    display: block;
    transition: box-shadow 0.2s, transform 0.2s;
  }
  
  .kp-category-card:hover {
    box-shadow: var(--kp-shadow-lg);
    transform: translateY(-2px);
  }
  
  .kp-category-card__icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    background: var(--kp-accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
  
  .kp-category-card__title {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    font-family: var(--kp-font-family);
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--kp-dark);
  }
  
  .kp-category-card__desc {
    margin: 0;
    font-size: var(--kp-font-size-base);
    color: var(--kp-text-muted);
    line-height: 1.5;
  }
  
  /* ==========================================================================
     .kp-sidebar-menu（左側ナビゲーション・参考サイト風）
     ========================================================================== */
  .kp-sidebar-menu {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--kp-white);
    border-radius: var(--kp-radius);
    border: 1px solid var(--kp-border);
    box-shadow: var(--kp-shadow);
  }
  
  .kp-sidebar-menu__title {
    padding: 1rem 1.25rem;
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--kp-dark);
    border-bottom: 1px solid var(--kp-border);
  }
  
  .kp-sidebar-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .kp-sidebar-menu li {
    margin: 0;
    border-bottom: 1px solid var(--kp-border);
  }
  
  .kp-sidebar-menu li:last-child {
    border-bottom: none;
  }
  
  .kp-sidebar-menu a {
    display: block;
    padding: 14px 1.25rem;
    font-size: var(--kp-font-size-base);
    color: var(--kp-text);
    text-decoration: none;
    min-height: var(--kp-btn-min-size);
    display: flex;
    align-items: center;
  }
  
  .kp-sidebar-menu a:hover,
  .kp-sidebar-menu a:focus {
    background: var(--kp-bg);
    color: var(--kp-red);
  }
  
  .kp-sidebar-menu .current-menu-item a {
    font-weight: 600;
    color: var(--kp-red);
    background: rgba(230, 31, 83, 0.08);
  }
  
  /* ==========================================================================
     .kp-btn-contact（お問い合わせボタン・画面フロー呼び出し用）
     固定ページで <a href="/contact/" class="kp-btn-contact">...</a> として使用
     ========================================================================== */
  .kp-btn-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--kp-btn-min-size);
    min-height: var(--kp-btn-min-size);
    padding: 14px 28px;
    font-size: var(--kp-font-size-base);
    font-weight: 600;
    color: var(--kp-white);
    background: var(--kp-red);
    border: 2px solid var(--kp-red);
    border-radius: var(--kp-radius);
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(230, 31, 83, 0.25);
    transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
  }
  
  .kp-btn-contact:hover,
  .kp-btn-contact:focus {
    background: var(--kp-red-hover);
    border-color: var(--kp-red-hover);
    box-shadow: 0 4px 14px rgba(230, 31, 83, 0.35);
    color: var(--kp-white);
  }
  
  /* ==========================================================================
     ポータル用（index.php）エントリーカード
     ========================================================================== */
  .kp-portal {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #ffffff;
  }
  
  body.kp-portal-page {
    background: #f8f8f8;
  }
  
  .kp-portal__header {
    padding: 1.25rem 1.5rem;
    background: var(--kp-white);
    border-bottom: 1px solid var(--kp-border);
    text-align: center;
  }
  
  .kp-portal__hero {
    background: linear-gradient(135deg, rgba(230, 31, 83, 0.06) 0%, rgba(248, 248, 248) 50%, rgba(230, 31, 83, 0.04) 100%);
    padding: 3rem 1.5rem;
    text-align: center;
  }
  
  .kp-portal__hero-title {
    margin: 0 0 0.5rem;
    font-family: var(--kp-font-family);
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 700;
    color: var(--kp-dark);
    letter-spacing: 0.02em;
    line-height: 1.3;
  }
  
  .kp-portal__hero-lead {
    margin: 0;
    font-size: clamp(0.9375rem, 2vw, 1.0625rem);
    color: var(--kp-text-muted);
    line-height: 1.5;
  }
  
  .kp-portal__logo,
  .kp-portal__logo-wrap .custom-logo,
  .kp-portal__logo-link img {
    max-width: 200px;
    max-height: 48px;
    height: auto;
    width: auto;
    display: inline-block;
    vertical-align: middle;
    object-fit: contain;
  }
  
  .kp-portal__body {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    padding: 4rem 1.5rem 5rem;
    max-width: var(--kp-max-width);
    margin: 0 auto;
    width: 100%;
  }
  
  @media (max-width: 768px) {
    .kp-portal__body {
      flex-direction: column;
      padding: 3rem 1rem 4rem;
    }
  }
  
  .kp-portal__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 380px;
    min-height: 220px;
    padding: 2.25rem 1.75rem;
    background: var(--kp-white);
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    border: 2px solid var(--kp-border);
    text-decoration: none;
    color: var(--kp-text);
    transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s;
  }
  
  .kp-portal__card:hover {
    box-shadow: 0 8px 28px rgba(230, 31, 83, 0.12);
    border-color: var(--kp-red);
    transform: translateY(-4px);
    color: var(--kp-text);
  }
  
  .kp-portal__card--facility:hover .kp-portal__card-title { color: var(--kp-red); }
  .kp-portal__card--family:hover .kp-portal__card-title { color: var(--kp-red); }
  
  .kp-portal__card-icon {
    width: 56px;
    min-width: 56px;
    height: 56px;
    margin-bottom: 1.25rem;
    background: rgba(230, 31, 83, 0.08);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    flex-shrink: 0;
  }
  
  .kp-portal__card-title {
    margin: 0 0 0.5rem;
    font-family: var(--kp-font-family);
    font-size: clamp(1.125rem, 3vw, 1.5rem);
    font-weight: 700;
    color: var(--kp-dark);
    text-align: center;
    line-height: 1.35;
  }
  
  .kp-portal__card-desc {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--kp-text-muted);
    text-align: center;
    line-height: 1.55;
  }
  
  /* ==========================================================================
     ターゲット別トップ（page-facility / page-family）レイアウト
     ========================================================================== */
  .kp-page {
    width: 100%;
    max-width: 100%;
    padding: 0;
    padding-bottom: 2.5rem;
    background: #FFFFFF;
    overflow-x: hidden;
  }
  
  .kp-page__section {
    max-width: var(--kp-max-width);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  
  .kp-ai-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1rem;
    background: rgba(230, 31, 83, 0.12);
    color: var(--kp-red);
    border-radius: var(--kp-radius-sm);
    font-size: var(--kp-font-size-base);
    font-weight: 600;
    margin-bottom: 1rem;
  }
  
  .kp-page__section-title {
    margin: 0 0 1rem;
    font-size: 1.25rem;
    font-family: var(--kp-font-family);
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--kp-dark);
  }
  
  /* ==========================================================================
     single.php：2カラム（サイドバー + 本文）
     ========================================================================== */
  .kp-single {
    width: 100%;
    max-width: 100%;
    padding: 1rem;
  }
  
  .kp-single__inner {
    max-width: var(--kp-max-width);
    margin: 0 auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2rem;
    align-items: start;
  }
  
  @media (max-width: 768px) {
    .kp-single__inner {
      grid-template-columns: 1fr;
    }
  }
  
  .kp-single__sidebar {
    position: sticky;
    top: 1rem;
  }
  
  .kp-single__content {
    min-width: 0;
    background: var(--kp-white);
    padding: 2rem;
    border-radius: var(--kp-radius);
    box-shadow: var(--kp-shadow);
    border: 1px solid var(--kp-border);
  }
  
  /* 本文：Salesforce同期HTML（span等）を崩さず、リストを整える */
  .kp-single__content h1,
  .kp-single__content h2,
  .kp-single__content h3 {
    color: var(--kp-dark);
    font-family: var(--kp-font-family);
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    letter-spacing: 0.02em;
  }
  
  .kp-single__content h1 { font-size: 1.5rem; }
  .kp-single__content h2 { font-size: 1.25rem; }
  .kp-single__content h3 { font-size: 1.125rem; }
  
  .kp-single__content ol,
  .kp-single__content ul {
    padding-left: 1.5rem;
    margin: 1rem 0;
  }
  
  .kp-single__content li {
    margin-bottom: 0.5rem;
  }
  
  .kp-single__content p {
    margin: 1rem 0;
  }
  
  .kp-single__content span,
  .kp-single__content strong,
  .kp-single__content em {
    /* 同期HTMLタグを崩さない（スタイル継承のためプロパティなし） */
    font: inherit;
  }
  
  /* 関連記事リスト（AI生成用エリア） */
  .kp-related-articles {
    width: 100%;
    max-width: 100%;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--kp-border);
  }
  
  .kp-related-articles__title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--kp-dark);
  }
  
  .kp-related-articles__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .kp-related-articles__list li {
    margin-bottom: 0.75rem;
    padding-left: 0;
  }
  
  .kp-related-articles__list a {
    font-size: var(--kp-font-size-base);
    color: var(--kp-red);
    text-decoration: none;
  }
  
  .kp-related-articles__list a:hover {
    text-decoration: underline;
  }
  
  /* ==========================================================================
     Salesforce Embedded Flow 埋め込み領域（スマホで見切れないよう調整）
     ========================================================================== */
  #salesforce-flow-container,
  #salesforce-flow-container-family,
  .kp-flow-embed {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    min-height: 400px;
  }
  
  .kp-flow-embed iframe {
    max-width: 100%;
    min-height: 400px;
  }
  
  /* ==========================================================================
     サイトヘッダー（header.php 用）
     ========================================================================== */
  .kp-site-header {
    width: 100%;
    max-width: 100%;
    background: var(--kp-red);
    color: var(--kp-white);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  
  .kp-site-header__logo-link {
    display: inline-block;
  }
  
  .kp-site-header__logo,
  .kp-site-header .custom-logo,
  .kp-site-header__logo-link img {
    max-height: 48px;
    width: auto;
    height: auto;
    vertical-align: middle;
    object-fit: contain;
  }
  
  .kp-site-header__nav a {
    color: var(--kp-white);
    text-decoration: none;
    font-size: var(--kp-font-size-base);
    padding: 10px 14px;
    min-height: var(--kp-btn-min-size);
    display: inline-flex;
    align-items: center;
  }
  
  .kp-site-header__nav a:hover {
    opacity: 0.9;
  }
  
  /* ==========================================================================
     フッター
     ========================================================================== */
  .kp-site-footer {
    width: 100%;
    max-width: 100%;
    padding: 1.5rem;
    background: var(--kp-dark);
    color: var(--kp-white);
    text-align: center;
    font-size: var(--kp-font-size-base);
    margin-top: 2rem;
  }
  
  .kp-site-footer a {
    color: var(--kp-red);
    text-decoration: none;
  }
  
  .kp-site-footer a:hover {
    text-decoration: underline;
  }
  
  /* ==========================================================================
     固定ページ用 HTML パーツ（コピー用サンプル）
     管理画面「固定ページ」の HTML ブロックに貼り付けて使用する。
     ========================================================================== */
  
  /*
  --- 検索ヒーローパーツ ---
  <section class="kp-hero">
    <h1 class="kp-hero__title">何かお困りですか？</h1>
    <p class="kp-hero__lead">キーワードでナレッジを検索できます</p>
    <form class="kp-search-form" role="search" method="get" action="/">
      <div class="kp-search-container">
        <span class="kp-search-icon" aria-hidden="true">🔍</span>
        <input type="text" name="s" class="kp-search-input" placeholder="検索キーワードを入力（例：予約 変更）" aria-label="検索">
        <button type="submit" class="kp-search-btn">検索</button>
      </div>
      <input type="hidden" name="cat" value="3">
    </form>
  </section>
  
  --- カテゴリカードパーツ（1枚の例） ---
  <div class="kp-category-card">
    <div class="kp-category-card__icon" aria-hidden="true">📋</div>
    <h3 class="kp-category-card__title">カテゴリ名</h3>
    <p class="kp-category-card__desc">説明文をここに記載します。</p>
  </div>
  
  --- お問い合わせバナー ---
  <a href="/facility/contact/" class="kp-btn-contact">お問い合わせはこちら</a>
  （保護者向けの場合は href="/family/contact/" に変更）
  */
  
  /* ==========================================================================
     既知の問題バナー（強制表示・最終適用）
     ========================================================================== */
  .kp-notice-banner {
    display: block !important;
    margin: 2rem auto !important;
    max-width: var(--kp-max-width);
    padding: 1.25rem;
    background: #FFFFFF;
    border-radius: 12px;
    border-left: 5px solid #E61F53;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  }
  
  .kp-notice-banner__inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }
  
  .kp-notice-banner__label {
    font-weight: 700;
    color: #E61F53;
  }
  
  .kp-notice-banner__link {
    color: #333;
    text-decoration: none;
    font-weight: 500;
  }
  
  .kp-notice-banner__link:hover {
    text-decoration: underline;
    color: #E61F53;
  }
  /* ==========================================================================
     資料室・マニュアル：共通およびスマートグリッド
     ========================================================================== */
     .kp-page--document, .kp-page--manual { padding-top: 2rem; }
     .kp-document-header { margin-bottom: 3rem; border-bottom: 2px solid var(--kp-border); padding-bottom: 1rem; }
     .kp-document-header__title { font-size: 1.75rem; font-weight: 700; color: var(--kp-dark); }
     
     /* セクション見出し (■スタイル) */
     .kp-document-content h2, .kp-manual-container h2 {
         font-size: 1.125rem; font-weight: 700; color: var(--kp-dark);
         margin: 2.5rem 0 1rem; display: flex; align-items: center;
     }
     .kp-document-content h2::before, .kp-manual-container h2::before {
         content: "■"; color: var(--kp-red); margin-right: 0.5rem;
     }
     
     /* 誘導バナー（資料室からマニュアルへ） */
     .kp-manual-banner {
         background: rgba(230, 31, 83, 0.04); border: 2px dashed var(--kp-red);
         border-radius: 12px; padding: 2rem; margin: 2rem 0;
         display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
     }
     .kp-manual-banner h3 { margin: 0; color: var(--kp-red); font-size: 1.25rem; }
     
     /* スマートグリッド（4カラム対応） */
     .kp-manual-grid--smart {
         display: grid;
         grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
         gap: 1rem; margin-top: 1.5rem;
     }
     
     .kp-manual-card--smart {
         background: #FFFFFF; border: 1px solid var(--kp-border);
         border-radius: 8px; padding: 1rem; display: flex; flex-direction: column;
         height: 100%; transition: all 0.2s ease;
     }
     .kp-manual-card--smart:hover {
         border-color: var(--kp-red); box-shadow: 0 4px 10px rgba(230, 31, 83, 0.08);
         transform: translateY(-2px);
     }
     
     .kp-manual-card__header { display: flex; align-items: flex-start; gap: 0.4rem; margin-bottom: 0.5rem; line-height: 1.3; }
     .kp-manual-card__num { color: var(--kp-red); font-weight: 800; font-size: 0.9rem; flex-shrink: 0; }
     .kp-manual-card__title { font-size: 0.9rem; font-weight: 700; color: var(--kp-dark); }
     .kp-manual-card__title a { color: inherit; text-decoration: none; }
     .kp-manual-card__title a:hover { color: var(--kp-red); text-decoration: underline; }
     
     .kp-manual-card__list { list-style: none; padding: 0; margin: 0; font-size: 0.8rem; color: var(--kp-text-muted); }
     .kp-manual-card__list li { padding-left: 0.8rem; position: relative; margin-bottom: 0.15rem; }
     .kp-manual-card__list li::before { content: "・"; position: absolute; left: 0; }
     
     /* Newバッジ */
     .kp-badge-new {
         display: inline-block; background: #fff200; color: #333;
         font-size: 0.75rem; font-weight: 700; padding: 1px 4px;
         margin-left: 0.5rem; border-radius: 2px; vertical-align: middle;
     }
  
  /* ==========================================================================
     最優先オーバーライド：ヘッダー強制縮小・カテゴリリスト適正化・コンテンツ余白
     他の設定をすべて無視して上書き（enスケジューラ風・image_276d00 準拠）
     ========================================================================== */
  
  /* ヘッダー全体（赤い帯）の強制縮小 */
  .kp-hero--slim {
    height: 70px !important;
    min-height: 0 !important;
    max-height: 70px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  
  /* タイトルの配置 */
  .kp-hero--slim .kp-hero__title {
    font-size: 1.3rem !important;
    margin: 0 0 0 2rem !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 70px !important;
  }
  
  /* 検索窓は下層ページでは絶対に非表示 */
  .kp-hero--slim .kp-search-box,
  .kp-hero--slim .kp-search-form {
    display: none !important;
  }
  
  /* 本文内の画像が枠からはみ出さないように強制 */
  .kp-entry-content img,
  .kp-page-content img,
  article img {
    max-width: 100% !important;
    height: auto !important;
    display: block;
    margin: 1rem 0;
  }
  
  /* サイドバー自体の幅 */
  .kp-sidebar {
    width: 260px !important;
    overflow: visible !important;
  }
  
  /* カテゴリメニューのサイズ適正化（1行に収める・スマートなゆとり） */
  .kp-category-menu ul li a {
    font-size: 0.95rem !important;
    padding: 0.75rem 1rem 0.75rem 1.2rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    white-space: nowrap !important;
  }
  
  /* ホバー時に視覚的なフィードバック */
  .kp-category-menu ul li a:hover {
    background-color: rgba(230, 31, 83, 0.08) !important;
    color: var(--kp-red) !important;
  }
  
  /* 全体の余白バランス（スリムヘッダー直下のゆとり） */
  .kp-page-layout,
  .kp-category-body {
    margin-top: 2rem !important;
  }
  
  /* 記事内画像のレスポンシブ対応（全画面で枠からはみ出さない） */
  img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 4px;
  }
  
  /* モバイル用トグルボタン（PCでは非表示） */
  .kp-mobile-menu-toggle {
    display: none;
  }
  
  /* ==========================================================================
     スマートフォン表示：余白削減・ハンバーガーカテゴリメニュー
     ========================================================================== */
  @media (max-width: 768px) {
    /* 記事、検索結果、固定ページを包むすべての「箱」を透明化（ver0.5 モバイル囲い・影撤廃） */
    .kp-result-card,
    .kp-entry-content-wrapper,
    .kp-page-content,
    article,
    section,
    .kp-main-content,
    .kp-ai-section {
      background: transparent !important;
      border: none !important;
      box-shadow: none !important;
      padding: 0 !important;
      margin: 0 !important;
    }
  
    /* AI 回答エリア：ver0.5 フラット化・左右余白 1.25rem 固定・背景白に同化 */
    .kp-ai-section__header {
      padding-left: 1.25rem !important;
      padding-right: 1.25rem !important;
    }
  
    .kp-ai-section__content {
      padding-left: 1.25rem !important;
      padding-right: 1.25rem !important;
    }
  
    .kp-ai-section__footer {
      padding-left: 1.25rem !important;
      padding-right: 1.25rem !important;
      border-top: none !important;
    }
  
    .kp-ai-section {
      margin-bottom: 1rem !important;
    }
  
    /* サイト全体の背景を白に統一して、箱との境界線をなくす */
    body {
      background-color: #ffffff !important;
    }
  
    /* コンテンツの土台となるセクションの余白を最小限（15px）に */
    .kp-page__section {
      padding-left: 15px !important;
      padding-right: 15px !important;
      max-width: 100% !important;
    }
  
    /* 記事タイトルと本文の横幅を合わせる */
    .kp-hero--slim .kp-hero__title,
    .kp-entry-content,
    .kp-page-content {
      width: 100% !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
    }
  
    /* 記事本文の横幅を画面いっぱいに広げる */
    .kp-entry-content,
    .kp-page-content,
    .kp-single__content,
    .kp-single__body {
      padding-left: 0 !important;
      padding-right: 0 !important;
      font-size: 1rem !important;
      line-height: 1.6 !important;
    }
  
    /* 本文テキストの調整 */
    .kp-entry-content p,
    .kp-page-content p {
      font-size: 1rem !important;
      line-height: 1.7 !important;
      margin-bottom: 1.5rem !important;
    }
  
    /* デフォルトでカテゴリリストを隠す */
    .kp-sidebar {
      display: none !important;
      width: 100% !important;
      background: #fff;
      border: 1px solid #eee;
      margin-bottom: 1rem;
      border-radius: 8px;
      overflow: visible !important;
    }
  
    /* アクティブ時のみ表示 */
    .kp-sidebar.is-active {
      display: block !important;
    }
  
    /* カテゴリ選択ボタン（トグル）のフラット化 */
    .kp-mobile-menu-toggle {
      display: block !important;
      width: 100%;
      margin-left: 0 !important;
      margin-right: 0 !important;
      border-radius: 0 !important;
      border-left: none !important;
      border-right: none !important;
      background: #fcfcfc !important;
      border-top: 1px solid #eee;
      border-bottom: 1px solid #eee;
      color: #666 !important;
      font-size: 0.9rem !important;
      padding: 10px !important;
      margin-bottom: 2rem !important;
      text-align: center;
      font-weight: bold;
      cursor: pointer;
      font-family: var(--kp-font-family);
    }
  
    .kp-mobile-menu-toggle:hover {
      background: #f5f5f5 !important;
    }
  }
  
  /* --- AI起動ボタン（検索結果ページ） --- */
  .kp-ai-trigger-wrapper {
    text-align: center;
    margin: 1.5rem 0;
  }
  
  .kp-ai-trigger-wrapper .kp-ai-trigger-text {
    margin-bottom: 0.75rem;
    font-size: 0.95rem;
    color: #555;
  }
  
  .kp-ai-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(180deg, #ff4b5c 0%, #d63031 100%);
    color: #fff;
    font-weight: bold;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  
  .kp-ai-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(214, 48, 49, 0.4);
  }
  
  .kp-ai-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(214, 48, 49, 0.3);
  }

/* ==========================================================================
   スマートフォン（max-width: 768px）— 既知の問題バナー・記事一覧リスト
   ※ 既存クラス名のみ。末尾記述で優先。
   ========================================================================== */
@media screen and (max-width: 768px) {
  /* 1. 既知の問題 */
  .kp-notice-banner {
    background: #fff9e6;
    border-left: 5px solid #ffcc00;
  }

  .kp-notice-banner__inner {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    gap: 0.45rem 0.65rem;
    min-height: 0;
    padding: 0.95rem 1rem 1rem 1rem;
  }

  .kp-notice-banner__icon {
    flex: 0 0 auto;
    line-height: 1.2;
  }

  .kp-notice-banner__label {
    flex: 1 1 12rem;
    min-width: 0;
    line-height: 1.4;
  }

  .kp-notice-banner__link {
    flex: 1 1 100%;
    min-width: 0;
    line-height: 1.45;
  }

  /* 2. 記事一覧：フラット＋区切り線＋右矢印（::after） */
  .kp-archive-list li {
    border-bottom: none;
  }

  .kp-archive-list__item {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.6rem;
    min-height: 0;
    margin: 0;
    margin-bottom: 0;
    padding: 0.95rem 0.2rem 0.95rem 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    border-top: 0;
    border-bottom: 1px solid #eee;
    color: var(--kp-text);
  }

  .kp-archive-list li:first-child .kp-archive-list__item {
    border-top: 1px solid #eee;
  }

  .kp-archive-list__item:hover {
    box-shadow: none;
    border-color: #eee;
    color: var(--kp-text);
    background: rgba(0, 0, 0, 0.02);
  }

  .kp-archive-list__item::after {
    content: ">";
    flex: 0 0 auto;
    display: block;
    margin-left: 0.25rem;
    color: #b0b0b0;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
  }

  .kp-archive-list__title {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .kp-archive-list__date {
    flex: 0 0 auto;
    max-width: 5rem;
    white-space: nowrap;
    color: #888;
    font-size: 0.78rem;
  }
}