@charset "UTF-8";

/* ==========================================================================
   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: 1.6em;
  font-weight: 700;
  text-align: left;
}

/* 擬似要素で番号表示（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-policy-num);
}

@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: 3em; 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,.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 .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); }
}

