:root{
    --main-color:#006CB8;
    --accent-color:#FFF462;
    --accent-red:#E60012;
}
@font-face {
    font-family: 'd-din_condenseddinCnBd';
    src: url('../font/d-dincondensed-bold-webfont.woff2') format('woff2'),
         url('../font/d-dincondensed-bold-webfont.woff2') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap; 
}

.attitude__heading b,.heading-num,.gridItem__attitude::before,.policy__list .policy__listItem::before,.stategy__list > li > h3::before,.stategy__detailList li::before{
  font-family:'d-din_condenseddinCnBd', sans-serif;
}


body{
    margin:0;
    padding:0;
    font-family: "Noto Sans JP", sans-serif;
  }
  ul,ol{
    list-style: none;
  }
ul,ol,li{
  padding: 0;
  margin: 0;
}
img{
    width: 100%;
    height: auto;
}
.flex{
  display: flex;
}
.grid{
  display: grid;
}

.accent-yellow{
  color: var(--accent-color);
}
.accent-red{
  color: var(--accent-red);
}
.accent__marker{
  background: linear-gradient(transparent 60%, var(--accent-color) 40%);
  display: inline;
}

.spOnly,.scroll,.eightPolicy_spImg{
  display: none;
}

/* ---------------------------------common */
.comonWrap{
    max-width: 960px;
    margin: 0 auto;
}

/* --------------------------------背景が透ける青ベタ */

.bg-multiply--blue::before{
  content: '';
  position: absolute;
  inset: 0;
  background-color:var(--main-color);
  mix-blend-mode: multiply;
  z-index: -1;
}



/* ---------------------------------topへ戻るボタン */
.top{
  background-color: var(--main-color);
  width: 65px;
  height: 65px;
  border-radius: 50%;
  position: fixed;
  right: 0;
  bottom: 0;
}

/* ----------------------------------------ファーストビュー */
.seisaku__FV,.seisaku__FV .comonWrap{
    position: relative;
}
.seisaku__topHead{
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  padding:1rem 0 0 1rem;
  margin: 0 0 1rem;
  position: relative;
  z-index: 5;
}
  .seisaku__FV{
  background: linear-gradient(180deg, #006CB8 20%, #ffffff 20%);
   margin-bottom: 80px;
  }
.seisaku__FV .comonWrap{
    z-index: 3;
    padding: 0 1rem;
}
  /* .seisaku__FV::before{
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 1;
  height: 100%;
  background-color: #fff;
-webkit-clip-path: polygon(0% 50%, 100% 50%, 100% 0%);
clip-path: polygon(0% 50%, 100% 50%, 100% 0%);

  } */
   .seisaku__FV::before{
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--main-color);
    transform: skewY(-14deg) translateY(-245px);
    z-index: 1;
    height: calc(100% + 185px);
   }

  /* --------------------背景 */
  .bg-wrap{
    background-image: url(../img/bg_pc.webp);
    background-size: cover;
    background-repeat: repeat-y;
    isolation: isolate;
    z-index: -1;
  }
  
 /* ----------------------3つの姿勢 */
 .sect-attitude{
  padding: 60px 1rem 0;
 }
.sect-attitude .comonWrap{
  border-top: 3px solid var(--main-color);
   border-bottom: 3px solid var(--main-color);
   padding: 40px 60px;
   margin: 0 auto 128px;
}

.grid-attitude{
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap:0 1.5rem;
  counter-reset: list-counter;
}

.gridItem__attitude{
  counter-increment:list-counter;
  position: relative;
  padding-left: 2.5rem;
}
.gridItem__attitude::before{
  content: counter(list-counter) "";
  color: var(--main-color);
  font-size: 54px;
  font-weight: 700;
  line-height: 1;
      position: absolute;
      left: 0;
      top: 0;
}

.attitude__heading{
  border-bottom: 3px solid var(--main-color);
  font-weight: 900;
  font-size: 63px;
  margin: 0;
  display: inline-block;
}
.attitude__heading b{
  font-size: 1.9em;
  color: var(--main-color);
  line-height: 1;
  text-box: trim-both cap alphabetic;
}
.attitude__bubble{
  background-color: var(--main-color);
  color: #fff;
  border-radius: 25px;
  font-size: 0.44em;
  padding:0 18px;
  display: block;
  width: fit-content;
  margin-left: auto;
  margin-bottom: -2.7rem;
  position: relative;
  z-index: 1;
}
.attitude__bubble::after{
  content: "";
  position: absolute;
  bottom: 1px;
  left: 15%;
  border-style: solid;
  border-width: 10px 30px 0 0;
  border-color: #006cb8 transparent transparent;
  translate: calc(-50% - 2.2px) 100%;
  transform: skew(-25deg);
  transform-origin: top;
  z-index: 0;
}

.attitude__subHeading{
  font-size: 21px;
  font-weight: 900;
  margin-top: 0;
  margin-bottom: 0.75rem;
}
.attitude__txt{
  font-weight: 600;
  line-height: 1.6875;
}

.attitude__accent{
  font-size: 1.2em;
  font-weight: 800;
}

 /* ----------------------8つの方針 */

  .sect-policy,#policy h2.heading,.policy__list,.policy__listTxt,.policy__list .policy__listItem{
    position: relative;
  }
  .sect-policy{
    padding: 90px 1rem;
  }
   .sect-policy .comonWrap{
    position: relative;
    z-index: 2;
   }
  #policy h2.heading,.policy__list{
     z-index: 2;
  }

  #policy h2.heading{
    color: #fff;
    border-bottom: 3px solid #fff;
    padding-bottom: 8px;
    margin: 0 0 1.5rem;
  }
   #policy h2.heading .flex{
    justify-content: space-between;
    align-items: center;
   }
  
  .policy-heading__pre,.policy-heading__main,.policy-heading__txtRight{
    display: block;
  }
  .policy-heading__pre{
    font-size: 31px;
    font-weight: 700;
    line-height: 1.35;
  }
  .policy-heading__main,.heading_largeTxt--policy,.heading-num{font-weight: 900;}
  .policy-heading__main{
   font-size: 32px;
  }
  .policy-heading__txtL{
    font-size: 1.27em;
  }
  .heading_largeTxt--policy{
    font-size: 91px;
    
  }
  .heading-num{
    font-size: 175px;
    line-height: 1;
  }

  .policy__list{
    grid-auto-flow: column; /* データを縦方向に流す */
    grid-template-rows: repeat(4, auto); /* 縦に4行作ったら次の列へ */
    grid-template-columns: repeat(2, 1fr); /* PC版: 2列 */
    gap: 17px;
    counter-reset: list-counter;
  }

    .policy__list .policy__listItem{
      color: #fff;
      counter-increment: list-counter;
      padding-left: 2em;
    }
    .policy__list .policy__listItem::before{
      content: counter(list-counter) "";
      font-size: 35.5px;
      font-weight: 700;
      line-height: 1;
      position: absolute;
      left: 0;
      top: 0.1em;
    }
    .policy__list .policy__listItem h3{
      font-size: 22px;
      border-bottom: 1px dashed #fff;
      margin: 0;
      padding:0 0 4px 0;
    }
.policy__list .policy__listItem h3 .accent{
 font-size: 1.25em;
}

.policy__listTxt{
      font-size: 17px;
    font-weight: 600;
    padding-left: 1em;
    color: #EAF5FC;
    margin: 0.25em 0 0;
}
.policy__listTxt::before{
  content: "◆";
  position: absolute;
  left: 0;
  top: 0;
}

/* -------------------------------------100の政策 */
#strategy{
  padding-bottom: 180px;
  padding-left: 1rem;
  overflow-x: hidden;
}
.heading__strategy{
  font-size: 40px;
  color: var(--main-color);
  font-weight: 900;
  position: relative;
}
.heading__strategy::after{
  content: "";
  width: 100vw;
  height: 12px;
  position: absolute;
  left: 0;
  bottom: -0.75rem;
  margin-right: calc(50% - 50vw);
  -webkit-clip-path: polygon(0.5% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(0.5% 0%, 100% 0%, 100% 100%, 0% 100%);
background-color: var(--main-color);
}
.heading__strategy .flex{
  align-items: center;
}

.strategyHead__largeTxt{
  font-size: 1.275em;
}

.heading__strategy .heading-left{
  line-height: 1.3;
  letter-spacing: 0.06em;
  padding-left: 1rem;
}

#strategy .heading-right{
  font-size: 1.75em;
  color: #fff;
  -webkit-text-stroke: 11px var(--main-color);
  paint-order: stroke fill;
  letter-spacing: 0.1em;
}
.inner__heading_largeTxt--strategy{
  font-size: 1.25em;
}
.heading__strategy .heading-num{
  line-height: 1;
}

.strategy__listHead{
  background-color: var(--main-color);
  padding: 1rem 0 1rem 2.5em;
  -webkit-clip-path: polygon(10% 0%, 10% 0%, 100% 0%, 100% 100%, 0% 100%);
clip-path: polygon(10% 0%, 10% 0%, 100% 0%, 100% 100%, 0% 100%);
font-size: 20px;
}
.strategy__listHead .accent{
  font-size: 1.35em;
}
.stategy__list{
  counter-reset: parent-seq child-seq;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap:1rem;
  grid-row-gap:0px;
}
.stategy__list > li{
  counter-increment: parent-seq;
}
.stategy__list > li > h3{
  display: flex;
  align-items: center; /* ★2行になったh3全体の「縦中央」に数字を配置 */
  gap: 0.5em;
  margin-top: 0;
}
.stategy__list > li > h3::before{
  content: counter(parent-seq) "";
  font-weight: bold;
  color: white;
  flex-shrink: 0;
  font-size: 4.1em;
  line-height: 1;
}
.stategy__list > li > h3 .h3-body{
  display: block;
}

.stategy__detailList--img{
  position: relative;
}
.stategy__detailList--img::before,.stategy__detailList--fifth::after,.stategy__detailList--sixth::after{
  content: "";
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
}
.stategy__detailList--first{
  padding-bottom: 120px;
}
.stategy__detailList--first::before{
  background-image: url(../img/strt_01.webp);
  width: 112px;
  height: 112px;
  right: 0;
  bottom: 5%;
}
.stategy__detailList--third{
  padding-bottom: 100px;
}
.stategy__detailList--third::before{
  background-image: url(../img/strt_02.webp);
  width: 111px;
  height: 111px;
  right: -1%;
  bottom: 14%;
}
.stategy__detailList--forth::before{
  background-image: url(../img/strt_03.webp);
  width: 111px;
  height: 111px;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
.stategy__detailList--fifth::before{
 background-image: url(../img/strt_04.webp);
 width: 133px;
 height: 133px;
  right: 0%;
 top: 0%;
}
.stategy__detailList--fifth::after{
    background-image: url(../img/strt_05.webp);
    width: 115px;
    height: 115px;
    right: 0%;
    bottom: -15%;
}
.stategy__detailList--sixth{
  padding-bottom: 94px;
}
.stategy__detailList--sixth::before,.stategy__detailList--sixth::after{
  width: 110px;
  height: 110px;
}
.stategy__detailList--sixth::before{
  background-image: url(../img/strt_06.webp);
  right: -7%;
  top: 22%;
}
.stategy__detailList--sixth::after{
     background-image: url(../img/strt_07.webp);
    right: -13%;
    bottom: 12%;
}

.stategy__detailList--seventh::before{
  background-image: url(../img/strt_08.webp);
  width: 145px;
  height: 145px;
  right: 3%;
  bottom: -25%;
}
.stategy__detailList--eighth::before{
  background-image: url(../img/strt_09.webp);
  width: 132px;
  height: 132px;
  right: 2%;
bottom: 25%;
}

.stategy__detailList li{
  counter-increment: child-seq;
  position: relative;
  padding-left: 2rem;
  font-weight: 900;
  font-size: 16px;
}
.stategy__detailList li:not(:last-child){
  margin-bottom: 8px;
}
.stategy__detailList li::before{
  content: counter(child-seq) "";
  position: absolute;
  left: 0;
  font-weight: 900;
  line-height: 1.8;
}
.stategy__detailList li .strategy__accent {
  font-size: 1.25em;
}
.strategy__listHead,.strategy__blue{
  color: #fff;
}
.strategy__blue{
      display: inline-block;
    background-color: var(--main-color);
    border-radius: 10px;
    padding: 0.2em 0.35em;
    font-weight: bold;
    font-size: 14px;
    margin-left: 0.25em;
}

/* ---------------------------------------footer */
.lp__footer{
  padding: 75px 1rem 95px;
  color: #fff;
  background-color: var(--main-color);
}
.lp__footer .flex{
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 2;
}
.footer__largeTxt{
  font-size: 41px;
  font-weight: 900;
  margin: 0 0 1rem;
}
.footer__address{
  font-style: normal;
}
.footer__address .footer__addressTxt,.footer__smallTxt{
  font-weight: 600;
  margin: 0 0 8px;
}
.footer__address .footer__addressTxt{
    font-size: 16px;
}
@media screen and (min-width: 521px) and (max-width: 1024px){

  /* ----------------------8つの方針 */
#policy h2.heading .flex{
  flex-direction: column;
  justify-content: center;
}
.heading-left{
  margin-bottom: -1rem;
}
}

@media (max-width: 1024px){
  /* --------------------100の政策 */
  .heading__strategy .flex{
    flex-direction: column;
  }
}
@media (max-width: 960px){
 .stategy__list{
    grid-template-columns: repeat(1, 1fr);
  }
   /* ----------------------100の政策 */
   .strategy__listHead{
    -webkit-clip-path: polygon(30px 0%, 10% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(30px 0%, 10% 0%, 100% 0%, 100% 100%, 0% 100%);
    font-size: 15px;
    padding: 1rem 0 1rem 4.5em;
   }

   .stategy__detailList{
    padding-right: 1rem;
   }
   
   .stategy__detailList--second{
    padding-bottom: 100px;
   }
   .stategy__detailList--third::before{
    width: 107px;
    height: 107px;
    right: 0;
    bottom: 12px;
   }
   .stategy__detailList--forth{
    padding-bottom: 150px;
   }
   .stategy__detailList--forth::before{
     width: 107px;
    height: 107px;
    top: auto;
    bottom: 3%;
   }
   .stategy__detailList--fifth{
    padding-bottom: 120px;
   }
   .stategy__detailList--fifth::before{
    width: 96px;
    height: 96px;
    top: 30px;
   }
   .stategy__detailList--fifth::after{
    width: 107px;
    height: 107px;
    bottom: 8px;
    right: 1rem;
   }
   .stategy__detailList--sixth{
    padding-bottom: 115px;
   }
   .stategy__detailList--sixth::before{
    right: 0;
    width: 79px;height: 79px;
   }
   .stategy__detailList--sixth::after{
    width: 79px;
    height: 79px;
    right: 1rem;
    bottom: 30px;
   }

   .stategy__detailList--seventh{
    padding-bottom: 100px;
   }
   .stategy__detailList--seventh::before{
    width: 120px;
    height: 120px;
    bottom: 20px;
   }
   .stategy__detailList--eighth::before{
    width: 100px;
    height: 100px;
   }
}

@media (max-width: 767px){
   /* --------------------背景 */
  .bg-wrap{
    background-image: url(../img/bg_sp.webp);
  }
  /* -----------------------FV */
  .seisaku__topHead{
    font-size: 20px;
  }
  .seisaku__FV{
    margin-bottom: 0;
  }
  .seisaku__FV::before{
    height: calc(100% + 245px);
  }
  .seisaku__FVImg{
    width: 77%;
    margin: 0 auto;
    display: block;
  }
  .scroll{
    display: block;
    position: absolute;
    right: 1rem;
    bottom: 10%;
    width: 14px;
    height: auto;
  }

   /* ----------------------3つの姿勢 */
   .sect-attitude .comonWrap,.attitude__heading{
    border: none;
   }
   .sect-attitude .comonWrap{
    padding: 0;
    margin: 50px auto 100px;
   }
   .grid-attitude{
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(1, 1fr);
    gap: 0;
   }

   .gridItem__attitude:not(:last-child){
    margin-bottom: 1.5rem;
   }

   .gridItem__heading{
    display: grid;
    place-content: center;
    margin-bottom: 0.5rem;
   }
   .attitude__subHeading{
    margin-bottom: 1rem;
   }
   .gridItem__attitude{
    padding-left: 2rem;
   }
    /* ----------------------8つの方針 */
    .policy__list{
    grid-auto-flow: row;
    grid-template-rows: none;
    grid-template-columns: 1fr;
    gap: 22px;
  }

  /* -------------------------100の政策 */
  #strategy{
    padding-bottom: 97px;
  }
  .stategy__detailList li::before{
      top: 0.25em;
      line-height: 1.5;
    }
  .strategyList--65{
   padding-bottom: 85px;
  }
    .stategy__detailList--sixth::before{
      content: none;
    }
  .strategyList--65::after{
    content: "";
    background-image: url(../img/strt_06.webp);
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    right: 25%;
    width: 79px;
    height: 79px;
    bottom: 0;
  }
   }                  

  @media (max-width: 520px){
    .spOnly{
      display: block;
    }
    .pcOnly{
      display: none;
    }

     /* ----------------------3つの姿勢 */
     .attitude__heading{
    font-size: 39px;
   }
   .attitude__bubble{
    padding: 3px 18px;
    margin-bottom: -1.5rem;
   margin-left: 2rem;
   }
   .attitude__bubble::after{
     border-width: 7px 19px 0 0;
     translate: calc(-50% - 1.9px) 100%;
   }
   .gridItem__attitude::before{
    font-size: 40px;
   }
   .attitude__subHeading{
    font-size: 16px;
    margin-bottom: 10px;
   }
   .attitude__txt{
    font-size: 14px;
   }
   .attitude__txt .attitude__accent{
    font-size: 1em;
   }

    /* ----------------------8つの方針 */
    .sect-policy{
      padding: 28px 1rem;
    }
    .policy-heading__pre{
      font-size: 16px;
    }
    .policy-heading__main{
      font-size: 18px;
    }
    .policy-heading__txtRight{
      font-size: 16px;
    }
    .policy-heading__txtL{
      font-size: 1.28em;
    }
    .heading_largeTxt--policy,.heading_largeTxt--policy .heading-num{
      color: var(--accent-red);
    }
    #policy h2.heading{
      border-bottom: 1px solid #fff;
      padding-bottom: 1.5rem;
    }
    .heading_largeTxt--policy{
      display: none;
    }
    #policy h2.heading .flex{
      display: inline-block;
      position: relative;
    }
    .eightPolicy_spImg{
      display: block;
      position: absolute;
     left: 102%;
      top: -0.75rem;
      width: 22vw;
      min-width: 83px;
     height: auto;
    }
    /* .heading_largeTxt--policy{
      font-size: 18px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 80px;
      height: 80px;
      border-radius: 50%;
      background-color: #fff;
      position: relative;
      z-index: 5;
    } */

     /* .heading_largeTxt--policy::after{
      content: '';
      position: absolute;
      display: block;
      bottom: 0px; 
  left: 25px;
  width: 25px;
  height: 12px;
  background-color:#fff;
  border-radius: 18px 0 6px 18px/18px 0 1px 18px;
    box-shadow: -3px -15px 0 -5px steelblue inset;
     } */
    .heading_largeTxt--policy .heading-num{
      font-size: 37px;
    }
    .inner__heading_largeTxt--policy{
      text-align: center;
    }

    .policy__list .policy__listItem{
      padding-left: 1em;
    }
    .policy__list .policy__listItem::before{
      font-size: 25px;
    }
    .policy__list .policy__listItem h3{
      font-size: 14px;
    }
    .policy__list .policy__listItem h3 .accent{
      font-size: 1.25em;
    }
    .policy__listTxt{
      margin: 8px 0 0;
      font-size: 13px;
    }
    /* ---------------------100の政策 */
    .heading__strategy{
      font-size: 22px;
      margin: 72px 0 36px;
    }
    .heading__strategy::after{
      height: 6px;
      bottom: 6px;
      -webkit-clip-path: polygon(2% 0%, 100% 0%, 100% 100%, 0% 100%);
      clip-path: polygon(2% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
    .heading__strategy .flex{
      align-items: start;
    }
    .heading__strategy .heading-num{
      font-size: 124px;
    }
    .heading__strategy .heading-left, #strategy .heading-right{
      width: 100%;
    }
    .heading__strategy .heading-left{
      padding-left: 0;
    }
    #strategy .heading-right{
      font-size: 50px;
      -webkit-text-stroke: 8px var(--main-color);
    }
    .inner__heading_largeTxt--strategy{
      font-size: 1.3em;
    }
  .stategy__detailList li{
    font-size: 13px;
    padding-left: 1.5rem;
  }
    .strategy__listHead{
    padding: 0.5rem 0 0.5rem 2.5em;
    }
    .stategy__detailList--sixth::after{
      bottom: 5%;
    }


/* ---------------------------------------footer */
.lp__footer{
  padding: 50px 1rem 30px;
}
.footer__largeTxt{
  font-size: 20px;
  margin: 0 0 0.75rem;
}
.footer__address .footer__addressTxt{
  font-size: 13px;
  /* margin-top: 1.25rem; */
}
.footer__smallTxt{
  text-align: center;
}




  }