@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイル
************************************/


/* ==========================================
   政治家プロフィール 最終整理版
========================================== */

/* Cocoon側の余白調整 */
.single-politician .content,
.single-politician .main,
.single-politician article{
  padding:0 !important;
  margin:0 !important;
}

/* ページ全体 */
.politician-profile{
  position:relative;
  max-width:720px;
  margin:0 auto;
  padding:10px 10px 40px;
  background:#fff;
  overflow:hidden;
}

.politician-profile::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);

  width:120%;
  height:620px;

  background:#005BBB;

  border-bottom-left-radius:50% 80px;
  border-bottom-right-radius:50% 80px;

  z-index:0;
}

.politician-profile > *{
  position:relative;
  z-index:1;
}

/* メインカード・各セクション */
.profile-main-card,
.profile-section{
  background:#fff;
  border-radius:10px;
  padding:22px 18px;
  margin-bottom:16px;

  border:1px solid #e5eaf2;
  box-shadow:0 2px 8px rgba(0,0,0,.07);
}

/* 上部ビジュアル */
.profile-image-wrap{
  width:100%;
  text-align:center;
}

.profile-visual{
  position:relative;
  width:300px;
  margin:0 auto;
}

/* ===============================
   出馬中バナー
=============================== */

.running-banner{
  width:100%;
  margin:0 0 14px;
  padding:12px 16px;
  box-sizing:border-box;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  background:#c62828;
  color:#fff;
  border-radius:12px;

  text-align:center;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}

.running-banner strong{
  display:block;
  font-size:22px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.05em;
}

.running-banner span{
  display:block;
  margin-top:4px;
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  opacity:.95;
  overflow-wrap:anywhere;
}

@media screen and (max-width:480px){
  .running-banner{
    margin-bottom:10px;
    padding:10px 14px;
  }

  .running-banner strong{
    font-size:20px;
  }

  .running-banner span{
    font-size:12px;
  }
}

/* プロフィール画像 3:4 */
.profile-visual .profile-image,
.profile-image{
  width:165px;
  aspect-ratio:3 / 4;
  height:auto;
  object-fit:cover;
  object-position:center top;
  display:block;
  margin:0 auto;
  border-radius:10px;
  background:#f2f2f2;
}

/* 当選・落選・辞退スタンプ */
.election-stamp{
  position:absolute;
  right:45px;
  bottom:-8px;
  z-index:30;

  width:92px;
  height:auto;

  pointer-events:none;
}

@media screen and (max-width:480px){
  .election-stamp{
    right:48px;
    width:84px;
  }
}

/* 政党ロゴ */
.profile-visual .party-logo{
  position:absolute;
  top:140px;
  right:0;
  width:60px;
  height:60px;
  object-fit:contain;
}

.party-logo-placeholder{
  position:absolute;
  top:140px;
  right:0;
  width:60px;
  height:60px;
}

/* 名前・ふりがな・年齢 */
.profile-name{
  margin:18px 0 4px;
  text-align:center;
  font-size:34px;
  line-height:1.1;
  font-weight:900;
  color:#111;
}

.profile-sub{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:6px;
  font-size:15px;
  color:#666;
}

/* プロフィールタグ */
.profile-tags{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
  margin-bottom:28px;
}

.profile-tags span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 12px;
  border-radius:8px;
  font-size:14px;
  font-weight:700;
  border:1px solid;
  box-shadow:none;
}

.profile-tags .tag-status{
  background:#f5f9ff;
  color:#005BBB;
  border-color:#b7d8f2;
}

.profile-tags .tag-election{
  background:#fff8e1;
  color:#9a6a00;
  border-color:#f0d27a;
}

.profile-tags .tag-career{
  background:#f6f0ff;
  color:#6b3fa0;
  border-color:#d7c2f0;
}

/* 現在の役職 */
.profile-position{
  margin-top:22px;
  padding:16px;
  border-left:4px solid #005BBB;
  background:#f6f9ff;
  border-radius:8px;
}

.profile-position .label{
  font-size:13px;
  color:#005BBB;
  font-weight:700;
  margin-bottom:5px;
}

.profile-position .value{
  font-size:20px;
  line-height:1.5;
  font-weight:700;
  color:#222;
}

/* 4マス */
.profile-info-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
  margin-top:16px;
  margin-bottom:18px;
}

.profile-info-grid > .info-box{
  min-height:100px;
  height:auto;
  padding:10px 8px;
  box-sizing:border-box;

  display:flex;
  flex-direction:column;
  align-items:flex-start;

  background:#fff;
  border:1px solid #dce6f2;
  border-radius:10px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}

.info-label,
.info-value{
  display:block;
  width:100%;
}

.info-label{
  text-align:left;
  font-size:13px;
  color:#005BBB;
  font-weight:700;
  margin-bottom:6px;
}

.info-value{
  text-align:center;
  align-self:center;
  font-size:17px;
  font-weight:800;
  color:#222;
  line-height:1.4;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* セクション本文 */
.profile-section h2{
  margin:0 0 12px;
  font-size:20px;
  color:#003A9B;
}

.profile-section p {
    text-indent: 1em;
    line-height: 2;
    margin: 0 0 0.8em;
}

.profile-section p{
  margin:0;
  line-height:1.8;
  font-size:15px;
  color:#333;
}

/* タブ */
.profile-tabs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  margin-bottom:14px;
}

.tab-button{
  border:none;
  border-radius:10px;
  padding:8px 12px;
  background:#eef5ff;
  color:#005BBB;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}

.tab-button.active{
  background:#005BBB;
  color:#fff;
}

.tab-content{
  display:none;
  background:#f8fbff;
  border-radius:12px;
  padding:14px;
}

.tab-content.active{
  display:block;
}

/* 年表・実績・問題 */
.timeline-item,
.achievement-item,
.issue-item{
  display:grid;
  grid-template-columns:60px minmax(0,1fr);
  column-gap:10px;
  align-items:start;
  margin-bottom:12px;
}

.timeline-item strong,
.achievement-item strong,
.issue-item strong{
  white-space:nowrap;
  color:#005BBB;
}

.timeline-item span,
.achievement-item span,
.issue-item span{
  line-height:1.8;
}

.issue-item a{
  grid-column:2;
  width:max-content;
  margin-top:6px;
}

/* 政策・考え方：テーマ｜説明 */
.policy-list{
  display:grid;
  gap:0;
}

.policy-item{
  padding:12px 2px 14px;
  border-bottom:1px solid #dce6f2;
}

.policy-item:first-child{
  padding-top:2px;
}

.policy-item:last-child{
  padding-bottom:2px;
  border-bottom:0;
}

.policy-topic{
  display:block;
  margin:0;
  color:#003A9B;
  font-size:16px;
  font-weight:800;
  line-height:1.5;
}

.policy-description{
  margin:5px 0 0 1em !important;
  color:#444 !important;
  font-size:15px !important;
  line-height:1.75 !important;
  text-indent:0 !important;
}

@media screen and (max-width:480px){
  .policy-item{
    padding:10px 0 12px;
  }

  .policy-topic{
    font-size:15px;
  }

  .policy-description{
    margin-left:.8em !important;
    font-size:14px !important;
  }
}

/* 公式リンク */
.official-links{
  display:grid;
  gap:10px;
}

.official-links a{
  display:block;
  text-align:center;
  padding:12px;
  border-radius:10px;
  background:#005BBB;
  color:#fff !important;
  text-decoration:none;
  font-weight:700;
}

/* 最終更新日 */
.profile-updated{
  text-align:center;
  font-size:12px;
  color:#777;
  margin-top:10px;
}

/* スマホ微調整 */
@media screen and (max-width:480px){

  .politician-profile{
    padding:8px 8px 36px;
  }

  .profile-main-card{
    padding:6px 12px 18px;
  }

  .profile-section{
    padding:12px 8px 20px;
  }

  .profile-visual{
    width:300px;
  }

  .profile-visual .profile-image,
  .profile-image{
    width:155px;
  }

  .profile-name{
    margin:10px 0 4px;
    font-size:34px;
  }

  .profile-tags{
    gap:6px;
    margin-top:10px;
    margin-bottom:14px;
  }

  .profile-tags span{
    padding:4px 10px;
  }

  .profile-position{
    margin-top:8px;
    margin-bottom:6px;
    padding:10px 12px;
  }

  .profile-position .value{
    font-size:18px;
  }

  .profile-info-grid{
    gap:6px;
    margin-bottom:16px;
  }

  .profile-info-grid > .info-box{
    min-height:70px;
    padding:8px 12px;
  }

  .info-label{
    align-self:flex-start;
    margin-bottom:4px;
    font-size:12px;
  }

  .info-value{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
  }

  .info-value.area-long{
    font-size:15px;
    line-height:1.45;
  }

  .timeline-item,
  .achievement-item,
  .issue-item{
    grid-template-columns:52px minmax(0,1fr);
    column-gap:8px;
  }
}

/* スマホ版ヘッダー：全ページで高さを統一 */
@media screen and (max-width:480px){

  body .header-container,
  body .header-container-in{
    height:56px !important;
    min-height:56px !important;
    max-height:56px !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  body .logo-header,
  body .site-name-text{
    margin:0 !important;
    padding:0 !important;
  }

  body .site-name-text{
    font-size:20px !important;
    line-height:1.2 !important;
  }
}

/* =====================
   TOPページ 3カード
===================== */

/* TOP検索カード調整 */
.search-card{
  width:100%;
  max-width:none;
  min-height:120px;
  padding:14px 4px;

  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;

  background:#fff;
  border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,.12);

  text-align:center;
  text-decoration:none;
  box-sizing:border-box;

  overflow:visible;
  -webkit-tap-highlight-color:transparent;

  border:2px solid transparent;
  transition:.25s;
}

.search-icon{
  font-size:32px;
  color:#005BBB;
  margin-bottom:8px;
  line-height:1;
}

.search-title{
  font-size:20px;
  font-weight:800;
  color:#222;
  line-height:1.2;
}

.search-subtitle{
  margin-top:4px;
  font-size:13px;
  color:#777;
  line-height:1.2;
}

.search-card.selected{
  border:2px solid #003A9B;
  box-shadow:
    0 0 0 3px #fff,
    0 3px 10px rgba(0,0,0,.18);
}

@media(max-width:480px){
  .top-menu{
    gap:8px !important;
    padding:0 8px;
  }

  .top-menu .wp-block-column{
    margin:0 !important;
  }

  .search-card{
    min-height:118px;
  }
}

/* 選択後：TOPカード縮小 */
.search-card.compact{
  min-height:45px;
  padding:4px 4px;
  transition:.25s;
}

/* アイコン消す */
.search-card.compact .search-icon{
  display:none;
}

/* から探す消す */
.search-card.compact .search-subtitle{
  display:none;
}

/* 文字だけ */
.search-card.compact .search-title{
  font-size:17px;
  font-weight:800;
}

/* TOP 選挙区パネル */
.top-panel{
  display:none;
  margin:28px 8px 0;
  padding:16px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.10);
}

.top-panel.active{
  display:block;
}

.top-panel h2{
  margin:0 0 14px;
  font-size:20px;
  color:#003A9B;
}

.region-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.region-grid button{
  padding:12px 8px;
  border:1px solid #dce6f2;
  border-radius:10px;
  background:#fff;
  color:#222;
  font-weight:800;
}

.region-grid button.wide{
  grid-column:1 / -1;
}


.search-card.selected{
  position:relative;
  overflow:visible;
}

.search-card.selected::after{
  content:"";
  position:absolute;
  transition:.25s;

  left:50%;
  transform:translateX(-50%);
  bottom:-9px;

  width:0;
  height:0;

  border-left:16px solid transparent;
  border-right:16px solid transparent;
  border-top:16px solid #fff;

  filter:drop-shadow(0 4px 2px rgba(0,0,0,.25));

  z-index:20;
}

.search-card.selected::before{
  content:"";
  position:absolute;
  transition:.25s;

  left:50%;
  bottom:-17px;

  width:14px;
  height:14px;

  border-right:3px solid #fff;
  border-bottom:3px solid #fff;

  transform:translateX(-50%) rotate(45deg);

  z-index:20;
}


/* =====================
   地域パネル
===================== */

/* 地域・都道府県の表示切替 */
.area-view{
  display:none;
}

.area-view.active{
  display:block;
}


/* =====================
   政治家 検索結果ページ
===================== */

.politician-search-page{
  max-width:720px;
  margin:0 auto;
  padding:8px;
  background:#005BBB;
}

/* 曲線背景を無効化 */
.politician-search-page::before{
  display:none;
}

.search-results-wrap{
  background:#fff;
  border-radius:14px;
  padding:12px;
  box-shadow:0 3px 12px rgba(0,0,0,.12);
}

/* 名前・所属党・選挙区・都道府県の検索結果を同じ横幅にする */
.search .content,
.search .content-in,
.search .main,
.search #main,
.search article,
.search .entry-content,
.tax-party .content,
.tax-party .content-in,
.tax-party .main,
.tax-party #main,
.tax-party article,
.tax-party .entry-content,
.tax-area .content,
.tax-area .content-in,
.tax-area .main,
.tax-area #main,
.tax-area article,
.tax-area .entry-content,
.tax-prefecture .content,
.tax-prefecture .content-in,
.tax-prefecture .main,
.tax-prefecture #main,
.tax-prefecture article,
.tax-prefecture .entry-content{
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

.search-results-title{
  margin:0 0 14px;
  font-size:20px;
  color:#003A9B;
}

.politician-list{
  display:grid;
  gap:12px;
}

.politician-list-card{
  display:flex;
  gap:14px;
  align-items:center;

  padding:10px;
  background:#fff;
  border:1px solid #dce6f2;
  border-radius:12px;

  text-decoration:none;
  color:#222;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}

.politician-list-image{
  flex:0 0 92px;
}

.politician-list-image img{
  width:90px;
  aspect-ratio:3 / 4;
  object-fit:cover;
  border-radius:8px;
  background:#f2f2f2;
}

.politician-list-body{
  min-width:0;
  flex:1;
}

.politician-list-body h2{
  margin:0 0 8px;
  font-size:22px;
  line-height:1.3;
  color:#111;
  margin-bottom:4px;
}

.politician-list-party,
.politician-list-area{
  margin-top:4px;
  font-size:14px;
  color:#555;
}

.politician-list-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

.politician-list-meta span{
  padding:4px 8px;
  border-radius:7px;
  background:#f5f9ff;
  color:#005BBB;
  font-size:12px;
  font-weight:700;
}

.search-no-results{
  margin:0;
  color:#555;
}

/* ======================
   トップ検索窓
====================== */

/* TOP 政治家名検索 */
.top-name-search{
  position:relative !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 0 32px !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

.top-name-search__input{
  display:block !important;
  width:100% !important;
  height:64px !important;
  margin:0 !important;
  padding:0 68px 0 20px !important;
  box-sizing:border-box !important;

  background:#fff !important;
  border:1px solid #bfc6d0 !important;
  border-radius:12px !important;

  color:#222 !important;
  font-size:20px !important;
  outline:none !important;
}

.top-name-search__input::placeholder{
  color:#777;
}

.top-name-search__button{
  position:absolute !important;
  top:50% !important;
  right:10px !important;
  transform:translateY(-50%) !important;

  width:46px !important;
  height:46px !important;
  margin:0 !important;
  padding:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  background:transparent !important;
  border:0 !important;
  border-radius:10px !important;
  box-shadow:none !important;

  color:#005BBB !important;
  font-size:27px !important;
  line-height:1 !important;
}

.top-name-search__button:active{
  background:#eef5ff !important;
}

/* スマホ検索窓調整 */
@media screen and (max-width: 768px){

  .top-name-search__input{
    height:48px !important;
    font-size:18px !important;
    padding-left:18px !important;
    padding-right:54px !important;
  }

  .top-name-search__button{
    width:38px !important;
    height:38px !important;
    right:8px !important;
    font-size:24px !important;
  }

}


.area-detail-panel {
  width: 100%;
}

.area-detail-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  margin-bottom: 18px;
  padding: 0 18px;
  border-radius: 10px;
  background: #f5f5f5;
  box-sizing: border-box;
}

.area-detail-title {
  margin: 0;
  color: #005BBB;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
}

.area-detail-back {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #005BBB;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.area-detail-back:hover{
  color:#003A9B;
}

.area-detail-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.area-detail-button{
  display:flex;
  align-items:center;
  justify-content:center;

  min-width:0;
  min-height:48px;

  padding:6px 12px;

  border:1px solid #d5dce3;
  border-radius:10px;

  background:#fff;

  box-shadow:0 1px 3px rgba(0,0,0,.04);

  color:#222;

  font-size:16px;
  font-weight:700;

  line-height:1.3;

  text-align:center;
  text-decoration:none;

  box-sizing:border-box;
}

.area-detail-button-wide {
  grid-column: 1 / -1;
  justify-content: space-between;
  min-height:48px;
  padding-right: 22px;
  padding-left: 22px;
  color: #004a91;
}

.area-detail-arrow {
  margin-left: 12px;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
}

.area-detail-button:hover {
  border-color: #005bbb;
  background: #f4f8fd;
  color: #005bbb;
}

.area-detail-button:active {
  transform: scale(0.98);
}

.area-detail-back:hover {
  color: #005bbb;
}

@media screen and (max-width: 480px) {
  .area-detail-heading {
    min-height: 56px;
    padding: 0 18px;
    margin-bottom: 16px;
  }

  .area-detail-title {
    font-size: 20px;
  }

  .area-detail-back {
    font-size: 15px;
  }

  .area-detail-button {
    min-height:48px;
    font-size:15px;
    padding:6px 10px;
  }

  .area-detail-button-wide {
    min-height: 48px;
  }
}

/* 地方を押した後の上部グレー帯 */
#area-panel .area-view-header{
  display:flex;
  align-items:center;
  justify-content:space-between;

  width:100%;
  height:48px;
  min-height:48px;
  margin:0 0 14px;
  padding:0 14px;

  background:#f5f5f5;
  border-radius:8px;
  box-sizing:border-box;
}

/* 地域名・都道府県名 */
#area-panel .area-view-header h2{
  margin:0 !important;
  padding:0 !important;

  color:#003A9B;
  font-size:20px;
  font-weight:700;
  line-height:1.2;
}

/* 戻るボタン */
#area-panel .area-search-back{
  width:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;

  margin:0 !important;
  padding:0 !important;

  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;

  color:#555 !important;
  font-size:14px;
  font-weight:700;
  line-height:1.2;

  cursor:pointer;
}


/* 検索結果・プロフィールだけ余白調整 */
.search .content,
.search .main,
.search #main,
.single-politician .content,
.single-politician .main,
.single-politician #main{
  margin-top:0 !important;
  padding-top:0 !important;
}


/* =====================================
   トップページ：Cocoonの記事情報を非表示
===================================== */

.home .article-header,
.home .entry-title,
.home .eye-catch-wrap,
.home .post-date,
.home .date-tags,
.home .sns-share,
.home .sns-follow{
  display:none !important;
}

/* トップ本文の余白を調整 */
.home .entry-content{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* トップページ：記事ヘッダーだけ非表示 */
.home .article-header{
  display:none !important;
}

/* トップ本文の上余白だけ削除 */
.home .entry-content{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* =====================================
   トップ・選挙区・都道府県・所属党：
   ヘッダー下の灰色の隙間を消す
===================================== */

body.home #content,
body.tax-area #content,
body.tax-prefecture #content,
body.tax-party #content,

body.home .content,
body.tax-area .content,
body.tax-prefecture .content,
body.tax-party .content,

body.home .content-in,
body.tax-area .content-in,
body.tax-prefecture .content-in,
body.tax-party .content-in{
  margin-top:0 !important;
  padding-top:0 !important;
}

body.home .main,
body.tax-area .main,
body.tax-prefecture .main,
body.tax-party .main{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* トップページ：検索窓上の青い余白を戻す */
body.home .entry-content{
  padding-top:48px !important;
}

/* 検索窓自体の余白は維持 */
body.home .top-name-search{
  margin:0 0 32px !important;
}


/* ===============================
   その他：実装中表示
=============================== */

.other-coming-soon{
  padding:28px 16px;
  text-align:center;
}

.other-coming-soon-icon{
  margin-bottom:12px;
  color:#005BBB;
  font-size:34px;
  line-height:1;
}

#other-panel .other-coming-soon h2{
  margin:0 0 10px;
  color:#003A9B;
  font-size:21px;
  font-weight:800;
}

.other-coming-soon p{
  margin:0;
  color:#555;
  font-size:15px;
  line-height:1.7;
}

/* ===========================
   フッターメニュー
=========================== */

.menu-footer{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:10px !important;

  width:auto !important;
  max-width:320px;
  margin:20px auto !important;
  padding:0 24px !important;

  list-style:none;
  box-sizing:border-box;
}

.menu-footer li{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
}

.menu-footer li a{
  display:block;
  width:100%;
  padding:4px 0;

  color:#333;
  font-size:16px;
  line-height:1.5;
  text-align:left;
  text-decoration:none;

  white-space:nowrap;
}

/* フッターのサイト名とコピーライトは中央 */
.footer-bottom-logo,
.footer-copyright{
  text-align:center !important;
}

/* ==========================================
   固定ページ共通
========================================== */

/* Cocoon標準のタイトル・記事情報・パンくず・投稿者情報を非表示 */
body.page:not(.home) .article-header,
body.page:not(.home) .entry-title,
body.page:not(.home) .eye-catch-wrap,
body.page:not(.home) .date-tags,
body.page:not(.home) .post-date,
body.page:not(.home) .article-footer,
body.page:not(.home) .breadcrumb {
  display:none !important;
}

/* 固定ページの外側をサイトカラーで統一 */
body.page:not(.home) #container{
  background:#ffffff !important;
}

body.page:not(.home) #content{
  position:relative;
  overflow:hidden;
  background:#ffffff !important;
}

body.page:not(.home) #content::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:120%;
  height:420px;
  background:#005BBB;
  border-bottom-left-radius:50% 80px;
  border-bottom-right-radius:50% 80px;
  z-index:0;
}

body.page:not(.home) .content,
body.page:not(.home) .content-in,
body.page:not(.home) .main,
body.page:not(.home) #main,
body.page:not(.home) article,
body.page:not(.home) .entry-content{
  position:relative;
  z-index:1;
  margin-top:0 !important;
  padding-top:0 !important;
  background:transparent !important;
  border-top:0 !important;
  box-sizing:border-box;
}

/* 本文カード */
.page-card {
  width:calc(100% - 20px);
  max-width:720px;
  margin:24px auto;
  padding:24px;
  background:#fff;
  border-radius:18px;
  border:1px solid #e5eaf2;
  box-shadow:0 8px 24px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.05);
  box-sizing:border-box;
}

.page-header {
  margin-bottom:24px;
  text-align:center;
}

.page-header h1 {
  margin:0;
  color:#222;
  font-size:28px;
  line-height:1.4;
}

.content-card {
  margin-top:18px;
  padding:20px;
  background:#f7f9fc;
  border:1px solid #dfe7f1;
  border-radius:14px;
}

.content-title {
  margin:0 0 16px;
  padding-left:12px;
  border-left:5px solid #005BBB;
  color:#222;
  font-size:20px;
  line-height:1.4;
}

.content-body p,
.content-body li {
  color:#333;
  font-size:16px;
  line-height:1.9;
}

.content-body p {
  margin:0 0 14px;
}

.content-body p:last-child {
  margin-bottom:0;
}

.content-body ul {
  margin:14px 0 18px;
  padding-left:1.5em;
}

.content-body li {
  margin-bottom:6px;
}

.site-philosophy {
  padding:14px 16px;
  background:#fff;
  border-radius:10px;
  color:#005BBB !important;
  font-weight:700;
  text-align:center;
}

/* スマホ */
@media screen and (max-width:768px) {
  body.page:not(.home) .content,
  body.page:not(.home) .content-in,
  body.page:not(.home) .main,
  body.page:not(.home) #main,
  body.page:not(.home) article,
  body.page:not(.home) .entry-content {
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .page-card {
    width:calc(100% - 16px);
    margin:10px auto;
    padding:16px 12px;
    border-radius:15px;
  }

  .page-header h1 {
    font-size:24px;
  }

  .content-card {
    margin-top:14px;
    padding:16px 14px;
    border-radius:12px;
  }

  .content-title {
    font-size:18px;
  }

  .content-body p,
  .content-body li {
    font-size:15px;
    line-height:1.85;
  }
}
/* ==========================================
   所属党一覧：ふりがな順・行見出し
========================================== */
.tax-party .politician-kana-list{
  display:grid;
  gap:22px;
}

.tax-party .politician-kana-group{
  margin:0;
}

.tax-party .politician-kana-heading{
  margin:0 0 10px;
  padding:8px 12px;
  border-left:5px solid #005BBB;
  border-bottom:1px solid #dce6f2;
  background:#f5f9ff;
  color:#003A9B;
  font-size:19px;
  font-weight:800;
  line-height:1.3;
  border-radius:6px;
}

@media screen and (max-width:480px){
  .tax-party .politician-kana-list{
    gap:18px;
  }

  .tax-party .politician-kana-heading{
    margin-bottom:8px;
    padding:7px 10px;
    font-size:18px;
  }
}

/* PC版：検索結果・党一覧を中央配置 */
@media screen and (min-width: 769px){

  body.search .content,
  body.search .content-in,
  body.search .main,
  body.search #main,

  body.tax-party .content,
  body.tax-party .content-in,
  body.tax-party .main,
  body.tax-party #main,

  body.tax-area .content,
  body.tax-area .content-in,
  body.tax-area .main,
  body.tax-area #main,

  body.tax-prefecture .content,
  body.tax-prefecture .content-in,
  body.tax-prefecture .main,
  body.tax-prefecture #main{
    width:100% !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .politician-search-page{
    width:calc(100% - 32px);
    max-width:720px;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ==========================================
   議員一覧ページ
========================================== */
.politician-directory{width:calc(100% - 20px);max-width:760px;margin:24px auto;padding:22px 18px 32px;background:#fff;border:1px solid #e5eaf2;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.05);box-sizing:border-box}
.politician-directory-header{margin:0 0 20px;text-align:center}
.politician-directory-header h1{margin:0 0 6px;color:#222;font-size:28px;line-height:1.35}
.politician-directory-header p{margin:0;color:#66717d;font-size:14px;line-height:1.7}
.politician-directory-filter{display:grid;gap:10px;margin-bottom:14px;padding:14px;background:#f7f9fc;border:1px solid #dfe7f1;border-radius:14px}
.politician-filter-row{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px}
.politician-filter-label{color:#465463;font-size:13px;font-weight:800}
.politician-filter-buttons{display:flex;flex-wrap:wrap;gap:8px}
.politician-filter-chip{min-height:38px;margin:0;padding:7px 15px;border:1px solid #cfd9e4;border-radius:999px;background:#fff;color:#344454;font:inherit;font-size:14px;font-weight:800;line-height:1;cursor:pointer;box-shadow:none;transition:.18s}
.politician-filter-chip:hover{border-color:#005BBB;color:#005BBB}
.politician-filter-chip:active{transform:scale(.97)}
.politician-filter-chip.is-active{border-color:#005BBB;background:#005BBB;color:#fff}
.politician-directory-summary{margin:0 0 18px;color:#66717d;font-size:13px;font-weight:700;text-align:right}
.politician-directory-party{margin:0 0 30px}
.politician-directory-party:last-of-type{margin-bottom:0}
.politician-directory-party-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:0 2px 9px;border-bottom:3px solid #005BBB}
.politician-directory-party-heading h2{margin:0;color:#222;font-size:22px;line-height:1.35}
.politician-directory-party-heading span{color:#66717d;font-size:13px;font-weight:800}
.politician-directory-kana{margin:0 0 18px}
.politician-directory-kana h3{margin:0 0 10px;padding:8px 12px;border-left:5px solid #005BBB;border-bottom:1px solid #dce6f2;border-radius:6px;background:#f5f9ff;color:#003A9B;font-size:18px;font-weight:800;line-height:1.3}
.politician-directory-list{display:grid;gap:10px}
.politician-directory-card{position:relative;display:flex;align-items:center;gap:12px;min-width:0;padding:10px 36px 10px 10px;border:1px solid #dce6f2;border-radius:12px;background:#fff;color:#222;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:.18s}
.politician-directory-card:hover{transform:translateY(-1px);border-color:#b8d2eb;box-shadow:0 6px 16px rgba(20,42,66,.10)}
.politician-directory-card-image{flex:0 0 78px;width:78px}
.politician-directory-card-image img{display:block;width:78px;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:8px;background:#f2f2f2}
.politician-directory-card-body{min-width:0;flex:1}
.politician-directory-card-body h4{margin:0 0 2px;color:#111;font-size:20px;line-height:1.3}
.politician-directory-furigana{margin:0 0 5px;color:#7b8794;font-size:11px;line-height:1.4}
.politician-directory-meta{display:flex;flex-wrap:wrap;gap:3px 10px;margin-top:2px}
.politician-directory-meta span{color:#4d5b69;font-size:13px;line-height:1.45}
.politician-directory-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.politician-directory-tags span{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:7px;font-size:12px;font-weight:800;line-height:1}
.politician-directory-tags .is-status{border:1px solid #b7d8f2;background:#f5f9ff;color:#005BBB}
.politician-directory-tags .is-election{border:1px solid #f0d27a;background:#fff8e1;color:#9a6a00}
.politician-directory-arrow{position:absolute;top:50%;right:13px;transform:translateY(-50%);color:#8aa0b4;font-size:30px;font-weight:300;line-height:1}
.politician-directory-empty{margin:18px 0 0;padding:24px 16px;border-radius:12px;background:#f6f8fa;color:#5f6b78;text-align:center}
@media screen and (max-width:480px){.politician-directory{width:calc(100% - 16px);margin:10px auto;padding:16px 12px 24px;border-radius:15px}.politician-directory-header h1{font-size:24px}.politician-directory-filter{padding:12px}.politician-filter-row{grid-template-columns:1fr;gap:6px}.politician-filter-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.politician-filter-chip{width:100%;min-height:40px;padding:8px 10px}.politician-directory-party-heading h2{font-size:20px}.politician-directory-card{gap:10px;padding:9px 32px 9px 9px}.politician-directory-card-image,.politician-directory-card-image img{flex-basis:68px;width:68px}.politician-directory-card-body h4{font-size:18px}.politician-directory-meta span{font-size:12px}.politician-directory-arrow{right:10px}}
/* 議員一覧：フィルターで非表示になった要素を確実に消す */
.politician-directory-card[hidden],
.politician-directory-kana[hidden],
.politician-directory-party[hidden],
.politician-directory-empty[hidden]{
  display:none !important;
}


/* ==========================================
   参照URLリンク
========================================== */
.reference-link{
  display:inline;
  margin-left:.35em;
  color:#005BBB !important;
  font-size:.82em;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}

.reference-link:hover{
  color:#003A9B !important;
  text-decoration:underline;
}

.policy-description .reference-link{
  margin-left:.35em;
}

.achievement-body{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  line-height:1.8;
}

.achievement-text{
  min-width:0;
}

.achievement-type{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border:1px solid #c8d8e8;
  border-radius:999px;
  background:#f5f9ff;
  color:#005BBB;
  font-size:11px;
  font-weight:800;
  line-height:1.4;
  white-space:nowrap;
}

@media screen and (max-width:480px){
  .reference-link{
    font-size:.8em;
  }

  .achievement-body{
    gap:5px;
  }

  .achievement-type{
    font-size:10px;
    padding:2px 6px;
  }
}

/* =========================
   政治家図鑑 支援ページ
========================= */

.support-page{
  max-width: 760px;
  margin: 30px auto 60px;
  padding: 32px 28px;

  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 16px;

  box-shadow: 0 4px 18px rgba(0,0,0,.08);

  color: #222;
  line-height: 1.9;

  position: relative;
  z-index: 2;
}

/* 最初の説明 */
.support-hero{
  margin-bottom: 34px;
}

.support-hero h2{
  margin: 0 0 20px;
  padding-bottom: 12px;

  font-size: 24px;
  font-weight: 700;

  border-bottom: 3px solid #005BBB;
}

/* 各項目 */
.support-section{
  margin-top: 36px;
}

.support-section h3{
  margin: 0 0 16px;
  padding: 10px 14px;

  font-size: 18px;
  font-weight: 700;

  background: #f4f7fa;
  border-left: 4px solid #005BBB;
}

/* 支援ボタン */
.support-button-wrap{
  margin: 28px 0;
  text-align: center;
}

.support-button{
  display: inline-block;

  padding: 14px 32px;

  background: #005BBB;
  color: #fff !important;

  font-size: 17px;
  font-weight: 700;
  text-decoration: none !important;

  border-radius: 10px;
}

.support-button:hover{
  opacity: .88;
}

.support-payment-note{
  display: block;
  margin-top: 8px;

  font-size: 12px;
  color: #777;
}

/* サポーター3段階 */
.support-ranks{
  margin: 22px 0;
}

.support-rank{
  padding: 18px 20px;
  margin-bottom: 12px;

  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
}

.support-rank strong{
  display: block;
  font-size: 17px;
}

.support-rank span{
  display: block;
  margin-top: 4px;
  color: #555;
}

/* 補足 */
.support-small{
  font-size: 14px;
  color: #555;
}

/* 注意事項 */
.support-notice{
  padding: 20px;
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 10px;
}

/* スマホ */
@media screen and (max-width:720px){

  .support-page{
    margin: 16px 12px 40px;
    padding: 22px 16px;
    border-radius: 12px;
  }

  .support-hero h2{
    font-size: 21px;
  }

  .support-section{
    margin-top: 30px;
  }

  .support-section h3{
    font-size: 17px;
  }

  .support-button{
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
}

/* ==================================================
   ご支援いただいた皆さま
================================================== */

.supporters-page{
  max-width: 760px;
  margin: 30px auto 60px;
  padding: 32px 28px;

  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 16px;

  box-shadow: 0 4px 18px rgba(0,0,0,.08);

  color: #222;
  line-height: 1.9;

  position: relative;
  z-index: 2;
}


/* =========================
   ページ上部
========================= */

.supporters-hero{
  margin-bottom: 36px;
}

.supporters-hero h2{
  margin: 0 0 20px;
  padding-bottom: 12px;

  font-size: 24px;
  font-weight: 700;

  border-bottom: 3px solid #005BBB;
}

.supporters-hero p{
  margin: 8px 0;
}


/* =========================
   サポーター区分
========================= */

.supporters-section{
  margin-top: 28px;

  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 12px;

  overflow: hidden;
}


/* 区分タイトル */

.supporters-section-heading{
  padding: 14px 18px;

  background: #f4f7fa;
  border-left: 4px solid #005BBB;
}

.supporters-section-heading h3{
  margin: 0;

  font-size: 18px;
  font-weight: 700;
  color: #222;
}

.supporters-section-heading span{
  display: block;
  margin-top: 2px;

  font-size: 13px;
  color: #666;
}


/* =========================
   支援者一覧
========================= */

.supporters-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  gap: 10px;

  padding: 18px;
}


/* ニックネーム */

.supporter-name{
  padding: 12px 14px;

  background: #f8fafc;
  border: 1px solid #e1e7ed;
  border-radius: 8px;

  font-size: 15px;
  font-weight: 600;

  text-align: center;

  word-break: break-word;
}


/* まだ誰もいない場合 */

.supporters-empty{
  grid-column: 1 / -1;

  margin: 0;
  padding: 14px;

  color: #777;
  font-size: 14px;

  text-align: center;
}


/* =========================
   注意書き
========================= */

.supporters-notice{
  margin-top: 34px;
  padding: 18px 20px;

  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 10px;
}

.supporters-notice p{
  margin: 5px 0;

  color: #666;
  font-size: 13px;
}


/* =========================
   応援ページへのリンク
========================= */

.supporters-link-wrap{
  margin-top: 34px;

  text-align: center;
}

.supporters-support-link{
  display: inline-block;

  min-width: 240px;
  padding: 13px 28px;

  background: #005BBB;

  color: #fff !important;
  font-size: 16px;
  font-weight: 700;

  text-decoration: none !important;

  border-radius: 10px;

  transition: opacity .2s ease;
}

.supporters-support-link:hover{
  opacity: .88;
}


/* ==================================================
   スマートフォン
================================================== */

@media screen and (max-width:720px){

  .supporters-page{
    margin: 16px 12px 40px;
    padding: 22px 16px;

    border-radius: 12px;
  }

  .supporters-hero h2{
    font-size: 21px;
  }

  .supporters-section{
    margin-top: 22px;
  }

  .supporters-section-heading{
    padding: 12px 14px;
  }

  .supporters-section-heading h3{
    font-size: 17px;
  }

  .supporters-list{
    grid-template-columns: 1fr;

    padding: 14px;
  }

  .supporter-name{
    padding: 11px 12px;
  }

  .supporters-notice{
    margin-top: 28px;
    padding: 16px;
  }

  .supporters-support-link{
    display: block;

    width: 100%;
    min-width: 0;

    box-sizing: border-box;
  }

}