@charset "utf-8";


/* ---------------------------------------------------------
 * common
** --------------------------------------------------------- */
body {
  padding-top: 70px;
  color: #333;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.6;
  font-family: "Segoe UI", Frutige, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  text-align: justify;
  letter-spacing: 1px;
}
/* PCより小さい(タブレット) */
@media (max-width: 959px) {
}
/* タブレットより小さい(スマホランドスケープ) */
@media (max-width: 767px) {
  body {
    padding-top: 55px;
  }
}
/* Android Tablet 8インチのポートレート(600px) / iPad mini6(744px) */
@media (max-width: 639px) {
}
/* スマホランドスケープより小さい(スマホポートレート) */
@media (max-width: 459px) {
}

:root {
  --vw: 1vw;
}


/* --------------- .wrapper --------------- */
.wrapper {
  max-width: 1240px;
  width: 100%;
  padding: 0 20px;
  margin: 0 auto;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
}


/* ---------- .gra_box ---------- */
.gra_box {
  border: 2px solid #4faa5b;
  border-image: linear-gradient(135deg, #8ece42 0%, #138772 100%);
  border-image-slice: 1;
}


/* ---------- section h2 ---------- */
section h2 {
  position: relative;
  padding-bottom: 10px;
  color: #176359;
  font-size: 42px;
  text-align: center;
  font-weight: bold;
}
section h2:not(.bb-n)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  width: 100px;
  height: 4px;
  margin-left: auto;
  margin-right: auto;
  background-color: #7accc0;
}
section h2.bcc-y::after {
  background-color: #efe200;
}
@media (max-width: 767px) {
  section h2 {
    font-size: 28px;
  }
  section h2:not(.bb-n)::after {
    width: 70px;
    height: 3px;
  }
}


/* --------------- .slick --------------- */
.slick {
}
/* arrow */
.slick-arrow {
  z-index: 1;
  width: 50px;
  height: 50px;
  background-color: rgba(23, 99, 89, 0.8);
  transition: all ease 0.3s;
}
.slick-arrow:hover,
.slick-arrow:focus {
  background-color: rgba(23, 99, 89, 1);
}
.slick-prev {
  left: 0;
}
.slick-next {
  right: 0;
}
.slick-arrow::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
  width: 20px;
  height: 20px;
  margin-top: auto;
  margin-bottom: auto;
  transform-origin: center;
  transform: rotate(45deg);
  opacity: 1;
}
.slick-prev::before {
  left: 20px;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
}
.slick-next::before {
  right: 20px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
/* dots */
.slick-dots {
  left: 0;
  bottom: -40px;
}
.slick-dots li {
}
.slick-dots li button {
  width: 12px;
  height: 12px;
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.3);
}
.slick-dots li.slick-active button {
  background-color: #176359;
}
.slick-dots li button::before {
  display: none;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
}




/* ---------------------------------------------------------
 * header
** --------------------------------------------------------- */
#header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 30;
  width: 100%;
  background-color: #fff;
/*  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);*/
}
.h_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 70px;
  transition: all 0.3s ease;
}
.h_logo {
}
.h_logo img {
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  .h_inner {
    height: 55px;
  }
  .h_logo img {
    width: 132px;
  }
}


/* --------------- .h_right --------------- */
.h_right {
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
  height: 100%;
}
.h_right a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 30px;
}
.h_right .line {
  background-color: #8bcf44;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  transition: all ease 0.3s;
}
.h_right .line:hover {
  background-color: #7ac032;
}
.h_right .line img {
  margin-right: 10px;
}
.h_right .web {
  background-color: #cf1c39;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  transition: all ease 0.3s;
}
.h_right .web:hover {
  background-color: #b4001d;
}
.h_right .web img {
  margin-right: 10px;
}
.h_right .tel {
  flex-direction: column;
  background-color: #e3eceb;
}
.h_right .tel img {
  margin-right: 10px;
}
.h_right .tel .num {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.2;
}
.h_right .tel .time {
  font-size: 12px;
}
.h_right .tel .time br {
  display: none;
}
@media (max-width: 959px) {
  .h_right a {
    padding: 0 15px;
  }
  .h_right .tel .num {
    font-size: 20px;
    letter-spacing: 0;
  }
}
@media (max-width: 767px) {
  .h_right .line,
  .h_right .web {
    display: none;
  }
  .h_right .tel {
    height: 75px;
    text-align: center;
  }
  .h_right .tel img {
    margin-right: 0;
  }
  .h_right .tel .num span {
    display: none;
  }
  .h_right .tel .time {
    margin-top: 5px;
    font-size: 10px;
    line-height: 1;
  }
  .h_right .tel .time span {
    font-size: 12px;
  }
  .h_right .tel .time br {
    display: block;
  }
}




/* ---------------------------------------------------------
 * Contents
** --------------------------------------------------------- */
/* ---------- #fv ---------- */
#fv {
  position: relative;
  z-index: 2;
  text-align: right;
}
#fv > img {
  width: calc(1293% / 15);
}
#fv .btn_area {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(1293% / 15);
  margin-left: auto;
  padding-top: calc(600% / 15);
  text-align: left;
}
#fv .btn_area a {
  display: inline-block;
  padding: 23px 50px;
  background-color: #b4001d;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  transition: all ease 0.3s;
}
#fv .btn_area a:hover {
  background-color: #9e0019;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #fv > img {
    width: calc(72200% / 750);
  }
  #fv .btn_area_sp {
    margin-top: 10px;
    text-align: center;
  }
  #fv .btn_area_sp a {
    position: relative;
    display: inline-block;
    width: 330px;
    height: 65px;
    border-radius: 100px;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    line-height: 65px;
  }
  #fv .btn_area_sp a::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 25px;
    display: block;
    width: 0;
    height: 0;
    margin-top: auto;
    margin-bottom: auto;
    border-style: solid;
    border-width: 10px 0 10px 12px;
    border-color: transparent transparent transparent #fff;
  }
  #fv .btn_area_sp .line {
    background-image: linear-gradient(to bottom, #07d75d 25%, #07c353 50%);
    box-shadow: -10px -10px 15px rgba(0, 0, 0, 0.1) inset;
  }
  #fv .btn_area_sp .web {
    margin-top: 10px;
    background-image: linear-gradient(to bottom, #ee3e41 25%, #e83b3f 50%);
    box-shadow: -10px -10px 15px rgba(0, 0, 0, 0.1) inset;
  }
}
#fv .coin.pc {
  position: absolute;
  top: calc(100% - 100px);
  width: 100%;
  padding: 0 30px;
  text-align: center;
}
#fv .coin.pc a {
  display: inline-block;
  font-size: 18px;
}
#fv .coin.pc a > img {
  vertical-align: middle;
}
#fv .coin.pc a .ico {
  margin-right: 10px;
}
#fv .coin.pc a .btn {
  margin-left: 10px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #fv .coin.sp {
    display: block !important;
    width: 100%;
    margin-top: -50px;
    padding: 0 30px;
    text-align: center;
  }
  #fv .coin.sp img {
    max-width: 100%;
  }
}


/* ---------- #reason ---------- */
#reason {
  padding-top: 60px;
  padding-bottom: 100px;
}
#reason h2 {
}
#reason h2 span {
  color: #ff9c01;
  font-size: 72px;
}
#reason .wrapper {
}
#reason dl {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 30px;
}
#reason dl > div {
  width: calc(58000% / 1200);
  padding-top: 20px;
  padding-bottom: 20px;
  background-image: linear-gradient(to right, #8bd042, #158674);
  background-repeat: no-repeat;
  background-size: 100% 2px;
  background-position: bottom center;
  cursor: pointer;
}
#reason dl > div:nth-child(-n+2) {
  background-image: linear-gradient(to right, #8bd042, #158674), linear-gradient(to right, #8bd042, #158674);
  background-position: bottom center, top center;
}
#reason dt {
}
#reason dd {
  max-height: 0;
  overflow: hidden;
  transition: all ease 0.3s;
}
#reason .open dd {
  max-height: var(--max-height);
}
#reason dd div {
  padding-top: 10px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #reason {
    padding-top: 10px;
    padding-bottom: 40px;
  }
  #reason h2 span {
    line-height: 1;
  }
  #reason dl > div {
    width: 100%;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  #reason dl > div:nth-child(2) {
    background-image: linear-gradient(to right, #8bd042, #158674);
    background-position: bottom center;
  }
  #reason dl > div:nth-child(1) dt img {
    width: calc(66600vw/ 750);
  }
  #reason dl > div:nth-child(2) dt img {
    width: calc(59000vw/ 750);
  }
  #reason dl > div:nth-child(3) dt img {
    width: calc(62900vw/ 750);
  }
  #reason dl > div:nth-child(4) dt img {
    width: calc(44100vw/ 750);
  }
  #reason dl > div:nth-child(5) dt img {
    width: calc(66300vw/ 750);
  }
  #reason dl > div:nth-child(6) dt img {
    width: calc(64400vw/ 750);
  }
  #reason dl > div:nth-child(7) dt img {
    width: calc(51500vw/ 750);
  }
}


/* ---------- #nayami ---------- */
#nayami {
  padding-top: 200px;
  padding-bottom: 150px;
  background-image: linear-gradient(140deg, #fff 0%, #fff 30%, #f0f6f6 30%, #f0f6f6 50%, #fff 50%, #fff 100%);
}
#nayami h2 {
  font-size: 36px;
}
#nayami .contents {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  max-width: 1040px;
  margin-top: 40px;
}
#nayami li {
  position: relative;
  width: 30%;
  padding: 30px 15px;
  background-color: #fff;
  text-align: center;
}
#nayami li:nth-child(3n+2) {
  margin-top: 30px;
}
#nayami li:nth-child(-n+3) {
  margin-bottom: 70px;
}
#nayami li::after {
  content: url("../img/nayami_line.png");
  position: absolute;
  top: calc(100% - 6px);
  left: 0;
  right: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
#nayami img {
  height: 80px;
}
#nayami p {
  margin-top: 10px;
  color: #176359;
  font-size: 18px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #nayami {
    padding-top: 30px;
    padding-bottom: 30px;
    background-image: linear-gradient(125deg, #fff 0%, #fff 20%, #f0f6f6 20%, #f0f6f6 40%, #fff 40%, #fff 100%);
  }
  #nayami h2 {
    font-size: 28px;
  }
  #nayami .contents {
    margin-top: 20px;
  }
  #nayami li {
    width: 48.5%;
    padding: 20px 6px 10px;
  }
  #nayami li:nth-child(3n+2) {
    margin-top: 0;
  }
  #nayami li:nth-child(-n+3) {
    margin-bottom: 0;
  }
  #nayami li:nth-child(2n+1) {
    margin-top: 0;
    margin-bottom: 45px;
  }
  #nayami li:nth-child(2n) {
    margin-top: 20px;
    margin-bottom: 25px;
  }
  #nayami li::after {
    content: "";
    width: 13px;
    height: 37px;
    background-image: url("../img/nayami_line_sp.png");
    background-size: contain;
  }
  #nayami img {
    height: 35px;
  }
  #nayami p {
    font-size: 14px;
    letter-spacing: 0;
  }
}


/* ---------- #merit ---------- */
#merit {
  position: relative;
  padding-top: 150px;
  background-color: #f3f3f3;
}
#merit::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: block;
  width: 0;
  height: 0;
  margin-left: auto;
  margin-right: auto;
  border-style: solid;
  border-width: 100px 200px 0 200px;
  border-color: #fff transparent transparent transparent;
}
#merit .subttl {
  width: 240px;
  margin: 0 auto;
  padding-bottom: 30px;
  background-image: url("../img/merit_tit_btm.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: contain;
  color: #176359;
  font-size: 20px;
  text-align: center;
  font-weight: bold;
}
#merit h2 {
}
#merit .contents {
  display: flex;
  align-items: center;
  margin-top: 45px;
  padding-bottom: 100px;
}
#merit .img {
  width: calc(85200% / 1500);
}
#merit .img img {
  width: 100%;
}
#merit .content {
  max-width: 420px;
  width: 100%;
  padding-left: 70px;
}
#merit .content p {
  line-height: 2;
}
@media (max-width: 1099px) {
  #merit .content {
    max-width: 50%;
    padding-left: 30px;
    padding-right: 20px;
  }
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #merit {
    padding-top: 80px;
  }
  #merit::before {
    border-width: 50px 100px 0 100px;
  }
  #merit .subttl {
    padding-bottom: 20px;
  }
  #merit h2 {
    font-size: 36px;
    line-height: 1.4;
  }
  #merit .contents {
    display: block;
    margin-top: 20px;
    padding-bottom: 40px;
  }
  #merit .img {
    width: 100%;
  }
  #merit .content {
    max-width: 100%;
    width: 100%;
    padding-left: 20px;
  }
  #merit .content p {
    margin-top: 30px;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.4px;
  }
}
#merit ul {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 110px;
}
#merit li {
  position: relative;
  width: calc(28500% / 1200);
  padding-bottom: 30px;
  background-image: url("../img/hougan_bg.jpg");
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
#merit li:nth-child(2n+1) {
  margin-top: 50px;
}
#merit li::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -10px;
  bottom: -25px;
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom right;
  border-radius: 10px;
}
#merit li:nth-child(1)::before {
  background-image: url("../img/merit01_bg.png");
}
#merit li:nth-child(2)::before {
  background-image: url("../img/merit02_bg.png");
}
#merit li:nth-child(3)::before {
  background-image: url("../img/merit03_bg.png");
}
#merit li:nth-child(4)::before {
  background-image: url("../img/merit04_bg.png");
}
#merit section {
}
#merit .num {
  margin-left: 10px;
  margin-top: -50px;
  color: #d3e6e4;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
}
#merit .num span {
  font-size: 80px;
  line-height: 1;
}
#merit section h3 {
  margin-top: 20px;
  color: #176359;
  font-size: 20px;
  text-align: center;
  font-weight: bold;
}
#merit section img {
  width: calc(100% - 40px);
  margin-top: 20px;
  margin-left: 20px;
  margin-right: 20px;
}
#merit section p {
  margin-top: 20px;
  margin-left: 20px;
  margin-right: 20px;
}
@media (max-width: 959px) {
  #merit ul {
    flex-wrap: wrap;
    padding-bottom: 50px;
  }
  #merit li {
    width: 48%;
  }
  #merit li:nth-child(1) {
    margin-bottom: 40px;
  }
}
@media (max-width: 767px) {
  #merit ul {
    display: block;
    margin-top: 0;
    padding-left: 5px;
    padding-right: 5px;
  }
  #merit li {
    width: calc(100% - 15px);
    padding-top: 1px;
    margin-top: 70px !important;
    background-size: 27.5px;
  }
  #merit section {
  }
  #merit section h3 {
    margin-top: 5px;
  }
  #merit li:nth-child(1) {
    margin-bottom: 0;
  }
  #merit li:nth-child(2n) {
    margin-left: auto;
  }
  #merit li::before {
    right: -15px;
    bottom: -15px;
  }
  #merit li:nth-child(1)::before {
    background-image: url("../img/merit01_bg_sp.png");
  }
  #merit li:nth-child(2)::before {
    left: -15px;
    background-image: url("../img/merit02_bg_sp.png");
  }
  #merit li:nth-child(3)::before {
    background-image: url("../img/merit03_bg_sp.png");
  }
  #merit li:nth-child(4)::before {
    left: -15px;
    background-image: url("../img/merit04_bg_sp.png");
  }
  #merit section p {
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.4px;
  }
}


/* ---------- #kodawari ---------- */
#kodawari {
  margin-top: 10px;
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f08429;
  /*background-image: url("../img/kodawari_bg.jpg");*/
  /*background-size: cover;*/
  /*background-position: top center;*/
}
#kodawari h2 {
  color: #fff;
}
#kodawari .sp_slider {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 55px;
}
#kodawari section {
  display: flex;
  flex-direction: column;
  align-items: center;
  /*justify-content: space-between;*/
  width: calc(38000% / 1200);
  /*height: 100%;*/
  background-color: #fff;
  border-radius: 30px;
  padding: calc(3000% / 1200);
  background-image: url("../img/kodawari_line_top.png");
  background-repeat: no-repeat;
  background-size: calc(100% - 60px) auto;
  background-position: top 30px center;
  text-align: center;
}
#kodawari section:nth-child(n+4) {
  margin-top: calc(3000% / 1200);
}
#kodawari .icon {
  padding-top: 50px;
}
#kodawari .icon img {
  width: 60px;
}
#kodawari h3 {
  color: #176359;
  font-size: 36px;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
}
#kodawari h3 span {
  font-size: 28px;
}
#kodawari .lead {
  margin: 10px -10px;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
}
#kodawari .lead span {
  background-image: linear-gradient(to bottom, transparent 60%, #fdff08 60%);
}
#kodawari p {
  margin-bottom: 20px;
  padding-bottom: 30px;
  background-image: url("../img/kodawari_line_btm.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  font-size: 15px;
}
#kodawari p .red {
  color: #b4001b;
}
#kodawari section > img {
  width: 100%;
}
@media (max-width: 959px) {
  #kodawari section {
    width: 48%;
  }
  #kodawari section:nth-child(n+3) {
    margin-top: 4%;
  }
}
@media (max-width: 767px) {
  #kodawari {
    padding-top: 50px;
    padding-bottom: 30px;
    background-image: url("../img/kodawari_bg_sp.jpg");
  }
  #kodawari .sp_slider {
    display: block;
    margin-top: 30px;
  }
  #kodawari section {
    padding: 10px 15px 20px;
    background-image: url("../img/kodawari_line_top_sp.png");
    background-size: calc(100% - 100px) auto;
    border-radius: 10px;
  }
  #kodawari section:nth-child(n+3) {
    margin-top: 0;
  }
  #kodawari .icon {
    padding-top: 45px;
  }
  #kodawari .icon img {
    width: 50px;
  }
  #kodawari h3 {
    margin-top: 10px;
    font-size: 25px;
  }
  #kodawari h3 span {
    font-size: 20px;
  }
  #kodawari .lead {
    margin: 10px -10px;
    font-size: 16px;
  }
  #kodawari p {
    width: 100%;
    background-image: url("../img/kodawari_line_btm_sp.png");
    background-size: calc(22700% / 340) auto;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.4px;
  }
  #kodawari section > img {
    width: calc(22700% / 340);
  }
  #kodawari .slick-dots li button {
    width: 8px;
    height: 8px;
  }
  #kodawari .slick-dots li.slick-active button {
    background-color: #8bcf44;
  }
  #kodawari .slick-prev,
  #kodawari .slick-next {
    top: 75%;
  }
}


/* ---------- #plan ---------- */
#plan {
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f3f3f3;
}
#plan h2 {
}
#plan .wrapper {
  margin-top: 20px;
}
#plan section {
  display: flex;
}
#plan section:nth-child(n+2) {
  margin-top: 60px;
}
#plan .img {
  position: relative;
  z-index: 1;
  width: calc(44000% / 1200);
}
#plan .img img {
  width: 100%;
}
#plan .content {
  width: calc(85000% / 1200);
  margin-top: 30px;
  margin-left: calc(9000% / -1200);
  padding-top: 40px;
  padding-left: calc(9000% / 1200);
  padding-bottom: 20px;
  padding-right: 20px;
  background-image: url("../img/hougan_bg.jpg");
  border-radius: 10px;
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);
}
#plan h3 {
  font-size: 34px;
  font-weight: bold;
  margin-left: 50px;
  color: #176359;
}
#plan .lead {
  margin-top: 10px;
  margin-left: 50px;
}
#plan .lead span {
  color: #176359;
  font-size: 13px;
}
#plan .service {
}
#plan .service > .ttl {
  position: relative;
  display: inline-block;
  padding: 5px 20px 5px 50px;
  margin-top: 20px;
  background-image: linear-gradient(to right, #158474, #52ab5b);
  box-shadow: -8px 8px 5px #cdd3d1;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
}
#plan .service > .ttl div {
  position: absolute;
  top: 0;
  bottom: 10px;
  left: calc(100% + 20px);
  display: flex;
  align-items: center;
  width: 350px;
  color: #176359;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0;
}
#plan .service > .ttl div br {
  display: none;
}
#plan .service_price {
  display: flex;
  align-items: flex-end;
  margin-top: -10px;
  padding-left: 20px;
}
#plan .service_list {
  display: flex;
  flex-shrink: 0;
  width: 400px;
  padding: 30px 20px 20px;
  background-color: #f0f6f6;
}
#plan .service_list.full {
  display: block;
  width: 100%;
}
#plan .service_list ul {
  width: 50%;
}
#plan .service_list.full ul {
  width: 100%;
}
#plan .service_list li {
  padding: 0 10px;
  font-weight: bold;
}
#plan .service_list.full li {
  padding-left: 30px;
  font-weight: bold;
}
#plan .service_list li div {
  font-size: 14px;
}
#plan .service_list.full li .subttl {
  position: relative;
  display: inline-block;
  width: 180px;
}
#plan .service_list.full li .subttl::before {
  content: "";
  position: absolute;
  left: -15px;
  top: 11px;
  width: 6px;
  height: 6px;
  background-color: #176359;
  border-radius: 20px;
}
#plan .service_list.full li .price_wrapper {
  display: inline-block;
  width: auto;
}
#plan .service_list.full li .price {
  color: #b4001b;
  font-size: 28px;
  line-height: 20px;
}
#plan .service_list.full > .subttl {
  padding-left: 10px;
  margin-top: 15px;
  font-size: 18px;
}
#plan .service_list.full .note {
  margin-top: 5px;
  padding-left: 10px;
  color: #b4001b;
}
#plan .service_list.full p {
  padding-left: 10px;
}
#plan .price_wrapper {
  padding-left: 30px;
  padding-bottom: 5px;
  font-weight: bold;
}
#plan .price_wrapper .ttl {
}
#plan .price_wrapper .price {
  text-align: left;
  line-height: 1;
}
#plan .price_wrapper .price span:nth-child(1) {
  display: none;
}
#plan .price_wrapper .price span:nth-child(2) {
  color: #b4001b;
  font-size: 50px;
}
#plan .price_wrapper .price span:nth-child(3) {
  display: inline-block;
  margin-top: 10px;
}
@media (max-width: 1099px) {
  #plan .service_price {
    flex-wrap: wrap;
  }
  #plan .price_wrapper {
    width: 100%;
    padding-left: 0;
    padding-top: 10px;
  }
}
@media (max-width: 959px) {
  #plan .service > .ttl div {
    width: 250px;
    padding-bottom: 20px;
  }
  #plan .service > .ttl div br {
    display: block;
  }
}
@media (max-width: 767px) {
  #plan {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #plan h2 {
  }
  #plan .wrapper {
    margin-top: 30px;
  }
  #plan section {
    display: block;
  }
  #plan section:nth-child(n+2) {
    margin-top: 35px;
  }
  #plan .img {
    width: 100%;
    padding-left: 25px;
    padding-right: 25px;
  }
  #plan .content {
    width: 100%;
    margin-top: -45px;
    margin-left: 0;
    padding-top: 55px;
    padding-left: 0;
    padding-right: 0;
    background-size: 27.5px;
  }
  #plan h3 {
    font-size: 25px;
    margin-left: 0;
    text-align: center;
  }
  #plan .lead {
    margin-left: 20px;
    margin-right: 20px;
    font-size: 14px;
    line-height: 1.6;
  }
  #plan .lead span {
    font-size: 11px;
  }
  #plan .service {
  }
  #plan .service > .ttl {
    padding: 3px 15px 3px 35px;
    margin-top: 10px;
/*    box-shadow: -8px 8px 5px #cdd3d1;*/
    font-size: 16px;
  }
  #plan .service > .ttl div {
    display: none;
  }
  #plan .service_price {
    display: block;
/*    margin-top: -10px;*/
    padding-right: 20px;
  }
  #plan .service_list {
    flex-shrink: 0;
    width: 100%;
    padding: 20px 10px 10px;
    background-color: #f0f6f6;
  }
  #plan .service_list ul {
  }
  #plan .service_list li {
    position: relative;
    padding: 0 0 0 10px;
    font-size: 13px;
    text-align: left;
  }
  #plan .service_list.full li {
    padding-left: 10px;
  }
  #plan .service_list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    display: block;
    width: 5px;
    height: 5px;
    background-color: #176359;
    border-radius: 10px;
  }
  #plan .service_list li div {
    font-size: 11px;
    margin-bottom: 5px;
  }
  #plan .service_list.full li::before {
    display: none;
  }
  #plan .service_list.full li .subttl {
    width: 140px;
  }
  #plan .service_list.full li .subttl::before {
    left: -10px;
    top: 8px;
    width: 5px;
    height: 5px;
  }
  #plan .service_list.full li .price_wrapper {
    padding-top: 0;
    padding-bottom: 0;
  }
  #plan .service_list.full li .price {
    font-size: 20px;
    /*line-height: 20px;*/
  }
  #plan .service_list.full > .subttl {
    padding-left: 0;
    font-size: 13px;
  }
  #plan .service_list.full .note {
    font-size: 10px;
  }
  #plan .service_list.full p {
    font-size: 13px;
  }
  #plan .price_wrapper {
    padding-left: 0;
  }
  #plan .price_wrapper .ttl {
    display: none;
  }
  #plan .price_wrapper .price {
    line-height: 1;
  }
  #plan .price_wrapper .price span:nth-child(1) {
    display: inline-block;
    margin-top: 10px;
  }
  #plan .price_wrapper .price span:nth-child(2) {
    display: inline-block;
    margin: 0 5px;
    font-size: 38px;
    letter-spacing: 0;
  }
  #plan .price_wrapper .price span:nth-child(3) {
  }
}


/* ---------- .cv ---------- */
.cv {
  padding-top: 100px;
  padding-bottom: 100px;
  background-image: url("../img/cv_bg.jpg");
  background-position: center;
  background-size: cover;
}
.cv .wrapper {
  padding-top: 20px;
  padding-bottom: 20px;
  background-image: url("../img/cv_line_bg.png");
  background-repeat: no-repeat;
  background-position: top center;
}
.cv .inner {
  margin-left: 20px;
  margin-right: 20px;
  padding: 40px;
  background-color: #fff;
  text-align: center;
}
.cv .subttl {
  display: inline-block;
  padding: 3px 30px;
  background-image: linear-gradient(to right, #8bd042, #158674);
  color: #fff;
  font-size: 20px;
  text-shadow:
     2px  2px 1px #499453,
    -2px  2px 1px #499453,
     2px -2px 1px #499453,
    -2px -2px 1px #499453,
     2px  0px 1px #499453,
     0px  2px 1px #499453,
    -2px  0px 1px #499453,
     0px -2px 1px #499453;
}
.cv .ttl {
  margin-top: 20px;
  color: #176359;
  font-size: 42px;
  font-weight: bold;
}
.cv .ttl_img {
  display: none;
}
.cv .offbana {
  max-width: 100%;
  margin-top: 10px;
}
.cv .soudan_ttl {
  display: inline-block;
  margin-top: 20px;
  padding: 3px 30px;
  background-color: #fdff06;
  border-radius: 100px;
  font-weight: bold;
}
.cv .contents {
  display: flex;
  justify-content: space-around;
  margin-top: 15px;
}
.cv .left {
}
.cv .left_ttl {
  display: inline-block;
  max-width: 385px;
  padding-bottom: 20px;
  background-image: url("../img/cv_line_l.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
}
.cv .left p {
  color: #176359;
  font-size: 24px;
  font-weight: bold;
}
.cv .tel {
  font-size: 48px;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
}
.cv .tel img {
  width: 48px;
  margin-right: 10px;
}
.cv .time {
  margin-top: 5px;
  font-size: 15px;
  font-weight: bold;
}
.cv .note {
  margin-top: 10px;
  color: #176359;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
}
.cv .note a {
  display: inline-block;
  margin: 0 3px;
  background-image: linear-gradient(to bottom, transparent 80%, #d3e6e2 80%);
  font-size: 32px;
  letter-spacing: 0;
}
.cv .right {
  width: 369px;
}
.cv .right_ttl {
  display: inline-block;
  max-width: 305px;
  padding-bottom: 20px;
  background-image: url("../img/cv_line_r.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
}
.cv .btn_area {
  text-align: center;
}
.cv .btn_area > a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 369px;
  height: 75px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  vertical-align: middle;
}
.cv .btn_area > a img {
  margin-right: 5px;
}
.cv .btn_area p {
  font-size: 14px;
}
.cv .btn_area p a {
  text-decoration: underline;
}
.cv .btn_area p a:hover {
  text-decoration: none;
}
.cv .line {
  background-image: url("../img/cv_line_btn.png");
}
.cv .line:hover {
}
.cv .line img {
}
.cv .web {
  background-image: url("../img/cv_web_btn.png");
}
.cv .web:hover {
}
.cv .web img {
}
@media (max-width: 1099px) {
  .cv .note {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cv .note a {
    margin-top: 10px;
    margin-bottom: 10px;
  }
}
@media (max-width: 959px) {
  .cv .contents {
    flex-direction: column-reverse;
  }
  .cv .left {
    margin-top: 30px;
  }
  .cv .right {
    width: auto;
  }
}
@media (max-width: 767px) {
  .cv {
    padding-top: 40px;
    padding-bottom: 40px;
    background-image: url("../img/cv_bg_sp.jpg")
  }
  .cv .wrapper {
    width: calc(100% - 14px);
    padding-top: 13px;
    padding-bottom: 20px;
    padding-left: 10px;
    padding-right: 10px;
    background-image: url("../img/cv_line_bg_sp.png");
    background-size: 360px auto;
    background-size: 100% 100%;
    margin-left: 10px;
    margin-right: 10px;
  }
  .cv .inner {
    margin-left: 0;
    margin-right: 0;
    padding: 15px;
  }
  .cv .subttl {
    display: block;
    padding: 3px 10px;
    letter-spacing: 0;
  }
  .cv .contents {
    margin-top: -14px;
  }
  .cv .ttl {
/*    margin-top: 20px;*/
    font-size: 24px;
    letter-spacing: 0;
  }
  .cv .soudan_ttl {
    position: relative;
    z-index: 3;
/*    margin-top: 20px;*/
    padding: 3px 20px;
    font-size: 14px
  }
  .cv .contents {
    position: relative;
    z-index: 2;
  }
  .cv .left {
    margin-top: 10px;
    padding: 15px 20px 20px;
    background-color: #f0f6f6;
    border-radius: 10px;
  }
  .cv .left_ttl {
    display: block;
    max-width: 100%;
    padding-top: 7px;
    background-image: url("../img/cv_line_l.png"), url("../img/cv_line_top.png");
    background-position: bottom center, top center;
    background-size: contain;
    font-size: 24px;
    line-height: 1.3;
  }
  .cv .left p {
    margin-top: 10px;
    font-size: 16px;
  }
  .cv .tel {
    font-size: 32px;
  }
  .cv .tel img {
    width: 30px;
    margin-right: 5px;
  }
  .cv .time {
/*    margin-top: 5px;*/
/*    font-size: 15px;*/
    background-color: #d3e6e4;
  }
  .cv .note {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #888;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
  }
  .cv .note a {
    display: inline-block;
    margin: 5px 0;
    background-image: linear-gradient(to bottom, transparent 70%, #fbfd05 70%);
    color: #000;
    font-size: 32px;
    letter-spacing: 0;
  }
  .cv .right {
    width: 100%;
    margin-top: 20px;
    padding: 20px 0;
    background-color: #f0f6f6;
    border-radius: 10px;
  }
  .cv .right_ttl {
    display: block;
    max-width: 100%;
    margin-left: 20px;
    margin-right: 20px;
    padding-top: 7px;
    background-image: url("../img/cv_line_l.png"), url("../img/cv_line_top.png");
    background-position: bottom center, top center;
    background-size: contain;
    font-size: 24px;
    line-height: 1.3;
  }
  .cv .btn_area {
    margin-top: 20px;
  }
  .cv .btn_area a {
    width: 305px;
    height: 84px;
  }
  .cv .btn_area a img {
    margin-right: 10px;
  }
  .cv .btn_area p {
    padding: 0 20px;
  }
  .cv .line {
    background-image: url("../img/cv_line_btn_sp.png");
    background-size: contain;
  }
  .cv .line:hover {
  }
  .cv .line img {
  }
  .cv .web {
    background-image: url("../img/cv_web_btn_sp.png");
    background-size: contain;
  }
  .cv .web:hover {
  }
  .cv .web img {
  }
}
@media (max-width: 459px) {
  .cv {
    padding-bottom: 20px;
  }
  .cv .subttl {
    font-size: calc(2000vw / 360);
  }
  .cv .ttl {
    display: none;
  }
  .cv .ttl_img {
    display: block;
    max-width: 100%;
    margin-top: 20px;
  }
  .cv .soudan_ttl {
    font-size: calc(1400vw / 360);
  }
  .cv .left_ttl {
    font-size: calc(1400vw / 360);
  }
  .cv .left p {
    font-size: calc(1600vw / 360);
  }
  .cv .tel {
    font-size: calc(3000vw / 360);
  }
  .cv .time {
    font-size: calc(1500vw / 360);
  }
  .cv .note {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
    font-size: calc(1400vw / 360);
  }
  .cv .note a {
    font-size: calc(2400vw / 360);
  }
  .cv .right {
    margin-top: 10px;
  }
  .cv .right_ttl {
    font-size: calc(1800vw / 360);
  }
  .cv .btn_area {
    margin-top: 5px;
  }
  .cv .btn_area > a {
    width: calc(30500vw / 400);
    height: calc(8400vw / 400);
    padding-bottom: calc(600vw / 400);
    font-size: calc(1800vw / 360);
  }
}


/* ---------- #sekou ---------- */
#sekou {
  padding-top: 100px;
  padding-bottom: 110px;
  background-color: #f0f6f6;
}
#sekou h2 {
}
#sekou .wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 90px;
}
#sekou section {
  position: relative;
  width: calc(calc(58000% / 1200) - 4px);
  margin-left: 2px;
  margin-right: 2px;
  padding-bottom: 30px;
  background-color: #fff;
  border-radius: 10px;
  text-align: center;
}
#sekou section::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -2px;
  left: -2px;
  display: block;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  background-image: linear-gradient(135deg, #8ece42 0%, #138772 100%);
  border-radius: 12px;
  box-shadow: 10px 10px 0 #e4f0ee;
}
#sekou section:nth-child(n+3) {
  margin-top: 120px;
}
#sekou .num {
  margin-top: -60px;
}
#sekou .num img {
  height: 76px;
}
#sekou h3 {
  margin-top: 30px;
  padding: 0 17px;
  color: #176359;
  font-size: 24px;
  font-weight: bold;
}
#sekou h3 span {
  background-image: linear-gradient(to bottom, transparent 70%, #fdff08 70%);
}
#sekou section > img {
  max-width: calc(100% - 34px);
  margin-top: 20px;
  margin-left: 17px;
  margin-right: 17px;
}
#sekou .menu {
  margin-top: 10px;
}
#sekou .detail {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0 17px;
}
#sekou .ttl {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80px;
  height: 80px;
  padding-bottom: 5px;
  margin-bottom: -10px;
  background-color: #fff;
  border: 4px solid #7accc0;
  border-radius: 100px;
  box-shadow: 15px 15px 10px -10px rgba(0, 0, 0, 0.05);
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
}
#sekou .menu ul {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  padding: 15px 10px 15px 60px;
  margin-top: 10px;
  margin-left: -40px;
  background-color: #f0f6f6;
  font-size: 17px;
  text-align: left;
}
#sekou .menu li {
  color: #176359;
  font-weight: bold;
}
#sekou .menu li:not(:last-child)::after {
  content: "、";
}
#sekou .prices {
  display: flex;
  justify-content: space-around;
  padding: 0 20px;
  margin-top: 20px;
}
#sekou .prices > div {
  width: 50%;
  padding: 5px 10px;
}
#sekou .prices > div:first-child {
  border-right: 1px solid #acd3ce;
}
#sekou .menu_tti {
  color: #176359;
  font-size: 18px;
  font-weight: bold;
}
#sekou .price {
  line-height: 1;
}
#sekou .price span:first-child {
  color: #8bd042;
  font-size: 38px;
  font-weight: bold;
}
#sekou .price span:last-child {
  display: inline-block;
  margin-top: 10px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #sekou {
    padding-top: 30px;
    padding-bottom: 50px;
    background-color: #f0f6f6;
  }
  #sekou h2 {
  }
  #sekou .wrapper {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 0;
  }
  #sekou section {
    margin-top: 75px;
    margin-bottom: 2px;
    padding-bottom: 30px;
  }
  #sekou section::before {
    box-shadow: none;
  }
  #sekou section:nth-child(n+3) {
    margin-top: 75px;
  }
  #sekou .num {
    margin-top: -50px;
  }
  #sekou .num img {
    display: inline-block;
    height: 61px;
  }
  #sekou h3 {
    margin-top: 15px;
    padding: 0 10px;
    font-size: 18px;
    letter-spacing: 0;
  }
  #sekou .ttl {
    width: 40px;
    height: 40px;
    padding-bottom: 2px;
    margin-bottom: -5px;
    margin-left: -6px;
    border: 3px solid #7accc0;
    box-shadow: 5px 5px 5px -5px rgba(0, 0, 0, 0.05);
    font-size: 11px;
  }
  #sekou .menu ul {
    padding: 5px 10px 5px 30px;
    margin-top: 5px;
    margin-left: -20px;
    font-size: 15px;
    letter-spacing: 0;
    line-height: 1.4;
  }
  #sekou .prices {
    padding: 0;
    margin-top: 15px;
  }
  #sekou .prices > div {
    padding: 0 10px;
  }
  #sekou .menu_tti {
    font-size: 13px;
    letter-spacing: 0;
  }
  #sekou .price span:first-child {
    font-size: 24px;
    letter-spacing: 0;
  }
  #sekou .price span:last-child {
    margin-top: 5px;
    font-size: 10px;
  }
}


/* ---------- #voice ---------- */
#voice {
  position: relative;
  z-index: 1;
  margin-top: -160px;
  padding-top: 370px;
  padding-bottom: 100px;
  background-image: url("../img/hougan_bg.jpg");
  background-position: center top;
  overflow: hidden;
}
#voice::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 0;
  display: block;
  border-style: solid;
  border-width: 750px calc(var(--vw) * 150) 0 calc(var(--vw) * 150);
  border-color: #f3f0e7 transparent transparent transparent;
  transform: translateX(-50%);
}
#voice .wrapper {
}
#voice h2 {
}
#voice .lead {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: -30px;
  padding: 0 20px;
}
#voice .lead .level {
}
#voice .lead .level img {
  max-width: 520px;
  width: 100%;
}
#voice .lead .text {
  margin-left: 60px;
  font-size: 14px;
  letter-spacing: 0;
}
#voice .lead .text img {
  max-width: 400px;
}
#voice .lead .text p {
  margin-top: 10px;
}
#voice .lead .text a {
  text-decoration: underline;
}
#voice .lead .text a:hover {
  text-decoration: none;
}
#voice .voice_list {
  height: 700px;
  padding: 30px;
  margin-top: 50px;
  border: 5px solid #c0b462;
  border-image: linear-gradient(to right, #c0b462 0%, #ededa7 45%, #957a1f 100%);
  border-image-slice: 1;
  background-color: #fff;
  overflow: auto;
}
#voice .voice_wrapper {
  display: flex;
}
#voice .voice_wrapper:not(:last-child) {
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #c4c4c4;
}
#voice .status {
  flex-shrink: 0;
  width: 155px;
  margin-right: 20px;
}
#voice .name_month {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  line-height: 1;
}
#voice .name {
  display: inline-block;
  padding: 4px 10px;
  background-color: #8ccf44;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0;
}
#voice .month {
  letter-spacing: 0;
}
#voice .kind {
  margin-top: 10px;
  border: 1px solid #176558;
  color: #176558;
  font-size: 12px;
  text-align: center;
}
#voice .rating {
  margin-top: 5px;
  line-height: 1;
}
#voice .rating span {
  font-size: 30px;
  letter-spacing: 0;
}
#voice .rating img {
  margin-left: 2px;
}
#voice .content {
  position: relative;
  width: 100%;
  padding: 15px 20px;
  background: #fdfaf1;
  border: 1px solid #dcd68a;
  font-size: 13px;
}
#voice .content:after,
#voice .content:before {
  right: 100%;
  top: 50%;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}
#voice .content:after {
  border-color: rgba(253, 250, 241, 0);
  border-right-color: #fdfaf1;
  border-width: 15px;
  margin-top: -15px;
}
#voice .content:before {
  border-color: rgba(220, 214, 138, 0);
  border-right-color: #dcd68a;
  border-width: 16px;
  margin-top: -16px;
}
@media (max-width: 959px) {
  #voice .lead {
    margin-top: 30px;
  }
}
@media (max-width: 767px) {
  #voice {
    margin-top: 20px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #voice::before {
    border-width: 590px calc(var(--vw) * 500) 0 calc(var(--vw) * 500);
  }
  #voice h2 {
    display: none;
  }
  #voice .lead {
    display: block;
    margin-top: 0;
    padding: 0;
    text-align: center;
  }
  #voice .lead .text {
    margin-top: 0;
    margin-left: 0;
    font-size: 12px;
    font-weight: normal;
  }
  #voice .lead .text img:not(.sp) {
    max-width: 400px;
    width: 100%;
  }
  #voice .lead .text img.sp {
    max-width: 100%;
    margin-top: 20px;
  }
  #voice .lead .text p {
    margin-top: 5px;
    text-align: left;
  }
  #voice .voice_list {
    height: 450px;
    padding: 15px;
    margin-top: 10px;
  }
  #voice .voice_wrapper {
    display: block;
  }
  #voice .status_sp {
  }
  #voice .name_kind {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: 14px;
    line-height: 1;
  }
  #voice .kind {
    margin-top: 0;
    padding: 4px 10px;
  }
  #voice .rating_month {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 5px;
  }
  #voice .rating {
    margin-top: 0;
  }
  #voice .month {
    font-size: 12px;
  }
  #voice .content {
    margin-top: 10px;
    padding: 0;
    background: transparent;
    border: none;
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0;
  }
  #voice .content:after,
  #voice .content:before {
    display: none;
  }
}


/* ---------- #staff ---------- */
#staff {
  padding-top: 100px;
  background-color: #f0f6f6;
}
#staff h2 {
}
#staff ul {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  max-width: 830px;
  margin-top: 90px;
}
#staff li {
  width: calc(38000% / 790);
  padding: 0 30px 30px;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
#staff .img {
  text-align: center;
}
#staff .img img {
  width: 200px;
  margin-top: -70px;
}
#staff .name {
  position: relative;
  margin-top: 20px;
  padding-bottom: 10px;
  color: #176359;
  font-size: 24px;
  text-align: center;
  font-weight: bold;
}
#staff .name::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  width: 40px;
  height: 3px;
  margin-left: auto;
  margin-right: auto;
  background-color: #7accc0;
}
#staff p {
  margin-top: 15px;
  font-size: 14px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #staff {
    padding-top: 30px;
  }
  #staff h2 {
  }
  #staff ul {
    position: relative;
    z-index: 2;
    display: block;
    max-width: 830px;
    width: 100%;
    margin-top: 0;
  }
  #staff li {
    width: 100%;
    margin-top: 90px;
    padding: 0 20px 30px;
  }
  #staff .img img {
    width: 120px;
    margin-top: -70px;
  }
  #staff .name {
    margin-top: 10px;
  }
  #staff .name::after {
    width: 30px;
    height: 2px;
  }
  #staff p {
    margin-top: 10px;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.4;
    letter-spacing: 0.4px;
  }
}


/* ---------- #map ---------- */
#map {
  position: relative;
  z-index: 1;
  margin-top: -80px;
  background-image: url("../img/map_bg.jpg");
  background-position: top center;
}
#map > img {
  margin-left: calc(calc(100% - 1500px) / 2.5);
}
#map .supported_area {
  position: absolute;
  top: 0;
  left: calc(790% / 15);
  width: 460px;
  padding: 0 30px 30px;
  margin-top: 180px;
  background-color: #fff;
}
#map h2 {
  width: 220px;
  height: 40px;
  margin-top: -20px;
  margin-left: auto;
  margin-right: auto;
  background-image: linear-gradient(to right, #88cc45 25%, #168676);
  border-radius: 100px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  line-height: 40px;
  text-align: center;
}
#map .areas {
  margin-top: 20px;
}
#map .areas > li {
}
#map .areas > li:not(:last-child) {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 2px solid #7accc0;
}
#map .ttl {
  font-size: 18px;
  font-weight: bold;
}
#map .detail_area {
  display: flex;
  flex-wrap: wrap;
  margin-right: -20px;
}
#map .detail_area li {
  margin-right: 20px;
  font-size: 15px;
}
@media (max-width: 1099px) {
  #map .supported_area {
    left: 50%;
  }
}
@media (max-width: 959px) {
  #map > img {
    max-width: 1113px;
    width: calc(100% + calc(calc(1500px - 100%) / 2.5));
    height: auto;
  }
  #map .supported_area {
    left: auto;
    right: 20px;
  }
}
@media (max-width: 767px) {
  #map {
    margin-top: -40px;
    padding-bottom: 30px;
  }
  #map > img {
    margin-left: 0;
    width: 100%;
  }
  #map .supported_area {
    position: static;
    width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
    padding: 5px 20px 20px;
    margin-top: 50px;
  }
  #map h2 {
    width: 165px;
    height: 32px;
    margin-top: -21px;
    font-size: 14px;
    line-height: 32px;
  }
  #map .ttl {
    font-size: 14px;
  }
  #map .detail_area li {
    font-size: 12px;
    font-weight: normal;
  }
}


/* ---------- #flow ---------- */
#flow {
  padding-top: 100px;
  padding-bottom: 100px;
}
#flow h2 {
}
#flow .wrapper {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 50px;
}
#flow li {
  display: flex;
  flex-direction: column;
}
#flow li:nth-child(-n+3) {
  width: calc(380% / 12);
}
#flow li:nth-child(n+4) {
  width: calc(585% / 12);
  margin-top: calc(40% / 12);
}
#flow .step {
  padding-left: 10px;
  padding-bottom: 5px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
}
#flow .step span {
  font-size: 46px;
}
#flow li:nth-child(1) .step {
  color: #e9e200;
}
#flow li:nth-child(2) .step {
  color: #9edf13;
}
#flow li:nth-child(3) .step {
  color: #63c240;
}
#flow li:nth-child(4) .step {
  color: #24a44f;
}
#flow li:nth-child(5) .step {
  color: #176359;
}
#flow .box {
  height: 100%;
  padding-bottom: 20px;
  border: 1px solid #8ccf44;
  box-shadow: 10px 10px 10px -5px rgba(0, 0, 0, 0.05);
}
#flow img {
  width: 100%;
}
#flow .ttl {
  display: inline-block;
  min-width: calc(26000% / 380);
  padding: 10px 20px;
  margin-top: 15px;
  margin-left: -7px;
  background-image: linear-gradient(to right, #148474 33%, #53ac5a);
  box-shadow: -5px 5px 10px rgba(0, 0, 0, 0.2);
  color: #fff;
  font-weight: bold;
  line-height: 1;
}
#flow li:nth-child(n+4) .ttl {
  min-width: 50%;
}
#flow .ttl span {
  font-size: 20px;
}
#flow p {
  margin: 15px 20px 0;
  font-size: 15px;
}
#flow li:nth-child(n+4) p {
  text-align: center;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #flow {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #flow h2 {
  }
  #flow .wrapper {
    display: block;
    margin-top: 0;
  }
  #flow li {
    position: relative;
  }
  #flow li:nth-child(-n+3),
  #flow li:nth-child(n+4) {
    width: 100%;
    margin-top: 0;
  }
  #flow li:nth-child(n+2) {
    margin-top: 20px;
  }
  #flow li:not(:last-child)::before {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    display: block;
    width: 40px;
    height: 40px;
    margin-left: auto;
    margin-right: auto;
    border: 6px solid #176359;
    border-top-color: transparent;
    border-left-color: transparent;
    transform-origin: center;
    transform: scaleX(1.2) rotate(45deg);
  }
  #flow .box {
    position: relative;
    display: flex;
    padding-bottom: 0;
  }
  #flow img {
    flex-shrink: 0;
    width: 100px;
    object-fit: cover;
  }
  #flow .ttl {
    position: relative;
    top: 10px;
    left: 0;
    min-width: 175px;
    max-width: calc(100% );
    padding: 6px 10px 8px;
    margin-top: 0;
    margin-left: -20px;
    font-size: 12px;
    text-align: left;
  }
  #flow li:nth-child(n+4) .ttl {
    min-width: 175px;
  }
  #flow .ttl span {
    font-size: 15px;
  }
  #flow p {
    margin: 20px 10px 10px 10px;
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0;
  }
  #flow li:nth-child(n+4) p {
    text-align: justify;
  }
}


/* ---------- #faq ---------- */
#faq {
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f3f3f3;
}
#faq h2 {
}
#faq .wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 40px;
}
#faq ul {
  width: calc(585% / 12);
}
#faq li {
}
#faq li:nth-child(n+2) {
  margin-top: 20px;
}
#faq .q {
  position: relative;
  display: flex;
  align-items: center;
  padding: 10px 50px 10px 10px;
  background-color: #fff;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
  text-align: left;
}
#faq .q::before,
#faq .q::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
  display: block;
  width: 20px;
  height: 2px;
  margin-top: auto;
  margin-bottom: auto;
  background-color: #7accc0;
}
#faq .q::before {
}
#faq .q::after {
  transform-origin: center;
  transform: rotate(90deg);
  transition: all ease 0.3s;
}
#faq .q.active::after {
  transform: rotate(0deg);
}
#faq .q span {
  flex-shrink: 0;
  display: inline-block;
  width: 50px;
  color: #369d58;
  font-size: 36px;
  line-height: 1;
}
#faq .a {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  overflow: hidden;
  max-height: 0;
  padding: 0 10px;
  transition: max-height 0.3s ease;
}
#faq .a.is-open {
  max-height: var(--max-height);
}
#faq .a .ico {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  margin-top: 7px;
  padding-bottom: 5px;
  background-color: #8bd15d;
  color: #fff;
  font-size: 36px;
  font-weight: bold;
  line-height: 1;
}
#faq .a .ttl {
  width: calc(100% - 50px);
  margin-top: 7px;
  padding-top: 7px;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
}
#faq .a p {
  margin-left: 50px;
  padding-right: 10px;
  font-size: 15px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #faq {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #faq .wrapper {
    display: block;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 40px;
  }
  #faq ul {
    width: 100%;
  }
  #faq li {
    margin-top: 20px;
  }
  #faq .q {
    padding: 7px 40px 7px 10px;
    font-size: 15px;
  }
  #faq .q::before,
  #faq .q::after {
    right: 16px;
    width: 16px;
    height: 2px;
  }
  #faq .q span {
    width: 35px;
    font-size: 24px;
  }
  #faq .a {
    padding: 0 7px;
  }
  #faq .a .ico {
    width: 30px;
    height: 30px;
    padding-bottom: 0;
    font-size: 24px;
  }
  #faq .a .ttl {
    width: calc(100% - 40px);
    padding-top: 0;
    font-size: 15px;
  }
  #faq .a p {
    margin-left: 40px;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0;
  }
}


/* ---------- #form ---------- */
#form {
  padding-top: 100px;
  padding-bottom: 100px;
}
#form h2 {
}
#form .wrapper {
  max-width: 840px;
}
#form .lead {
  margin-top: 40px;
  padding: 20px;
  text-align: center;
}
#form .lead .anshin {
  display: inline-block;
  max-width: 385px;
  padding-bottom: 20px;
  background-image: url("../img/cv_line_l.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
}
#form .lead .uketsuke {
  color: #176359;
  font-size: 24px;
  font-weight: bold;
}
#form .lead .tel {
  font-size: 48px;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
}
#form .lead .tel img {
  width: 48px;
  margin-right: 10px;
}
#form .lead .time {
  margin-top: 5px;
  font-size: 15px;
  font-weight: bold;
}
#form .lead .oisogi {
  margin-top: 10px;
  color: #176359;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
}
#form .lead .oisogi a {
  display: inline-block;
  margin: 0 3px;
  background-image: linear-gradient(to bottom, transparent 80%, #d3e6e2 80%);
  font-size: 32px;
  letter-spacing: 0;
}
#form .lead .offbana {
  max-width: 100%;
  margin-top: 20px;
}
#form .lead .btn_area {
  margin-top: 25px;
}
#form .lead .btn_area a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 444px;
  height: 95px;
  padding-bottom: 5px;
  background-image: url("../img/form_line_btn.png");
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
}
#form .lead .btn_area img {
  margin-right: 10px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #form {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #form .lead {
    margin-top: 30px;
/*    padding: 20px;*/
    border: none;
    background-color: #f0f6f6;
    border-radius: 10px;
  }
  #form .lead .anshin {
    display: block;
    max-width: 100%;
    padding-top: 7px;
    padding-bottom: 20px;
    background-image: url("../img/cv_line_l.png"), url("../img/cv_line_top.png");
    background-position: bottom center, top center;
    background-size: contain;
    font-size: 24px;
    line-height: 1.3;
  }
  #form .lead .uketsuke {
    font-size: 16px;
  }
  #form .lead .tel {
    font-size: 32px;
  }
  #form .lead .tel img {
    width: 30px;
    margin-right: 5px;
  }
  #form .lead .time {
    background-color: #d3e6e4;
  }
  #form .lead .oisogi {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #888;
  }
  #form .lead .oisogi a {
    display: inline-block;
    margin: 5px 0;
    background-image: linear-gradient(to bottom, transparent 70%, #fbfd05 70%);
    color: #333;
  }
  #form .lead .btn_area {
    margin-top: 25px;
  }
  #form .lead .btn_area a {
    width: 305px;
    height: 84px;
    background-image: url("../img/cv_line_btn_sp.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top center;
    font-size: 18px;
  }
  #form .lead .btn_area img {
    margin-right: 10px;
  }
}
@media (max-width: 459px) {
  #form .lead .anshin {
    font-size: calc(1800vw / 360);
  }
  #form .lead .uketsuke {
    font-size: calc(1600vw / 360);
  }
  #form .lead .tel {
    font-size: calc(3000vw / 360);
  }
  #form .lead .time {
    font-size: calc(1500vw / 360);
  }
  #form .lead .oisogi {
    padding-top: 0;
    margin-top: 0;
    border-top: none;
    font-size: calc(1400vw / 360);
  }
  #form .lead .oisogi a {
    font-size: calc(2400vw / 360);
  }
  #form .lead .btn_area a {
    width: calc(30500vw / 400);
    height: calc(8400vw / 400);
    padding-bottom: calc(600vw / 400);
    font-size: calc(1800vw / 360);
  }
}
/* form  */
#form form {
  margin-top: -60px;
  padding-top: 100px;
}
#form form .error {
  margin-bottom: 40px;
  color: #bd2b2b;
  font-weight: bold;
  text-align: center;
}
#form form .send {
  margin-bottom: 40px;
}
#form form .send span {
  display: inline-block;
  margin-bottom: 20px;
  font-size: 20px;
  font-weight: bold;
}
#form form .lead_text {
  font-size: 15px;
  text-align: center;
  font-weight: bold;
  margin-bottom: 10px;
}
#form form .form_item {
  margin-bottom: 30px;
}
#form form .form_item > label {
  display: block;
  margin-bottom: 5px;
  color: #176359;
  font-size: 18px;
  font-weight: bold;
}
#form form .form_item > label span {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 5px 3px;
  background-color: #bd2b2b;
  color: #fff;
  font-size: 13px;
  vertical-align: middle;
}
#form form .radio_wrapper {
}
#form form .radio_wrapper input {
  display: none;
}
#form form .radio_wrapper label {
  position: relative;
  display: inline-block;
  height: 20px;
  padding-left: 30px;
  font-size: 15px;
  font-weight: bold;
  line-height: 20px;
}
#form form .radio_wrapper label:not(:last-child) {
  margin-right: 15px;
}
#form form .radio_wrapper label::before,
#form form .radio_wrapper input:checked + label::after {
  content: "";
  position: absolute;
  display: block;
  border-radius: 20px;
}
#form form .radio_wrapper label::before {
  left: 0;
  width: 20px;
  height: 20px;
  border: 1px solid #9b9b9b;
}
#form form .radio_wrapper input:checked + label::after {
  left: 4px;
  top: 4px;
  width: 12px;
  height: 12px;
  background-color: #c4c4c4;
}
#form form input,
#form form textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #ccc;
}
#form form .btn_area {
  text-align: center;
}
#form form .btn_area button {
  display: inline-block;
  width: 280px;
  height: 70px;
  background-color: #17645a;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  line-height: 70px;
  transition: all ease 0.3s;
}
#form form .btn_area button:hover {
  background-color: #0b5950;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #form form {
  }
  #form form .lead_text {
    margin-left: -10px;
    margin-right: -10px;
    font-size: 16px;
    letter-spacing: 0;
  }
  #form form .form_item {
  }
  #form form .form_item > label {
    font-size: 16px;
  }
  #form form .radio_wrapper label {
    display: block;
    margin-top: 5px;
  }
  #form form .radio_wrapper label:not(:last-child) {
    margin-right: 0;
  }
  #form form .btn_area button {
    width: 250px;
    height: 60px;
    font-size: 16px;
    line-height: 60px;
  }
}
.grecaptcha-badge {
  z-index: 10000;
}


/* ---------- #company ---------- */
#company {
  padding-top: 100px;
  padding-bottom: 100px;
  background-image: url("../img/company_bg.jpg");
  background-position: center;
  background-size: cover;
}
#company .wrapper {
  max-width: 1040px;
}
#company .box {
  padding: 50px 20px 40px;
  background-color: #fff;
  border-radius: 10px;
}
#company h2 {
}
#company table {
  max-width: 600px;
  width: 100%;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}
#company th,
#company td {
  padding: 15px 0;
}
#company th {
  padding-right: 20px;
}
#company td {
  font-weight: bold;
}
#company td img {
  width: 34px;
  vertical-align: middle;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #company {
    padding-top: 60px;
    padding-bottom: 60px;
    background-image: url("../img/company_bg_sp.jpg");
  }
  #company .box {
    padding: 25px 17px 30px;
  }
  #company table {
    margin-top: 10px;
  }
  #company th,
  #company td {
    display: block;
    padding: 0;
    font-size: 14px;
  }
  #company th {
    padding-right: 0;
  }
  #company td {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #c4c4c4;
    font-weight: normal;
  }
  #company td img {
  }
}


/* ---------- #service ---------- */
#service {
  padding-top: 100px;
  padding-bottom: 100px;
  background-image: url("../img/service_bg.jpg");
  background-size: cover;
  background-position: top center;
}
#service .wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 30px;
}
#service section {
  display: flex;
  width: 49%;
  margin-top: 2%;
  padding: 30px 15px 30px 30px;
  background-color: #fff;
  border-radius: 10px;
  box-shadow: -5px 5px 5px rgba(0, 0, 0, 0.15);
}
#service .img {
  flex-shrink: 0;
  width: 45%;
}
#service .img img {
  max-width: 100%;
}
#service .content {
  padding-left: 30px;
  padding-top: 10px;
}
#service h3 {
  display: inline-block;
  margin-left: -40px;
  padding: 5px 15px;
  background-image: linear-gradient(to left, #53ac5c, #168676 75%);
  box-shadow: -5px 5px 5px rgba(0, 0, 0, 0.15);
  color: #fff;
  font-size: 24px;
}
#service ul {
  margin-top: 20px;
  font-size: 20px;
}
#service li {
  position: relative;
  padding-left: 20px;
}
#service li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  display: block;
  width: 7px;
  height: 7px;
  margin-top: auto;
  margin-bottom: auto;
  background-color: #8ace43;
  border-radius: 10px;
}
#service .atari {
  margin-top: 20px;
  color: #156558;
  font-size: 18px;
  font-weight: bold;
  line-height: 1;
}
#service .price {
}
#service .price .num {
  color: #f00024;
  font-size: 48px;
  line-height: 1;
}
#service .price .taxin {
  font-size: 14px;
}
#service .note {
  font-size: 14px;
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #service {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  #service section {
    display: block;
    width: 48%;
    margin-top: 4%;
    padding: 20px;
  }
  #service .img {
    width: 100%;
  }
  #service .img img {
    width: 100%;
  }
  #service .content {
    padding-left: 0;
    padding-top: 10px;
  }
  #service h3 {
    margin-left: -0px;
    font-size: 20px;
  }
  #service ul {
    margin-top: 20px;
    font-size: 18px;
  }
  #service .atari {
    font-size: 16px;
  }
  #service .price .num {
    font-size: 36px;
  }
}
@media (max-width: 519px) {
  #service .wrapper {
    padding-left: 10px;
    padding-right: 10px;
  }
  #service section {
    width: calc(50% - 5px);
    padding: 10px;
    margin-top: 10px;
  }
  #service h3 {
    padding: 3px 7px;
    font-size: 12px;
  }
  #service ul {
    margin-top: 10px;
    font-size: 13px;
    font-weight: normal;
  }
  #service .atari {
    margin-top: 15px;
  }
  #service .price {
    font-size: 13px;
  }
  #service .price .num {
    color: #f00024;
    font-size: 24px;
    line-height: 1;
  }
  #service .price .taxin {
    font-size: 12px;
  }
  #service .note {
    font-size: 10px;
  }
}




/* ---------------------------------------------------------
 * footer
** --------------------------------------------------------- */
#footer {
  position: relative;
  padding-top: 50px;
  padding-bottom: 10px;
  background-color: #f3f3f3;
  text-align: center;
}
#footer .f_logo {
}
#footer .f_logo img {
}
#footer .copy {
  margin-top: 40px;
  font-size: 10px;
}
#footer #goto_top {
  position: fixed;
  z-index: 100;
  right: 20px;
  bottom: 20px;
  display: block;
  width: 50px;
  height: 50px;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
#footer #goto_top::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  width: 18px;
  height: 18px;
  margin: auto;
  border-top: 3px solid #79cbbf;
  border-left: 3px solid #79cbbf;
  transform-origin: center;
  transform: rotate(45deg);
}
@media (max-width: 959px) {
}
@media (max-width: 767px) {
  #footer {
    padding-top: 35px;
  }
  #footer .f_logo {
  }
  #footer .f_logo img {
    width: 205px;
  }
  #footer .copy {
    margin-top: 25px;
  }
  #footer #goto_top {
    position: fixed;
    z-index: 100;
    right: 20px;
    bottom: 20px;
    display: block;
    width: 50px;
    height: 50px;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  }
  #footer #goto_top::before {
    content: "";
    position: absolute;
    top: 12px;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    width: 18px;
    height: 18px;
    margin: auto;
    border-top: 3px solid #79cbbf;
    border-left: 3px solid #79cbbf;
    transform-origin: center;
    transform: rotate(45deg);
  }
}