/* ********** スマホ版調整 ********** */
@media (max-width: 768px) {
  .update-list-wrap { margin-bottom: 0; }
}

/* ===========================================================
   共有CSS（profile.css）から分離した saito 固有スタイル
   ※ base に無いセレクタのみ。共有 CSS は base 同一に保つ。
   =========================================================== */

/* プロフィール経歴・エピソード見出し（base 標準は中央寄せ）。saito は左寄せ・上余白なし。 */
.profile-block-title { text-align: left; margin-top: 0; }

/* ===========================================================
   共有CSS（style.css）から分離した saito 固有スタイル
   =========================================================== */

/* base との差分（style.css は base 同一に保ち、saito 固有値はここで上書き） */
/* 本文基準サイズ（base 1.1em → saito 1.2em） */
body { font-size: 1.2em; }
/* 見出し太さ（base 700 → saito は太め） */
.entry-header h1, .archive-header h1, .archive-header-no-exp h1 { font-weight: 900; }
.entry-content h2, .has-large-font-size { font-weight: 800; }
/* 広報紙サムネのホバーズーム（base は廃止済み。saito は維持） */
.press-col img { transition: transform 0.4s ease; }
@media (hover: hover) {
	.press-images:hover .press-col img { transform: scale(1.04); opacity: 1; }
}

/* トップ3大ボタン（saito は .module--3index を使用。base は .module--big-index に改名済み） */
.module--3index .card { background-image: url(../img/prof.webp); }
@media (max-width: 768px) { .module--3index { padding-top: 0 !important; } }

/* キャッチコピー内マーカーは紺文字 */
.catchphrase .marker1 { color: var(--color-primary); }

/* ニュースラベルは赤（warning） */
.label-news { color: var(--color-white); background: var(--color-warning); }

/* サブヘッダー：背景なし・下マージン0（base は薄グレー背景＋30px） */
.sub-header { margin-bottom: 0; background: none; }

/* メッセージのキャッチ画像 */
.message-catchphrase { text-align: center; margin-top: 1.5em; }
.message-catchphrase img { width: 60%; height: auto; display: inline-block; }
@media (max-width: 768px) { .message-catchphrase img { width: 100%; } }

/* プロフィールB：写真PC50%・本文ラッパー余白 */
@media (min-width: 769px) {
	.module--profile-b .prof-content-main .image-area { width: 50%; }
	.module--profile-b .top-section-body-wrap.prof02 { padding: 4em 4em; }
}

/* プロフィール経歴の画像（PC正方形 / SP70%中央）＋ミニギャラリーSP2列 */
@media (min-width: 769px) {
	.accordion__list_prof .image-area > * + img { margin-top: 1em; }
	.accordion__list_prof .image-area img { height: auto; min-height: 0; aspect-ratio: 1 / 1; }
}
@media (max-width: 768px) {
	.accordion__list_prof .image-area > * + img { margin-top: 1em; }
	.accordion__list_prof .image-area img { width: 70%; height: 70%; min-height: 100px; margin-left: auto; margin-right: auto; }
	.module-mini-gallery .photo-container { grid-template-columns: repeat(2, 1fr); }
}

/* ===========================================================
   saito 固有：政策（policy）スタイル一式
   policy.css をまるごとここへ移植（policy.css 自体は base 同一に戻す）。
   custom.css は最後に読まれるため、ここの定義が base の policy.css に勝つ。
   =========================================================== */

/* ==========================================================================
   POLICY STYLES (Merged with custom.css)
   ========================================================================== */

/* カウンターのリセット（custom.cssより） */
.policy-module {
  counter-reset: section-counter;
}

.policy-module .bigbanner { width:100%; height: auto;}
.policy-module .bigbanner img { width: 100%; }
@media (max-width: 768px){
  .policy-module .bigbanner { width:100%; height: auto;}
}

.policy-module .top-section-lead p { font-size:1.2em; line-height:1.5em; margin-top:0em; margin-bottom: .2em; text-align:justify; }
.policy-module .top-section-lead ul { list-style: none; font-size:1.2em; line-height: 1.3em; padding-left: 1em; margin-bottom: 0em; text-align:justify; }
.policy-module .top-section-lead ul li { text-indent: -1.5em; padding-left: 1.5em; margin-bottom:.5em; }
.policy-module .top-section-lead ul li::before { content: "●" / ""; color: var(--color-warning); margin-right: .5em; }

@media (max-width: 768px) { 
    .policy-module .top-section-lead p { font-size:1.15em; }
    .policy-module .top-section-lead ul { font-size:1.1em; padding-left: .5em; }
    .policy-module .top-section-lead ul li { text-indent: -1.2em; padding-left:1.2em; }
    .policy-module .top-section-lead ul li::before { margin-right: .2em; }
}

.policy-module .qa-img { padding-left: 36px; }
.policy-module .qa-indent { padding-left: 36px; }

/* タイトル部分（custom.cssを優先） */
.policy-module .qah2-2 {
  position: relative;
  padding-left: 2.5em;
  padding-right: 3em;
  font-variant-numeric: tabular-nums;
  line-height: 1.3em;
  letter-spacing: .02em;
  margin: 0 !important;
  font-size: 2em;
  font-weight: 900;
  text-align: left;
  color: var(--color-primary);
}

/* 擬似要素で番号表示（custom.cssより） */
.policy-module .qah2-2::before {
  content: counter(section-counter) "";
  position: absolute;
  left: 20px;
  top: 45%;
  transform: translateY(-50%);
  width: 3em;
  font-family: "Oswald", sans-serif;
  font-size: 1.8em;
  font-weight: 400;
  line-height: 1;
  color: var(--color-primary);
}

@media (max-width: 768px) {
	.policy-module .qah2-2 { font-weight: 800; }
    .policy-module .qa-img{ padding-left: 0px }
    .policy-module .qa-indent { padding-left: 0px; }
    /* SPタイトルのマージ */
    .policy-module .qah2-2 {
        font-size: 1.2em;
        line-height: 1.4em;
        padding-top: 5px;
        padding-bottom: 5px;
        padding-left: 2em;
        padding-right: 2em;
        margin-top: 0em !important;
        margin-bottom: 0;
        text-align: justify;
    }
    .policy-module .qah2-2::before {
        left: 5px;
        font-size: 1.8em;
    }
}

/* ----- 政策のアコーディオン -------------------- */

/* 各アイテムでカウンターを進める（custom.cssより） */
.policy-module .accordion__item {
  counter-increment: section-counter;
}

/* アコーディオン展開：max-height transition（実コンテンツ高さは JS が scrollHeight を渡す） */
.policy-module .accordion__content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.55s ease-out;
}

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

.policy-module .accordion__list { list-style: none; padding-top: 0; padding-left: 0em; margin-top:0; }

/* アコーディオンヘッダー（custom.cssを優先してフレックスボックス化） */
.policy-module .accordion__head {
  position: relative;
  cursor: pointer;
  border-top: 3px solid var(--color-accent);
  display: flex;
  align-items: center;
  /* 2 行タイトルでも 1 行タイトルでも同じ高さに揃える */
  min-height: 7em;
  height: auto;
  padding: 1em 0;
}
.policy-dpfp .accordion__head {
  position: relative;
  cursor: pointer;
  border-top: 1px solid var(--color-border-image);
  padding-bottom: 10px;
  padding-top: 10px;
}

/* 開閉アイコン */
.policy-module .accordion__head::after {
  font-family: "FontAwesome";
  content: "\f107" / "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  transform-origin: center;
  transition: transform 0.5s ease;
  right: 10px;
  font-size: 1.6em;
  font-weight:900;
  color: var(--color-primary);
}
.policy-module .accordion__item.active .accordion__head::after {
  transform: translateY(-50%) rotate(180deg);
  right: 10px;
  font-size: 1.6em;
  font-weight:900;
  color: var(--color-primary);
}

.policy-module .accordion__body { overflow: hidden; width: 100%; padding: 10px 10px 0 2em; }

.policy-module .accordion__list .last-item { border-bottom: 3px solid var(--color-accent) !important; }

.policy-module .accordion__body ul { list-style:none; padding-bottom:1em; padding-left:1em; margin-top:1em; }
.policy-module .accordion__body ul li { text-indent: -1.2em; padding-left: 1.2em; }
.policy-module .accordion__body ul li::before {
  content: "●" / "";
  color: var(--color-accent);
  margin-right: .2em; text-align: justify;
}

@media (max-width: 768px) {
    /* SPヘッダー（custom.css優先） */
    .policy-module .accordion__head {
        display: flex;
        align-items: center;
        /* 2 行タイトルでも 1 行タイトルでも同じ高さに揃える */
        min-height: 5em;
        height: auto;
        padding: 5px 0;
    }
    .policy-module .accordion__head::after {
        position: absolute;
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
        right: 0;
        font-size: 1.2em;
        color: var(--color-primary);
    }
    .policy-module .accordion__item.active .accordion__head::after {
        transform: translateY(-50%) rotate(180deg);
        right: 0;
        font-size: 1.2em;
    }
}

.policy-dpfp .policy-body { background: none; border: none; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }
.policy-body { background: var(--color-bg-subtle); border: none; padding-left: 4em; padding-right: 4em; padding-top: 4em; padding-bottom: 4em; }
/* padding は .policy-module .accordion__body 側で固定済み（active 側で変更しない） */
.policy-module .accordion__body_subtitle { padding-top: 1em; font-weight: 500; font-size: 1.6em !important; }
.policy-module .accordion__body_lead { margin-top: 0 !important; margin-bottom: 2em !important; }
.policy-module .accordion__body p { font-size: 1.2em; margin-top: 1em; margin-bottom: 1em; }
.policy-module .accordion__list .last-item { border-bottom: 3px solid var(--color-accent) !important; }
.policy-dpfp .accordion__list .last-item { border-bottom: 1px solid var(--color-border-image) !important; }
.policy-module .policylist-subtitle { font-weight:900; font-size:1.5em; }
.policy-module .policylist-subtitle::before { content: none !important; }
.policy0 { padding-left: 1.5em; }
@media (min-width: 769px) {
    .policy0 { padding-left: 2em; }
}
.policy1,.policy2,.policy3,.policy4,.policy5  { padding-left: 1em; }

@media (max-width: 768px) {
    .policy-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: .5em; }
    .policy-body .accordion__item .accordion__body { padding: .5em 0 0 .5em; }
    .policy-module .accordion__body ul { list-style: none; padding-bottom: 1em; padding-left: 0; padding-right: 0; margin-top: 0; }
    .policy-module .accordion__body ul li { font-size: 1em; font-weight: 600; margin-bottom: .5em; text-indent: -1.2em; padding-left: 1.2em; }
    .policy-module .accordion__body ul ul li { font-size: 1em; font-weight: normal; margin-bottom: 0; text-indent: -1.2em; padding-left: 1.2em; text-align:justify; }
    .policy0,.policy1,.policy2,.policy3,.policy4,.policy5 { padding-left: 0; }
}

/* ----- 政策リスト5本柱 ----- */
.policy-module .policy1txt { color: var(--color-policy-1); }
.policy-module .policy2txt { color: var(--color-label-blog); }
.policy-module .policy3txt { color: var(--color-policy-3); }
.policy-module .policy4txt { color: var(--color-policy-4); }
.policy-module .policy5txt { color: var(--color-policy-5); }
.policy-module .policy1 ul li::before { content: "●" / ""; color: var(--color-policy-1); margin-right: .2em; }
.policy-module .policy2 ul li::before { content: "●" / ""; color: var(--color-label-blog); margin-right: .2em; }
.policy-module .policy3 ul li::before { content: "●" / ""; color: var(--color-policy-3); margin-right: .2em; }
.policy-module .policy4 ul li { color: var(--color-black); }
.policy-module .policy4 ul li::before { content: "●" / ""; color: var(--color-policy-4); margin-right: .2em; }
.policy-module .policy5 ul li { color: var(--color-black); }
.policy-module .policy5 ul li::before { content: "●" / ""; color: var(--color-policy-5); margin-right: .2em; }

.policy-module .policylist-subtitle {
  font-weight: 700 !important;
  font-size: 1.3em !important;
}
@media (max-width: 768px){
    .policy-module .policylist-subtitle { font-size: 1.15em !important; line-height: 1.5em; text-indent: 0!important; padding-left: 0!important; }
    .policy-dpfp-subtitle-indent-sp { padding-left: 1.5em; }
}

/* ----- 重点政策リード文 ----- */
.module-policy2 .policy-lead {
	font-weight: 500;
	text-align: justify;
	background: #fff;
	margin-bottom: 3em;
	margin-top: 3em;
	display: grid;
	grid-template-columns: 1fr 28%;
	align-items: end;
	overflow: visible;
}
@media (min-width: 769px) {
	.module-policy2 .policy-lead { display: block; position: relative; padding-right: 40%; }
	.module-policy2 .policy-lead-image { position: absolute; right: 0; bottom: 0; width: 40%; margin-top: 0; }
	.module-policy2 .policy-body { padding-top: 1em; }
}
.module-policy2 .policy-lead-text { padding: .5em 0 .5em 1.5em; }
.module-policy2 .policy-lead-image { display: block; aspect-ratio: 1 / 1; align-self: end; margin-top: -2.5em; }
.module-policy2 .policy-lead-image img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
@media (max-width: 768px) {
	.module-policy2 .policy-lead { grid-template-columns: 1fr; margin-bottom: 1.5em; margin-top: 0; }
	.module-policy2 .policy-lead-text { padding-right: 1.5em; padding-bottom: 0; }
	.module-policy2 .policy-lead-image { margin-top: 0; }
}

/* ----- 政策リスト個人の重点政策 ----- */
.module-policy2 .accordion__body p { padding-left: 1em; margin-top: 0; font-size: 1em; }
.module-policy2 .policylist-subtitle { color:var(--color-primary); }
.module-policy2 .accordion__body ul li { font-weight: 700; margin-bottom: .5em; border-top: 1px solid var(--color-border-image); padding-top: .5em;}
@media (min-width: 769px) {
    .module-policy2 .accordion__body ul li { font-size: 1.1em; }
}
.module-policy2 .accordion__body ul li:last-child { border-bottom: 1px solid var(--color-border-image) !important; padding-bottom: .5em; }
.module-policy2 .policytxt { margin-right:.5em; color: var(--color-label-news); }
@media (max-width: 768px){
    .module-policy2 .accordion__body p { padding-left: 0; }
    .module-policy2 .policylist-subtitle { color:var(--color-primary); }
}

/* ----- policy-b：2カラム積み重ね型 ----- */
.module--policy-b .policy-b__list { display: flex; flex-direction: column; gap: var(--space-md); margin-top: var(--space-lg); margin-bottom: 0; list-style: none; padding: 0; counter-reset: policy-b; }
.module--policy-b .policy-b__item { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding: var(--space-md); background: var(--color-white); counter-increment: policy-b; align-items: center; }
.module--policy .policy-body,
.module--policy-b .policy-body { padding-bottom: 4em; }
@media (max-width: 768px){
    .module--policy .policy-body,
    .module--policy-b .policy-body { padding-bottom: 1.5em; }
}
.module--policy-b .policy-b__title { align-self: center; }
.module--policy-b .policy-b__title h3 { margin: 0; padding: 0; color: var(--color-black); font-size: 1.6em; line-height: 1.3em; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .02em; display: flex; align-items: center; gap: calc(.3em + 10px); }
.module--policy-b .policy-b__title h3::before { content: counter(policy-b) / ""; flex: 0 0 auto; font-family: "Oswald", sans-serif; font-size: 1.8em; font-weight: 400; line-height: 1; color: var(--color-policy-num); display: flex; align-items: center; }
.module--policy-b .policy-b__content ul { margin: 0; }
.module--policy-b .policy-b__content ul li { font-weight: 700; margin-bottom: .5em; }
@media (max-width: 768px){
    .module--policy-b .policy-b__item { grid-template-columns: 1fr; gap: calc(var(--space-sm) * 2); }
    .module--policy-b .policy-b__title h3 { font-size: 1.6em; }
    .module--policy-b .policy-b__title { text-align: center; }
    .module--policy-b .policy-b__title h3 { display: block; }
    .module--policy-b .policy-b__title h3::before { display: block; text-align: center; margin-right: 0; margin-bottom: var(--space-sm); }
}

/* ----- press-body SP の padding-bottom を 1.5em に ----- */
@media (max-width: 768px) {
    .press-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: 1.5em; }
}

/* ----- general セクション見出し（muto-yudai 由来） ----- */
@media (min-width: 769px){
    .module--general .wp-block-heading.has-text-align-center { font-size: 1.6em; }
}
@media (max-width: 768px){
    .general-body h3 { font-weight: 900; font-size: 1.3em; }
}

