@charset "UTF-8";
* {
      margin: 0px;
      padding: 0px;
  }
  

ul,
ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
  }

img,
embed,
object,
iframe {
  vertical-align: bottom;
}

img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}



:root {
    --font-family-serif: "Noto Serif JP", "Helvetica Neue", arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", meiryo,
      sans-serif;
    --font-family-sans: "Noto Sans JP", sans-serif;
    --font-family-koi: ta-koigokoro, sans-serif;
    --font-family-senobi: senobi-gothic, sans-serif;
    --font-family-oswald: oswald, sans-serif;
    --font-family-times: times-new-roman, sans-serif;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --font-weight-black: 900;
    --contents-width: 1200px;
    --text-color: #333333;
    --text-sub-color: #ffffff;
    --main-color: #00C9FF;
    --sub01-color: #333333;
    --sub02-color: #ffffff;
    --sub03-color: #000000;
    --point01-color: #e39254;
    --point02-color: #f4ffbd;
    --bluegray-main-color: #c1dee0;
    --bluegray-sub01-color: #9bb4e0;
    --bluegray-sub02-color: #f7f6f4;
    --bluegray-sub02-colorLG: linear-gradient(var(--bluegray-sub02-color) 80%, rgba(255, 255, 255, 0%));
  }
  
  html {
    scroll-behavior: smooth; 
  }
  
  body {
    font-family: var(--font-family-senobi);
    font-size: 1.6rem;
    font-weight: var(--font-weight-regular);
    font-feature-settings: "palt";
    line-height: 1.8;
    color: var(--text-color);
    letter-spacing: 0.08em;
  }
  @media screen and (max-width: 750px) {
    body {
      min-width: unset;
      font-size: min(18px, 2vw);   
    }
  }

  .peridot{
    font-family: peridot-pe-variable, sans-serif;
    font-style: normal;
    font-variation-settings: "ital" 0, "wdth" 100, "wght" 700;
}

/*デフォルトのマウスカーソルを非表示にする*/
html,
body,
a {
  cursor: none;
}

/*独自のマウスカーソルを作成*/
.cursor {
  position: fixed;
  top: -5px;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 127, 51, 0.7);
  z-index: 100000;
  transition: width 0.5s, height 0.5s, top 0.5s, left 0.5s;
  transform: translate(0, 0);
  pointer-events: none;
}

/*aタグにホバーした時に見た目変化*/
.cursor.cursor--hover {
  top: -20px;
  left: -20px;
  width: 40px;
  height: 40px;
  background: rgba(0, 201, 255, 0.5);
}

/*動き確認用ボタン*/
.btn {
  display: inline-block;
  min-width: 300px;
  margin: 20px;
  padding: 20px;
  color: #fff;
  background-color: #000;
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}


table,
iframe {
  font-size: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  border: none;
}

th,
td{
  padding: 0;
  margin: 0;
}

.u-pc{
  display:block;
 }

 .u-pad{
  display: none;
 }

.u-sp{
 display: none;
}
@media screen and (max-width: 1400px) {
  .u-pad{
    display: block;
   }
}

@media screen and (max-width: 750px) {
  .u-pc{
    display: none;
    }

    .u-pad{
      display: none;
     }

  .u-sp{
  display:block;
  }
}

/*  ローディング  */
/* Loading Block */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}
.spinner {
  width: 100px;
  height: 100px;
  margin: 200px auto;
  background-color: #989898;
  border-radius: 100%;
  animation: sk-scaleout 1.0s infinite ease-in-out;
}
/* Loading Animation */
@keyframes sk-scaleout {
  0% {
    transform: scale(0);
  } 100% {
    transform: scale(1.0);
    opacity: 0;
  }
}

/* Hide Loading Block */
.loaded {
  opacity: 0;
  visibility: hidden;
}

/*     header    */
.l-header{
position:relative;
display:none;
}
.menu {
  position: fixed;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 50px;
  height: 50px;
  background-color: rgba(0, 0, 0, 0.43);
  border-radius: 50%;
  transition: transform 250ms ease;
  cursor: pointer;
  z-index: 200;
}
.menu span {
  position: relative;
  display: block;
  width: 50%;
  height: 5px;
  border-radius: 4px;
  background-color: var(--sub02-color);
  float: left;
  transform-origin: center center;
  transition: transform 250ms ease;
  z-index: 200;
}
.menu span:nth-of-type(1) {
  transform: translateY(-5px);
}
.menu span:nth-of-type(3) {
  transform: translateY(5px);
}

#menu {
  display: none;
}
#menu:checked ~ .menu {
  background-color: transparent;
  transform: rotate(360deg);
  transition: transform 250ms ease;
}
#menu:checked ~ .menu span {
  background-color:  var(--sub02-color);
  transition: transform 250ms ease;
}
#menu:checked ~ .menu span:nth-of-type(1) {
  transform: translateY(1px) rotate(45deg);
}
#menu:checked ~ .menu span:nth-of-type(2) {
  display: none;
}
#menu:checked ~ .menu span:nth-of-type(3) {
  transform: translateY(-4px) rotate(-45deg);
}
#menu:checked ~ .nav {
  right: 0px;
  transition: right 500ms ease;
}
#menu:checked ~ main {
  transform: translateX(-300px);
  transition: transform 510ms ease;
}

.nav {
  position: fixed;
  top: 0;
  right: -300px;
  width: 300px;
  height: 100vh;
  margin: 0;
  padding: 0;
  background-color: var(--sub03-color);
  transition: left 500ms ease;
  z-index: 0;
}

.nav ul {
  position: relative;
  list-style-type: none;
  margin: 100px 0;
  padding: 0;
}

.nav ul li {
  position: relative;
  display: flex;
  text-align: center;
  justify-content: center;
}


.nav ul li a {
  position: relative;
  display:flex;
  justify-content:space-between;
  align-items: center;
  width:160px;
  margin: 0;
  padding: 4px 20px;
  color: var(--text-sub-color);
  font-size: min(24px, 4vw);   
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
}

.nav ul li a span.after{
  font-size: min(20px, 3vw);  
}


.nav ul li a:before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  transition: width 250ms ease;
  z-index: -1;
}
.nav ul li a::after {
  position: absolute;
  left: auto;
  right: auto;
  content: '';
  width: 80%;
  height: 2px;
  background: var(--sub02-color);
  bottom: 5px;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s;
  z-index: 99;
  }
  
  .nav ul li a:hover::after {
  transform: scale(1, 1);    
  }

/*     header    */

/*    footer    */

.l-footer{
  background-color: var(--main-color);
  border-top-left-radius: 300px;
  padding-top:180px;
  padding-bottom:400px;
}

@media screen and (max-width: 750px) {
  .l-footer{
    border-top-left-radius: 180px;
  padding-top: 80px;
  padding-bottom: 80px;
  }
}

.l-footer-menu{
  display:flex;
  justify-content:end;
  padding-right: 10%;
  color: var(--text-sub-color);
}


@media screen and (max-width: 750px) {
  .l-footer-menu{
    justify-content: center;
    font-size: min(36px, 10vw);
    padding-right: 0;
  }
}

.l-footer-menu ul li a{
  display:flex;
  justify-content:space-between;
  align-items: center;
  color: var(--text-sub-color);
  width:200px;
  font-size: min(30px, 6vw);
    font-weight: 700;
    position: relative;
}

@media screen and (max-width: 750px) {
.l-footer-menu ul li a{
width: 240px;
font-size: min(36px, 10vw);
}
}

.l-footer-menu ul li a span.after{
  font-size:  min(26px, 5vw);
}

@media screen and (max-width: 750px) {
.l-footer-menu ul li a span.after {
  font-size: min(26px, 8vw);
}
}

.l-footer-menu ul li a:visit{
  color: var(--text-sub-color);
}

.l-footer-menu ul li a::after {
  position: absolute;
  left: auto;
  right: auto;
  content: '';
  width: 100%;
  height: 2px;
  background: var(--sub02-color);
  bottom: 5px;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s;
  z-index: 99;
  }
  
  .l-footer-menu ul li a:hover::after {
  transform: scale(1, 1);   
  }



.l-footer-logo{
  font-family: var(--font-family-times);
  color: var(--text-sub-color);
  text-align:center;
  font-size: min(280px, 20vw);  
}

.l-footer-logo a, .l-footer-logo a:visit{
  color: var(--text-sub-color);
}


@media screen and (max-width: 750px) {
  .l-footer-logo{
    font-size: min(280px, 30vw);  
  }
}


.l-footer-logo-copy{
  font-family: var(--font-family-koi);
  color: var(--text-sub-color);
  text-align:center;
  font-size:  min(24px, 1.5vw);
  width: 50%;
    margin-right: auto;
    margin-top:-6%;
    margin-left: auto;
}

@media screen and (max-width: 750px) {
  .l-footer-logo-copy{
    font-size:  min(24px, 1.5vw);
    width: 80%;
    margin-top:-12%;
  }
}


.l-footer-wrap{
  position: relative;
  background-color: var(--sub01-color);
  padding-top:40px;
  padding-bottom:3px;
  z-index:99;
}

.l-copy-text{
  color: var(--text-sub-color);
 text-align: center;
 font-size: min(24px, 4vw);
 padding-top:3px;
 padding-bottom:3px;

}


/*    footer    */

/*    top return   */


.l-top {
  position: fixed;
  right: 20px;
  bottom: -120px;
  animation: progress linear;
  animation-timeline: scroll();
  transition: bottom 1.5s ease;
  width:40px;
  height:40px;
  border-radius: 50%;
  padding:20px;
  background-color:  var(--sub02-color);
  z-index: 9999;
}
@keyframes progress {
  0% {
    bottom: -120px;
  }
  18% {
    bottom: -120px;
  }
  19% {
    bottom: 0px;
  }
  20% {
    bottom: 20px;
  }
  100% {
    bottom: 20px;
  }
}


.l-top a{
  display: flex;
  justify-content: center;
  align-items: center;
 }
 
 

/*    top return   */

/*     main      */

.outline-white {
  display        : inline-block;
  color          : var(--text-color);              
  letter-spacing : 4px;              
  text-shadow    : 
       2px  2px 0px var(--sub02-color),
      -2px  2px 0px var(--sub02-color),
       2px -2px 0px var(--sub02-color),
      -2px -2px 0px var(--sub02-color),
       2px  0px 0px var(--sub02-color),
       0px  2px 0px var(--sub02-color),
      -2px  0px 0px var(--sub02-color),
       0px -2px 0px var(--sub02-color);      
}


.outline-black {
  display        : inline-block;
  color          : var(--text-sub-color);                 
  letter-spacing : 4px;             
  text-shadow    : 
       2px  2px 0px var(--sub01-color),
      -2px  2px 0px var(--sub01-color),
       2px -2px 0px var(--sub01-color),
      -2px -2px 0px var(--sub01-color),
       2px  0px 0px var(--sub01-color),
       0px  2px 0px var(--sub01-color),
      -2px  0px 0px var(--sub01-color),
       0px -2px 0px var(--sub01-color);       /* 文字の影 */
}

.l-section-container{
  width: min(1680px, 90%);
  margin-right:auto;
  margin-left:auto;
}

.c-link-bottun{
  position:relative;
  z-index:10;
  display: flex;
  justify-content:center;
  align-items: center;
  font-size: min(30px, 7vw);
  line-height: 1em;
  margin-top: 100px;
}

@media screen and (max-width: 750px) {
.c-link-bottun{
margin-top: 60px;
margin-bottom: 40px;
}
}


.c-link-bottun span img{
  margin-left:100px;
  width:16px;
}

@media screen and (max-width: 750px) {
  .c-link-bottun span img{
  margin-left:50px;
  }
}

.c-link-bottun a{
  position: relative;
}


.c-link-bottun a, .c-link-bottun a:visit{
  color: var(--text-sub-color);
}

.c-link-bottun a::after {
  position: absolute;
  left: 0;
  right: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: var(--sub02-color);
  bottom: -3px;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s;
  z-index: 99;
  }

  .c-link-bottun a:hover::after {
  transform: scale(1, 1);   
  }

  .c-link-bottun.black a::after {
    background: var(--sub01-color);
    }
/*    FV  */
#fv{
position:relative;
height:100vh;
background-image: url(../images/top/fv_bg.jpg);
background-position: center center;
background-size: cover;
}

@media screen and (max-width: 750px) {
#fv{
  background-image: url(../images/top/fv_bg_sp.jpg);
  }
}

.svg_wrap{
  position:relative;
height:100vh;
}

svg {
  width: 100%;
  height: 100vh;
}


.c-fv-copy{
position:absolute;
width: 100%;
height: 100vh;
top:0;
right: 0;
left: 0;
text-align: center;
display:flex;
justify-content: center;
align-items: center;
z-index: 500;
}

.c-fv-copy h2{
  font-family: var(--font-family-times);
  font-size: min(800px, 20vw);
  font-weight:normal;
  /* line-height: 1.4; */
  color: var(--text-sub-color);
  text-shadow: 10px 10px 10px rgba(0, 0, 0, 1);
}

/*
.c-fv-copy h2 span{
  letter-spacing: 12px;
}
  */
.l-fv-pic{
  width:100%;
  height:100vh;
}
.l-fv-pic img{
  object-fit: cover;
}

/*    FV  */

/*    section01  */
#section01{
  background-color: var(--main-color);
  color: var(--text-sub-color);
  padding-top:20%;
  height:280vh;
}

@media screen and (max-width: 1400px) {
  #section01{
    height:400vh;
  }
}

@media screen and (max-width: 750px) {
#section01{
  height:180vh;
}
}

#section01 .l-section-title{
  padding-top:20%;
  position:relative;
}

@media screen and (max-width: 750px) {

#section01 .l-section-title{
  padding-top:40%;
}

}

.iframe-bg_back{
position:absolute;
top:20%;
right:0;
left:0;
}
  @media screen and (max-width: 1400px) {
.iframe-bg_back{
top:-10px;
}
  }

#section01 .l-section-container{
  padding-top:10%;
  padding-bottom:10%;
  }


  @media screen and (max-width: 1400px) {
#section01 .l-section-container{
  padding-top:20%;
  }
  }

    @media screen and (max-width: 750px) {
#section01 .l-section-container{
  padding-top:30%;
  }
  }

  #section01 .c-content-about-copy{
    width: min(1000px, 60%);
    margin-right: auto;
    margin-left: auto;
      position:relative;
  z-index:5;
  }

  #section01 .l-section-container .c-content-about-zero{
    width: 100%;
text-align: center;
margin-right: auto;
    margin-left: auto;
  }

  #section01 .l-section-container .c-content-about-text{
    margin-top: 5%;
    font-size: min(30px, 4.5vw);
    text-align: center;
  }

  @media screen and (max-width: 750px) {
    #section01 .l-section-container .c-content-about-text{
      margin-top: 20%;
  /*  text-align: left;  */
    }
  }
  
  #section01 .c-content-about-zero-iframe{
    position: relative;
    padding-bottom: 50%;
    height: 0;
    overflow: hidden;
  }

  @media screen and (max-width: 1400px) {
    #section01 .c-content-about-zero-iframe{
      padding-bottom: 70%;
    }
  }

  @media screen and (max-width: 750px) {
    #section01 .c-content-about-zero-iframe{
      padding-bottom: 108%;
    }
  }


  #section01 .c-content-about-zero-iframe iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 900px;
  }


  @media screen and (max-width: 1400px) {
    #section01 .c-content-about-zero-iframe iframe{
      height: 800px;
}
  }
  @media screen and (max-width: 750px) {
    #section01 .c-content-about-zero-iframe iframe{
      height: 500px;
}
  }


/*    section01  */


/*    section02  */
#section02{
  position: relative;
  background-color: var(--sub02-color) ;
  height:200vh;
}

@media screen and (max-width: 1400px) {
  #section02{
    height:240vh;
  }
}

@media screen and (max-width: 750px) {
  #section02{
    height:280vh;
  }
  }

  @media screen and (max-width: 400px) {
  #section02{
    height:320vh;
  }
  }

#section02 h2{
  position:absolute;
  top:0;
  right:0;
  left:0;
  font-family: var(--font-family-oswald);
  font-size: min(280px, 12vw);   
  text-align:center;
  margin-top: 0;
  line-height: 0.65;
  z-index:10;
}

#section02 .l-section-container, #section-business02 .l-section-container{
padding-top:20%;
padding-bottom:10%;
}


#section02 .l-content-flex, #section-business02 .l-content-flex{
  display: flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items: start;
  text-align: center;
  position:relative;
  z-index:15;
}

#section02 .l-content-flex > div, #section-business02 .l-content-flex > div{
flex-basis:30%;
}
@media screen and (max-width: 750px) {
#section02 .l-content-flex > div, #section-business02 .l-content-flex > div{
  flex-basis: 100%;
  margin-bottom: 20px;
  margin-top: 60px;
  }
}

#section02 .l-content-flex .c-content-business h3, #section-business02 .l-content-flex .c-content-business h3{
  font-family: var(--font-family-oswald);
  font-size: min(46px, 8vw);
  letter-spacing: -0.2px;
  margin-top: 30px;
  margin-bottom: 20px;
  line-height: 3rem;
  display: flex;
  justify-content: center;
  text-align: left;
}

#section02 .l-content-flex .c-content-business p.c-content-text, #section-business02 .l-content-flex .c-content-business p.c-content-text{
margin-top:0;
margin-bottom:0;
font-size: min(30px, 6vw);
}

.c-content-business{
position:relative;
}

.c-content-nunber{
  position: absolute;
  top: -64px;
  left: 0;
  width: 160px;
}

@media screen and (max-width: 750px) {
.c-content-nunber {
  top: -44px;
  width: 120px;
}
}

.c-content-photo{
  border: 3px solid #333333;

}



/*    section02  */

/*    section03  */
#section03{
  background-color: var(--sub01-color);
  color: var(--text-sub-color);
  position: relative;
  height:220vh;
}

@media screen and (max-width: 1400px) {
  #section03{
    height:320vh;
  }
}

@media screen and (max-width: 750px) {
  #section03{
    height:160vh;
  }
  }

#section03 h2{
  position:absolute;
  top:0;
  right:0;
  left:0;
  font-family: var(--font-family-oswald);
  font-size: min(280px, 12vw);   
  text-align:center;
  margin-top: 0;
  line-height: 0.668;
}

#section03 .l-section-container{
padding-top:20%;
padding-bottom:10%;
}

#section03 .l-section-content{
  margin-bottom:4em;
}

#section03 h3{
  font-size: min(60px, 6vw);   
  text-align:center;
}

#section03 .l-section-content h3{
  margin-bottom:0;
}

#section03 .c-section-title{
  font-size: min(30px, 6vw);
  text-align: center;
  margin-top: 0;
    line-height: 1.3;
    margin-bottom: 40px;
}

#section03 .c-section-title span{
  font-family: var(--font-family-oswald);
  font-size: min(130px, 10vw);
  letter-spacing: -5px;
  font-weight: bold;
}

@media screen and (max-width: 750px) {
  #section03 .c-section-title span{
    letter-spacing: -1px;
  }

}

#section03 .l-content-flex{
  display: flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items: center;
  text-align: center;
}

#section03 .l-content-flex > div{
flex-basis:20%;
}
@media screen and (max-width: 750px) {
#section03 .l-content-flex > div{
  flex-basis:50%;
  margin-bottom: 60px;
  }
}

#section03 .l-content-flex h3{
  font-size: min(28px, 4vw);
  margin-bottom: 40px;
}

@media screen and (max-width: 750px) {
  #section03 .l-content-flex h3{
    margin-bottom: 20px;
  }
}


.circle_width {
  width: 70%;
  margin-right:auto;
  margin-bottom: 20px;
  margin-left:auto;
  border-radius: 50%;
  background-color: var(--sub02-color);
  }

  @media screen and (max-width: 750px) {
    .circle_width {
      margin-bottom: 10px;
    }
  }
   
  .circle_height {
  position: relative;
  padding-top: 100%;
  height: 0;
  }
   
  /*
  .circle_height p {
  position: absolute;
  top: 20px;
  left: 0;
  right: 0;
  margin: 0;
  }
  */

  .circle_height p svg{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
  }


  #section03 .l-content-flex .c-point{
    font-size: min(22px, 4vw);
    font-weight:bold;
  }

  #section03 .l-content-flex .c-point span{
    font-family: var(--font-family-oswald);
    font-size: min(30px, 8vw);
    font-weight:normal;
  }



/*    section03  */

/*    contact  */
.contact{
  opacity: 0;
  position:fixed;
  top:0;
  right: -600px;
  width: min(600px, 100%);
 z-index: 99999999;
}

.contact.js-active{
  right: 0px;
  transition: right 500ms ease;
  opacity: 1;
}

.contact.js-close{
  opacity: 0;
  right: -600px;
}

.contact-wrapper {
  position: relative;
  height: 100vh;
  background-color: #ffffff; 
}

.contact-wrapper iframe{
  width: 100%;
  height: 100%;
}

.close-bottun{
position: absolute;
top:20px;
right:20px;
}

.round_btn {
  display: block;
  position: relative;
  width: 30px;
  height: 30px;
  border: 2px solid #333; /* 枠の調整 */
  border-radius: 50%;  /* 丸みの度合い */
  background: #fff; /* ボタンの背景色 */
}
 
.round_btn::before, .round_btn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px; /* 棒の幅（太さ） */
  height: 22px; /* 棒の高さ */
  background: #333; /* バツ印の色 */
}
 
.round_btn::before {
  transform: translate(-50%,-50%) rotate(45deg);
}
 
.round_btn::after {
  transform: translate(-50%,-50%) rotate(-45deg);
}

/*    contact  */


    /*     main      */    
