@charset "UTF-8";

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

/* カウンターのリセット */
.policy-module { counter-reset: section-counter; }

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

.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: #cb171d; margin-right: .5em; }

@media screen and (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; }

/* タイトル部分 */
.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: 800;
  text-align: left;
  color:#003f88;
}

/* 擬似要素で番号表示 */
.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: #3379bd; /* color修正 */
}

@media screen and (max-width:768px) {
    .policy-module .qah2-2 { font-weight: 800; }
    .policy-module .qa-img{ padding-left: 0px }
    .policy-module .qa-indent { padding-left: 0px; }
    .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;
    }
}

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

.policy-module .accordion__item {
  counter-increment: section-counter;
}

.policy-module .accordion__content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 2s ease-out;
}
.policy-module .accordion__item.active .accordion__content {
  max-height: 3000px;
}

.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,ol li:last-child { border-bottom: none!important; }

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

.policy-module .accordion__head {
  position: relative;
  cursor: pointer;
  border-top: 2px solid #3379bd;
  display: flex;
  align-items: center;
  min-height: 4em;
  height: auto;
  padding: 1em 0;
}
.policy-dpfp .accordion__head {
  position: relative;
  cursor: pointer;
  border-top: 1px solid #aaa;
  padding-bottom: 10px;
  padding-top: 10px;
}

/* 開閉アイコン */
.policy-module .accordion__head::after {
  font-family: "FontAwesome";
  content: "\f107";
  position: absolute; 
  top: 50%;
  transform: translateY(-50%);
  right: 10px;
  font-size: 1.6em;
  font-weight:900;
  color: #003f88;
}
.policy-module .accordion__item.active .accordion__head::after {
  content: "\f106"; 
}

.policy-module .accordion__body { overflow: hidden; width: 100%; height: 0; padding: 0 10px; transition: all .25s ease; }
.policy-module .accordion__item.active .accordion__body { height: auto; padding: 10px; padding-bottom: 30px;}
.policy-module .accordion__list .last-item { border-bottom: 2px solid #3379bd !important; }

.policy-module .accordion__body ul { list-style:none; padding-bottom:1em; padding-left:1em; margin-top:0; text-align: justify;}
.policy-module .accordion__body ul li { text-indent: -1.2em; padding-left: 1.2em; font-size:1.2em; font-weight:600; margin-bottom:.5em; }
.policy-module .accordion__body ul li::before { content: "●"; color: #3379bd; margin-right: .2em; line-height: 1.6em; }
.policy-module .accordion__body ul li ul { margin-top: .5em; padding-left: 0; padding-bottom: 0; }
.policy-module .accordion__body ul li ul li { font-size:.8em; font-weight:400; text-indent: 0; padding-left: 0; margin-bottom: 0; }
.policy-module .accordion__body ul li ul li::before { content: none; }

@media screen and (max-width:768px) {
    .policy-module .accordion__body ul { padding-left: .7em; }
    .policy-module .accordion__body ul li { font-size:1.05em; }
    .policy-module .accordion__body ul li ul li { font-size:.9em; }
    .policy-module .accordion__head { min-height: 3em; padding: 5px 0; }
    .policy-module .accordion__head::after { right: 0; font-size: 1.2em; }
}

/* --- policy-body 核心部分 --- */
.policy-body { background: #f2f2f2; border: none; border-radius: 0; padding: 3em 4em 4em 4em; }
.policy-dpfp .policy-body { background: none; border: none; border-radius: 0; padding: 0; }

.policy-module .accordion__item.active .accordion__body { height: auto; padding-left: 3.1em; padding-bottom: 0; }
.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; line-height: 1.5em; margin-top: 1em; margin-bottom: 1em; }

@media screen and (max-width: 768px) {
    .policy-body { padding: 1em; padding-bottom: 1em; }
    .policy-body .accordion__item.active .accordion__body { padding: .5em 0 0 .5em; }
}

/* ----- 政策リスト5本柱 ----- */
.policy-module .policy1txt { color: #3091d0; }
.policy-module .policy2txt { color: #52a57d; }
.policy-module .policy3txt { color: #d55e7d; }
.policy-module .policy4txt { color: #e0823a; }
.policy-module .policy5txt { color: #2861a3; }
.policy-module .policy1 ul li::before { content: "●"; color: #3091d0; }
.policy-module .policy2 ul li::before { content: "●"; color: #52a57d; }
.policy-module .policy3 ul li::before { content: "●"; color: #d55e7d; }
.policy-module .policy4 ul li::before { content: "●"; color: #e0823a; }
.policy-module .policy5 ul li::before { content: "●"; color: #2861a3; }

.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; }
}

/* ----- 政策リスト個人の重点政策 ----- */
.module-policy2 .accordion__body p { padding-left: 1em; margin-top: 0; font-size: 1em; }
.module-policy2 .policylist-subtitle { color:#003f88; }
.module-policy2 .policytxt { margin-right:.5em; color: #e8810f; }
.module-policy2 .more { margin-top: 60px; }
@media (max-width: 768px){
    .module-policy2 .accordion__body p { padding-left: 0; }
    .module-policy2 .more { margin-top: 30px; }
}
    
/* ==========================================================================
   ★ 好循環セクション (PC:横並び / SP:縦積み)
   ========================================================================== */

.circulation-image-wrap { background: #fff; }
.circulation-image { padding: 10px; }
.custom-list { counter-reset: my-counter; }

/* PC版レイアウト */
@media screen and (min-width: 769px) {
    .custom-list { display: flex; gap: 20px; align-items: stretch; }
    .circulation-container { flex: 1; margin-bottom: 0; }
}

/* 共通パーツ */

.circulation-title { font-weight: 800; line-height:1.4em; text-align:center; margin-top: 60px; }
.circulation-container { padding: 0; background: #fff; border: 1px solid #eee; }
.circulation-container-title { background: #3379bd; color: #fff; padding: 8px 10px; margin-bottom: .5em; }
.circulation-container-title.list-item { display: flex; align-items: center; }

.circulation-container-title.list-item::before {
  counter-increment: my-counter;
  content: counter(my-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  margin-right: 10px;
  font-family: "Oswald", sans-serif;
  font-size: 1.2em;
  font-weight: 400;
}

.item-body { flex: 1; line-height: 1.4; font-weight: 700; }
.item-body span { color: #fff100; }

.circulation-container-txt { padding: 0 1em 1em 1em; font-size: .95em; line-height: 1.6em; text-align: justify; }
.circulation-container { margin-bottom: 20px; }
@media screen and (max-width: 768px) {
    .circulation-container-title.list-item::before { font-size: 2.2em; font-weight: 400; }
}