@charset "UTF-8";

@font-face {
  font-family: 'notosansjp';
  font-weight: 100;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Thin.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 200;
  src: url("/asset/fonts/notosansjp/NotoSansJP-ExtraLight.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 300;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Light.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 400;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Regular.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 500;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Medium.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 600;
  src: url("/asset/fonts/notosansjp/NotoSansJP-SemiBold.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 700;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Bold.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 800;
  src: url("/asset/fonts/notosansjp/NotoSansJP-ExtraBold.ttf") format('truetype');
}
@font-face {
  font-family: 'notosansjp';
  font-weight: 900;
  src: url("/asset/fonts/notosansjp/NotoSansJP-Black.ttf") format('opentype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 200;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-ExtraLight.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 300;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-Light.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 400;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-Regular.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 500;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-Medium.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 600;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-SemiBold.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 700;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-Bold.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 800;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-ExtraBold.ttf")format('truetype');
}
@font-face {
  font-family: 'notoserifjp';
  font-weight: 900;
  src: url("/asset/fonts/notoserifjp/NotoSerifJP-Black.ttf")format('truetype');
}
@font-face {
  font-family: 'zenmarugothic';
  font-weight: 300;
  src: url("/asset/fonts/zenmarugothic/ZenMaruGothic-Light.ttf")format('truetype');
}
@font-face {
  font-family: 'zenmarugothic';
  font-weight: 400;
  src: url("/asset/fonts/zenmarugothic/ZenMaruGothic-Regular.ttf")format('truetype');
}
@font-face {
  font-family: 'zenmarugothic';
  font-weight: 500;
  src: url("/asset/fonts/zenmarugothic/ZenMaruGothic-Medium.ttf")format('truetype');
}
@font-face {
  font-family: 'zenmarugothic';
  font-weight: 700;
  src: url("/asset/fonts/zenmarugothic/ZenMaruGothic-Bold.ttf")format('truetype');
}
@font-face {
  font-family: 'zenmarugothic';
  font-weight: 900;
  src: url("/asset/fonts/zenmarugothic/ZenMaruGothic-Black.ttf")format('truetype');
}


.only_sp {
  display: none!important;
}
.zenmaru {
  font-family: 'zenmarugothic'!important;
}
.t_bold {
  font-weight: 700!important;
}
html {
  font-family: 'Hiragino Kaku Gothic ProN','notosansjp';
  font-size:10px;
  font-weight: 400;
  color: #3C3C3C;
}
body {
  position: relative;
  font-size: 1.6rem;
}
.body_inner {
  overflow-x: hidden;
  overflow-y: scroll;
  width: 100%;
}
a {
  transition: 0.3s;
}
a:hover {
  opacity: 0.8;
}
.inner {
  max-width: 155.4rem;
  margin: auto;
}
.main_content {
  padding-bottom: 14.8rem;
}
.pagetop {
  position: fixed;
  bottom: 4.8rem;
  right: 10.5rem;
  z-index: 100;
  cursor: pointer;
  width: 7.6rem;
}
.pagetop:hover {
  opacity: 0.8;
}
.fix_banner {
  position: fixed;
  background-color: #FFF500;
  color: #1F87DC;
  font-size: 4rem;
  font-weight: 600;
  font-family: 'zenmarugothic';
  bottom: 26.9rem;
  right: 0;
  padding: 1.6rem 1.9rem 2.5rem;
  z-index: 100;
  border-radius: 2rem 0 0 2rem;
  writing-mode: vertical-rl;
}
.fix_banner span {
  display: flex;
  align-items: center;
  column-gap: 1.6rem;
}
.fix_banner span::after {
  content: "";
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  background-color: #1F87DC;
  width: 2rem;
  height: 2.3rem;
  display: block;
}
.fadein {
  opacity: 0;
  transition: all 1.5s;
  transform: translate(0,3rem);
}
.fadein.scrollin {
  opacity: 1;
  transform: translate(0, 0);
}


@media screen and (min-width: 769px) and (max-width: 1594px) {
  html {
    font-size: 0.6273525721vw;
  }
}
@media screen and (max-width: 768px) {
  .only_pc {
    display: none!important;
  }
  .only_sp {
    display: block!important;
  }
  html {
    font-size:2.564102564vw;
  }
  body {
    min-width: 0;
    font-size: 1.4rem;
  }
  .inner {
    padding: 0 2rem;
  }
  .main_content {
    padding-bottom: 14rem;
  }
  .pagetop {
    bottom: 6rem;
    right: 1.2rem;
    width: 3.2rem;
  }
  .fix_banner {
    width: 100%;
    font-size: 3rem;
    bottom: 0;
    padding: .4rem 0;
    border-radius: 0;
    writing-mode: inherit;
  }
  .fix_banner span {
    column-gap: 1.6rem;
    justify-content: center;
  }
  .fix_banner span::after {
    width: 1.3rem;
    height: 1.5rem;
  }
}

/* --------------------
  header
-------------------- */
header .inner {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  height: 9.3rem;
  align-items: center;
}
header .logo_img {
  width: 13.5rem;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
header p {
  font-size: 3.5rem;
  color: #1F87DC;
  text-align: center;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  header .inner {
    justify-content: space-between;
    height: 6.4rem;
  }
  header .logo_img {
    width: 10rem;
    position: relative;
    left: 0;
    top: 0;
    transform: translateY(0);
  }
  header p {
    font-size: 1.5rem;
    text-align: right;
  }
}


/* --------------------
  mv_block
-------------------- */
.mv_block {
  padding-top: 3.4rem;
  background-image: url("/asset/images/mv_bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center bottom 7.7rem;
  padding-bottom: 16.7rem;
  position: relative;
  margin-bottom: 3.4rem;
}
.mv_block .mv_img {
  position: absolute;
}
.mv_block .mv_img.img01 {
  top: 2.9rem;
  width: 29.8rem;
  right: calc(50% + 42.9rem);
  z-index: 10;
}
.mv_block .mv_img.img02 {
  top: 9.6rem;
  width: 42.1rem;
  right: calc(50% + 63.2rem);
}
.mv_block .mv_img.img03 {
  bottom: 0;
  width: 51.8rem;
  right: calc(50% + 32.6rem);
}
.mv_block .mv_img.img04 {
  top: -23.1rem;
  width: 56.7rem;
  left: calc(50% + 32.4rem);
}
.mv_block .mv_img.img05 {
  bottom: 16rem;
  width: 37.4rem;
  left: calc(50% + 35rem);
}
.mv_block .mv_img.img06 {
  top: 28%;
  width: 33.8rem;
  right: calc(50% + 18.4rem);
}
.mv_block h1 {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.mv_block h1 img {
  width: 47.6rem;
}
.mv_block h1 span {
  font-size: 2rem;
  line-height: 3rem;
  text-align: left;
  display: inline-block;
  margin: 4rem 0 8rem;
  color: #fff;
  width: 52.6rem;
}


@media screen and (max-width: 768px) {
  .mv_block {
    padding-top: 2.3rem;
    background-image: url("/asset/images/mv_bg_sp.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right bottom -1.2rem;
    padding-bottom: 17rem;
    margin-bottom: 6.4rem;
  }
  .mv_block .mv_img.img01 {
    top: 25rem;
    width: 7.4rem;
    right: calc(100% - 1.4rem);
    transform: translateX(100%);
  }
  .mv_block .mv_img.img02 {
    top: 6.3rem;
    width: 11.1rem;;
    right: calc(100% + 2.3rem);
    transform: translateX(100%);
  }
  .mv_block .mv_img.img03 {
    bottom: 5rem;
    width: 15.4rem;
    right: calc(100% + 2.4rem);
    transform: translateX(100%);
  }
  .mv_block .mv_img.img04 {
    top: 3.4rem;
    width: 13.1rem;
    left: calc(100% + 3.3rem);
    transform: translateX(-100%);
  }
  .mv_block .mv_img.img05 {
    bottom: 18.6rem;
    width: 9.4rem;
    left: calc(100% - 1rem);
    transform: translateX(-100%);
  }
  .mv_block .mv_img.img06 {
    top: calc(100% - 9rem);
    width: 11.9rem;
    right: 3.9rem;
    transform: translateY(-100%);
  }
  .mv_block h1 {
    text-align: center;
  }
  .mv_block h1 img:nth-of-type(1) {
    width: 19.8rem;
  }
  .mv_block h1 img:nth-of-type(2) {
    width: 19rem;
  }
  .mv_block h1 span {
    width: 29.1rem;
    font-size: 1.1rem;
    margin: 1.3rem 0 2.5rem;
    line-height: 2rem;
  }
}


/* --------------------
  lead_block
-------------------- */
.lead_block {
  text-align: center;
  margin-bottom: 9rem;
}
.lead_block .lead_text {
  font-weight: 600;
  font-size: 3.9rem;
  line-height: 6rem;
}


@media screen and (max-width: 768px) {
  .lead_block {
    text-align: left;
    margin-bottom: 5.6rem;
  }
  .lead_block .lead_text {
    font-size: 1.8rem;
    line-height: 2.8rem;
  }
}


/* --------------------
  cleaning_type
-------------------- */
.cleaning_type {
  margin-bottom: 3.8rem;
}
.cleaning_type ul {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  column-gap: 14rem;
  row-gap: 9.3rem;
  justify-content: center;
}
.cleaning_type li {
  width: 54rem;
  display: flex;
  flex-direction: column;
}
.cleaning_type_img_block {
  height: 49rem;
  margin-bottom: 4rem;
}
.cleaning_type_img {
  width: 49rem;
  position: relative;
}
.cleaning_type_img::before {
  content: "";
  width: calc(100% - 1rem);
  height: calc(100% - 1rem);
  border: .3rem solid #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 10;
}
.cleaning_type_img img {
  filter: drop-shadow(1.8rem 1.8rem .2rem rgba(198, 198, 198, 0.4));
}
.cleaning_type li:nth-child(4) .cleaning_type_img_block {
  position: relative;
}
.cleaning_type li:nth-child(4) .cleaning_type_img {
  position: absolute;
}
.cleaning_type li:nth-child(4) .cleaning_type_img:nth-child(1) {
  width: 31.8rem;
  top: 0;
}
.cleaning_type li:nth-child(4) .cleaning_type_img:nth-child(2) {
  width: 36.4rem;
  bottom: 0;
  z-index: 20;
  right: -5rem;
}
.cleaning_type h3 {
  color: #1F87DC;
  font-size: 4.5rem;
  font-family: 'zenmarugothic';
  text-align: center;
  font-weight: 500;
  line-height: 4rem;
  letter-spacing: -.4rem;
  margin-bottom: 4.3rem;
}
.cleaning_type h3 span {
  font-size: 2.5rem;
  letter-spacing: 0;
  display: block;
  margin-bottom: -4.3rem;
  height: 4.3rem;
}
.cleaning_type h3 span sup {
  color: #3C3C3C;
  font-size: 50%;
  vertical-align: super;
}
.cleaning_type_price {
  text-align: center;
  margin-bottom: 2rem;
}
.cleaning_type_price p {
  font-size: 10rem;
  color: #1F87DC;
  font-weight: 600;
  font-family: 'zenmarugothic';
  line-height: 5.5rem;
  display: inline-block;
  text-align: left;
}
.cleaning_type_price p::before {
  content: "標準料金";
  font-size: 2.5rem;
  font-weight: 400;
  display: block;
}
.cleaning_type_price span {
  font-size: 3rem;
  font-weight: 400;
}
.cleaning_type_target {
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 3.5rem;
  margin-bottom: 2rem;
}
.cleaning_type_detail {
  font-size: 1.6rem;
}
.cleaning_type_detail_aster {
  margin-top: .5rem;
  font-size: 1.4rem;
}
.cleaning_area {
  margin-top: 2.5rem;
}
.cleaning_area dt {
  background-color: #1F87DC;
  color: #fff;
  font-size: 2.5rem;
  font-weight: 600;
  padding: .2rem 1.1rem;
  margin-bottom: 1rem;
}
.cleaning_area dd {
  font-size: 1.6rem;
  line-height: 2.5rem;
}
.cleaning_area dd h4 {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 1.7rem;
}
.cleaning_area dd + dd {
  margin-top: 2.4rem;
}


@media screen and (max-width: 768px) {
  .cleaning_type {
    margin-bottom: 3.9rem;
  }
  .cleaning_type ul {
    row-gap: 8.9rem;
  }
  .cleaning_type li {
    width: 100%;
  }
  .cleaning_type_img_block {
    height: 28rem;
    margin: 0 auto 2rem;
  }
  .cleaning_type_img {
    width: 28rem;
  }
  .cleaning_type_img::before {
    width: calc(100% - .6rem);
    height: calc(100% - .6rem);
    border: .2rem solid #fff;
  }
  .cleaning_type_img img {
    filter: drop-shadow(1rem 1rem .2rem rgba(198, 198, 198, 0.4));
  }
  .cleaning_type li:nth-child(4) .cleaning_type_img_block {
    width: 100%;
  }
  .cleaning_type li:nth-child(4) .cleaning_type_img:nth-child(1) {
    width: 16.8rem;
    top: 0;
  }
  .cleaning_type li:nth-child(4) .cleaning_type_img:nth-child(2) {
    width: 19.8rem;
    bottom: 0;
    right: 0;
  }
  .cleaning_type h3 {
    font-size: 2.8rem;
    line-height: 2.7rem;
    letter-spacing: -.2rem;
    margin-bottom: 1rem;
  }
  .cleaning_type h3 span {
    font-size: 1.6rem;
    margin-bottom: 0;
    height: auto;
  }
  .cleaning_type_price {
    margin-bottom: 1rem;
  }
  .cleaning_type_price p {
    font-size: 7rem;
    line-height: 4.2rem;
    padding-left: 3rem;
  }
  .cleaning_type_price p::before {
    font-size: 1.5rem;
    line-height: 2.7rem;
  }
  .cleaning_type_price span {
    font-size: 1.4rem;
  }
  .cleaning_type_target {
    font-size: 1.5rem;
    line-height: 2.2rem;
    margin-bottom: 1rem;
  }
  .cleaning_type_detail {
    font-size: 1.4rem;
  }
  .cleaning_type_detail_aster {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
  .cleaning_area {
    margin-top: 1.2rem;
  }
  .cleaning_area dt {
    font-size: 1.8rem;
    padding: .8rem 1.1rem;
    margin-bottom: 1rem;
  }
  .cleaning_area dd {
    font-size: 1.4rem;
    line-height: 2.2rem;
  }
  .cleaning_area dd h4 {
    font-size: 1.5rem;
    margin-bottom: .8rem;
  }
  .cleaning_area dd + dd {
    margin-top: 2rem;
  }
}


/* --------------------
  flow_block
-------------------- */
.flow_block {
  background-image: url("/asset/images/flow_bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: right bottom;
  padding: 4rem 0 6rem;
  margin-bottom: 9.4rem;
}
.flow_block h2 {
  font-family: 'zenmarugothic';
  color: #fff;
  font-weight: 500;
  font-size: 6rem;
  text-align: center;
  margin-bottom: 2.4rem;
}
.flow_detail {
  position: relative;
}
.flow_detail::before {
  content: "";
  background-image: url("/asset/images/flow_img01.png");
  background-size: contain;
  background-repeat: no-repeat;
  width: 56.1rem;
  height: 54.2rem;
  position: absolute;
  left: 0;
  top: 13.3rem;
  transform: translateY(-100%);
}
.flow_detail ul {
  background-color: #FFFDC9;
  border-radius: 2.7rem;
  padding: 3rem 4rem 4rem 7rem;
  display: flex;
  justify-content: space-between;
  position: relative;
}
.flow_detail li {
  position: relative;
}
.flow_detail li:not(:last-child)::after {
  content: "";
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  background-color: #1F87DC;
  width: 2.1rem;
  height: 4.2rem;
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% + 5.2rem));
  right: -6.6rem;
}
.flow_detail li::before {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  width: 10.2rem;
  height: 8.2rem;
  background-position: center;
  display: block;
  margin: auto;
  margin-bottom: 2.2rem;
}
.flow_detail li:nth-child(1) {
  width: 13.7rem;
}
.flow_detail li:nth-child(2) {
  width: 13.7rem;
}
.flow_detail li:nth-child(3) {
  width: 44.4rem;
}
.flow_detail li:nth-child(4) {
  width: 39.3rem;
}
.flow_detail li:nth-child(1)::before {
  background-image: url("/asset/images/flow_icon01.svg");
  background-size: 10.2rem;
}
.flow_detail li:nth-child(2)::before {
  background-image: url("/asset/images/flow_icon02.svg");
  background-size: 7rem;
}
.flow_detail li:nth-child(3)::before {
  background-image: url("/asset/images/flow_icon03.svg");
  background-size: 6.2rem;
}
.flow_detail li:nth-child(4)::before {
  background-image: url("/asset/images/flow_icon04.svg");
  background-size: 8.5rem;
}


@media screen and (max-width: 768px) {
  .flow_block {
    background-image: url("/asset/images/flow_bg_sp.png");
    background-position: calc(50% + 4.5rem) bottom;
    padding: 2.2rem 0 17.4rem;
    margin-bottom: 3.3rem;
    position: relative;
  }
  .flow_block h2 {
    font-size: 2.8rem;
    margin-bottom: 1.5rem;
    letter-spacing: -.2rem;
  }
  .flow_detail::before {
    display: none;
  }
  .flow_block::after {
    content: "";
    background-image: url("/asset/images/flow_img01_sp.png");
    background-size: contain;
    background-repeat: no-repeat;
    width: 30.1rem;
    height: 34.9rem;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
  }
  .flow_detail ul {
    border-radius: 1rem;
    padding: 4.7rem 2rem 16.3rem 2.9rem;
    flex-flow: column;
  }
  .flow_detail li {
    display: flex;
    justify-content: space-between;
    column-gap: 2rem;
  }
  .flow_detail li:not(:last-child) {
    margin-bottom: 6rem;
  }
  .flow_detail li:not(:last-child)::after {
    content: "";
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    width: 2.3rem;
    height: 1.2rem;
    position: absolute;
    transform: translateX(50%);
    right: 50%;
    top: auto;
    bottom: -3rem;
  }
  .flow_detail li::before {
    content: "";
    background-repeat: no-repeat;
    background-size: contain;
    width: 6rem;
    height: 5.5rem;
    background-position: center top;
    margin: 0;
    flex-shrink: 0;
  }
  .flow_detail li:nth-child(1),
  .flow_detail li:nth-child(2),
  .flow_detail li:nth-child(3),
  .flow_detail li:nth-child(4) {
    width: 100%;
  }
  .flow_detail li:nth-child(1)::before {
    background-size: 6rem;
  }
  .flow_detail li:nth-child(2)::before {
    background-size: 4.3rem;
  }
  .flow_detail li:nth-child(3)::before {
    background-size: 4.2rem;
  }
  .flow_detail li:nth-child(4)::before {
    background-size: 5.7rem;
  }
}


/* --------------------
  application_block
-------------------- */
.application_block {
  text-align: center;
}
.application_block .application_btn {
  font-size: 5.2rem;
  color: #fff;
  font-weight: 500;
  font-family: 'zenmarugothic';
  background-color: #1F87DC;
  padding: .8rem 5rem .8rem 7.1rem;
  border-radius: 10rem;
  display: inline-block;
  letter-spacing: -.2rem;
  margin-bottom: 8rem;
}
.application_block .application_btn span {
  display: flex;
  align-items: center;
  column-gap: 2.5rem;
}
.application_block .application_btn span::after {
  content: "";
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  background-color: #FFF500;
  width: 2.3rem;
  height: 2.6rem;
}
.application_block p {
  text-align: left;
  line-height: 2.5rem;
}


@media screen and (max-width: 768px) {
  .application_block .application_btn {
    font-size: 3rem;
    padding: .35rem 0;
    border-radius: .8rem;
    display: block;
    letter-spacing: -.2rem;
    margin-bottom: 3rem;
  }
  .application_block .application_btn span {
    column-gap: 1.6rem;
    justify-content: center;
  }
  .application_block .application_btn span::after {
    width: 1.3rem;
    height: 1.5rem;
  }
  .application_block p {
    line-height: 2.2rem;
  }
}

























































