html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    vertical-align: baseline;
    border: 0;
    font: inherit;
    font-size: 100%;
    ;
}

html {
    scroll-behavior: smooth;
}

body {
    line-height: 1;
}

a {
    text-decoration-skip-ink: auto;
}

button {
    outline: 0;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

q {
    display: inline;
    font-style: italic;
}

q:before {
    content: '"';
    font-style: normal;
}

q:after {
    content: '"';
    font-style: normal;
}

textarea,
input[type='text'],
input[type='button'],
input[type='submit'],
input[type='reset'],
input[type='search'],
input[type='password'] {
    border-radius: 0;

    -webkit-appearance: none;
            appearance: none;
    ;
}

table {
    border-spacing: 0;
    border-collapse: collapse;
    ;
}

th,
td {
    padding: 2px;
}

big {
    font-size: 120%;
}

small,
sup,
sub {
    font-size: 80%;
}

sup {
    vertical-align: super;
}

sub {
    vertical-align: sub;
}

dd {
    margin-left: 20px;
}

kbd,
tt {
    font-family: courier;
    font-size: 12px;
}

ins {
    text-decoration: underline;
}

del,
strike,
s {
    text-decoration: line-through;
}

dt {
    font-weight: bold;
}

address,
cite,
var {
    font-style: italic;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}



/*基本設定-----------------------------------------*/

:root{
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
	overflow-x: hidden;
	--blue:#004ea2;
	--red:#f050cd;
	--gradient-blue:linear-gradient(90deg, #93F7D6, #004BD6);
	--gradient-blue-hover:linear-gradient(90deg, #004BD6, #93F7D6);
	--gradient-red:linear-gradient(90deg, #f7b6a5, #f050cd);
}
html{
	font-size: 62.5%;
}
body {
    letter-spacing: 1px;
    background: #fff;
    /*
    background: url(../img/bg_circle.png) no-repeat top;
    */
    background-size: 100%;
    font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", sans-serif;
	font-size: 1.5em;
    font-weight: 400;
    line-height: 1.7;
	margin: 0px;
	padding: 0px;
}

@media only screen and (max-width: 780px) {
    body{
        background-size: contain;
        background-position: top 50px center;
    }
}
body a {
    text-decoration: none;
    color: #000;
}

body img {
    vertical-align: bottom;
    width: 100%;
}

div#wrapper {
    overflow: hidden;
    width: 100%;
}

.flex {
    display: flex;
    flex-wrap: wrap;
	justify-content: space-between;
}

.text {
    font-size: 15px;
}

@media only screen and (max-width: 780px) {
    .text{
        font-size: 1.3rem;
    }
}

.sm_text {
    font-size: 12px;
}

.center {
    text-align: center;
}

.sp {
    display: none;
}

.bold {
    font-weight: 500;
}

.right {
    text-align: right;
}

@media only screen and (max-width: 780px) {
    .sp {
        display: inline-block;
    }
    .pc {
        display: none;
    }
}


a{
	color: var(--blue);
	-webkit-transition: 0.3s ease-in-out;
	-moz-tranPerformersition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
	overflow: hidden;
    -webkit-font-smoothing: antialiased;
}
a:link {
	text-decoration: none;
	outline: none;
	color: var(--blue);
}
a:visited {
	color: var(--blue);
}
a:hover {
	color: #3d4287;
	opacity: 0.8;
}
.wrap{
	width: auto;
	max-width: 1200px;
	min-width: 900px;
	margin: auto;
	position: relative;
	padding: 0 1em;
}
@media only screen and (max-width: 780px) {
    .wrap{
        width: 100%;
        min-width:auto;
        padding: 0 2em;
    }
}
h3.title{
    font-size: 3.5rem;
    font-weight: 700;
    /*padding-left: .5em;*/
    margin-bottom: 3rem;
    color: var(--blue);
}
/*
h3.title::before{
    content: "•";
    left: 0;
    position: absolute;
}*/
h3.title .eng{
  font-size: 20px;
  color: #000;
  margin-left: 1em;
}
@media only screen and (max-width: 780px) {
    h3.title{
        font-size: 2.4rem;
        padding-left: .5em;
        margin-bottom: 3rem;
    }
    h3.title::before{
        content: "•";
        left: 1em;
    }
    h3.title .eng{
      font-size: 14px;
      display: block;
      margin-left: 0;
    }
}
.btn {
    margin: 1em auto;
}
.btn a{
    color: #fff;
    font-weight: 700;
    padding: .7em 3em;
    position: relative;
    z-index:0;
    display:inline-block;
    background: var(--gradient-blue);
    border-radius: 100px;
}
.btn a:hover{
    opacity: 1;
}
.btn a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--blue);
    opacity: 0;
    transition: opacity 0.5s;
}
.btn a:hover::before {
    opacity: 1;
}
.btn a::after{
    content: "●";
    padding-left: 1em;
}

@media only screen and (max-width: 780px) {
    .btn a{
        font-size: 1.25rem;
    }
}


/*--- header --------------------------------*/
#header{
    position: fixed;
    background-color: #fff;
    box-shadow: 0px 5px 5px #0000001a;
    width: 100%;
    padding: 1rem;
    min-width: 1000px;
    z-index: 3;
}
#header .wrap{
    padding: 1.7rem 2rem;
    max-width: 100%;
    margin: auto;
}
#header h1.logo{
    width: 134px;
    position: absolute;
    top:1rem;
    left:1em;
}
@media only screen and (max-width: 1400px) {
    #header h1.logo{
        left:1em;
    }
}


/*--- navi --------------------------------*/

#header .navi{
    display: flex;
    justify-content: right;
}
#header .navi li.list{
    display: inline-block;
    padding: 0 1em;
    text-align: center;
    font-weight: 700;
    position: relative;
}
#header .navi li.list::before{
    content: "";
    background-color: var(--blue);
    width: 1px;
    height: 13px;
    display: block;
    position: absolute;
    top:-10px;bottom:0;left: 0;
    margin: auto;
}
#header .navi li.contactus:before{
    content: none;
}
#header .navi li.list > a{
    display: block;
    padding: .2em .5rem;
    border-bottom: solid 1px #fff;
}
#header .navi li.list > a:hover{
    border-bottom: solid 1px var(--blue);
}
#header .navi li.contactus{
    margin-top: -16px;
}
#header .navi li.contactus a{
    color: #fff;
    padding: 0 2em;
    border-radius: 100px;
    position: relative;
    text-align: center;
    z-index:0;
    display:block;
    margin: .2em;    
}
#header .navi li.contactus a:hover{
    border-bottom: none;
}
#header .navi li.contactus a.blue:before{
    background: var(--gradient-blue);
    content:"";
    width:100%;
    height:100%;
    position:absolute;
    z-index:-1;
    left:0;
    transition:0.5s;
}
#header .navi li.contactus a.blue:after{
    background: var(--blue);
    content:"";
    width:100%;
    height:100%;
    position:absolute;
    z-index:-2;
    left:0;
    opacity:1;
}
#header .navi li.contactus a.red:before{
    background: var(--gradient-red);
    content:"";
    width:100%;
    height:100%;
    position:absolute;
    z-index:-1;
    left:0;
    transition:0.5s;
}
#header .navi li.contactus a.red:after{
    background: var(--red);
    content:"";
    width:100%;
    height:100%;
    position:absolute;
    z-index:-2;
    left:0;
    opacity:1;
}
#header .navi li.contactus a:hover:before{
    opacity:0;
    border-bottom: none;
}
#header .navi li.lang a{
    width: 28px;
    padding: 0;
    border: none;
    line-height: 0;
    border: solid 1px #000;
    cursor: pointer;
}
#header .navi li.lang a.jp{
    margin: -1rem 0 1rem 0;
}
#header .navi li.lang a.active{
    border: solid 1px #000;    
}
#header .navi li.lang::before{
    content: none;
}
#header .navi li.lang > a:hover{
    border: solid 1px var(--blue); 
    box-shadow: 2px 1px 1px #0008;
}
#header .navi li.lang{
    margin-top: -1em;
}
#header .navi li.lang p{
    cursor: pointer;
}
#header .navi li.lang p:hover{
    background-color: #999;
}


@media screen and (max-width: 780px) {
    #header{
        width: 100%;
        min-width: auto;
    }
    #header .wrap{
        padding: .5rem 1rem;
    }
    #header h1.logo{
        position: static;
        width: 20%;
        top:1rem;
        left:1rem;
    }
    #header .navi{
        display:block;
    }
    #header .navi li.list{
        display: block;
        padding: 0 1em;
    }
    #header .navi li.list::before{
        content: none;
    }
    #header .navi > a{
        display: block;
        padding: 1rem 1rem;
    }
    #header .navi > a:hover{
        border-bottom: solid 1px var(--blue);
    }
    #header .navi li.contactus > a{
        margin-top: 2rem;
        text-align: center;
    }
    #header .navi li.lang{
        text-align: center;
        margin-top: 1em;
    }
    #header .navi li.lang a{
        width: 34px;
        display: inline-block;
        border: solid 1px #000!important;
        margin: 0 1em;
    }
    #header .navi li.lang a.jp{
        margin: 0;
    }
}

.sub_lists {
    display: none;
    width: 120%;
    position: absolute;
    top: 0;
    left: -10%;
    border-radius: 10px;
    padding-top: 21px;
    margin-top: 34px;
    transition: all .3s;
}
.list{
    height: auto;
}
.list:hover .sub_lists {
    display: block;
}
.sub_list a{
    background-color: var(--blue);
    position: relative;
}
.sub_list:first-child  a{
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.sub_list:last-child a {
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}
.sub_lists::before{
    content: "";
    position: absolute;
    background-color: var(--blue);
    height: calc(tan(60deg) * 20px / 2);
    width: 20px;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    top:5px;
    left:0;right:0;
    margin: auto;
}
.sub_list a:hover {
    background-color: #003558;
    opacity: 1;
}
.sub_lists a {
    background-color: var(--blue);
    position: relative;
    color: #fff;
    position: relative;
    padding: .5em 0;
    display: block;
    font-size: 13px;
}

@media only screen and (max-width: 780px) {
    .sub_lists {
        display: block;
        width: 100%;
        position: static;
        border-radius: 10px;
        padding: 0;
        margin: 0;
        text-align: left;
    }
    .menu .sub_lists .sub_list{
        padding: 0!important;
        display: inline-block!important;
    }
    .list:hover .sub_lists {
        display: block;
        padding: 0;
    }
    .sub_list:first-child  a{
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    .sub_list:last-child a {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .sub_lists::before{
        content: none;
    }
    .sub_list a:hover {
        background-color:transparent;
    }
    .sub_lists a {
        background-color:transparent;
        padding: .2em .5rem;
        color: var(--blue);
        font-size: 1.5rem!important;
        padding-left: 1em;
        position: relative;
        font-weight: 400;
    }
    .sub_lists a::before{
        content: "・";
    }

}



/*--- f-page-link --------------------------------*/
.f-page-link{
    margin: auto;
}
.f-page-link .box2{
    width: 50%;
    position: relative;
}
.f-page-link .box2 a{
    width: 100%;
    height: 100%;
    display: block;
    color: #fff;
}
.f-page-link.box2 a:hover{
    background: #004ea24D;
}
.f-page-link .box2 a p{
    background: #004ea24D;
    position: absolute;
    bottom:0;
    width: 100%;
    font-size: 5rem;
    font-weight: 700;
    padding-left: 1em;
}
.f-page-link .box2 a p span{
    font-size: 15px;
}
.f-page-link .box2.recruit{
    background: url(../img/footer_bg_recruit.jpg) center;
    background-size: cover;
    height: 250px;
}
.f-page-link .box2.contact{
    background: url(../img/footer_bg_contact.jpg) center;
    background-size: cover;
    height: 250px;
}

@media screen and (max-width: 780px) {
    .f-page-link .box2{
        width: 100%;
    }
    .f-page-link .box2 a{
        width: 100%;
    }
    .f-page-link .box2 a p{
        bottom:0;
        width: 100%;
        font-size: 3rem;
        font-weight: 700;
        padding-left: 1em;
        padding-right: 1em;
    }
    .f-page-link.box2 a p span{
        font-size: 15px;
    }
    .f-page-link .box2.recruit{
        background: url(../img/footer_bg_recruit.jpg) center;
        background-size: cover;
        height: 200px;
    }
    .f-page-link .box2.contact{
        background: url(../img/footer_bg_contact.jpg) center;
        background-size: cover;
        height: 200px;
        text-align: right;
    }
}
/*--- footer --------------------------------*/
#footer{
    background:#fff;
}
#footer .wrap{
    padding: 100px 1em;
}
#footer h1.logo{
    width: 200px;
    float: left;
}
#footer .footer-navi{
    display: flex;
    justify-content: right;
    margin-bottom: 1em;
}
#footer .footer-navi li{
    display: inline-block;
    padding: 0 1em;
    text-align: center;
    font-weight: 700;
    position: relative;
}
#footer .footer-navi li::before{
    content: "";
    background-color: var(--blue);
    width: 1px;
    height: 13px;
    display: block;
    position: absolute;
    top:0;bottom:0;left: 0;
    margin: auto;
}
#footer .footer-navi li:last-child::after{
    content: "";
    background-color: var(--blue);
    width: 1px;
    height: 13px;
    display: block;
    position: absolute;
    top:0;bottom:0;right: 0;
    margin: auto;
}
#footer .links{
    text-align: right;
    margin-bottom: 3em;
}
#footer .links a{
    color: #231815;
}
#footer .copyrights{
    font-size: 14px;
}
@media screen and (max-width: 780px) {
    #footer .wrap{
        padding: 40px 2rem;
    }
    #footer h1.logo{
        width: 30%;
        float: none;
        margin: auto;
    }
    #footer .footer-navi{
        display: none;
    }
    #footer .links{
        text-align: center;
        margin: 3em auto;
    }
    #footer .copyrights{
        font-size: 11px;
        text-align: center;
    }
}

/*--- parts --------------------------------*/
.table-area{}
.table-area table{
    width: 100%;
    border-spacing: 1em;
    border-collapse:separate;
    font-size: 1.6rem;
}
.table-area table th{
    padding: 1rem 1rem;
    border-bottom: solid 2px var(--blue);
    text-align: left;
}
.table-area table td{
    padding: .5rem 1rem;
    border-bottom: solid 2px #eaeaea;
}






































/*slick バグ*/
.slick-slider div { transition: none; }








/* バーガーメニュー */
.menu-btn {
	display: none;
}
@media screen and (max-width: 780px) {
    :root {
		--background-navbar: rgba(255, 255, 255, 0.98);
	}
	.menu {
		list-style: none;
		position: static;
		width: 100%;
		height: 0;
		top: 0;
		transition: all 0.5s ease-out;
		transform: scale(1, 0);
		transform-origin: top;
		margin: 0 0 0 auto;
		text-align: left;
		padding: 0;
		position: absolute;
		right: 0;
		top:0;
		z-index: 1;
		border-radius: 10px;
		box-shadow: 3px 3px 3px 1px rgba(0,0,0,0.15);
	}
	.menu{
		position:inherit;
		width: calc(100%);
		border-radius: 0;
		box-shadow:none;
		background-color: #fff;
	}
	.menu-btn:checked ~ .menu {
		height: auto;
		/*height: 100lvh;*/
        height: -webkit-fill-available;
		transform: scale(1, 1);
		transform-origin: top;
		transition:all 0.4s ease-out;
		padding: 2rem 0 1rem 0;
        overflow-y: scroll;
	}
	.menu a {
		display: block;
		text-decoration: none;
		letter-spacing: 2px;
		font-size: 16px;
		text-transform: capitalize;
		opacity: 0;
		transition: 0.5s;
		border: none!important;
		text-align: left;
	}
	.menu li {
		display: block!important;
		padding: 10px 0;
		margin: 0 auto;
		opacity: 0;
	}
	.menu-btn:checked ~ .menu a,
	.menu-btn:checked ~ .menu li {
		opacity: 1;
	}
	.menu-icon {
		display: inline-block;
		position: absolute;
		top:0px;
		right:0px;
		margin: auto;
		cursor: pointer;
		padding: 20px 14px;
		-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
		z-index: 3;
	}
	.navicon {
		background: #030303;
		display: block;
		height: 3px;
		width: 30px;
		position: relative;
		transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
	}
	.navicon:before,
	.navicon:after {
		content: "";
		display: block;
		height: 100%;
		width: 100%;
		position: absolute;
		background: #fff;
		transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
	}
	.navicon:before {
		top: 14px;
	}
	.navicon:after {
		bottom: 14px;
	}
	.menu-btn:checked ~ .menu-icon .navicon:before {
		transform: rotate(-45deg);
	}
	.menu-btn:checked ~ .menu-icon .navicon:after {
		transform: rotate(45deg);
	}
	.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before {
		top: 0;
	}
	.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
		bottom: 0;
	}
	.menu-btn:checked ~ .menu-icon .navicon {
		background: rgba(0, 0, 0, 0);
		transition: 0.2192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
	}
	.navicon:before,
	.navicon:after {
		content: "";
		display: block;
		height: 100%;
		width: 100%;
		position: absolute;
		background: #030303;
		transition: 0.3192s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;
		border-radius: 10px;
	}
	.navicon:before {
		top: 8px;
	}
	.navicon:after {
		bottom: 8px;
	}
}


/* アニメーション設定 */
.scr-target {
	opacity: 0;
	transform: translate3d(0, 30px, 0);
}
.scr-target.is-active {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transition: 1s;
}

