
/* ~~ エレメント / タグセレクター ~~ */
ul, ol, dl, dd { /* ブラウザー間の相違により、リストの余白とマージンをゼロにすることをお勧めします。一貫性を保つために、量をここで指定するか、リストに含まれるリスト項目 (LI、DT、DD) で指定できます。*/
	padding: 0;
	margin: 0;
	list-style: none
}
h1, h2, h3, h4, h5, h6 {
	margin: 0;
	padding: 0;
	font-weight: normal;
}
p {
	margin: 0;
	padding: 0;
	text-align: justify;
}
table{
	border-collapse: collapse;
  	border-spacing: 0;
}
img {
	margin: 0;
	padding: 0;
	vertical-align: text-bottom;
	width: 100%;
	height: auto;
}
a img {
	border: none;
}
a:link {
	color: #222222;
	text-decoration: none !important;
}
a:visited {
	color: #222222;
	text-decoration: none;
}
a:hover, a:active, a:focus {
	text-decoration: none;
}
hr {
	clear: both;
	display: none;
}
.cf:before, .cf:after {
	content: " ";
	display: table
}
.cf:after {
	clear: both
}
.cf {
*zoom:1
}

/*HTML 5 サポート - 新しい HTML 5 タグを display:block に設定します。これにより、ブラウザーでタグが適切にレンダリングされます。 */
header, section, footer, aside, article, figure {
	display: block;
}


/************************************
form
*************************************/

/*
reset
***********************/

button,
option,
select,
textarea,
input[type="button"],
input[type="submit"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="text"],
input[type="select"],
input[type="option"],
input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
    border: none;
    outline: 0;
    margin: 0;
    background: #fff;
}

/* デフォルトのradio、checkboxは非表示 */

input[type=radio],
input[type=checkbox] {
    display: none;
}

/* for firefox */

select {
    text-indent: 0.01px;
    text-overflow: '';
}

/* for ie10 ie11 ie系のプルダウンの矢印を消す ie9は非対応 */

select::-ms-expand {
    display: none;
}

label,select{
	cursor : pointer;
}


/*********   layout  ************/

body {
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, Verdana, Meiryo, sans-serif;
	margin: 0;
	padding: 0;
	line-height: 1.8;
	color: #555555;
	overflow-x:hidden;
}





/*========================================================================
//
// 共通（フォントサイズなど）
//
//========================================================================*/

/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {
	html, body {
		height: 100%;
		position: relative;
		font-size: 10px;
	}
	
	.wrapper {
		width: 1000px;
		margin: 0 auto;
		position: relative;
	}
	
	.sp_contents {
		display: none;
	}
}



/*========================================================================
//
// ヘッダー関連
//
//========================================================================*/


/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {
    
    .lazy_fadeinHead{
		opacity:0;
		transform: translate(-50px,0); 
	}
	
	.lazy_fadeinHead_active{
		transition: all 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 0;
		transform: translate(0,0); 
		opacity:1;
	}

	.home .lazy_fadeinHead_active{
		transition: all 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 0;
	}
    
 
	#ghead{
		position: fixed;
		left:0;
		top:0;
		width: 224px;
		height: 100vh;
		z-index: 10000;
		border-right: 1px solid #000;
		background: #fff;
	}

	.ghead_pad{
		border-right:none !important;
	}

	.ghead_pad:after{
		content: "";
		display: block;
		width: 1px;
		height: 110vh;
		background:#000;
		position: absolute;
		top:0;
		right:-1px;
	}
	
	#ci_wrap{
		width: 224px;
		height: 50vh;
		position:relative;
	}

	#ci_wrap:after{
		content: "";
		display: block;
		width: 18px;
		height: 1px;
		background:#000;
		position: absolute;
		bottom:0;
		left:0;
	}

	/*#ci_wrap:before{
		content: "";
		display: block;
		width: 18px;
		height: 1px;
		background:#000;
		position: absolute;
		bottom:0;
		right: calc(-100vw + 224px);
	}*/
	
	#ci {
		width: 160px;
		position: absolute;
		top: calc(50% - 50px);
		left: 50%;
		transform:translate(-50%, -50%);
	}
	
	#ci_wrap .s_name {
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 500;
		font-size: 1.4rem;
		letter-spacing:0.3rem;
		color:#000;
		text-align:center;
		position: absolute;
		top: calc(50% + 40px);
		left: 50%;
		transform:translate(-50%, -50%);
		white-space: nowrap;
	}

	#ci_wrap .s_name span{
		display:block;
		font-family: 'Roboto', sans-serif;
		font-weight:800;
		font-size:2.1rem;
		letter-spacing:0;
		line-height:100%;
		color:#a8acbe;
        white-space: nowrap;
        position:relative;
	}

	#ci_wrap .s_name span:before{
		content: "";
		display: block;

		width: 100%;
		height: 1px;
		background:#676767;
		position: absolute;
		top: -22px;
		left: 50%;
		transform:translate(-50%, 0);
	}
    
    header{
		transition: all 0.4s cubic-bezier(0.03, 0.36, 0.18, 1) 0s;
	}

	header.fix{

	}

	
	/* head_r_navi start　------------------ */

	#head_r_navi{
		position:absolute;
		left:34px;
		bottom:24px;
	}

	#head_r_navi li{
		margin:0 0 10px;
	}

	#head_r_navi a{
		display:inline-block;
		font-family: 'Roboto', sans-serif;
		font-weight:300;
		font-size: 1.4rem;
		color:#000;
		line-height:100%;
		letter-spacing:0.1rem;
		position:relative;
		padding: 6px 10px 4px 26px;
		transition: all 0.3s cubic-bezier(0, 0, 0.21, 0.99) 0.2s;
	}

	#head_r_navi a:before{
		content: "";
		display: block;
		width:0;
		height: 100%;
		background:#cbcbcb;
		position: absolute;
		top: 50%;
		left:50%;
		transform:translate(-50%, -50%);
		z-index:-1;
		transition: all 0.3s cubic-bezier(0, 0, 0, 1) 0s;
	}

	#head_r_navi a:hover{
		color:#fff;
	}

	#head_r_navi a:hover:before{
		width:100%;
	}

	#head_r_navi a span{
		display:block;
		width:8px;
		position:absolute;
		left:8px;
		top: 2px;
	}

	#head_r_navi li:first-child a span{
		width:12px;
		left: 7px;
		top: 0px;
	}
	
	/* head_r_navi end　------------------ */
	
	
	/* head_navi(グローバルナビ) start　------------------ */
	
    /* cace second start */
	#head_navi{
		position:absolute;
		left:32px;
		bottom: 110px;
	}

	#head_navi li{
		margin:0 0 12px;
	}

	#head_navi a{
		display:inline-block;
		font-family: 'Roboto', sans-serif;
		font-weight:600;
		font-size: 1.5rem;
		color:#000;
		line-height:100%;
		letter-spacing:0.1rem;
		position:relative;
		padding: 6px 10px 3px;
		transition: all 0.3s cubic-bezier(0, 0, 0.21, 0.99) 0.2s;
	}

	#head_navi a:before{
		content: "";
		display: block;
		width:0;
		height: 100%;
		background:#000;
		position: absolute;
		top: 50%;
		left:50%;
		transform:translate(-50%, -50%);
		z-index:-1;
		transition: all 0.3s cubic-bezier(0, 0, 0, 1) 0s;
	}

	#head_navi a:hover{
		color:#fff;
	}

	#head_navi a:hover:before{
		width:100%;
	}

	
	
	/* activ set */
	.home #head_navi > ul > li:nth-child(1) > a{color:#fff;}
    .home #head_navi > ul > li:nth-child(1) > a:before{width: 100%;}
    
    .work #head_navi > ul > li:nth-child(2) > a{color:#fff;}
    .work #head_navi > ul > li:nth-child(2) > a:before{width: 100%;}
    
    .work_sec #head_navi > ul > li:nth-child(2) > a{color:#fff;}
    .work_sec #head_navi > ul > li:nth-child(2) > a:before{width: 100%;}
    
    .vision #head_navi > ul > li:nth-child(3) > a{color:#fff;}
    .vision #head_navi > ul > li:nth-child(3) > a:before{width: 100%;}
    
    .message #head_navi > ul > li:nth-child(4) > a{color:#fff;}
    .message #head_navi > ul > li:nth-child(4) > a:before{width: 100%;}
    
    .activity #head_navi > ul > li:nth-child(5) > a{color:#fff;}
    .activity #head_navi > ul > li:nth-child(5) > a:before{width: 100%;}
    
    .about #head_navi > ul > li:nth-child(6) > a{color:#fff;}
    .about #head_navi > ul > li:nth-child(6) > a:before{width: 100%;}
    
    .history #head_navi > ul > li:nth-child(7) > a{color:#fff;}
    .history #head_navi > ul > li:nth-child(7) > a:before{width: 100%;}

	
}



/* ============================================================
 	fix search
==============================================================*/

/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {

	.search_wrap{
		position: absolute;
		right: 42px;
		top: calc(100vh - 50px);
		z-index:9998;
	}

	.search_wrap form{
		display:flex;
		justify-content: flex-end;
		background:rgba(255,255,255,0.8);
	}

	.search_wrap form label{
		display:block;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 500;
		font-size: 1.2rem;
		letter-spacing: 0.1rem;
		line-height:100%;
		padding: 13px 10px 0 0;
		color:#384a8f;
		/* cursor:pointer; */
	}

	.search_wrap form select{
		border-top:none;
		border-left:none;
		border-right:none;
		border-bottom:1px solid #000;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 400;
		font-size: 1.4rem;
		padding: 1px 18px 0 0;
		margin: 0 0 0px;
		background:none;
		cursor:pointer;
		position:relative;
	}

	.form-select{
		position:relative;
		display: flex;
		padding: 0 20px 0 14px;
	}

	.form-select:after {
		position: absolute;
		display: block;
		content: '';
		width: 0;
		height: 0;
		border-left: 4px solid transparent;
		border-bottom: 4px solid transparent;
		border-right: 4px solid transparent;
		border-top: 4px solid #333;
		bottom: 12px;
		right: 22px;
		margin-top: -3px;
		pointer-events: none;
	}


	.search_wrap form a{
		display:block;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight: 400;
		background:#384a8f;
		color:#fff;
		font-size: 1.4rem;
		letter-spacing:0.1rem;
		line-height:100%;
		padding: 11px 18px 12px;
		transition: all 0.5s cubic-bezier(0, 0, 0.04, 1.01) 0s;
	}

	.search_wrap form a:hover{
		background:#000000;
		color:#fff;
	}

}




/*========================================================================
//
// Page Top 固定ボタン
//
//========================================================================*/


/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {
	.pagetop{
		position: fixed;
		right: -80px;
		top: calc(100vh - 72px);
		z-index:9000;
		transition: all 0.8s cubic-bezier(0.03, 0.36, 0.18, 1) 0s;
	}
	
	.pagetop_act{
		right: -18px;
	}

	.pagetop li a{
		display:block;
		background: #000 url("/archi_design/global/img/arrow_w2.png") no-repeat 19px center;
		background-size: 16px auto;
		width: 72px;
		height: 50px;
		transform: translate(0,0);
		transition: all 0.4s cubic-bezier(0.03, 0.36, 0.18, 1) 0s;
	}

	.pagetop li a:hover{
		transform: translate(-8px,0);
		background: #798192 url(/archi_design/global/img/arrow_w2.png) no-repeat 20px center;
		background-size: 16px auto;
	}
}


/*========================================================================
//
// フッター関連
//
//========================================================================*/


/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {
	
    .info_btn_wrap{
    	margin: -4px 0 0 225px;
    }

    .info_btn_box li{
		background: #384a8f;
		position:relative;
	}

    .info_btn_box a{
		display:block;
		background: url(/archi_design/global/img/btn_arrow.svg) no-repeat;
		background-position: top 23px right 60px;
		font-family: 'Noto Sans JP', sans-serif;
		font-weight:400;
		font-size: 1.7rem;
		text-align: right;
		letter-spacing: 0.24rem;
		line-height: 140%;
		color:#fff;
		padding: 15px 132px 15px 0;
		position:relative;
		transition: all 0.4s cubic-bezier(0, 0, 0.13, 1.01) 0s;
	}

	.info_btn_box a p{
		display: inline-block;
		position:relative;
	}
	.info_btn_box a span.icon{
		display:inline-block;
		width: 16px;
		position:absolute;
		left: -27px;
		top: -6px;
	}
	.info_btn_box a span.s_txt{
		font-family: 'Noto Sans JP', sans-serif;
		display:block;
		font-size:1.4rem;
		padding:0 0 0 26px;
	}

	.info_btn_box li:before{
		content: "";
		display: block;
		width: 0;
		height: 100%;
		background:#000;
		position: absolute;
		top:0;
		left:0;
		transition: all 0.5s cubic-bezier(0, 0, 0.13, 1.01) 0s;
	}
	
	.info_btn_box li:hover:before{
		width:100%;
	}


	footer{
		background:#fff;
	}
	
	/* f_site_map start */
	#f_site_map{
	}
	

    /* f_copyright_wrap start */
    #f_copyright_wrap{
    	background: #282a2f;
    	padding: 33px 0 33px;
    	margin:0 0 0 225px;
    }

    #f_copyright_wrap .wrapper{
    	width:90%;
    	display:flex;
    	justify-content:space-between;
    }

    #f_copyright_wrap p{font-family: 'Roboto', sans-serif;font-weight:300;letter-spacing: 0.1rem;font-size: 1.2rem;color:#fff;text-align: left;padding: 0 20px 0 0;}

    #f_copyright_wrap ul{
    	display:flex;
    	margin: 0 17px 0 0;
    }

    #f_copyright_wrap a{
    	display:block;
    	color:#fff;
    	white-space: nowrap;
    	letter-spacing:0.1rem;
    	font-size:1.25rem;
    	padding: 0 13px;
    	transition: all 0.8s cubic-bezier(0.03, 0.36, 0.18, 1) 0s;
 }

	#f_copyright_wrap a:hover{
		background:#595b61;
	}

    #f_copyright_wrap li{
    	border-right:1px solid #595b61;
    }

    #f_copyright_wrap li:first-child{
    	border-left:1px solid #595b61;
    }
    
    .work #f_copyright_wrap{
    	background: #282a2f;
    	padding: 33px 0 33px;
    	margin:0 0 0 calc(225px + 236px);
    }

}



/*========================================================================
//
// GDPR Cookie
//
//========================================================================*/

/*********  PC（画面の横幅が762px以上） ************/

@media (min-width: 762px) {
	.g-gdpr {
        width: 100%;
        padding: 30px 0;
        display: flex;
        justify-content: center;
        align-items: center;
        background: rgba(0,0,0,1);
        position: fixed;
        bottom: 0;
        left: 0;
        z-index: 10000;
        backdrop-filter: blur(15px);
        transition: 1s;
        transform: translateY(100%);
        animation: anime-gdpr 1s both 2s;
    }
    
    .is-gdpr_off .g-gdpr {
        animation: anime-gdpr_off 1s both;
    }
    
    .g-gdpr__text {
        color: #cacaca;
        text-shadow: 0 0 3px #000;
        padding: 0 30px 0 0;
        font-size: 1.5rem;
    }

    .g-gdpr__text a {
        color: #85b9d0;
        text-decoration: underline !important;
        padding: 0 .15em;
        display: inline-block;
    }

    .g-gdpr__text a:hover {
        text-decoration: none;
    }

    a.g-gdpr__button {
        color: #fff;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1;
        text-align: center;
        white-space: nowrap;
        vertical-align: middle;
        padding: 1em 2em 1em 2em;
        display: block;
        background: #384a8f;
        border: 1px solid #fff;
        transition: .2s;
        cursor: pointer;
    }

    a.g-gdpr__button:hover {
        opacity: .8;
    }
}


@keyframes anime-gdpr {
	0% {
		transform: translateY(100%);
	}
	100% {
		transform: translateY(0);
	}
}

@keyframes anime-gdpr_off {
	0% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(100%);
	}
}


