@charset "UTF-8";

/* ==========================================================================
   1. BASE STYLES (style.css)
   ========================================================================== */

/* ----- 印刷時に非表示 ----- */
 @media print{
	.print_none{ display: none; }
	.archive-header,.entry-header { margin-top: 4em; }
	}

/* ----- スキップリンク -------------------- */
.skip-link,.screen-reader-text { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus,.screen-reader-text:focus {
	position: static; width: auto; height: auto; left: auto; background: #000; color: #fff; padding: 8px; z-index: 1000; }

/* ************************************************************
全体レイアウト
************************************************************ */

body { 
	font-feature-settings: "palt"; 
	font-family: "Noto Sans JP", "BIZ UDPGothic", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-size: 1.2em; letter-spacing: .04em; font-weight: 400; line-height:1.5em; -webkit-text-size-adjust: 100%;
	color: #2b2b2b; background-color: #fff;
	height: 100%; margin: 0;
	overflow-x: hidden;
	/* scroll-behavior: smooth;
	scroll-padding-top: 80px; /* ヘッダーの高さ分設定 */
	}

body * { box-sizing: border-box; }
section { position: relative; }
.site-content { width:100%; }
.wrapper { width: 90%; max-width: 1120px; margin-left: auto; margin-right: auto; }

img { image-rendering: -webkit-optimize-contrast; }

/* ----- アンカーリンクスクロール時の位置を調整 ----- */

.anchor-offset { position: absolute; height: 80px; top: -80px; visibility: hidden; }
h2>span, h3>span, h4>span { padding-top: 80px; margin-top: -80px; } /* TOC+用設定 */
.join-content h2>span, .join-content h3>span, .join-content h4>span { padding-top: 0px; margin-top: 0px; }

/* ----- PCで電話のクリック・タッチイベントを無効化 ----- */

@media (min-width: 769px){ a[href^="tel:"] { pointer-events: none; }}

/* ----- パンくず ----- */

.breadcrumbs { padding-top: 10px; font-size: .9em; }

/* ************************************************************
リンク
************************************************************ */

a { color:#003f88; text-decoration: none; }
.wrapper a:hover { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; cursor: pointer; }
a img { transition: opacity 0.2s ease; }
a img:hover { opacity: 0.7; }
a.no-hover img:hover { opacity: 1; }

/* ----- 画像ホバー時にボーダーを表示しない ----- */
.header-ttl a img:hover, 
.slick-slider-container a img:hover, 
.sns-list-item a img:hover,
.member-sns-list-item a img:hover,
.header-party-logo-tagline a img:hover,
.mark-party-logo a img:hover
	{ border:none; }

/* ----- 外部リンクアイコン ----- */
a[target="_blank"]::after { padding-left: .2em; padding-right: 0.2em; content: "\f08b"; 
	font-family: "Font Awesome 5 Free"; color: #003f88; font-weight: 900;
}

/* ----- 外部リンクアイコンを表示しない ----- */
.slick-slider-container a[target="_blank"]::after,
.banner-card-container a[target="_blank"]::after,
.sns-list-item a[target="_blank"]::after,
.top-timeline a[target="_blank"]::after,
.member-sns-list-item a[target="_blank"]::after,
.card-img a[target="_blank"]::after,
.card-text a[target="_blank"]::after,
.feed-blog-meta a[target="_blank"]::after,
/* .feed-post-title a[target="_blank"]::after, */
.wp-block-file a[target="_blank"]::after,
.header-party-logo-tagline a[target="_blank"]::after,
.bigbanner a[target="_blank"]::after,
.banner-dpfp-policy a[target="_blank"]::after
{ content: none; }

/* ************************************************************
大きなバナー
************************************************************ */

.bigbanner { margin-top: 30px; margin-bottom: 30px; }
.bigbanner img { width: 100%; }
@media (max-width: 768px){
.bigbanner { margin-top: 30px; margin-bottom: 30px; }
}

/* ************************************************************
ボタン
************************************************************ */

.more a, 
.return a, 
.wp-block-button a, 
.page-index-btn a, 
.page-index-btn2 a,
.page-index-btn span,
.default-all {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; 
	width: 100%; padding: .5em; font-size: 1em; font-weight: 700; text-align: center; 
	text-decoration: none !important; border-radius: 5px; transition: all 0.3s ease; box-sizing: border-box;
}

/* メインカラー（青） */
.more a, .return a, .wp-block-button a, .page-index-btn a, .page-index-btn2 a {
  color: #003f88; background: #fff; border: 2px solid #003f88;
}

/* グレー（無効・アクティブ） */
/* グレー（無効・アクティブ）の基本スタイルとホバー時の固定 */
.page-index-btn a.is-active, 
.page-index-btn span, 
.default-all,
.page-index-btn a.is-active:hover, 
.page-index-btn span:hover, 
.default-all:hover {
	color: #000 !important; background: #ffc000 !important; border: 2px solid #ffc000 !important; 
	cursor: default; text-decoration: none !important;
}
/* --- ホバー設定 --- */
.more a:hover, 
.return a:hover, 
.wp-block-button a:hover, 
.page-index-btn a:hover, 
.page-index-btn2 a:hover { 
	background: #003f88; color: #fff !important; border-color: #003f88; text-decoration: none !important;
}

/* 外部リンクホバー時のアイコン色 */
.more a[target="_blank"]:hover::after,
.return a[target="_blank"]:hover::after,
.wp-block-button a[target="_blank"]:hover::after,
.page-index-btn a[target="_blank"]:hover::after,
.page-index-btn2 a[target="_blank"]:hover::after {
  color: #ffffff !important;
}

/* アイコン定義 */
.more a:not([target="_blank"])::after { content: '\f105'; font-family: "Font Awesome 5 Free"; font-weight: 900; }
.return a:not([target="_blank"])::before { content: '\f104'; font-family: "Font Awesome 5 Free"; font-weight: 900; margin-right: .5em; }

/* レイアウト設定 */
.more { display: block; margin: 20px auto; text-align: center; }
.return { display: block; margin: 60px auto 0; text-align: center; }
.more a, .return a { width: 50%; }

.wp-block-button { padding: 1em 0; width: 100%; text-align: center; }
.wp-block-button__link { border-radius: 0; display: block; margin: 0 auto; width:50%!important;}

.page-index-btn-container, .page-index-btn2-container { 
  display: flex; flex-wrap: wrap; list-style: none; padding-left: 0; margin: 0; 
}
.page-index-btn-card-container { width: 24.3%; white-space: nowrap; }
.page-index-btn-container li { margin-right: 10px; margin-bottom: 10px; }
.page-index-btn-container li:nth-child(4n) { margin-right: 0; }

.align-left a { text-align: left !important; justify-content: flex-start; }

/* レスポンシブ */
@media screen and (max-width: 1120px) {
  .page-index-btn-card-container { width: 24%; }
  .page-index-btn a, .page-index-btn2 a, .page-index-btn span { font-size: .9em; }
}

@media screen and (max-width: 1024px) {
  .page-index-btn-card-container { width: 48.5%; }
  .page-index-btn-container li:nth-child(4n) { margin-right: 10px; }
  .page-index-btn-container li:nth-child(2n) { margin-right: 0; }
  .page-index-btn a, .page-index-btn2 a, .page-index-btn span { padding: .1em .2em !important; }
}

@media (max-width: 768px) {
  .more a, .return a { width: 100%; }
  .align-left-sp a { text-align: left !important; justify-content: flex-start; }
  .page-index-btn a, .page-index-btn2 a, .page-index-btn span { padding: .1em .2em .2em .2em !important; }
  .wp-block-button__link { width: 100% !important; }
}

/* ----- ページトップに戻るボタン（スクロールで出現） ----- */
.pagetop { position: fixed; z-index: 999; right: 0; bottom: 0; }
.pagetop img { 
    width: 45px; height: 45px; filter: drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.3)); 
    margin-right: 0px; margin-bottom: 45px; border-radius: 0%; }
.pagetop a img:hover { border:none; }

/* ----- ページトップに戻るボタン（ページ下部固定） ----- */
.to-top-wrap { padding-top: 80px; }
.to-top { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.to-top a { 
	font-size: 1.1em; font-weight: 700; text-decoration: none; padding: .5em; color: #ffffff; background: #003f88; 
	border: 1px solid #003f88; display:inline-block; width: 100%;
	}
.to-top a:hover { 
	background: #003f88; color: #fff; text-decoration: underline; 
	text-underline-offset: .25em; text-decoration-thickness: 2px; 
	cursor: pointer;
	}
@media (max-width:768px) {
	.to-top a { font-size: 1em; } 
	}
.triangle-to-top {
	width: 0; height: 0; border-style: solid;
	border-right: 10px solid transparent; border-left: 10px solid transparent; border-bottom: 10px solid #003f88;
	border-top: 0; text-align:center; display: flex; margin-right: auto; margin-left: auto;
}
/* ----- ファイルダウンロードボタン（ブロック要素） ----- */
.wp-block-file:not(.wp-element-button) { font-size: 1em; }
.wp-block-file {
	box-sizing: border-box; text-align: center; padding-top: 1em; padding-bottom: 1em; 	margin-bottom: 0em;
	}
.wp-block-file a { 
	padding: .5em; border: 1px solid #003f88; width:100%; font-weight: 700;
	align-items: center; display: inline-flex; -webkit-box-align: center; -webkit-box-pack: center; justify-content: center;
	}
.wp-block-file a::before {
	font-family: "FontAwesome"; content: "\f019"; font-size: inherit; margin-right: .3em; color: #003f88;
	}
.wp-block-file a:hover {
	text-decoration:none;
	}
@media all and (max-width: 768px) {
	.wp-block-file a { display:block; padding: .5em .5em; text-align: center; align-items: initial; }
	}
.wp-block-file a:hover, .wp-block-file a:hover::before { background: #003f88; color: #fff; }
.wp-block-file__button { display: none; }

/* ----- トップページの大ボタン ----- */
.card-container-index { display: flex; gap: 20px; margin-top: 30px; align-items: stretch; /* 高さを揃える設定 */ }
.card {
  flex: 1; /* 2枚なら50%、3枚なら33%、4枚なら25%と自動で幅を確保 */
  position: relative;  display: block; text-decoration: none; background-size: cover; background-position: center;
  aspect-ratio: 4/3;
  /* --- ここが重要：高さの設定 --- */
   /* aspect-ratio: 16 / 9; /* 横16:縦9の比率で高さを固定。4/3などお好みで調整 */
  /* もし「比率」ではなく「絶対的な高さ」にしたい場合は、
     aspect-ratio の代わりに height: 250px; と指定 */
  border: 1px solid #aaa;
}
.overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 10px 10px 10px 10px;
  background-color: rgba(255, 192, 0, 0.9); color: #003f88;
  font-size: 1.5em; font-weight: 800; text-align: center; transition: background-color 0.3s ease;
}
.overlay .overlay-txt { font-size: .7em; font-weight: 400; line-height: 1.4em; margin-top: 5px; }
.card:hover .overlay { background-color: rgba(0, 63, 136, 0.95); color: #fff; }

/* スマホ対応 */
@media (max-width:768px) { 
	.card-container-index { flex-direction: column; margin-top: 20px; gap: 10px; }
	.overlay { font-size: 1.2em; }
	.card { aspect-ratio: 2 / 1; width: 100%; }
}

/* ************************************************************
その他
************************************************************ */

/* ----- ReCAPCHA v3 ----- */

.recaptcha-msg { margin-top: 1em; }
.recaptcha-msg p { font-size: .8em; line-height: 1.3em; }
.grecaptcha-badge { visibility: hidden; }

/* ----- <sup></sup>をつけたときのline-heightの変化を抑止 ----- */

sup {
  vertical-align: baseline; /* 一旦リセット */
  position: relative;
  top: -0.5em;              /* 上にずらす */
  line-height: 0;           /* 行間への影響をゼロにする */
  font-size: 75%;           /* お好みのサイズに */
}

/* ----- その他 ----- */

.bold, strong { font-weight:500; }
.dpfp-blue { color: #003f88; }
.red { color: #cb171d; }
.text-aign-right { text-align:right; }
.justify { text-align:justify; }
sup { color: #cb171d; }
.bigger { font-size: 1.6em; line-height: 1.6em; }
.smaller { font-size: .8em; }
hr, .wp-block-separator { height: 1px; border: none; border-top: 1px solid #cccccc ; }
.newmerk-text { font-weight: 500; color: #cb171d; }
@media screen and (max-width:768px) {
	.bigger { font-size: 1.3em; }
	}

.marker1 { background:linear-gradient(transparent 70%, #ffc000 30%); display: inline; padding: 0 1px 0px; }
.marker2 { background:linear-gradient(transparent 70%, #fef84c 30%); display: inline; padding: 0 1px 0px; }

.underline-dpfpy {
	text-decoration: underline; text-decoration-color: #ffc000;
	text-underline-offset: .25em; text-decoration-thickness: 2px;
	}

.indext1 { padding-left: 1em; }
.indent2 { padding-left: 2em; }
@media screen and (max-width:768px) {
	.indext1 { padding-left: .5em; }
	.indent2 { padding-left: 1em; }
	}

/* ************************************************************
リスト
************************************************************ */

/* ------ ベーシックなリストのスタイル ----- */
.list-def { list-style: none; margin-top: 0px; margin-bottom:0px; }
.list-def li::before { content: "●"; color: #ffc000; margin-right: .3em; }
.list-def li { text-indent: -1.3em; margin-left: -1em; text-align: justify; }
.list-def2 { list-style: none; margin-top: 0px; margin-bottom:0px; }
.list-def2 li::before { content: "●"; color: #ffc000; margin-right: .3em; }
.list-def2 li { text-indent: -1.3em; margin-left: -1em; text-align: justify; }
@media screen and (max-width: 768px) {
	.list-def { list-style: none; padding-left: 0; }
	.list-def li::before { content: "●"; color: #ffc000; margin-right: .3em; }
	.list-def li { text-indent: -1.2em; margin-left: 1.2em; text-align: justify; }
	.list-def2 { list-style: none; padding-left: 0; }
	.list-def2 li::before { content: "●"; color: #ffc000; margin-right: .3em; }
	.list-def2 li { text-indent: -1.2em; margin-left: 1.2em; text-align: justify; }
	}

/* ----- ●ビュレット標準リスト -------------------- */
.list-def ul { list-style: none; padding-left: 1.3em; }
.list-def ul li { font-size: 1em; text-indent: -1.3em; }
.list-def ul li::before { content: "●"; color: #ffc000; margin-right: .3em; }
@media (max-width: 768px) {
	.list-def ul  { padding-left: 0em; }
	.list-def ul li { padding-left: 1.3em; text-indent: -1.3em; }
	}

/* ----- 注意書きリスト -------------------- */
.caution-list ul { list-style-type: none; margin: 0; padding-left: 0; box-sizing: border-box; }
.caution-list ul li { margin-left:1.2em; text-indent: -1.2em; text-align: justify;}
.caution-list ul li::before { padding-right: .2em; content: "※"; color: #cb171d; font-weight: 900; }

/* ----- 表組風リスト -------------------- */

.border-list-wrap { list-style: none; margin: 0; padding: 0; padding-left: 0em !important; margin-bottom:20px; }
.border-list li { display:flex; justify-content:flex-start; border-top:1px solid #cccccc; padding: .5em; text-align:justify; }
.border-list li:last-child { border-bottom:1px solid #cccccc; }
.item { width: 8em; }

@media screen and (max-width:768px){
	.border-list li { padding: .5em 0em .2em .2em; }
	.item { width: 140px; }
	.value { flex-grow: 1; flex-shrink: 1; flex-basis: 0%; }
	}

/* ----- ニュースリスト -------------------- */

.top-newslist { padding-bottom: 50px; }
.update-list { padding: 0; margin-top: 60px; margin-bottom: 0; }
@media (max-width: 768px) {
	.update-list { margin-top: 20px; margin-bottom: 0; }
	}

.update-list-wrap { margin-bottom: 0; }

/* ************************************************************
アコーディオンのベース
************************************************************ */

/* 1. マウス・キーボード両方の標準フォーカス線を一旦消す（または控えめにする） */
.accordion__head:focus,
.image-thumbnail:focus,
.mushimegane:focus,
.close-button:focus {
    outline: none;
}

/* 2. キーボード操作（Tabキー）でフォーカスした時だけ線を表示する */
.accordion__head:focus-visible,
.image-thumbnail:focus-visible,
.mushimegane:focus-visible,
.close-button:focus-visible {
    outline: 2px solid #003f88;
    outline-offset: 2px;
}

/* button風の挙動 */
.accordion__head {
    user-select: none; /* テキスト選択を防止 */
}

.accordion__item.accordion__item-last { /* border-bottom: 2px solid #003f88; */ }

/* コンテンツ部分を非表示にするための初期設定 */
.accordion__content {
overflow: hidden;
max-height: 0; /* 初期状態で高さを0に */
transition: max-height 2s ease-out; /* アニメーションをつける */
}
/* アクティブな状態の時に高さを適切に設定 */
.accordion__item.active .accordion__content {
max-height: 3000px; /* 必要に応じて最大高さを設定 */
}

.accordion__body p { font-size: 1em; margin-top: 0px; margin-bottom:0px; text-align: justify; }
.accordion__body ul, ol { padding-left: 2em; }
.accordion__body ul { list-style:disc; }
.accordion__body ul li,ol li:last-child { border-bottom: none!important; }

/* アコーディオンそのものの横幅と余白を指定。開閉動作に影響なし。 */
.accordion__list { list-style: none; padding-top: 1.5em; padding-left: 0em; }
/* .accordion__list li:last-child { border-bottom: 1px solid #cccccc; } */

/* アコーディオンの開閉ボタンの装飾。position: relative;が無いと「+」「-」の位置がずれるので注意。 */
.accordion__head { position: relative; /* width: 100%; */ padding-top: 11px; cursor: pointer; border-top: 1px solid #cccccc; }

/* アコーディオンの開閉ボタンの右側に「+」を表示。 */
.accordion__head::after { font-family: "FontAwesome"; content: "\f13a"; position: absolute; top: 25px; right: 10px; font-size:1.6em; color: #003f88;}
/* アコーディオンが開いた際に、開閉ボタンの「+」を「-」に変更する。 */
.accordion__item.active .accordion__head::after { font-family: "FontAwesome"; content: "\f139"; right: 10px; font-size:1.6em; }

/* アコーディオンの閉じている部分の装飾。height: 0; overflow: hidden;にすることで通常時は表示されないようにする。 */
.accordion__body { overflow: hidden; width: 100%; height: 0; padding: 0 10px; transition: all .25s ease; /* border-top: 1px solid #ddd; */ }
/* アコーディオンが開いた際に、heightを0からautoに、paddingの上下を0から10に。 */
.accordion__item.active .accordion__body { height: auto; padding-bottom: 30px; padding-right:0; }

.accordion__list li:last-child { border-bottom: 1px solid #cccccc; }
.accordion__body ul { list-style:none; padding-bottom:1em; padding-left:1em; padding-right:.5em; margin-top:1em; }
.accordion__body ul li { text-indent: -1.2em; padding-left: 1.2em; }
.accordion__body ul li::before { content: "●"; color: #ffc000; margin-right: .2em; }

@media screen and (max-width:768px) {
	/* アコーディオンの開閉ボタンの右側に「+」を表示。 */
	.accordion__head { padding-left: 5px; padding-right: 5px; }
	.accordion__head::after { position: absolute; top: 12px; right: 10px; font-size:1.3em; color:#003f88;}
	/* アコーディオンが開いた際に、開閉ボタンの右側に「+」を「-」に変更する。 */
	.accordion__item.active .accordion__head::after { right: 10px; font-size:1.3em; }
	}

/* ************************************************************
画像とテキストのコンテナ
************************************************************ */

.media-container {
  display: flex; flex-direction: row; align-items: stretch; /* 右のテキストに合わせて高さを伸ばす */
  gap: 20px; margin-bottom: 20px;
}

/* 画像エリア：幅を固定（例として300px） */
.image-area { display: flex; flex-direction: column;
  width: 30%; /* ここを希望の固定幅に変更 */ flex-shrink: 0; /* 幅が圧縮されないように固定 */
}
.text-area { flex-grow: 1; /* 残りの幅をすべて使う */ }
.image-area:empty { display: none; /* 画像がない場合はエリアごと非表示 */ }

/* 画像自体の設定 */
.image-area img {
  width: 100%;        /* 親(300px)に対して100% */
  height: 100%;       /* テキストエリアの高さまで伸ばす */
  min-height: 300px;  /* ★固定幅と同じ数値を指定することで、最低でも正方形を維持 */
  object-fit: cover;  /* 縦長になっても画像が歪まないようにする */
  border: 1px solid #aaa;
  vertical-align: bottom;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .media-container { flex-direction: column; gap:1em; }
  .image-area { width: 100%; }
  .image-area img { height: auto; min-height: 0; aspect-ratio: 1/1; }
}

/* ************************************************************
一覧系グリッド（PCで2カラム）
************************************************************ */

/* ----- グリッド本体 -------------------- */
.grid-container { display: grid; grid-template-columns: 49% 49%; padding-left: 0px; margin-top: 0px; column-gap: 2%; }

/* デフォルトのli（ボーダーあり） */
.grid-container li { display: flex; padding-top: 30px; padding-bottom: 30px; border-top: 1px solid #aaa; }

/* 特定モジュール内のli（ボーダーなし・余白調整） */
.module-blog .grid-container li, 
.module-feed-youtube .grid-container li { display: flex; padding-top: 0px; padding-bottom: 30px; border-top: none; }

/* 下線の制御 */
.grid-container li:nth-last-of-type(2), 
.grid-container li:last-child { border-bottom: 1px solid #aaa; }

.module-blog .grid-container li:nth-last-of-type(2), 
.module-blog .grid-container li:last-child,
.module-feed-youtube .grid-container li:nth-last-of-type(2), 
.module-feed-youtube .grid-container li:last-child { border-bottom: none; }

/* ----- カード・パーツ要素 -------------------- */
.card-img img { width: 260px; float: left; object-fit: cover; border: 1px solid #aaa; aspect-ratio: 1/1; }
.feed-eyecatch-youtube,.feed-eyecatch-senkyo,.feed-eyecatch-blog,.feed-eyecatch-dpfp { height: 145px; }
.archive-thumb img { width: 200px; height: 200px; object-fit: cover; border: 1px solid #aaa; }
.card-text { width: 100%; margin-left: 15px; }

.feed-post-title, .entry__ttl { font-size: 1.1em; margin-top: 0em; font-weight: 500; margin-bottom: .2em; }
.newslist-date, .newslist-title { font-size: 1em; margin-top: 0em; }
.newslist-date { font-weight: 400; }
.newslist-title { font-weight: 700; }

.feed-post-date, .feed-blog-meta, .archive-meta { font-size: .9em; margin-top:0; margin-bottom: 0em; }
.feed-blog-meta { text-indent: 0em; margin-left: 0em; }

/* ----- メディアクエリ -------------------- */

/* タブレット・中間サイズ */
@media (max-width: 1024px) {
    .card-img img { width: 100px; height: 100px; }
}

/* スマートフォンサイズ */
@media (max-width: 768px) {
    .grid-container { display: block; }    
    .grid-container li { padding-top: 15px; padding-bottom: 15px; }    
    .grid-container li:nth-last-of-type(2) { border-bottom: none; }
    .module-blog .grid-container li,.module-feed-youtube .grid-container li,.module-feed-dpfp .grid-container li {
        padding-bottom: 20px; }
    .card-img img, .archive-thumb img { width: 100px; height: 100px; }
    .feed-eyecatch.feed-eyecatch-youtube { background: #000; }
    .card-text { margin-left: 10px; }
    .feed-post-title, .entry__ttl { font-size: 1em; margin-bottom: .25em; }
    .newslist-date, .newslist-title { margin-bottom: .25em; }
    .newslist-date { letter-spacing: -.05em; }
    .feed-post-date, .feed-blog-meta { font-size: .9em; line-height: 1.3em !important; }
    .archive-meta { font-size: .85em; line-height: 1.3em !important; }
    .archive-entry-cat { margin-top: .3em; }
}

/* ********** カード全体をhover対象にする ****************************** /

/* --- カード全体リンクの基本設定 --- */
.card-container {
    position: relative; /* 親を基準にする */
    z-index: 1;
}

/* リンクを疑似要素でカード全体に広げる */
.main-link::before,
.full-range-link::before {
    content: "";
    position: absolute;
    /* 上下左右0に固定することで画像エリアも完全にカバー */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10; /* 画像(デフォルト)より上、カテゴリ(11以上)より下 */
    display: block;
}

/* --- 干渉要素の整理 --- */

/* NEWマークなどはクリックを透過させる */
.archive-new, 
.newmark-label, 
.newmark-text {
    position: relative;
    z-index: 11;
    pointer-events: none; /* 指のタッチを下のリンクへ通す */
}

/* カテゴリーリンクだけは膜の上に置いてクリック可能にする */
.archive-entry-cat {
    position: relative;
    z-index: 12;
}
.archive-entry-cat a {
    position: relative;
    z-index: 13;
}

/* 外部リンクアイコンの表示位置修正 */
.main-link[target="_blank"]::after,
.full-range-link[target="_blank"]::after {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.3em;
}

/* --- ホバー演出（PCのみ） --- */
@media (hover: hover) {
    .card-container:hover .card-img img { opacity: 0.7; }
    .card-container:hover .main-link { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; }
}

/* --- スマホ特有の調整 --- */
@media (max-width: 768px) {
    /* 画像エリアで確実にリンクを反応させるための補強 */
    .card-img { position: relative; z-index: 1; }
    /* 1タップ目で遷移するようにホバーを無効化 */
    .card-container:hover .card-img img { opacity: 1; }
}

/* ************************************************************
スマホ/PC別表示非表示
************************************************************ */

@media all and (min-width: 769px) {
  .sp-only { display: none!important; }
  .pc-only { display: inline!important; }
  .sp-only-block { display: none!important; }
  .pc-only-block { display: block!important; }
  .sp_br { display:none!important; }
}
@media all and (max-width: 768px) { 
  .sp-only { display: inline!important; }
  .pc-only { display: none!important; }
  .sp-only-block { display: block!important; }
  .pc-only-block { display: none!important; }
  .sp_br { display:inline!important; }
}

/* ----- スマホでTABLEを横スクロール ----- */
table { display: block; overflow-x: scroll; white-space: nowrap; -webkit-overflow-scrolling: touch; }

/* ************************************************************
サイトトップのモジュール
************************************************************ */

/* ------ モジュールの上下間隔 ----- */
.module-sns-account { padding-top: 40px!important; padding-bottom: 40px!important; }
.top-newslist { padding-top:50px; padding-bottom:0px; }
.module-banner, .module-blog, .module-blog-multi, .module-contact, .module-feed-dpfp,
.module-feed-youtube, .module-members, .module-message, .module-office, .module-plog, 
.module-policy, .module-policy2, .module-press, .module-profile, .module-vonnector 
	{ padding-top: 60px; padding-bottom: 0px; }

@media screen and (max-width: 768px) {
	.module-banner, .module-blog, .module-blog-multi, .module-contact, .module-feed-dpfp,
	.module-feed-youtube, .module-members, .module-message, .module-office, .module-plog, 
	.module-policy, .module-policy2, .module-press, .module-profile, .module-vonnector 
	{ padding-top:25px; padding-bottom:25px; }
	}

/* ------ モジュールタイトル ------ */
.top-section-title { font-size: 2.2em; text-align:center; margin-bottom:20px; font-weight:700;
	text-decoration:underline; text-decoration-color: #ffc000; 
	text-underline-offset: .3em; text-decoration-thickness: 6px; 
	}
.top-section-title.top-section-title-noexp { margin-bottom: 80px; }
.module-exp-txt { font-size: 1.1em; text-align:center; margin-bottom:60px; padding-top: 1em; }
@media (max-width: 768px){
	.top-section-title { font-size: 1.5em; }
	.top-section-title.top-section-title-noexp { margin-bottom: 60px; }
	.module-exp-txt { font-size: .9em; margin-bottom: 30px; padding-top: .5em;}
	}

/* ------ キャッチフレーズなど ------ */
.catchphrase { font-size: 2.2em!important; font-weight: 900 !important; text-align: center !important; 
	line-height: 1.6em; margin-top: 0; margin-bottom: 1em; }
.subtitle { font-weight:900 !important; font-size:1.6em !important; text-align:center !important; line-height:1.6em;
	margin-top: 0; }
@media screen and (max-width: 768px) {
	.catchphrase { font-size: 1.6em!important; line-height: 1.4em; margin-top: 0; margin-bottom: 25px; }
	.subtitle { font-size:1.2em !important; margin-top:10px;}
	}

/* ----- 緊急のお知らせ ----- */
.introduction-wrap, .emergency-notice-wrap {
	border: 1px solid #000; padding-top: 0; padding-left: 2em; padding-right: 2em;
	padding-bottom: 0; margin-top: 60px; margin-bottom: 60px; text-align: justify;
}
@media all and (max-width: 768px) {
.introduction-wrap, .emergency-notice-wrap {
	border: 1px solid #000; padding-top: 0em; padding-left: 1em; padding-right: 1em; padding-bottom: 0; 
	margin-top: 20px; margin-bottom: 20px; }
}

/* ----- サイトトップのお知らせモジュール ----- */
.top-newslist,.update-list { padding-top:0; padding-bottom:0; }
.newslist-date { width: 160px!important; }
@media screen and (max-width:768px){
	.top-newslist,.update-list { padding-top: 5px; }
	.newslist-date { width: 120px!important; }
	}

/* ----- サイトトップのお知らせモジュール2 ----- */
.update-list-wrap { list-style: none; margin: 0; padding: 0; padding-left: 0em !important; margin-bottom:20px; }
.update-list li { display:flex; justify-content:flex-start; border-top:1px solid #aaa; padding: .5em; }
.update-list li:last-child { border-bottom: 1px solid #aaa; }

.item1 { width: 6em; }
.item2 { width: 6em; }

.label-blog,.label-news,.label-plog,.label-press {
	display: inline; padding: 0em .2em .1em .2em; margin-top: 1px; margin-left: 1px; font-size: .8em; line-height:1em; }
.label-blog { color: #fff; background: #52a57d; }
.label-press { color: #fff; background: #003f88; white-space: nowrap; }
.label-news { color: #fff; background: #e8810f; }
.value0 { font-weight: 500; flex-grow: 1; flex-shrink: 1; flex-basis: 0%; overflow-wrap: anywhere; word-break:break-all; }

@media screen and (max-width:768px){
.update-list li { display:block; padding-left: .25em; padding-right: .25em; }
.value0 { display:block; margin-top:.3em; }
}

/* ----- サイトトップのバナーモジュール ----- */

.banner-container { display: flex; flex-wrap: wrap; justify-content: center; list-style:none; padding-left: 0px; }
.banner-container li { margin-right: 14px; }
.banner-container li:first-child { margin-right: 14px; }
.banner-container li:last-child { margin-right: 0px;}
.banner-card-container { width:24%; padding-bottom:14px; }
.banner-card-container img { width:100%; border: 1px solid #aaa; object-fit:cover; /* aspect-ratio: 4/5;*/ }
@media screen and (max-width: 1120px) {
	.banner-card-container { width: 23.5%; }
	}
@media screen and (max-width: 768px) {
	.banner-container li { margin-right: 2%; }
	.banner-container li:first-child { margin-right: 2%; }
	.banner-container li:last-child { margin-right:0px;}
	.banner-container li:nth-child(2) { margin-left: 2%; margin-right:0px; }
	.banner-container li:nth-child(4) { margin-left: 2%; margin-right:0px; }
	.banner-card-container { width: 48%; padding-bottom:4px;}
	}
@media screen and (max-width: 768px) {
	.banner-card-container { width:48%; padding-bottom: 4px;}
	}

/* ----- サイトトップのブログ（ボネクタ）モジュール ----- */
.module-vonnector .grid-container { margin-bottom: 50px; }
@media (max-width: 768px){
	.module-vonnector .grid-container { margin-bottom: 40px; }
	}

/* ----- サイトトップのブログ（リスト形式）モジュール ----- */
.module-blog .update-list { margin-bottom: 50px; }
@media (max-width: 768px){
	.module-blog .update-list { margin-bottom: 40px; }
	}

/* ----- サイトトップのブログ（リスト形式マルチ）モジュール ----- */
.module-blog-multi ul, .top-newslist ul { list-style:	none; margin: 0; padding: 0; }
.module-blog-multi ul li {
	border-top:1px solid #cccccc; padding-top: .5em; padding-bottom: .5em;
	padding-left: 1.7em; text-indent: -1.5em;
	}
.module-blog-multi ul li:last-child { border-bottom:1px solid #cccccc; }
.module-blog-multi ul li .headline:before { content: "●"; color: #ffc000; }

/* ----- サイトトップの事務所のご案内モジュール ----- */

.office-body { background: #f2f2f2; border: none; border-radius: 0;
	padding-left: 4em; padding-right: 4em; padding-top: 1em; padding-bottom: 4em; }
@media screen and (max-width: 768px) {
	.office-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: 1em; }
	.office-body p { margin-top: 0; }
	}
.office-name { border-bottom: 1px solid #cccccc; padding-bottom: 10px; }
.office-name h3 { font-size:1.3em; margin-bottom: 0px; }
.gmap-iframe { width: 100%; height: 400px; border: 1px solid #aaa; }
.gmap-iframe iframe {
  width: 100% !important;   /* !importantでHTML属性を強制上書き */
  height: 100% !important;  /* !importantでHTML属性を強制上書き */
}
.gmap-link a {
	font-size:.9em; font-weight: 700; text-decoration: none;
	padding-top: .5em; padding-bottom: .5em;
	color: #003f88; background: #fff; border: 2px solid #003f88; border-radius: 5px;
	width: 100%; display: block; text-align: center;
	}
.gmap-link a:hover, .gmap-link a[target="_blank"]:hover::after { 
	background: #003f88; color: #fff; text-decoration: none;
	}
.card-left, .card-right	{ display:block; width:100%; }
.card-left iframe, .card-right iframe { width: 100%; height: 500px; border: 1px solid #d3d3d3 !important; }
@media (max-width: 768px){
	.card-left, .card-right	{ width:100%; }
	.card-left iframe, .card-right iframe { width:100%; height:300px;}
	}

/* ************************************************************
ヘッダーとハンバーガーメニュー
************************************************************ */

.header { 
    position: sticky; /* sticky / headerを追従にする */
    top: 0; left: 0; right: 0;
    width: 100%; background-color: #fff; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16); z-index: 1000;
}
.header__inner { display: flex; justify-content: space-between; align-items: center; padding: 0.3em 0.5rem; }
.header .header-ttl { display: flex; box-sizing: border-box; margin: 5px; }
.header .header-link { display: flex; align-items: center; }
.header .header-party-logo-box { display: block; margin-right: 10px; }
.header .header-party-logo { width: 110px; }
.header .header-ttl-big { display: block; font-size: 2.2rem; line-height: 1; font-weight: 900; }
.header .header-ttl-small { display: block; font-size: .9rem; line-height: 1; margin-top: 5px; }
.header .header-ttl,.header .header-ttl-big,.header .header-ttl-small { color: #003f88; }
.sub-header { padding-bottom: 0; margin-bottom: 0; }

@media (max-width: 768px) {
    .header .header-ttl { display: flex; box-sizing: border-box; margin: 0px; }
    .header .header-link { display: flex; align-items: center; }
    .header .header-party-logo-box { display: block; margin-right: 10px; }
    .header .header-party-logo { width: 85px; }
    .header .header-ttl-big { display: block; font-size: 1.8rem; line-height: 1; }
    .header .header-ttl-small { display: block; font-size: .8rem; line-height: 1; margin-top: 3px; font-weight: 500; }
}

/* ************************************************************
   ハンバーガーボタン
   ************************************************************ */

.drawer__button {
    position: relative; width: 3rem; height: 3rem;
    background-color: transparent; border: none; cursor: pointer; z-index: 1001 !important; }
.drawer__button:hover { background-color: transparent !important; }

/* ボタン内の線 */
.drawer__button > span {
    display: block; position: absolute; top: 50%; left: 50%; width: 2rem; height: 3px;
    background-color: #003f88; transform: translateX(-50%); }

.drawer__button > span:first-child { transform: translate(-50%, calc(-50% - 0.5rem)); transition: transform 0.3s ease; }
.drawer__button > span:nth-child(2) { transform: translate(-50%, -50%); transition: opacity 0.3s ease; }
.drawer__button > span:last-child { transform: translate(-50%, calc(-50% + 0.5rem)); transition: transform 0.3s ease; }
.drawer__button.active > span:first-child { transform: translate(-50%, -50%) rotate(-45deg); }
.drawer__button.active > span:nth-child(2) { opacity: 0; }
.drawer__button.active > span:last-child { transform: translate(-50%, -50%) rotate(45deg); }

/* ************************************************************
   メニューのデザイン（ナビゲーション本体）
   ************************************************************ */

/* 外側の黒い幕 (フェード担当) */
.drawer__nav {
    position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000; /* 上書き：Final Fixesのz-index */
    opacity: 0; visibility: hidden; pointer-events: none; /* 初期状態: 閉じた時 */
    transition: opacity 0.4s ease, visibility 0.4s ease; /* 上書き：開閉アニメーション (フェード) 0.4sへ */
}
/* 開いた状態 (.active) */
.drawer__nav.active { opacity: 1; visibility: visible; pointer-events: auto; }
/* 中の白いメニュー (スライド担当) */
.drawer__nav__inner {
    position: relative; width: 40%; height: 100%;
    background-color: white; padding: 4rem 1.5rem 1rem; margin: 0 0 0 auto; overflow-y: scroll;
    transform: translateX(100%); /* 初期状態：閉じた時の位置 (画面右外) */
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1); /* 開閉アニメーション (スライド) イージングを細かく設定 */
}
/* 開いた時にメニューを画面内に戻す */
.drawer__nav.active .drawer__nav__inner { transform: translateX(0); } 

/* レスポンシブ設定：幅の調整 */
@media all and (max-width: 1080px) {
    .drawer__nav__inner { width: 60%; }
}
@media all and (max-width: 768px) {
    .drawer__nav__inner { width: 80%; padding: 3.5rem 1.5rem 1rem; /* スマホ時の余白優先 */ }
}

/* ************************************************************
   メニュー内部リンク・リスト
   ************************************************************ */

.drawer__nav__menu { list-style: none; padding-left: 0; margin-top: 15px; }
/* 最初のアイテムのボーダー */
.drawer__nav__menu .drawer__nav__item:first-child { border-top: 1px solid lightgray; }

@media (max-width: 768px) { 
    .drawer__nav__menu { margin-top: 5px; }
}

/* 1. メニュー項目を Flexbox にして、テキストとアイコンを両端に配置 */
.drawer__nav__menu .drawer__nav__link {
    display: flex;
    justify-content: space-between; /* テキストとアイコンを左右に分ける */
    align-items: center;
    padding: 15px 20px; /* デザインに合わせて調整 */
    font-size: 1.1em; font-weight: 500; color: #003f88;
    text-decoration: none; padding: .7rem .7rem; border-bottom: solid 1px lightgray;
}
@media all and (max-width: 768px) {
    .drawer__nav__menu .drawer__nav__link { font-size: 1em; }
}

/* 2. 右端の矢印アイコンを追加 */
.drawer__nav__menu .drawer__nav__link::after {
    content: '\f105'; /* Font Awesomeの矢印 */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: .9em;
    color: #003f88;
    margin-left: 10px;
	padding: 0 !important;
}

/* 3. 外部リンク（一番下の国民民主党）の処理 */
/* target="_blank" のときは、既に設定されている \f08b アイコンを生かす設定 */
.drawer__nav__menu .drawer__nav__link[target="_blank"]::after {
    content: "\f08b"; /* もし既存の設定と重複して2つ出るなら、ここを調整 */
}

/* 4. SNSアカウントリスト内のアイコンには矢印を出さない */
.drawer__nav__menu .menu-sns-account .drawer__nav__link::after,
.drawer__nav__menu .menu-sns-account a::after {
    display: none !important;
}

.drawer__nav__link .navi-nolink { color: #6c6c6c !important; }

/* メニュー展開時の背景固定 */
body.active { height: 100%; overflow: hidden; }

/* ************************************************************
   フッター
   ************************************************************ */

footer { padding-top: 20px; }

.footer-navi .menu-sns-account { display: none; } 
.footer-nav-area { padding-top: 20px; background: #eee; /* 後者：#eee（共通） */ }
/* フッターメイン要素のレイアウト */
.footer-elements { display: flex; justify-content: space-between; padding-bottom: 20px; } }
.header-party-logo-tagline { display: block; text-align: right; }
.header-party-logo-tagline img { width: 160px; }
/* スマホ対応：メディアクエリ */
@media (max-width: 768px) {
    .footer-elements { display: flex; padding-bottom: 20px; }
    .header-party-logo-tagline { display: block; text-align: center; padding-bottom: 20px; }
    .header-party-logo-tagline img { width: 120px; margin-top: 0; }
}
/* ナビゲーション */
.footer-navi { list-style: none; padding-left: 0px; margin: 0px; column-count: 2; width: fit-content; column-gap: 1em; }
@media all and (max-width: 768px) {
    .footer-navi { column-count: 1; }
}
.footer-navi .drawer__nav__link {
    display: block; font-size: .9em; color: #003f88; text-decoration: none;
    padding: 0em; border-bottom: 0px; margin-bottom: .25em; letter-spacing: 0em;
}
.footer-navi .drawer__nav__link::before {
	content: '\f105'; font-family: "Font Awesome 5 Free"; 
	font-weight: 900; font-size: .9em; color: #003f88; margin-right: .5em;
}
.footer-navi .drawer__nav__item a:hover { text-decoration: none; }

/* コピーライト・クレジット */
.footer-copy { font-size: .8em; text-align: left; padding-top: 10px; padding-bottom: 30px; }
.footer-credit { background: #ffc000 !important; color: #000 !important; }

/* ************************************************************
404、サンキュー
************************************************************ */

.notfound .media-container, .thankyou .media-container {
	display: flex; flex-direction: row;
	align-items: center; width: 80%; margin-left: auto; margin-right: auto; gap: 30px; 
	margin-bottom: 20px; padding-top: 30px;
}
.notfound .media-container .image-area, .thankyou .media-container .image-area {
	display: flex; flex-direction: column; width: 10%; flex-shrink: 0;
}
.notfound .media-container .image-area:empty, .thankyou .media-container .image-area:empty {
	display: none;
}
.notfound .image-area img, .thankyou .image-area img {
  width: 100%; height: auto; min-height: 10px; object-fit: cover; border: none;
}

.notfound .media-container p, .thankyou .media-container p { margin-top: 0; text-align: justify; }

@media (max-width: 768px) {
  .notfound .media-container, .thankyou .media-container { flex-direction: column; gap:1em; width: 100%; }
  .notfound .media-container .image-area { 
	  width: 30% !important; align-content: center; margin-left: auto; margin-right: auto; }
  .thankyou .media-container .image-area { 
	  width: 25%; align-content: center; margin-left: auto; margin-right: auto; }
  .notfound .image-area img, .thankyou .image-area img  { width: 100%; height: 160px; min-height: 0;
	  aspect-ratio: auto; object-fit: contain; }
}

/* ************************************************************
オリジナルカラーパレット
************************************************************ */

.has-dpfp-blue-color { color: #003f88; }
.has-dpfp-blue-background-color { background-color: #003f88; }
.has-dpfp-blue-border-color { border-color: #003f88; }

.has-dpfp-yellow-color { color: #ffc000; }
.has-dpfp-yellow-background-color { background-color: #ffc000; }
.has-dpfp-yellow-border-color { border-color: #ffc000; }

.has-yellow-color { color: #fbee31; }
.has-yellow-background-color { background-color: #fbee31; }
.has-yellow-border-color { border-color: #fbee31; }

.has-red-color { color: #cb171d; }
.has-red-background-color { background-color: #cb171d; }
.has-red-border-color { border-color: #cb171d; }

.has-white-color { color: #ffffff; }
.has-white-background-color { background-color: #ffffff; }
.has-white-border-color { border-color: #ffffff; }

.has-black-color { color: #000000; }
.has-black-background-color { background-color: #000000; }
.has-black-border-color { border-color: #000000; }

.has-light-gray-color { color: #eeeeee; }
.has-light-gray-background-color { background-color: #eeeeee; }
.has-light-gray-border-color { border-color: #eeeeee; }

/* ********** メッセージ ****************************** */

.message-body { background: #f2f2f2; border: none; border-radius: 0;
	padding-left: 4em; padding-right: 4em; padding-top: 3em; padding-bottom: 3em; }
.message-body .video { padding-top: .5em; }
.message-body p { font-weight: 500; text-align:justify; }
@media screen and (max-width: 768px) {
	.message-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: 2em; }
	.message-body .video { margin-top: 1em; }
	}

/* ********** 広報紙 ****************************** */

.press-link { display: flex; gap: 20px; }

.press-col a img:hover, .press-images a img:hover { text-decoration: none; border: none; }
.press-body {
	background: #f2f2f2; border: none; border-radius: 0; 
	padding-left: 4em; padding-right: 4em; padding-top: 3em; padding-bottom: 3em;
}
.press-col a[target="_blank"]::after { content: none; }
.press-title { text-align:center; margin-top: 0; }
.press-images { display: flex; gap: 20px; }
.press-col { flex: 1; border: 1px solid #d3d3d3; }
.press-col img { width: 100%; height: auto; display: block; /* aspect-ratio: 1.4/1 !important; ヨコ版の場合 */ border: 1px solid #aaa; }
.bigBanner a[target="_blank"]::after { content: none; }

@media (max-width: 768px) {
.press-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: .5em; }
.press-images { display: flex; gap: 5px; }
/* .press-col--right { display: none; } */
}

/* ----- 広報紙用一覧設定 -------------------- */

.card-img-press img { width: 150px; height: 212.14px; object-fit: fill; }
.press-txt { font-size: 1em; }
@media all and (max-width: 768px) {
	.card-img-press img { width: 100px; height: 141.53px; object-fit: fill !important; }
	.press-txt { font-size:.9em; }
	}

/* ************************************************************
投稿ページと固定ページ（ブロックのスタイル）
************************************************************ */

/* ----- 目次（TOC+） -------------------- */

#toc_container { border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc; 
	padding-left: 0em; padding-right:1em; padding-bottom: .5em; margin-bottom: 40px; }
.toc_title { font-weight: 700; }
.toc_list { padding-left: 1.5em; }
.toc_list ul li { margin-bottom: .25em; }
.toc_list ul li:first-child { margin-top: .25em; }

/* ----- 主要要素 -------------------- */

h1.has-background, h2.has-background, h3.has-background, h4.has-background, h5.has-background, h6.has-background {
	padding: 0em 0.1em;
}
:root :where(p.has-background) {
	padding: 0.01em 0.3em;
}

.entry-header h1, .archive-header h1, .archive-header-no-exp h1
	{ font-size: 2.2em; text-align:left; margin-bottom:20px; font-weight:700;
	text-decoration:underline; text-decoration-color: #ffc000; 
	text-underline-offset: .3em; text-decoration-thickness: 6px; 
	}
@media (max-width: 768px) {
	.entry-header h1, .archive-header h1, .archive-header-no-exp h1 { 
		padding-top: 0; font-size: 1.5em;  line-height: 1.7em; }
	}

.entry-header,.entry-header-w-post-date,.archive-header { padding-top: 60px; }
.entry-header { padding-bottom: 80px; }
.entry-header-w-post-date { padding-bottom: 40px; }
.entry-header .post-date { font-size: .9em; text-align:left; padding-top:20px; }
.archive-header { padding-bottom: 100px; }
@media all and (max-width: 768px) {
.entry-header,.entry-header-w-post-date,.archive-header { padding-top: 30px; }
.entry-header { padding-bottom: 50px; }
.entry-header-w-post-date { padding-bottom: 30px; }
.entry-header .post-date { padding-top: 0; padding-bottom: 0; }
.archive-header { padding-bottom: 50px; }
}

.entry-content h2, .has-large-font-size { 
	font-size: 2em; line-height:1.6em; font-weight: 800; overflow-wrap: anywhere; word-break: break-all; 
	border-left:10px solid #ffc000; padding-left: 10px; margin-top: 2em; 
	}
.entry-content h3 { font-size: 1.6em; font-weight: 700; }
.entry-content h4, .has-medium-font-size { font-size: 1.4em; font-weight: 600; }
.entry-content h5 { font-size: 1.3em; ; font-weight: 600; }
.entry-content h6 { font-size: 1.2em;  font-weight: 500; }
.has-small-font-size { font-size: .9em; }
@media all and (max-width: 768px) {
	.entry-content h2, .has-large-font-size { font-size: 1.3em; }
	.entry-content h3 { font-size: 1.2em; line-height: 1.5em; }
	.entry-content h4, .has-medium-font-size { font-size: 1.1em; }
	.entry-content h5 { font-size: 1em; }
	.entry-content h6 { font-size: 1em; }
	.wp-block-media-text__content p { margin-top: 1em; }
	.wp-block-media-text > .wp-block-media-text__content { padding: 0 0; }
	.has-small-font-size { font-size: .9em; }
	}

.post-meta { font-size: .9em; margin-top: 60px; }
.entry-content { overflow-wrap: anywhere; }

.wp-block-image img, .wp-block-media-text__media img { border: 1px solid #d3d3d3; }
.wp-element-caption { font-size: .9em; font-weight: 700; } /* 写真のキャプション */
.wp-block-image :where(figcaption) { margin-bottom: 1em; margin-top: .25em; }
.has-text-align-center { text-align: center !important; }
.has-text-align-right { text-align: right !important; }
.wp-block-list li { margin-bottom: 0; }

/* ----- Googleドキュメント連携の際のTABLEのスタイル -------------------- */
.gdoc-table {
  border-collapse: collapse;
  width: 100%;
  margin: 1em 0;
}
.gdoc-td {
  border: 1px solid #ccc;
  padding: 8px 12px;
  vertical-align: top;
  line-height: 1.6;
}

/* ----- 動画埋め込み（video）の調整 -------------------- */
.wp-block-video video { border: 1px solid #cccccc; }

/* ----- ギャラリーブロックの調整 -------------------- */
.testpage .wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block;
	width: 100%;
	max-width: 100% !important;
	height: auto;
	object-fit: cover;
	aspect-ratio: 1/1;
	}

/* ----- ギャラリーブロックのキャプション調整 -------------------- */
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption, .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before {
	bottom: 0;
	left: 0;
	position: initial!important;
	right: 0;
}
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before {
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	content: "";
	height: 100%;
	-webkit-mask-image: linear-gradient(0deg,#000 20%,#0000);
	mask-image: linear-gradient(0deg,#000 20%,#0000);
	max-height: 0%;
}
.wp-block-gallery.has-nested-images figcaption {
	flex-basis: 0%;
}
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	overflow: unset!important;
	background: none;
	box-sizing: border-box;
	color: #000;
	font-size: .9em;
	font-weight: 700;
	text-align: left;
	text-shadow: none;
	margin: 0;
	will-change: transform;
	padding-left: 0em;
	padding-right: 0em;
	padding-top: .5em;
	padding-bottom: 2em;
	height: 1em;
	max-height: 2em;
}

/* ----- 前の記事・次の記事 -------------------- */

.navigation.post-navigation { margin-top: 60px; }
.nav-links { font-size: .9em; display: flex; }
.nav-links div[class^="nav-"] { width: 50%; }
.nav-links .nav-next { margin-left: auto; }
.nav-links .nav-previous + .nav-next { margin-left: -1px; }
.nav-links a {
	display: flex; align-items: center; justify-content: center; overflow-wrap: anywhere; word-break: break-all;
	width: 100%; height: 4em; border: 1px solid #003f88; padding: .5em; text-align: justify;
	}
.nav-links a:hover { background: #003f88; color: #fff; text-decoration: none; }
@media all and (max-width: 768px) {
	.nav-links a { height: 8em; line-height: 1.3em; }
	}
.nav-previous a::before { content: "＜"; padding-right: .5em; }
.nav-next a::after { content: "＞"; padding-left: .5em; }

/* ************************************************************
アーカイブ
************************************************************ */

.list-exp { margin-bottom: 60px; text-align:justify; } /* アーカイブタイトル下の説明文 */
.blog-cat-list { padding-bottom:30px; }
.archive-list { list-style:none; padding-left: 0px;}
@media screen and (max-width: 768px) {
	.blog-cat-list { padding-top:10px; padding-bottom:30px; }
}

/* ----- NEWラベル -------------------- */

.card-img { position: relative; width: auto; }
.archive-new { 
	position: absolute; top: 0; left: 0; color: #ffffff; background: #cb171d;
	padding: 0 .4em; margin-top: 1px; margin-left: 1px; font-size: .9em; font-weight: 700;
}
@media screen and (max-width: 768px) {
	.archive-new  { font-size: .8em; line-height: 1.6em; padding: 0 .2em; }
}

/* ----- ページネーション -------------------- */

.archive-pagenation { margin-top:60px; 	line-height: 31px; }
.archive-pagenation ul {
	display: flex; list-style: none; justify-content: center; padding-left: 0em; gap: .5em; margin-bottom: 0px;
}
.archive-pagenation li .page-numbers { display: inline-block; min-width: 2em; height: 2em; padding-top: .1em; text-align:center; font-size:1em; letter-spacing: 0em; text-align: center; }
.archive-pagenation li a { -webkit-transition: background-color .3s,color .3s; transition: background-color .3s,color .3s; text-decoration: none; background-color: #fff; color: #003f88; border:1px solid #003f88 }
.archive-pagenation li a:hover { color:#fff; background:#003f88; text-decoration:none; }
.archive-pagenation .current { padding-top: .15em !important; background-color: #003f88; color: #fff; }

@media screen and (max-width:768px) {
	.archive-pagenation { margin-top:80px; 	margin-bottom:80px; line-height: 28px; }
	.archive-pagenation ul { display: flex; list-style: none; justify-content: center; font-size:.9em; letter-spacing: 0em; padding-left: 0em; gap: .5em; }
	.archive-pagenation li .page-numbers { display: inline-block; min-width: 2em; height: 2em; padding-top: 0; text-align: center; }
	.archive-pagenation { margin-top:60px; margin-bottom:0px; }
	.archive-pagenation .current { padding-top: .1em !important; }
	.archive-bottom-link { width: 90%; }
	}

/* ************************************************************
トップMV
************************************************************ */

.top-mv {
	overflow: hidden;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	margin-bottom: 20px;
	padding-bottom: 45px;
	padding-left: 0px;
	margin-top:0px;
	line-height: 0px;
	list-style: none;
	margin: 0;
	padding: 0;
	touch-action: pan-y;
	-webkit-overflow-scrolling: touch;
	}
.top-mv li {
	overflow: hidden;
}
@media all and (max-width: 768px) {
	.top-mv { padding-left: 0px; padding-bottom: 40px; }
	}

.top-mv__img { margin:0 auto; width: 100%; }
.top-mv .slick-dots { bottom: 0; }
.top-mv .slick-dots li {
	position: relative;
	width: 15px;
	height: 15px;
	margin: 0 8px;
	}
.top-mv .slick-dots button {
	width: 15px;
	height: 15px;
	padding: 0;
	background: #b6b6b6;
	}
.top-mv .slick-active button { background: #ffc000 !important; }

/* ----- slickスライダー -------------------- */

.slick-slider {
	position: relative;
	display: block;
	box-sizing: border-box;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-khtml-user-select: none;
	-ms-touch-action: pan-y;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
	}

.slick-slider * { outline: none; }
.slick-list {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 0;
	padding: 0;
	margin-bottom: 40px;
	}
@media all and (max-width: 768px) {
	.slick-list { margin-bottom: 0; }
}
.slick-list:focus { outline: none; }
.slick-list.dragging { cursor: pointer; cursor: hand; }
.slick-slider .slick-track,.slick-slider .slick-list {
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	-ms-transform: translate3d(0, 0, 0);
	-o-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	}

.slick-track { position: relative; top: 0; left: 0; display: block; margin-left: auto; margin-right: auto; }
.slick-track:before,.slick-track:after { display: table; content: ""; }

.slick-track:after { clear: both; }
.slick-loading .slick-track { visibility: hidden; }

.slick-slide { display: none; float: left; width:100%; 	min-height: 1px; 
	-webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d; /* スライド時のチラつき対応 */
	}
[dir=rtl] .slick-slide { float: right; }
.slick-slide img { display: block; width:100%; height: auto; image-rendering: auto; }
.slick-slide.slick-loading img { display: none; }
.slick-slide.dragging img { pointer-events: none; }
.slick-initialized .slick-slide { display: block; }
.slick-loading .slick-slide { visibility: hidden; }
.slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; }
.slick-arrow.slick-hidden { display: none; }
.slick-dotted.slick-slider { margin-bottom: 25px; }

/* 前後の矢印 */

.slick-prev,.slick-next {
	position: absolute;
	display: block;
	height: 50px;
	width: 50px;
	line-height: 0px;
	font-size: 0px;
	cursor: pointer;
	background: transparent;
	color: transparent;
	top: 50%;
	transform: translate(0, -50%);
	padding: 0;
	border: none;
	outline: none;
	}

.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus {
	outline: none;
	background: transparent;
	color: transparent;
	}
.slick-prev { left: -20px; }
.slick-next { right: -20px; }
.slick-dots {
	position: absolute;
	bottom: -20px;
	list-style: none;
	display: block;
	text-align: center;
	padding: 0;
	margin: 0;
	width: 100%;
	}
.slick-dots li {
	position: relative; display: inline-block; height: 10px; width: 10px; margin: 0 5px;
	padding: 0; cursor: pointer; }
.slick-dots li button {
	border: 0; background: red; display: block; height: 10px; width: 10px;
	outline: none; line-height: 0px; font-size: 0px; padding: 5px; border-radius: 50%!important; cursor: pointer; }
.slick-dots li button:focus,.slick-dots li button:hover { outline: none; }
.slick-dots li.slick-active button { background: blue; }

/* ********** MVが一枚固定の場合（複数の場合はこの部分をコメントアウト） ****************************** */

.slick-dots { display: none; }
.top-mv { padding-bottom: 0px!important; margin-bottom: 60px !important; }
.slick-list { margin-bottom: 0; }
.slick-dotted.slick-slider { margin-bottom: 0 !important; }
@media (max-width: 600px) {
	.top-mv { margin-bottom: 30px !important; }
	}

/* ********** スマホでのMV画像読み込み時の修正 ****************************** */

@media (max-width: 600px) {
	.top-mv li { aspect-ratio: 1000 / 1550; width: 100%; position: relative; }
	.top-mv__img,.top-mv picture,.slick-slider-container { width: 100%; height: 100%; object-fit: cover; display: block; }
	}

/* ************************************************************
フォーム関係
************************************************************ */

/* --- 送信ボタン (More矢印 \f105 相当) --- */
.button, button, input[type="submit"], input[type="reset"], input[type="button"] {
    width: 100%; 
    font-size: 1.2rem; 
    font-weight: 700; 
    color: #003f88; 
    background-color: #fff; 
    border: 2px solid #003f88; 
    padding: 20px 10px; 
    border-radius: 5px;
    cursor: pointer;
    display: block;
    text-align: center;

    /* 背景アイコンの設定（右矢印） */
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"%3E%3Cpath fill="%23003f88" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-size: 15px; /* アイコンサイズ */
    background-position: calc(50% + 3em) center; /* 中央から文字数分右にずらす */
    transition: all 0.3s;
}

/* --- 戻るボタン (Back矢印 \f104 相当) --- */
.wpcf7-form-control.wpcf7-back.wpcf7c-elm-step2.wpcf7c-btn-back {
    width: 50%;
    margin: 0 auto;
    border-radius: 0 !important;
    border: 1px solid #003f88;

    /* 背景アイコンの設定（左矢印） */
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"%3E%3Cpath fill="%23003f88" d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"/%3E%3C/svg%3E');
    background-position: calc(50% - 3em) center; /* 中央から左にずらす */
}

/* --- ホバー時：背景色とアイコン色を反転 --- */
.button:hover, button:hover, input[type="submit"]:hover, 
.wpcf7-form-control.wpcf7-back.wpcf7c-elm-step2.wpcf7c-btn-back:hover { 
    color: #fff; 
    background-color: #003f88;
    /* アイコンの色を白（fill=%23fff）に変更したSVGを読み込む */
}

input[type="submit"]:hover {
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"%3E%3Cpath fill="%23fff" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/%3E%3C/svg%3E');
}

.wpcf7-form-control.wpcf7-back.wpcf7c-elm-step2.wpcf7c-btn-back:hover {
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"%3E%3Cpath fill="%23fff" d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"/%3E%3C/svg%3E');
}

.simplebar-content-wrapper { background: #fff!important; }

.box-atenntion { margin-bottom: 10px; }
.box-atenntion-content { padding: 50px; border: none !important; background: #f2f2f2; }
.input-label-bold { font-weight: 700; background: none !important; }
input[type="submit"] { font-size: 1.5em!important; }
@media (max-width: 768px) {
.box-atenntion-content { padding: 10px; }
input[type="submit"] { font-size: 1.2em!important; }
}

.contact-accordion .accordion__item { border: 2px solid #003f88;  border-radius: 5px; margin-bottom: 0; }
.contact-accordion .accordion__head { border: none; padding-top: 5px; padding-bottom: 5px; }
.contact-accordion .accordion__item .accordion__head::after { 
	font-family: "FontAwesome"; content: "\f107"; }
.contact-accordion .accordion__item.active .accordion__head::after { 
	font-family: "FontAwesome"; content: "\f106"; color: #ffc000 !important; }
.contact-accordion .accordion__item .accordion__head::after, .contact-accordion .accordion__item.active .accordion__head::after { position: absolute; top: 25px; right: 20px; font-size: 1.6em; color: #003f88; }
.contact-accordion .qah2-2 { font-size: 1.5em; color: #003f88; font-weight: 700; margin-top:15px; margin-bottom: 20px; padding-left: 30px; }
.contact-accordion .accordion__body { padding: 0 30px 0 30px !important; }
@media screen and (max-width: 600px) { 
.contact-accordion .accordion__head { padding-top: 5px; }
.contact-accordion .qah2-2 { font-size: 1.2em; color: #003f88; font-weight: 700; 
	margin-bottom: 5px !important; padding-left: 15px; margin-top: 5px !important; }
.contact-accordion .accordion__item .accordion__head::after,.contact-accordion .accordion__item.active .accordion__head::after
	{ top: 12px; right: 15px; font-size: 1.2em; color: #003f88; }
.contact-accordion .accordion__body { padding: 0 20px 0 20px !important; }
}

legend { font-size: 1em; font-weight: 700; padding-left: 0; }

.button:hover, button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover {
  color: #003f88;
  background-color: #003f88!important;
  border-color: #003f88!important;
  cursor: hand;
  cursor: pointer;
}

/* ************************************************************
 検索ボックス
************************************************************ */

.searchform { display: flex; }
.searchfield {
	width: 100%; padding:0 15px;/*プレースホルダーの位置調整*/
	background: #eeeeee; border: 1px solid #003f88!important; outline:0;/*クリック時の青い枠線消す*/
}

.searchform input[type="text"] { 
	border: 1px solid #003f88 !important; padding: .6em; width: calc(100% - 50px); font-size: 1em;
}
@media all and (max-width: 768px) {
.searchform input[type="text"] { 
	padding: .3em;
	width: calc(100% - 40px);
	font-size: .95em;
	margin-top: 4px;
	margin-bottom: 10px;
}
}

.searchsubmit {
	width: 50px;
	background :#ffffff;
	border:none;
	color: #003f88;
	border: solid #003f88 ;
	border-width: 1px 1px 1px 0;
	font-size: 1em;
	cursor: pointer;
	padding: .2em;
	margin-top: 5px;
	margin-bottom: 5px;
}
@media all and (max-width: 768px) {
.searchsubmit {
	width: 40px;
	padding: .4em;
	margin-top: 4px;
	margin-bottom: 10px;
}
}

.searchsubmit:hover {
	background: #003f88;/*背景カラー変更*/
}
.footer-element-left .searchbox { display:none; }
.searchbox { 
	
}
.serach-result-list {
  padding-left: 0em;
  margin-left: 1.3em;
}
.serach-result-list li::before {
  content: "●";
  color: #ffc000;
  margin-right: .3em;
}
.serach-result-list li {
  font-size: 1em;
  text-indent: -1.3em;
}
