/* ----------------------------------------
* header
---------------------------------------- */
.main-slider-wrap {
  position: relative;
}
.main-slider {
  margin: 0;
  padding: 0;
}
.main-slider img {
  display: block;
  width: 100%;
}
.wave {
  position: relative;
  height: 200px; /*何も表示されない場合は各波の親要素に高さを持たせましょう。*/
  margin-top: -10%;
}
canvas {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
.catch {
  position: absolute;
  right: 10.5%;
}
.catch01 {
  top: 28%;
}
.catch01 img {
  width: calc(716 / 1920 * 100vw);
}
.catch02 {
  top: 62%;
}
.catch02 img {
  width: calc(750 / 1920 * 100vw);
}
.catch03 {
  top: 85%;
}
.catch03 img {
  width: calc(732 / 1920 * 100vw);
}
.main-slider-wrap .top-list {
  z-index: 1;
  position: absolute;
  left: 6%;
  top: 77%;
  background-color: rgba(31, 106, 170, 0.8);
  border-radius: 6px;
  padding: 1.5% 0;
  width: calc(745 / 1920 * 100vw);
  justify-content: center;
  margin: 0;
}
.main-slider-wrap .top-list li {
  border-right: 1px solid #fff;
  padding: 0 4%;
}
.main-slider-wrap .top-list li:last-child {
  border-right: unset;
}
.main-slider-wrap .top-list li:nth-child(1) img {
  min-width: calc(56 / 1920 * 100vw);
}
.main-slider-wrap .top-list li:nth-child(2) img {
  min-width: calc(80 / 1920 * 100vw);
}
.main-slider-wrap .top-list li:nth-child(3) img {
  min-width: calc(75 / 1920 * 100vw);
}
.main-slider-wrap .top-list li:nth-child(4) img {
  min-width: calc(68 / 1920 * 100vw);
  margin-top: 20%;
}
.main-slider-wrap .top-list li:nth-child(5) img {
  min-width: calc(101 / 1920 * 100vw);
}
.pc-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transition: 0.3s;
  flex-direction: column;
}
.pc-header > p {
  background-color: #378ddc;
  text-align: right;
  font-size: 75%;
  line-height: 1.9;
  margin: 0;
  padding: 0.3% 7% 0.3% 0;
}
.header-icon-list {
  background-color: #fff;
  margin: 0;
  align-items: center;
  padding: 1% 7.5%;
}
.header-icon-list li:nth-child(2) {
  margin: 0 3% 0 20%;
}
.header-nav {
  background-color: #247bd0;
}
.header-nav ul {
  padding: 0;
  justify-content: center;
  position: relative;
}
.header-nav ul li {
  font-size: 90%;
  border-right: 1px solid #fff;
  float: left;
}
.header-nav ul li.menu-item-has-children,
.header-nav ul li.menu-item-has-children {
}
.header-nav ul li.menu-item-has-children:after,
.header-nav ul li.menu-item-has-children:after {
  content: "";
  width: calc(10 / 1920 * 100vw);
  height: calc(10 / 1920 * 100vw);
  border-radius: 2px;
  border: 2px solid;
  border-color: transparent transparent #fff #fff;
  transform: rotate(-45deg);
  display: block;
  margin: auto;
  margin-top: calc(-30 / 1920 * 100vw);
}
.header-nav ul li:last-child {
  border-right: none;
}
.header-nav ul li a {
  display: block;
  padding: 1em 3em 1.35em;
}
.header-nav .sub-menu {
  background: rgba(255, 255, 255, 0.5);
  display: none;
  position: absolute;
  z-index: 9999;
  top: 100%;
  left: 50%;
  width: 100vw;
  transform: translate(-50%, 0);
  text-align: center;
  padding: 3%;
}
.header-nav .sub-menu li {
  font-size: 100%;
  border-right: none;
  float: unset;
  display: inline-flex;
  border-radius: 5px;
  justify-content: center;
  margin: 0 1.75%;
}
.header-nav .sub-menu li:nth-child(1) {
  background: #44c4ea;
}
.header-nav .sub-menu li:nth-child(2) {
  background: #247bd0;
}
.header-nav .sub-menu li:nth-child(3) {
  background: #1347b6;
}
.header-nav .sub-menu li a {
  display: block;
  padding: 1em;
  width: calc(375 / 1920 * 100vw);
}
@media only screen and (max-width: 768px) {
  .sp-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    max-height: 112px;
    height: calc(112 / 560 * 100vw);
    padding: 0 5%;
    background: #fff;
    z-index: 9999;
    align-items: center;
    transition: 0.3s;
  }
  .sp-header .logo img {
    width: calc(223 / 560 * 100vw);
    max-width: fit-content;
  }
  .sp-header .tel {
    position: absolute;
    top: calc(25px/2);
    right: 24%;
    width: 50px;
    height: 50px;
  }
  .sp-header .tel img {
    display: block;
    width: 100%;
  }
  .drawer-hamburger span.wh {
    position: absolute;
    bottom: 3%;
    left: 50%;
    transform: translate(-50%, 0);
    width: fit-content;
    font-size: 3.33vw;
    font-weight: 600;
  }
  .main-slider {
    margin: 0;
    padding: 0;
  }
  .wave {
    margin-top: -20%;
    position: unset;
  }
  canvas {
    top: 26%;
    z-index: 10;
  }
  .catch {
    right: unset;
    position: relative;
  }
  .catch img {
    margin: 0 auto;
  }
  .catch01 {
    margin: -200px 0 0;
    z-index: 11;
    top: unset;
  }
  .catch01 img {
    width: calc(516 / 560 * 100vw);
  }
  .catch02 {
    top: unset;
    margin: 2% 0;
  }
  .catch02 img {
    width: calc(521 / 560 * 100vw);
  }
  .catch03 {
    top: unset;
    margin: 6% 0;
  }
  .catch03 img {
    width: calc(444 / 560 * 100vw);
  }
  .main-slider-wrap .top-list {
    position: relative;
    left: unset;
    top: unset;
    padding: 1.5% 3%;
    width: auto;
    margin: 8% 10%;
    flex-wrap: wrap;
    background-color: rgba(31, 106, 170, 1);
  }
  .main-slider-wrap .top-list li {
    padding: 0 8%;
    margin: 3% 0;
  }
  .main-slider-wrap .top-list li:nth-child(3) {
    border-right: unset;
  }
  .main-slider-wrap .top-list li:nth-child(1) img {
    width: calc(46 / 560 * 100vw);
  }
  .main-slider-wrap .top-list li:nth-child(2) img {
    width: calc(66 / 560 * 100vw);
  }
  .main-slider-wrap .top-list li:nth-child(3) img {
    width: calc(62 / 560 * 100vw);
  }
  .main-slider-wrap .top-list li:nth-child(4) img {
    width: calc(61 / 560 * 100vw);
    margin-top: 0;
  }
  .main-slider-wrap .top-list li:nth-child(5) img {
    width: calc(84 / 560 * 100vw);
  }
  .header-icon-list {
    background-color: #fff;
    margin: 0;
    align-items: center;
    padding: 1% 7.5%;
  }
  .header-icon-list li:nth-child(2) {
    margin: 0 3% 0 20%;
  }
}

/* ----------------------------------------
* front
---------------------------------------- */
.bg-box {
  background: linear-gradient(
    180deg,
    transparent 0%,
    transparent 15%,
    #ebf3fb 15%,
    #ebf3fb 100%
  );
  padding-bottom: 6%;

}
#page-top h2 {
  font-size: 180%;
  text-align: center;
  margin: 0 0 2em 0;
  position: relative;
  padding-bottom: 0.75em;
  font-weight: bold;
}
#page-top h2:before {
  content: "";
  position: absolute;
  background-color: #00baff;
  width: 3em;
  height: 3px;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
/* #page-top section {
  padding: 5% 12%;
} */
.more-btn {
  align-items: center;
  background: #ffe538;
  justify-content: center;
  width: calc(325 / 1920 * 100vw);
  border-radius: 5px;
  margin: auto;
  padding: 1em 0;
  font-size: 90%;
}

/* ボタン共通設定 */
.btn-push {
  /*影の基点とするためrelativeを指定*/
  position: relative;
  /*ボタンの形状*/
  text-decoration: none;
  display: inline-block;

  text-align: center;
  background: transparent;
  border-radius: 25px;
  outline: none;
  /*アニメーションの指定*/
  transition: all 0.2s ease;
}

/*hoverをした後のボタンの形状*/
.btn-push:hover {
  border-color: transparent;
}

/*ボタンの中のテキスト*/
.btn-push span {
  position: relative;
  z-index: 2;
  display: block;
  transition: all 0.3s ease;
}

/*== 右下に押し込まれる（立体が平面に） */

/*影の設定*/
.pushright:before,
.pushdown:before {
  content: "";
  position: absolute;
  z-index: 0;
  background-color: rgba(6, 41, 73, 0.33);
}
.orangeshadow:before {
  background-color: rgba(136, 103, 14, 0.33);
}
.pushdown:before {
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 15px;
  border-radius: 5px;
}
.pushright:before {
  bottom: -8px;
  right: -4px;
  width: 100%;
  height: 100%;
  border-radius: 5px;
}

/*hoverの際にX・Y軸に4pxずらす*/
.pushdown:hover span {
  transform: translate(0, 8px);
}
.pushright:hover span {
  transform: translate(4px, 8px);
}

.none {
  display: none;
}
.active {
  display: block;
}
@media only screen and (max-width: 768px) {.bg-box {

  padding-bottom: 18%;

}
  #page-top h2 {
    font-size: 215%;
    padding-bottom: 1em;
    margin: 0 0 1em 0;
  }
  .more-btn {
    width: calc(325 / 560 * 100vw);
    margin: auto;
    padding: 0.7em 0;
    font-size: 135%;
  }
}
@media only screen and (max-width: 479px) {
  #page-top h2 {
    font-size: 7.15vw;
  }
  .more-btn {
    font-size: 4.6vw;
  }
}
/* ----------------------------------------
* front-top部分
---------------------------------------- */
.new-post-box {
  background-color: #ffffff;
  margin: 8% 10% 7%;
  padding: 2.5% 5% 3%;
  position: relative;
  box-shadow: 0px 0 20px rgb(0 0 0 / 10%);
}
.new-post-box .title-box {
  margin-top: -1.5%;
}
.new-post-box .title-box h3 {
  font-size: 220%;
  align-items: baseline;
  margin-bottom: 0.5em;
}
.new-post-box .title-box h3 span {
  font-size: 50%;
  opacity: 0.5;
  margin-left: 0.25em;
}

.new-post-box .title-box a img {
  margin-left: 1em;
  width: calc(76 / 1920 * 100vw);
}
.new-post-box .new-post {
  padding: 0;
  margin: 0 0 0 3%;
  border-left: 3px solid #378ddc;
  padding-left: 5%;
}
.new-post-box .new-post .text {
  align-items: center;
  margin-bottom: 1.5em;
}
.new-post-box .new-post li:nth-child(3) .text {
  margin-bottom: 0;
}
.new-post-box .new-post .cat {
  font-size: 85%;
  background-color: #378ddc;
  border-radius: 5px;
  word-break: break-all;
  margin-bottom: 0;
  min-width: 7em;
  text-align: center;
}
.new-post-box .new-post .date {
  font-size: 85%;
  word-break: break-all;
  min-width: fit-content;
  margin-bottom: 0;
  margin-left: 1em;
}
.new-post-box .new-post h3 {
  font-size: 85%;
  word-break: break-all;
  min-width: fit-content;
  margin-left: 2.5em;
}
.new-post-box a.more-btn {
  background: #fff60d;
  font-size: 90%;
  width: calc(260 / 1920 * 100vw);
  padding: 5% 0;
  border-radius: 5px;
  display: block;
  text-align: center;
}

@media only screen and (max-width: 768px) {
  .new-post-box {
    flex-direction: column;
    margin: 22% 4% 10%;
    padding: 11% 8% 2% 10%;
  }
  .new-post-box .title-box {
    justify-content: center;
  }
  .new-post-box .title-box h3 {
    font-size: 250%;
    margin: 0 20% 0.25em;
    border-bottom: 2px solid #378ddc;
    padding-bottom: 0.75em;
    flex-direction: column;
    align-items: center;
  }
  .new-post-box .title-box h3 span {
    font-size: 60%;
    margin: 0;
  }
  .new-post-box a.more-btn {
    font-size: 135%;
    width: calc(325 / 560 * 100vw);
    max-width: 325px;
    padding: 0.8em;
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translate(-50%, 0);
  }

  .new-post-box .new-post {
    padding: 0;
    margin: 0 0 45% 0;
    border: unset;
  }
  .new-post-box .new-post li {
    margin: 7% 0;
  }
  .new-post-box .new-post .text {
    flex-wrap: wrap;
    margin-bottom: 0;
  }
  .new-post-box .new-post .date {
    font-size: 125%;
    margin-bottom: 0.75em;
    margin-left: 0.5em;
  }
  .new-post-box .new-post li:nth-child(3) .date,
  .new-post-box .new-post li:nth-child(3) .cat {
    margin-bottom: 0.75em;
  }
  .new-post-box .new-post .cat {
    font-size: 125%;
    margin-bottom: 0.75em;
  }
  .new-post-box .new-post h3 {
    font-size: 135%;
    margin: 0;
  }
}
@media only screen and (max-width: 479px) {
  .new-post-box .title-box h3 {
    font-size: 8.33vw;
  }
  .new-post-box .new-post .date {
    font-size: 4.15vw;
  }
  .new-post-box .new-post .cat {
    font-size: 4.15vw;
  }
  .new-post-box .new-post h3 {
    font-size: 4.6vw;
  }
  .new-post-box a.more-btn {
    font-size: 4.6vw;
  }
}

/* ----------------------------------------
* contact
---------------------------------------- */
#contact {
  margin: 7% 0 0;
}
#contact > img {
  margin: 0 auto -3%;
  width: calc(783 / 1920 * 100vw);
}
@media only screen and (max-width: 768px) {
  #contact {
    margin: 17% 0 0;
  }
  #contact > img {
    margin: 0 auto -10%;
    width: calc(450 / 560 * 100vw);
  }
}

/* ----------------------------------------
* construction
---------------------------------------- */
#construction {
  margin: 7% 0 0%;
  background-image: url(../images/main/top-construction-bg.png);
  background-repeat: no-repeat;
  background-size: auto;
  background-position: 0 95%;
}
@media only screen and (max-width: 768px) {
  #construction {
    margin: 19% 0 0%;
    background-image: url(../images/main/top-construction-bg-sp.png);
    background-position: 0 95%;
  }
  #construction .more-btn {
    width: calc(375 / 560 * 100vw);
    margin: 15% auto 0;
    padding: 0.7em 0;
    font-size: 135%;
  }
}
@media only screen and (max-width: 479px) {
  #construction .more-btn {
    font-size: 4.6vw;
  }
}

/* ----------------------------------------
* faq
---------------------------------------- */
#faq {
  background-image: url(../images/main/top-faq-bg.png);
  padding: 4.5% 0 4%;
}
.faq-title > img {
  margin: 0 auto;
  width: calc(535 / 1920 * 100vw);
}
#faq h2 {
  align-items: center;
  justify-content: center;
  font-size: 250%;
  margin: 0.5% 0 3%;
  padding: 0;
}
#faq h2:before {
  content: unset;
}
#faq h2 img {
  width: calc(49 / 1920 * 100vw);
}
.faq-list {
  padding: 0;
}
.faq-list li {
  background-color: #fff;
  align-items: center;
  margin: 2% 20%;
  padding: 0.5% 2%;
  border-radius: 100vh;
}
.faq-list li img {
  margin-right: 1em;
  width: calc(30 / 1920 * 100vw);
}
.faq-list li p {
  margin: 0;
  font-size: 160%;
  font-weight: bold;
  letter-spacing: 0.04em;
}
#faq > img {
  margin: 4% auto 0;
  width: calc(1325 / 1920 * 100vw);
}
@media only screen and (max-width: 768px) {
  #faq {
    background-image: url(../images/main/top-faq-bg-sp.png);
    padding: 13% 0 12%;
  }
  .faq-title > img {
    margin: 0 auto;
    width: calc(503 / 560 * 100vw);
    max-width: fit-content;
  }
  #faq h2 {
    font-size: 285%;
    margin: 5% 0 3%;
    line-height: 1.1;
    letter-spacing: 0.06em;
  }
  #faq h2:before {
    content: unset;
  }
  #faq h2 img {
    width: calc(91 / 560 * 100vw);
    max-width: fit-content;
  }
  .faq-list {
    margin: 12% 0;
  }
  .faq-list li {
    margin: 3.5% 4%;
    padding: 3.5% 4%;
    border-radius: 17.5px;
  }
  .faq-list li img {
    width: calc(51 / 560 * 100vw);
  }
  .faq-list li p {
    margin: 0;
    font-size: 160%;
    line-height: 1.2;
  }
  #faq > img {
    margin: 12% auto 0;
    width: calc(503 / 560 * 100vw);
  }
}
@media only screen and (max-width: 479px) {
  #faq h2 {
    font-size: 9.5vw;
  }
  .faq-list li p {
    font-size: 5.4vw;
  }
}

/* ----------------------------------------
* satisfaction
---------------------------------------- */
#satisfaction {
}
#satisfaction > img {
  margin: 7% auto 6%;
  width: calc(1528 / 1920 * 100vw);
}
@media only screen and (max-width: 768px) {
  #satisfaction > img {
    margin: 10% auto 12%;
    width: calc(505 / 560 * 100vw);
  }
}

/* ----------------------------------------
* merit
---------------------------------------- */
#merit {
}
.merit-list {
  padding: 0;
  flex-direction: column;
  margin: 5% 0 7%;
}
.merit-list li {
  margin: 3% 0;
}
.merit-list li:nth-child(even) {
  flex-direction: row-reverse;
}
.merit-list .merit-item-text,
.merit-list .merit-item-text2 {
  width: 35%;
  margin: 0 5% 0 15%;
}
.merit-list li:nth-child(even) .merit-item-text,
.merit-list li .merit-item-text2 {
  margin: 0 15% 0 5%;
}
.merit-list h3 {
  align-items: center;
  font-size: 155%;
  letter-spacing: 0.05em;
  font-weight: bold;
  border-bottom: 10px solid #ffe538;
  padding-bottom: 0.8em;
  line-height: 1.2;
}
.merit-list h3 img {
  margin-right: 0.65em;
  width: calc(71 / 1920 * 100vw);
}
.merit-list .merit-item-text div,
.merit-list .merit-item-text2 div {
  margin-top: 6%;
}
.merit-list .merit-item-text p,
.merit-list .merit-item-text2 p {
  font-size: 85%;
  line-height: 1.45;
  text-align: justify;
}
.merit-list .merit-item-img,
.merit-list .merit-item-img2 {
  width: 50%;
  position: relative;
  margin: 2% 0;
}
.merit-list li:nth-child(odd) .merit-item-img img {
  margin-left: auto;
}
.merit-list li:nth-child(odd) .merit-item-img img:nth-child(2) {
  position: absolute;
  top: 0;
  left: 0;
}
.merit-list .merit-item-img img,
.merit-list .merit-item-img2 img {
  width: calc(708 / 1920 * 100vw);
}
.merit-list .merit-item-img img:nth-child(2),
.merit-list .merit-item-img2 img:nth-child(2) {
  width: calc(720 / 1920 * 100vw);
}
.merit-list li:nth-child(even) .merit-item-img img:nth-child(2),
.merit-list li:nth-child(even) .merit-item-img2 img:nth-child(2) {
  position: absolute;
  top: 0;
  right: 0;
}
@media only screen and (max-width: 768px) {
  #merit {
  }
  .merit-list {
    margin: 5% 0 10%;
  }
  .merit-list li {
    margin: 3% 0;
    flex-direction: column;
  }
  .merit-list li:nth-child(even) {
    flex-direction: column;
  }
  .merit-list .merit-item-text,
  .merit-list .merit-item-text2 {
    width: auto;
    margin: 0 10%;
  }
  .merit-list li:nth-child(even) .merit-item-text,
  .merit-list li:nth-child(even) .merit-item-text2 {
    margin: 0 10%;
  }
  .merit-list h3 {
    padding-bottom: 0.2em;
    margin: 0;
    font-size: 175%;
  }
  .merit-list h3 img {
    margin-right: 1em;
    width: calc(70 / 560 * 100vw);
  }
  .merit-list .merit-item-text div,
  .merit-list .merit-item-text2 div {
    margin-top: 6%;
  }
  .merit-list .merit-item-text p,
  .merit-list .merit-item-text2 p {
    font-size: 125%;
  }
  .merit-list .merit-item-text p.blue,
  .merit-list .merit-item-text2 p.blue {
    margin-bottom: 1.5em;
  }
  .merit-list .merit-item-img,
  .merit-list .merit-item-img2 {
    width: auto;
    margin: 2% 0;
  }
  .merit-list .merit-item-img img,
  .merit-list .merit-item-img2 img {
    width: calc(448 / 560 * 100vw);
  }
  .merit-list .merit-item-img img:nth-child(4),
  .merit-list .merit-item-img2 img:nth-child(4) {
    width: calc(465 / 560 * 100vw);
  }
  .merit-list li:nth-child(odd) .merit-item-img img:nth-child(4),
  .merit-list li:nth-child(odd) .merit-item-img2 img:nth-child(4) {
    position: absolute;
    top: 0;
    left: 0;
  }
  .merit-list li:nth-child(even) .merit-item-img img:nth-child(4),
  .merit-list li:nth-child(even) .merit-item-img2 img:nth-child(4) {
    position: absolute;
    top: 0;
    right: 0;
  }
}
@media only screen and (max-width: 479px) {
  .merit-list h3 {
    font-size: 5.8vw;
  }
  .merit-list .merit-item-text p,
  .merit-list .merit-item-text2 p {
    font-size: 4.15vw;
  }
}

/* ----------------------------------------
* service
---------------------------------------- */
#service {
  background-image: url(../images/main/top-service-bg.png);
  background-repeat: no-repeat;
  background-size: 100vw;
  padding: 4.5% 0;
}
.service-list {
  padding: 0;
  justify-content: center;
}
.service-list li {
  width: 21%;
  margin: 0 2%;
  justify-content: center;
}
.service-list li h3 {
  font-size: 135%;
  color: #fff;
  align-items: baseline;
  justify-content: center;
}
.service-list li:nth-child(1) h3 {
  background-color: #4ed6ff;
}
.service-list li:nth-child(2) h3 {
  background-color: #247bd0;
}
.service-list li:nth-child(3) h3 {
  background-color: #1347b6;
}
.service-list li h3 div {
  font-size: 155%;
  margin-right: 0.25em;
}
#service-detail {
}
.service-detail-item {
}
.service-detail-item .bg-img {
  width: 100vw;
  height: calc(928 / 1920 * 100vw);
  align-items: center;
}
#service01 .bg-img {
  background-image: url(../images/main/top-service-bg01.png);
}
#service02 .bg-img {
  background-image: url(../images/main/top-service-bg02.png);
}
#service03 .bg-img {
  background-image: url(../images/main/top-service-bg03.png);
}
.service-detail-item > div > div {
  width: 37%;
  margin-left: 15%;
}
.service-detail-item h3 {
  font-size: 220%;
  align-items: center;
  padding-bottom: 0.8em;
  border-bottom: 1px solid #fff;
}
.service-detail-item h3 img {
  margin-right: 0.5em;
}
#service01.service-detail-item h3 img {
  width: calc(65 / 1920 * 100vw);
}
#service02.service-detail-item h3 img {
  width: calc(46 / 1920 * 100vw);
}
#service03.service-detail-item h3 img {
  width: calc(66 / 1920 * 100vw);
}
.service-detail-item > div > div > div {
  font-size: 90%;
  line-height: 1.55;
  margin-top: 2em;
}
.service-detail-item .number {
  font-size: 1800%;
  font-weight: bold;
  width: auto;
  margin-left: 10%;
}
.service-description-list {
  padding: 0 15%;
  margin: 8% 0 0;
}
.service-description-list div.h4 {
  margin-top: 8%;
}
.service-description-list h4 {
  font-size: 125%;
  font-weight: bold;
  letter-spacing: 0.135em;
  line-height: 1.2;
  padding-bottom: 0.9em;
}
#service01 .service-description-list h4 {
  border-bottom: 1px solid #4ed6ff;
}
#service02 .service-description-list h4 {
  border-bottom: none;
  position: relative;
  line-height: 1;
  padding-left: 0.5em;
  padding-bottom: 0;
}
#service02 .service-description-list h4:before {
  position: absolute;
  content: "";
  background-color: #247bd0;
  width: 5px;
  height: 1em;
  top: 0;
  left: 0;
}
#service03 .service-description-list h4 {
  border-bottom: 1px solid #1347b6;
}
.service-description-list div.h4 div {
  font-size: 85%;
  letter-spacing: 0.115em;
  line-height: 1.5;
  margin-top: 2em;
}
.service-description-list div.h4 ul {
  padding: 0;
  flex-wrap: wrap;
  margin: 3% 0;
}
.service-description-list div.h4 ul li {
  width: 50%;
  font-size: 95%;
  letter-spacing: 0.115em;
}
.service-description-list div.h4 ul li span {
  color: #247bd0;
}
#service02 .service-description-list div.h4 p {
  color: #247bd0;
  margin: 0;
  font-size: 85%;
  letter-spacing: 0.115em;
  line-height: 1.25;
}
.service-description-list div.h5 {
  margin-top: 6%;
}
.service-description-list h5 {
  font-size: 110%;
  font-weight: bold;
  letter-spacing: 0.075em;
  line-height: 1;
  padding-left: 0.5em;
  position: relative;
}
#service02 .service-description-list h5 {
  font-size: 110%;
  letter-spacing: 0.135em;
  line-height: 1.2;
  padding-bottom: 0.5em;
  padding-left: 0;
  border-bottom: 1px solid #247bd0;
}
#service01 .service-description-list h5:before {
  position: absolute;
  content: "";
  background-color: #4ed6ff;
  width: 5px;
  height: 1em;
  top: 0;
  left: 0;
}
.service-description-list div.h5 div {
  font-size: 85%;
  letter-spacing: 0.075em;
  line-height: 1.7;
  margin-top: 2em;
}
.service-description-list div.h5 div p.flex {
  margin: 0;
}
#service02 .service-description-list div.h5 ul {
  padding: 0;
  flex-wrap: wrap;
  margin-top: 1em;
}
#service02 .service-description-list div.h5 ul li {
  width: 50%;
  font-size: 85%;
  line-height: 1.7;
}
#service02 .service-description-list div.h5 ul li span {
  color: #247bd0;
}
.menu-list {
  justify-content: center;
  padding: 0;
  margin: 9% 0;
}
.menu-list li {
  margin: 0 1.5%;
}
.menu-list a {
  flex-direction: column;
  align-items: center;
}
.menu-list a img {
  width: calc(283 / 1920 * 100vw);
}
.menu-list a div {
  margin-top: auto;
}
@media only screen and (max-width: 768px) {
  #service {
    background-image: url(../images/main/top-service-bg-sp.png);
    padding: 12% 0 4%;
    background-size: cover;
  }
  .service-list {
    flex-direction: column;
  }
  .service-list li {
    width: auto;
    margin: 5% 9%;
  }
  .service-list li h3 {
    font-size: 205%;
    margin: 0;
    padding: 0;
  }

  .service-list li h3 div {
    font-size: 150%;
  }
  #service-detail {
  }
  .service-detail-item {
  }
  .service-detail-item .bg-img {
    height: auto;
    flex-direction: column-reverse;
    padding: 8% 0 4%;
  }
  #service01 .bg-img {
    background-image: url(../images/main/top-service-bg01-sp.png);
  }
  #service02 .bg-img {
    background-image: url(../images/main/top-service-bg02-sp.png);
  }
  #service03 .bg-img {
    background-image: url(../images/main/top-service-bg03-sp.png);
  }
  .service-detail-item > div > div {
    width: auto;
    margin: 0 11%;
  }
  .service-detail-item h3 {
    font-size: 220%;
    margin: 1em 0 1em;
    justify-content: center;
  }
  .service-detail-item h3 img {
    margin-right: 0.5em;
  }
  #service01.service-detail-item h3 img {
    width: calc(64 / 480 * 100vw);
  }
  #service02.service-detail-item h3 img {
    width: calc(36 / 480 * 100vw);
  }
  #service03.service-detail-item h3 img {
    width: calc(65 / 480 * 100vw);
  }
  .service-detail-item > div > div > div {
    font-size: 115%;
    line-height: 1.5;
    margin-top: 2em;
  }
  .service-detail-item .number {
    font-size: 1000%;
    margin: auto;
    line-height: 1;
  }
  .service-description-list {
    padding: 0 11%;
    margin: 12% 0 0;
  }
  .service-description-list > li {
    margin-top: 22%;
  }
  .service-description-list > li:first-child {
    margin-top: 0;
  }
  .service-description-list div.h4 {
    margin-top: 8%;
  }
  .service-description-list h4 {
    font-size: 145%;
  }
  #service01 .service-description-list h4 {
    border-bottom: 1px solid #4ed6ff;
  }
  #service02 .service-description-list h4 {
    border-bottom: none;
    position: relative;
    line-height: 1;
    padding-left: 0.5em;
    padding-bottom: 0;
  }
  #service02 .service-description-list h4:before {
    position: absolute;
    content: "";
    background-color: #247bd0;
    width: 5px;
    height: 1em;
    top: 0;
    left: 0;
  }
  #service03 .service-description-list h4 {
    border-bottom: 1px solid #1347b6;
  }
  .service-description-list div.h4 div {
    font-size: 110%;
    letter-spacing: 0.12em;
    line-height: 1.55;
    margin-top: 1.5em;
  }
  .service-description-list div.h4 ul {
    padding: 0;
    flex-wrap: wrap;
    margin: 3% 0;
  }
  .service-description-list div.h4 ul li {
    width: 100%;
    font-size: 125%;
  }
  .service-description-list div.h4 ul li span {
  }
  #service02 .service-description-list div.h4 p {
    font-size: 115%;
    margin: 0 -5%;
    letter-spacing: 0;
  }
  .service-description-list div.h5 {
    margin-top: 15%;
  }
  .service-description-list h5 {
    font-size: 115%;
    letter-spacing: 0.075em;
  }
  #service02 .service-description-list h5 {
    font-size: 115%;
  }
  #service01 .service-description-list h5:before {
    position: absolute;
    content: "";
    background-color: #4ed6ff;
    width: 5px;
    height: 1em;
    top: 0;
    left: 0;
  }
  .service-description-list div.h5 div {
    font-size: 110%;
    margin-top: 1em;
  }
  #service02 .service-description-list div.h5 ul {
    padding: 0;
    flex-wrap: wrap;
    margin-top: 1em;
  }
  #service02 .service-description-list div.h5 ul li {
    width: 100%;
    font-size: 115%;
  }
  #service02 .service-description-list div.h5 ul li span {
  }
  .menu-list {
    margin: 17% 0;
    flex-direction: column;
  }
  .menu-list li {
    margin: 1.5% auto;
  }
  .menu-list a {
    flex-direction: column;
    align-items: center;
  }
  .menu-list a img {
    width: calc(444 / 560 * 100vw);
  }
}
@media only screen and (max-width: 479px) {
  .service-list li h3 {
    font-size: 6.9vw;
  }
  .service-detail-item h3 {
    font-size: 7.3vw;
  }
  .service-detail-item > div > div > div {
    font-size: 3.95vw;
  }
  .service-detail-item .number {
    font-size: 33.3vw;
  }
  .service-description-list h4 {
    font-size: 4.8vw;
  }
  .service-description-list div.h4 div {
    font-size: 3.75vw;
  }
  .service-description-list div.h4 ul li {
    font-size: 4.15vw;
  }
  #service02 .service-description-list div.h4 p {
    font-size: 3.9vw;
  }
  .service-description-list h5 {
    font-size: 3.95vw;
  }
  #service02 .service-description-list h5 {
    font-size: 3.95vw;
  }
  .service-description-list div.h5 div {
    font-size: 3.75vw;
  }
  #service02 .service-description-list div.h5 ul li {
    font-size: 3.9vw;
  }
}

/* ----------------------------------------
* company
---------------------------------------- */
#company {
  background-image: url(../images/main/top-company-bg.png);
  padding: 5% 0 6%;
}
.company-inner {
  justify-content: center;
  margin: 5.5% 0 0;
}
#company img {
  margin: 2% 15% 0 auto;
  width: calc(520 / 1920 * 100vw);
}
@media only screen and (max-width: 768px) {
  #company {
    background-image: url(../images/main/top-company-bg-sp.png);
    padding: 12% 0 6%;
  }
  #company h2 {
    padding-bottom: 0.75em;
    margin: 0 0 0.5em 0;
  }
  .company-inner {
    flex-direction: column;
    margin: 5.5% 0 0;
  }
  #company img {
    margin: 7% auto;
    width: calc(445 / 560 * 100vw);
  }
}

/* ----------------------------------------
* footer
---------------------------------------- */
.footer-nav {
  background: #fff;
}

/* ----------------------------------------
* post archives
---------------------------------------- */
#post-archives {
  position: relative;
  padding: 5% 0 0 0;
}
#construction-list .post-slide {
  margin: calc(35 / 1920 * 100vw) calc(13% / 6);
  width: 29%;
  background: #fff;
}
@media only screen and (max-width: 768px) {
  #post-archives {
    padding: 5% 0 0 0;
  }
  #construction-list .post-slide {
    margin: 7% 0;
    width: 100%;
  }
}

.header-icon-list li:last-of-type {
  margin: 0 0 0 2%;
}
.h-line {
  display: block;
  width: 100%;
}