@charset "utf-8";
/* ========================================================
	top.css => トップページ用CSS
======================================================== */
.main_area {
      display: flex;
      margin-bottom: 8rem;
      position:relative;
}
.main_area_catch {
      font-size: 4.6rem;
      font-weight: 500;
      line-height: 1.3;
      letter-spacing: 0.06em;
      color: var(--col_main_d);
      position: absolute;
      left: 10vw;
      top: 13%;
      z-index: 10;
}
.main_area_catch_s {
      font-size: 3.0rem;
      padding:0 0 0.5em;
      margin-bottom: 1.3em;
      display: inline-block;
      position:relative;
}
.main_area_catch_s:before {
      content:"";
      display: inline-block;
      width: 100vw;
      height: 1px;
      background: var(--col_main_d);
      position: absolute;
      right: 0;
      bottom: 0;
}
.main_area_catch_l > span {
      font-size: 5.6rem;
}
.slide {
      width: 100%;
      margin-left: auto;
}
.slide img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center center;
}
@media screen and (max-width: 1400px) {
      .main_area_catch {
            font-size: 3.3vw;
      }
      .main_area_catch_s {
            font-size: 2.1vw;
      }
      .main_area_catch_l > span {
            font-size: 4.1vw;
      }
}
@media screen and (max-width: 680px) {
      .main_area {
            display: block;
      }
      .main_area_catch {
            font-size: 8.4vw;
            left: 8vw;
            top: 6%;
      }
      .main_area_catch_s {
            font-size: 5.1vw;
      }
      .main_area_catch_l > span {
            font-size: 10.2vw;
      }
      .slide {
            width: 100%;
      }

}

/* slick
------------------------------------------------------------- */
.slider > li,
.slider li.slick-slide {
      position: relative;
      height: 46vw;
}
.slider img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center center;
}
.slick-slider {
      margin-bottom: 0 !important;
}
.slick-dots {
      width: 100vw;
      right: 0;
      bottom: -60px;
      height: 40px;
}
.slick-dots li {
      width: 30px;
      height: 4px;
}
.slick-dots li button {
      width: 30px;
      height: 4px;
      background: var(--col_gray_l);
      padding: 0;
}
.slick-dots li button:before {
      content: none;
}
.slick-dots li.slick-active button {
      background: var(--col_main);
}
@media screen and (max-width: 680px) {
      .slider > li,
      .slider li.slick-slide {
            height: 116vw;
      }
      .slick-dots {
            bottom: -50px;
      }
}

/* massage_cont
-----------------------------------------------------------------------------*/
.massage_cont {
      margin-top: 8rem;
      margin-bottom: 10rem;
}
.massage_lead {
      font-size: 3.2rem;
      text-align: center;
      margin-bottom: 6rem;
}
.massage_cont .text_box > p:first-child {
      line-height: 2;
}
@media screen and (max-width: 680px) {
      .massage_lead {
            font-size: 3.0rem;
            margin-bottom: 3rem;
      }
      .massage_cont  .mo_imgtext_flex .img {
            margin-bottom: 3rem;
      }
}

/* banner_cont
-----------------------------------------------------------------------------*/
.banner_cont {
      margin-top: 10rem;
      margin-bottom: 10rem;
}
.banner_cont .mo_imgtext_flex .text_box {
    width: calc(100% - 6.6% - 40%);
}
.banner_cont .mo_imgtext_flex .target_cont {
    width: 40%;
}
.banner_cont a {
      transition: 0.3s;
}
.banner_cont a:hover {
      opacity: 0.8;
}
.banner_cont_title {
      font-size: 2.2rem;
      font-weight: bold;
      text-align: center;
      color: var(--col_main_d);
      margin-bottom: 0.5em;
}
.estimate_cont {
      padding: 2.5rem 3rem 3rem;
}
.estimate_cont ul {
      background: #fff;
      padding: 3rem;
      display: flex;
      gap: 4rem;
}
.target_cont ul {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 2rem;
}
.target_cont ul > li {
      position: relative;
}
.target_cont ul > li span {
      font-size: 2.6rem;
      font-weight: bold;
      display: inline-block;
      padding: 0 0.8em 0.3em 0;
      position: absolute;
      left: 3rem;
      top: 4rem;
      border-bottom: 1px solid #000;
}
.target_cont ul > li span:before {
      content: "";
      width: 18px;
      height: 1px;
      border-radius: 9999px;
      background-color: #000000;
      transform: rotate(40deg);
      transform-origin: calc(100% - 0.5px) 50%;
      right: 0;
      bottom: 0;
      position: absolute;
}
.target_cont ul > li.blue span {
      color: var(--col_main_d);
      border-bottom: 1px solid var(--col_main_d);
}
.target_cont ul > li.blue span:before {
      background-color: var(--col_main_d);
}
.target_cont ul > li.green span {
      color: #397415;
      border-bottom: 1px solid #397415;
}
.target_cont ul > li.green span:before {
      background-color: #397415;
}
@media screen and (max-width: 860px) {
      .banner_cont .mo_imgtext_flex {
            display: block;
      }
      .banner_cont .mo_imgtext_flex .text_box {
            width: 100%;
            margin-bottom: 2em;
      }
      .banner_cont .mo_imgtext_flex .target_cont {
            width: 100%;
      }
}
@media screen and (max-width: 680px) {
      .estimate_cont {
            padding: 2rem 2rem 2rem;
      }
      .banner_cont_title {
            margin-bottom: 1em;
      }
      .estimate_cont ul {
            flex-direction: column;
            padding: 2rem;
      }
      .target_cont ul > li span {
            font-size: 2.0rem;
            left: 2.5rem;
            top: 2.5rem;
            border-bottom: none !important;
      }
      .target_cont ul > li span:before {
            width: 11px;
            right: 2em;
            bottom: 1em;
      }
      .target_cont ul > li span:after {
            content: "";
            width: 18px;
            height: 1px;
            background: #000000;
            right: 2em;
            bottom: 1em;
            position: absolute;
      }
      .target_cont ul > li.blue span:after {
            background: var(--col_main_d);
      }
      .target_cont ul > li.green span:after {
            background: #397415;
      }
}

/* title_center
-----------------------------------------------------------------------------*/
.title_center {
      font-size: 3.4rem;
      font-weight: 400;
      text-align: center;
      padding-bottom: 0.5em;
      margin-bottom: 1.5em;
      position:relative;
}
.title_center:after {
      content:"";
      display: inline-block;
      width: 60px;
      height: 2px;
      background:var(--col_main_l);
      position:absolute;
      left: 50%;
      bottom: 0;
      transform: translateX(-50%);
}
@media screen and (max-width: 680px) {
      .title_center {
            font-size: 2.8rem;
            padding-bottom: 0.8em;
      }
      .title_center:after {
            width: 40px;
      }
}

/* features_cont
-----------------------------------------------------------------------------*/
.features_inner {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap:4rem 2.72%;
      margin-top: 6rem;
      padding-bottom: 4rem;
}
.features_box {
      width: 48.64%;
      background: #fff;
      padding: 2rem 3rem 2.5rem;
      box-sizing: border-box;
      position:relative;
}
.features_box:nth-child(even) {
      top: 4rem;
}
.features_num {
      font-size: 3.4rem;
      font-weight: 500;
      font-family: var(--mo_font_en);
      font-style: italic;
      line-height: 1;
      color: #58B2FF;
      position:absolute;
      right: 0.5em;
      top: -0.5em;
}
.features_title {
      font-size: 2.6rem;
      font-weight: bold;
      padding:  0.8em 0 0.8em 132px;
      margin-bottom: 0.5em;
      position:relative;
}
.features_title > span {
      color: var(--col_main);
}
.features_title:before {
      content:"";
      display: inline-block;
      position:absolute;
      width: 100px;
      aspect-ratio: 1 / 1;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
}
.features_box:nth-child(1) .features_title:before {
      background: url(../images/top/reassurance.svg) no-repeat;
      background-size:contain;
}
.features_box:nth-child(2) .features_title:before {
      background: url(../images/top/insurance.svg) no-repeat;
      background-size:contain;
}
.features_box:nth-child(3) .features_title:before {
      background: url(../images/top/accident.svg) no-repeat;
      background-size:contain;
}
.features_box:nth-child(4) .features_title:before {
      background: url(../images/top/network.svg) no-repeat;
      background-size:contain;
}
@media screen and (max-width: 680px) {
      .features_inner {
            flex-direction: column;
            gap: 4rem 0;
      }
      .features_box {
            width: 100%;
            padding: 1.5rem 2rem 2rem;
      }
      .features_box:nth-child(even) {
            top: 0;
      }
      .features_num {
            font-size: 3.1rem;
            right: inherit;
            left: 0.5em;
      }
      .features_title {
            font-size: 2.2rem;
            text-align: center;
            padding:  110px 0 0;
      }
      .features_title > span {
            color: var(--col_main);
      }
      .features_title:before {
            width: 100px;
            left: 50%;
            top: 0;
            transform: translateX(-50%) translateY(0);
      }
}