/*--------------------------------------------------------------
# メインビジュアル
--------------------------------------------------------------*/
.main_visual {
  position: relative;
  & h1 {
    line-height: 1;
  }
  & img {
    width: 100%;
  }
  .catch_copy {
    font-size: clamp( 1.5rem, calc( 1.0615384615384615rem + 1.217948717948718vw ), 3.4rem );
    line-height: 2.5;
    letter-spacing: 0.1em;
    position: absolute;
    top: 11%;
    left: 2.1rem;
    @media (min-width:768px) {
      top: max(11%,70px);
      left: 8%;
    }
  }
}
/*--------------------------------------------------------------
# NEWS
--------------------------------------------------------------*/
#home_news {
  padding-top: 7.6rem;
}
#home_news .section_title_news {
  font-family: 'Jost', sans-serif;
  font-size: 2.5rem;
  text-align: center;
  letter-spacing: 0.2em;
  margin-bottom: 2.2em;
}
#home_news .news_list {
  max-width: 62rem;
  margin: 0 auto 6rem;
  & li + li {
    margin-top: 1.5em;
    padding-top: 1em;
    border-top:0.1rem solid #969696;
    @media (min-width:768px) {
      padding-top: 0;
      border-top: none;
    }
  }
}
#home_news .news_list a {
  color: inherit;
  @media (min-width:768px) {
    display: flex;
    gap: 0 2.5rem;
  }
  &:hover {
    opacity: 0.7;
  }
  .img_wrap {
    display: none;
    @media (min-width:768px) {
      display: block;
      width: 24%;
      padding: 0.5rem;
      flex-shrink: 0;
      border:0.1rem solid #969696;
    }
    & img {
      aspect-ratio: 154 / 104;
      object-fit: cover;
    }
  }
}
#home_news .news_date {
  display: inline-block;
  color: #969696;
  font-family: 'Jost', sans-serif;
  margin-bottom: 1em;
}
#home_news .btn_wrap {
  text-align: center;
}
/*--------------------------------------------------------------
# greeting
--------------------------------------------------------------*/
#home_greeting {
  padding-top: 11.9rem;
}
#home_greeting .img_wrap {
  width: min(85%,36rem);
  margin: 0 auto 5rem;
  @media (min-width:768px) {
    width: min(35%,36rem);
    margin-bottom: 0;
    align-self: center;
  }
}
#home_greeting .text {
  font-size: clamp( 1.6rem, calc( 1.5142857142857142rem + 0.2380952380952381vw ), 1.8rem );
  line-height: 2.5;
}
@media (min-width:768px) {
  #home_greeting .text_wrap {
    width: 54%;
  } 
}
/*--------------------------------------------------------------
# mission
--------------------------------------------------------------*/
.section_wrap.mission {
  position: relative;
  &::before {
    display: block;
    content: "";
    width: 97%;
    height: 50%;
    background: var(--key-color);
    border-top-right-radius: 999rem;
    border-bottom-right-radius: 999rem;
    position: absolute;
    top: 0;
    left: 0;
    @media (min-width:996px) {
      max-width: 1700px;
      height: 100%;
      @media (min-width:1840px) {
        max-width: 92%;
      }
    }
  }
}
.section_wrap.mission .container {
  margin-top: 10rem;
  position: relative;
  z-index: 10;
  @media (min-width:996px) {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 12.8rem;
  }
}
#home_mission {
  padding: 6rem 0;
  @media (min-width:996px) {
    display: flex;
    flex-direction: column;
    width: 46%;
    padding: 7rem 0;
  }
}
#home_mission .section_title_en {
  color: #FFF;
}
#home_mission .list {
  margin: 2rem 0;
  & li {
    color: #FFF;
    font-size: clamp( 1.6rem, calc( 1.4285714285714285rem + 0.4761904761904762vw ), 2rem );
  }
}
#home_mission .img_wrap {
  max-width: 45rem;
}
@media (min-width:996px) {
  #home_mission .section_title_en::before {
    display: inline-block;
  }
  #home_mission .content_block {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}
/*--------------------------------------------------------------
# vision
--------------------------------------------------------------*/
#home_vision {
  margin-top: 8.9rem;
  @media (min-width:996px) {
    display: flex;
    flex-direction: column;
    width: 46%;
    margin-top: 0;
    padding: 7rem 0;
  }
}
#home_vision .section_title_en {
  @media (min-width:996px) {
    color: #FFF;
  }
}
#home_vision .list {
  margin: 2rem 0;
  & li {
    font-size: clamp( 1.6rem, calc( 1.4285714285714285rem + 0.4761904761904762vw ), 2rem );
    @media (min-width:996px) {
      color: #FFF;
    }
  }
}
#home_vision .img_wrap {
  max-width: 45rem;
}
@media (min-width:996px) {
  #home_vision .section_title_en::before {
    display: inline-block;
  }
  #home_vision .content_block {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}
/*--------------------------------------------------------------
# history
--------------------------------------------------------------*/
#home_history {
  padding-top: 10rem;
}
#home_history .text_wrap {
  margin-top: 3.5rem;
  @media (min-width:768px) {
    width: 55%;
  }
}
#home_history .dl_list dt {
  width: 6em;
  text-align-last: right;
  flex-shrink: 0;
}
#home_history .img_wrap {
  max-width: 45rem;
  @media (min-width:768px) {
    width: 36%;
  }
}
/*--------------------------------------------------------------
# company
--------------------------------------------------------------*/
#home_company {
  margin-top: 10rem;
  padding: 8.5rem 0 5rem;
  position: relative;
  @media (min-width:768px) {
    padding: 6rem 0 6.7rem;
  }
  &::before {
    display: block;
    content: "";
    width: 97%;
    height: 100%;
    background: var(--key-color);
    border-top-right-radius: 999rem;
    border-bottom-right-radius: 999rem;
    position: absolute;
    top: 0;
    left: 0;
    @media (min-width:996px) {
      max-width: 1350px;
      @media (min-width:1840px) {
        max-width: 84%;
      }
    }
  }
}
#home_company .container {
  position: relative;
  z-index: 10;
}
#home_company .section_title_en {
  color: #FFF;
  margin-bottom: 5rem;
}
#home_company .dl_list .list_item {
  > dt {
    color: #FFF;
    width: 5em;
  }
  > dd {
    color: #FFF;
  }
  + .list_item {
    border-top: none;
  }
  .fax {
    display: block;
    @media (min-width:768px) {
      display: inline-block;
      &::before {
        content: "／";
      }
    }
  }
}
/*--------------------------------------------------------------
# business
--------------------------------------------------------------*/
#home_business {
  padding-top: 12rem;
  @media (min-width:768px) {
    padding-top: 10rem;
  }
}
#home_business .dl_list {
  margin-top: 1em;
  .list_item > dt {
    width: 5em;
  }
  .list_item > dd {
    width: 50%;
    margin: 0 0 0 auto;
  }
  .list_item > dd ul li::before {
    display: inline-block;
    content: "・";
    margin-left: 1em;
  }
}
/*--------------------------------------------------------------
# address
--------------------------------------------------------------*/
#home_address {
  padding-top: 3.5rem;
  @media (min-width:768px) {
    padding-top: 10rem;
  }
}
#home_address .dl_list {
  margin-top: 1em;
  .list_item > dt {
    width: 3em;
  }
  .list_item > dd {
    width: 50%;
    margin: 0 0 0 auto;
    @media (min-width:768px) {
      width: calc(100% - 3em);
    }
  }
}
#home_address .dl_list .list_item:nth-child(2) {
  & ul {
    width: 75%;
    margin-bottom: 1em;
    @media (min-width:768px) {
      margin-bottom: 0;
      width: 100%;
    }
    & li {
      display: flex;
      justify-content: space-between;
      margin-left: 1em;
      @media (min-width:768px) {
        gap: 0 2em;
      }
    }
  } 
}
@media (min-width:768px) {
  #home_address .dl_list .list_item:nth-child(2) {
    > dd {
      display: flex;
      justify-content: space-between;
      padding-right: 1em
    }
  }
}

/*--------------------------------------------------------------
# group
--------------------------------------------------------------*/
#home_group {
  padding-top: 3.5rem;
  @media (min-width:768px) {
    padding-top: 8rem;
  }
}
#home_group .group_list {
  margin-top: 2.7rem;
  @media (min-width:768px) {
    display: flex;
    gap: 0 8.5rem;
  }
  & img {
    margin-bottom: 4rem;
  }
}
/*--------------------------------------------------------------
# contact
--------------------------------------------------------------*/
#home_contact {
  margin-bottom: 6rem;
  padding-top: 10rem;
  @media (min-width:768px) {
    margin-bottom: 15rem;
    padding-top: 16rem;
  }
}
#home_contact .section_title {
  font-family: 'Noto Serif JP', 'Hiragino Mincho ProN W3', 'Hiragino Mincho ProN', serif;
  font-size: 2.5rem;
  text-align: center;
  letter-spacing: 0.2em;
  margin-bottom: 8rem;
  @media (min-width:768px) {
    margin-bottom: 10rem;
  }
}
#home_contact table{
  width:100%;
  margin-bottom:25px;
}
#home_contact th {
  font-weight:normal;
  width:100%; display:block;
  text-align:left;
}
#home_contact th.hissu::after {
  content:"必須";
  color:#FFF;
  font-size:1.0rem;
  margin-left:10px;
  padding:3px 10px;
  background-color:#F00;
  border-radius:5px;
}
#home_contact td, #home_contact tr {
  padding: 0.5rem;
  margin-bottom: 1.5rem;
}
#home_contact td {
  display:block;
  width:100%;
}
.wpcf7 input{
  width: 100%;
  height: 35px;
}
.wpcf7 textarea[name="form-naiyo"] {
  width: 100%;
  height: 350px;
}
#submit_button{
  display: block;
  color:#fff;
  font-size: inherit;
  height:auto;
  text-align:center;
  width: 10rem;
  padding: 0.7em ;
  background-color: var(--key-color);
  border-radius:5px;
  box-shadow:none;
  border: 1px solid #ccc;
  transition: .4s;
  cursor: pointer;

  &:hover {
    opacity: 0.7;
  }
}
#home_contact .text {
  line-height: 2;
}
@media (min-width:768px) {
  #home_contact th{
    display:table-cell;
    width:40%;
    text-align:right;
  }
  #home_contact td{
    display:table-cell;
    width:60%;
  }
}
/*--------------------------------------------------------------
# footer
--------------------------------------------------------------*/
footer .img_wrap {
  width: 88%;
  padding: 10rem 0 10rem 2rem;
  position: relative;
  @media (min-width:768px) {
    width: 64%;
    padding: 15rem 0 15rem 8rem;
  }
  &::before {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background: var(--key-color);
    border-top-right-radius: 999rem;
    border-bottom-right-radius: 999rem;
    position: absolute;
    top: 0;
    left: 0;
  }
  & img {
    width: min(80%,69rem);
    position: relative;
    z-index: 10;
  }
}