@charset "utf-8";
/* CSS Document */
/*
Theme Name: ORIGINAL
Description: オリジナルテーマ
Version: 1.1
Author: RYUJI KIRA

Hand-editable edition
Structure: Base / Layout / Components / Top / Lower / Category / Single / Recruit / Responsive
Source: style-cleaned.css reorganized
*/

@import url("https://fonts.googleapis.com/css?family=Lato:400,700|Noto+Sans+JP:400,700");
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;900&display=swap");

/* =========================================
   Base
========================================= */

/* =========================================
   Base / Utilities
========================================= */

.cf:after{
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.cf{
	display: block;
}

* html .clearfix{
	height: 1%;
}

.boxSizing{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

html,body{
	height: 100%;
	width: 100%;
	min-width: 100%;
}

body{
	font-family: Lato, "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	color: #222;
	letter-spacing: 0.1em;
	padding-top: 58px;
	background: #f8fafc;
}

img{
	max-width: 100%;
	height: auto;
}

a{
	color: #222;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all  0.3s ease;
}

a:hover{
	color: #CCC;
}

.big{
	font-size: 1.4em;
}

.small{
	font-size: 0.6em;
}

.bg-brack{
	display: inline-block;
	background: #000;
	padding: 10px 15px;
	font-size: 0.8em;
	color: #FFF;
	margin-right: 10px;
	vertical-align: super;
	margin: 10px 0;
}

.bgglay{
	background: #EEE;
	padding: 30px;
}

.arrow-down{
	margin-bottom: 30px;
	font-size: 3em;
}

.mb0{
	margin-bottom: 0 !important;
}

.mb10{
	margin-bottom: 10px;
}

.mb30{
	margin-bottom: 30px;
}

.mb50{
	margin-bottom: 50px;
}

.sp{
	display: none !important;
}

.menu-sp{
	display: none !important;
}

.pc{
	display: inline !important;
}

.mb{
	display: none !important;
}

.grecaptcha-badge{
	visibility: hidden;
}

/* =========================================
   Plugins / Page Top
========================================= */

.pagetop{
	opacity: 1 !important;
	transform: scale(1) !important;
	z-index: 9999;
	position: fixed;
	bottom: 55px;
	right: 55px;
	filter: alpha(opacity=0);
	-webkit-transform: scale(0.3);
	-moz-transform: scale(0.3);
	-ms-transform: scale(0.3);
	-o-transform: scale(0.3);
	-webkit-transition: all .4s;
	-moz-transition: all .4s;
	-o-transition: all .4s;
	transition: all .4s;
}

.pagetop a{
	display: block;
	width: 50px;
	height: 50px;
	background-color: #000;
	text-align: center;
	color: #fff;
	font-size: 1em;
	text-decoration: none;
	line-height: 50px;
	border-radius: 50%;
	position: relative;
	z-index: 10000;
}

/* =========================================
   Plugins / Pagination
========================================= */

.wp-pagenavi{
	clear: both;
	text-align: center;
	margin-bottom: 100px;
	margin-top: -50px;
}

.wp-pagenavi a, .wp-pagenavi span{
	display: inline-block;
	color: #444;
	background-color: #EEE;
	padding: 8px 15px;
	margin: 0 1px;
	white-space: nowrap;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
	-webkit-transition: 0.2s ease-in-out;
	-moz-transition: 0.2s ease-in-out;
	-o-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
}

.wp-pagenavi a:hover, .wp-pagenavi span.current{
	color: #FFF;
	background-color: #666;
	border-color: #666;
}

.wp-pagenavi span.current{
	color: #FFF;
	background-color: #333;
	border-color: #333;
	font-weight: bold;
}

.pagination, .wp-pagenavi{
	margin-top: 20px;
	margin-bottom: 60px;
	text-align: center;
}

.page-numbers{
	display: inline-block;
	margin: 0 6px;
	padding: 12px 16px;
	border-radius: 12px;
	background: #fff;
	color: #24324a;
	text-decoration: none;
	box-shadow: 0 8px 20px rgba(0,0,0,.05);
}

.page-numbers.current{
	background: #7f9ad1;
	color: #fff;
}

.nav-links{
	text-align: center;
	margin: 20px 0 60px;
}

/* =========================================
   Plugins / Contact Form 7
========================================= */

.wpcf7 input,select,textarea{
	border: 1px #CCC solid;
	padding: 10px;
	margin: 10px 0;
}

.wpcf7 p{
	margin-bottom: 30px;
}

.wpcf7-not-valid-tip{
	color: #666 !important;
	font-size: 0.9em !important;
}

.wpcf7-submit{
	text-align: center;
	color: #FFF;
	width: 100%;
	cursor: pointer;
}

.wpcf7-validation-errors{
	border: 2px solid #EEE !important;
	font-size: 0.9em !important;
	color: #666 !important;
	padding: 10px !important;
}

input.wpcf7-form-control.wpcf7-submit{
	padding: 20px;
	margin: 30px 0 0 0;
	background: #b3b3b3;
}

.table-entry table{
	width: 100%;
}

.table-entry table th{
	border: 1px solid #CCC;
	padding: 10px 20px;
	white-space: nowrap;
	background: #EEE;
}

.table-entry table td{
	border: 1px solid #CCC;
	padding: 10px;
}

.table-entry table th span{
	background: #e43b3b;
	color: #FFF;
	padding: 5px 10px;
	border-radius: 5px;
	display: inline-block;
	font-size: 0.7em;
	margin-right: 10px;
}

/* =========================================
   Components
========================================= */

/* =========================================
   Tables
========================================= */

.tablepress{
	width: 100%;
	margin-bottom: 50px;
}

.tablepress td{
	border: 1px solid #CCC;
	padding: 10px;
}

td.column-1{
	white-space: nowrap;
	width: 20%;
}

.basic-table{
	font-size: 0.8em;
	width: 100%;
}

.basic-table td{
	border: 1px solid #CCC;
	padding: 15px;
}

.basic-table th{
	border: 1px solid #CCC;
	padding: 15px;
	white-space: nowrap;
	color: #3257af;
	font-weight: bold;
}

.basic-table2{
	font-size: 0.8em;
	width: 100%;
	margin-bottom: 30px;
}

.basic-table2 td{
	border: 1px solid #CCC;
	padding: 15px;
}

.basic-table2 th{
	border: 1px solid #CCC;
	padding: 15px;
	width: 10%;
	white-space: nowrap;
	font-weight: bold;
}

.basic-table3{
	font-size: 0.8em;
	width: 100%;
	margin-bottom: 30px;
}

.basic-table3 td{
	width: 50%;
	border: 1px solid #CCC;
	padding: 15px;
}

table.base th{
	white-space: nowrap;
	padding: 10px 20px;
	border: 1px solid #CCC;
}

table.base{
	font-size: 0.9em;
	width: 100%;
	line-height: 2.0em;
	font-feature-settings: "palt";
}

table.base td{
	border: 1px solid #CCC;
	padding: 10px 20px;
}

table.no-line{
	width: 100%;
}

.wp-caption{
	max-width: 100%;
	height: auto;
	text-align: center;
	background-color: #f8f8f8;
	padding-top: 4px;
	margin: 10px 0 20px 0;
	border-radius: 3px;
}

.wp-caption img{
	margin: 0;
	padding: 0;
	border: 0 none;
}

.wp-caption p.wp-caption-text{
	font-size: 11px;
	line-height: 17px;
	padding: 0 4px 5px;
	margin: 0;
}

/* =========================================
   Slider
========================================= */

.main-carousel{
	width: 100%;
	height: auto;
	margin-bottom: 50px;
}

.carousel-cell{
	width: 100%;
	height: auto;
}

.carousel-cell img{
	width: 100%;
	height: auto;
}

.thumbnail{
	margin-bottom: 10px;
}

.thumbnail img,.thumbnail-nav img{
	width: 100%;
}

.slick-slide{
	box-sizing: border-box;
}

.slick-slider div{
	transition: none;
}

/* =========================================
   Layout
========================================= */

section.w1080{
	width: min(1080px, 100% - 40px);
	margin: 0 auto;
}

#container{
}

#contents-page{
	width: 1100px;
	margin: 0 auto;
}

/* =========================================
   Header / Navigation
========================================= */

header{
	background: rgba(255,255,255,0.92);
	width: 100%;
	z-index: 9999;
	position: fixed;
	top: 0;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 8px 30px rgba(0,0,0,0.04);
}

.header-inr{
	position: relative;
	border-bottom: none;
	min-height: 78px;
}

.header-inr h1{
	float: left;
	padding: 16px 0 0 30px;
}

.header-inr h1 a{
	text-decoration: none;
}

.header-inr h1 span{
	display: inline-block;
	font-size: 0.9em;
	vertical-align: middle;
	margin-left: 30px;
}

#header-box h1 img{
	width: 380px;
	height: auto;
	vertical-align: middle;
}

#gnav{
	float: right;
	letter-spacing: -.4em;
	position: relative;
	z-index: 10001;
}

.header-line{
	display: inline-block;
	letter-spacing: 0.1em;
}

.header-line a{
	display: block;
	text-decoration: none;
	line-height: 52px;
	background: #2f3b52;
	color: #FFF;
	padding: 0 24px;
	border-radius: 999px;
	margin-top: 12px;
}

.header-line a:hover{
	color: #CCC;
}

.header-entry{
	display: inline-block;
	vertical-align: top;
	letter-spacing: 0.1em;
}

.header-entry a{
	display: block;
	text-decoration: none;
	line-height: 52px;
	background: linear-gradient(135deg, #7f9ad1 0%, #90b4e8 100%);
	padding: 0 24px;
	color: #FFF;
	border-radius: 999px;
	margin-top: 12px;
	box-shadow: 0 8px 20px rgba(127,154,209,0.28);
}

.header-entry a:hover{
	color: #CCC;
}

.nav-button-box{
	padding: 20px 24px 20px 18px;
	display: inline-block;
	z-index: 10002;
	vertical-align: top;
	position: relative;
}

.nav-button{
	display: block;
	cursor: pointer;
	z-index: 10003;
	position: relative;
	width: 40px;
	height: 36px;
}

.nav-wrap{
	position: fixed;
	left: 0;
	top: 0;
	display: none;
	width: 100%;
	height: 100vh;
	background: rgba(33,49,76,0.96);
	z-index: 10000;
}

.nav-wrap ul{
	letter-spacing: normal;
	font-size: 2.8em;
	padding: 110px 100px 80px;
	font-family: "Poppins", sans-serif;
}

.nav-wrap ul li{
	margin-bottom: 18px;
}

.nav-wrap ul li a{
	display: inline-flex;
	align-items: baseline;
	text-decoration: none;
	color: #ffffff;
	transition: .25s ease;
}

.nav-wrap ul li a:hover{
	text-decoration: none;
	color: #9fc0f3;
	transform: translateX(6px);
}

.nav-wrap ul li a span{
	font-size: 0.4em;
	margin-left: 20px;
	vertical-align: middle;
	color: rgba(255,255,255,0.82);
	font-family: "Noto Sans JP", sans-serif;
	letter-spacing: 0.08em;
}

.nav-button span{
	display: inline-block;
	transition: all 0.4s;
	box-sizing: border-box;
	position: absolute;
	left: 0;
	width: 100%;
	height: 4px;
	background-color: #222;
	border-radius: 4px;
}

.nav-button span:nth-of-type(1){
	top: 0;
}

.nav-button span:nth-of-type(2){
	top: 16px;
}

.nav-button span:nth-of-type(3){
	bottom: 0;
}

.nav-button.active span:nth-of-type(1){
	-webkit-transform: translateY(16px) rotate(-45deg);
	transform: translateY(16px) rotate(-45deg);
}

.nav-button.active span:nth-of-type(2){
	opacity: 0;
}

.nav-button.active span:nth-of-type(3){
	-webkit-transform: translateY(-16px) rotate(45deg);
	transform: translateY(-16px) rotate(45deg);
}

.headrightbnr{
	position: relative;
	z-index: 30;
}

.headrightbnr a{
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-lr;
	text-decoration: none;
	background: linear-gradient(180deg, #43c07a 0%, #1e8f58 100%);
	color: #FFF;
	display: block;
	padding: 24px 18px;
	position: fixed;
	right: 0;
	top: 150px;
	border-radius: 18px 0 0 18px;
	box-shadow: 0 10px 30px rgba(232,132,126,0.28);
	z-index: 9999;
	animation: floatBtn 3.6s ease-in-out infinite;
}

.nav-button.active span{
	background-color: #fff !important;
}

.nav-button.active{
	position: fixed;
	top: 20px;
	right: 24px;
	width: 44px;
	height: 44px;
	z-index: 10000;
}
@keyframes floatBtn {
	0%   { transform: translateY(0); }
	50%  { transform: translateY(-6px); }
	100% { transform: translateY(0); }
}
/* =========================================
   Footer
========================================= */

footer{
	width: 100%;
	border-top: 1px solid #CCC;
}

.footLeft{
	float: left;
	padding: 70px 50px;
}

.footLeft01{
	display: inline-block;
	margin-right: 70px;
}

.footLeft01 img{
	width: 300px;
	margin-bottom: 20px;
}

.footLeft02{
	display: inline-block;
}

.footLeft02 a{
	text-decoration: none;
}

.foot-right{
	float: right;
	padding: 70px 50px;
	border-left: 1px solid #CCC;
	overflow: hidden;
	width: 20%;
}

.foot-right a{
	display: block;
	border: 1px solid #888;
	text-align: center;
	text-decoration: none;
	padding: 20px;
	margin-top: 40px;
}

.footEnd{
	background: #1a2435;
	text-align: center;
	color: #FFF;
	padding: 28px 7%;
}

.footEnd ul{
	margin-bottom: 12px;
}

.footEnd ul li{
	display: inline-block;
	margin: 0 5px;
	font-size: 2em;
}

.footEnd ul li a{
	color: #fff;
}

.siteFooter{
	background: #24324a;
	border-top: none;
	color: #fff;
}

.footerCta{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 70px 7%;
	border-bottom: 1px solid rgba(255,255,255,0.12);
}

.footerCta__text{
	width: 60%;
}

.footerCta__lead{
	font-family: "Poppins", sans-serif;
	font-size: 0.85em;
	letter-spacing: 0.18em;
	margin-bottom: 16px;
	color: #a8bddf;
}

.footerCta__text h3{
	font-size: 2.2em;
	line-height: 1.5;
	font-weight: 700;
	margin-bottom: 18px;
}

.footerCta__text p{
	line-height: 2;
	color: rgba(255,255,255,0.82);
}

.footerCta__button{
	width: 320px;
	flex-shrink: 0;
}

.footerCta__button a{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 160px;
	text-decoration: none;
	color: #24324a;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 20px 40px rgba(0,0,0,0.18);
	transition: transform .35s ease, box-shadow .35s ease;
}

.footerCta__button a:hover{
	transform: translateY(-6px);
	box-shadow: 0 28px 46px rgba(0,0,0,0.24);
	color: #24324a;
}

.footerCta__button a span{
	font-family: "Poppins", sans-serif;
	font-size: 1.6em;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-bottom: 8px;
}

.footerCta__button a small{
	font-size: 0.9em;
	letter-spacing: 0.08em;
}

.footerMain{
	display: flex;
	justify-content: space-between;
	gap: 50px;
	padding: 60px 7%;
}

.footerBrand{
	width: 42%;
}

.footerBrand img{
	width: 300px;
	margin-bottom: 24px;
	filter: brightness(0) invert(1);
}

.footerBrand h5{
	font-size: 1.05em;
	font-weight: bold;
	margin-bottom: 20px;
	line-height: 1.8;
}

.footerBrand p{
	line-height: 2;
	color: rgba(255,255,255,0.78);
}

.footerNav{
	width: 50%;
}

.footerNav ul{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 30px;
}

.footerNav ul li a{
	display: block;
	text-decoration: none;
	color: #fff;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255,255,255,0.14);
}

.footerNav ul li a:hover{
	color: #a8bddf;
	border-bottom-color: #a8bddf;
}

#copyrights{
	color: rgba(255,255,255,0.62);
}

/* =========================================
   Shared Components
========================================= */

.box-link{
	cursor: pointer;
}

.box-link, .box-link::before, .box-link::after{
	-webkit-transition: all .3s;
	transition: all .3s;
}

.box-link:hover{
	background: #f9f9f9;
}

h2{
	position: relative;
	font-family: "Poppins", sans-serif;
	font-size: 4em;
	text-align: center;
	margin-bottom: 50px;
	font-weight: 900;
	color: #FFF;
	letter-spacing: 0.04em;
}

h2 span{
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.3em;
	display: block;
}

.readmore{
	margin-top: 70px;
	text-align: center;
}

.readmore a{
	position: relative;
	text-align: center;
	display: inline-block;
	background: #FFF;
	padding: 20px 200px;
	text-decoration: none;
	border: 1px solid #777575;
}

.readmore a i{
	position: absolute;
	right: 10px;
}

.bgbtn a{
	position: relative;
	text-align: center;
	display: inline-block;
	border: 1px solid #FFF;
	color: #FFF;
	padding: 20px 200px;
	text-decoration: none;
}

.bgbtn a i{
	position: absolute;
	right: 10px;
}

.bgbtn a:hover{
	background: rgba(255,255,255,0.2);
}

.tagname a{
	display: inline-block;
	background: #eef3fb;
	text-decoration: none;
	margin-right: 5px;
	margin-bottom: 5px;
	padding: 5px 10px;
	font-size: 0.7em;
	border-radius: 15px;
	color: #222;
}

.tagname a:hover{
	background: #7f9ad1;
	color: #FFF;
}

.catname span{
	margin-right: 5px;
}

.catname{
	font-size: 0.9em;
	margin-bottom: 5px;
	letter-spacing: normal;
	color: #60708d;
}

.moreBtn{
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 4px;
	min-width: 320px;
	padding: 22px 72px 22px 36px !important;
	border-radius: 999px;
	background: rgba(255,255,255,0.12);
	border: 1px solid rgba(255,255,255,0.7) !important;
	box-shadow: 0 12px 30px rgba(0,0,0,0.12);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	overflow: hidden;
	transition: transform .35s ease, background .35s ease, box-shadow .35s ease !important;
}

.moreBtn::before{
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	width: 70%;
	height: 100%;
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.35) 50%, rgba(255,255,255,0) 100%);
	transform: skewX(-20deg);
	transition: left .55s ease;
}

.moreBtn:hover{
	transform: translateY(-3px);
	background: rgba(255,255,255,0.2);
	box-shadow: 0 18px 35px rgba(0,0,0,0.18);
}

.moreBtn:hover::before{
	left: 150%;
}

.moreBtn .btnEn{
	font-family: "Poppins", sans-serif;
	font-size: 0.8em;
	letter-spacing: 0.18em;
	line-height: 1;
}

.moreBtn .btnJp{
	font-size: 1em;
	line-height: 1.4;
}

.moreBtn i{
	position: absolute !important;
	right: 24px !important;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .3s ease;
}

.moreBtn:hover i{
	transform: translateY(-50%) translateX(6px);
}

.moreBtn .btnWrap{
	transform: translateX(10px);
}

.moreBtn .btnEn, .moreBtn .btnJp{
	position: relative;
	left: 10px;
}

.backHomeBtn{
	display: block;
	max-width: 320px;
	margin: 50px auto;
	text-align: center;
	padding: 18px;
	border-radius: 999px;
	background: #24324a;
	color: #fff;
	text-decoration: none;
	font-weight: bold;
}

.backHomeBtn:hover{
	background: #7f9ad1;
	color: #fff;
}

/* =========================================
   Top
========================================= */

/* =========================================
   Top Page
========================================= */

#teaser{
	position: relative;
	background: #223048;
	overflow: hidden;
	padding: 26px 26px 20px;
}

#teaser .teaserCopy img{
	opacity: 1;
}

.teaserCopy{
	z-index: 2;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(92%, 980px);
	text-align: center;
	pointer-events: none;
}

#teaser img{
	opacity: 0.5;
	display: block;
	width: 100%;
	height: auto;
}

#stage01{
	background: #E5EEF7;
	padding: 100px;
	box-sizing: border-box;
}

#stage01 h2{
	color: #333;
}

#stage02{
	position: relative;
	color: #FFF;
	background: url(img/bg/mission.jpg)no-repeat center;
	padding: 100px;
	text-align: center;
	box-sizing: border-box;
	background-size: cover;
}

#stage02::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #50390e;
	opacity: 0.5;
	display: block;
}

#stage03{
	position: relative;
	color: #FFF;
	background: url(img/bg/people01.jpg)no-repeat center;
	padding: 100px;
	text-align: center;
	box-sizing: border-box;
	background-size: cover;
}

#stage03::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #50390e;
	opacity: 0.5;
	display: block;
}

.stage03Inr{
	background: #E5EEF7;
	padding: 100px;
	box-sizing: border-box;
}

#stage04{
	position: relative;
	color: #FFF;
	background: url(img/bg/features01.jpg)no-repeat center;
	padding: 100px;
	text-align: center;
	box-sizing: border-box;
	background-size: cover;
}

#stage04::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #50390e;
	opacity: 0.5;
	display: block;
}

.stage04Inr{
	background: #E5EEF7;
	padding: 100px;
	box-sizing: border-box;
}

#stage05{
	position: relative;
	color: #FFF;
	background: url(img/bg/work-culture.jpg)no-repeat center;
	padding: 100px;
	text-align: center;
	box-sizing: border-box;
	background-size: cover;
}

#stage05::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #50390e;
	opacity: 0.5;
	display: block;
}

#stage06{
	position: relative;
	color: #FFF;
	background: url(img/bg/recruit.jpg)no-repeat center;
	padding: 100px;
	text-align: center;
	box-sizing: border-box;
	background-size: cover;
}

#stage06::before{
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #50390e;
	opacity: 0.5;
	display: block;
}

#stage07{
	padding: 100px;
	background: #fff;
}

.stage07Left{
	float: left;
	width: 30%;
	border-right: none;
	box-sizing: border-box;
}

.stage07Left h2{
	font-weight: 200;
	color: black;
}

.stage07Right{
	box-sizing: border-box;
	padding: 35px 45px;
	overflow: hidden;
	background: #f7f9fc;
	border-radius: 24px;
}

.stage07Right ul li{
	border-bottom: 1px solid #CCC;
	padding: 24px 0;
}

.stage07Right ul li a{
	text-decoration: none;
	display: block;
}

#stage08{
	padding: 100px 100px;
	background: linear-gradient(135deg, #eef4fb 0%, #f9fbfd 100%);
	box-sizing: border-box;
	text-align: center;
	padding-top: 110px;
	padding-bottom: 110px;
}

#stage08 p{
	font-size: 2em;
	letter-spacing: 0.2em;
	color: #24324a;
	font-weight: 700;
	line-height: 1.8;
}

ul.post li img{
	margin-bottom: 18px;
}

ul.post h3 a{
	display: block;
	text-decoration: none;
	margin: 10px 0;
}

.teaserCopy .copyEn{
	margin: 0 0 18px;
	color: #fff;
	font-size: clamp(46px, 9vw, 120px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-shadow: 0 4px 20px rgba(0,0,0,0.25);
}

.teaserCopy .copyJp{
	margin: 0;
	color: #fff;
	font-size: clamp(18px, 2.4vw, 42px);
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-shadow: 0 2px 12px rgba(0,0,0,0.25);
	display: inline-block;
	margin-top: 10px;
	padding: 10px 18px;
	
}

#teaser::after{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.24);
	z-index: 1;
	pointer-events: none;
}

.teaserTop, .teaserMiddle, .teaserUnder{
	position: relative;
	z-index: 0;
	margin-bottom: 10px;
}

.topPage{
	background: #f8fafc;
}

#teaser::before{
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(64,90,131,0.30) 0%, rgba(18,27,42,0.48) 100%);
	z-index: 1;
	pointer-events: none;
}

.teaserTop .slick-slide, .teaserMiddle .slick-slide, .teaserUnder .slick-slide{
	padding: 0 5px;
}

.teaserTop img, .teaserMiddle img, .teaserUnder img{
	border-radius: 18px;
	transform: scale(1);
	transition: transform .7s ease, opacity .7s ease, filter .7s ease;
	filter: saturate(0.95);
}

.teaserTop img:hover, .teaserMiddle img:hover, .teaserUnder img:hover{
	transform: scale(1.04);
	filter: saturate(1.08);
}

#stage01, .stage03Inr, .stage04Inr, #stage08{
	background: #f7f9fc;
}

#stage01, .stage03Inr, .stage04Inr, #stage07, #stage08{
	position: relative;
}

#stage01, #stage02, #stage03, #stage04, #stage05, #stage06, .stage03Inr, .stage04Inr, #stage07, #stage08{
	padding-left: 7%;
	padding-right: 7%;
}

#stage01 h2, .stage07Left h2{
	color: #24324a;
}

#stage02 h2, #stage03 h2, #stage04 h2, #stage05 h2, #stage06 h2, #stage02 a, #stage03 a, #stage04 a, #stage05 a, #stage06 a{
	position: relative;
	z-index: 2;
}

.topSectionLink{
	overflow: hidden;
}

.topSectionLink::after{
	content: "";
	position: absolute;
	left: -10%;
	bottom: -30px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(255,255,255,0.08);
	filter: blur(5px);
	z-index: 1;
}

.sectionLead{
	position: relative;
	z-index: 2;
}

ul.post li{
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(32,49,76,0.06);
	transition: transform .35s ease, box-shadow .35s ease;
	padding-bottom: 22px;
}

ul.post li:hover{
	transform: translateY(-6px);
	box-shadow: 0 18px 36px rgba(32,49,76,0.12);
}

ul.post h3, ul.post .catname, ul.post .tagname{
	padding-left: 20px;
	padding-right: 20px;
}

.stage07Right ul li a:hover{
	color: #7f9ad1;
}

#stage08 .readmore a{
	border-radius: 999px;
	background: linear-gradient(135deg, #7f9ad1 0%, #90b4e8 100%);
	color: #fff;
	border: none;
	box-shadow: 0 15px 30px rgba(127,154,209,0.28);
}

#stage08 .readmore a:hover{
	transform: translateY(-3px);
	color: #fff;
}

#stage01 .post.col4{
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	letter-spacing: normal;
}

#stage01 .post.col4 li{
	width: calc((100% - 84px) / 4);
	margin: 0 !important;
	background: #fff;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(32,49,76,0.08);
	transition: transform .35s ease, box-shadow .35s ease;
	padding-bottom: 22px;
	vertical-align: top;
}

#stage01 .post.col4 li:hover{
	transform: translateY(-6px);
	box-shadow: 0 18px 36px rgba(32,49,76,0.14);
}

#stage01 .post.col4 li > a{
	display: block;
}

#stage01 .post.col4 li img{
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	margin-bottom: 0;
}

#stage01 .post.col4 .catname{
	margin: 18px 22px 10px;
	font-size: 0.9em;
	font-weight: 500;
	color: #627390;
	letter-spacing: 0.03em;
	line-height: 1.5;
}

#stage01 .post.col4 .catname span{
	margin-right: 6px;
}

#stage01 .post.col4 h3{
	margin: 0 22px 14px;
	font-size: 1.25em;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.02em;
}

#stage01 .post.col4 h3 a{
	text-decoration: none;
	color: #24324a;
}

#stage01 .post.col4 h3 a:hover{
	color: #7f9ad1;
}

#stage01 .post.col4 .tagname{
	margin: 0 22px;
}

#stage01 .post.col4 .tagname a{
	display: inline-block;
	margin: 0 6px 8px 0;
	padding: 7px 14px;
	background: #eef3fb;
	border-radius: 999px;
	font-size: 0.78em;
	line-height: 1.4;
	text-decoration: none;
	color: #42577c;
}

#stage01 .post.col4 .tagname a:hover{
	background: #dce8fb;
	color: #24324a;
}

/* =========================================
   Lower
========================================= */

/* =========================================
   Lower Pages Common
========================================= */

.page-title{
	padding: 117px 0 40px;
	text-align: center;
	margin-bottom: 100px;
	width: 100%;
	background: #7f9ad1;
	color: #FFF;
}

.page-title h2{
	text-align: center;
	font-size: 1.8em;
	letter-spacing: 0.2em;
}

.basebox{
	margin-bottom: 100px;
}

.basebox.pickup h3{
	text-align: center;
	font-size: 1.8em;
	letter-spacing: 0.4em;
	margin-bottom: 30px;
}

.basebox.pickup p{
	text-align: center;
	line-height: 2.5em;
}

.basebox h4{
	border-top: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
	background: #FFF;
	padding: 20px 30px;
	text-align: left;
	margin-bottom: 50px;
	font-weight: bold;
}

.basebox h5{
	font-weight: bold;
	margin-bottom: 30px;
}

ul.col2{
	letter-spacing: -.4em;
	width: 100%;
}

ul.col2 li{
	letter-spacing: 0.1em;
	display: inline-block;
	width: 47%;
	vertical-align: top;
}

ul.col2 li:nth-child(odd){
	margin-right: 6%;
}

ul.col3{
	letter-spacing: -.4em;
	width: 100%;
}

ul.col3 li{
	letter-spacing: 0.1em;
	display: inline-block;
	width: 32%;
	vertical-align: top;
}

ul.col3 li:nth-child(3n-1){
	margin: 0 2%;
}

ul.col4{
	letter-spacing: -.4em;
	width: 100%;
}

ul.col4 li{
	letter-spacing: 0.1em;
	display: inline-block;
	width: 23.33333%;
	vertical-align: top;
	margin: 0 0 0 2%;
}

ul.col4 li:nth-child(4n/**/+1){
	margin: 0 0 0 0;
}

ul.col4.recruit li{
	margin-bottom: 20px;
	border: 1px solid #CCC;
	box-sizing: border-box;
}

ul.col4.recruit li p{
	text-align: left;
	padding: 0;
	font-weight: normal;
}

ul.col4.recruit li a{
	text-decoration: none;
}

ul.col4.recruit li .r-active{
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0;
	transition: 0.5s;
	z-index: -100;
}

ul.col4.recruit li a:hover .r-active{
	opacity: 1;
}

.recruit-back{
	display: block;
	text-align: center;
	margin-bottom: 100px;
	background: #eadef6;
	padding: 30px;
	text-decoration: none;
}

.recruit-back:hover{
	background: #EEE;
}

.tag-title h3{
	font-weight: bold;
	font-size: 1.2em;
	letter-spacing: 0.4em;
	margin-bottom: 30px;
}

.tag-title{
	text-align: center;
	border-top: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
	margin-bottom: 100px;
	padding: 30px 0;
}

.tag-title li{
	display: inline-block;
	margin: 5px;
}

.tag-title li a{
	display: block;
	background: #cadbf9;
	text-decoration: none;
	padding: 5px 15px;
	border-radius: 15px;
	font-size: 0.8em;
	color: #222;
}

.tag-title li a:hover{
	background: #7f9ad1;
	color: #FFF;
}

.missionBox{
	background: #fff;
	border-radius: 34px;
	padding: 48px 52px;
	box-shadow: 0 14px 36px rgba(32,49,76,0.07);
	margin: 0 0 60px;
}

.missionBox ul.col2{
	display: block;
	letter-spacing: normal;
}

.missionBox ul.col2 li{
	width: 100%;
	margin: 0;
}

.missionBox ul.col2 li:first-child{
	max-width: 520px;
	margin: 0 auto 34px;
}

.missionBox img{
	display: block;
	width: 100%;
	height: auto;
	border-radius: 24px;
}

.missionBox h4{
	font-size: 2.2em;
	line-height: 1.45;
	font-weight: 700;
	color: #24324a;
	margin: 0 0 28px;
	letter-spacing: 0.04em;
	text-align: center;
}

.missionBox p{
	font-size: 1em;
	line-height: 2.1;
	color: #33445f;
	margin: 0 0 18px;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
}

.missionBox .name{
	display: inline-block;
	margin-top: 10px;
	font-size: 1.08em;
	font-weight: 700;
	color: #24324a;
	letter-spacing: 0.08em;
	position: relative;
	padding-left: 18px;
}

.missionBox li:last-child p:last-child{
	text-align: right;
	margin-top: 28px;
	margin-bottom: 0;
	max-width: 920px;
}

.cat-postbox{
	border-bottom: 1px solid #EEE;
	padding: 20px;
}

.cat-postbox h3 a{
	text-decoration: none;
}

.cat-postbox h3 a span{
	margin-right: 30px;
}

.archivebox{
	position: relative;
	background: #f7f9fc;
	padding: 26px;
	border-radius: 26px;
}

.archivebox select{
	width: 100%;
	padding: 22px 64px 22px 28px;
	font-size: 18px;
	font-weight: 700;
	color: #22314d;
	border: 1px solid #d7e0ee;
	border-radius: 18px;
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	outline: none;
}

.archivebox select::-ms-expand{
	display: none;
}

.archivebox::after{
	content: "";
	position: absolute;
	right: 58px;
	top: 50%;
	width: 10px;
	height: 10px;
	margin-top: -7px;
	border-right: 3px solid #22314d;
	border-bottom: 3px solid #22314d;
	transform: rotate(45deg);
	pointer-events: none;
	z-index: 5;
}

ul.col3.blog li{
	margin-bottom: 50px;
}

ul.col3.blog img{
	border: 1px solid #CCC;
	margin-bottom: 20px;
}

ul.col3.blog h3 a{
	text-decoration: none;
	font-weight: bold;
	margin-bottom: 10px;
	display: block;
}

ul.col3.blog .tagname a{
	background: #cadbf9;
}

ul.col3.blog .tagname a:hover{
	background: #7f9ad1;
	color: #FFF;
}

ul.col3.blog p{
	font-size: 0.8em;
	margin-bottom: 18px;
}

#editor-area a{
	color: #444;
}

#editor-area a:hover{
	background: #EEEEEE;
}

#editor-area img{
	max-width: 100%;
	height: auto;
	display: block;
}

#editor-area h4{
	font-size: 1.5em !important;
	line-height: 1.5em;
	margin-bottom: 25px !important;
	color: #000;
	font-weight: bold;
	border-left: 4px solid #CCC;
	padding: 0.7em 0 0.7em 1em;
}

#editor-area h5{
	font-size: 1.2em;
	padding-bottom: 10px;
	margin-bottom: 10px;
	color: #000;
	font-weight: bold;
}

#editor-area p{
	margin-bottom: 30px;
	line-height: 2.0em;
	font-feature-settings: "palt";
}

#editor-area p a{
	text-decoration-skip: none;
}

#editor-area strong{
	font-weight: bold;
}

#editor-area ul{
	margin: 30px 0 30px 5px;
}

#editor-area ul li{
	margin: 2px 0 2px 15px;
	list-style: disc;
}

#editor-area table{
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 30px;
}

#editor-area table th{
	padding: 10px;
	background-color: #eee;
	border: 1px solid #CCC;
}

#editor-area table td{
	padding: 10px;
	border: 1px solid #EEE;
}

#editor-area blockquote{
	padding: 20px;
	margin-bottom: 30px;
	background: #EEEEEE;
}

#editor-area blockquote p{
	margin: 0px !important;
}

#editor-area div.borderbox{
	border: 1px dotted #CCC;
	padding: 20px;
	margin-bottom: 30px;
}

#editor-area div.borderbox p{
	margin: 0px !important;
}

#editor-area div.borderbox ul{
	margin: 0px !important;
}

#editor-area iframe::before{
	content: "<div>";
}

#editor-area iframe::after{
	content: "</div>";
}

.missionBox__sectionTitle{
	margin: 0 0 26px;
	font-size: 1.25em;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #24324a;
}

.missionBox__photoWide{
	margin: 0 0 34px;
}

.missionBox__photoWide img{
	display: block;
	width: 100%;
	max-width: 980px;
	height: auto;
	border-radius: 26px;
	margin: 0 auto;
	box-shadow: 0 12px 24px rgba(32,49,76,0.08);
}

.missionBox__body{
	max-width: 980px;
	margin: 0 auto;
}

.missionBox__body h4{
	margin: 0 0 30px;
	font-size: 2.6em;
	line-height: 1.45;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-align: center;
	color: #24324a;
}

.missionBox__body p{
	margin: 0 0 20px;
	font-size: 1em;
	line-height: 2.05;
	letter-spacing: 0.03em;
	color: #33445f;
}

.missionBox__name{
	text-align: right;
	margin-top: 30px !important;
	margin-bottom: 0 !important;
}

.missionBox .name::before{
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 10px;
	height: 1px;
	background: #5f86c8;
	transform: translateY(-50%);
}

/* =========================================
   Category
========================================= */

.categoryPage{
	padding: 0 0 40px;
	background: #f8fafc;
}

.categoryHero{
	background: linear-gradient(135deg, #7f9ad1 0%, #95b8ea 100%);
	padding: 130px 20px 60px;
	margin-bottom: 70px;
}

.categoryHero__inner{
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
	color: #fff;
}

.categoryHero__sub{
	font-family: "Poppins", sans-serif;
	font-size: 0.9em;
	letter-spacing: 0.2em;
	margin-bottom: 12px;
	opacity: 0.9;
}

.categoryHero h2{
	margin-bottom: 0;
	color: #fff;
	font-size: 3.2em;
}

.categoryTagTitle{
	background: #fff;
	border: none;
	border-radius: 24px;
	padding: 35px 30px;
	box-shadow: 0 12px 30px rgba(32,49,76,0.06);
	margin-bottom: 60px;
}

.categoryTagTitle h3{
	font-weight: bold;
	font-size: 1.1em;
	letter-spacing: 0.12em;
	margin-bottom: 22px;
	color: #24324a;
}

.categoryTagTitle li a{
	background: #eef3fb;
	padding: 8px 16px;
	border-radius: 999px;
}

.categoryTagTitle li a:hover{
	background: #7f9ad1;
	color: #fff;
}

.categoryCardList{
	align-items: stretch;
}

.categoryCardList li.categoryCard{
	background: #fff;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(32,49,76,0.08);
	margin-bottom: 30px;
	transition: transform .35s ease, box-shadow .35s ease;
}

.categoryCardList li.categoryCard:hover{
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(32,49,76,0.14);
}

.categoryCard__thumb{
	display: block;
	overflow: hidden;
}

.categoryCard__thumb img{
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 0 !important;
	transition: transform .6s ease;
}

.categoryCard:hover .categoryCard__thumb img{
	transform: scale(1.05);
}

.categoryCard__body{
	padding: 22px 22px 20px;
}

.categoryCard__body h3 a{
	font-weight: bold;
	line-height: 1.7;
	text-decoration: none;
	color: #24324a;
}

.categoryCard__body h3 a:hover{
	color: #7f9ad1;
}

.categoryEmpty{
	width: 100% !important;
	background: #fff;
	border-radius: 20px;
	padding: 40px;
	box-shadow: 0 10px 30px rgba(32,49,76,0.06);
}

/* =========================================
   All Post
========================================= */

.articleHero{
	background: linear-gradient(135deg,#7f9ad1 0%,#95b8ea 100%);
}

.articleHero__lead{
	color: rgba(255,255,255,.92);
	margin-top: 15px;
	font-size: 1.05em;
	letter-spacing: .08em;
}

/* =========================================
   Single
========================================= */

.single-postbox{
	border-bottom: 1px solid #EEE;
	padding: 20px 0;
	margin-bottom: 50px;
}

.single-postbox h3{
	font-size: 1.8em;
	border-bottom: none;
	margin-bottom: 0;
	padding: 0;
}

.single-postbox h3 span{
	font-size: 0.8em;
	margin-right: 30px;
}

.single-postbox h3 br{
	display: none;
}

.singleHero{
	background: linear-gradient(135deg, #7f9ad1 0%, #95b8ea 100%);
}

.singlePage{
	background: #f8fafc;
	padding-bottom: 40px;
}

.singleArticleWrap{
	max-width: 900px;
	margin: 0 auto;
}

.singleArticleCard{
	background: #fff;
	border-radius: 28px;
	padding: 50px 56px;
	box-shadow: 0 16px 40px rgba(32,49,76,0.08);
	margin-bottom: 40px;
	border-bottom: none;
}

.singleArticleHead{
	margin-bottom: 30px;
}

.singleArticleMeta{
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-bottom: 18px;
}

.singleArticleCat{
	display: inline-block;
	padding: 8px 14px;
	border-radius: 999px;
	background: #eef3fb;
	color: #4f6486;
	font-size: 0.82em;
	font-weight: bold;
	letter-spacing: 0.08em;
}

.singleArticleDate{
	font-size: 0.9em;
	color: #7a8699;
}

.singleArticleTitle{
	font-size: 2.2em;
	line-height: 1.5;
	font-weight: 700;
	color: #24324a;
	margin: 0;
}

.singleArticleThumb{
	margin: 0 0 35px;
	border-radius: 22px;
	overflow: hidden;
}

.singleArticleThumb img{
	display: block;
	width: 100%;
	height: auto;
}

.singleArticleBody{
	font-size: 1em;
	line-height: 2;
	color: #24324a;
}

.singleHero.recruitSingleHero, .recruitSingleHero{
	background: linear-gradient(135deg, #6f96d8 0%, #8fb9f2 100%);
}

/* =========================================
   Recruit
========================================= */

/* =========================================
   Recruit Archive
========================================= */

.recruitPage{
	background: #f8fafc;
	padding-bottom: 40px;
}

.recruitHero{
	background: linear-gradient(135deg, #7f9ad1 0%, #95b8ea 100%);
}

.recruitHero__lead{
	margin-top: 18px;
	color: rgba(255,255,255,0.92);
	font-size: 1.05em;
	letter-spacing: 0.08em;
	line-height: 1.9;
}

.recruitCardList{
	align-items: stretch;
}

.recruitCardList li.recruitCard{
	margin-bottom: 30px;
	background: transparent;
	border: none;
}

.recruitCard__inner{
	position: relative;
	display: block;
	flex-direction: column;
	justify-content: space-between;
	min-height: 250px;
	padding: 26px 24px 24px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(32,49,76,0.08);
	text-decoration: none;
	color: #24324a;
	transition: transform .35s ease, box-shadow .35s ease;
	box-sizing: border-box;
	overflow: hidden;
	height: 100%;
}

a.recruitCard__inner:hover{
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(32,49,76,0.14);
	color: #24324a;
}

.recruitCard h3{
	font-size: 1.25em;
	font-weight: 700;
	line-height: 1.7;
	margin: 28px 0 14px;
	color: #24324a;
	margin-bottom: 14px;
}

.recruitType{
	display: inline-block;
	font-size: 0.95em;
	color: #5d6d86;
	line-height: 1.6;
	padding-top: 14px;
	border-top: 1px solid #e5ebf4;
}

.recruitStatus{
	display: inline-block;
	align-self: flex-start;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 0.78em;
	font-weight: bold;
	letter-spacing: 0.12em;
	line-height: 1;
	margin-bottom: 16px;
}

.recruitStatus--on{
	background: #e7f5ec;
	color: #2d7b4e;
}

.recruitStatus--off{
	background: #f2f3f5;
	color: #6f7785;
}

.recruitArrow{
	position: absolute;
	right: 20px;
	bottom: 20px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #eef3fb;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9em;
	transition: transform .3s ease, background .3s ease, color .3s ease;
}

a.recruitCard__inner:hover .recruitArrow{
	transform: translateX(4px);
	background: #7f9ad1;
	color: #fff;
}

.recruitCard.is-closed .recruitCard__inner{
	background: #f8f9fb;
	box-shadow: inset 0 0 0 1px #e5e9f1;
}

.recruitCard.is-closed h3{
	color: #5e6776;
}

.recruitCard.is-closed .recruitType{
	color: #7a8391;
	border-top-color: #e1e6ee;
}

.recruitCard__inner:hover{
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(32,49,76,0.14);
	color: #24324a;
}

.recruitCard__thumb img{
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 0 !important;
	transition: transform .6s ease;
}

.recruitCard__inner:hover .recruitCard__thumb img{
	transform: scale(1.05);
}

.recruitCard__content{
	position: relative;
	padding: 22px 22px 60px;
}

.recruitCard__inner:hover .recruitArrow{
	transform: translateX(4px);
	background: #7f9ad1;
	color: #fff;
}

.recruitStatus, .recruitSingleCat{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 16px;
	border-radius: 999px;
	line-height: 1;
	box-sizing: border-box;
}

/* =========================================
   Recruit Single
========================================= */

.recruitSingleHero{
	background: linear-gradient(135deg, #6f96d8 0%, #8fb9f2 100%);
}

.recruitSinglePage{
	background: #f8fafc;
	padding-bottom: 50px;
}

.recruitSingleWrap{
	max-width: 980px;
	margin: 0 auto;
}

.recruitSingleCard{
	background: #fff;
	border-radius: 30px;
	padding: 50px 56px;
	box-shadow: 0 18px 45px rgba(32,49,76,0.08);
}

.recruitSingleHead{
	margin-bottom: 34px;
}

.recruitSingleMeta{
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.recruitSingleCat{
	background: #eef3fb;
	color: #4f6486;
	font-size: 0.82em;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.recruitSingleDate{
	font-size: 0.9em;
	color: #7a8699;
}

.recruitSingleTitle{
	font-size: 2.3em;
	line-height: 1.45;
	font-weight: 700;
	color: #24324a;
	margin: 0 0 18px;
}

.recruitSingleLead{
	font-size: 1.02em;
	line-height: 2;
	color: #5c6a80;
	max-width: 820px;
}

.recruitSingleThumb{
	margin: 0 0 36px;
	border-radius: 24px;
	overflow: hidden;
}

.recruitSingleThumb img{
	display: block;
	width: 100%;
	height: auto;
}

.recruitEntryCtaTop{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 30px 34px;
	margin: 0 0 42px;
	background: linear-gradient(135deg, #f4f8fd 0%, #eef4fb 100%);
	border-radius: 24px;
	border: 1px solid #e2ebf7;
}

.recruitEntryCtaTop__text{
	width: calc(100% - 280px);
}

.recruitEntryCtaTop__text h3{
	font-size: 1.3em;
	font-weight: 700;
	line-height: 1.6;
	color: #24324a;
	margin-bottom: 10px;
}

.recruitEntryCtaTop__text p{
	font-size: 0.95em;
	line-height: 1.9;
	color: #5f6f87;
}

.recruitEntryCtaTop__btn{
	width: 240px;
	flex-shrink: 0;
}

.recruitEntryCtaTop__btn a{
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 66px;
	border-radius: 999px;
	text-decoration: none;
	background: linear-gradient(135deg, #7f9ad1 0%, #90b4e8 100%);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.08em;
	box-shadow: 0 14px 28px rgba(127,154,209,0.25);
	transition: transform .3s ease, box-shadow .3s ease;
}

.recruitEntryCtaTop__btn a:hover{
	transform: translateY(-3px);
	box-shadow: 0 18px 32px rgba(127,154,209,0.32);
	color: #fff;
}

.recruitSingleBody{
	font-size: 1em;
	line-height: 2;
	color: #24324a;
	margin-bottom: 46px;
}

.recruitSingleBody table{
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 34px;
	overflow: hidden;
	border-radius: 18px;
}

.recruitSingleBody table th{
	width: 24%;
	background: #f3f6fb;
	color: #24324a;
	font-weight: 700;
	border: 1px solid #e3e9f2;
	padding: 18px 20px;
	vertical-align: top;
	text-align: left;
	white-space: nowrap;
}

.recruitSingleBody table td{
	border: 1px solid #e3e9f2;
	padding: 18px 20px;
	background: #fff;
	line-height: 1.9;
}

.recruitSingleBody h4{
	font-size: 1.35em !important;
	line-height: 1.6;
	margin: 40px 0 20px !important;
	color: #24324a;
	font-weight: 700;
	border-left: 5px solid #7f9ad1 !important;
	padding: 0.6em 0 0.6em 1em !important;
	background: #f8fbff;
	border-radius: 0 12px 12px 0;
}

.recruitSingleBody h5{
	font-size: 1.1em;
	font-weight: 700;
	color: #24324a;
	margin-bottom: 12px;
}

.recruitSingleBody p{
	line-height: 2;
	color: #33445f;
}

.recruitSingleBody ul{
	margin: 24px 0 30px 20px;
}

.recruitSingleBody ul li{
	margin-bottom: 10px;
}

.recruitActionBtn{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	min-height: 90px;
	border-radius: 20px;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}

.recruitActionBtn span{
	font-family: "Poppins", sans-serif;
	font-size: 1.05em;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin-bottom: 6px;
}

.recruitActionBtn small{
	font-size: 0.88em;
	letter-spacing: 0.06em;
}

.recruitActionBtn--primary{
	background: linear-gradient(135deg, #7f9ad1 0%, #90b4e8 100%);
	color: #fff;
	box-shadow: 0 16px 30px rgba(127,154,209,0.24);
}

.recruitActionBtn--primary:hover{
	transform: translateY(-4px);
	box-shadow: 0 22px 34px rgba(127,154,209,0.32);
	color: #fff;
}

.recruitActionBtn--secondary{
	background: #f3f6fb;
	color: #24324a;
	border: 1px solid #dbe5f1;
}

.recruitActionBtn--secondary:hover{
	transform: translateY(-4px);
	background: #eaf1fb;
	color: #24324a;
}

.recruitSingleMeta .recruitStatus, .recruitSingleMeta .recruitSingleCat{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 16px;
	border-radius: 999px;
	line-height: 1;
	margin-bottom: 0;
	box-sizing: border-box;
}

.recruitSingleMeta .recruitStatus{
	background: #e7f5ec;
	color: #2d7b4e;
	font-size: 0.82em;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.recruitSingleMeta .recruitSingleCat{
	background: #eef3fb;
	color: #4f6486;
	font-size: 0.82em;
	font-weight: 700;
	letter-spacing: 0.08em;
}

/* =========================================
   Misc
========================================= */

*, *::before, *::after{
	box-sizing: border-box;
}

ul.col-img li{
	text-align: center;
}

ul.col-img li img{
	margin-bottom: 10px;
}

.recruiting-on{
	display: block;
	background: #cadbf9;
	font-weight: normal !important;
}

.recruiting-off{
	display: none;
	font-weight: normal !important;
}

.recruit-on{
	display: block;
	background: #EEE;
	font-weight: normal !important;
}

.recruit-off{
	display: none;
	font-weight: normal !important;
}

a.news-bt{
	text-decoration: none;
	text-align: center;
	display: block;
	background: #3257af;
	width: 50%;
	margin: 0 auto;
	color: #FFF;
	padding: 20px;
	box-sizing: border-box;
}

a.news-bt:hover{
	background: #CCC;
	color: #222;
}

.archiveSection h4{
	border: none;
	background: none;
	padding: 0;
	margin-bottom: 18px;
	font-size: 1.2em;
	color: #24324a;
}

.archiveSection .archivebox{
	background: #fff;
	border-radius: 20px;
	padding: 24px;
	box-shadow: 0 10px 30px rgba(32,49,76,0.06);
}

.archiveSection .archivebox select{
	border: 1px solid #d9e2ef;
	border-radius: 12px;
	padding: 14px 16px;
	background: #f8fafc;
}

.recruitCtaSection{
	margin-top: 40px;
}

.bottomEntryCta{
	padding: 110px 7%;
	background: linear-gradient(135deg, #eef4fb 0%, #f9fbfd 100%);
	box-sizing: border-box;
	text-align: center;
}

.bottomEntryCta p{
	color: #24324a;
	font-size: 2em;
	font-weight: 700;
	line-height: 1.8;
}

.bottomEntryCta .readmore a{
	border-radius: 999px;
	background: linear-gradient(135deg, #7f9ad1 0%, #90b4e8 100%);
	color: #fff;
	border: none;
	box-shadow: 0 15px 30px rgba(127,154,209,0.28);
}

.bottomEntryCta .readmore a:hover{
	transform: translateY(-3px);
	color: #fff;
}

.recruitExcerpt{
	font-size: 0.92em;
	line-height: 1.8;
	color: #5d6d86;
}

.backListBtn{
	display: block;
	max-width: 320px;
	margin: 0 auto 30px;
	text-align: center;
	padding: 18px;
	border-radius: 999px;
	background: #24324a;
	color: #fff;
	text-decoration: none;
	font-weight: bold;
	box-shadow: 0 12px 28px rgba(36,50,74,0.18);
	transition: transform .3s ease, background .3s ease;
}

.backListBtn:hover{
	background: #7f9ad1;
	color: #fff;
	transform: translateY(-3px);
}

.recruitBottomActions{
	display: flex;
	gap: 20px;
	justify-content: center;
	flex-wrap: wrap;
}

.tagHero{
	background: linear-gradient(135deg, #7f9ad1 0%, #95b8ea 100%);
}

.tagHero__lead{
	margin-top: 16px;
	color: rgba(255,255,255,0.92);
	font-size: 1.02em;
	letter-spacing: 0.08em;
	line-height: 1.8;
}

.currentTagTitle ul{
	margin-top: 18px;
}

.currentTagLabel{
	display: inline-block;
	background: #7f9ad1;
	color: #fff;
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 0.95em;
	font-weight: bold;
	letter-spacing: 0.06em;
}

.archiveExcerpt{
	font-size: 0.92em;
	line-height: 1.8;
	color: #5d6d86;
	margin: 12px 0 16px;
}

.tagPage .categoryCard__body h3{
	margin-bottom: 10px;
}

.archiveHero{
	background: linear-gradient(135deg, #7f9ad1 0%, #95b8ea 100%);
}

.archiveHero__lead{
	margin-top: 16px;
	color: rgba(255,255,255,0.92);
	font-size: 1.02em;
	letter-spacing: 0.08em;
	line-height: 1.8;
}

.archivePage .categoryCard__body h3{
	margin-bottom: 10px;
}

.aboutPage{
	margin: 50px 0 0;
}

.aboutStaffPhoto, .aboutInfo, .aboutAccess{
	background: #fff;
	border-radius: 30px;
	padding: 42px 44px;
	box-shadow: 0 12px 32px rgba(32,49,76,0.06);
	margin: 0 0 44px;
}

.aboutStaffPhoto h3, .aboutInfo h3, .aboutAccess h3{
	font-size: 1.9em;
	line-height: 1.4;
	color: #24324a;
	margin: 0 0 24px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
}

.aboutStaffPhoto__img img{
	display: block;
	width: 100%;
	height: auto;
	border-radius: 24px;
}

.aboutStaffPhoto p{
	max-width: 820px;
	margin: 24px auto 0;
	font-size: 1em;
	line-height: 2;
	color: #33445f;
	text-align: center;
}

.aboutTable{
	width: 100%;
	border-collapse: collapse;
}

.aboutTable th, .aboutTable td{
	padding: 18px 16px;
	border-bottom: 1px solid #e5ebf3;
	font-size: 0.98em;
	line-height: 1.8;
	text-align: left;
	vertical-align: top;
	color: #33445f;
}

.aboutTable th{
	width: 180px;
	background: #f7f9fc;
	font-weight: 700;
	color: #24324a;
	white-space: nowrap;
}

.aboutMap{
	margin: 0 0 28px;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 8px 22px rgba(32,49,76,0.06);
}

.aboutAccessText h4{
	font-size: 1.08em;
	color: #24324a;
	margin: 0 0 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.aboutAccessText p{
	margin: 0 0 18px;
	font-size: 1em;
	line-height: 1.9;
	color: #33445f;
}

.aboutAccessText a{
	color: #5f86c8;
	text-decoration: underline;
}

.accessLinkList{
	margin: 0;
	padding-left: 1.2em;
}

.accessLinkList li{
	margin: 0 0 10px;
	line-height: 1.8;
}

.accessLinkList a{
	color: #5f86c8;
	text-decoration: underline;
}

.missionIntro{
	display: grid;
	grid-template-columns: 56% 1fr;
	column-gap: 48px;
	align-items: end;
	margin-bottom: 36px;
}

.missionIntro__photo img{
	display: block;
	width: 100%;
	height: auto;
	border-radius: 26px;
}

.missionIntro__heading{
	padding-bottom: 26px;
}

.missionIntro__heading h4{
	margin: 0;
	font-size: 2.65em;
	line-height: 1.45;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: #24324a;
}

.missionBody{
	max-width: 100%;
}

.missionBody p{
	margin: 0 0 20px;
	font-size: 1em;
	line-height: 2.05;
	letter-spacing: 0.03em;
	color: #33445f;
}


/* =========================================
   Responsive
========================================= */

@media screen and (min-width: 1280px) {

	/* =========================================
	   Base / Utilities
	========================================= */

	html,body{
		height: 100%;
		width: 100%;
		min-width: 100%;
	}

}

@media screen and (min-width:769px) {

	/* =========================================
	   Header / Navigation
	========================================= */

	.nav-button.active{
		position: fixed;
		top: 18px;
		right: 24px;
		width: 52px;
		height: 52px;
		z-index: 10000;
		overflow: visible;
	}

	.nav-button.active span{
		width: 40px;
		left: 6px;
		height: 4px;
	}

	.nav-button.active span:nth-of-type(1){
		top: 8px;
		transform: translateY(16px) rotate(-45deg);
	}

	.nav-button.active span:nth-of-type(2){
		top: 24px;
	}

	.nav-button.active span:nth-of-type(3){
		bottom: 8px;
		transform: translateY(-16px) rotate(45deg);
	}

}

@media screen and (max-width: 480px) {

	/* =========================================
	   Base / Utilities
	========================================= */

	html,body{
		height: 100%;
		width: 100%;
		min-width: 100%;
	}

	body{
		padding-top: 75px;
		font-size: 0.9em;
	}

	.sp{
		display: block !important;
	}

	.pc{
		display: none !important;
	}

	.mb50{
		margin-bottom: 20px;
	}

	/* =========================================
	   Plugins / Page Top
	========================================= */

	.pagetop{
		bottom: 10px;
		right: 10px;
	}

	/* =========================================
	   Plugins / Pagination
	========================================= */

	.wp-pagenavi{
		margin-bottom: 50px;
	}

	/* =========================================
	   Plugins / Contact Form 7
	========================================= */

	.wpcf7 select,textarea{
		padding: 5%;
		width: 90%;
	}

	.table-entry table td{
		display: block;
		border: none;
	}

	.table-entry table{
		border: 1px solid #CCC;
	}

	.table-entry table th{
		border: none;
	}

	input.wpcf7-form-control.wpcf7-text{
		padding: 5%;
		width: 90%;
	}

	input.w30{
		width: 20% !important;
	}

	/* =========================================
	   Tables
	========================================= */

	table.base th{
		white-space: nowrap;
		padding: 10px;
		border: none;
		display: block;
		border-bottom: 1px solid #CCC;
		background: #F5F5F5;
	}

	table.base td{
		border: none;
		border-bottom: 1px solid #CCC;
		padding: 10px 0;
		display: block;
		box-sizing: border-box;
	}

	.tablepress{
		margin-bottom: 30px;
		font-size: 1.0em;
	}

	.tablepress td.column-1{
		white-space: nowrap;
		width: 100%;
		background: #EEE;
		box-sizing: border-box;
	}

	.tablepress td, th{
		border: none;
		padding: 15px;
		display: block;
	}

	.basic-table{
		border: 1px solid #CCC;
	}

	.basic-table th{
		background: #EEE;
	}

	.basic-table td, th{
		border: none;
		padding: 15px;
		display: block;
	}

	.basic-table2{
		border: 1px solid #CCC;
	}

	.basic-table2 td, th{
		border: none;
		padding: 15px;
		display: block;
	}

	.basic-table2 th{
		width: 100%;
		white-space: nowrap;
		background: #EEE;
		box-sizing: border-box;
	}

	/* =========================================
	   Layout
	========================================= */

	section.w1080{
		width: 80%;
		margin: 0 auto;
	}

	#container{
		width: 100%;
		margin: 0;
		padding: 0;
	}

	/* =========================================
	   Header / Navigation
	========================================= */

	.header-inr h1{
		padding: 30px 0 0 17px;
		width: 50%;
	}

	.header-inr h1 span{
		display: block;
		font-size: 0.7em;
		margin-left: 5px;
		letter-spacing: 0;
		margin-top: 5px;
	}

	#header-box h1 img{
		width: 100%;
		height: auto;
	}

	.header-entry{
		background: #7f9ad1;
	}

	.header-entry a{
		line-height: 76px;
		margin-right: 10px;
		margin-left: 10px;
		font-size: 0.7em;
		color: #FFF;
		padding: 0;
		background: none;
	}

	.header-line{
		display: none;
	}

	.nav-wrap ul{
		font-size: 2em;
		padding: 100px 10%;
	}

	/* =========================================
	   Footer
	========================================= */

	footer{
		text-align: center;
	}

	.footLeft{
		float: none;
		padding: 0;
	}

	.footLeft01{
		margin-right: 0;
		padding: 50px 0;
	}

	.footLeft02{
		display: block;
		border-top: 1px solid #CCC;
	}

	.footLeft02 ul li{
		border-bottom: 1px solid #CCC;
		text-align: left;
	}

	.footLeft02 ul li a{
		padding: 10px;
		display: block;
	}

	.foot-right{
		float: none;
		padding: 50px 10%;
		border-left: none;
		width: 100%;
		box-sizing: border-box;
	}

	#copyrights{
		font-size: 0.5em;
		padding: 30px 0 100px;
	}

	.footunderbnr a{
		display: block;
		background: #f1a5a0;
		text-decoration: none;
		padding: 30px 0;
		font-size: 0.9em;
		color: #FFF;
	}

	/* =========================================
	   Shared Components
	========================================= */

	h2{
		font-size: 2em;
	}

	h2 span{
		font-size: 0.4em;
	}

	.readmore{
		margin-top: 10px;
	}

	.readmore a{
		display: block;
		padding: 20px;
	}

	.bgbtn a{
		display: block;
		padding: 20px;
	}

	/* =========================================
	   Top Page
	========================================= */

	#teaser p{
		font-size: 1.7em;
	}

	#stage01{
		padding: 50px 5%;
	}

	#stage02{
		padding: 50px 5%;
	}

	#stage03{
		padding: 50px 5%;
	}

	.stage03Inr{
		padding: 20px 5%;
	}

	ul.post li{
		border-bottom: 1px solid #CCC;
		padding-bottom: 20px;
	}

	ul.post li:last-child{
		border: none;
		padding: 0;
	}

	ul.post li img{
		margin-bottom: 10px;
		width: 40%;
		float: left;
		margin-right: 20px;
	}

	ul.post .catname{
		overflow: hidden;
	}

	ul.post h3 a{
		overflow: hidden;
		font-size: 0.9em;
	}

	ul.post .tagname{
		clear: both;
		overflow: hidden;
	}

	#stage04{
		padding: 50px 5%;
	}

	.stage04Inr{
		padding: 20px 5%;
	}

	#stage05{
		padding: 50px 5%;
	}

	#stage06{
		padding: 50px 5%;
	}

	#stage07{
		padding: 30px 5%;
	}

	.stage07Left{
		float: none;
		width: 100%;
		border-right: none;
	}

	.stage07Left h2{
		font-weight: 200;
		margin-bottom: 30px;
	}

	.stage07Right{
		padding: 0;
		overflow: hidden;
	}

	.stage07Right ul li:last-child{
		border: none;
	}

	#stage08{
		padding: 50px 5%;
	}

	#stage08 p{
		font-size: 1.2em;
		margin-bottom: 30px;
	}

	/* =========================================
	   Lower Pages Common
	========================================= */

	ul.col2.top li a{
		text-align: center;
	}

	.basebox{
		margin-bottom: 50px;
	}

	.basebox h4{
		padding: 20px 0;
		margin-bottom: 20px;
		font-weight: bold;
	}

	.basebox.pickup h3{
		text-align: center;
		font-size: 1.5em;
		letter-spacing: 0.1em;
		margin-bottom: 30px;
	}

	.basebox.pickup p{
		text-align: justify;
		line-height: 2em;
	}

	ul.col2 li{
		width: 100%;
		margin-bottom: 20px;
	}

	ul.col2 li:nth-child(odd){
		margin-right: 0;
		margin-bottom: 20px;
	}

	ul.col2 li:last-child{
		margin-bottom: 0;
	}

	ul.col3 li{
		width: 100%;
		margin-bottom: 20px;
	}

	ul.col3 li:nth-child(3n-1){
		margin: 0 0 20px 0;
	}

	ul.col4 li{
		width: 100%;
		margin: 0 0 20px;
	}

	ul.col4 li:nth-child(4n/**/+1){
		margin: 0 0 20px 0;
	}

	ul.col3.blog li{
		margin-bottom: 30px;
	}

	.page-title{
		padding: 35px 0 35px;
		margin-bottom: 50px;
	}

	.page-title h2{
		margin-bottom: 0;
		letter-spacing: 0;
		font-size: 1.5em;
	}

	.tab{
		padding: 10px 0;
		margin-bottom: 0 !important;
		border-bottom: 1px solid #CCC;
	}

	.tab-group{
		margin-bottom: 30px;
	}

	.panel-group{
		margin-bottom: 30px;
	}

	.faq-box{
		font-size: 0.9em;
		text-align: justify;
	}

	.faq-box li h4{
		padding: 20px 70px 20px 20px;
	}

	.cat-postbox h3 a span{
		display: block;
	}

	.cat-postbox{
		padding: 10px 0;
	}

	.tag-title{
		margin-bottom: 50px;
		padding: 30px 0;
	}

	.recruit-back{
		margin-bottom: 30px;
	}

	#editor-area h4{
		font-size: 1em !important;
		margin-bottom: 25px !important;
	}

	/* =========================================
	   Single
	========================================= */

	.single-postbox{
		padding: 0;
		margin-bottom: 30px;
	}

	.single-postbox h3{
		padding: 0 0 10px;
		font-size: 1em;
	}

	/* =========================================
	   Misc
	========================================= */

	.line-entry{
		position: fixed;
		bottom: 0;
		width: 100%;
		text-align: center;
		box-sizing: border-box;
		border-top: 1px solid #FFF;
	}

	.stage-bg{
		display: block;
		width: 100%;
		height: auto;
	}

	.title{
		text-align: center;
		padding: 50px 0;
		color: #FFF;
	}

	.title h2{
		font-size: 1.5em;
	}

	.title ul li{
		margin-bottom: 10px;
	}

	.title ul li a{
		text-decoration: none;
		color: #FFF;
	}

	.title ul li a:hover{
		opacity: 0.5;
	}

}

@media screen and (max-width: 768px) {

	/* =========================================
	   Base / Utilities
	========================================= */

	.pc{
		display: none !important;
	}

	.mb{
		display: inline !important;
	}

	/* =========================================
	   Header / Navigation
	========================================= */

	#header-box h1 img{
		width: 100%;
	}

	.headrightbnr a{
		border-radius: 14px 0 0 14px;
		padding: 18px 14px;
		top: 120px;
	}

	.header-entry, .header-line{
		display: none !important;
	}

	/* =========================================
	   Footer
	========================================= */

	.footerCta, .footerMain{
		display: block;
		padding: 50px 6%;
	}

	.footerCta__text, .footerCta__button, .footerBrand, .footerNav{
		width: 100%;
	}

	.footerCta__text h3{
		font-size: 1.5em;
		margin-bottom: 14px;
	}

	.footerCta__button{
		margin-top: 24px;
	}

	.footerCta__button a{
		min-height: 120px;
	}

	.footerMain{
		padding-top: 40px;
	}

	.footerBrand{
		margin-bottom: 32px;
	}

	.footerBrand img{
		width: 220px;
	}

	.footerNav ul{
		grid-template-columns: 1fr;
	}

	.footEnd{
		padding: 24px 6% 100px;
	}

	/* =========================================
	   Shared Components
	========================================= */

	.moreBtn{
		min-width: auto;
		width: 100%;
		padding: 16px 52px 16px 20px !important;
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		max-width: 320px;
		box-sizing: border-box;
		margin: 0 auto;
		gap: 2px;
		position: relative;
	}

	.moreBtn .btnEn{
		font-size: 0.7em;
		letter-spacing: 0.16em;
	}

	.moreBtn .btnJp{
		font-size: 0.95em;
		line-height: 1.4;
	}

	.moreBtn i{
		position: absolute !important;
		right: 18px !important;
		top: 50%;
		transform: translateY(-50%);
		font-size: 0.9em;
	}

	/* =========================================
	   Top Page
	========================================= */

	.teaserCopy{
		width: 92%;
	}

	.teaserCopy .copyEn{
		margin-bottom: 10px;
		line-height: 1.05;
	}

	.teaserCopy .copyJp{
		line-height: 1.5;
	}

	#teaser{
		padding: 12px 12px 8px;
	}

	#stage02, #stage03, #stage04, #stage05, #stage06{
		padding: 42px 5% 46px;
		min-height: 320px;
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
	}

	#stage02 h2, #stage03 h2, #stage04 h2, #stage05 h2, #stage06 h2{
		font-size: 2.8em;
		line-height: 1.05;
		margin-bottom: 18px;
	}

	#stage02 h2 span, #stage03 h2 span, #stage04 h2 span, #stage05 h2 span, #stage06 h2 span{
		font-size: 0.32em;
		line-height: 1.6;
		margin-top: 10px;
	}

	.sectionLead{
		width: 100%;
		text-align: center;
	}

	.topSectionLink::after{
		width: 140px;
		height: 140px;
		left: -30px;
		bottom: -20px;
	}

	#stage01 .post.col4{
		display: block;
	}

	#stage01 .post.col4 li{
		width: 100%;
		margin: 0 0 22px !important;
		padding-bottom: 18px;
		border-radius: 22px;
	}

	#stage01 .post.col4 li img{
		height: 210px;
	}

	#stage01 .post.col4 .catname{
		margin: 16px 18px 8px;
		font-size: 0.82em;
	}

	#stage01 .post.col4 h3{
		margin: 0 18px 12px;
		font-size: 1.05em;
		font-weight: 700;
		line-height: 1.5;
	}

	#stage01 .post.col4 .tagname{
		margin: 0 18px;
	}

	#stage01 .post.col4 .tagname a{
		font-size: 0.74em;
		padding: 6px 12px;
	}

	/* =========================================
	   Lower Pages Common
	========================================= */

	.missionBox{
		padding: 24px 18px;
		border-radius: 20px;
		margin-bottom: 32px;
	}

	.missionBox ul.col2{
		display: block;
	}

	.missionBox ul.col2 li:first-child, .missionBox ul.col2 li:last-child{
		width: 100%;
	}

	.missionBox ul.col2 li:first-child{
		margin-bottom: 20px;
		max-width: none;
		margin: 0 0 18px;
	}

	.missionBox img{
		border-radius: 16px;
	}

	.missionBox h4{
		font-size: 1.55em;
		line-height: 1.5;
		margin-bottom: 18px;
		text-align: left;
	}

	.missionBox p{
		font-size: 0.95em;
		line-height: 1.95;
		margin-bottom: 14px;
	}

	.missionBox li:last-child p:last-child{
		text-align: right;
		margin-top: 18px;
	}

	.missionBox .name{
		font-size: 1em;
	}

	.missionBox::after{
		left: 18px;
		right: 18px;
		bottom: 16px;
		transform: skewX(-20deg);
	}

	.missionBox__name{
		margin-top: 18px !important;
	}

	/* =========================================
	   Category
	========================================= */

	.categoryHero{
		padding: 95px 20px 40px;
		margin-bottom: 40px;
	}

	.categoryHero h2{
		font-size: 2em;
	}

	.categoryTagTitle{
		padding: 24px 18px;
		margin-bottom: 35px;
	}

	.categoryCard__body{
		padding: 18px 16px 16px;
	}

	/* =========================================
	   Single
	========================================= */

	.singleArticleCard{
		padding: 28px 18px;
		border-radius: 18px;
	}

	.singleArticleTitle{
		font-size: 1.45em;
		line-height: 1.6;
	}

	.singleArticleThumb{
		margin-bottom: 24px;
		border-radius: 16px;
	}

	.singleArticleMeta{
		margin-bottom: 14px;
	}

	/* =========================================
	   Recruit Archive
	========================================= */

	.recruitHero__lead{
		font-size: 0.95em;
		margin-top: 12px;
	}

	.recruitCard__inner{
		min-height: auto;
		padding: 20px 18px 18px;
		border-radius: 18px;
	}

	.recruitCard h3{
		font-size: 1.1em;
		margin: 18px 0 10px;
	}

	.recruitArrow{
		right: 16px;
		bottom: 16px;
		width: 38px;
		height: 38px;
	}

	.recruitCard__content{
		padding: 18px 16px 54px;
	}

	/* =========================================
	   Recruit Single
	========================================= */

	.recruitSingleCard{
		padding: 28px 18px;
		border-radius: 18px;
	}

	.recruitSingleTitle{
		font-size: 1.55em;
		line-height: 1.6;
	}

	.recruitSingleLead{
		font-size: 0.95em;
	}

	.recruitSingleThumb{
		margin-bottom: 24px;
		border-radius: 16px;
	}

	.recruitEntryCtaTop{
		display: block;
		padding: 22px 18px;
		margin-bottom: 28px;
		border-radius: 18px;
	}

	.recruitEntryCtaTop__text, .recruitEntryCtaTop__btn{
		width: 100%;
	}

	.recruitEntryCtaTop__text{
		margin-bottom: 16px;
	}

	.recruitEntryCtaTop__text h3{
		font-size: 1.08em;
	}

	.recruitEntryCtaTop__btn a{
		min-height: 56px;
	}

	.recruitSingleBody table, .recruitSingleBody tbody, .recruitSingleBody tr, .recruitSingleBody th, .recruitSingleBody td{
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.recruitSingleBody table th{
		border-bottom: none;
		width: 100%;
	}

	.recruitSingleBody table td{
		border-top: none;
		margin-bottom: 12px;
	}

	.recruitActionBtn{
		min-width: 100%;
		min-height: 78px;
		border-radius: 16px;
	}

	/* =========================================
	   Misc
	========================================= */

	.bottomEntryCta{
		padding: 60px 6%;
	}

	.bottomEntryCta p{
		font-size: 1.2em;
		margin-bottom: 30px;
	}

	.backListBtn{
		max-width: 100%;
	}

	.recruitBottomActions{
		gap: 14px;
	}

	.tagHero__lead{
		font-size: 0.92em;
	}

	.archiveHero__lead{
		font-size: 0.92em;
	}

	.aboutPage{
		margin-top: 26px;
	}

	.aboutStaffPhoto, .aboutInfo, .aboutAccess{
		padding: 24px 18px;
		border-radius: 20px;
		margin-bottom: 28px;
	}

	.aboutStaffPhoto h3, .aboutInfo h3, .aboutAccess h3{
		font-size: 1.45em;
		margin-bottom: 18px;
		text-align: left;
	}

	.aboutStaffPhoto p{
		font-size: 0.95em;
		line-height: 1.9;
		text-align: left;
		margin-top: 16px;
	}

	.aboutTable, .aboutTable tbody, .aboutTable tr, .aboutTable th, .aboutTable td{
		display: block;
		width: 100%;
	}

	.aboutTable th{
		padding: 12px 12px 6px;
		background: transparent;
		border-bottom: none;
	}

	.aboutTable td{
		padding: 0 12px 14px;
	}

	.aboutMap{
		border-radius: 16px;
		margin-bottom: 18px;
	}

	.aboutAccessText h4{
		font-size: 1em;
		margin-bottom: 8px;
	}

	.aboutAccessText p{
		font-size: 0.95em;
		line-height: 1.85;
	}

	.missionIntro{
		display: block;
		margin-bottom: 20px;
	}

	.missionIntro__photo{
		margin-bottom: 18px;
	}

	.missionIntro__photo img{
		border-radius: 16px;
	}

	.missionIntro__heading{
		padding-bottom: 0;
	}

	.missionIntro__heading h4{
		font-size: 1.55em;
		line-height: 1.5;
	}

	.missionBody p{
		font-size: 0.95em;
		line-height: 1.95;
		margin-bottom: 14px;
	}

}

@media screen and (max-width:768px) {

	/* =========================================
	   Header / Navigation
	========================================= */

	header{
		padding: 0;
	}

	.header-inr{
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 76px;
		padding: 0 18px;
		box-sizing: border-box;
	}

	.header-inr h1{
		float: none;
		width: auto;
		padding: 0;
		margin: 0;
		line-height: 1;
		display: flex;
		align-items: center;
		flex: 1;
		min-width: 0;
	}

	.header-inr h1 a{
		display: inline-flex;
		align-items: baseline;
		gap: 10px;
		text-decoration: none;
		max-width: 100%;
	}

	#header-box h1 img{
		width: auto;
		height: 22px;
		max-width: 230px;
	}

	.header-inr h1 span{
		display: inline-block;
		margin: 0;
		font-size: 0.72em;
		letter-spacing: 0.08em;
		white-space: nowrap;
	}

	.header-entry, .header-line{
		display: none !important;
	}

	#gnav{
		float: none;
		display: flex;
		align-items: center;
		letter-spacing: normal;
	}

	.nav-button-box{
		padding: 0;
		margin-left: 14px;
		flex-shrink: 0;
	}

	.nav-button{
		width: 34px;
		height: 28px;
	}

	.nav-button span:nth-of-type(2){
		top: 20px;
	}

	.nav-button span{
		height: 4px;
	}

	.nav-button, .nav-button.active{
		width: 44px;
		height: 44px;
	}

	.nav-button span:nth-of-type(1){
		top: 4px;
	}

	.nav-button span:nth-of-type(3){
		bottom: 4px;
	}

	.nav-button.active{
		top: 14px;
		right: 14px;
	}

	.nav-button.active span:nth-of-type(1){
		transform: translateY(16px) rotate(-45deg);
	}

	.nav-button.active span:nth-of-type(3){
		transform: translateY(-16px) rotate(45deg);
	}

	/* =========================================
	   Footer
	========================================= */

	footer{
		padding-bottom: 0 !important;
	}

	.footEnd{
		height: auto !important;
		min-height: auto !important;
		padding: 30px 20px !important;
	}

	.footEnd ul{
		margin: 0 0 18px !important;
		padding: 0 !important;
	}

	#copyrights{
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1.7;
	}

	/* =========================================
	   Lower Pages Common
	========================================= */

	.archivebox{
		padding: 18px;
		border-radius: 22px;
	}

	.archivebox select{
		padding: 16px 52px 16px 20px;
		font-size: 16px;
		font-weight: 700;
		border-radius: 16px;
	}

	.archivebox::after{
		right: 42px;
		width: 9px;
		height: 9px;
		border-right: 3px solid #22314d;
		border-bottom: 3px solid #22314d;
		margin-top: -6px;
	}

	.missionBox{
		padding: 24px 18px 30px;
		border-radius: 20px;
		margin-bottom: 32px;
	}

	.missionBox__sectionTitle{
		font-size: 1.05em;
		margin-bottom: 18px;
	}

	.missionBox__photoWide{
		margin-bottom: 20px;
	}

	.missionBox__photoWide img{
		border-radius: 16px;
	}

	.missionBox__body h4{
		font-size: 1.55em;
		line-height: 1.5;
		margin-bottom: 18px;
		text-align: left;
	}

	.missionBox__body p{
		font-size: 0.95em;
		line-height: 1.95;
		margin-bottom: 14px;
	}

	.missionBox__name{
		margin-top: 18px !important;
	}

	.missionBox .name{
		font-size: 1em;
	}

}
