/********************
page-template-page-free
********************/
/*
hero
*/
.bsp.page-template-page-free #hero {
  font-size: min(1.25vw, 18px);
}
.bsp.page-template-page-free #hero .hero_wrap {
  position: relative;
  margin-top: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bsp.page-template-page-free #hero .hero_wrap .bg_img {
  width: 100%;
}
.bsp.page-template-page-free #hero .hero_wrap .hero_txt {
  position: absolute;
  text-align: center;
}
.bsp.page-template-page-free #hero .hero_wrap .hero_txt .hero_lead {
  font-size: min(1.25vw, 18px);
  width: 17.51em;
  max-width: 315.17px;
  margin: 0 auto;
}
.bsp.page-template-page-free #hero .hero_wrap .hero_txt h1 {
  font-size: min(2.78vw, 40px);
  line-height: 2.125;
  margin-top: 0.8em;
  color: #fff;
}

@media screen and (max-width: 1023px) {
  .bsp.page-template-page-free #hero .hero_wrap {
    margin-top: 85px;
  }
}
@media screen and (max-width: 767px) {
  .bsp.page-template-page-free #hero .hero_wrap {
    margin-top: calc(60px + 6.67vw);
  }
  .bsp.page-template-page-free #hero .hero_wrap .hero_txt .hero_lead {
    width: 60.03vw;
    max-width: 60.03vw;
  }
  .bsp.page-template-page-free #hero .hero_wrap .hero_txt h1 {
    font-size: 5.33vw;
    margin-top: 0.8em;
  }
}


.bsp.page-template-page-free .wrap > .bl_inner {
  display: flex;
  flex-direction: column;
  gap: 1.6em;
  margin-top: 100px;
  margin-bottom: 100px;
}

.bsp.page-template-page-free .wrap > .bl_inner h2 {
  font-size: min(2.78vw, 22px);
  margin-top: 1em;
  background: #E8E5DC;
  padding: 0.75em 1em;
}

.bsp.page-template-page-free .wrap > .bl_inner h3 {
  font-size: min(1.87vw, 20px);
  border-left: #0F2743 solid 5px;
  padding-left: 0.5em;
}

.bsp.page-template-page-free .wrap > .bl_inner h4 {
  font-size: min(1.56vw, 18px);
  font-weight: bold;
}

.bsp.page-template-page-free .wrap > .bl_inner h5 {
  font-size: min(1.25vw, 16px);
}

.bsp.page-template-page-free .wrap > .bl_inner p {
  font-size: min(1.25vw, 16px);
}

.bsp.page-template-page-free .wrap > .bl_inner table {
  border: 1px solid #000;
}

.bsp.page-template-page-free .wrap > .bl_inner table th {
  border: 1px solid #000;
  padding: 0.5em;
}

.bsp.page-template-page-free .wrap > .bl_inner table td {
  border: 1px solid #000;
  padding: 0.5em;
}

@media screen and (max-width: 767px) {
  .bsp.page-template-page-free .wrap > .bl_inner {
    margin-top: 8vw;
    margin-bottom: 8vw;
  }

  .bsp.page-template-page-free .wrap > .bl_inner h2 {
    font-size: 20px;
  }
  
  .bsp.page-template-page-free .wrap > .bl_inner h3 {
    font-size: 16px;
  }
  
  .bsp.page-template-page-free .wrap > .bl_inner h4 {
    font-size: 16px;
  }
  
  .bsp.page-template-page-free .wrap > .bl_inner h5 {
    font-size: 16px;
  }
  
  .bsp.page-template-page-free .wrap > .bl_inner p {
    font-size: 16px;
  }
}