@charset "UTF-8";
/* CSS Document */
/*--------------------
01.共通
02.ヘッダー
03.フッター
--------------------*/

@font-face {
font-family: 'Objektiv Mk1';
src:url('../font/objektiv_mk1_regular.woff2') format('woff2'),
url('../font/objektiv_mk1_regular.woff') format('woff'),
url('../font/objektiv_mk1_regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

@font-face {
font-family: 'Objektiv Mk1';
src:url('../font/objektiv_mk1_medium.woff2') format('woff2'),
url('../font/objektiv_mk1_medium.woff') format('woff'),
url('../font/objektiv_mk1_medium.ttf') format('truetype');
font-weight: 500;
font-style: normal;
}

/*----------
01.共通
----------*/
body{
-webkit-font-smoothing: antialiased;
}

*{
box-sizing: border-box;
}

*:focus {
outline: none;
}

#wrapper{
position: relative;
width: 100%;
overflow: hidden;
background: #213362;
/*background-color: #1D2F50;*/
font-family: 'Noto Sans JP', sans-serif;
font-weight: 400;
font-size: 14px;
color: #fff;
}

.en_font{
font-family: 'Objektiv Mk1';
}

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

.pc{
display: block;
}

.sp{
display: none;
}

.contents_in{
max-width: 1000px;
width: 92%;
margin: 0 auto;
}

.flex_box{
display: flex;
}

a{
color: #fff;
}

a:hover{
color: #fff;
}

a:link{
color: #fff;
}

.dib {
display: inline-block;
}

.blur_ani{

}

.blur_ani:hover{
    animation-name: blur;
    animation-duration: 1.5s;
}

@keyframes blur{
    from{
        filter: blur(1px);
    }

to{
    filter: blur(0);
}
}

/* 共通パーツ */
.cm_title{
font-size: 50px;
line-height: 72px;
letter-spacing: 0.08em;
font-weight: 500;
text-align: center;
margin-bottom: 6px;
}

.cm_title + .sub_txt{
font-size: 14px;
line-height: 20px;
display: block;
text-align: center;
}

.tel{
font-size: 12px;
line-height: 17px;
}

.tel span{
display: block;
font-size: 24px;
font-weight: 700;
line-height: 35px;
margin-bottom: -3px;
}

.tel span::before{
content: "";
display: inline-block;
width: 17px;
height: 17px;
background: center/contain no-repeat url(../img/icon_recuit_tel.png);
margin-right: 4px;
}

.entry{
font-size: 20px;
line-height: 29px;
font-weight: 700;
border: 1px solid #FBDC48;
text-align: center;
background-color: #FBDC48;
}

.entry a{
    display: flex;
    align-items: center;
    padding: 6px 25px 11px;
    color: #000000;
    transition: 0.4s;
}

.entry a:hover{
    background-color: #fff;
    transition: 0.4s;
}

.entry span{
display: block;
font-size: 12px;
line-height: 17px;
}

.entry a::before{
content: "";
display: inline-block;
width: 27.75px;
height: 36px;
background: center/contain no-repeat url(../img/ico_entry.png);
margin-right: 6.7px;
}

.h2_title_ptn01 {
font-size: 28px;
line-height: 38px;
font-weight: 700;
margin-bottom: 60px;
text-align: center;
}

.btn_ptn01 {
max-width: 300px;
width: 100%;
margin: 0 auto;
}

.btn_ptn01 a {
display: block;
font-size: 20px;
line-height: 1;
font-weight: 600;
text-align: center;
color: #213362;
background: #9FFFF1;
border: solid #9FFFF1 2px;
padding: 20px 0 19px;
}

.btn_ptn01 a:hover {
background: #FFFFFF;
}

.recruits_box{
padding: 50px 0 43px;
background-color: #213362;
position: relative;
}

.recruits_box::before {
position: absolute;
content: "";
background: linear-gradient(180deg, rgba(22,37,75,1) 0%, rgba(33,51,98,1) 100%);
width: 100%;
height: 65%;
top: 0;
left: 0;
}

.recruits_box .contents_in {
position: relative;
}

.recruits_box .sub_txt{
margin-bottom: 19px;
}

.recruits_box .txt{
font-size: 28px;
line-height: 40px;
text-align: center;
font-weight: 700;
margin-bottom: 72px;
}

.recruits_box .btn_type01{
max-width: 409px;
border: 1px solid;
margin: 0 auto;
}

.recruits_box .btn_type01 a{
display: block;
width: 100%;
text-align: center;
line-height: 17px;
letter-spacing: 0.1em;
padding: 22.5px 0;
}


.contact_box{
padding: 54px 0 86px;
background: center top/cover no-repeat url(../img/contact_bg.jpg);
position: relative;
}

.contact_box::before{
content: "";
display: inline-block;
width: 100%;
height: 100%;
background: linear-gradient(15deg,#3B1E86,#0094D0);
position: absolute;
top: 0;
left: 0;
opacity: 0.8;
}

.contact_box .contents_in{
position: relative;
}

.contact_box .sub_txt{
margin-bottom: 32px;
}

.contact_box .txt{
font-weight: 700;
line-height: 24px;
margin-bottom: 47px;
text-align: center;
}

.contact_box .flex_box{
max-width: 486px;
margin: 0 auto;
justify-content: space-between;
}

.contact_box .entry{
width: 213px;

}

.contact_box .entry a{
padding: 6px 8px 11px;
justify-content: center;
}

.title_area_ptn01 {
position: relative;
padding: 120px 0 0;
background: url("../../img/feature/title_bg.png")no-repeat center/cover;
}


.title_area_ptn01::after {
position: absolute;
content: "";
background: linear-gradient(135deg, rgba(59,30,134,0.8) 0%, rgba(0,148,208,0.8) 100%);
width: 100%;
height: 100%;
top: 0;
left: 0;
}

.title_area_ptn01 .bread_list {
display: flex;
align-items: center;
justify-content: flex-start;
position: relative;
z-index: 1;
}

.title_area_ptn01 .bread_list li {
font-size: 	12px;
line-height: 24px;
font-weight: 500;
padding-right: 10px;
}

.title_area_ptn01 .bread_list li a {
position: relative;
}

.title_area_ptn01 .bread_list li a::after {
position: absolute;
content: ">";
width: 8px;
height: 24px;
top: -2px;
right: -10px;
}

.title_area_ptn01 .ttl_box {
padding: 70px 0 140px;
position: relative;
z-index: 1;
}

.title_area_ptn01 .ttl_box .main_ttl {
font-size: 50px;
line-height: 60px;
font-weight: 500;
letter-spacing: 0.13em;
text-align: center;
margin-bottom: 6px;
}

.title_area_ptn01 .ttl_box .sub_txt {
font-size: 14px;
line-height: 20px;
text-align: center;
}

.bg_text_area {
position: relative;
overflow: hidden;
}

.bg_text_area .bg_text {
position: absolute;
top: -18px;
left: -14px;
font-size: 150px;
line-height: 1;
font-weight: 500;
letter-spacing: 0.08em;
color: #F7F7F7;
opacity: 0.05;
font-family: 'Objektiv Mk1';
}

.bg_text_area .contents_in {
position: relative;
}

/*共通アニメーション*/
.inview {
opacity: 0;
transform: translate(0, 20%);
transition: 1.2s;
}

.inview.is_show {
transform: translate(0, 0);
opacity: 1;
}

.inview_left {
opacity: 0;
transform: translate(-30%, 0);
transition: 2s;
}

.inview_left.is_show {
transform: translate(0, 0);
opacity: 1;
}

.inview_right {
opacity: 0;
transform: translate(30%, 0);
transition: 2s;
}

.inview_right.is_show {
transform: translate(0, 0);
opacity: 1;
}

/*----------
02.ヘッダー
----------*/
header {
position: fixed;
z-index: 99;
top: 0;
width: 100%;
transition: .4s, padding-bottom 0s, background-color 0s, box-shadow 0s;
}

header.blur::after{
content: "";
display: inline-block;
width: 100%;
height: 100vh;
position: absolute;
top: 0;
left: 0;
background: linear-gradient(#3B1E86,#0094D0);
}

header .contents_in{
width: 100%;
max-width: 1280px;
justify-content: space-between;
position: relative;
z-index: 5;
}

header .left_contents{
padding-top: 12.4px;
padding-left: 40px;
}

header .left_contents .logo_g {
display: flex;
align-items: center;
}

header .left_contents .logo span{
width: 0;
display: block;
font-size: 14px;
line-height: 20px;
margin-bottom: 6px;
white-space: nowrap;
}

header .left_contents .logo a{
display: block;
max-width: 363.85px;
}

header .left_contents .tag {
margin-left: 10px;
padding: 5px 9px;
border: 1px solid #fff;
font-size: 17px;
font-weight: 700;
line-height: 1;
}

header .right_contents{
display: flex;
align-items: center;
}

header .right_contents .cnt_box {
margin-right: 22px;
}

header .right_contents .tel{
font-size: 12px;
line-height: 17px;
}

header .right_contents .tel span{
display: block;
font-size: 24px;
font-weight: 700;
line-height: 35px;
margin-bottom: -3px;
}

header .right_contents .tel span::before{
content: "";
display: inline-block;
width: 17px;
height: 17px;
background: center/contain no-repeat url(../img/icon_recuit_tel.png);
margin-right: 4px;
}

header .right_contents .main_site {
margin: 10px auto 0;
max-width: 160px;
}

header .right_contents .main_site a {
display: block;
font-size: 15px;
line-height: 1;
font-weight: 700;
text-align: center;
border: solid #FFFFFF 1px;
background: #FFFFFF;
color: #213362;
padding: 10px 0;
}

header .right_contents .main_site a:hover {
background: #213362;
color: #FFFFFF;
}

header .right_contents .entry{
font-size: 20px;
line-height: 29px;
font-weight: 700;
color: #000000;
text-align: center;
background-color: #FBDC48;
margin-right: 20px;
display: flex;
align-items: center;

}

header .right_contents .entry a{
color: #000000;
}

header .entry.sp{
display: none;
}

header .right_contents .entry span{
display: block;
font-size: 12px;
line-height: 17px;
}

header .right_contents .menu{
width: 120px;
height: 120px;
background: #0A2E8F;
padding: 26.5px 0 18px;
text-align: center;
cursor: pointer;
}

header .right_contents .menu .span_wrap{
width: 40px;
height: 30px;
margin: 8px auto 6.5px;
position: relative;
}

header .right_contents .menu .menu_text{
font-size: 16px;
font-weight: 500;
line-height: 21px;
margin-top: 6.5px;
}

header .right_contents .menu .span_wrap span{
position: absolute;
display: block;
height: 2px;
width: 100%;
background-color: #fff;
transition: 0.4s;
}

header .right_contents .menu .span_wrap span:nth-of-type(2){
top: 14px;
}

header .right_contents .menu .span_wrap span:nth-of-type(3){
top: 28px;
}

header.blur .right_contents .menu .span_wrap span:nth-of-type(1){
transform: rotate(45deg);
top: 14px;
}

header.blur .right_contents .menu .span_wrap span:nth-of-type(2){
opacity: 0;
}

header.blur .right_contents .menu .span_wrap span:nth-of-type(3){
transform: rotate(-45deg);
top: 14px;
}

header nav{
display: none;
font-size: 20px;
line-height: 30px;
}

header nav.fixed{
position: fixed;
top: 107.99px;
width: 100%;
height: calc(100% - 107.99px);
display: block;
z-index: 1;
padding: 128px 0 50px;
text-align: center;
overflow: auto;
left: 0;
right: 0;
margin: auto;
}

header nav ul{
margin: 0 auto;
}

header nav ul li {
    margin-bottom: 16px;
}

header nav ul:first-of-type{
max-width: 750px;
margin-bottom: 60px;
}

header nav ul:nth-of-type(2){
max-width: 560px;
}

header nav ul li a:hover{
opacity: 0.7;
}

header nav ul .external-link {
    display: flex;
    justify-content: center;
    align-items: center;
}

header .icon_box {
    margin-top: 18px;
    display: flex;
    justify-content: center;
    gap: 16px;
}

header .icon_box .icon {
    width: 30px;
}

header.hide {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-100%);
    transition: .3s, padding-bottom 0s .6s, background-color 0s .6s, box-shadow 0s .6s;
}

header.onbg {
    /*padding-bottom: 12px;*/
    background-color: #1D2F50;
    box-shadow: 0 3px 20px rgba(0,0,0,.5);
    transition: .6s, padding-bottom 0s .6s, background-color 0s .6s, box-shadow 0s .6s;
}


@media only screen and (max-width: 1280px) {
/*----------
02.ヘッダー
----------*/
header .right_contents .tel span {
font-size: 20px;
}
header .right_contents .entry {
font-size: 18px;
}
header .right_contents .cnt_box {
margin-right: 12px;
}
header .left_contents .tag {
font-size: 16px;
}
}

@media only screen and (max-width:1024px){
/*----------
01.共通
----------*/
.h2_title_ptn01 {
font-size: 24px;
line-height: 32px;
font-weight: 700;
margin-bottom: 50px;
text-align: center;
}

.btn_ptn01 a {
display: block;
font-size: 19px;
line-height: 1;
font-weight: 600;
text-align: center;
color: #213362;
background: #9FFFF1;
border: solid #9FFFF1 2px;
padding: 19px 0 18px;
}

.title_area_ptn01 {
position: relative;
padding: 110px 0 0;
background: url("../../img/feature/title_bg.png")no-repeat center/cover;
}

.title_area_ptn01 .ttl_box {
padding: 50px 0 110px;
position: relative;
z-index: 1;
}

.title_area_ptn01 .ttl_box .main_ttl {
font-size: 40px;
line-height: 50px;
font-weight: 500;
letter-spacing: 0.13em;
text-align: center;
margin-bottom: 3px;
}

.title_area_ptn01 .ttl_box .sub_txt {
font-size: 13px;
line-height: 20px;
text-align: center;
}

.bg_text_area .bg_text {
position: absolute;
top: -13px;
left: -10px;
font-size: 110px;
line-height: 1;
font-weight: 500;
letter-spacing: 0.08em;
color: #F7F7F7;
opacity: 0.05;
font-family: 'Objektiv Mk1';
}



/*----------
02.ヘッダー
----------*/
header.onbg {
padding-bottom: 12px;
}
header .left_contents {
padding-top: 12.4px;
padding-left: 20px;
}

header .left_contents .logo span {
font-size: 13px;
}

header .left_contents .logo a {
max-width: 217px;
}

header .left_contents .tag {
font-size: 14px;
}

header .right_contents {
padding-top: 8px;
}
header .right_contents .menu {
width: 75px;
height: 75px;
background: #0A2E8F;
padding: 16px 0 18px;
text-align: center;
cursor: pointer;
}

header .right_contents .cnt_box {
margin-right: 10px;
}

header .right_contents .tel{
font-size: 11px;
line-height: 17px;
}

header .right_contents .tel span{
display: block;
font-size: 20px;
font-weight: 700;
line-height: 32px;
margin-bottom: 0;
}

header .right_contents .tel span::before{
content: "";
display: inline-block;
width: 17px;
height: 17px;
background: center/contain no-repeat url(../img/icon_recuit_tel.png);
margin-right: 4px;
}

header .right_contents .main_site {
margin: 8px auto 0;
max-width: 140px;
}

header .right_contents .main_site a {
display: block;
font-size: 13px;
line-height: 1;
font-weight: 700;
text-align: center;
border: solid #FFFFFF 1px;
background: #FFFFFF;
color: #213362;
padding: 9px 0;
}

header .right_contents .entry{
font-size: 17px;
line-height: 28px;
font-weight: 700;
color: #000000;
text-align: center;
background-color: #FBDC48;
margin-right: 12px;
display: flex;
align-items: center;
}

.entry a {
display: flex;
align-items: center;
padding: 6px 20px 8px 14px;
color: #000000;
transition: 0.4s;
}

.entry a::before {
content: "";
display: inline-block;
width: 24.67px;
height: 32px;
background: center/contain no-repeat url(../img/ico_entry.png);
margin-right: 6.7px;
}

header .right_contents .menu .span_wrap {
width: 35px;
height: 26px;
margin: 0 auto 4px;
position: relative;
}

header .right_contents .menu .span_wrap span{
position: absolute;
display: block;
height: 2px;
width: 100%;
background-color: #fff;
transition: 0.4s;
}

header .right_contents .menu .span_wrap span:nth-of-type(2){
top: 12px;
}

header .right_contents .menu .span_wrap span:nth-of-type(3){
top: 24px;
}

header .right_contents .menu .menu_text {
font-size: 14px;
font-weight: 500;
line-height: 17px;
margin-top: 6.5px;
}

/*----------
03.フッター
----------*/

}

@media only screen and (max-width:880px){
/*----------
02.ヘッダー
----------*/
header .right_contents {
padding-top: 30px;
}
}

@media only screen and (max-width:750px){
/*----------
01.共通
----------*/
.pc{
display: none;
}

.sp{
display: block;
}

.contents_in{
width: 100%;
padding: 0 20px;
}

.sp_text_left {
    text-align: left!important;
}

.cm_title {
font-size: 32px;
line-height: 1.4;
margin-bottom: 6px;
}

.h2_title_ptn01 {
font-size: 20px;
line-height: 28px;
font-weight: 700;
margin-bottom: 40px;
text-align: center;
}

.btn_ptn01 a {
display: block;
font-size: 18px;
line-height: 1;
font-weight: 600;
text-align: center;
color: #213362;
background: #9FFFF1;
border: solid #9FFFF1 2px;
padding: 18px 0 17px;
}


.recruits_box .txt {
font-size: 20px;
line-height: 1.8;
margin-bottom: 50px;
}

.contact_box .txt{
margin-bottom: 30px;
}

.contact_box .flex_box {
flex-direction: column;
}

.contact_box .tel{
text-align: center;
margin-bottom: 20px;
}

.contact_box .entry {
width: 100%;
margin: 0 auto;
max-width: 280px;
display: flex;
justify-content: center;
}

.title_area_ptn01 {
position: relative;
padding: 100px 0 0;
background: url("../../img/feature/title_bg.png")no-repeat center/cover;
}

.title_area_ptn01 .ttl_box {
padding: 30px 0 80px;
position: relative;
z-index: 1;
}

.title_area_ptn01 .ttl_box .main_ttl {
font-size: 30px;
line-height: 40px;
font-weight: 500;
letter-spacing: 0.13em;
text-align: center;
margin-bottom: 0px;
}

.title_area_ptn01 .ttl_box .sub_txt {
font-size: 12px;
line-height: 20px;
text-align: center;
}

.bg_text_area .bg_text {
position: absolute;
top: -8px;
left: -6px;
font-size: 70px;
line-height: 1;
font-weight: 500;
letter-spacing: 0.08em;
color: #F7F7F7;
opacity: 0.05;
font-family: 'Objektiv Mk1';
}


/*----------
02.ヘッダー
----------*/
header.blur .right_contents .menu .span_wrap span:nth-of-type(1) {
top: 8px;
}

header.blur .right_contents .menu .span_wrap span:nth-of-type(3) {
top: 8px;
}

header .right_contents .entry.pc{
display: none;
}

header .left_contents {
padding: 10px 0 0 0;
}

header .left_contents .logo span {
font-size: 12px;
line-height: 1.4;
margin-bottom: 8px;
}

header .left_contents .logo a {
max-width: 185px;
}

header .left_contents .tag {
padding: 4px 6px;
font-size: 12px;
}

header .right_contents{
padding-top: 0;
}

header .right_contents .menu {
width: 50px;
height: 50px;
padding: 26.5px 0 18px;
}

header .right_contents .menu .span_wrap {
width: 24px;
height: 18px;
margin-bottom: 0;
}

header .right_contents .menu .span_wrap span:nth-of-type(2) {
top: 8px;
}

header .right_contents .menu {
width: 50px;
height: 50px;
padding: 13px 0 18px;
}

header .right_contents .menu .span_wrap span:nth-of-type(3){
top:16px;
}

header .right_contents .menu .menu_text {
font-size: 10px;
line-height: 1.6px;
}

header nav.fixed {
top: 87.99px;
height: calc(100% - 87.99px);
padding: 50px 0 100px;
}

header nav ul:first-of-type{
    margin-bottom: 0;
}

header nav ul{
    flex-direction: column;
font-size: 16px;
}

header nav ul li{
    margin-bottom: 20px;
}

header .entry.sp{
    display: flex;
    justify-content: center;
    max-width: 280px;
    margin: 20px auto 0;
}

header .entry.sp a{
    padding: 6px 8px 11px;
}

header .main_site {
margin: 20px auto 0;
max-width: 200px;
}

header .main_site.sp a {
display: block;
font-size: 16px;
line-height: 1;
font-weight: 700;
text-align: center;
background: #FFFFFF;
color: #213362;
padding: 12px 0;
}

header .main_site.sp a:hover {
background: #213362;
color: #FFFFFF;
}
}