@charset "UTF-8";

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

/* カウンターのリセット（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; }

/* タイトル部分（custom.cssを優先） */
.policy-module .qah2-2 {
  position: relative;
  padding-left: 2.1em;
  padding-right: 3em;
  font-variant-numeric: tabular-nums;
  line-height: 1.3em;
  letter-spacing: .05em;
  margin: 0 !important;
  font-size: 1.8em;
  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: "Fraunces", sans-serif;
  font-size: 1.8em;
  font-weight: 400;
  line-height: 1;
  color: #fabe00;
}

@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; }
    /* 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;
    }
}

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

@counter-style circled-num {
  system: fixed;
  symbols: ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿;
  suffix: "";
}

/* 各アイテムでカウンターを進める（custom.cssより） */
.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__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: 2px solid #ffc000;
  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 #ccc;
  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 {
  font-family: "FontAwesome";
  content: "\f106"; 
  right: 10px;
  font-size: 1.6em;
  font-weight:900;
  color: #ffc000;
}

.policy-module .accordion__body { overflow: hidden; width: 100%; height: 0; padding: 0 10px; transition: all .25s ease; }

.policy-module .accordion__body ul { list-style:none; padding-bottom:1em; padding-left:1em; margin-top:1em; counter-reset: item-counter; }
.policy-module .accordion__body ul li { counter-increment: item-counter; text-indent: -1.5em; padding-left: 1.5em; }
.policy-module .accordion__body ul li::before {
  content: counter(item-counter, circled-num);
  color: #ffc000;
  margin-right: .5em;
}

@media screen and (max-width:768px) {
    /* SPヘッダー（custom.css優先） */
    .policy-module .accordion__head {
        display: flex;
        align-items: center;
        min-height: 3em;
        height: auto;
        padding: 5px 0;
    }
    .policy-module .accordion__head::after {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 0;
        font-size: 1.2em;
        color: #003f88;
    }
    .policy-module .accordion__item.active .accordion__head::after {
        right: 0;
        font-size: 1.2em;
    }
}

.policy-dpfp .policy-body { background: none; border: none; border-radius: 0; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }
.policy-body { background: #f2f2f2; border: none; border-radius: 0; padding-left: 4em; padding-right: 4em; padding-top: 3em; padding-bottom: 4em; }
.policy-module .accordion__item.active .accordion__body { height: auto; padding: 10px 10px 0 2em; }
.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; }
.policy-module .accordion__list .last-item { border-bottom: 2px solid #ffc000 !important; }
.policy-dpfp .accordion__list .last-item { border-bottom: 1px solid #ccc !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 screen and (max-width: 768px) {
    .policy-body { padding-left: 1em; padding-right: 1em; padding-top: 1em; padding-bottom: .5em; }
    .policy-body .accordion__item.active .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; counter-reset: item-counter; }
    .policy-module .accordion__body ul li { counter-increment: item-counter; font-size: 1em; font-weight: 600; margin-bottom: .5em; text-indent: -1.5em; padding-left: 1.5em; }
    .policy-module .accordion__body ul ul li { font-size: 1em; font-weight: normal; margin-bottom: 0; text-indent: -1.5em; padding-left: 1.5em; text-align:justify; }
    .policy0,.policy1,.policy2,.policy3,.policy4,.policy5 { padding-left: 0; }
}

/* ----- 政策リスト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; margin-right: .2em; }
.policy-module .policy2 ul li::before { content: "●"; color: #52a57d; margin-right: .2em; }
.policy-module .policy3 ul li::before { content: "●"; color: #d55e7d; margin-right: .2em; }
.policy-module .policy4 ul li { color: #000; }
.policy-module .policy4 ul li::before { content: "●"; color: #e0823a; margin-right: .2em; }
.policy-module .policy5 ul li { color: #000; }
.policy-module .policy5 ul li::before { content: "●"; color: #2861a3; 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:#003f88; }
.module-policy2 .accordion__body ul li { font-weight: 700; margin-bottom: .5em; border-top: 1px solid #ccc; padding-top: .5em;}
.module-policy2 .accordion__body ul li:last-child { border-bottom: 1px solid #ccc !important; padding-bottom: .5em; }
.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 .policylist-subtitle { color:#003f88; }
    .module-policy2 .more { margin-top: 30px; }
}