@charset "utf-8";

/* reset */

:root {
--main-color: #240480; /* 紫紺 */
--accent-color: #bfa066; /* 金茶 */
--base-color: #ffffff;
--text-color:#333333;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body, h1, h2, h3, h4, p,
blockquote, dl, dd , ul ,li, ol, p, pre, span, td, th{
margin: 0;
padding:0;
font-size:100%;
font-weight:normal;
}

ul,
ol{
  list-style: none;
}

body {
  min-height: 100vh;
  line-height: 1.5;
font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
background: var(--base-color);
color: var(--text-color);
}

h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

h1, h2,
h3, h4 {
  text-wrap: balance;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

img,
picture {
  max-width: 100%;
  display: block;
}

input, button,
textarea, select {
  font: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

/* reset */


/*== header ==*/
header {
position: fixed;
top: 0;
width: 100%;
background: var(--base-color);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
z-index: 999;
}
header .logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--main-color);
width;80%;
max-width:240px;
    }
nav{
 width: 100%;
 height: 70px;
 position: relative;
 
}
.drawer{
 display: flex;
 flex-direction: row;
 align-items: center;
 justify-content: space-between;
 position: relative;
 height: 70px;
 padding: 0 1em;
}

/*ナビゲーション部分*/
.menu ul li a {
display:block;
font-weight:700;
padding: 2em;
border-bottom: 1px dotted var(--accent-color);
text-decoration:none;
}

.menu ul li a:hover
{background-color:rgba(0,0,0,0.5);
color: var(--accent-color);
}

.menu{
  text-align:center;
  background-color:rgba(255,255,255,0.9);
  transition: .5s ease;/*滑らかに表示*/
  -webkit-transform: translateX(-105%);
  transform: translateX(-105%);/*左に隠しておく*/
}

/*OPEN時の動き*/
.menu.open {
 -webkit-transform: translateX(0%);
 transform: translateX(0%);/*中身を表示（右へスライド）*/
}

.Toggle {
    display: block;
    position: fixed;    /* bodyに対しての絶対位置指定 */
    width: 42px;
    height: 42px;
    cursor: pointer;
    z-index: 3;
  right:15px;
}
 
.Toggle span {
    display: block;
    position: absolute;
    width: 50px;
    border-bottom: solid 4px #333;
    -webkit-transition: .35s ease-in-out; /*変化の速度を指定*/
    -moz-transition: .35s ease-in-out;    /*変化の速度を指定*/
    transition: .35s ease-in-out;     /*変化の速度を指定*/
}
 
.Toggle span:nth-child(1) {
    top:5px;
}
.Toggle span:nth-child(2) {
    top: 18px;
}
.Toggle span:nth-child(3) {
    top: 32px;
}
.Toggle.active span:nth-child(1) {
    top: 18px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
 
/* 2番目と3番目のspanを45度に */
.Toggle.active span:nth-child(2),
.Toggle.active span:nth-child(3) {
    top: 18px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}

/*== header ==*/

.intro {
width:100%;
height: 90vh;
}
.intro video {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
-o-object-position: center;
object-position: center;
}

.intro-catch{
z-index: 100;
color: #ffffff;
position: absolute;
left: 4%;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.intro h1 {
font-size: 2.4rem;
margin-bottom:1rem;
}
.intro p {
font-size: 1.2rem;
line-height:2;
}

.bg_intro{
position: absolute;
  background: linear-gradient(0deg , #240480 , #0c014a);
  width: 100%;
  height: 90vh;
  overflow: hidden;
  top: 0;
  left: 0;
  z-index: -1;
}
.star {
position: absolute;
display: block;
background-image:url("../img/star.png");
background-size:cover;
border-radius: 50%;
box-shadow: 0 0 4px 2px rgba(#ffffff, 0.2);
opacity: 0;
animation: twinkle 5s infinite;
}

@keyframes twinkle {
  0% {
    opacity: 0;
  }

  50% {
    transform: scale(1.1);
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}

.intro_clip {
position:absolute;
right:2%;
top:50%;
width: 40%;
height: 80vh;
background-color: var(--base-color);
animation: slide-clip 40s infinite;
clip-path: inset(20px round 20px);
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}

.intro_clip .clip-img {
position   : absolute;
top        : 0;
left       : 0;
bottom     : 0;
right      : 0;
opacity    : 0;
animation  : FadeImg 32s infinite;
background-size :cover;
}

.intro_clip .clip-img01 {
  background-image : url(../img/clip-img_02.jpg);
}
.intro_clip .clip-img02 {
  background-image : url(../img/clip-img_03.jpg);
  animation-delay  : 8s;
}
.intro_clip .clip-img03 {
  background-image : url(../img/clip-img_04.jpg);
  animation-delay  : 16s;
}
.intro_clip .clip-img04 {
  background-image : url(../img/clip-img_01.jpg);
  animation-delay  : 24s;
}
@keyframes FadeImg {
   0% { opacity: 0; }
   5% { opacity: 1; }
  25% { opacity: 1; }
  35% { opacity: 0; }
 100% { opacity: 0; }
}

section.product {
position: relative;
padding: 4rem 2rem;
overflow: hidden;
}

section.product::before {
content: "";
position: absolute;
inset: 0;
background-position: center;
background-size:cover;
background-repeat: no-repeat;
opacity: 0.15;
z-index: -1;
}
section.product.ne-2u::before {
background-image: url('../img/bg_ne-2u.jpg');
}
section.product.ne-good::before {
background-image: url('../img/bg_ne-good.jpg');
}

section.product .content {
margin: 120px auto 0;
padding: 2rem;
width:92%;
max-width: 1200px;
border-radius: 12px;
background: rgba(255,255,255,0.3);
box-shadow: 0 0 15px rgba(102,102,102,0.15);
opacity: 0;
}
.content.inview {
  animation-name: fade-in;
  animation-duration: .5s;
  animation-timing-function: ease-in-out;
  animation-delay: .4s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}
@keyframes fade-in {
  0% {
    transform: translateY(40px);
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}

section.product .content h2 {
font-size: 2rem;
text-align:center;
color: var(--main-color);
margin:0 auto 2rem;
padding:0 0 0.5rem;
border-bottom:1px solid #bfa066;
}
.product-details{
display:flex;
justify-content:center;
gap:2rem;
}
.product-text{
width:90%;
max-width:600px;
padding:0 1rem;
}
.product-catch{
font-size:1.2rem;
font-weight:700;
color: var(--accent-color);
margin-bottom:0.5rem;
}
.product-img{
width:90%;
max-width:450px;
}

.company {
padding: 2rem;
display: grid;
margin: auto;
    }
.company h2 {
color: var(--accent-color);
font-size:1.2rem;
font-weight:700;
margin:0 0 0.5rem;
}
footer {
background: var(--main-color);
color: var(--base-color);
text-align: center;
padding: 2rem;
margin-top: 3rem;
}
.ft_btn a{
display:inline-block;
background-color:var(--accent-color);
color: var(--base-color);
margin:1rem auto;
padding:0.5rem 1rem;
text-decoration:none;
border-radius:5px;
}
.ft_btn a:hover{
opacity:0.9;
}


.footer_logo{
width:80%;
max-width:200px;
margin:2rem auto 0;
}

@media screen and (min-width: 768px) {
  
  header::after{
    
    display:none;
  } 
  
  
nav{
 display: flex;

}
.Toggle{
 display: none;
}
.menu{
 width: 100%;
  background-color: transparent;
  margin-top:0;
 -webkit-transform: translateX(0);
 transform: translateX(0);
}
.menu ul{
 height: 70px;
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 align-items: center;
}
.menu ul li a{
 padding: 0 1em;
 border-bottom: none;

}
  
  .menu ul li a:hover
{
  background-color:transparent;
}
  
  
}
@media(max-width: 768px) {
.intro{
height:100vh;
}
.bg_intro {
height:100vh;
}
.intro-catch{
  left: 50%;
  top: calc(42vh + 80px);
  width: 90%;
  height: 40vh;
-webkit-transform: translate(-50%,0);
  transform: translate(-50%,0);
}
.intro h1 {
font-size: 1.6rem;
}
.intro p {
font-size: 1rem;
}
.intro_clip {
  left: 50%;
  top: 80px;
  width: 98%;
  height: 40vh;
-webkit-transform: translate(-50%,0);
  transform: translate(-50%,0);
}
section.product {
padding: 2rem 1rem;
}
section.product.ne-2u::before {
background-position:right;
}
section.product.ne-good::before {
background-position:left;
}
section.product .content {
margin: 100px auto 0;
}
section.product .content h2 {
font-size: 1.6rem;
}
.product-details {
flex-wrap:wrap;
}
.product-text {
width:100%;
padding:0;
}
.product-img {
width:100%;
}
