@charset "UTF-8";
/* CSS Document */

html,body {
  height: 100%;
}
body{
width: 100%;
margin: 0 auto;
color: #333;
font-family: 'Noto Sans', 'Noto Sans CJK JP', 'Noto Sans CJK JP Subset', sans-serif;
letter-spacing: 0.08em;
font-weight: 400;
font-size: 10px;
overflow-x: hidden;
}

/* 基本スタイル（スマホ向け） */
.contents {
  width: 100%;
  margin: 0 auto;
  padding: 0 15px 0 15px;
  animation: fadein 4s forwards;
  -moz-box-sizing: border-box;
    box-sizing: border-box;
}
@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}
 
/* タブレット向け（768px以上） */
@media screen and (min-width: 768px) {
  .contents {
    width: 750px;
    margin: 0 auto;
  }
}
 
/* PC向け（1025px以上） */
@media screen and (min-width: 1025px) {
  .contents {
    width: 1000px;
	margin: 0 auto;
  }
}

/*---------------------------------------------アニメ*/
.ani{
    transition: 1s all;
    opacity: 0;
    position: relative;
    top: 100px;
}
 .ani.move{
    opacity: 1;
    top: 0;
}
.ani2{
      transition: 1s all;
    opacity: 0;
    position: relative;
    top: 100px;}
 
.ani2.move{
    opacity: 1;
    top: 25%;
}

/* 画面に固定 */
#canvas-wrap {
  width: 100%;
  height: 100%;
  /*position: relative;*/
  position: fixed;
    top: 0;
    left: 0;
	z-index: -1;
}
@supports (-webkit-background-clip: text) {
  #canvas-txt p {
    background: -webkit-linear-gradient(left, #ba65fd, #5aa5f8, #00d8ee);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}


/*---------------------------------------------base*/
a,a:link,a:hover{
color: #000000;
text-decoration: none;
}
img{
	margin: 0;
	padding: 0;
	vertical-align: bottom;
}
a img:hover {
	opacity: 0.5 ;
}

ol,ul{
list-style: none;
}

/*---------------------------------------------MENU*/
/* ハンバーガーボタンのスタイル */
.hamburger {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 30px;
  cursor: pointer;
  z-index: 100;
}

.hamburger span {
  display: block;
  height: 2px;
  width: 100%;
  background-color: #333;
  margin: 5px 0;
  transition: 0.4s;
}

/* バツ印に変化するスタイル */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

/* メニューのスタイル */
.menu {
  position: fixed;
  top: -200%; /* 初期状態でメニューを画面の外に */
  right: 0;
  width: 250px;
  height: 100vh;
  background: #ddd;
  /* background-color: #fbe311;*/
  padding: 20px;
  box-sizing: border-box;
  z-index: 90;
  transition: top 0.3s ease; /* スライドアニメーション */
}

/* メニューが表示される時 */
.menu.open {
  top: 0; /* メニューが表示される位置 */
}
.menu ul{
margin-top: 100px;
}
.menu li a{
font-family: futura-pt, sans-serif;
font-weight: 500;
font-size:18px;
line-height: 3em;
letter-spacing: -0.06em;
text-decoration: none;
}
.menu li a:hover{
color: #fff;
}

/*--------------------------------------------- header*/

header{
margin: 0 auto;
position: relative;
}
h1 img{
width: 50px;
position: absolute;
top:20px;
left:10px;
z-index: 1000;
}

/*--------------------------------------------- top*/
.top{
width: 100%;
position: relative;
}
.top img{
max-width: 100%;
height: auto;
}
.topbox{
height: 686px;
width: 100%;
position: relative;
/*aspect-ratio: 1000 / 686;  デザイン通りの縦横比で固定 */
}
.topbox2{
width: 100%;
height: auto;
text-align: center;
margin-top: -50px;
}
.topbox2 img{width: 70%;}
.top3{
position: absolute;
  width: calc(415 / 1000 * 160%); /* 要素の幅の％を計算 */
  left: calc(80 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(150 / 686 * 100%); /* 要素の位置の％を計算 */
}

.top3 img{
position: absolute;
z-index: 10;
object-fit: contain;
}

.top-radius1 {
  position: absolute;
   aspect-ratio: 250 / 250; /* デザイン通りの縦横比で固定 */
  width: calc(280 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(300 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(-30 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
}
.top-radius2 {
position: absolute;
  aspect-ratio: 180 / 180; /* デザイン通りの縦横比で固定 */
  width: calc(180 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(750 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(-30 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
}
.top-radius3 {
position: absolute;
  aspect-ratio: 285 / 285; /* デザイン通りの縦横比で固定 */
  width: calc(285 / 1000 * 120%); /* 要素の幅の％を計算 */
  left: calc(610 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(55 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
  color:#333;
  text-align: center;
  font-size: 12px;
  display: grid;
  place-items: center;
}

.top-radius4 {
  background-color: #ccc9ba;
  border-radius: 50%;
 position: absolute;
 aspect-ratio: 300 / 300; /* デザイン通りの縦横比で固定 */
  width: calc(300 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(600 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(450 / 686 * 100%); /* 要素の位置の％を計算 */
}

.top-radius5 {
  background-color: #ccc9ba;
  color:#333;
  text-align: center;
  font-size: 12px;
  border-radius: 50%;
 position: absolute;
 display: grid;
  place-items: center;
   aspect-ratio: 260 / 260; /* デザイン通りの縦横比で固定 */
  width: calc(260 / 1000 * 130%); /* 要素の幅の％を計算 */
  left: calc(100 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(400 / 686 * 100%); /* 要素の位置の％を計算 */ 
}
/*-----------top リード文*/
.lead{
z-index: 20;
padding-right: 30px;
}
.lead p{
font-size:13px;
text-align: left;
letter-spacing:0.05em ;
}
/*--------------------top 矢印*/
.moreLinkText {
text-align: left;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all  0.3s ease;
}
.moreLink a{
font-family: futura-pt, sans-serif;
font-weight: 500;
font-size:18px;
letter-spacing: -0.06em;
text-decoration: none;
}
.lineArrow {
  width: 100%;
  height: 15px;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
   /*傾きを調節*/
  transform: skew(45deg);
  /*下線矢印をテキストに合わせてうまい具合にはめる*/
  margin: -10px 0 0 -10px;
}
.moreLinkText:hover .lineArrow  {
    opacity: 0.5 ;
}
.moreLinkText:hover {
   opacity: 0.5 ;
}


.topbox3{
width: 100%;
display:flex;
justify-content: center;
margin-top: 30px;
}
.topbox3 a{
font-family: futura-pt, sans-serif;
color: #fff;
font-weight: 500;
font-size:20px;
letter-spacing: -0.06em;
text-decoration: none;
}

.border-radius1 {
  width: 180px;
  height: 180px;
  line-height: 180px;
  background-color: #ccc9ba;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  margin-top: 10px;
  margin-left: -20px;
}
.border-radius2 {
  width: 120px;
  height: 120px;
  line-height: 120px;
  background-color: #ccc9ba;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  margin-left: 10px;
  margin-top: 80px;
}
.border-radius1:hover, .border-radius2:hover{
opacity: 0.5 ;
}

/*---------------------------------------------top header タブレット向け（768px以上） */
@media screen and (min-width: 768px) {
 .topbox{
height: 686px;
width: 100%;
position: relative;
}
.top3{
position: absolute;
  width: calc(415 / 1000 * 160%); /* 要素の幅の％を計算 */
  left: calc(80 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(100 / 686 * 100%); /* 要素の位置の％を計算 */
}
.top-radius3 {
position: absolute;
  aspect-ratio: 285 / 285; /* デザイン通りの縦横比で固定 */
  width: calc(285 / 1000 * 120%); /* 要素の幅の％を計算 */
  left: calc(600 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(110 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
  color:#333;
  text-align: center;
  font-size: 20px;
  display: grid;
  place-items: center;
}
.top-radius5 {font-size: 15px;}
 .topbox2{
width: 100%;
height: auto;
}
.topbox2 img{width: 50%;}
.topbox3{
margin-top: 10px;
}
.border-radius1 {
  width: 200px;
  height: 200px;
  line-height: 200px;
  margin-top: 10px;
  margin-left: -30px;
}
.border-radius2 {
  width: 150px;
  height: 150px;
  line-height: 150px;
  margin-left: 30px;
  margin-top: 80px;
}
}/*---------------------------------------------タブレット end*/


/*---------------------------------------------top PC向け（1025px以上） */
@media screen and (min-width: 1025px) {
 h1 img{
width: 70px;
position: absolute;
top:20px;
left:10px;
z-index: 1000;
}

.top{
width: 100%;
position: relative;
}
.top img{
max-width: 100%;
height: auto;
}
.topbox{
height: 686px;
width: 100%;
position: relative;
/*aspect-ratio: 1000 / 686;  デザイン通りの縦横比で固定 */
}
.top3{
position: absolute;
  width: calc(415 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(80 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(210 / 686 * 100%); /* 要素の位置の％を計算 */
}
.top3 img{
position: absolute;
/*top:210px;
left: 110px;*/
z-index: 10;
object-fit: contain;
}
.top-radius1 {
  position: absolute;
   aspect-ratio: 250 / 250; /* デザイン通りの縦横比で固定 */
  width: calc(280 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(300 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(-30 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
}
.top-radius2 {
position: absolute;
  aspect-ratio: 180 / 180; /* デザイン通りの縦横比で固定 */
  width: calc(180 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(750 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(-50 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
}
.top-radius3 {
position: absolute;
  aspect-ratio: 285 / 285; /* デザイン通りの縦横比で固定 */
  width: calc(285 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(570 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(110 / 686 * 100%); /* 要素の位置の％を計算 */
  background-color: #ccc9ba;
  border-radius: 50%;
  color:#333;
  text-align: center;
  font-size: 20px;
  display: grid;
  place-items: center;
}

.top-radius4 {
    background-color: #ccc9ba;
  border-radius: 50%;
 position: absolute;
 aspect-ratio: 280 / 280; /* デザイン通りの縦横比で固定 */
  width: calc(280 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(424 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(456 / 686 * 100%); /* 要素の位置の％を計算 */
}
.top-radius5 {
  background-color: #ccc9ba;
  color:#333;
  text-align: center;
  font-size: 17px;
  border-radius: 50%;
 position: absolute;
 display: grid;
  place-items: center;
  aspect-ratio: 179 / 179; /* デザイン通りの縦横比で固定 */
  width: calc(179 / 1000 * 100%); /* 要素の幅の％を計算 */
  left: calc(705 / 1000 * 100%); /* 要素の位置の％を計算 */
  top: calc(400 / 686 * 100%); /* 要素の位置の％を計算 */
}
.topbox2{
width: 100%;
height: auto;
display: flex;
align-items: center;
}
.topbox2 img{
width: 90%;
}

}/*---------------------------------------------PC end*/





/*---------------------------------------------サブページ*/

.innner{
width: 100%;
margin: 0 auto;
padding-top:150px;
}

h2{
font-size:25px;
color: #333;
font-family: futura-pt, sans-serif;
font-weight: 500;
letter-spacing: -0.06em;
}

h3{
font-size:18px;
color: #8F8F8F;
font-family: futura-pt, sans-serif;
font-weight: 500;
letter-spacing: -0.06em;
margin: 70px 0 20px 0;

}

.midashi a{
font-size:13px;
color: #8F8F8F;
font-family: futura-pt, sans-serif;
font-weight: 500;
letter-spacing: -0.06em;
}
.midashi a:hover{
color: #333;
}

.innner p{
font-size:12px;
line-height: 1.8em;
}

.maincopy{
font-size:18px;
font-family: futura-pt, sans-serif;
margin-bottom: 20px;
line-height: 1.9em;
}
.maincopy span{
font-weight: 500;
font-size:30px;
background: linear-gradient(transparent 50%, #fbe311 50%);
line-height: 2.2em;
}
@media screen and (min-width: 1025px) {
.maincopy .non{display: none;}
}

.box-text{
padding-right: 20px;
float: left;
 
}
.box-img{
width: 50%;
text-align: right;
float: right;
}
.box-img img{
width:100%;
padding-top:20px;
text-align: right;
}

@media screen and (max-width: 767px) {
.box-text{float:none;}
.box-img{float:none;width: 100%;}
.box-img img{text-align: center;}
}

.lead2{
font-size:18px;
margin: 20px 0;
}

/*---------------------------------------------会社概要*/
.kaisha {
width: 100%;
font-size:12px;
}

.kaisha th,
.kaisha td {
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
padding: 20px;
}

.kaisha th {
font-weight: bold;
background-color: #ddd; 
}


/*---------------------------------------------ブランド*/

div.brand1 {
  width: 300px;
  height:300px;
  border-radius:50%;
  background-image: url("images/soliloquy.jpg");
  background-position: center;
  background-size:contain;
  margin-right: 20px;
}
div.brand2 {
  width: 300px;
  height:300px;
  border-radius:50%;
  background-image: url("images/deniloop.jpg");
  background-position: center;
  background-size:contain;
  margin-left: 20px;
}
div.brand3 {
  width: 300px;
  height:300px;
  border-radius:50%;
  background-image: url("images/jb.jpg");
  background-position: center;
  background-size:contain;
  margin-right: 20px;
}
.brand1:hover,.brand2:hover,.brand3:hover{
opacity: 0.5 ;
}

.brand-box{
display: flex;
justify-content: center;
margin-top:40px;
}
.brand-cell{flex-direction: row-reverse;}
.brand-box h3{
font-size:18px;
color: #333;
font-family: futura-pt, sans-serif;
font-weight: 500;
letter-spacing: -0.03em;
}


@media screen and (max-width: 767px) {
.brand-box{display: block;padding-bottom: 30px;}
div.brand1 ,div.brand2 ,div.brand3 {margin: 0 auto;}
.brand-lead{margin-top:-40px;}
}


/*---------------------------------------------NEWS*/

.news{
padding: 30px 0;
border-bottom: solid 1px #ccc;
}
.date{
color: #8F8F8F;
padding-bottom: 8px;
}
.news-title{
font-size:15px;
}
.news-title span{
display:inline-block;
background: #333F;
color: #fff;
font-size:12px;
padding: 3px 6px;
margin-right: 10px;
}

/*---------------------------------------------contact*/
.contact{
width:100%;height:600px;
overflow: hidden;
}
iframe{
border: 1px #ccc solid;
}

/*---------------------------------------------footer*/
.footer{
width: 100%;
text-align: center;
color: #fff;
font-size:10px;
background-color: #ccc9ba;
padding:10px 0;
margin-top: 30px;
}

.footer a{
color: #333;
text-decoration: none;
}


.mar50{
margin-top: 50px;
}

.end{
clear: both;
}
