@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:500,700&display=swap&subset=japanese');
@import url('https://fonts.googleapis.com/css?family=Muli:500,700&display=swap');

body {
	background-color: #f7f7f7;
	color: #585858;
	letter-spacing: 0.05em;
	font: 500 16px 'Noto Sans JP', sans-serif;
	line-height: 1.8;
	font-feature-settings: "palt";
	}

body.en {
	letter-spacing: 0.03em;
	font: 700 16px 'Muli', sans-serif;
	line-height: 1.8;
	}

body.cn {
	letter-spacing: 0.03em;
	font: 500 16px 'SF Pro SC', 'PingFang SC', sans-serif;
	line-height: 1.8;
	}



/* bootstrap */

.navbar-light .navbar-brand:link,
.navbar-light .navbar-brand:visited {
	background: none;
	}

.navbar-light .navbar-brand:hover {
	opacity: 0.8;
	}

.navbar-light .navbar-nav .nav-link:link,
.navbar-light .navbar-nav .nav-link:visited {
	padding-bottom: 0.5em;
	background: linear-gradient(#e13f2f,#e13f2f) 50% 100%/0 2px no-repeat;
	color: #585858;
	}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
	background-size: 100% 2px;
	color: #e13f2f;
	}

.bg-light {
	background-color: rgba(240, 240, 240, 0.95) !important;
	}

.navbar-toggler {
	padding: 0;
	border: none;
	}

.navbar-brand img {
	position: relative;
	top: 1px;
	height: 30px;
	}

.en .navbar-brand img {
	top: 2px;
	}

.nav-item {
	margin: 0 1em;
	white-space: nowrap;
	letter-spacing: 0.3em;
	font-weight: 700;
	font-size: 0.75em;
	}

.en .nav-item {
	margin: 0 0.5em;
	letter-spacing: 0.06em;
	font-size: 0.8em;
	}

.fa-globe-asia {
	margin-right: 0.2em;
	}

.fa-globe-americas {
	margin-right: 0.4em;
	}

.dropdown-item-language {
	letter-spacing: 0.25em;
	font-weight: 700;
	font-size: 0.9em;
	}

.dropdown-menu {
	border: none;
	border-radius: 0.25rem;
	background-color: rgba(240, 240, 240, 0.95);
	font-size: 1em;
	}

.dropdown-item {
	padding: 1em 2em;
	}

.dropdown-item:link,
.dropdown-item:visited {
	background: linear-gradient(#e13f2f,#e13f2f) 50% 100%/0 2px no-repeat;
	color: #585858;
	font-weight: 700;
	}

.dropdown-item:hover,
.dropdown-item:focus {
	background-color: transparent;
	background-size: 100% 2px;
	color: #e13f2f;
	}

.fullscreen .modal-dialog {
	margin: 0 0 0 0;
	padding: 0;
	min-height: 100%;
	max-width: 100%;
	width: 100%;
	height: 100%;;
	}

.fullscreen .modal-content {
	overflow: auto;
	min-height: 100%;
	height: 100%;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.8);
	}

.fullscreen .modal-content .modal-header {
	border: 0px;
	}

.fullscreen .modal-content button {
	opacity: 1;
	}

.fullscreen .modal-content button span {
	color: rgba(255, 255, 255, 0.8);
	text-shadow: none;
	font-weight: 300;
	font-size: 26px;
	}

.fullscreen .modal-body ul {
	padding: 0 0 0 0;
	}

.fullscreen .modal-body li {
	padding-bottom: 2em;
	}

.fullscreen .modal-body a:link,
.fullscreen .modal-body a:visited {
	background: none;
	color: rgba(255, 255, 255, 0.8);
	font-size: 3.623188405797101vw;
	transition: .3s;
	}

.fullscreen .modal-body a:hover {
	color: #e13f2f;
	}

.modal-body li.nav-item p {
	margin-bottom: 0.2em;
	color: rgba(255, 255, 255, 0.8);
	font-size: 3.623188405797101vw;
	}

.modal-body li.nav-item p {
	font-size: 3.140vw;
	}

.modal-body li.nav-item.business_summary a:link {
	font-size: 2.657vw;
	}

.modal-body li.nav-item.courses a:link {
	font-size: 2.415vw;
	}

.modal-body li.nav-item.select_language {
	margin-top: 2.5em;
	}

.modal-body li.nav-item.select_language a:link {
	font-size: 2.898550724637681vw;
	}

.table-striped tbody tr:nth-of-type(odd) {
	background-color: rgba(240, 240, 240, 0.95);
	}

.container-fluid {
	padding: 0;
	}

.row {
	margin: 0 auto;
	}



/* common */

h2,
h3 {
	color: #e13f2f;
	letter-spacing: 0.2em;
	font-weight: 700;
	}

h2 {
	font-size: 1.6rem;
	}

.en h2 {
	letter-spacing: 0.03em;
	}

h3 {
	font-size: 1.3rem;
	}

a:link,
a:visited {
	padding-bottom: 0.3em;
	background: linear-gradient(#e13f2f,#e13f2f) 50% 100%/0 2px no-repeat;
	color: #e13f2f;
	text-decoration: none;
	transition: .3s;
	}

a:hover {
	background-size: 100% 2px;
	color: #e13f2f;
	}

a img:hover {
	opacity: 0.8;
	}

th {
	color: #486d73;
	white-space: nowrap;
	font-weight: 700;
	font-size: 0.9em;
	}

td {
	color: #585858;
	font-size: 0.9em;
	}

.pc_only {
	display: inline;
	}

.sp_only {
	display: none;
	}

.text-small {
	font-size: 0.9em;
	}

.text-color-primary {
	color: #e13f2f;
	}

.text-color-accent {
	color: #486d73;
	}

ul.marker {
	margin: 0;
	padding: 0;
	padding-left: 1.5rem;
	list-style: none;
	text-indent: -1rem;
	}

ul.marker li {
	margin-bottom: 0.5rem;
	}

ul.marker li:before {
	position: relative;
	top: -0.25rem;
	display: inline-block;
	margin-right: 0.5em;
	width: 0.3rem;
	height: 0.3em;
	border-radius: 50%;
	background-color: rgba(89, 89, 89, 0.5);
	content:"";
	}

ul.marker_number {
	margin: 0;
	padding: 0;
	padding-left: 2em;
	list-style: decimal;
	line-height: 1.5;
	}

ul.marker_number li {
	margin-bottom: 1em;
	}

.nowrap {
	white-space: nowrap;
	}

.heading {
	margin: 8em 0 5em;
	text-align: center;
	}

.en .heading {
	margin: 8em 0 7em;
	}

.heading img {
	height: 50px;
	}

.heading-jp {
	display: block;
	margin-top: 0.5em;
	color: #e13f2f;
	text-indent: 1em;
	letter-spacing: 1em;
	font-weight: 700;
	font-size: 0.5em;
	}

.heading_cn {
	display: block;
	margin-top: 0.5em;
	color: #e13f2f;
	text-indent: 1em;
	letter-spacing: 1em;
	font-weight: 700;
	font-size: 0.5em;
	}

footer {
	margin-top: 5em;
	padding-top: 2em;
	background-color: #3d3d3d;
	color: #f7f7f7;
	letter-spacing: 0.25em;
	}

.footer-logotype {
	position: relative;
	top: 2px;
	left: 1.5em;
	font-weight: 500;
	font-size: 1.2em;
	}

ul.footer-nav {
	padding: 0 20px;
	}

.footer-nav span {
	display: block;
	padding: 10px 0px; 
	border-bottom: 1px solid #c7c7c7;
	color: #f7f7f7; 
	font-weight: 700;
	font-size: 0.8em;
	}

.footer-nav li {
	margin: 15px 0;
	list-style: none;
	font-size: 0.8em;
	}

.footer-nav li a {
	background: none;
	color: #f7f7f7;
	text-decoration: none;
	}

.en .footer-nav li {
	letter-spacing: 0.15em;
	font-size: 0.8em;
	}

.footer-nav li a:hover {
	color: #e13f2f;
	}

ul.footer-nav li.courses p,
ul.footer-nav li.business_summary p {
	font-size: 0.95em;
	margin-bottom: 0;
	}

ul.footer-nav li.courses a:link,
ul.footer-nav li.business_summary a:link {
	font-size: 0.85em;
	}

.copyright {
	text-indent: 0.18em;
	letter-spacing: 0.18em;
	font-weight: 500;
	font-size: 0.7em;
	}

.copyright span {
	margin-right: -0.3em;
	font-size: 1em;
	}


@media (max-width: 414px) {

body {
	font-size: 3.864734299516908vw;
	}

th {
	white-space: normal;
	}

.pc_only {
	display: none;
	}

.sp_only {
	display: block;
	}

.nowrap_sp_only {
	white-space: nowrap;
	}

.heading {
	margin: 6em 0 4em;
	}

.en .heading {
	margin: 6em 0 5.4em;
	}

.heading img {
	height: 7.246376811594202vw;
	}

.heading-jp {
	font-size: 3.1400966183574877vw;
	}

.heading_cn {
	font-size: 3.1400966183574877vw;
	}

footer {
	margin-top: 3em;
	}

.footer-logotype {
	left: 0;
	margin-bottom: 1.2em;
	text-align: center;
	}

ul.footer-nav li.courses a:link {
	font-size: 2.053vw;
	}

}



/* index */

.jumbotron {
	margin: 0;
	padding: 15% 1rem;
	background-image: url("/index/images/bg.jpg");
	background-position: center 52%;
	background-size: cover;
	background-repeat: no-repeat; /* Ensure background doesn't repeat */
	}

.jumbotron h1 {
	color: #f7f7f7;
	text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	font-weight: 500;
	}

/* Main motto image in jumbotron */
.main-motto {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.jumbotron h1 img {
    max-width: 100%;
    height: auto;
    display: inline-block;
}

.animated {
	animation-duration: 0.5s;
	animation-delay: 0.5s;
	}

.background-gray {
	background-color: #f2f2f2;
	}

.index-our_missions_heading img {
	margin: 5em 0 6.5em;
	width: 500px;
	}

.index-missions img {
	height: 35px;
	}

.index-missions h2 {
	text-indent: 0;
	letter-spacing: 0.5em;
	font-weight: 700;
	font-size: 1.5em;
	line-height: 1.8;
	}

.en .index-missions h2 {
	text-indent: 0.12em;
	letter-spacing: 0.12em;
	font-size: 1.2em;
	}

.index-btn:hover {
	background-color: #e13f2f;
	transition: 0.3s;
	}

.index_btn_wrap a:link,
.index_btn_wrap a:visited {
	background: none;
	}

.index_btn_wrap a:hover {
	transition: .3s;
	}

.index-btn {
	padding: 0.55em 0.7em 0.45em 1.6em;
	border: none;
	background-color: #486d73;
	letter-spacing: 0.3em;
	font-weight: 500;
	font-size: 0.6em;
	}

.en .index-btn {
	font-weight: 700;
	}

.fa-angle-right {
	position: relative;
	top: 0;
	margin-left: 0.5em;
	font-size: 1em;
	}

.motto2-wrap {
	margin: 12em 0 6em;
	}

.motto2-wrap img {
	height: 50px;
	}

.motto2_cn p {
	color: #e13f2f;
	letter-spacing: 0.2em;
	font-weight: 700;
	font-size: 2.2em;
	}

.heading-jp-index {
	font-size: 1em;
	}

.banner_recruitment {
	position: fixed;
	right: 2.5em;
	bottom: 2.5em;
	}

img.banner_recruitment {
	width: 25%;
	}

.en img.banner_recruitment {
	width: 30%;
	}

/* Temporary debugging help to find images with align attribute */
img[align] {
    border: 1px solid red;
}


@media (max-width: 414px) {

.jumbotron {
	padding: 40% 0;
	background-image: url("/index/images/bg.jpg");
	background-position: center 55%;
	background-size: 180%;
	}

.jumbotron h1 img {
    width: 90%; /* Control the width on mobile */
}

.main-motto {
    width: 85%; /* Slightly narrower on mobile */
}

/* Fix animation if causing issues */
.wow.animate__animated {
    animation-name: none !important; /* Disable animation on mobile if needed - remove if it causes issues */
}

.index-our_missions_heading img {
	margin: 1.5em 0 3.5em;
	width: 80%;
	}

.index-missions img {
	width: 35%;
	height: auto;
	}

.index-missions h2 {
	font-size: 3.3816425120772946vw;
	}

.index-btn {
	font-size: 1.932367149758454vw;
	}

.motto2-wrap {
	margin: 6em 0 3em;
	}

.motto2-wrap img {
	width: 90%;
	height: auto;
	}

.motto2_cn p {
	font-size: 4.3478260869565215vw;
	}

.heading-jp-index {
	font-size: 2.4154589371980677vw;
	}

.banner_recruitment {
	right: 1.2em;
	bottom: 1.2em;
	}

img.banner_recruitment {
	width: 65%;
	}

.en img.banner_recruitment {
	width: 70%;
	}

}

/* Add medium-size device support */
@media (min-width: 415px) and (max-width: 768px) {
    .jumbotron h1 img {
        width: 95%;
    }
    
    .main-motto {
        width: 90%;
    }
}


/* co_workers */

.card {
	border: none;
	transition: 0.3s;
	}

.card-title {
	text-indent: 0.15em;
	letter-spacing: 0.15em;
	}

.en .card-title {
	letter-spacing: 0.03em;
	}

.text-small-title {
	text-indent: 0.1em;
	letter-spacing: 0.1em;
	font-size: 0.65em;
	}

.co_workers-btn {
	padding: 0.5em 0.7em 0.5em 1.6em;
	border: none;
	background-color: #486d73;
	letter-spacing: 0.3em;
	font-weight: 500;
	font-size: 0.6em;
	}

.en .co_workers-btn {
	font-weight: 700;
	}

.co_workers-btn:hover {
	background-color: #e13f2f;
	transition: 0.5s;
	}

.modal-header {
	border: none;
	}
	
.modal-title p {
	font-weight: 500;
	}

.modal-body p {
	font-size: 0.8em;
	}


@media (max-width: 414px) {

.card-title {
	font-size: 2.4154589371980677vw;
	}

.text-small-title {
	letter-spacing: 0;
	font-size: 1.6908212560386473vw;
	}

.co_workers-btn {
	font-size: 1.932367149758454vw;
	}

}



/* profit_margin_rate */

.margin_percentage {
	font-size: 2em;
	}

.margin_percentage span {
	font-size: 3em;
	font-weight: 700;
	margin-left: 0.1em;
	}

.diagram {
	max-width: 500px;
	}


@media (max-width: 414px) {

.diagram {
	max-width: 100%;
	}

}



/* business-summary */

.color-mission1 {
	color: #317c98;
	}

.color-mission2 {
	color: #888f00;
	}

.color-mission3 {
	color: #d25592;
	}

.heading.missions {
	margin: 8em 0 5em;
	}

.missions_img img {
	float: left;
	margin: 0 1%;
	width: 48%;
	}

.missions_img_cn {
	text-align: center;
	}

.missions_img_cn img {
	width: 50%;
	}

.missions_img_cn p {
	font-size: 0.6em;
	}


@media (max-width: 414px) {

.missions_img img {
	float: none;
	margin: 0;
	width: 100%;
	}

.heading.missions {
	margin: 6em 0 4em;
	}

.missions_img_cn img {
	width: 100%;
	}

.missions_img_cn p {
	font-size: 0.3em;
	}

}



/* courses */

.card {
	border-radius: 10px;
	}

.card a:link {
	background: none;
	}

.card a:link:hover {
	opacity: 0.5;
	}

.class_code {
	margin-bottom: 0.2em;
	}

.class_code span {
	margin-right: 0.5em;
	padding: 0 0.5em;
	font-size: 0.8em;
	color: #ffffff;
	background-color: #e13f2f;
	border-radius: 5px;
	}

.courses_name {
	margin-bottom: 0.8em;
	font-size: 1em;
	}

.courses_description {
	font-size: 0.8em;
	color: #585858;
	}

.courses_heading {
	color: #e13f2f;
	font-weight: 700;
	letter-spacing: 0.2em;
	}


@media (max-width: 414px) {

.courses_heading {
	font-size: 3.865vw;
	}

}



/* history */

.fa-external-link-alt,
.fa-check {
	position: relative;
	bottom: 0.12em;
	margin-left: 0.5em;
	font-size: 0.8em;
	}

.history .list {
	margin-left: 1.5em;
	list-style: none;
	}

.history .list li {
	padding-bottom: 1em;
	}

.fa-check {
	margin-right: 0.5em;
	color: rgba(89, 89, 89, 0.5);
	}



/* recruitment */

.recruitment_button_wrap a:link,
.recruitment_button_wrap a:visited {
	background: none;
	}

.btn-primary {
	background-color: #486d73;
	border: none;
	}
	
.btn-primary:hover {
	background-color: #e13f2f;
	border: none;
	}

.join-our-team-wrap {
	margin: 8em 0 4em;
	}

.join-our-team-wrap img {
	width: 20%;
	}


@media (max-width: 414px) {

.join-our-team-wrap img {
	width: 50%;
	}

}



/* inquiry */

.form-control {
	border: none;
	}

.form-control:focus {
	box-shadow: 0px 0px 2px 1px #21b4c6;
	}

.inquiry-btn {
	padding: 0.7em 1.3em 0.6em 1.5em;
	border: none;
	background-color: #486d73;
	letter-spacing: 0.3em;
	font-weight: 500;
	}

.inquiry-btn:hover {
	background-color: #e13f2f;
	transition: 0.5s;
	}


@media (max-width: 414px) {

.inquiry-btn {
	font-size: 3.864734299516908vw;
	}

}