html,body,#contents { margin: 0 auto; padding: 0;  height: 100%; width: 100%; }
h1,h2,h3,h4,h5 {margin: 0; padding: 0;}
#contents { position: relative; }


.bg-group { width: 100%; min-height: 100%; }
/*.share {z-index: 10;}*/

section {
	margin: auto;
	position: relative;

	box-sizing: border-box;
	padding-top: 100px;
	padding-bottom: 100px;

	min-height: 100vh;
}

footer {
	position: relative;
	padding-bottom: 50px;
}

@media screen and (min-width:1080px) {
	.sp { display: none !important; }

	section {
		display: table;
		width: 80%;
		max-width: 1100px;
		height: 100vh;
	}

	#contact .double-column {
		display: table;
		width: 100%;
	}

	#contact .double-column>div {
		vertical-align: top;
		padding: 3em 0;
		width: 50%;
	}

	#contact .double-column>div:first-child {
		border-right: solid 1px #AAA;
	}	

/*	footer {
		width: 80%;
		max-width: 1080px;
		margin: auto;
	}*/

	.double-column>div,
	section>div {
		display: table-cell;
		vertical-align: middle;

		box-sizing: border-box;
		padding-left: 10px;
		padding-right: 10px;
	}

	.double-column>div {
		width: 50%;
	}
}

@media screen and (max-width:1079px) {
	p {
	    margin-left: auto !important;
	    margin-right: auto !important;
	    max-width: 27em;
		text-align: left;
	}
	p.noindent {
		text-indent: 0;
		text-align: center;
	}
	.pc {
		display: none !important;
	}

	footer, section { width: 90%; margin: auto; }
	section#technology h2 {
		position: relative;
		left: -5%;
		width: 110%;
	}

	img { max-width: 90%; }

	#top { 
		display: table; 
		height: 100vh;
	}
	#top>div {
		display: table-cell;
		vertical-align: middle;
	}
	#top img {
		width: 95%;
		max-width: 628px;
	}

	#concept {
		padding-bottom: 0;
	}
	
	#concept .text{
		position: relative;
		top: -120px;
	}

	footer {
		padding-bottom: 150px;
	}
}

@media screen and (max-width:450px) {
	p {
		text-align: left;
	}
	p.noindent {
		text-indent: 0;
		text-align: center;
	}
	br { display: none; }
}



#fix-curious {
	position: fixed;
	z-index: 20;
	/*display: inline-block;*/
}

#fix-curious div {
	box-sizing: border-box;
	/*padding: 10px 7px;*/
	width: 100%;

	padding: 10px 7px;
}

#share1, #share2 { 
	position: absolute; 
	z-index: 19;
}

@media screen and (max-width: 720px) {
	#share1, #share2 { right: 10px; width: 94px; }
	#share1 { top: 36px; }
	#share2 { bottom: 50px; }

	.lang-switch { font-size: 0.75em; }
	#lang-switch-top { top: 68px; left: 30px; }
	#lang-switch-bottom { bottom: 65px; left: 30px; }
}

@media screen and (max-width: 820px) and (min-width: 721px) {
	#share1, #share2 { right: 10px; width: 120px; }
	#share1 { top: 36px; }
	#share2 { bottom: 50px; }

	.lang-switch { font-size: 1.0em; }
	#lang-switch-top { top: 55px; left: 40px; }
	#lang-switch-bottom { bottom: 65px; left: 40px; }
}

@media screen and (max-width: 1079px) and (min-width: 821px) {
	#share1, #share2 { right: 10px; width: 160px; }
	#share1 { top: 43px; }
	#share2 { bottom: 50px; }

	.lang-switch { font-size: 1.1em; }
	#lang-switch-top { top: 55px; left: 40px; }
	#lang-switch-bottom { bottom: 65px; left: 40px; }
}

@media screen and (min-width: 1080px) {
	#share1, #share2 { right: 70px; width: 200px; }
	#share1 { top: 46.1px; }
	#share2 { bottom: 40px; }

	.lang-switch { font-size: 1.1em; }
	#lang-switch-top { top: 50px; left: 85px; }
	#lang-switch-bottom { bottom: 60px; left: 85px; }
}

.share .img, #top .share .img {
	width: 45%;
	height: auto;
	padding-bottom: 34%;
    display: inline-block;
    margin: 0;
}

.lang-switch { display: inline-block; position: absolute; z-index: 20; font-weight: bold; }
.lang-switch span { border: solid 1px #73C0FF; color: #73C0FF }
.lang-switch span:first-child { border-radius: 2em 0 0 2em; padding: 0.3em 0.9em 0.3em 1.2em; }
.lang-switch span:last-child  { border-radius: 0 2em 2em 0; padding: 0.3em 1.2em 0.3em 0.9em; border-left: none; }
.lang-switch span.active   { background-color: rgba(115, 192, 255, 0.5); }
.lang-switch span.inactive { cursor: pointer; }
.lang-switch span.inactive:hover { background-color: rgba(155, 192, 255, 0.6); }