/* variable */

:root {
	--header-height: 10vh;
	--menu-height: 5vh;
	--left-offset: 20vw;
}

/* common */

* {
	box-sizing: border-box;
}

html, body {
	background-color: white;
	height: 100vh;
	width: 100vw;
	margin: 0px;
	padding: 0px;
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "游ゴシック体", YuGothic, "YuGothic M", "MS PGothic", sans-serif !Important;
	text-shadow: 3px 3px 4px aliceblue;
	overflow-x: 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, h1, h2 {
	margin: 0px;
	padding: 0px;
}

h1, 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: center;
	width: 100%;
	height: 100%;
	margin-top: 2vh;
}

hr {
	width: 100%;
}

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

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

/* header */

.header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: url('../resources/headerbg.png') no-repeat;
	background-color: rgba(255,255,255,0.4);
	background-blend-mode: lighten;
	background-size: cover;
	background-position: bottom 60% left;
	border-bottom: solid 1px darkgray;
	width: 100vw;
	height: var(--header-height);
	text-align: center;
	z-index: 2;
}

.logo-container {
	position: absolute;
	align-self: flex-start;
	display: inline-flex;
	justify-content: flex-start;
	align-items: center;
	height: 3.5em;
	padding: 0 1em;
	user-select: none;
	cursor: pointer;
}

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

.header-dial-frame {
	align-self: flex-end;
	height: 1.2em;
	width: auto;
	font-size: 1.4em;
	font-weight: bold;
	margin-right: 1em;
}

.header-dial-logo {
	height: 100%;
	width: auto;
	vertical-align: middle;
}

.header-phrase-ballancer {
	display: inline-flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	margin-top: -1em;
}

.header-phrase {
	display: inline-block;
	font-size: 1.8em;
	font-weight: bold;
	font-style: italic;
	vertical-align: middle;
}

/* menu */

.menu-ballancer {
	position: absolute;
	display: inline-block;
	width: 100vw;
	height: var(--menu-height);
	border-bottom: solid 1px darkgray;
	z-index: 2;
}

.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(--menu-height);
	height: var(--menu-height);
}

.menu-container {
	display: inline-flex;
	flex-direction: row;
	justify-content: flex-start;
	flex-wrap: nowrap;
	align-items: center;
	width: 100vw;
	height: var(--menu-height);
	font-size: 1.2em;
	z-index: 2;
}

.menu-item {
	display: inline-flex;
	flex-direction: row;
	flex-grow: 1;
	flex-shrink: 1;
	flex-basis: var(--menu-height);
	justify-content: center;
	align-items: center;
	width: 15vw;
	height: 100%;
	border-left: solid 1px darkgray;
	border-bottom: solid 1px darkgray;
	text-align: center;
	cursor: pointer;
	user-select: none;
	z-index: 2;
}

.active-menu {
	background: radial-gradient(ellipse farthest-corner at 80% 80%, floralwhite, khaki 90%) !important;
	text-decoration: underline !important;
	text-underline-offset: 0.2em !important;
}

.active-menu:before {
	content: '';
	display: inline-block;
	width: 1em;
	height: 1em;
	background-image: url('../resources/arrow_right.png');
	background-repeat: no-repeat;
	background-size: contain;
	vertical-align: middle;
	margin-left: -1em;
}

.active-menu:after {
}

/* background */

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

/* left panel */
.left-panel {
	position: absolute;
	left: 0;
	top: calc(var(--header-height) + var(--menu-height));
	width: var(--left-offset);
	height: calc(100vh - var(--header-height) - var(--menu-height));
	z-index: 3;
}

.left-panel-ballancer {
	width: 100%;
	height: 2.6em;
	margin: 2em 0;
}

.left-course {
	position: absolute;
	background-color: white;
	border:solid 1px darkgray; 
	border-radius: 0 1em 1em 0;
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	width: 100%;
	height: 2.2em;
	font-size: 1.4em;
	padding: 0.3em 1em;
	cursor: pointer;
	overflow-y: hidden;
}

.left-course > ol > li {
	font-size: 0.9em;
}

.left-course > .another-case {
	font-size: 0.7em;
	text-align: left;
	margin: 1em 0;
}

.left-course > .fee {
	font-size: 0.9em;
	user-select: none;
}

/* footer */

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

/* contents */

.contents {
	position: absolute;
	left: var(--left-offset);
	top: calc(var(--header-height) + var(--menu-height));
	width: calc(100vw - var(--left-offset));
	height: calc(100vh - var(--header-height) - var(--menu-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) - var(--menu-height));
	z-index: 3;
	overflow-x: hidden;
	overflow-y: scroll;
}

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

.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;
	padding: 1em 1.5em;
	margin-bottom: 5vh;
}

.view {
	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: center;
	padding: 1em 1.5em;
	margin-bottom: 5vh;
}

.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: 70%;
	padding: 1em 2em;
	margin-bottom: 5vh;
}

.top-logo-frame {
	display: inline-block;
	width: 40%;
	margin-top: 2vh;
	margin-bottom: 3vh;
}

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

.targets {
	font-style: italic;
}

.case-frame {
	display: inline-flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	background: radial-gradient(ellipse farthest-corner at 80% 80%, floralwhite, khaki 90%);
	border: solid 2px darkgray;
	border-radius: 0.5em;
	text-align: left;
	margin: 2vh 0 3vh 0;
}

.case-list {
	margin: 1em;
}

.caselist > li {
	margin: 1em 1em;
}

.solutions {
	margin-bottom: 3vh;
	font-size: 1.3em;
	font-weight: bold;
}

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

.example-description {
	display: inline-block;
	vertical-align: top;
	padding: 1em;
	font-size: 1em;
	margin-bottom: 3vh;
}

.exlist {
	display: inline-block;
	background-color: snow;
	border: solid 2px wheat;
}

.exlist > colgroup > col.categories {
	background-color: lemonchiffon;
}

.exlist > colgroup > col.targets {
	background-color: floralwhite;
}

.exlist > tbody > tr > td {
	border: solid 1px wheat;
	padding: 0.5em;
}

.support-time {
	display: inline-block;
	background: radial-gradient(ellipse farthest-corner at 80% 80%, paleturquoise, lightskyblue 90%);
	border: solid 2px darkgray;
	border-radius: 0.5em;
	text-align: center;
	padding: 1em;
	margin-bottom: 3vh;
}

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

.support-map {
	width: auto;
	height: 40vh;
	cursor: pointer;
}

.support-area {
	text-align: left;
	padding: 1.5em;
}

.overlay-frame {
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100vw;
	height: 100vh;
	z-index: 100;
}

.background-cover {
	top: 0px;
	left: 0px;
	width: 100vw;
	height: 100vh;
	background-color: darkgray;
	opacity: 0.7;
}

.large-map {
	position: absolute;
	top: 2vh;
	left: calc(100vw / 3);
	width: auto;
	height: 95vh;
}

.contact-frame {
	display: inline-flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}

.dial-frame {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	background-color: snow;
	border:solid 2px darkgray;
	border-radius: 0.5em;
}

.dial-panel {
	display: inline-flex;
	padding: 0.5em 1em;
	font-size: 2em;
	color: green;
}

.dial-logo {
	height: 1.4em;
	width: auto;
}

.dial-caution {
	font-size: 0.7em;
	padding: 0 1em;
	margin-bottom: 0.5em;
}

.form-frame {
	display: inline-flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: baseline;
	width: 30vw;
	height: 20vh;
	align-items: center;
}

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

.left-option {
	font-size: 0.7em;
}

.button-base {
	min-width: 10em !important;
	max-width: 16em !important;
	max-height: 2.6em !important;
	border: solid 2px darkgray !important;
	border-radius: 1vh !important;
	box-shadow: 0 0.5em 0.8em 0 rgba(0, 0, 0, 0.4) !important;
	white-space: nowrap !important;
	padding: 0.5em 1em !important;
	font-size: 1.2em !important;
	cursor: pointer !important;
	user-select: none !important;
	transform: scale(1);
}

.button-base:hover {
	transform: scale(1.2);
	transition: all 150ms 0s ease;
}

.move-button {
	background: radial-gradient(ellipse farthest-corner at 80% 80%, floralwhite, khaki 90%);
	text-align: center;
}

.estimate-button {
	background: radial-gradient(ellipse farthest-corner at 80% 80%, floralwhite, khaki 90%);
	text-align: center;
}

.submit-button {
	background: radial-gradient(ellipse farthest-corner at 80% 80%, lightskyblue, aliceblue 90%);
}

.cancel-button {
	background: radial-gradient(ellipse farthest-corner at 80% 80%, lightgray, whitesmoke 90%);
}

.page-header {
	display: inline-block;
	width: 50vw;
	border-right: solid 0.3em darkgray;
	border-bottom: solid 0.15em lightgray;
	border-radius: 0.8em 0.5em 0.5em 0.5em;
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	background-color: #fafafa;
	font-size: 1.4em;
	font-weight: bold;
	font-style: italic;
	padding: 0.5em 2em;
	text-align: center;
	margin-top: 2vh;
	margin-bottom: 3vh;
}

.paragraph {
	width: 65%;
	background: linear-gradient(to right, rgba(255,255,255,0.8), rgba(255,255,255,0.2));
	border-left: solid 0.5em khaki;
	border-radius: 1em 0 0 1em;
	font-size: 1.2em;
	padding: 0.2em 0 0.2em 0.5em;
	margin-bottom: 2vh;
}

:root {
	--point-width: 12vw;
}

.appeal-frame {
	display: inline-flex;
	flex-direction: row;
	justify-content: space-around;
	align-items: center;
	width: 100%;
	margin-bottom: 3vh;
}

.point-area {
	display: inline-block;
	width: 40%;
	text-align: center;
}

.point-frame {
	display: inline-flex;
	width: calc(var(--point-width) * 2.5);
	height: var(--point-width);
	justify-content: space-around;
}

.point-frame2 {
	display: inline-flex;
	width: calc(var(--point-width) * 2.5);
	height: var(--point-width);
	justify-content: space-around;
}

.point-mark {
	display: inline;
	width: var(--point-width);
	height: var(--point-width);
}

.point-mark-text {
	display: table-cell;
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	background-color: white;
	width: var(--point-width);
	height: var(--point-width);
	border-radius: 50%;
	vertical-align: middle;
	text-align: center;
	font-size: 1.4em;
	cursor: pointer;
	user-select: none;
}

.point-mark-text:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.point-safety {
	background: radial-gradient(ellipse farthest-corner at 20% 20%, honeydew, palegreen 80%);
}

.point-tech {
	background: radial-gradient(ellipse farthest-corner at 20% 20%, aliceblue, lightskyblue 80%);
}

.point-support {
	background: radial-gradient(ellipse farthest-corner at 20% 20%, lavenderblush, pink 80%);
}

.appeal {
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	border-radius:0.5em;
	width:35vw;
	font-size:1.4em;
	text-align:center;
	padding: 0.3em 0;
	cursor: pointer;
	user-select: none;
}

.appeal:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.appeal-research {
	border:solid 2px lightskyblue;
	background: radial-gradient(paleturquoise, lightskyblue);
}

.appeal-plan {
	border:solid 2px lemonchiffon;
	background: radial-gradient(ivory, lemonchiffon);
}

.appeal-explain {
	border:solid 2px palegreen;
	background: radial-gradient(honeydew, palegreen);
}

.appeal-offer {
	width: 100%;
	font-size: 1.5em;
	font-weight: bold;
	text-align: center;
}

.separator {
	display: inline;
	width: auto;
}

.company {
	box-shadow: 0.5em 0.5em 1em 0 rgba(0, 0, 0, 0.4);
	width: 100%;
	text-align: left;
	margin: 2vh 0;
}

.company > colgroup > col.company-attr {
	background: rgba(135,206,250,0.9);
	width: 30%;
}

.company > colgroup > col.company-text {
	background: rgba(250,250,250,0.8);
	width: 100%;
}

.company > tbody > tr > td {
	border: solid 2px darkgray;
	padding: 1.2em;
}

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

.address-zip {
}

.address-text {
	margin-left: 1em;
}

.mail-table {
	display: inline-block;
	background-color: snow;
	width: 100%;
	text-align: left;
}

.mail-table > colgroup > col.title {
	width: 27%;
}

.mail-table > colgroup > col.values {
	width: 73%;
}

.mail-table > tbody > tr > td {
	border: solid 2px darkgray;
	padding: 0.5em 1em;
}

.customer-name {
	width: 30%;
}

.customer-mail {
	width: 60%;
}

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

.request-message {
	width: 100%;
	height: 40vh;
}

.zipcode {
	width: 20%;
}

.city {
	width: 40%;
}

.area {
	width: 80%;
}

.building {
	width: 80%;
}

.phone {
	width: 30%;
}
