/*====================================================================================
1. START MAIN VISUAL SECTION.
====================================================================================*/
.mainvisual {
  width: 100%;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .mainvisual {
    height: 100vh;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual {
    height: 38rem;
  }
}
.mainvisual_img {
  height: 100%;
}
.mainvisual_img .splide__track {
  height: 100%;
}
.mainvisual_img .splide__slide {
  position: relative;
  overflow: hidden;
}
.mainvisual_img .splide__slide img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center center;
  object-position: center center;
  display: block;
}
.mainvisual_ct {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  left: 0;
  width: 100%;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .mainvisual_ct {
    margin-top: 2rem;
  }
}
.mainvisual_txt {
  font-family: "Noto Sans JP", sans-serif;
  color: #000;
}
.mainvisual_txt1 {
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.1em;
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt1 {
    font-size: 4rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 {
    font-size: 1.4rem;
    text-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.7), 0 0 0.6rem rgba(255, 255, 255, 0.6), 0.1rem 0.1rem 0.2rem rgba(255, 255, 255, 0.9);
  }
}
.mainvisual_txt1 .txt_box {
  color: #fff;
  background: #0698ce;
  border-radius: 1rem;
  display: inline-block;
  vertical-align: top;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt1 .txt_box {
    top: 0.8rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 .txt_box {
    top: 0.5rem;
    text-shadow: none;
  }
}
.mainvisual_txt1 .txt_box:after {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  bottom: -1.6rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt1 .txt_box:after {
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    border-top: 1.6rem solid #0698ce;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 .txt_box:after {
    border-left: 0.3rem solid transparent;
    border-right: 0.3rem solid transparent;
    border-top: 0.5rem solid #0698ce;
    bottom: -0.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt1 .txt_box1 {
    margin-right: -0.2rem;
    padding: 0 2.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 .txt_box1 {
    padding: 0 0.5rem;
  }
}
.mainvisual_txt1 .txt_box2 {
  padding: 0 1rem;
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 .txt_box2 {
    padding: 0 0.5rem;
  }
}
.mainvisual_txt1 .txt_dot {
  color: #0698ce;
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt1 .txt_dot {
    font-size: 5rem;
    background: url(../images/top/dot.webp) no-repeat top center;
    padding-top: 1.3rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt1 .txt_dot {
    font-size: 1.8rem;
    background: url(../images/top/dot.webp) no-repeat top center;
    background-size: 0.5rem auto;
    padding-top: 0.7rem;
    text-shadow: none;
  }
}
.mainvisual_txt2 {
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt2 {
    font-size: 9.5rem;
    margin: -1rem 0 0 -1rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt2 {
    font-size: 3.2rem;
    margin: 0rem 0 0 0;
    text-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.7), 0 0 0.6rem rgba(255, 255, 255, 0.6), 0.1rem 0.1rem 0.2rem rgba(255, 255, 255, 0.9);
  }
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt2 span {
    font-size: 7rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt2 span {
    font-size: 2rem;
  }
}
.mainvisual_txt3 {
  font-weight: 500;
  letter-spacing: 0.1em;
}
@media only screen and (min-width: 768px) {
  .mainvisual_txt3 {
    font-size: 2.5rem;
    margin: 0.4rem 0 0 0.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .mainvisual_txt3 {
    font-size: 1.3rem;
    margin: 0;
    text-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.7), 0 0 0.6rem rgba(255, 255, 255, 0.6), 0.1rem 0.1rem 0.2rem rgba(255, 255, 255, 0.9);
  }
}

/*====================================================================================
2. START NOTICE SECTION.
====================================================================================*/
@media only screen and (min-width: 768px) {
  .s-notice {
    margin-top: 4.8rem;
    min-height: 16rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-notice {
    margin-top: 3rem;
    padding: 0 1.5rem;
  }
}
.s-notice_inner {
  margin: auto;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-notice_inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-width: 96rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-notice_inner .cm-btn01 {
    position: absolute;
    top: 11.5rem;
    left: 0.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-notice_inner .cm-btn01 {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 1rem auto 0;
  }
}
@media only screen and (min-width: 768px) {
  .s-notice .cm-title01 {
    width: calc(100% - 68rem);
    padding-top: 1.6rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-notice .cm-notice {
    width: 68rem;
  }
}

/*====================================================================================
3. START why choose SECTION.
====================================================================================*/
.s-whychoose {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-whychoose {
    margin-top: 11.8rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-whychoose {
    margin-top: 3rem;
  }
}
.s-whychoose:after {
  content: "";
  clear: both;
  display: block;
}
.s-whychoose_img {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-whychoose_img {
    height: 60rem;
    width: calc(50% - 9.5rem);
    float: right;
  }
  .s-whychoose_img img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center center;
    object-position: center center;
    display: block;
  }
}
@media only screen and (min-width: 768px) {
  .s-whychoose_inner {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media only screen and (max-width: 767px) {
  .s-whychoose_inner {
    margin-top: 3rem;
  }
}
.s-whychoose .cm-title02 {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-whychoose .cm-title02 {
    margin: -1.6rem 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-whychoose .cm-title02 {
    text-align: center;
  }
}
@media only screen and (min-width: 768px) {
  .s-whychoose .cm-title02 img {
    position: absolute;
    top: -0.9rem;
    left: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-whychoose .cm-title02 img {
    margin: auto;
  }
}
@media only screen and (min-width: 768px) {
  .s-whychoose p {
    margin: 3.5rem 0 6.9rem;
    width: 60rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-whychoose p {
    margin: 1.5rem 0 2rem;
  }
}

/*====================================================================================
4. START service SECTION.
====================================================================================*/
@media only screen and (min-width: 768px) {
  .s-service {
    margin-top: 8.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service {
    margin-top: 3rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-service_inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
@media only screen and (min-width: 768px) {
  .s-service_left {
    width: 20.2rem;
    padding-left: 0.8rem;
    position: relative;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_left {
    width: 8rem;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}
.s-service_left .note {
  position: absolute;
}
@media only screen and (min-width: 768px) {
  .s-service_left .note {
    top: -3.4rem;
    left: 14.9rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_left .note {
    width: 5rem;
    top: 0;
    right: -2.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-service_right {
    width: calc(100% - 20.2rem);
    padding: 1.7rem 0 0 4.2rem;
  }
}
.s-service_right .cm-title02 .txt_black {
  margin-top: 1.7rem;
}
@media only screen and (min-width: 768px) {
  .s-service_right .cm-title02 {
    margin-bottom: 1.9rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_right .cm-title02 {
    margin-bottom: 1.5rem;
  }
}
.s-service_right p {
  margin: 0;
}
@media only screen and (min-width: 768px) {
  .s-service_right p {
    letter-spacing: 0.05em;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_right p:last-child {
    padding-left: 11rem;
  }
}
.s-service_grey {
  background: #f7f6f1;
}
@media only screen and (min-width: 768px) {
  .s-service_grey {
    padding: 9.9rem 0 8.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_grey {
    padding: 5rem 1.2rem 3rem;
  }
}
.s-service_List {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media only screen and (min-width: 768px) {
  .s-service_List {
    gap: 4.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_List {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 5rem;
  }
}
.s-service_ListItem {
  background: #fff;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItem {
    width: calc(33.3333333333% - 3rem);
    border-radius: 1rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItem {
    width: 100%;
    border-radius: 0.5rem;
  }
}
.s-service_ListItemtxt {
  position: absolute;
  font-weight: 700;
  color: var(--co-orange);
  letter-spacing: 0.05em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  line-height: 1;
  left: -0.3rem;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemtxt {
    top: -5.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemtxt {
    top: -3rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemtxt span {
    font-size: 9.789rem;
    letter-spacing: 0.05em;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemtxt span {
    font-size: 5rem;
    letter-spacing: 0.05em;
  }
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemtxt p {
    margin: 1.6rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemtxt p {
    margin: 1rem 0 0;
  }
}
.s-service_ListItemImg {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemImg {
    border-radius: 1rem 1rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemImg {
    border-radius: 0.5rem 0.5rem 0 0;
  }
}
.s-service_ListItemImg img {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemCt {
    padding: 2.6rem 3rem 4.1rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemCt {
    padding: 2rem;
  }
}
.s-service_ListItemCt .ttl {
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemCt .ttl {
    font-size: 2.4rem;
    margin: 0 0 1rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemCt .ttl {
    font-size: 2rem;
    margin: 0 0 0.5rem;
  }
}
.s-service_ListItemCt p {
  margin: 0;
  letter-spacing: 0;
}
@media only screen and (min-width: 768px) {
  .s-service_ListItemCt .cm-btn02 {
    margin-top: 2.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-service_ListItemCt .cm-btn02 {
    margin-top: 2rem;
  }
}

/*====================================================================================
5. START construction SECTION.
====================================================================================*/
.s-construction {
  position: relative;
}
@media only screen and (min-width: 768px) {
  .s-construction {
    padding-top: 11.6rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-construction {
    padding-top: 3rem;
  }
}
.s-construction:after {
  content: "";
  display: block;
  clear: both;
}
@media only screen and (min-width: 768px) {
  .s-construction-slide {
    width: calc(50% + 1.5rem);
    position: absolute;
    right: 0;
    top: 20.7rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-construction .cm-title02 .txt_orange {
    font-size: 4rem;
  }
  .s-construction .cm-title02 .txt_black {
    margin-top: 2.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-construction-inner {
    margin-top: 3rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-construction-inner p {
    max-width: 50rem;
    letter-spacing: 0.05em;
    margin: 1.8rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-construction-inner p {
    margin: 0.5rem 0 0;
  }
}
@media only screen and (min-width: 768px) {
  .s-construction-inner .cm-btn02 {
    margin-top: 5.8rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-construction-inner .cm-btn02 {
    margin-top: 2rem;
  }
}

/*====================================================================================
6. START professional SECTION.
====================================================================================*/
.s-professional {
  background: url(../images/top/bg1.webp);
}
@media only screen and (min-width: 768px) {
  .s-professional {
    margin-top: 12rem;
    padding-top: 8.5rem;
    padding-bottom: 8.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-professional {
    margin-top: 3rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}
.s-professional .cm-title02 {
  text-align: center;
}
.s-professional .cm-title02 .txt_orange {
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding-top: 3.1rem;
}
@media only screen and (min-width: 768px) {
  .s-professional .cm-title02 .txt_orange {
    font-size: 4rem;
  }
}
.s-professional .cm-title02 .txt_orange img {
  position: absolute;
  top: 0;
}
@media only screen and (min-width: 768px) {
  .s-professional .cm-title02 .txt_orange img {
    left: 0.7rem;
  }
}
@media only screen and (max-width: 767px) {
  .s-professional .cm-title02 .txt_orange img {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media only screen and (min-width: 768px) {
  .s-professional .cm-title02 .txt_black {
    margin-top: 1.4rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-professional-txt {
    text-align: center;
    letter-spacing: 0.05em;
    margin: 1.9rem 0 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-professional-txt {
    margin: 0.5rem 0 3rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-professional .cm-btn02 {
    margin: 6.6rem auto 0;
  }
}
@media only screen and (max-width: 767px) {
  .s-professional .cm-btn02 {
    margin: 2rem auto 0;
  }
}