@charset "UTF-8";
/* Japanese hyphenation (kinsoku) */
p,li,dt,dd,th,td,pre {
	-ms-line-break: strict;
	line-break: strict;
	-ms-word-break: break-strict;
	word-break: break-strict;
 	 word-wrap: break-word;
  	overflow-wrap: break-word;
}
/* basic setting */
body {
  background: #ffffff;
}
body,p,h1,h2,h3,h4,h5,h6,a,table,ul,li,a {
	font-family: 'Noto Sans JP', sans-serif;
 	font-weight: normal;
  	line-height: 1.8571428;
	text-align: left;
  	color: #505050;
}
/* bootstrap break */
/* xs */
br.br-xs {
  display: inline;
}
br.br-sm {
  display: none;
}
br.br-md {
  display: none;
}
br.br-lg {
  display: none;
}
br.br-xl {
  display: none;
}
/* sm */
@media (min-width: 576px) and (max-width: 767px) {
  br.br-xs {
    display: none;
  }
  br.br-sm {
    display: inline;
  }
  br.br-md {
    display: none;
  }
  br.br-lg {
    display: none;
  }
  br.br-xl {
    display: none;
  }
}
/* md */
@media (min-width: 768px) and (max-width: 991px) {
  br.br-xs {
    display: none;
  }
  br.br-sm {
    display: none;
  }
  br.br-md {
    display: inline;
  }
  br.br-lg {
    display: none;
  }
  br.br-xl {
    display: none;
  }
}
/* lg */
@media (min-width: 992px) and (max-width: 1199px) {
  br.br-xs {
    display: none;
  }
  br.br-sm {
    display: none;
  }
  br.br-md {
    display: none;
  }
  br.br-lg {
    display: inline;
  }
  br.br-xl {
    display: none;
  }
}
/* xl */
@media (min-width: 1200px)  {
  br.br-xs {
    display: none;
  }
  br.br-sm {
    display: none;
  }
  br.br-md {
    display: none;
  }
  br.br-lg {
    display: none;
  }
  br.br-xl {
    display: inline;
  }
}
/* bootstrap col image */
[class*='col-'] img {
	width: 100%;
}
.page [class*='col-'] img {
	width: auto;
}
/* bootstrap gutter */
/*溝幅 20pxの場合*/
.gutter-20{
margin-left:-10px;
margin-right:-10px;
}
.gutter-20 > [class*='col-'] {
padding-left:10px;
padding-right:10px;
}

/*溝幅 10pxの場合*/
.gutter-10{
margin-left:-5px;
margin-right:-5px;
}
.gutter-10 > [class*='col-'] {
padding-left:5px;
padding-right:5px;
}

/* ----------------------------------------------------------------------------
svg --------------------------------------------------------------------- */
path {
  pointer-events: all;
}
.logo path {
	fill: #fff;
}
.st0 {
	fill: #fff;
}

/* ----------------------------------------------------------------------------
navbar --------------------------------------------------------------------- */
.navbar{
  	transition: 600ms ease;
  	background: transparent;
	padding: 0.75em 0.5em 0.75em 1em
}
.navbar.nav-opp {
	background: #213F98;
}
.navbar-brand {
	margin-top: -0.25em;;
}
.navbar-brand img {
	width: 124px;
}
@media (min-width: 992px) {
	.navbar-brand {
		margin-left: 1em;
	}
	.navbar-brand img {
		width: 175px;
	}
}
.navbar-toggler {
	margin-right: 0;
	color: #fff;
	border: none;
	border-radius: 0;
	padding: 0;
	width: 40px;
	height: 40px;
}
.navbar .navbar-toggler {
	z-index: 1000;
}
.menu--icon {
  width: 20px;
  height: 16px;
  display: inline-block;
  position: relative;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
}
.menu--icon span {
  display: block;
  position: absolute;
  height: 1px;
  width: 100%;
  background: #fff;
  opacity: 1;left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}

.menu--icon span:nth-child(1){
  top: 0;
}
.menu--icon span:nth-child(2),.menu--icon span:nth-child(3){
  top: 8px;
}
.menu--icon span:nth-child(4){
  top: 16px
}
.navbar-toggler[aria-expanded="true"] .menu--icon span:nth-child(1){
  top: 20px;
  width: 0;
  left: 50%;
}
.navbar-toggler[aria-expanded="true"] .menu--icon span:nth-child(2){
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}
.navbar-toggler[aria-expanded="true"] .menu--icon span:nth-child(3){
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.navbar-toggler[aria-expanded="true"] .menu--icon span:nth-child(4){
  top: 14px;
  width: 0;
  left: 50%;
}
/*  */
@media (max-width: 991.98px) {
	.navbar .navbar-collapse {
		position: fixed;
		background: rgba(0, 0, 0, 0.85);
		opacity: 0;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		transition: opacity 0.5s ease;
		display: flex;
		flex-direction: column;
		align-content: center;
		text-align: center !important;
		overflow-y: scroll;
		overflow-x: hidden;
		width: 100vw;
		height: 100vh;
		font-family: 'Work Sans', sans-serif;
	}
	.navbar .navbar-collapse.collapse {
		display: flex;
		opacity: 0;
		pointer-events: none
	}
	.navbar .navbar-collapse.collapsing[style*="height"] {
		opacity: 1;
		height: 100vh !important
	}
	.navbar .navbar-collapse.collapsing {
		opacity: 0;
		height: 100vh
	}
	.navbar .navbar-collapse.collapse.show {
		opacity: 1;
		pointer-events: auto
	}
	.navbar .navbar-collapse .navbar-nav {
		margin-right: initial !important;
		margin-top: auto;
		margin-bottom: auto
	}
}
@media (max-width: 991.98px) {
	.navbar-nav {
		margin-left: initial !important;
	}
}
.nav-item {
	margin-left: 0;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
}
.nav-item a {
	text-decoration: none;
}
@media (min-width: 768px) {
	.nav-item {
		margin-left: 3.25em;
	}
}
.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler-icon:focus {
	outline: none;
	box-shadow: none;
}
.nav-item a,
.lang--menu li a {
	transition: 0.3s all;
	color: #ffffff;
}
.nav-item a:hover,
.lang--menu li a:hover {
	text-decoration: none;
	border-bottom: 1px solid #fff;
	padding-bottom: 5px;
}
@media (min-width: 992px) {
	.navbar-nav {
		margin-top: 1.75em;
		margin-right: 1em;
	}
}
/* フルスクリーンメニューの動きの部分で必要 */
main {
	width: 100%;
	overflow: hidden;/* 追加 */
	min-height: 1000px;
}
.navbar-collapse {
	color: #ffffff;
}
/* ----------------------------------------------------------------------------
text-style --------------------------------------------------------------------- */
.section-header {
	font-size: 1.5rem;
	font-family: 'Work Sans', sans-serif;
	letter-spacing: 0.075em;
	color: #213F98;
	text-align: center;
	width: 100%;
	margin-bottom: 1em;
	margin-top: 0;
	border: none;
}
.section-header::before {
	content: '';
	display: block;
	width: 40px;
	height: 10px;
	background-color: #213F98;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0.5em;
}
@media (min-width: 1200px) {
	.section-header {
		border-top: 20px solid #213F98;
		font-size: 2.25rem;
		text-align: left;
		width: fit-content;
		margin-bottom: 1em;
		margin-top: -1.25em;
	}
	.section-header::before {
		width: 50vw;
		margin-left: calc(50% - 50vw);
		height: 20px;
		margin-bottom: 0.5em;
		margin-top: -20px;
	}
}
.lead-text {
	font-size: 1.125rem;
	font-weight: normal;
	letter-spacing: 0.05em;
}
@media (min-width: 576px) {
	.lead-text {
		font-size: 1.875rem;
	}
}
.small-header {
	font-size: 0.875em;
	font-weight: normal;
}
.en-text {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.125em;
	letter-spacing: 0.04em;
}
.letter-space {
	letter-spacing: 0.08em;
}
.text-small {
	font-size: 0.875em;
}
.small-text {
	font-size: 0.625rem;
}
.mt-section {
	margin-top: 10em;
}
/* a button */
a.under--line {
	transition: 0.3s all;
	font-size: 0.875em;
}
.text--small {
	font-size: 0.875em;
}
/* ----------------------------------------------------------------------------
hero --------------------------------------------------------------------- */
.bg-hero-wrap {
  	position: relative;
  	overflow: hidden;
  	width: 100%;
  	height: 100vh;
}
.bg-hero-wrap .video {
		position: absolute;
		z-index: -1;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		min-height: 100%;
		min-width: 100%;
}
.hero-text-wrap {
	position: absolute;
	width: 100%;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 10;
}
.cover-heading {
	font-family: 'Work Sans', sans-serif;
	font-size: 1.875rem;
	line-height: 1.5;
	letter-spacing: 0;
	font-weight: normal;
	color: #ffffff;
	z-index: 7;
	margin-top: -1em;
}
.cover-sub-heading {
	margin-top: 1em;
	color: #fff;
	letter-spacing: 0.1em;
	font-size: 1.125rem;
}
@media (min-width: 768px) {
	.cover-heading {
		font-size: 3.375rem;
	}
	.cover-sub-heading {
		font-size: 1.75rem;
	}
}


/* ----------------------------------------------------------------------------
section-style --------------------------------------------------------------------- */
section.philosophy-section {
	padding-top: 2.5rem;
	margin-bottom: 5rem;
}
@media (min-width: 768px) {
	section.philosophy-section {
		padding-top: 5rem;
		margin-bottom: 5em;
	}
}
section.service-section,
section.about-section,
section.thanks-section {
	position: relative;
	display: block;
	padding-bottom: 5rem;
}
.line-table th {
	padding-left: 0;
	min-width: 8em;
	font-weight: normal;
}
.table td, .table th {
    padding: 1.5rem 1rem 1.5rem 0;
    vertical-align: top;
    border-top: 1px solid #B8B8B8;
}
.line-table tbody {
	border-bottom: 1px solid #B8B8B8;;
}
@media (min-width: 768px) {
	.line-table {
		font-size: 1.125rem;
	}
	.line-table th {
		padding-left: 1em;
	}
	section.philosophy-section {
		padding-bottom: 7.5rem;
	}
	section.service-section,
	section.about-section,
	section.thanks-section {
		padding-bottom: 10rem;
	}
}
.line-table {
	border-bottom: 1px solid #dee2e6;
}
.img-container {
	width: 100%;
	margin-top: 3em;
}
@media (min-width: 1200px) {
	.img-container {
		width: calc(((100% - 1144px) / 2) + (1144px * 0.75) - 0.75rem);
		margin-left: auto;
	}
	section.service-section,
	section.about-section,
	section.thanks-section {
		padding-bottom: 15rem;
	}
}
@media (min-width: 1400px) {
	.img-container {
		width: calc(((100% - 1320px) / 2) + (1320px * 0.75) - 0.75rem);
		margin-left: auto;
	}
}
.service-contents {
	list-style: none;
	margin-left: 0;
	padding-left: 0;
	margin-top: 2rem;
}
@media (min-width: 1200px) {
	.service-contents {
		max-width: 600px;
	}
}
.service-contents li,
.page-service-header {
	display: inline-block;
	margin-right: 1.25rem;
	margin-bottom: 1.25rem;
	background-color: #213F98;
	padding: 0.5rem 1.25rem;
	color: #fff;
	font-weight: bold;
	font-size: 0.875rem;
}
@media (min-width: 768px) {
	.service-contents li,
	.page-service-header {
		font-size: 1.25rem;
	}
}
hr {
    margin-top: 1.5rem;
    margin-bottom: 2rem;
    border: 0;
    border-top: 1px solid #B8B8B8;
}
.page-service-section hr {
	margin-top: 2rem;
    margin-bottom: 0.5rem;
}
.more-link {
	color: #213F98;
    background-color: transparent;
    border-color: #213F98;
	padding: 0.75em 1.5em;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0;
	margin: 1em 0;
}
@media (min-width: 768px) {
	.more-link {
		font-size: 1.25rem;
	}
}
/* ----------------------------------------------------------------------------
contact Us style --------------------------------------------------------------------- */
.contact-us-section {
	padding: 4em 0 6em;
}
.contact-us-section .section-header {
	font-weight: normal;
	margin-bottom: 2em;
}
.sub--title {
	margin-top: 2em;
	font-size: 1.25em;
	letter-spacing: 0.04em;
	padding-bottom: 1em;
}
.wpcf7 p {
	position: relative;
	width: 100%;
	margin: 20px auto;
}
.input--area {
	border: 1px solid #EEEEEE;
	background-color: #EEEEEE;
	width: 100%;
	height: 60px;
	padding: 0.5em;
	border-radius: 0;
}
.input--area#message {
	height: 280px;
}
.your-message .input--area {
	min-height: 300px;
}
dl {
	display: block;
	margin-bottom: 1.75em;
}
dt.title--area {
	display: inline-block;
	text-align: left;
	font-weight: normal;
	margin-bottom: 0.25em;
	font-size: 1rem;
}
@media (min-width: 768px) {
	dt.title--area {
		font-size: 1.125rem;
	}
}
#form_submit {
	width: 100%;
}
#form_submit_button {
	width: auto;
	height: 40px;
	background: #213F98;
	color: #fff;
	margin-bottom: 2em;
	border: none;
	letter-spacing: 0.5em;
	padding: 0 1em 0 1.5em;
}
.error_blank {
	color: #FF0000;
}
.wpcf7 p {
	text-align: center;
}
@media (min-width: 992px) {
	.wpcf7 p {
		text-align: left;
	}
	#mail_form dl {
		display: flex;
	}
	#mail_form dt {
		padding-top: 0.75em;
	}
	#mail_form dd {
		width: 100%;
	}
	.wpcf7 .submit--wrap {
		text-align: left;
	}
	.title--area:first-child {
		margin-top: 0;
	}
	.title--area {
		display: inline-block;
		/*position: absolute;*/
		/*left: 0;*/
		width: 10em;
		margin-top: 2em;
		/*padding-top: 1.5em;*/
	}
	.input--area {
		display: block;
		text-align: left;
		width: 100%;
	}
	#form_submit_button {
		margin-top: 1em;
		margin-left: 9.25em;
		height: 50px;
		padding: 0.25em 2em 0.5em 2.5em;
		font-size: 1rem;
	}
}
@media (min-width: 1200px) {
	.title--area {
		left:0;
	}
}
.thanks-section {
	padding-top: 10em;
	min-height: calc(100vh - 50px);
}
.thanks-header {
	width:80%;
	margin: 0 auto;
}
.thanks-letter {
	width:80%;
	margin: 0 auto;
	font-size: 1.25em;
}
/* ----------------------------------------------------------------------------
page --------------------------------------------------------------------- */
.page {
	margin-top: 5em;
	font-size: 0.9375rem;
	padding-bottom: 5em;
}
.page h3 {
	font-size: 0.9375rem;
	font-weight: bold;
	margin-top: 2em;
	margin-bottom: 0;
}
@media (min-width: 768px) {
	.page {
		font-size: 1rem;
		letter-spacing: 0.025em;
	}
	.page p {
		line-height: 2;
	}
	.page h3 {
		font-size: 1.125rem;
		font-weight: bold;
		margin-top: 2em;
		margin-bottom: 0;
	}
}

.page-service-section .page-service-header {
	margin-bottom: 2em;
}
.page-header {
	font-size: 0.9375rem;
	font-weight: bold;
	color: #213F98;
	margin-bottom: 1em;
	margin-top: 2em;
}
@media (min-width: 768px) {
	.page-header {
		font-size: 1.125rem;
	}
}
.page ul {
	margin-top: 0;
	padding-left: 1.5em;
}
.page-header-en {
	margin-top: 5em;
	margin-bottom: 0;
	font-size: 1.5rem;
	color: #213F98;
	font-family: 'Work Sans', sans-serif;
	letter-spacing: 0.075em;
}
.page-header-jp {
	margin-top: 0;
	font-size: 0.875rem;
	letter-spacing: 0.075em;
	margin-bottom: 4.5em;
}
.page .container {
	padding-right: 2em;
    padding-left: 2em;
}
@media (min-width: 1200px) {
	.page .container {
		padding-right: 15px;
		padding-left: 15px;
	}
	.page .col-xl-3 {
		-ms-flex: 0 0 18%;
    	flex: 0 0 18%;
    	max-width: 18%;
	}
	.page .col-xl-9 {
		-ms-flex: 0 0 82%;
    	flex: 0 0 82%;
    	max-width: 82%;
	}
}
.page-lead-text {
	font-size: 1.125rem;	
}
.page-service-header.obj-center {
	display: block;
	margin-bottom: 0;
	margin-right: 0;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
	z-index: 10;
	position: relative;
}
.page-service-header.obj-center.mt-section {
	margin-top: 4em;
}
.page-service-section h3 {
	margin-bottom: 0.5em;
}
.line-circle {
	position: relative;
	height: 223px;
	width: 502px;
	border-radius: 111.5px;
	border: 1px solid #213F98;
	margin-left: 50%;
	transform: translate(-50%,0);
	position: relative;
	z-index: 5;
}
.line-circle.mt-m {
	margin-top: -1.35em;
}
.line-circle.mb-m {
	margin-top: -1em;
	margin-bottom: -1.35em;
}
.line-circle img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.gray-circle {
	position: relative;
	height: 255px;
	width: 502px;
	border-radius: 127.5px;
	background-color: #EEEEEE;
	margin-left: 50%;
	transform: translate(-50%,0);
	position: relative;
	margin-top: -1em;
}
.gray-inner {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	text-align: center;
	width: 70%;
}
.gray-inner .page-service-header {
	margin-top: 1.5em;
	margin-bottom: 1.5em;
}
.line-image {
	border: 1px solid #B8B8B8;
	width: 100%;
}
.container.fig-container .row {
	margin-left: -30px;
	margin-right: -30px;
}
.fig-wrap {
	margin-top: 5em;
}
.fig-wrap .col-12 {
	margin-bottom: 2em;
}
.fig-wrap .col-12 img {
	width: 100%;
}
@media (min-width: 1200px) {
	.line-circle {
		height: 280px;
		width: 629px;
		border-radius: 140px;
	}
	.line-circle img {
		width: 453px;
	}
	.gray-circle {
		height: 320px;
		width: 629px;
		border-radius: 160px;
	}
	.gray-inner {
		width: 427px;
	}
}
.logo-wrap {
	margin-top: 1em;
	margin-bottom: 1.5em;
}
.logo {
	margin-right: 1em;
}
.scroll-img {
	width: calc(100% + 2em);
	overflow-x: auto;
	text-align: center;
	padding-bottom: 1em;
	margin-top: 3em;
}
.scroll-img img {
	width: auto;
}
@media (min-width: 992px) {
	.scroll-img {
		width: 100%;
	}
	.logo-wrap {
		margin-top: 2em;
	}
	.non-scroll-img {
		text-align: center;
	}
	.non-scroll-img img {
		max-width: 600px;
	}
}
.page-service-section h2 {
	font-size: 1.125rem;
	margin-top: 2em;
}
@media (min-width: 768px) {
	.privacy-policy-section {
		font-size: 1rem;
	}
	.privacy-policy-section .container {
		max-width: 720px;
	}
	.page-lead-text {
		font-size: 1.5rem;
		line-height: 2;
		letter-spacing: 0.025em;	
	}
	.page-service-section h2 {
		font-size: 1.5rem;
	}
}
@media (min-width: 992px) {
	.privacy-policy-section {
		margin-top: 10em;
		padding-bottom: 8em;
	}
	.page-header-en {
		font-size: 2.25rem;
	}
	.page-header-jp {
		font-size: 1.125rem;
		margin-bottom: 4em;
	}
	.privacy-policy-section .container {
		max-width: 720px;
	}
}
/* ----------------------------------------------------------------------------
footer --------------------------------------------------------------------- */

.footer {
	background: #213F98;
	padding: 1em 0.5em;
}
.svg--wrap svg {
	max-width: 100%;
}
p.copy--right {
	font-size: 0.75rem;
	color: #fff;
	margin: 0;
	padding: 0;
	text-align: left;
	font-family: 'Work Sans', sans-serif;
}
.footer .nav {
	float: right;
}
.footer .nav ul {
	list-style: none;
	margin: 0;
}
.footer .nav a {
	color: #fff;
	text-decoration: none;
	font-size: 0.75rem;
	vertical-align: 0.35em;
	font-family: 'Work Sans', sans-serif;
}
@media (min-width: 992px) {
	.footer {
		background: #213F98;
		padding: 2em 0.5em;
	}
	p.copy--right {
		font-size: 1rem;
		text-align: center;
		padding-left: 8.5rem;
	}
	.footer .nav a {
		font-size: 1rem;
	}
}
