@charset "UTF-8";

/************************************

reset

************************************/
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-size: 100%;
  line-height: 1;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
}

li {
  list-style-type: none;
}

img {
  border: 0;
  vertical-align: bottom;
}

table {
  border-collapse: collapse;
}

address,
em {
  font-style: normal;
}

/************************************

base

************************************/
html {
  font-size: 625%;
}

@media screen and (max-width: 769px) {
  html {
    font-size: 480%;
  }
}

body {
  position: relative;
  font-family: sans-serif;
  font-size: 0.16rem;
  color: #000;
  background: #FFF;
}

p {
  line-height: 2.1;
  text-align: justify;
}

a {
  color: inherit;
}

a:hover {
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
}

.btn-inquiry {
  display: inline-block;
  width: 100%;
  max-width: 358px;
  padding: .8em 2em;
  color: #FFF;
  font-size: .2rem;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
  background: #000;
  transition: 0.2s all ease 0s;
}

@media screen and (max-width: 769px) {
  .btn-inquiry {
    max-width: 100%;
  }
}

.btn-primary {
  display: inline-block;
  padding: .8em 3em;
  color: #FFF;
  font-size: .18rem;
  text-decoration: none;
  text-align: center;
  background: #000;
  transition: 0.2s all ease 0s;
}

.btn-secondary {
  display: inline-block;
  padding: .8em 3em;
  color: #FFF;
  font-size: .15rem;
  text-decoration: none;
  text-align: center;
  background: #04c7ff;
  transition: 0.2s all ease 0s;
}

.btn-negative {
  display: inline-block;
  padding: .8em 3em;
  color: #FFF;
  font-size: .18rem;
  text-decoration: none;
  text-align: center;
  background: #CCC;
  transition: 0.2s all ease 0s;
}

.catch {
  font-size: .24rem;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

.catch em {
  color: #04c7ff;
}

.catch strong {
  color: #04c7ff;
  font-size: 1.3em;
}

.catch span {
  display: inline-block;
  margin-top: .1rem;
  font-size: .7em;
  line-height: 1.6;
}

.catch.-notice {
  font-weight: normal;
}

.column {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 769px) {
  .column {
    display: block;
  }
}

.column__item {
  flex: 1;
}

.column__item:not(:first-of-type) {
  margin-left: .6rem;
}

@media screen and (max-width: 769px) {
  .column__item:not(:first-of-type) {
    margin-left: 0;
  }
}

@media screen and (max-width: 769px) {
  .column__item {
    margin-top: .7rem;
  }
}

.container {
  max-width: 1100px;
  margin: 0 auto;
}

.container.-narrow {
  max-width: 680px;
}

.container.-dot {
  padding-bottom: 1rem;
  background-image: url(../images/shodoku/dot.svg);
  background-repeat: repeat-x;
  background-position: left bottom;
}

.container-dot {
  position: relative;
  padding: calc(4.6vw + .6rem) 0;
  background: url(../images/shodoku/bg_dot.png), linear-gradient(to right, #1c9cff, #0aaffa);
}

.container-dot::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4.6vw;
  background: url(../images/shodoku/mask_top@2x.png) no-repeat center -2px;
  background-size: 100vw auto;
}

.container-dot::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4.6vw;
  background: url(../images/shodoku/mask_bottom@2x.png) no-repeat center 2px;
  background-size: 100vw auto;
}

.container-dot p,
.container-dot table,
.container-dot ul,
.container-dot dl {
  color: #FFF;
}

.container-dot.-one-year {
  padding: calc(4.6vw + .6rem) 0 calc(4.6vw + 1.4rem) 0;
}

.contents {
  margin-top: .7rem;
  padding: 0 12px;
}

.contents.-center {
  text-align: center;
}

.contents.-no-margin {
  margin-top: 0;
}

.flow {
  max-width: 740px;
  margin: 0 auto;
}

.flow__item {
  position: relative;
}

.flow__item:not(:last-of-type) {
  padding-bottom: .2rem;
}

.flow__item:not(:last-of-type)::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: 0;
  left: .2rem;
  width: 4px;
  height: 100%;
  background: #04c7ff;
}

.flow__heading {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  display: inline-block;
  margin-bottom: .1rem;
  padding: .4em .8em .6em;
  color: #FFF;
  font-size: .24rem;
  background: #000;
}

.flow__summary {
  padding-left: 2.5em;
}

.flow__side {
  margin-top: .3rem;
  padding-top: .4rem;
  border-top: 1px dotted #000;
}

.flow__atp {
  display: block;
  margin: .3rem 0;
}

.footer {
  padding: .8rem 0;
  text-align: center;
}

.footer__copyright {
  display: block;
  margin-top: 1em;
  font-size: .12rem;
}

.form {
  margin-top: .5rem;
}

@media screen and (max-width: 769px) {
  .form {
    margin-top: 12%;
  }
}

.form__error {
  margin-top: .05rem;
  color: #ff5e5e;
}

.form__error-item {
  color: #ff5e5e;
}

.form__title {
  font-size: .22rem;
  font-weight: normal;
  text-align: center;
  line-height: 1.6;
}

.form__title em {
  color: #04c7ff;
  font-size: 1.8em;
}

.form__content {
  margin-top: .25rem;
}

.form__heading {
  color: #000;
  font-size: .18rem;
  font-weight: normal;
}

.form__heading+.form__caution {
  margin-top: 0;
}

.form__require {
  padding-left: .4em;
  color: #04c7ff;
  font-size: .12rem;
}

.form__input {
  margin-top: .06rem;
}

.form__input input,
.form__input textarea {
  -webkit-appearance: none;
  width: 100%;
  border: 1px solid #CCC;
  border-radius: 4px;
  padding: .5em;
}

.form__input input:focus,
.form__input textarea:focus {
  border-color: #04c7ff;
  box-shadow: 0px 0px 4px 0 #04c7ff;
}

@media screen and (max-width: 769px) {

  .form__input input,
  .form__input textarea {
    font-size: 16px;
  }
}

.form__input textarea {
  min-height: 2rem;
  line-height: 1.2;
}

.form__btn {
  display: flex;
  justify-content: center;
  margin-top: .25rem;
  text-align: center;
}

@media screen and (max-width: 769px) {
  .form__btn {
    display: block;
  }
}

.form__btn button,
.form__btn input[type="submit"] {
  border: 0;
}

.form__btn-item {
  margin: 0 .1rem;
}

@media screen and (max-width: 769px) {
  .form__btn-item {
    margin: .2rem 0 0 0;
  }
}

.form__finish p {
  text-align: center;
}

span.wpcf7-not-valid-tip {
  padding-top: .3em;
  color: #d10000;
  font-size: .14rem;
}

div.wpcf7-validation-errors,
div.wpcf7-acceptance-missing {
  margin: 2em auto 0 auto;
  padding: .15rem;
  border: none;
  background: #fcc4c4;
}

div.wpcf7-response-output {
  color: #d10000;
  font-size: .14rem;
}

div.wpcf7-mail-sent-ok {
  margin: 2em auto 0 auto;
  padding: .15rem;
  border: none;
  background: #04c7ff;
}

div.wpcf7-mail-sent-ok.wpcf7-response-output {
  color: #FFF;
}

.frame-box {
  padding: .5rem;
  border: 10px solid #04c7ff;
}

.frame-box .heading {
  margin-top: -.85rem;
}

.heading {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  display: table;
  text-align: center;
  margin: 0 auto .4rem auto;
  padding: .3em .6em .5em .6em;
  color: #FFF;
  font-size: .36rem;
  background: #000;
}

.heading-second {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: .3rem;
  text-align: center;
  color: #000;
}

.kokin {
  max-width: 600px;
  margin: 0 auto;
  padding: .4rem;
  text-align: center;
  background: rgba(4, 199, 255, 0.15);
}

.kokin .heading {
  font-size: .3rem;
  margin-top: -.7rem;
  margin-bottom: .3rem;
}

.kokin__catch {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: .18rem;
  text-align: center;
}

.kokin__heading {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  color: #04c7ff;
  font-size: .55rem;
}

.kokin__summary {
  margin-top: .2rem;
  font-size: .18rem;
  font-weight: bold;
  text-align: center;
}

.kokin__btn {
  margin-top: .2rem;
}

.list {
  display: flex;
  flex-wrap: wrap;
}

.list__item {
  display: inline-block;
  flex-basis: 50%;
  margin-bottom: .15rem;
  font-size: .24rem;
  font-weight: bold;
}

.list__item::before {
  content: "●";
  color: #1c9cff;
}

@media screen and (max-width: 1000px) {
  .list__item {
    font-size: .2rem;
  }
}

.main {
  position: relative;
  display: block;
  height: 780px;
  background: url(../images/shodoku/main.jpg) no-repeat center center/cover;
}

@media screen and (max-width: 769px) {
  .main {
    height: 100vh;
  }
}

.main__container {
  width: 100%;
  max-width: 1100px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  padding: 0 12px;
}

.main__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 100;
  font-style: normal;
  color: #FFF;
  font-size: clamp(1.2em, 1.5vw, 2em);
  line-height: 1.6;
  width: 100%!important;	
}

.main__title em {
  display: inline-block;
  margin-left: -.05em;
  font-size: 3.18em;
  line-height: 1.4;
}

@media screen and (max-width: 769px) {
  .main__title em {
    font-size: 9vw;
  }
}

.main__btn {
  margin-top: .3rem;
}

.service {
  display: flex;
  margin-top: .3rem;
}

@media screen and (max-width: 769px) {
  .service {
    flex-wrap: wrap;
  }
}

.service__item {
  flex: 1;
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2.2rem;
  color: #FFF;
  font-size: .2rem;
  line-height: 1.2;
  text-align: center;
  background: #000;
}

.service__item:not(:first-of-type) {
  margin-left: .04rem;
}

@media screen and (max-width: 769px) {
  .service__item {
    flex-basis: calc(50% - 0.4rem);
    margin-top: .04rem;
  }

  .service__item:nth-of-type(3n) {
    margin-left: 0;
  }
}

.service__item::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.45;
}

.service__item.-item01::after {
  background: url(../images/shodoku/img01.jpg);
  background-size: cover;
}

.service__item.-item02::after {
  background: url(../images/shodoku/img02.jpg);
  background-size: cover;
}

.service__item.-item03::after {
  background: url(../images/shodoku/img03.jpg);
  background-size: cover;
}

.service__item.-item04::after {
  background: url(../images/shodoku/img04.jpg);
  background-size: cover;
}

.table-primary {
  width: 100%;
  border-bottom: 1px solid #b7b7b7;
}

.table-primary th {
  padding: 0.16rem;
  font-weight: normal;
  line-height: 1.7;
  text-align: left;
  white-space: nowrap;
  border-top: 1px solid #b7b7b7;
  vertical-align: top;
}

.table-primary td {
  padding: 0.16rem;
  line-height: 1.7;
  border-top: 1px solid #b7b7b7;
  vertical-align: top;
}

.table-primary td a {
  color: #04c7ff;
}

.tel {
  margin-top: .7rem;
  padding: .4rem 12px .5rem 12px;
  text-align: center;
  background-image: url(../images/shodoku/dot.svg), url(../images/shodoku/dot.svg);
  background-repeat: repeat-x, repeat-x;
  background-position: left top, left bottom;
}

.tel__number {
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 100;
  font-style: normal;
  margin-top: .1rem;
  color: #04c7ff;
  font-size: .7rem;
}

@media screen and (max-width: 769px) {
  .tel__number {
    font-size: 14vw;
  }
}

.tel__time {
  margin-top: .2rem;
  font-size: .2rem;
}

.txt {
  margin-top: .2rem;
  font-size: .18rem;
  line-height: 1.6;
}

.works {
  display: flex;
  margin-top: .3rem;
}

@media screen and (max-width: 769px) {
  .works {
    flex-wrap: wrap;
  }
}

.works__item {
  flex: 1;
  line-height: 1.2;
  text-align: center;
}

.works__item:not(:first-of-type) {
  margin-left: .04rem;
}

@media screen and (max-width: 769px) {
  .works__item {
    flex-basis: calc(100% / 3 - .08rem);
  }

  .works__item:nth-of-type(4n) {
    margin-left: 0;
  }

  .works__item:nth-of-type(n+4) {
    margin-top: .3rem;
  }
}

.works__heading {
  margin-top: .15rem;
  font-size: .14rem;
  font-weight: bold;
}

/************************************

Display switch

************************************/
.pc-block {
  display: block;
}

.pc-inline {
  display: inline;
}

.sp-block {
  display: none;
}

.sp-inline {
  display: none;
}

@media screen and (max-width: 769px) {
  .pc-block {
    display: none;
  }

  .sp-block {
    display: block;
  }
}

@media screen and (max-width: 480px) {
  .pc-inline {
    display: none;
  }

  .sp-inline {
    display: inline;
  }
}

.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}