@charset "utf-8";

*{
	margin:0;
	padding:0;
	box-sizing: border-box;	
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, section, article, aside, hgroup, header, footer, nav, dialog, figure, menu, video, audio, mark, time, canvas, details {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align:baseline;
	background: transparent;
}

article, aside, canvas, details, figcaption, figure, header,
footer, hgroup, menu, nav, section, summary {
display: block;
}

@media only screen and 
(-webkit-min-device-pixel-ratio: 2),
(min-resolution: 2dppx) {
  .hoge {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

ol, ul {
	list-style: none;
}

address,caption,cite,code,dfn,em,strong,var {
	font-style: normal;
}

caption,th {
	text-align: left;
	font-weight:normal;
}

q:before,q:after {
	content: '';
}

object,
embed {
	vertical-align: top;
}

h1,h2,h3,h4,h5,h6,textarea {
	font-size: 100%;
}

img,abbr,acronym,fieldset {
	border: 0;
}

img{
	max-width: 100%;
	height: auto;
	line-height: 1;
}

table {
	font-size:100%;
	border-collapse: collapse;
	border-spacing: 0;
	vertical-align:top;
}

h1,h2,h3,h4,h5,th{
	font-weight: 300;
}



/* For modern browsers */
.cf:before,
.cf:after,
.contact_det li:before,
.contact_det li:after,
.contact_det-btn li:before,
.contact_det-btn li:after {
    content:"";
    display:table;
}
 
.cf:after,
.contact_det li:after,
.contact_det-btn li:after {
    clear:both;
}

a:link , a:active , a:visited {
	color: inherit;
	text-decoration:none;
}

/*--- リンクカラー */
a:hover {
	text-decoration: none;
}

.clm-wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}





/* -----------------------------------------------------------

	ページ共通設定
	
----------------------------------------------------------- */




html {
    visibility: hidden;
    background: #000;
}

html.wt {
	background: #FFF;
}

html.wf-active,
html.loading-delay {
    visibility: visible;
}


body {
	width: 100%;
	opacity: 0;
    animation: fadeIn 1s ease 0s 1 forwards;
    -webkit-animation: fadeIn 1s ease 0s 1 forwards;
}

.wt body {
    animation: fadeIn 1s ease 1s 1 forwards;
    -webkit-animation: fadeIn 1s ease 1s 1 forwards;
}

@font-face {
  font-family: 'medio';
  src: url('Medio.otf') format('opentype');
}

.en{
	font-family: medio , serif;
}


@keyframes fadeIn {
    0% {opacity: 0; }
    100% {opacity: 1;}
}

@-webkit-keyframes fadeIn {
    0% {opacity: 0;}
    100% {opacity: 1;}
}

body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color:#000; 
  z-index: 9999; 
  pointer-events: none;
  opacity: 0; 
  -webkit-transition: opacity .4s ease; 
  transition: opacity .4s ease;
}

.wt body::after {
  background-color:#FFF; 
}


body.fadeout::after {
  opacity: 1;
}


.loading{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	z-index: 999;
	-webkit-transition: opacity .4s ease; 
	transition: opacity .4s ease;
    animation: fadeOut .8s ease 2s 1 forwards;
    -webkit-animation: fadeOut .8s ease 2s 1 forwards;
}

@keyframes fadeOut {
    0% {opacity: 1;}
    100% {opacity: 0; pointer-events: none;}
}

@-webkit-keyframes fadeOut {
    0% {opacity: 1;}
    100% {opacity: 0; pointer-events: none;}
}


.circle{
	width: 50%;
	max-width: 400px;
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
	background: url(../../img/common/circle_bg.svg) no-repeat;
	background-size: contain;
}

.circle svg{
	width: 100%;
	height: auto;
}

@-webkit-keyframes animate-svg-stroke-1 {
  0% {
    stroke-dashoffset: 4356.9384765625px;
    stroke-dasharray: 4356.9384765625px;
  }

  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 4356.9384765625px;
  }
}

@keyframes animate-svg-stroke-1 {
  0% {
    stroke-dashoffset: 4356.9384765625px;
    stroke-dasharray: 4356.9384765625px;
  }

  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 4356.9384765625px;
  }
}

.svg-elem-1 {
  -webkit-animation: animate-svg-stroke-1 1.2s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.2s both;
          animation: animate-svg-stroke-1 1.2s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.2s both;
}


.fadein{
	transform: translateY(10px);
	opacity: 0;
	transition: all 1s ease-out;
}

.load-on .fadein.view{
	transform: translateY(0);
	opacity: 1;
}


.slick-slide:focus,
.slick-slide a:focus {
  outline: none;
}


.transition-title-wrapper .transition-title-line:before {
  -webkit-animation: 1.2s cubic-bezier(.455, .03, .515, .955) 2s 1 normal forwards transition_title__move_mask;
  animation: 1.2s cubic-bezier(.455, .03, .515, .955) 2s 1 normal forwards transition_title__move_mask
}

.transition-title-line {
  color: rgba(255, 255, 255, .2);
  position: relative;
  z-index: 1;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-transition: color 0s cubic-bezier(.455, .03, .515, .955);
  transition: color 0s cubic-bezier(.455, .03, .515, .955)
}

.transition-title-line:before {
  color: #fff;
  content: attr(data-text);
  position: absolute;
  inset: 0;
  z-index: -10;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  -webkit-transition: -webkit-clip-path .4s cubic-bezier(.455, .03, .515, .955);
  transition: -webkit-clip-path .4s cubic-bezier(.455, .03, .515, .955);
  transition: clip-path .4s cubic-bezier(.455, .03, .515, .955);
  transition: clip-path .4s cubic-bezier(.455, .03, .515, .955), -webkit-clip-path .4s cubic-bezier(.455, .03, .515, .955);
  will-change: clip-path
}

.work .transition-title-line {
	color: rgba(35, 24, 21, .2);
}

.work .transition-title-line:before {
	color: #231815;
}

.jn .transition-title-line {
	color: rgba(11, 59, 22, .2);
}

.jn .transition-title-line:before {
	color: #0b3b16;
}


@-webkit-keyframes transition_title__move_mask {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0)
  }
  100% {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0)
  }
}

@keyframes transition_title__move_mask {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0)
  }
  100% {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0)
  }
}

