@charset "utf-8";

/**********************************************************************/
/* 共通
/**********************************************************************/

section .super{
  padding-inline: 4vw;
  margin-bottom: 7em;
}
section .super .label{
  padding-left: 1em;
  position: relative;
}
section .super .label::after{
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--c_lime);
  position: absolute;
  left: 0;
  top: 60%;
  transform: translate(0, -50%);
}
@media screen and (max-width: 1400px){
  section .super{
    margin-bottom: 5em;
  }
}
@media screen and (max-width: 1280px){
  section .super{
    margin-bottom: 4em;
  }
}
@media screen and (max-width: 520px){
  section .super{
    margin-bottom: 2em;
  }
}

/**********************************************************************/
/* レイアウト
/**********************************************************************/

[data-firstview]{
  --h_hero: 100lvh;
  height: var(--h_hero, 100vh);
}
[data-cover]{
  background-color: var(--c_offwhite);
  background-image: url("../img/common/symbol_bg.webp");
  background-repeat: no-repeat;
  background-position: center top 380px;
  background-size: 1930px auto;
}

/**********************************************************************/
/* フェードヒーロー
/**********************************************************************/

#fadehero{
  height: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: var(--h_hero, 100vh);
}


/**********************************************************************/
/* ヒーロー
/**********************************************************************/

section.hero{

}
section.hero .wrapper{
  width: 100vw;
  height: var(--h_hero, 100vh);
}
section.hero .logo{
  margin-top: 1em;
}
@media screen and (max-width: 520px){
  section.hero .eyecatch{
    padding-bottom: 3em;
  }
  section.hero .text{
    font-size: 7.5vw;
    white-space: nowrap;
  }
  section.hero .logo{
    width: 8em;
    margin-inline: auto;
  }
}

/**********************************************************************/
/* 会社案内
/**********************************************************************/

section.company .wrapper{
  gap: 8vw;
  max-width: var(--mw_content, 1700px);
  margin-inline: auto;
}
section.company .leading{
  min-width: 0;
  flex-shrink: 1.5;
  max-width: 30em;
}
section.company .leading .heading .title{
  margin-bottom: .75em;
}
section.company .leading .heading .description{
  margin-bottom: 2em;
}
section.company .imaging{
  min-width: clamp(100px, 50vw, 960px);
}

@media screen and (max-width: 1730px){
  section.company .imaging{
    flex-shrink: 1;
    flex-grow: 1;
  }
  section.company .imaging .image{
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
  }
  section.company .imaging .image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}
@media screen and (max-width: 1000px){
  section.company .wrapper{
    flex-direction: column;
    gap: 3em;
  }
  section.company .leading{
    max-width: none;
  }
  section.company .leading .heading{
    display: grid;
    grid-template-columns: 1fr .8fr;
    grid-template-rows: auto auto;
    grid-template-areas:
    "title nav"
    "description nav";
    justify-items: start;
    gap: 0 4em;
  }
  section.company .leading .heading .title{
    grid-area: title;
    padding-top: .5em;
  }
  section.company .leading .heading .description{
    grid-area: description;
    margin-bottom: 0;
  }
  section.company .leading .heading nav{
    grid-area: nav;
    width: 100%;
  }
  section.company .imaging{
    aspect-ratio: 3/ 2;
  }
}
@media screen and (max-width: 720px){
  section.company .wrapper{
    flex-direction: column-reverse;
    gap: 1.5em;
  }
  section.company .leading .heading{
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
    "title"
    "description"
    "nav";
    gap: 0 4em;
  }
  section.company .leading .heading .description{
    grid-area: description;
    margin-bottom: 1em;
  }
  section.company .imaging{
    border-radius: 0 0;
    overflow: hidden;
  }
  section.company .leading .heading .title{
    font-size: clamp(20px, 7vw, 34px);
  }
}

/**********************************************************************/
/* 事業内容
/**********************************************************************/

section.business{
  --p_spacer: calc(var(--p_spacer_base) * 4 / 6);
}
section.business .wrapper{
  padding-right: 0;
  gap: 4em;
}
section.business .leading{
  max-width: 48em;
  padding-block: 3vw;
}
section.business .leading .heading .title{
  margin-bottom: .75em;
}
section.business .leading .heading .description{
  margin-bottom: 4em;
  max-width: 36em;
}
section.business .imaging{
  min-width: clamp(860px, 40vw, 960px);
}
section.business .imaging .image{
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}
section.business .imaging .image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

@media screen and (max-width: 1730px){
  section.business .imaging{
    min-width: clamp(100px, 40vw, 960px);
    flex-shrink: 1;
    flex-grow: 1;
  }
}
@media screen and (max-width: 1000px){
  section.business .wrapper{
    flex-direction: column;
    padding-right: var(--p_cushion);
    gap: 2em;
  }
  section.business .leading{
    display: contents;
  }
  section.business .leading .heading{
    order: 1;
  }
  section.business .leading .heading .description{
    margin-bottom: 0;
  }
  section.business .leading .details{
    order: 3;
    margin-bottom: 1em;
  }
  section.business .leading .link{
    order: 4;
  }
  section.business .imaging{
    order: 2;
    aspect-ratio: auto;
    height: 30vw;
  }
}
@media screen and (max-width: 720px){
  section.business .leading .heading .title{
    font-size: clamp(18px, 6.5vw, 30px);
  }
}
@media screen and (max-width: 520px){
  section.business .wrapper{
    gap: 1em;
  }
  section.business .leading .heading .description{
    margin-bottom: 0;
  }
  section.business .imaging{
    height: 50vw;
    order: 3;
  }
}

/*--------------------------------------------------------------------*/
/* details */

section.business .details{
  margin-bottom: 4em;
}
section.business .details .list ul li{
  padding: .75em 0 .75em 1.5em;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 14px auto;
  white-space: nowrap;
  position: relative;
  cursor: pointer;
}
section.business .details .list ul li::before{
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 0;
  top: 1.2em;

  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%3E%3Ccircle%20cx='7'%20cy='7'%20r='7'%20fill='%239f9f9f'%20opacity='0.12'/%3E%3Ccircle%20cx='3'%20cy='3'%20r='3'%20transform='translate(4%204)'%20fill='%239f9f9f'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: auto;
}
section.business .details .info{
  padding: .25em 3em;
  margin-left: 3em;
  border-left: 1px dotted var(--c_border);
  max-width: 25em;
}
section.business .details .info .name{
  font-size: 125%;
  padding: .25em 1em;
  margin-bottom: .75em;
}
section.business .details .info .name::before{
  width: 6px;
  height: 6px;
  background-color: #262A19;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: .85em;
}
section.business .details .info .link{
  margin-top: 2em;
  text-decoration: underline;
  font-size: 90%;
}
section.business .details .info .link a{
  text-decoration: underline;
}
@media screen and (max-width: 1400px){
  section.business .details .info{
    padding: .25em 1em .25em 2em;
    margin-left: 2em;
  }
}
@media screen and (max-width: 520px){
  section.business .details{
    flex-direction: column;
    display: contents;
  }
  section.business .details .list{
    order: 2;
    width: 100%;
    box-sizing: border-box;
    margin-block: .75em;
    padding-block: .75em;
    border-top: 1px solid var(--c_border);
    border-bottom: 1px solid var(--c_border);
  }
  section.business .details .list ul li{
    padding-block: .5em;
    padding-left: 2em;
    background-size: .75em auto;
  }
  section.business .details .list ul li::before{
    top: .85em;
  }
  section.business .details .info{
    order: 4;
    padding: 0;
    margin-left: 0;
    border-left: 0;
  }
}

/*--------------------------------------------------------------------*/
/* 事業内容動的部分 */

section.business .details .list ul li.current::before{
  width: 16px;
  height: 16px;

  background-image: url("../img/icons/loader.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 100% auto;

  animation: rotate 1s linear infinite;
}
@keyframes rotate{
  to{
    transform: rotate(360deg);
  }
}

[data-business-slider]{
  overflow: hidden;
}
[data-business-slider] .details .info .name{
  transition: opacity .4s ease-out, transform .4s ease-out;
}
[data-business-slider] .details .info .text{
  transition: opacity .4s ease-out, transform .4s ease-out;
}
[data-business-slider] .details .info .link{
  transition: opacity .4s ease-out, transform .4s ease-out;
}
[data-business-slider] .imaging{
  transition: opacity .8s ease-out, transform .8s ease-out;
}

[data-business-slider="switching"] .details .info .name{
  opacity: 0;
  transform: translate(-2em, 0);
  transition-delay: 0s;
}
[data-business-slider="switching"] .details .info .text{
  opacity: 0;
  transform: translate(-2em, 0);
  transition-delay: 0s;
}
[data-business-slider="switching"] .details .info .link{
  opacity: 0;
  transform: translate(-2em, 0);
  transition-delay: 0s;
}
[data-business-slider="switching"] .imaging{
  opacity: 0;
  transform: translate(2em, 0);
  transition-delay: 0s;
}

/*show*/
[data-business-slider="show"] .details .info .name{
  opacity: 1;
  transform: translate(0, 0em);
  transition-delay: .2s;
}
[data-business-slider="show"] .details .info .text{
  opacity: 1;
  transform: translate(0, 0em);
  transition-delay: .4s;
}
[data-business-slider="show"] .details .info .link{
  opacity: 1;
  transform: translate(0, 0em);
  transition-delay: .6s;
}
[data-business-slider="show"] .imaging{
  opacity: 1;
  transform: translate(0, 0);
  transition-delay: .0s;
}

/**********************************************************************/
/* お知らせ
/**********************************************************************/

section.news{
  --p_spacer: calc(var(--p_spacer_base) * 4 / 6);
}
section.news .super{

}
section.news .wrapper{
  gap: 6vw;
}
section.news .heading{
  white-space: nowrap;
  padding-right: 2vw;
}
@media screen and (max-width: 1600px){
  section.news .wrapper{
    gap: 2vw;
  }
}
@media screen and (max-width: 1280px){
  section.news .wrapper{
    gap: 3em;
    flex-direction: column;
  }
  section.news .bodying{
    padding-inline: 0;
  }
}
@media screen and (max-width: 520px){
  section.news .wrapper{
    gap: 2em;
    flex-direction: column;
  }
}

/*--------------------------------------------------------------------*/
/* bodying */
section.news .bodying{
  flex-grow: 1;
  padding-inline: 2vw;
}
section.news .bodying .list{
  border-top: 1px solid var(--c_border);
}
section.news .bodying .list li{
  padding: 1.75em 0;
  border-bottom: 1px solid var(--c_border);
}
section.news .bodying .list li a{
  display: block;
}
section.news .bodying .list li .item{
  padding: 1em 0;
}
section.news .bodying .list li .item .the_time{
  transform: translate(0, 10%);
  padding-right: 3em;
  min-width: 8em;
}
section.news .bodying .list li .item .icon{
  width: 2.32em;
	height: 1.375em;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='13.444'%20height='6.402'%20viewBox='0%200%2013.444%206.402'%3E%3Cpath%20d='M681.291,1592.708h11.634l-5.122-5.122'%20transform='translate(-681.291%20-1587.055)'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right top 45%;
	background-size: 1em auto;
	background-color: transparent;
	border-radius: 10em;
	margin-left: auto;
  min-width: 4em;
}
@media screen and (max-width: 720px){
  section.news .bodying{
    padding-inline: 0;
  }
  section.news .bodying .list li{
    padding-block: 1em;
  }
  section.news .bodying .list li .item{
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas: 
    "the_time the_time"
    "the_title icon";
  }
  section.news .bodying .list li .item .the_time{
    grid-area: the_time;
  }
  section.news .bodying .list li .item .the_title{
    grid-area: the_title;
  }
  section.news .bodying .list li .item .icon{
    grid-area: icon;
    display: none;
  }
}
@media screen and (max-width: 520px){
  section.news .bodying .list li{
    padding-block: .75em;
  }
  section.news .bodying .list li .item{
    padding-block: .5em;
  }
}

/*--------------------------------------------------------------------*/
/* link */
section.news .link{
  display: flex;
  align-self: flex-end;
}
section.news .link .button{
  min-width: 0;
  white-space: nowrap;
}
@media screen and (max-width: 520px){
  section.news .link{
    align-self: flex-start;
  }
}

