@charset "utf-8";

/* ===================================================================

2023
 
=================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700&display=swap');

/*----------------------------------------------------
	全体
----------------------------------------------------*/

html, body {
	padding: 0;
	margin: 0;
	height: 100%;
}
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-size: 15px;
	line-height: 2.0em;
	color: #777777;
	position: relative;
	-webkit-text-size-adjust: none;
	/* text-align: justify; */
}

/* clerfix */
.clearfix { /zoom : 1; }
.clearfix:after{ content : ''; display : block; clear : both; }

ul, li { list-style:none; }

body *{ text-shadow: none;}
h1, h2, h3, h4, h5, h6 {
	line-height: 1.5em;
	font-weight: 300;
	margin: 10px 0;
	font-feature-settings : "palt" 1;
}
h3, h4, h5, h6 {
	margin: 0 0 5px 0;
}

img { max-width:100%;}

.tC { text-align: center;}
.tL { text-align: left;}
.tR { text-align: right;}

.f_left { float:left;}
.f_right { float:right;}

*{
	-webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}

/*----------------------------------------------------
	テキスト
----------------------------------------------------*/

h1 {
	padding: 0;
	margin: 0;
}
h2{
	font-size: 32px;
	margin-bottom: 2em;
	letter-spacing: 10px; 
}

h3{
	font-size: 21px;
	letter-spacing: 2.5px;
	margin-bottom: 0.5em;
}

h4{
	font-size: 24px;
}
h5{
	font-size: 17px;
}
p{ margin: 0 0 10px 0;}

a, a:link, a:active, a:hover{
	color: inherit;
	text-decoration: underline;
	-webkit-tap-highlight-color: rgba(255,255,255,0.6);
}

a, a:link{
	color: #0073FF;
    text-decoration: none;
}
a:hover{
	color: #444444;
	text-decoration: none;
}

.font-e {
    font-weight: 400;
    line-height: 1.7em;
    letter-spacing: 0.5px;
}
.font-i {
    font-weight: 300;
    font-style: italic;
    font-weight: lighter;
    letter-spacing: 1.5px;
}
.text12 { font-size: 12px;}
.text_s-pink { font-size: 90%; color: #d65e6a;}

.icon-icon_link { padding-left: 3px;}

/* 英語表記用 */
i {
	font-style: normal;
	color: #000;
	display: none;/*  一時非表示用 */
}
.link-font {
	letter-spacing: 3px;
}
.link-font a{
	text-decoration: none;
}

/*----------------------------------------------------
	共通
----------------------------------------------------*/
#wrapper{
	width: 100%;
	margin:0;
}
#container {
	width: 960px;
	padding: 0 20px;
	margin:0 auto;
	padding-top: 80px;
}
article {}
section {
	padding: 0 0 0.5em 0;
	margin-bottom: 1.5em;
	/zoom : 1;
}
section:after{ content : ''; display : block; clear : both; }
.contents{
	margin:0 auto;
	padding: 0 0 1.5em 0;
}

.sp-head,.sp-text,.sp-img {
    display: none !important ;
}
.pc-head,.pc-text,.pc-img  {
    display: inherit !important;
}

.sp-title {
    display: none !important ;
}
.pc-title  {
    display: flex !important;
	display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
	display: flex;
}

.line span {
	padding: 3px;
	border-bottom: 3px solid #000;
}
.line a {
	text-decoration: none;
}

/*	カラム
----------------------------------------------------*/

.row { /zoom : 1; }
.row:after{ content : ''; display : block; clear : both; }
.col-3,.col-4,.col-5,.col-6 { float:left;}
.col-2{ width: 50%;}
.col-2a{ width: 30%;}
.col-2b{ width: 70%;}
.col-2c{ width: 26%;}
.col-2d{ width: 68%;}
.col-3{ width: 33.3333333%;}
.col-4{ width: 25%;}
.col-5{ width: 20%;}
.col-6{ width: 16.6666667%;}


/*	余白
----------------------------------------------------*/

.m10 { margin: 1em;}
.m05b { margin-bottom: 0.5em;}
.m10b { margin-bottom: 1em;}
.m15b { margin-bottom: 1.5em;}
.m20b { margin-bottom: 2em;}
.p10 { padding: 0 1em;}
.p15t { padding-top: 1.5em;}


/*	リスト
----------------------------------------------------*/

ul.def_type, ol.def_type{
	margin-left: 20px;
	margin-bottom: 20px;
}
ul.def_type li {
	margin: 5px 0;
	padding-left: 5px;
	list-style-type: disc;
	border:none;
}
ol.def_type li {
	margin: 5px 0;
	padding-left: 5px;
	list-style-type: decimal;
	border:none;
}

/*	ボタン
----------------------------------------------------*/

.btn_waku {
	width: 280px;
	margin: 1.5em auto;
	display: block;
	text-align: center;
}
.btn_waku a {
	display: block;
	padding: 0.5em 1em;
	text-decoration:none;
	color:#FFF;
	background: #d68992;
}
.btn_waku a:hover {
	text-decoration:none;
	background: #d65e6a;
}

.btn_waku.tR {
	margin: 1.5em 0 1.5em auto;
}

/*	table
----------------------------------------------------*/
.table_block table {
	border-collapse: collapse;
	width: 100%;
}
.table_block table th,
.table_block table td {
	padding: 15px 10px;
}
.table_block table th {
	text-align: center;
	vertical-align: top;
	width: 15%;
	font-weight: normal;
	line-height: 1.5em;
}
.table_block table td {
	font-size: 90%;
	color: #333;
}
.table_block table td p {
	line-height: 1.7em;
}

/*----------------------------------------------------
	iframe用
----------------------------------------------------*/
.iframe-content {
	position: relative;
	width: 100%;
	padding: 56.25% 0 0 0;
}
.iframe-content iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


/*----------------------------------------------------
	header
----------------------------------------------------*/
header {
	padding: 0 0.5em;
	height: auto;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
}
header.page .header {
	max-width: 1300px;
	/* background:rgba(255,255,255,0.7); */
}
.header {
	width: 100%;
	margin: 0 auto;
	position: relative;
	padding: 1.5em 0.8em;
	padding-top:0;
	/zoom : 1;
}
.header:after{ content : ''; display : block; clear : both; }
.header h1{
	text-align: center;
}
.header .menu{
	position: fixed;
	height: 40px;
	min-width:40px;
	padding: 0;
	top: 20px;
	right: 10px;
}
.header .menu a{
	width: auto;
	height: 40px;
	position: absolute;
	top: 5px;
	left: 0;
	text-decoration: none;
	font-size: 20px;
	line-height: 1;
	text-align: center;
	color:#444444;
}
.icon-icon_close{
	float: right;
	position: relative;
	height: 40px;
	width: 20px;
	padding: 0;
    padding-top: 10px;
}
.icon-icon_close a{
	display: block;
	width: 20px;
	height: 40px;
	position: absolute;
	top: 15px;
	left: 0;
	text-decoration: none;
	font-size: 20px;
	line-height: 1;
	text-align: center;
	color:#444444;
}
.slide_nav .close_btn a { color:#444444;}
.header .menu a:hover,
.slide_nav .close_btn a:hover{
	color:#777;
}
.header .menu span.icon-icon_menu2,
.icon-icon_close{
	font-size: 24px;
    font-weight: 100;
}

.slide_nav {
	position: fixed;
	margin: 0;
	padding: 1em;
	width:100%;
	height:100%;
	overflow: scroll;
	top: 0;
	left: 0;
	z-index:990;
	-webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}
#nav_typeA  {
	background:rgba(255,255,255,0.7);
}
.slide_nav nav {
	clear: both;
	display: -webkit-flex;
	display: flex;
	-webkit-align-items: center; /* 縦方向中央揃え（Safari用） */
	align-items: center; /* 縦方向中央揃え */
	-webkit-justify-content: center; /* 横方向中央揃え（Safari用） */
	justify-content: center; /* 横方向中央揃え */
	font-size: 120%;
	letter-spacing: 1.2px;
	flex-flow: column nowrap;
}
.slide_nav nav ul {
	width: 100%;
    margin: 0 auto;
    padding: 80px 1.5em;
}
.slide_nav nav li {
    font-weight: 500;
	margin-bottom: 1.5em;
	text-align: right;
}
.slide_nav nav li a{
	color: #444444;
	text-decoration: none;
}
.slide_nav nav li a:hover {
	color: #777;
	text-decoration: none;
}

.head-nav {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
	height: 150px;
	position: relative;
	display: -webkit-flex;
	display: flex;
	-webkit-align-items: center;
	align-items: center;
	-webkit-justify-content: center;
	justify-content: center;
	z-index:2;
}
.head-nav .logo {
	text-align: left;
}
.head-nav .nav {
	display: flex;
	display: -webkit-flex;
	-webkit-justify-content: flex-end;
	justify-content: flex-end;
    font-weight: 500;
    letter-spacing: 1.2px;
}
.head-nav .nav a {
	color: #444;
}
.head-nav .nav a:hover {
	color: #777;
}

/*----------------------------------------------------
	footer
----------------------------------------------------*/
footer {
	width: 100%;
    max-width: 1200px;
    padding: 0 20px;
	margin: 0 auto;
	text-align: right;
    position: relative;
    z-index: 99;
}

footer .copyright{
	font-size: 80%;
	line-height: 1.7em;
	padding: 1em 2em;
    font-weight: 500;
    letter-spacing: 1.5px;
    color: #444;
}
.nav ul {
	display: flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap: wrap;
	-webkit-justify-content: flex-end;
	justify-content: flex-end;
	padding: 1em 0;
}
.nav li{
	padding: 5px 0;
	margin: 0 15px;
	font-size: 80%;
	letter-spacing: 1.2px;
	text-align: center;
}
.nav li a:link {
	color: #444;
	text-decoration: none;
}
.nav li a:hover {
	color: #777;
}

/* page-top */

#page-top {
	position: relative;
	text-align: center;
	font-size: 200%;
	padding: 10px 0;
}
#page-top a {
	margin: 0 auto;
}
#page-top a {
	text-decoration: none;
	color: #777;
	padding: 5px;
	text-align: center;
}
#page-top a:hover {
    color: #444;
	text-decoration: none;
}

/*----------------------------------------------------
	トップページ
----------------------------------------------------*/
h1.Home-h1 {
	text-align: left;
}
#home-img{
	padding: 0;
}
.home-img_inner {
    width: 100%;
    max-width: 1200px;
	height: calc(100vh - 60px);
    padding: 0;
	margin: 0 auto;
	text-align: center;
	position: relative;
	display: flex;
	align-items: flex-start; /* 縦方向中央揃え */
	justify-content: center; /* 横方向中央揃え */
}
.home-img_inner footer {
	background: none;
	height: auto;
}


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

.home-img_inner img { width: 100%;}

/*	トップページ背景スライド
----------------------------------------------------*/
.cb-slideshow,
.cb-slideshow:after {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    z-index: 0;
}
.cb-slideshow li span { 
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
    color: transparent;
    background-size: cover;
    background-position: 50% 50%;
    background-repeat: none;
    opacity: 0;
    z-index: 0;
	-webkit-backface-visibility: hidden;
    -webkit-animation: imageAnimation 48s linear infinite 0s;
    -moz-animation: imageAnimation 48s linear infinite 0s;
    -o-animation: imageAnimation 48s linear infinite 0s;
    -ms-animation: imageAnimation 48s linear infinite 0s;
    animation: imageAnimation 48s linear infinite 0s; 
}
.cb-slideshow li div { 
    z-index: 1000;
    position: absolute;
    bottom: 30px;
    left: 0px;
    width: 100%;
    text-align: center;
    opacity: 0;
    color: #fff;
    -webkit-animation: titleAnimation 48s linear infinite 0s;
    -moz-animation: titleAnimation 48s linear infinite 0s;
    -o-animation: titleAnimation 48s linear infinite 0s;
    -ms-animation: titleAnimation 48s linear infinite 0s;
    animation: titleAnimation 48s linear infinite 0s; 
}
.cb-slideshow li:nth-child(1) span { 
    background-image: url(../../img/home-img01.jpg) 
}
.cb-slideshow li:nth-child(2) span { 
    background-image: url(../../img/home-img02.jpg);
    -webkit-animation-delay: 6s;
    -moz-animation-delay: 6s;
    -o-animation-delay: 6s;
    -ms-animation-delay: 6s;
    animation-delay: 6s; 
}
.cb-slideshow li:nth-child(3) span { 
    background-image: url(../../img/home-img03.jpg);
    -webkit-animation-delay: 12s;
    -moz-animation-delay: 12s;
    -o-animation-delay: 12s;
    -ms-animation-delay: 12s;
    animation-delay: 12s; 
}
.cb-slideshow li:nth-child(4) span { 
    background-image: url(../../img/home-img04.jpg);
    -webkit-animation-delay: 18s;
    -moz-animation-delay: 18s;
    -o-animation-delay: 18s;
    -ms-animation-delay: 18s;
    animation-delay: 18s; 
}
.cb-slideshow li:nth-child(5) span { 
    background-image: url(../../img/home-img01.jpg);
    -webkit-animation-delay: 24s;
    -moz-animation-delay: 24s;
    -o-animation-delay: 24s;
    -ms-animation-delay: 24s;
    animation-delay: 24s; 
}
.cb-slideshow li:nth-child(6) span { 
    background-image: url(../../img/home-img02.jpg);
    -webkit-animation-delay: 30s;
    -moz-animation-delay: 30s;
    -o-animation-delay: 30s;
    -ms-animation-delay: 30s;
    animation-delay: 30s; 
}
.cb-slideshow li:nth-child(7) span { 
    background-image: url(../../img/home-img03.jpg);
    -webkit-animation-delay: 36s;
    -moz-animation-delay: 36s;
    -o-animation-delay: 36s;
    -ms-animation-delay: 36s;
    animation-delay: 36s; 
}
.cb-slideshow li:nth-child(8) span { 
    background-image: url(../../img/home-img04.jpg);
    -webkit-animation-delay: 42s;
    -moz-animation-delay: 42s;
    -o-animation-delay: 42s;
    -ms-animation-delay: 42s;
    animation-delay: 42s; 
}
.cb-slideshow li:nth-child(2) div { 
    -webkit-animation-delay: 6s;
    -moz-animation-delay: 6s;
    -o-animation-delay: 6s;
    -ms-animation-delay: 6s;
    animation-delay: 6s; 
}
.cb-slideshow li:nth-child(3) div { 
    -webkit-animation-delay: 12s;
    -moz-animation-delay: 12s;
    -o-animation-delay: 12s;
    -ms-animation-delay: 12s;
    animation-delay: 12s; 
}
.cb-slideshow li:nth-child(4) div { 
    -webkit-animation-delay: 18s;
    -moz-animation-delay: 18s;
    -o-animation-delay: 18s;
    -ms-animation-delay: 18s;
    animation-delay: 18s; 
}
.cb-slideshow li:nth-child(5) div { 
    -webkit-animation-delay: 24s;
    -moz-animation-delay: 24s;
    -o-animation-delay: 24s;
    -ms-animation-delay: 24s;
    animation-delay: 24s; 
}
.cb-slideshow li:nth-child(6) div { 
    -webkit-animation-delay: 30s;
    -moz-animation-delay: 30s;
    -o-animation-delay: 30s;
    -ms-animation-delay: 30s;
    animation-delay: 30s; 
}
.cb-slideshow li:nth-child(7) div { 
    -webkit-animation-delay: 36s;
    -moz-animation-delay: 36s;
    -o-animation-delay: 36s;
    -ms-animation-delay: 36s;
    animation-delay: 36s; 
}
.cb-slideshow li:nth-child(8) div { 
    -webkit-animation-delay: 42s;
    -moz-animation-delay: 42s;
    -o-animation-delay: 42s;
    -ms-animation-delay: 42s;
    animation-delay: 42s; 
}
/* Animation for the slideshow images */
@-webkit-keyframes imageAnimation { 
    0% { opacity: 0;
    -webkit-animation-timing-function: ease-in; }
    8% { opacity: 1;
         -webkit-animation-timing-function: ease-out; }
    17% { opacity: 1 }
    25% { opacity: 0 }
    100% { opacity: 0 }
}
@-moz-keyframes imageAnimation { 
    0% { opacity: 0;
    -moz-animation-timing-function: ease-in; }
    8% { opacity: 1;
         -moz-animation-timing-function: ease-out; }
    17% { opacity: 1 }
    25% { opacity: 0 }
    100% { opacity: 0 }
}
@-o-keyframes imageAnimation { 
    0% { opacity: 0;
    -o-animation-timing-function: ease-in; }
    8% { opacity: 1;
         -o-animation-timing-function: ease-out; }
    17% { opacity: 1 }
    25% { opacity: 0 }
    100% { opacity: 0 }
}
@-ms-keyframes imageAnimation { 
    0% { opacity: 0;
    -ms-animation-timing-function: ease-in; }
    8% { opacity: 1;
         -ms-animation-timing-function: ease-out; }
    17% { opacity: 1 }
    25% { opacity: 0 }
    100% { opacity: 0 }
}
@keyframes imageAnimation { 
    0% { opacity: 0;
    animation-timing-function: ease-in; }
    8% { opacity: 1;
         animation-timing-function: ease-out; }
    17% { opacity: 1 }
    25% { opacity: 0 }
    100% { opacity: 0 }
}
.no-cssanimations .cb-slideshow li span{
    opacity: 1;
}

.img-gray {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    filter: grayscale(100%);
}

/*----------------------------------------------------
	about
----------------------------------------------------*/
.biography {}
.biography p {
    margin-bottom: 0;
}
p.about-year {
    font-size: 200%;
    color: #AAAAAA;
    margin: 0.5em 0;
}

/*----------------------------------------------------
	project
----------------------------------------------------*/
.row-p {
    width: 100%;
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
}

.row-p .col-2 {
    width: calc((100% - 2%) / 2);
}
.row-p .col-2 img{
    width: 100%;
}

.img-line img{
    border: 1px solid #777;
}

/*----------------------------------------------------
	contact
----------------------------------------------------*/
hr {
    border: none;
    border-bottom: 1px solid #777;
    height: 1px;
}
p.m0 { margin: 0;}
p.stock-list {
    font-size: 200%;
    letter-spacing: 1.5px;
    color: #AAAAAA;
    margin: 0.5em 0;
}

/*----------------------------------------------------
	Gallery
----------------------------------------------------*/
.works-img {}
.works-img img{ margin-bottom: 2em;}

.spec {
	border-top: 3px solid #000;
	padding: 1em 0;
	margin-top: 2em;
}
.grid {
    margin: 1.5em 0;
    padding: 0;
}
.grid-item{
    width: calc(100% / 3);
	padding: 0;
    margin: 0;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
	overflow: hidden;
}
.grid-item a {
	overflow: hidden;
	margin: 0.5em;
	display: block;
}
.grid-item img {
	width: 100%;
}
.grid-item img {
    -moz-transition: -moz-transform 0.2s linear;
    -webkit-transition: -webkit-transform 0.2s linear;
    -o-transition: -o-transform 0.2s linear;
    -ms-transition: -ms-transform 0.2s linear;
    transition: transform 0.2s linear;
}
.grid-item img:hover {
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -o-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}

/*----------------------------------------------------
	news
----------------------------------------------------*/

.news-list{
    margin: 0;
    border-top: 1px solid #777;
}
.news-list li {
    margin: 0;
    padding: 2em 0;
    border-bottom: 1px solid #777;
}
.news-list li p{
    margin: 0;
}
.news-list li a{
    color: #444;
}
.news-list li a:hover{
    color: #777;
}




