/* variable */

:root {
	--header-height: 5vh;
	--left-offset: 0vh;
}

/* common */

* {
	box-sizing: border-box;
}

html, body {
	background-color: white;
	height: 100vh;
	width: 100vw;
	margin: 0px;
	padding: 0px;
	font-family: "Sitka Display", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "游ゴシック体", YuGothic, "YuGothic M", "MS PGothic", sans-serif !Important;
	text-shadow: 3px 3px 4px aliceblue;
	overflow: hidden;
	font-size: 1vw;
}

@font-face {
    font-family: "YuGothic M";
    src: local("Yu Gothic Medium"),local("Yu Gothic");
    font-weight: 500;
}

table, tbody, tr, td, div, p, h2 {
	margin: 0px;
	padding: 0px;
}

h2 {
	font-weight: normal;
}

table {
	border-collapse: collapse;
}

input, select, textarea, fieldset {
	font-size: 1em;
}

input, select {
	margin-right: 0.5em;
}

form {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	height: 100%;
}

a:link, a:visited {
	color: mediumblue;
}

a:hover, a:active {
	color: crimson;
	cursor: pointer;
}

/* header */

.header {
	position: absolute;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: center;
	width: 100vw;
	height: var(--header-height);
	border-bottom: solid 1px darkgray;
	z-index: 2;
}

.logo-container {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 10vw;
	height: 100%;
	user-select: none;
	cursor: pointer;
}

.logo {
	height: 100%;
	object-fit: contain;
}

/* menu */

.menu-button {
	display: none;
	background: url('../resources/menu.png') no-repeat;
	background-size: 60% 50%;
	background-origin: content-box;
	background-position: center bottom 50%;
	width: var(--header-height);
	height: var(--header-height);
}

.menu-container {
	display: inline-flex;
	flex-direction: row;
	justify-content: flex-start;
	flex-wrap: nowrap;
	align-items: center;
	background-color: white;
	width: 90vw;
	height: 100%;
	font-size: 1.2em;
	z-index: 5;
}

.menu-item {
	display: inline-flex;
	flex-direction: row;
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: var(--header-height);
	justify-content: center;
	align-items: center;
	width: 15vw;
	height: 100%;
	background-color: white;
	border-left: solid 1px darkgray;
	padding: 0.5em;
	cursor: pointer;
	user-select: none;
	z-index: 5;
}

.active-menu {
	background-color: #66cdaa !important;
	text-decoration: underline !important;
	text-underline-offset: 0.1em !important;
}

.active-menu:before {
}

.active-menu:after {
}

.pulldown {
	position: absolute;
	display: inline-flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: flex-start;
	top: var(--header-height);
	left: var(--left-offset);
	width: calc(100vw - var(--left-offset));
	font-size: 1.2em;
	z-index: 5;
}

.reserved {
	flex-grow: 0;
	flex-shrink: 0;
	border: none;
	opacity: 0;
}

.pulldown-ballancer {
	display: inline-flex;
	flex-direction: column;
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: 15vw;
	width: 15vw;
}

.pulldown-container {
	display: none;
	flex-direction: column;
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: var(--header-height);
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	background-color: white;
	cursor: pointer;
	user-select: none;
}

.pulldown-item {
	display: inline-flex;
	flex-direction: row;
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: var(--header-height);
	justify-content: center;
	align-items: center;
	width: 100%;
	height: var(--header-height);
	border-left: solid 1px darkgray;
	border-bottom: solid 1px darkgray;
	padding: 0.5em;
	cursor: pointer;
	user-select: none;
}

/* footer */

.footer {
	text-align: center;
	border-top: solid 1px darkgray;
	font-size: 0.6rem;
	margin-top: 10vh;
	padding: 0.5em;
}

/* contents */

.contents {
	display: none;
	position: absolute;
	left: var(--left-offset);
	top: var(--header-height);
	width: calc(100vw - var(--left-offset));
	height: calc(100vh - var(--header-height));
	z-index: 1;
}

.bgframe {
	position: absolute;
	background: url('../resources/bg.jpg');
	background-color: rgba(255, 255, 255, 0.6);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center 50%;
	left: 0;
	top: 0;
	width: calc(100vw - var(--left-offset));
	height: calc(100vh - var(--header-height));
	z-index: 1;
}

.cframe {
	display: inline-block;
	position: absolute;
	left: 0;
	top: 0;
	width: calc(100vw - var(--left-offset));
	height: calc(100vh - var(--header-height));
	z-index: 3;
	overflow-x: hidden;
	overflow-y: scroll;
}

.cbody {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	text-align: center;
	padding: 1em;
}

.eyecatch {
	display: none;
	position: absolute;
	background-color: white;
	left: 0;
	top: 0;
	width: calc(100vw - var(--left-offset));
	height: calc(100vh - var(--header-height));
	z-index: 2;
}

.eyecatch-img {
	display: none;
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 50%;
	opacity: 0.2;
	z-index: 1;
}

.pop {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	margin-top: 5vh;
	font-size: 1.7em;	
}

.duplicate {
	display: inline-flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
}

.inline-logo {
	display: inline;
	height: 3em;
	margin: 0 0.5em;
}

.inline-image {
	display: inline;
	height: 1.5em;
	margin: 0 0.1em;
	vertical-align: middle;
}

.appeal {
	display: inline-flex;
	flex-direction: column;
	width: 50%;
	margin-top: 5vh;
	font-size: 1.1em;
}

.appeal-parts {
	display: inline-block;
/*	background-color: rgba(255,255,255,0.6);*/
/*	background-color: rgba(255,248,220,0.6);*/
	background-color: rgba(255,255,240,0.6);
	border: solid 1px darkgray;
	border-radius: 2vh;
	padding: 0.5em 0.8em;
	margin: 1.1em;
}

.appeal1 {
	align-self: flex-start;
}

.appeal2 {
	align-self: flex-end;
}

.appeal3 {
	align-self: center;
}

.appeal-icon {
	display: inline;
	height: 1.5em;
	vertical-align: top;
	margin-right: 0.5em;
}

.sales {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	font-size: 1.2em;
	margin-top: 5vh;
}

.optional {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 60%;
	margin-top: 7vh;
}

.another {
	display: inline-block;
	width: 30%;
	text-align: left;
	flex-grow: 1;
	flex-shrink: 1;
}

.another-case {
	display: inline-block;
	background-color: rgba(255,255,255,0.6);
	border: solid 1px darkgray;
	border-radius: 2vh;
	white-space: nowrap;
	padding: 0.5em 0.8em;
	margin: 1.5em 3em;
}

.onepoint {
	display: inline-block;
	background-image: url('../resources/onepoint.jpg');
	background-color: rgba(255,255,255,0.4);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center 35%;
	border-radius: 7vh 0 7vh 0;
	padding: 3em;
	vertical-align: top;
}

.onepoint:before {
	content: "Make your future better";
	font-size: 2em;
}

.headline {
	display: inline;
	background-image: url('../resources/headline.jpg');
	background-color: rgba(255,255,255,0.5);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center 30%;
	border-left: solid 1vh darkgray;
	width: 60%;
	font-size: 1.5em;
	padding: 0.2em 0;
	margin-top: 5vh;
}

.details {
	display: inline-block;
	background: linear-gradient(to right bottom, rgba(255,255,255,0.6), rgba(255,255,255,0.2));
	width: 60%;
	text-align: left;
	margin-top: 3vh;
	padding: 1em 2em;
}

.view {
	display: inline-flex;
	flex-direction: row;
	justify-content: center;
	align-items: flex-start;
	background: linear-gradient(to right bottom, rgba(255,255,255,0.6), rgba(255,255,255,0.2));
	width: 60%;
	margin-top: 3vh;
	padding: 1em 2em;
}

.input {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: linear-gradient(to right bottom, rgba(255,255,255,0.6), rgba(255,255,255,0.2));
	width: 60%;
	margin-top: 3vh;
	padding: 1em 2em;
}

ul.example {
	list-style-type: circle;
}

.fees {
	width: 95%;
	margin: 1em;
}

.fees > thead > tr > td {
	background-color: rgba(240,255,240,0.6);
	border: solid 1px darkgray;
	padding: 1em 0.5em;
}

.fees > tbody > tr > td {
	background-color: rgba(255,255,255,0.6);
	border: solid 1px darkgray;
	padding: 1em 0.5em;
}

.fees > colgroup > .pagetype {
	width: 75%;
}

.fees > colgroup > .fee {
	width: 25%;
}

.philosophy {
	background-color: rgba(255,255,255,0.6);
	border-radius: 2vh;
	text-align: left;
	width: 40%;
	font-size: 1.2em;
	margin: 3vh 0;
}

.philosophy > legend {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

:root {
	--panel-height: 8vh;
	--panel-count: 3;
}

.peep-window {
	width: 100%;
	height: calc(var(--panel-height) * var(--panel-count));
	overflow-y: hidden;
}

.philosophy-frame {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: flex-start;
	align-self: center;
	width: 100%;
}

.philosophy-panel {
	display: inline-flex;
	justify-content: flex-start;
	align-items: center;
	background-color: white;
	width: 100%;
	height: var(--panel-height);
	border: solid 1px darkgray;
	font-size: 1.2em;
	padding-left: 2em;
	user-select: none;
	cursor: pointer;
	color: #323232;
}

.philosophy-concept {
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: 25%;
	text-align: left;
}

.philosophy-jp {
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: 20%;
	text-align: left;
}

.philosophy-think {
	flex-grow: 2;
	flex-shrink: 2;
	flex-basis: 55%;
	text-align: left;
}

.panel-pros {
	background: url('../resources/philosophy/pros.jpg') no-repeat;
	background-color: rgba(255,255,250,0.5);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.panel-pros:hover {
	background: url('../resources/philosophy/pros.jpg') no-repeat;
	background-color: rgba(255,255,250,0.2);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.panel-prospect {
	background: url('../resources/philosophy/prospect.jpg') no-repeat;
	background-color: rgba(255,255,250,0.5);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.panel-prospect:hover {
	background: url('../resources/philosophy/prospect.jpg') no-repeat;
	background-color: rgba(255,255,250,0.2);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.panel-prosperous {
	background: url('../resources/philosophy/prosperous.jpg') no-repeat;
	background-color: rgba(255,255,250,0.5);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.panel-prosperous:hover {
	background: url('../resources/philosophy/prosperous.jpg') no-repeat;
	background-color: rgba(255,255,250,0.2);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: center top 40%;
}

.information {
	width: 80%;
	margin: 1em;
	text-align: left;
}

.information > thead > tr {
	background-color: rgba(240,255,240,0.6);
}

.information > * > tr > td {
	border: solid 1px darkgray;
	padding: 1em 0.5em;
}

.information > colgroup > .title {
	background-color: rgba(240,255,240,0.6);
	width: 25%;
}

.information > colgroup > .data {
	background-color: rgba(255,255,255,0.6);
	width: 75%;
}

.address-block {
	display: inline-flex;
	flex-direction: row;
	justify-content: center;
	align-items: flex-start;
}

.address {
	display: inline;
	margin-left: 0.5em;
}

.business-block {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: flex-start;
}

.business {
	display: inline;
}

.business:after {
	content: '・';
}

.wrap-item {
	display: inline;
	width: 100%;
}

.terminal-item {
	display: inline;
}

.button-container {
	display: inline-flex;
	flex-direction: row;
	justify-content: space-around;
	align-items: center;
	align-self: center;
	width: 50%;
	margin-top: 2vh;
	margin-bottom: 2vh;
}

.button-base {
	border: solid 2px darkgray !important;
	border-radius: 1vh !important;
	white-space: nowrap !important;
	padding: 0.5em 2.5em !important;
	font-size: 1.2em !important;
	cursor: pointer !important;
	user-select: none !important;
}

.move-button {
	background-color: rgba(102,205,170, 0.6);
	transform: scale(0.8);
	transition: transform 0.4s;
}

.move-button:hover {
	transform: scale(1.0);
	background-color: rgba(102,205,170, 0.9);
	box-shadow: 0 0.5em 0.8em 0 rgba(0, 0, 0, 0.4);
}

.submit-button {
	background-color: rgba(100,149,237, 0.6);
	min-width: 10em;
	transform: scale(0.8);
	transition: transform 0.4s;
}

.submit-button:hover {
	transform: scale(1.0);
	background-color: rgba(100,149,237, 0.9);
	box-shadow: 0 0.5em 0.8em 0 rgba(0, 0, 0, 0.4);
}

.cancel-button {
	background-color: rgba(211,211,211, 0.6);
	min-width: 10em;
	transform: scale(0.8);
	transition: transform 0.4s;
}

.cancel-button:hover {
	transform: scale(1.0);
	background-color: rgba(211,211,211, 0.9);
	box-shadow: 0 0.5em 0.8em 0 rgba(0, 0, 0, 0.4);
}

.input-table {
	width: 100%;
	margin-top: 3vh;
	align-self: center;
}

.input-table > tbody > tr > td {
	border: solid 1px darkgray;
	padding: 0.5em 1em;
	text-align: left;
}

.input-table > colgroup > .field {
	background-color: rgba(240,255,240,0.6);
	width: 28%;
}

.input-table > colgroup > .value {
	width: 72%;
}

.input-tiny {
	width: 3vw;
	text-align: center;
}

.input-short {
	width: 10vw;
	text-align: left;
}

.input-mail {
	width: 20vw;
}

.input-mail:valid {
}

.input-mail:invalid {
	color: red;
}

.input-multiline {
	width: 30vw;
	height: 30vh;
}

.error-mark {
	color: red;
	padding: 0.5em;
}

.error-mark:before {
	content: "\0FF0A";
}
