@charset "utf-8";

/* 1. Reset style -------------------*/

/* 1.1. Layout */

html, body {
	width: 100%;
	background: #fafafa;
}
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
	margin: 0;
	padding: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
fieldset,
img {
	border: 0;
}
li {
	list-style: none;
}
caption,
th {
	text-align: left;
}
th {
	vertical-align: baseline;
}

/* 1.2. Font */

body {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	line-height: 1.231;
 *font-size: small;
 *font: x-small;
}
select,
input,
button,
textarea {
	font: 99%;
}
table {
	font-size: inherit;
	font: 100%;
}
address,
caption,
em,
strong,
th {
	font-style:normal;
	font-weight:normal;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 100%;
	font-weight: normal;
}
input,
textarea,
select {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
}
input,
textarea,
select {
*font-size: 100%;
}

/* 2. Default style -----------------*/

/* 2.1. Font */

body {
	color: #312b2b;
	font-size: 16px;
	font-family: 'TsukuOldMinPro-R', serif;
	line-height: 1.9;
	letter-spacing: -0.5px;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
br.pc {
	display: none;
}

/* 2.2. Anchor */

a {
	color: #000;
	text-decoration: none;
	outline: none;
	-webkit-transition: all 0.3s ease;
}
a:visited {
	outline: none;
}
a:hover {
	color: #ccc;
	outline: none;
}
a:focus,
a:active {
	color: #000;
	outline: none;
}
input:focus,
input:active {
	outline: none;
}

/* 2.3. Offleft */

.offleft {
	text-indent: -9999px;
	overflow: hidden;
}
.offleftHeadline { 
	width: 0;
	height: 0;
	text-indent: -9999px;
	overflow: hidden;
}

/* 2.4. Clearfix */

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.clearfix {
	min-height: 1px;
	zoom: 1;
}

.img img {
	width: 100%;
	height: auto;
}
.txt {
	text-align: justify;
	text-justify: inter-ideograph;
	-ms-text-justify: inter-ideograph;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	font-feature-settings: "vchw" 1;
}
.wd {
	font-style: normal;
	text-combine-upright: digits 2;
	-webkit-text-combine: horizontal;
	-moz-text-combine-upright: digits 2;
	-ms-text-combine-horizontal: digits 2;
}
.wd3 {
	font-style: normal;
	text-orientation: upright;
}
.txt a {
	text-underline-position: left;
	-webkit-text-decoration-skip: none;
}
.nontxt {
	-webkit-writing-mode: horizontal-tb;
	-ms-writing-mode: lr-tb;
	writing-mode: horizontal-tb;
}


/* common -----------------*/

#loading {
	width: 100%;
	height: 100vh;
	position: relative;
}
#loading p {
	display:block;
	width: 30px;
	height: 30px;
	margin-left: -15px;
	position: absolute;
	top: 45%;
	left: 50%;
	z-index: 105;
}
#loading p:before,
#loading p:after {
	content: "";
	display: block;
	width: 100%;
	height:100%;
	margin-left: -50%;
	position: absolute;
	top: 40%;
	left: 50%;
	border-radius: 110%;
}
#loading p:before {
	border: 1px solid rgba(51,51,51,.15);
}
#loading p:after {
	-webkit-animation: loading .75s linear infinite;
	animation: loading .75s linear infinite;
	border: 1px solid transparent;
	border-top-color: #666;
}
@-webkit-keyframes loading {
	from {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	to {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes loading {
	from {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	to {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
.overlay {
	display: none;
	width: 100%;
	height: 120%;
	background-color: rgba(0,0,0,0.97);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1500;
}

#wrapper {
	width: 100%;
	overflow: hidden;
}
header {padding-top: 60px;}
#header {position: relative;}
h1.id {
	width: 46%;
	margin: 0 auto;
	line-height: 0;
	position: relative;
	top: 30px;
	z-index: 1;
}
.nav_icon {
	width: 40px;
	height: 40px;
	margin-left: -25px;
	padding: 5px;
	background: #fff;
	border: 1px solid #000;
	position: fixed;
	top: -1px;
	left: 50%;
	z-index: 1500;
	cursor: pointer;
}
.nav_icon img,
.sp_close img {
	width: 100%;
	height: auto;
}
.sp_close {
	width: 40px;
	margin-left: -40px;
	padding: 20px;
	cursor: pointer;
	position: absolute;
	top: 10px;
	left: 50%;
}
#menu {
    display: none;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3000;
}
#menu a {
	color: #fff;
}
#menu nav {
	width: 76%;
	margin: 0 auto;
	padding: 100px 22% 0 0;
}
#globalnav {font-size: 22px;}
#snsnav {
	margin-top: 80px;
	padding-left: 18%;
	font-size: 16px;
}
#snsnav li {
	margin-bottom: 13px;
	line-height: 1;
}
#company_name {
	width: 100%;
	height: 320px;
	font-size: 54px;
	line-height: 1;
	position: relative;
}
#company_name .left {
	position: absolute;
	left: -29px;
}
#company_name .right {
	position: absolute;
	right: -25px;
}
#update {
	height: 190px;
	font-size: 14px;
	position: absolute;
	top: 172px;
	left: 16%;
	z-index: 100;
}
#update .ttl_area {margin-left: 10px;}
#update .ttl_area span.ttl {
	margin-bottom: 4px;
	padding-bottom: 25px;
	font-size: 15px;
	position: relative;
}
#update .ttl_area span.ttl:after {
	content: "";
	width: 1px;
	height: 20px;
	background: #000;
	position: absolute;
	bottom: 0;
	left: 10px;
}
#update a {text-decoration: underline;}
#update .outline {line-height: 1.4;}

#container {margin-top: -40px;}
.hm #container {margin-top: 0;}
.field {
	width: 88%;
	margin: 0 auto;
}
.contents {
	width: 88%;
	margin: 0 auto;
}
a.btn {
	display: block;
	padding-bottom: 75px;
	background: url(../img/common/arrow.png) no-repeat center bottom;
	background-size: 21px 60px;
	font-size: 20px;
	text-decoration: underline;
}
.page_ttl_area {position: relative;}
.page_ttl_area .page_ttl {
	height: 900px;
	font-size: 120px;
	line-height: 1;
	letter-spacing: -7px;
	position: absolute;
	top: 0;
	right: -50px;
	z-index: 10;
}
.page_ttl_area .ttl_en {
	padding-top: 60px;
	font-size: 20px;
	line-height: 1.3;
}

#hm_works .img {
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	filter: grayscale(100%);
	transition: 0.2s linear;
}
#hm_works .img:hover {
	-webkit-filter: grayscale(0%);
	-moz-filter: grayscale(0%);
	-o-filter: grayscale(0%);
	-ms-filter: grayscale(0%);
	filter: grayscale(0%);
}

footer {margin-top: 120px;}
.hm footer {margin-top: 40px;}
#ftr_contact {float: right;}
#ftr_contact .ttl {
	margin-left: 10px;
	line-height: 1;
	position: relative;
	top: -14px;
}
#ftr_contact .ttl a {
	font-size: 42px;
	text-decoration: none;
}
#ftr_contact .ex {
	font-size: 16px;
	line-height: 1.6;
}

#ig {
	width: 55%;
	padding-top: 60px;
	float: left;
}
#ig .ttl {
	font-size: 36px;
	line-height: 1;
}
#ig .link {
	margin-top: 20px;
	font-size: 11px;
}
#ig .link .icon {
	width: 14px;
	float: left;
	position: relative;
	top: 4px;
}
#ig .link li {
	margin-left: 10px;
	float: left;
}
#ig .link li a {text-decoration: underline;}
#ig .list {margin-top: 20px;}
#ig .list .iglist {
	width: 30%;
	margin: 0 5% 5% 0;
	float: left;
}
#ig .list .iglist span {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
}
#ig .list .iglist span:before {
	content: "";
	display: block;
	padding-top: 100%;
}
#ig .list .iglist a {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
}
#ig .list .iglist a img {
	width: auto;
	height: 100%;
	margin: auto;
	line-height: 0;
	position: absolute;
	left: -100%;
	right: -100%;
}
#ig .list .iglist:nth-child(3n) {
	margin-right: 0;
}
#pagetop {
	display: none;
}

#ig .list .iglist a,
#works_list li img,
#prof_img img {
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	filter: grayscale(100%);
	transition: 0.2s linear;
}
#ig .list .iglist a:hover,
#works_list li:hover img,
#prof_img .img:hover img {
	-webkit-filter: grayscale(0%);
	-moz-filter: grayscale(0%);
	-o-filter: grayscale(0%);
	-ms-filter: grayscale(0%);
	filter: grayscale(0%);
}
#ig .list .iglist img {
	width: 100%;
	height: auto;
}

.pagenav {
	width: 76%;
	margin: 60px auto 180px;
	font-size: 16px;
	text-align: center;
}
.pagenav li {
	width: 50%;
}
.pagenav li.next {
	float: right;
}
.pagenav li.prev {
	float: left;
}
.pagenav li a {
	text-decoration: underline;
	-webkit-text-decoration-skip: none;
}

#footer {
	margin-top: 60px;
	padding-bottom: 10px;
	border-bottom: 10px solid #000;
	text-align: center;
	line-height: 1;
}
#footer .to_en a {
	display: block;
	width: 88%;
	margin: 0 auto;
	padding: 15px 0;
	border-top: 1px solid #000;
	font-size: 14px;
	letter-spacing: 0.5px;
}
#copyright {
	margin-top: 15px;
	font-size: 12px;
}


/* home -----------------*/

#hm_works {position: relative;}
#hm_works .work_ttl {
	font-size: 20px;
	float: right;
}
#hm_works .work_ttl span.kanji {
	display: block;
	font-size: 160px;
	line-height: 1;
	position: relative;
	top: -7px;
}
#hm_works .work_ttl span.btm {margin-top: 100px;}
#hm_works .slider,
#hm_works .go_works {
	position: absolute;
	top: 128px;
}
#hm_works .slider {
	width: 110%;
	left: 15%;
}
#hm_works .img {
	margin-right: 1px;
	line-height: 0;
}
#hm_works .tags {display: none;}
#hm_works .outline {
	height: 210px;
}

#prof_outline {
	height: 700px;
	margin-top: 40px;
	letter-spacing: -0.5px;
	position: relative;
}
#prof_outline .prof_ttl {
	padding-left: 56%;
	font-size: 90px;
	line-height: 0.8;
	letter-spacing: -8px;
}
#prof_outline .text_area {
	height: 270px;
	margin-top: 30px;
}
#prof_outline .text_area .txt {
	letter-spacing: -1px;
	float: right;
}
#prof_outline .text_area .history {display: none;}
#prof_outline .text_area .history dt {
	height: 65px;
	font-size: 14px;
	letter-spacing: 0.5px;
	float: left;
}
#prof_outline .text_area .go_profile {
	float: left;
}
#prof_outline .img {
	position: absolute;
	top: 92px;
}
#prof_outline .img_left {
	width: 295px;
	right: 45%;
}
#prof_outline .img_right {
	width: 90px;
	right: 0;
}


/* profile -----------------*/

#profile .outline {
	width: 76%;
	margin: 75px auto 0;
	padding-right: 90px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}
#profile .outline.txt {
	width: 100%;
}
#profile .outline .img {
	width: 130%;
	margin-top: 30px;
	float: right;
}
#profile .outline .text {
	width: 72vw;
	letter-spacing: -0.8px;
	overflow-y: scroll;
	column-count: 2;
	column-rule: solid 1px #efefef;
	column-gap: 30px;
	-moz-column-count: 2;
	-webkit-column-count: 2;
	-o-column-count: 2;
	-ms-column-count: 2;
}
#profile .about {
	margin-top: 80px;
	position: relative;
}
#prof_img {
	width: 100%;
	float: right;
}
#prof_img .slider {
	width: 150%;
	left: 5%;
}
#profile .about .text_area {
	width: 410px;
	height: 300px;
	margin-top: 30px;
	letter-spacing: -0.5px;
	float: right;
}
#profile .about .text_area .name span {
	display: block;
	font-size: 32px;
	line-height: 1;
}
#profile .about .text_area .prof {margin-right: 20px;}


/* works -----------------*/

#works_top {
	margin-top: 50px;
	padding-right: 20%;
	position: relative;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}
#works_top .cat_nav {
	padding-top: 20px;
	background: url(../img/common/arrow_b.png) no-repeat 2px 0;
	background-size: 7px 9px;
	float: left;
}
#works_top .cat_nav li {
	font-size: 12px;
}
#works_top .cat_nav li a {
	text-decoration: underline;
	-webkit-text-decoration-skip: none;
}
#works_top .list_att {
	height: 240px;
	margin-top: 25px;
	float: right;
}
#works_list {
	margin-top: 60px;
	position: relative;
}
#works_list li {
	width: 48%;
	margin: 0 4% 30px 0;
	position: relative;
	float: left;
}
#works_list li:nth-child(2n) {
	margin-right: 0;
}
#works_list li .img {
	border: 1px solid #e5e5e5;
	line-height: 0;
	overflow: hidden;
}
#works_list li .link {
	margin-top: 10px;
}
#works_list .link span {
	display: block;
	width: 50%;
	font-size: 13px;
	line-height: 1.6;
	float: left;
}
#works_list .link span.ctr {
	width: 100%;
	float: none;
}
#works_list .link a {
	display: block;
	width: 100%;
	color: #666;
}
#works_list .link .visit a {
	padding-right: 10%;
}
#works_list .link .ctr a {
	padding: 0;
	text-align: center;
}
#works .field,
#blog .field {position: relative;}
#works .work_ttl,
#blog .title {
	font-size: 30px;
	letter-spacing: -1px;
	position: absolute;
	top: 210px;
	right: -15px;
}
#works .main_img {
	margin: 50px 22% 0 0;
}
#works .outline {
	margin-top: 20px;
}
#works .outline .text_area {
	width: 70vw;
	height: 450px;
	line-height: 1.7;
	letter-spacing: -0.8px;
	column-count: 2;
	column-rule: solid 1px #efefef;
	column-gap: 30px;
	-moz-column-count: 2;
	-webkit-column-count: 2;
	-o-column-count: 2;
	-ms-column-count: 2;
}
#works .outline .text_area .visit {margin-right: 20px;}
#works .outline .text_area .visit a {
	display: block;
	padding: 0 10px;
	border: 1px solid #000;
	color: #000;
	text-align: center;
}
#works .outline .part {
	margin-top: 40px;
	font-size: 14px;
	line-height: 1.8;
}
#works .outline .part a {
	text-decoration: underline;
	-webkit-text-decoration-skip: none;
}
#works .images {margin-top: 50px;}
#works .images li {float: left;}
#works .images li img {
	width: 100%;
	height: auto;
}
#works .images .pc li {
	width: 30%;
	margin-right: 5%;
}
#works .images .pc li:nth-child(3n) {margin-right: 0;}
#works .images .sp {margin-top: 40px;}
#works .images .sp li {
	width: 21%;
	margin-right: 5.2%;
}
#works .images .sp li:nth-child(4n) {margin-right: 0;}



/* blog -----------------*/

#blog .textbody {
	width: 80%;
	margin-top: 76px;
}
#blog .days .textbody {margin-top: 143px;}
#blog .blog_ttl {
	margin-bottom: 30px;
	font-size: 26px;
	text-align: center;
	line-height: 1.3;
}
#blog .blog_ttl span {
	display: block;
	margin-top: 12px;
	padding-top: 12px;
	font-size: 15px;
	letter-spacing: 0.5px;
	position: relative;
}
#blog .blog_ttl span:after {
	content: "";
	width: 32px;
	height: 1px;
	margin-left: -16px;
	background: #000;
	position: absolute;
	top: 0;
	left: 50%;
}
#blog .textbody .main_img.img {margin-bottom: 40px;}
#blog .textbody p,
#blog .textbody .column,
#blog .textbody .column2 {
	margin: 30px auto 40px;
	line-height: 2;
	text-align: justify;
	text-justify: inter-ideograph;
	-ms-text-justify: inter-ideograph;
}
#blog .textbody .imgs_area .img {
	width: 50%;
	margin: 0;
	float: left;
}
#blog .textbody img {
	width: 100%;
	height: auto;
}


#youtube {
	width: 100%;
	margin: 0 auto;
	padding-top: 56.25%;
	position: relative;
}
#youtube iframe {
	width: 100% !important;
	height: 100% !important;
	position: absolute;
	top: 0;
	left: 0;
}


/* contact -----------------*/

#contact .att {
	width: 100%;
	margin: 20px auto 0;
	padding-right: 90px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}
#contact .att p {
	width: 75vw;
	height: 210px;
	letter-spacing: -0.8px;
}
#privacy_btn {margin-right: 40px;}
#privacy_btn a {
	display: block;
	height: 214px;
	padding: 8px 5px;
	border: 1px solid #000;
	font-size: 15px;
	text-align: center;
}
#privacy_btn a:hover {
	background: #000;
	color: #fff;
	letter-spacing: 1px;
}

#form {
	width: 76%;
	margin-top: 87px;
}
#form dt,
#form dd {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}
#form dt {
	margin-bottom: 5px;
	font-weight: bold;
}
#form dt span {
	margin-left: 15px;
	color: #999;
	font-size: 11px;
}
#form dd {
	margin-bottom: 20px;
}
#form dd input {
	width: 100%;
	height: 39px;
	border: 1px solid #ccc;
	background: transparent;
	font-size: 14px;
}
#form dd textarea {
	width: 100%;
	border: 1px solid #ccc;
	background: transparent;
}
#sendbtn {
	margin-top: 30px;
}
#sendbtn input {
	width: 100%;
	padding: 20px 0;
	border: 1px solid #000;
	background: #000;
	color: #fff;
	cursor: pointer;
	-webkit-transition: all 0.3s ease;
}
#sendbtn input:hover {
	background: transparent;
	color: #000;
}

#privacy_top .page_ttl {
	font-size: 30px;
}
#privacy,
#thanks {
	width: 74%;
	margin: 100px 16% 0 0;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}
.badge {
	margin-top: 60px;
	font-size: 14px;
}
.badge a {text-decoration: underline;}
.grecaptcha-badge { visibility: hidden; }



/* Slider */
.slick-slider
{
    position: relative;
    display: block;
    -moz-box-sizing: border-box;
         box-sizing: border-box;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}




@charset 'UTF-8';
/* Slider */
.slick-loading .slick-list
{
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
    background-position: 0 -38px;
    outline: none;
    border: none;
}
.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
    opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
    opacity: .25;
}

.slick-prev:before,
.slick-next:before
{
    font-family: 'slick';
    font-size: 20px;
    line-height: 1;

    opacity: .75;
    color: white;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}