@charset "UTF-8";
*{
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;

  --cc: #CC2D27;
  --prism-rate: 1;
}
html{
  font-size: 62.5%;
}
body{
  color: #333;
  font-size: 1.6rem;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.4;
}
a{
  text-decoration: none;
}
img,svg{
  max-width: 100%;
  height: auto;
}
.fc-cc{
  color: var(--cc);
}
/**/
/*btn*/
/**/
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1em 2.5em;

  font-size: 1.5rem;

  color: #fff;
  background: #707070;
  border: solid 2px #707070;
  border-radius: .4em;
}
a.nmLink{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 1.8rem;
  font-family: poppins, sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  color: #333;
}
.icon-arrow{
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 7rem;
  height: 7rem;

  background: transparent;
  border-radius: 50%;
}
.icon-arrow::before{
  content: '';
  position: absolute;
  z-index: 2;

  width: 6rem;
  height: 6rem;

  border: solid 2px #333;
  background: transparent;
  border-radius: 50%;
}
a.nmLink .icon-arrow{
  margin-left: 3.2rem;
}
.jcc{
  display: flex;
  justify-content: center;
  width: 100%;
}
.jcr{
  display: flex;
  justify-content: right;
  width: 100%;
}
/**/
/*header*/
/**/
#GMCB{
  display: none;
}
#GM{
  position: fixed;
  z-index: 10000;
  top: 0;
  left: 0;

  width: 100dvw;
  height: 100%;
  min-height: 100dvh;
  background: transparent;

  visibility: hidden;
  overflow-x: hidden;

  transition: 0.3s all ease-in;
}
#GMCB:checked ~ #GM{
  transition: 0.3s all ease-in;
  visibility: visible;
  background: #333;

  background-image: url(../img/gmenu_logo.svg);
  background-repeat: no-repeat;
}
#GM-inner{
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 100%;
  padding: 0 10vw;
}
#GM nav{
  display: grid;
  grid-template-columns: repeat(3,24.7rem);
  column-gap: 13.3rem;
  row-gap: 16rem;
}
#GM nav .navColumn{
  padding-top: 2.4rem;

  color: #fff;
  border-top: solid 6px #fff;
}
#GM nav .navColumn .title::before{
  content: attr(data-text);

  display: block;

  font-size: 4rem;
  font-family: poppins, sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
}
#GM nav .navColumn .title{
  display: block;

  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
#GM nav .navColumn:has(ul) .title{
  margin-bottom: 4rem;
}
#GM nav .navColumn ul>*+*{
  margin-block-start: .8rem;
}
#GM nav .navColumn ul li a{
  font-size: 1.5rem;
  color: #fff;
}
#gMenu-closebtn{
  position: absolute;
  z-index: 10001;
  top: 1.6rem;
  right: 2vw;
  padding: 1.6rem;
}
#gMenu-closebtn span{
  position: relative;

  display: inline-block;
  width: 5.6rem;
  container-type: size;
}
#gMenu-closebtn span::before,
#gMenu-closebtn span::after{
  content: '';
  position: absolute;
  top: -.8rem;
  left: 50%;

  width: 80cqw;
  height: 2px;
  background: #fff;
}
#gMenu-closebtn span::before{
  transform: translateX(-50%)rotate(25deg);
}
#gMenu-closebtn span::after{
  transform: translateX(-50%)rotate(-25deg);
}

h1{
  position: absolute;
  z-index: 100;
  top: 4vw;
  left: 3.4vw;
  font-size: 0;
}
label#header-clickzone{
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  --wah: 34.4rem;

  display: flex;
  align-items: center;

  width: var(--wah);
  height: var(--wah);
  padding-left: calc(var(--wah) / 2);
  padding-bottom: calc(var(--wah) / 2);

  background: var(--cc);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}
#headerbtn{
  display: flex;
  flex-direction: column;

  padding: 1rem;
}
#headerbtn>*+*{
  margin-block-start: 1.4rem;
}
#headerbtn span{
  display: block;
  width: calc(var(--wah) * 0.16);
  height: .3rem;
  background: #fff;

  transition: 0.3s all linear;
}
/**/
/*footer*/
/**/
footer{
  padding: 6rem 10vw;

  color: #fff;

  background: var(--cc);
}
#footer-content{
  display: flex;
  justify-content: space-between;
  margin-bottom: 2.4rem;
}
footer nav{
  display: flex;

  font-size: 1.5rem;
}
footer nav a{
  color: #fff;
}
footer nav>*+*{
  margin-inline-start: min(2vw,4rem);
}
footer .navColumn>*+*{
  margin-block-start: .8rem;
}
footer .navColumn li:first-child{
  font-weight: 600;
}
footer .navColumn li:not(:first-child) a{
  position: relative;
}
footer .navColumn li:not(:first-child) a::before{
  content:'-';

  margin-right: .5em;
}
#copyright{
  font-size: 1.4rem;
  font-family: poppins, sans-serif;
  font-weight: 400;
  font-style: normal;
}
/**/
/*h2*/
/**/
h2.prism-layout{
  position: relative;
  
  height: var(--font-height);
  overflow: hidden;
  font-size: 0;
}
h2 .prism{
  position: absolute;

  --prism-width: calc(24rem * var(--prism-rate));

  width: var(--prism-width);
  height: var(--prism-width);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  
  transform: translate3d(0,0,0);

  will-change: animation,background-position,left;
}
.prism-01{
  top: calc(calc(var(--font-height) - var(--prism-width))*0.5);
  animation: prism01 5.3s linear infinite alternate;
}
.prism-02{
  top: calc(var(--font-height) * -1);
  animation: prism02 5.3s 2s linear infinite alternate;
}
@keyframes prism01{
  0% {
    left: calc(var(--prism-width)*-1);
    background-position: left var(--prism-width) top calc(calc(var(--font-height) - var(--prism-width))*-0.5);
  }

  100% {
    left: var(--font-width);
    background-position: left calc(var(--font-width)*-1) top calc(calc(var(--font-height) - var(--prism-width))*-0.5);
  }
}
@keyframes prism02{
  0% {
    left: calc(var(--prism-width)*-1);
    background-position: left var(--prism-width) top var(--font-height);
  }

  100% {
    left: var(--font-width);
    background-position: left calc(var(--font-width)*-1) top var(--font-height);
  }
}
@media (hover){
  /**/
  /*btn*/
  /**/
  a.nmLink:hover{
    color: #333333a0;
    transition: 0.3s all linear;
  }
  a.nmLink:hover .icon-arrow{
    background: #DDDDDD;
    transition: 0.3s all linear;
  }
  /**/
  /*header*/
  /**/
  header:hover #headerbtn span:nth-child(2){
    width: calc(var(--wah) * 0.11);
    transition: 0.3s all linear;
  }
  header:hover #headerbtn span:nth-child(3){
    width: calc(var(--wah) * 0.08);
    transition: 0.3s all linear;
  }
}
@media (max-width : 1200px){
  *{
    --prism-rate: 0.66;
  }
  h2.prism-layout img{
    width: var(--font-width);
  }
  label#header-clickzone{
    --wah: min(38vw,34.4rem);
  
    width: var(--wah);
    height: var(--wah);
    padding-left: calc(var(--wah) / 2);
    padding-bottom: calc(var(--wah) / 2);
  }
  footer{
    padding: 4rem 2.4rem;
  }
}
@media (max-width : 599px){
  *{
    --prism-rate: 0.3;
  }
  #headerbtn{
    display: flex;
    flex-direction: column;
  
    padding: 0;
  }
  #headerbtn span{
    width: calc(var(--wah) * 0.24);
    height: .3rem;
  }

  #footer-logo{
    display: flex;
    justify-content: center;
    margin-bottom: 4.8rem;
  }
  #footer-content{
    display: flex;
    flex-direction: column;
    justify-content: inherit;
    margin-bottom: 6.4rem;
  }
  footer nav>*+*{
    margin-inline-start: 0;
    margin-block-start: 2.4rem;
  }
  footer nav{
    display: flex;
    flex-direction: column;
  }
}