@charset "utf-8";
/* CSS Document */

/* -------------------------------------------------------------------------- */

/*	CSS Reset
/* -------------------------------------------------------------------------- */

html, body {
	border: none;
	margin: 0;
	padding: 0;
}
h1, h2, h3, h4, h5, h6, p, blockquote, address, big, cite, code, em, font, img, small, strike, sub, sup, li, ol, ul, fieldset, form, label, legend, button, table, caption, tr, th, td {
	border: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}
blockquote::before,
blockquote::after {
	content: "";
}

/* -------------------------------------------------------------------------- */

/*	Document Setup
/* -------------------------------------------------------------------------- */

html {
	font-size: 62.5%; /* 1rem = 10px */
}
body {
	background: #fffeff;
	background-image: url("../img/otis-redding.png");
	box-sizing: border-box;
	color: #111;
	font-family: -apple-system, BlinkMacSystemFont, YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
	letter-spacing: -0.015em;
	text-align: left;
}
*,
*::before,
*::after {
	box-sizing: inherit;
	-webkit-font-smoothing: antialiased;
	word-break: break-word;
	word-wrap: break-word;
}
@media screen and (min-width: 897px) {
	body {
		font-size: 1.8rem;
	}
}
@media screen and (max-width: 896px) {
	body {
		font-size: 1.6rem;
	}
}

/* Base Transitions -------------------------- */

a,
path {
	transition: all 0.15s linear;
}

/* -------------------------------------------------------------------------- */

/*	Element Base
/* ---------------------------------------------*---------------------------- */


main {
	display: block;
	overflow: hidden;
}
h1,
h2,
h3 {
	font-feature-settings: "lnum";
	font-variant-numeric: lining-nums;
	font-weight: 700;
	letter-spacing: -0.0415625em;
	line-height: 1.25;
}
h1 {
	font-size: 3.6rem;
	font-weight: 800;
	line-height: 1.138888889;
}
h2 {
	font-size: 2.8rem;
	margin: 3.5rem 0;
}
h3 {
	font-size: 2.8rem;
	margin: 3.5rem 0 2rem;
}

p {
	line-height: 1.5;
	margin: 0 0 1em 0;
}
big {
	font-size: 1.2em;
}
small {
	font-size: 0.75em;
}
b,
strong,
.bold {
	font-weight: 700;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sup {
	top: -0.5em;
}
sub {
	bottom: -0.25em;
}
hr {
	border-style: solid;
	border-width: 0.1rem 0 0 0;
	border-color: #e5e5e5;
	margin: 4rem 0;
}
a {
	color: #00a199;
	text-decoration: underline;
}
a:hover,
a:focus {
	text-decoration: none;
}
::selection{
	color: #fff;
	background-color: #00a199;
}

/* Lists ------------------------------------- */

ul,
ol {
	margin: 0 0 3rem 1rem;
}
ul {
	list-style: disc;
}
ul ul {
	list-style: circle;
}
ul ul ul {
	list-style: square;
}
ol {
	list-style: decimal;
}
ol ol {
	list-style: lower-alpha;
}
ol ol ol {
	list-style: lower-roman;
}
li {
	line-height: 1.5;
	margin: 0.5rem 0 0 2rem;
}
li > ul,
li > ol {
	margin: 1rem 0 0 2rem;
}
.reset-list-style,
.reset-list-style ul,
.reset-list-style ol {
	list-style: none;
	margin: 0;
}
.reset-list-style li {
	margin: 0;
}

dt,
dd {
	line-height: 1.5;
}
dt {
	font-weight: 700;
}

/* Media ------------------------------------- */

figure {
	display: block;
	margin: 0;
}
iframe {
	display: block;
	max-width: 100%;
}
video {
	display: block;
}
svg,
img,
embed,
object {
	display: block;
	height: auto;
	max-width: 100%;
}
figcaption {
	color: #6d6d6d;
	display: block;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.2;
	margin-top: 1.5rem;
}
figcaption a {
	color: inherit;
}

/* Inputs ------------------------------------ */

fieldset {
	border: 0.2rem solid #ccc;
	padding: 2rem;
}
legend {
	font-size: 0.85em;
	font-weight: 700;
	padding: 0 1rem;
}
label {
	display: block;
	font-size: 1.6rem;
	font-weight: 400;
	margin: 0 0 0.5rem 0;
}
label.inline,
input[type="checkbox"] + label {
	display: inline;
	font-weight: 400;
	margin-left: 0.5rem;
}
input[type="checkbox"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	position: relative;
	top: 2px;
	display: inline-block;
	margin: 0;
	width: 1.8rem;
	min-width: 1.8rem;
	height: 1.8rem;
	background: #fff;
	border-radius: 0;
	border-style: solid;
	border-width: 0.1rem;
	border-color: #ccc;
	box-shadow: none;
	cursor: pointer;
}
input[type="checkbox"]:checked::before {
	/* Use the "Yes" SVG Dashicon */
	content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23000000%27%2F%3E%3C%2Fsvg%3E");
	position: absolute;
	display: inline-block;
	margin: -0.16rem 0 0 -0.23rem;
	height: 1.8rem;
	width: 1.8rem;
}
input,
textarea,
button,
.button {
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
	line-height: 1;
}
input,
textarea {
	border-color: #ccc;
	color: #000;
}
code,
input[type="url"],
input[type="email"],
input[type="tel"] {

	/*rtl:ignore*/
	direction: ltr;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="url"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="week"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="color"],
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	background: #fff;
	border-radius: 0;
	border-style: solid;
	border-width: 0.1rem;
	box-shadow: none;
	display: block;
	font-size: 1.6rem;
	letter-spacing: -0.015em;
	margin: 0;
	max-width: 100%;
	padding: 1.5rem 1.8rem;
	width: 100%;
}
select {
	font-size: 1em;
}
textarea {
	height: 20rem;
	line-height: 1.5;
	width: 100%;
}
input::-webkit-input-placeholder {
	line-height: normal;
}
input:-ms-input-placeholder {
	color: #757575;
	line-height: normal;
}
textarea:-ms-input-placeholder {
	color: #757575;
	line-height: normal;
}
input::-moz-placeholder {
	line-height: revert; /* Reset to the value from the user-agent stylesheet. */
}
button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	background: #222;
	border: none;
	border-radius: 0;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font-size: 1.5rem;
	letter-spacing: 0.1em;
	line-height: 1.25;
	margin: 0;
	opacity: 1;
	padding: 1.1em 1.44em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity 0.15s linear;
}
button:focus,
button:hover,
.button:focus,
.button:hover,
input[type="button"]:focus,
input[type="button"]:hover,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="submit"]:focus,
input[type="submit"]:hover {
	text-decoration: underline;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	border-color: currentColor;
}

/* Tables ------------------------------------ */

table {
	border: 0.1rem solid #e5e5e5;
	border-collapse: collapse;
	border-spacing: 0;
	empty-cells: show;
	font-size: 1.6rem;
	margin: 4rem 0;
	max-width: 100%;
	overflow: hidden;
	width: 100%;
}
.alignleft > table {
	margin: 0;
}
.alignright > table {
	margin: 0;
}
th,
td {
	border: 0.1rem solid #e5e5e5;
	line-height: 1.4;
	margin: 0;
	overflow: visible;
	padding: 0.5em;
}
caption {
	background: #e5e5e5;
	font-weight: 600;
	padding: 0.5em;
	text-align: center;
}
thead {
	vertical-align: bottom;
	white-space: nowrap;
}
th {
	font-weight: 700;
}

/* -------------------------------------------------------------------------- */

/*	Helper Classes
/* -------------------------------------------------------------------------- */

/* Layout ------------------------------------ */

.no-margin {
	margin: 0 !important;
}
.no-margin-top {
	margin: 0 !important;
}
.no-margin-bottom {
	margin-bottom: 0 !important;
}
.no-padding {
	padding: 0 !important;
}
.no-padding-top {
	padding-top: 0 !important;
}
.no-padding-bottom {
	padding-bottom: 0 !important;
}
.screen-height {
	height: 100vh;
	min-height: 100vh;
}
.screen-width {
	position: relative;
	left: calc(50% - 50vw);
	width: 100vw;
}

/* Sections ---------------------------------- */

section {
	padding: 15rem 0;
	width: 100%;
}
.section-top-xs {
	padding-top: 7rem;
}
.section-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 120rem;
	width: calc(100% - 4rem);
}
.section-inner.max-percentage {
	width: 100%;
}
.section-inner.thin {
	max-width: 58rem;
}
.section-inner.small {
	max-width: 80rem;
}
.section-inner.medium {
	max-width: 100rem;
}
.section-inner.no-margin {
	margin: 0;
}

/* Typography -------------------------------- */

.font-size-xl {
	font-size: 1.25em;
}
.font-size-xs {
	font-size: 0.8em;
}

/* Alignment Classes ------------------------- */

/* Center */

.blockcenter,
.blockcenter img {
	margin-left: auto;
	margin-right: auto;
}
.textcenter {
	text-align: center;
}

/* Left and right */

.blockleft {
	float: left;
	margin: 0.3rem 2rem 2rem 2rem;
}
.blockright {
	float: right;
	margin: 0.3rem 2rem 2rem 2rem;
}
.textleft {
	text-align: right;
}
.textright {
	text-align: left;
}

/* -------------------------------------------------------------------------- */

/*	Site Header
/* -------------------------------------------------------------------------- */

.header {
	background: rgba(255,255,255,0.8);
	padding: 2.5rem 0;
}
.header-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 120rem;
	width: calc(100% - 4rem);
}

/* -------------------------------------------------------------------------- */

/*	First view
/* -------------------------------------------------------------------------- */

.firstView {
	margin-right: auto;
	margin-left: auto;
	max-width: 120rem;
	width: calc(100% - 4rem);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.firstView-title {
	height: 100%;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	animation-name: firstAnimation;
	animation-duration: 1.2s;
	animation-fill-mode: forwards;
}
@keyframes firstAnimation {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.firstView-scroll {
	font-size: 1.4rem;
	font-weight: bold;
	letter-spacing: 0.05em;
	margin: 0 auto;
	position: absolute;
	bottom: 38px;
	right: 0;
	left: 0;
	text-align: center;
	animation-name: firstScroll;
	animation-duration: 2s;
	animation-iteration-count: infinite;
}
.firstView-scroll:after {
	content: "";
	position: absolute;
	bottom: -38px;
	right: 0;
	left: 0;
	margin: 0 auto;
	width: 0;
	height: 35px;
	border-left: 1px solid #999;
}
@keyframes firstScroll {
	0% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
	100% {
		transform: translateY(0);
	}
}
@media screen and (max-width: 896px) {
	.firstView-title h1 {
		margin: 0 auto 2.5rem;
		width: 90%;
		max-width: 780px;
	}
}

/* -------------------------------------------------------------------------- */

/*	Site Main
/* -------------------------------------------------------------------------- */

.title {
	margin-bottom: 10rem;
	text-align: center;
}
.title h2 {
	color: #3e3a39;
	font-weight: 500;
	position: relative;
}
.title h2:before,
.title h2:after {
	content: "";
	position: absolute;
	width: 0;
	height: 0;
	z-index: -1;
}
.title h2:before {
	top: -30px;
	transform: rotate(-45deg);
}
.title h2:after {
	bottom: -30px;
	transform: rotate(135deg);
}
.title .title-en {
	display: inline-block;
	font-family: 'Abel', sans-serif;
}
.title .title-jp {
	display: block;
	letter-spacing: 0.08em;
}
@media screen and (min-width: 897px) {
	.title h2:before,
	.title h2:after {
		border-left: 60px solid transparent;
		border-right: 60px solid transparent;
		border-bottom: 60px solid #00a199;
	}
	.title h2:before {
		left: -40px;
	}
	.title h2:after {
		right: -40px;
	}
	.title .title-en {
		font-size: 8rem;
		padding-bottom: 3rem;
	}
}
@media screen and (max-width: 896px) {
	.title h2:before,
	.title h2:after {
		border-left: 40px solid transparent;
		border-right: 40px solid transparent;
		border-bottom: 40px solid #00a199;
	}
	.title h2:before {
		left: -30px;
	}
	.title h2:after {
		right: -30px;
	}
	.title .title-en {
		font-size: 3.8rem;
		padding-bottom: 2rem;
	}
	.title .title-jp {
		font-size: 1.8rem;
	}
}

/* Company Overview -------------------------- */

.company-list dl {
	border-bottom: 1px solid #e5e5e5;
	display: flex;
	margin: 0;
}
.company-list dl:first-child {
	border-top: 1px solid #e5e5e5;
}
.company-list dt,
.company-list dd {
	letter-spacing: 0.02em;
}
@media screen and (min-width: 897px) {
	.company-list dl {
		padding: 4rem;
	}
	.company-list dt {
		width: 30%;
	}
	.company-list dd {
		width: 70%;
	}
}
@media screen and (max-width: 896px) {
	.company-list dl {
		padding: 3rem 1rem;
	}
	.company-list dt {
		width: 25%;
	}
	.company-list dd {
		width: 75%;
	}
}

/* Contact Us -------------------------------- */

.contact-form dl {
	border-bottom: 1px solid #e5e5e5;
	margin: 0;
	padding: 4rem;
}
.contact-form dl:first-child {
	border-top: 1px solid #e5e5e5;
}
.contact-form dt,
.contact-form dd {
	letter-spacing: 0.02em;
}
.contact-form dt .required {
	background: #c00;
	color: #fff;
	display: inline-block;
	font-size: 1.3rem;
	font-weight: normal;
	margin-left: 1rem;
	padding: 0.3rem 0.8rem 0.2rem;
}
.contact-privacy {
	background: #fff;
	border: 3px solid #e5e5e5;
	font-size: 1.2rem;
	height: 30rem;
	margin: 4rem 0 2rem;
	overflow-y: scroll;
	padding: 2rem;
}
.contact-privacy h3 {
	font-size: 2rem;
}
@media screen and (min-width: 897px) {
	.contact-form dl {
		display: flex;
		padding: 4rem;
	}
	.contact-form dt {
		width: 30%;
	}
	.contact-form dd {
		width: 70%;
	}
}
@media screen and (max-width: 896px) {
	.contact {
		padding-top: 0;
	}
	.contact-form dl {
		padding: 1.5em 0;
	}
	.contact-form dt {
		margin-bottom: 1.5rem;
	}
	.contact-form dd {
		margin-left: 0;
	}
}

/* 確認画面 */

.form-message {
	background: #fff;
	border: 3px solid #e5e5e5;
	padding: 2rem;
	margin-bottom: 2rem;
}
.error_messe {
	color: #e00;
	font-size: 90%;
	margin-bottom: 0.5em;
}
.error_messe:last-child {
	margin-bottom: 0;
}
.contact-form-btn {
	margin-top: 2rem;
}

/* -------------------------------------------------------------------------- */

/*	Site Footer
/* -------------------------------------------------------------------------- */

.copyright {
	font-size: 1.4rem;
	letter-spacing: 0.01em;
	text-align: center;
}
@media screen and (min-width: 897px) {
	.copyright {
		padding: 10rem 0 2rem;
	}
}
@media screen and (max-width: 896px) {
	.copyright {
		padding: 2rem 0;
	}
}
