@charset "UTF-8";
/* CSS Document */

/*------------------------------------------------
 index.css
------------------------------------------------*/
h1{
  position: absolute;
  transform: translate(-50%, -50%);
  top: 41%;
  left: 50%;
  width: 100%;
  max-width: 700px;
}
h1 img{
  display: block;
  width: 100%;
  margin: 0 auto;
}
h1 p {
  text-align: center;
  font-size: 0.25rem;
  font-weight: 600;
  line-height: 1.6;
  margin-top: 35px;
}


/*------------------------------------------------
 index01
------------------------------------------------*/
.index01{
  position: relative;
  margin-bottom: 0;
}
.index01 img{
  display: block;
}
.index01_tvcm_button {
  position: absolute;
  max-width: max-content;
  width: 14%;
  right: 2%;
  bottom: -10%;
  z-index: 20;
}
.index01_visual{
  width: 100%;
  object-fit: cover;
  min-height: 500px;
}
.index01_truck{
  position: absolute;
  transform: translateX(-50%);
  max-width: 250px;
  left: 50%;
  bottom: 0;
  z-index: 20;
}


/*------------------------------------------------
 index02
------------------------------------------------*/
.index02{
  position: relative;
  margin-top: -100px;
  margin-bottom: -100px;
  z-index: 10;
}
.index02_inner{
  background-color: #FCFCF2;
  padding-bottom: 50px;
}
.index02::before, .index02::after{
  content: "";
  position: relative;
  display: block;
  aspect-ratio: 193/20;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  z-index: -10;
}
.index02::before{
  background-image: url(../img/index/about_top.svg);
  background-position: center top;
  margin-bottom: -25px;
}
.index02::after{
  background-image: url(../img/index/about_btm.svg);
  background-position: center bottom;
  margin-top: -5px;
}
.index02_about_box{
  margin-bottom: 100px;
}
.index02_about_box b {
  display: block;
  text-align: center;
  font-size: 0.30rem;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 15px;
}
.index02_about_box p{
  text-align: center;
  line-height: 2.1;
}
.index02_news_box{
  position: relative;
  padding-bottom: 240px;
}
.index02_news_box article{
  background-color: #fff;
  border: 1px solid var(--border_color_lit);
  max-width: 1200px;
  padding: 35px 65px 50px;
  margin: 0 auto;
}
.index02_news_box h2 {
  text-align: center;
  font-size: 0.3rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 15px;
}
.index02_news_box h2 small{
  display: block;
  text-align: center;
  color: var(--site_color);
  font-size: 0.16rem;
  font-weight: 600;
}
.index02_info_box ul{
  display: grid;
  list-style: none;
  align-items: flex-start;
  grid-template-columns: repeat(2, auto);
  max-width: max-content;
  gap: 95px;
  margin: 0 auto;
}
.index02_info_box li *{
  display: block;
}
.index02_info_box ul span {
  font-weight: 700;
  line-height: 1.4;
  font-size: 0.3rem;
  margin-bottom: 20px;
}
.index02_info_box ul b {
  font-weight: 700;
  line-height: 1.6;
  font-size: 0.4rem;
  margin-bottom: 20px;
}
.index02_info_box ul p {
  line-height: 2.2;
}
.index02_info_box ul .btn01{
  margin-left: 0;
}
/* 装飾パーツ */
.index02_news_box .index02_deco01 {
  position: absolute;
  width: 20%;
  top: 55%;
  left: -5%;
}
.index02_news_box .index02_deco02 {
  position: absolute;
  width: 15%;
  bottom: 7%;
  right: 0%;
}
.index02 .index02_deco03 {
  position: absolute;
  width: 28%;
  bottom: -7%;
  right: 6%;
}


/*------------------------------------------------
 index03
------------------------------------------------*/
.index03{
  position: relative;
  background-color: var(--site_color_lit);
  padding-top: 220px;
  margin-bottom: 0;
}
.index03_content01, .index03_content02,
.index03_content03, .index03_content04{
  position: relative;
}
.index03_content01{
  overflow-x: clip;
  z-index: 20;
}
.index03_content04{
  margin-top: -120px;
}
.index03_messege_box{
  margin-bottom: 55px;
}
.index03_messege_box h2{
  margin-bottom: 40px;
}
.index03_messege_box h2 small, .index03_messege_box h2 b{
  display: block;
  text-align: center;
  line-height: 1.3;
  font-weight: 700;
}
.index03_messege_box h2 small{
  font-size: 0.3rem;
  margin-bottom: 35px;
}
.index03_messege_box h2 b{
  font-size: 0.5rem;
}
.index03_messege_box p{
  text-align: center;
  line-height: 2.4;
}
.index03_messege_box .btn01{
  margin-top: 40px;
}
.index03_route_box{
  position: relative;
  padding-top: 120px;
  margin-top: -30px;
  z-index: 10;
}
.index03_route_main {
  position: absolute;
  transform: translateX(-50%);
  left: 48%;
  top: -40px;
  height: 93%;
  z-index: -10;
}
.index03_route_deco01 {
  display: block;
  width: 100%;
  max-width: max-content;
  padding-left: 78px;
  margin: 0 auto;
}
.index03_route_deco02{
  position: absolute;
  max-width: max-content;
  width: 18%;
  left: 0;
  top: 170px;
}
.index03_route_deco03{
  position: absolute;
  max-width: max-content;
  width: 27%;
  right: 0;
  top: 55px;
}
.index03_route_deco04{
  position: absolute;
  width: 17%;
  right: 0;
  bottom: 0;
}
/* 横並びコンテンツ */
.index03_content_grid{
  display: flex;
  align-items: flex-start;
  gap: 70px;
}
.index03_content_grid.reverse{
  flex-direction: row-reverse;
}
.index03_content_grid img{
  width: 42%;
}
.index03_content02 .index03_content_grid img{
  width: 48%;
}
.index03_content_grid article{
  width: 58%;
  padding-top: 7%;
  z-index: 10;
}
.index03_content_grid article span, .index03_content_grid article b{
  display: block;
  font-weight: 700;
  line-height: 1.5;
}
.index03_content_grid article span{
  font-size: 0.3rem;
  margin-bottom: 20px;
}
.index03_content_grid article b{
  font-size: 0.5rem;
  margin-bottom: 30px;
}
.index03_content_grid article p{
  line-height: 2.2;
}
.index03_content_grid article .btn01{
  margin-top: 45px;
  margin-left: 0;
}
/* 暮らし紹介コンテンツ */
.index03_life_box{
  position: relative;
  margin-top: 55px;
  margin-bottom: 40px;
}
.index03_life_cloud01, .index03_life_cloud02{
  position: absolute;
  width: 20%;
}
.index03_life_cloud01 {
  top: 40%;
  left: 1%;
}
.index03_life_cloud02 {
  top: -55%;
  right: 5%;
}
.index03_life_box h2{
  text-align: center;
  font-size: 0.61rem;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 35px;
}
.index03_life_box p{
  text-align: center;
  line-height: 2.2;
}
.index03_life_visual{
  position: relative;
}
.index03_life_ground{
  width: 100%;
}
.index03_life_button_list{
  position: absolute;
  display: grid;
  list-style: none;
  grid-template-areas:
    "type01 type01"
    "type02 type03";
  gap: 40px 70px;
  max-width: 25%;
  bottom: 28%;
  right: 30%;
}
.index03_life_button_list .type01{
  grid-area: type01;
}
.index03_life_button_list .type02{
  grid-area: type02;
}
.index03_life_button_list .type03 {
  grid-area: type03;
}
.index03_life_button_list a{
  display: block;
  aspect-ratio: 1/1;
  width: 11vw;
  max-width: max-content;
  margin: 0 auto;
}
.index03_life_button_list a img{
  display: block;
  width: 100%;
}


/*------------------------------------------------
 index04
------------------------------------------------*/
.index04{
  overflow-x: clip;
  position: relative;
  background-color: #fff;
  padding: 85px 0 115px;
  margin: -60px 0 0;
}
.index04 b{
  display: block;
  text-align: center;
  font-size: 0.4rem;
  font-weight: 800;
  line-height: 1.5;
  margin-bottom: 45px;
}
/* 装飾パーツ */
.index04_deco01, .index04_deco02{
  position: absolute;
  max-width: max-content;
  z-index: 10;
}
.index04_deco01 {
  width: 25%;
  top: -42%;
  left: 2%;
}
.index04_deco02 {
  width: 20%;
  bottom: -25%;
  right: 3%;
}
/* ボタンリスト */
.index04_button_list{
  display: flex;
  list-style: none;
  align-items: center;
  justify-content: center;
  gap: 15px 135px;
}
.index04_button_list span{
  position: relative;
  display: block;
  text-align: center;
  font-size: 0.2rem;
  font-weight: 800;
  padding: 0 25px;
  margin-bottom: 10px;
}
.index04_button_list span::before, .index04_button_list span::after{
  content: "";
  position: absolute;
  background-color: var(--border_color);
  width: 33px;
  height: 3px;
  top: 15px;
}
.index04_button_list span::before{
  transform: rotateZ(67deg);
  left: 0;
}
.index04_button_list span::after{
  transform: rotateZ(-67deg);
  right: 0;
}
.index04_button_list a {
  display: block;
  text-align: center;
  background-color: #F5CD4F;
  border: 1px solid var(--border_color);
  border-radius: 1000px;
  min-width: 353px;
  font-size: 0.3rem;
  font-weight: 800;
  padding: 25px 15px 30px;
}


/*------------------------------------------------
 レスポンシブ　　　max-width:1500px
------------------------------------------------*/
@media screen and (max-width:1500px) {
  h1 img {
    width: 70%;
  }
  h1 p {
    font-size: 0.21rem;
    margin-top: 20px;
  }
  .index01_truck {
    max-width: 200px;
  }
  .index02_news_box .index02_deco01 {
    width: 17%;
    top: 52%;
    left: 2%;
  }
  .index02_info_box ul b {
    font-size: 0.35rem;
  }
  .index03_content_grid {
    gap: 5%;
  }
  .index03_content_grid article span {
    font-size: 0.26rem;
  }
  .index03_content_grid article b {
    font-size: 0.38rem;
  }
  .index04_deco02 {
    right: -2%;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:1199px
------------------------------------------------*/
@media screen and (max-width:1199px) {
  h1 img {
    width: 60%;
  }
  h1 p {
    font-size: 0.18rem;
  }
  .index01_truck {
    max-width: 160px;
  }
  .index02 {
    margin-top: -50px;
  }
  .index02_news_box .index02_deco01 {
    width: 20%;
    bottom: 3%;
    top: unset;
  }
  .index02_news_box .index02_deco02 {
    width: 25%;
  }
  .index02_info_box ul {
    gap: 5%;
  }
  .index02_info_box ul span {
    font-size: 0.24rem;
    margin-bottom: 15px;
  }
  .index02_info_box ul b {
    font-size: 0.28rem;
  }
  .index02 .index02_deco03 {
    bottom: -4%;
  }
  .index03_route_main {
    height: 100%;
    top: -60px;
  }
  .index03_route_deco01 {
    max-width: 650px;
    padding-left: 48px;
  }
  .index03_route_deco02 {
    width: 15%;
    top: 25%;
  }
  .index03_route_deco03 {
    width: 20%;
    top: 15%;
  }
  .index03_messege_box h2 {
    margin-bottom: 25px;
  }
  .index03_messege_box h2 small {
    font-size: 0.26rem;
    margin-bottom: 20px;
  }
  .index03_messege_box h2 b {
    font-size: 0.4rem;
  }
  .index03_messege_box .btn01 {
    margin-top: 30px;
  }
  .index03_content_grid article span {
    font-size: 0.26rem;
  }
  .index03_content_grid article b {
    font-size: 0.36rem;
  }
  .index03_content_grid img {
    width: 40% !important;
  }
  .index03_content04 {
    margin-top: 0;
  }
  .index03_content01, .index03_content02, .index03_content03{
    margin-bottom: 65px;
  }
  .index03_life_box {
    margin-top: 120px;
  }
  .index04_button_list {
    gap: 15px 65px;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:991px
------------------------------------------------*/
@media screen and (max-width:991px) {
  .index02_news_box {
    padding-bottom: 40%;
  }
  .index02_news_box .index02_deco01 {
    width: 34%;
    bottom: 2%;
    left: -5%;
  }
  .index02_info_box ul {
    grid-template-columns: 1fr;
    gap: 65px;
  }
  .index03_route_deco03 {
    top: 45%;
  }
  .index03_route_box {
    padding-top: 0px;
  }
  .index03_content_grid article b {
    font-size: 0.3rem;
  }
  .index03_life_box h2 {
    font-size: 0.5rem;
    margin-bottom: 25px;
  }
  .index03_life_cloud01 {
    top: 20%;
    left: 1%;
  }
  .index03_life_cloud02 {
    top: -30%;
    right: 5%;
  }
  .index03_life_button_list {
    gap: 20px;
  }
  .index04 b {
    font-size: 0.34rem;
  }
  .index04_button_list span {
    font-size: 0.18rem;
  }
  .index04_button_list {
    flex-wrap: wrap;
    gap: 45px 35px;
  }
  .index04_button_list a {
    font-size: 0.24rem;
    padding: 15px 15px 20px;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:767px
------------------------------------------------*/
@media screen and (max-width:767px) {
  h1 {
    top: 40%;
  }
  h1 img {
    width: 80%;
  }
  .index01_truck {
    max-width: 40%;
  }
  .index01_tvcm_button {
    width: 23%;
    bottom: -3%;
  }
  .index02_inner {
    padding-top: 80px;
  }
  .index02_about_box {
    margin-bottom: 60px;
  }
  .index02_news_box{
    padding-bottom: 0;
  }
  .index02_news_box article {
    padding: 25px 15px 40px;
  }
  .index02_news_box .index02_deco02 {
    width: 30%;
  }
  .index02_news_box .index02_deco01 {
    display: block;
    position: static;
    max-width: 210px;
    width: 100%;
    margin: -90px 0 0 auto;
  }
  .index02::before {
    margin-bottom: -10px;
  }
  .index02 .index02_deco03 {
    position: static;
    max-width: max-content;
    width: 100%;
    padding: 0 15px;
    margin: 20px auto -40px;
  }
  .index03_content01{
    padding: 0 15px;
  }
  .index03_messege_box {
    margin-bottom: 45px;
  }
  .index03_messege_box h2 small {
    font-size: 0.23rem;
    margin-bottom: 15px;
  }
  .index03_messege_box h2 b {
    font-size: 0.33rem;
  }
  .index03_route_deco01 {
    padding-left: 8%;
  }
  .index03_content_grid{
    display: grid;
    align-items: flex-start;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .index03_content_grid article{
    display: contents;
  }
  .index03_content_grid span{
    order: 0;
  }
  .index03_content_grid b{
    order: 1;
  }
  .index03_content_grid img{
    order: 2;
    width: 100% !important;
    max-width: 330px;
    margin: 0 auto 15px;
  }
  .index03_content_grid p{
    order: 3;
  }
  .index03_content_grid .btn01{
    order: 4;
  }
  .index03_content_grid article .btn01 {
    margin: 25px auto 0;
  }
  .index03_life_box h2 {
    font-size: 0.41rem;
    margin-bottom: 15px;
  }
  .index03_life_cloud01, .index03_life_cloud02 {
    width: 25%;
  }
  .index03_life_cloud01 {
    top: 15%;
    left: -10%;
  }
  .index03_life_cloud02 {
    top: -15%;
  }
  .index03_life_button_list {
    max-width: unset;
    bottom: 21%;
    right: 10%;
  }
  .index03_life_button_list a {
    width: 20vw;
  }
  .index04 {
    padding: 105px 0 75px;
  }
  .index04 b {
    font-size: 0.26rem;
    margin-bottom: 35px;
  }
  .index04_deco01 {
    transform: translateY(-100%);
    width: 43%;
    top: 15%;
    left: 2%;
  }
  .index04_deco02 {
    width: 30%;
    bottom: -15%;
    right: -5%;
  }
  .index04_button_list {
    max-width: 500px;
    gap: 35px;
    margin: 0 auto;
  }
  .index04_button_list a {
    font-size: 0.21rem;
    min-width: unset;
    max-width: max-content;
    padding: 10px 95px 15px;
    margin: 0 auto;
  }
}

/*------------------------------------------------
 レスポンシブ　　　max-width:480px
------------------------------------------------*/
@media screen and (max-width:480px) {
  .index02_news_box .index02_deco01 {
    max-width: 170px;
    margin-top: -80px;
  }
  .index02_info_box ul b {
    font-size: 0.24rem;
  }
  .index03 {
    padding-top: 180px;
  }
  .index03_messege_box h2 b {
    font-size: 0.3rem;
  }
  .index03_messege_box p {
    line-height: 2;
  }
  .index03_content_grid article b {
    font-size: 0.26rem;
  }
  .index03_life_box h2 {
    font-size: 0.36rem;
  }
}
