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

/*スマホここから*****************************************/

* {
	box-sizing: border-box;

}

html {	
	font-family: var(--jpfont);
	scroll-behavior: smooth;
	font-size: 16px;
	line-height: 1.6em;
	letter-spacing: .1em;
	font-weight: 400;
	font-style: normal;	
	
}

:root {
	/*--browncolor:#201207;*/
	--browncolor:#45270f;
	--beigecolor20:#faf8f6;
	--beigecolor40:#f6f3ef;
	--beigecolor80:#eee7e0;
	
	--jpfont:"zen-kaku-gothic-antique",游ゴシック Medium,Yu Gothic Medium,游ゴシック体,YuGothic,ヒラギノ角ゴ ProN W3,Hiragino Kaku Gothic ProN, sans-serif;
	--enfont:"zen-kaku-gothic-antique", sans-serif;
	--en_logofont:"asap-condensed", sans-serif;
	

	
}





body {
	width: 100%;
	background:var(--beigecolor80);
	font-size: 1.0rem;
	font-family: var(--jpfont);
	position: relative;
}


#wrapper {
	width: 100%;
	height: 100%;
	/*background:var(--browncolor);*/
	background: linear-gradient(#201207, #753612, #45270f);
	color:var(--beigecolor80);
}

section {
	width: 96%;
	margin: 3rem auto; 
}

/*************************

ローディングアニメーション

*************************/
#loading {
	background:var(--beigecolor80);
	width: 100vw;
	height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top:0;
	left: 0;
	z-index:10000;
}

.loading_wrap {
  width: 160px;
  display: flex;
  justify-content: space-between;
}

.circle {
  width: 30px;
  height: 30px;
  animation: loading_anime 1s infinite; 
}

.circle:nth-child(2) {
	animation-delay: 0.1s;
}

.circle:nth-child(3) {
	animation-delay: 0.2s;
}

@keyframes loading_anime {
  0% {
    transform: scale(0.6);
  }
  90% {
    transform: scale(1);
  }
  
   100% {
    transform: scale(0.4);
  } 
}

.circle img {
	width: 100%;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}

.svg_wrap {
	width: 15%;
	z-index: 10000;
}

.svg_wrap svg {
  width: 100%;
  height: auto;
}
.svg_wrap svg g {
  stroke-dasharray: 1000px;
  stroke: var(beigecolor80);
  stroke-width: 0.3;
  stroke-linecap:round;
  fill: transparent;
  animation: svgAnime 2.0s linear;
  animation-iteration-count:1;
}
@keyframes svgAnime {
    0% {
	  stroke: var(--browncolor);
      stroke-dashoffset: 1000px;
      fill: transparent;
    }

	50% {
      stroke-dashoffset: 0px;
      fill: rgba(57,58,52,0.5);
    }
	
    100% {
      stroke-dashoffset: 0px;
      stroke: transparent;
      fill: rgba(57,58,52,1.0);
    }
	
}

/*************************

フェード

*************************/

.fadeIn {
animation-name: fadeInAnime;/*1で解説*/
animation-fill-mode:backwards;/*2で解説*/
animation-duration:6s;/*3で解説*/
animation-iteration-count:1/*4で解説*/
animation-timing-function:ease;/*5で解説*/
animation-delay: 0.5s;/*6で解説*/
animation-direction:normal;/*7で解説*/
}

/*1で解説*/
@keyframes fadeInAnime{
  0% {
    opacity: 0;
  }
  
  25% {
    opacity: 0;
  }
  
  50% {
    opacity: 0;
  }   

  100% {
    opacity: 1;
  }
}

.fadeUp{
	animation-name:fadeUpAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity:0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}


/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeUpTrigger{
    opacity: 0;
}


.lineTrigger{
  position: relative; /* 枠線が書かれる基点*/
  opacity:0;
}

.lineTrigger.lineanime{
  animation-name:lineAnimeBase;
  animation-duration:1s;
  animation-fill-mode:forwards;
}

@keyframes lineAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

/* 下へ */
.flipDown{
animation-name:flipDownAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipDownAnime{
  from {
    transform: perspective(2500px) rotateX(100deg);
  opacity: 0;
  }

  to {
    transform: perspective(2500px) rotateX(0);
  opacity: 1;
  }
}


/* 左へ */
.flipLeft{
animation-name:flipLeftAnime;
animation-duration:1s;
animation-fill-mode:forwards;
perspective-origin:left center;
opacity:0;
}

@keyframes flipLeftAnime{
  from {
   transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
  opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}


/* 左上へ */
.flipLeftTop{
animation-name:flipLeftTopAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipLeftTopAnime{
  from {
   transform: translate(-20px,80px) rotate(-15deg);
  opacity: 0;
  }

  to {
   transform: translate(0,0) rotate(0deg);
  opacity: 1;
  }
}

/* 右へ */
.flipRight{
animation-name:flipRightAnime;
animation-duration:1s;
animation-fill-mode:forwards;
perspective-origin:right center;
opacity:0;
}

@keyframes flipRightAnime{
  from {
   transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
  opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}

/* 右上へ */
.flipRightTop{
animation-name:flipRightTopAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipRightTopAnime{
  from {
   transform: translate(-20px,80px) rotate(25deg);
   opacity: 0;
  }

  to {
   transform: translate(0,1) rotate(0deg);
  opacity: 1;
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.flipDownTrigger,
.flipLeftTrigger,
.flipLeftTopTrigger,
.flipRightTrigger,
.flipRightTopTrigger{
    opacity: 0;
}



/*************************

font

*************************/
h1#main_title {
	font-family:var(--en_logofont);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 2.6rem;
	width: 100%;
}


h2#intro_title {
	font-family:var(--enfont);
	font-size: 1.2rem;
	width:100%;
}

h2.title {
	position: relative;
	font-size: 2.2rem;
	line-height: 2.6rem;
	font-weight: 600;
	font-family: var(--enfont);
	display: inline-block;
	padding-left:0.5rem;
}

h2.title::before,
h2.title::after {
	content: "";
}

h2.title::before {
	background:var(--beigecolor80);
	width: calc(100% + 3.1rem);
	height: 1px;
	position: absolute;	
	bottom: 0;
	left: 0;
}

h2.title::after {
	content: "";
	background-color:#f3a68c;
	position: absolute;
    border-radius: 52% 58% 48% 44% / 48% 50% 62% 40%;
    top: 56%;
    right: -2.6rem;
    width: 1.8rem;
    height: 1.8rem;
    overflow: hidden;
    z-index: 1;
    transform: translate(0 , -50%);
    animation: morph 7s linear infinite;
}

h3.title {
	font-family: var(--enfont);
    text-align: center;
    font-weight: 600;
    font-size: 2.0rem;
    margin: 0 auto 4rem;
}


/*************************

link

*************************/
a {
	color: var(--beigecolor20);
}


/*************************

header

*************************/
header {
	width:100%;
	height: 60px;
	background:var(--beigecolor80);
}

header section {
	padding: 9px 6px;
	margin: 0 auto;
    display: flex;
    justify-content:space-between;
    align-items: center;
	width:94%;
	height: 100%;
}

header ul {
	display: flex;
	justify-content: flex-end;
}

header ul li {
	margin-left: 1rem;	
}

header ul li a {
	display: block;
	color:var(--browncolor);
	font-family:var(--enfont);
}

.header_img {
	width: 40%;
	margin: auto;
}

.header_img svg {
	width:100%;
	fill: var(--beigecolor80);
}

header #logo {
	background: var(--browncolor);
    border-radius: 52% 58% 48% 44% / 48% 50% 62% 40%;
    width: 42px;
	height: 42px;
    padding: 0.25rem 0.2rem 0.25rem 0.1rem;	
}

header #logo img {
	width: auto;
	height: 100%;
	display: block;
	margin: auto;
}

/*************************

main

*************************/
#intro h1,
#intro h2,
#intro p,
#intro img {
	text-align: center;
}

#intro img {
	display: block;
}


#intro {
	width:100%;
	height: calc(100vh - 60px);
	/*height: 100vh;*/
}

#intro section {
	padding: 0;
	width:100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

#intro section .intro_wrap,
#intro section #introtext {
	width: 100%;
}
#intro section .intro_wrap {
height: calc(100vh - (50px + 4rem));
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
#intro section .intro_wrap img {
	display: block;
	margin: 4rem auto;
}

#introtext section {
	margin-top: 0;
	padding-top:0;
}

#introtext .introtext_wrap  {
	width: 80%;
	padding: 2rem;
	text-align: left;
	margin: 4rem auto;
	border:1px solid var(--beigecolor20);

}

#introtext .introtext_wrap p {
	text-align: left;
}

.main_img {
	width: 30%;
	margin: 0 auto;
}

.main_img svg {
	width:100%;
	fill: var(--beigecolor80);
}

#works .works_list {
	display: flex;
	flex-wrap:wrap;
	justify-content: flex-start;
	align-items: flex-start;
	widows: 80
}

#works .works_list li {
	width:80%;
	margin: 3rem auto 0;
	line-height: 1.0rem;
}

#works .works_list li:first-child {
	margin-top: 0;
}


#works .works_list li img {
	width: 100%;
}

#works .works_list li h2 {
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1.8rem;
	margin: 1rem 0;
	color:var(--beigecolor80);
}

#works .works_list li a {
	color:var(--beigecolor20);
}

ul.tag {
	width: 100%;
	margin: 0;
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
}

ul.tag li {
	width:auto !important;
	font-size: 1.2vh;
	margin: 0 0 0 !important;
}

ul.tag li,
ul.tag li:first-child {
	margin-top: 0 !important;
}

ul.tag li:after {
	content:"/";
	display: inline-block;
	padding-left: 0.3rem;
	margin-right: 0.3rem;
}

ul.tag li:last-child:after {
	content: "";
	padding-left:0;
	margin-right:0;
}

/*タブデザイン
#works #workstab {
	width: 80%;
	margin: auto;

}

.workstab_tablist_label {
  width: calc(100%/3);
  height: 50px;
  border-bottom: 3px solid #5ab4bd;
  background: var(--beigecolor40);
  line-height: 1rem;
  font-size: 1rem;
  text-align: center;
  display: block;
  float: left;
  text-align: center;
  font-weight: bold;
  transition: all 0.2s ease;
}

.workstab_tablist:hover {
  opacity: 0.75;
}

input[name="workstab_btn"] {
  display: none;
}

.workstab_tablist_area {
  display: none;
  padding: 1rem;
  clear: both;
  overflow: hidden;
}


#workstab_1:checked ~ #workstab_1_contents,
#workstab_2:checked ~ #workstab_2_contentst,
#workstab_3:checked ~ #workstab_3_contentst {
  display: block;
}

#works #workstab input:checked + .workstab_tablist {
  background-color: #5ab4bd;
  color: #fff;
}
*/

/*************************

#footer

*************************/


footer {
	width:100%;
	background:var(--browncolor);
	color:var(--beigecolor80);
	padding:1rem;
	
	
	
}

footer p {
	color:var(--beigecolor20);
	text-align: center;
	margin-top: 0;
	letter-spacing: .2em;
	font-size: 3vw;
}
	

/*************************

product

*************************/

#product{
    min-height: 100vh;
	height: 100%;
}

#product section {
	width: 80%;
}

#product section img {
	width: 100%;
	margin: auto;
	display:block;
}

#product section h2 {
	margin: 2rem auto;
	font-weight: 700;
}

#product .lp_garally {
	width:80%;
	margin: 2rem auto;
	background: #fff;
	padding: 2% 0;
}
#product .lp_garally img {
	width:96%;
	max-width: 715px;
}

#product .garally ul.garally_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}

#product .garally ul.garally_wrap li {
	width:46%;
	margin-right: 4%;
	margin-top: 1.6rem;
}

#product .garally ul.garally_wrap li:nth-child(even) {
	margin-right: 0;
}

#product .garally_wrap ul li img {
	width: 100%;
}

#product .tag_wrap {
	border-top:1px solid var(--beigecolor20);
	margin-top: 2rem;
	padding-top:2rem;
}

#product .tag_wrap ul.tag {
	justify-content: flex-end;
}
#product p.url {
	position: relative;
	margin-top: 1rem;
	padding-left: 2rem;
}

#product p.url a,
#product p.url:before,
#product p.url:after {
	display: inline-block;
}

#product p.url a {
	color:var(--beigecolor20);
}

#product p.url:before,
#product p.url.after {
	content: "";
	position: absolute;
}

#product p.url:before {
	content: "url:";
	top:0;
	left:0;
	display: inline-block;
	margin-right: 1rem;
}

/*************************

animation

*************************/
.circle_wrap {
	display: flex;
	justify-content:center;
	align-items: center;
}

.circle {
    background: var(--browncolor);
    height: 20px;
    width: 20px;
    border-radius: 50%;
	    margin: 2px;
}

.circle_wrap .circle {
  padding: 10px;
  animation-name: circlein;
  animation-duration: 5s;
  animation-timing-function: ease;
  animation-delay: 1s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: backwards;
}


@keyframes circlein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}



/*スマホここまで*****************************************/


/*タブレット*****************************************/
@media screen and (min-width:768px) and ( max-width:1024px) {

section {
	width: 96%;
	margin: 4rem auto; 
}

h2.title {
    font-size: 3.2rem;
    line-height: 3.6rem;
}

#works .works_list li {
    width: 48%;
    margin: 4rem 2% 0 0;
}

#works .works_list li:nth-child(even) {
	margin-right: 0;
}

#works .works_list li:nth-child(2) {
	margin-top: 0;
}

#product .lp_garally {
	margin: 4rem auto;
}

footer p {
    font-size: 1rem;
}


}
/*タブレットここまで*****************************************/


/*PC*****************************************/
@media screen and (min-width:1024px) {

.svg_wrap {
    width: 5%;
}
section　{
	width: 1024px;
	margin: 6rem auto; 
}


header section {
	width: 94%;
}



/*#intro {
	height: 100%;
}*/

h2.title {
    font-size: 3.2rem;
    line-height: 3.6rem;
	padding-left: 4rem;
}

h1#main_title {
    font-size: 5.2rem;
    line-height: 5.2rem;
	width: 100%;
}

h2#intro_title {
    font-size: 1.6rem;
}

.main_img {
    width: 10%;
    margin: 4rem auto;
}

#intro section .intro_wrap {
align-items: stretch;
}

#introtext .introtext_wrap {
    width: 60%;
    padding: 3rem;
}

#product section {
	width: 940px;
}

#works .works_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    width: 80%;
    margin: auto;
}
#works .works_list li {
    width: 46%;
    margin: 4rem 4% 0 0;
}

#works .works_list li:nth-child(even) {
	margin-right: 0;
}

#works .works_list li:nth-child(2) {
	margin-top: 0;
}
#works .works_list li {
	font-size: 0.8rem;
}

ul.tag li {
	margin: 0 !important;
	font-size: 0.8rem !important;
	line-height: 1.4rem !important;
}

#product .lp_garally {
	margin: 4rem auto;
}

footer p {
    font-size: 1rem;
}
}