@charset "UTF-8";
/* ==========================================================
Reset
========================================================== */
*,
*::before,
*::after{
box-sizing:border-box;
margin:0;
padding:0;
}
html{
font-size:100%;
scroll-behavior:smooth;
-webkit-text-size-adjust:100%;
}
body{
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Meiryo",sans-serif;
font-size:16px;
line-height:1.8;
font-weight:400;
color:#333;
background:#fff;
overflow-x:hidden;
text-rendering:optimizeLegibility;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
nav,
section{
display:block;
}
img{
display:block;
max-width:100%;
height:auto;
vertical-align:middle;
border:0;
}
svg{
display:block;
max-width:100%;
height:auto;
fill:currentColor;
}
picture{
display:block;
}
a{
color:inherit;
text-decoration:none;
transition:all .3s ease;
}
a:hover{
opacity:.85;
}
ul,
ol{
list-style:none;
}
table{
width:100%;
border-collapse:collapse;
border-spacing:0;
}
button,
input,
textarea,
select{
font:inherit;
color:inherit;
}
button{
cursor:pointer;
border:none;
background:none;
}
textarea{
resize:vertical;
}
iframe{
display:block;
width:100%;
border:0;
}
hr{
border:none;
border-top:1px solid #e5e5e5;
margin:2rem 0;
}
/* ==========================================================
Base
========================================================== */
:root{
--color-primary:#14345d;
--color-secondary:#1d63c5;
--color-accent:#3ea8ff;
--color-text:#333;
--color-sub:#666;
--color-border:#e5e5e5;
--color-bg:#f7f9fc;
--color-white:#fff;
--shadow:0 8px 24px rgba(0,0,0,.08);
--radius:10px;
--transition:.3s ease;
--container:1200px;
--section-space:20px;

}
body.admin-bar .site-header{
top:0px;
}
.site-main{
display:block;
min-height:60vh;
}
.container{
width:min(100% - 40px,var(--container));
margin-inline:auto;
}
.section{
padding:var(--section-space) 0;
position:relative;
}
.section-heading{
display:flex;
flex-direction:column;
align-items:center;
gap:12px;
margin-bottom:30px;
text-align:center;
}

.section-subtitle{
display:block;
margin-top:50px;
font-size:.875rem;
font-weight:700;
letter-spacing:.2em;
text-transform:uppercase;
color:var(--color-secondary);
}

.section-title{
margin:0;
font-size:clamp(2rem,3vw,2.75rem);
	font-size:clamp(1.6rem,3vw,1.6rem);
font-weight:700;
line-height:1.3;
	letter-spacing:.4em;
color:var(--color-primary);
}

.section-title::after{
content:"";
display:block;
width:120px;
height:2px;
margin:20px auto 0;
background:var(--color-secondary);
}
.section-button{
margin-top:48px;
text-align:center;
}

.section-button .btn-primary{
display:inline-flex;
align-items:center;
justify-content:center;
}
/* ==========================================================
Layout
========================================================== */
.page-title{
margin:0;
width:100%;
text-align:center !important;
font-size:26px;
font-weight:700;
line-height:4;
letter-spacing:.3em !important;
color:#fff;
}

.page-header{
text-align:center !important;
background:var(--color-secondary);
border-radius:12px;
}
.site-header{
position:sticky;
top:0;
left:0;
z-index:999;
width:100%;
background:#fff;
box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.site-header .container{
display:flex;
align-items:center;
justify-content:space-between;
min-height:88px;
}
.site-logo{
display:flex;
align-items:center;
}
.site-logo img{
max-height:60px;
width:auto;
}
.site-title{
font-size:2rem;
font-weight:700;
color:var(--color-primary);
}
.global-nav{
display:flex;
align-items:center;
}
.global-menu{
display:flex;
align-items:center;
gap:2rem;
}
.global-menu>li>a{
display:block;
padding:.75rem 0;
font-weight:600;
position:relative;
}
.global-menu>li>a::after{
content:"";
position:absolute;
left:0;
bottom:0;
width:0;
height:2px;
background:var(--color-secondary);
transition:var(--transition);
}
.global-menu>li>a:hover::after,
.global-menu>.current-menu-item>a::after{
width:100%;
}
.menu-toggle{
display:none;
width:48px;
height:48px;
position:relative;
}
.menu-toggle span{
position:absolute;
left:10px;
width:28px;
height:2px;
background:var(--color-primary);
transition:var(--transition);
}
.menu-toggle span:nth-child(1){
top:15px;
}
.menu-toggle span:nth-child(2){
top:23px;
}
.menu-toggle span:nth-child(3){
top:31px;
}
/* ==========================================================
Button
========================================================== */
.btn-primary,
.wp-block-button__link,
input[type="submit"],
button[type="submit"]{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:220px;
min-height:56px;
padding:0 2rem;
border:none;
border-radius:50px;
background:var(--color-primary);
color:var(--color-white);
font-size:1rem;
font-weight:700;
text-align:center;
text-decoration:none;
transition:var(--transition);
cursor:pointer;
box-shadow:var(--shadow);
}
.btn-primary:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover{
background:var(--color-secondary);
transform:translateY(-3px);
}
.btn-outline{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:220px;
min-height:56px;
padding:0 2rem;
border:2px solid var(--color-primary);
border-radius:50px;
background:transparent;
color:var(--color-primary);
font-weight:700;
transition:var(--transition);
}
.btn-outline:hover{
background:var(--color-primary);
color:#fff;
}

/* ==========================================================
Card
========================================================== */
.card{
height:100%;
background:#fff;
border-radius:var(--radius);
overflow:hidden;
box-shadow:var(--shadow);
transition:var(--transition);
}
.card:hover{
transform:translateY(-6px);
}
.card-image{
overflow:hidden;
}
.card-image img{
width:100%;
aspect-ratio:4 / 3;
object-fit:cover;
transition:var(--transition);
}
.card:hover .card-image img{
transform:scale(1.05);
}
.card-body{
padding:2rem;
}
.card-title{
margin-bottom:1rem;
font-size:1.3rem;
font-weight:700;
line-height:1.4;
color:var(--color-primary);
}
.card-text{
color:var(--color-sub);
line-height:1.9;
}

/* ==========================================================
Grid
========================================================== */
.grid{
display:grid;
gap:2rem;
}
.grid-2{
grid-template-columns:repeat(2,minmax(0,1fr));
}
.grid-3{
grid-template-columns:repeat(3,minmax(0,1fr));
}
.grid-4{
grid-template-columns:repeat(4,minmax(0,1fr));
}

/* ==========================================================
Table
========================================================== */
.table{
width:100%;
background:#fff;
border:1px solid var(--color-border);
}
.table th,
.table td{
padding:1rem 1.5rem;
border-bottom:1px solid var(--color-border);
vertical-align:top;
}
.table th{
width:220px;
background:#f8f9fb;
font-weight:700;
color:var(--color-primary);
text-align:left;
}
.table tr:last-child th,
.table tr:last-child td{
border-bottom:none;
}

/* ==========================================================
Form
========================================================== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="search"],
textarea,
select{
width:100%;
padding:1rem;
border:1px solid #ccc;
border-radius:6px;
background:#fff;
transition:var(--transition);
}
input:focus,
textarea:focus,
select:focus{
outline:none;
border-color:var(--color-secondary);
box-shadow:0 0 0 3px rgba(29,99,197,.15);
}
textarea{
min-height:180px;
}
label{
display:block;
margin-bottom:.5rem;
font-weight:700;
}
.wpcf7{
margin-top:2rem;
}
.wpcf7 p{
margin-bottom:1.5rem;
}
.wpcf7-spinner{
margin-left:1rem;
}

/* ==========================================================
Image
========================================================== */
.image-cover{
overflow:hidden;
}
.image-cover img{
width:100%;
height:100%;
object-fit:cover;
}

/* ==========================================================
Utility
========================================================== */
.text-center{
text-align:center;
}
.text-left{
text-align:left;
}
.text-right{
text-align:right;
}
.d-flex{
display:flex;
}
.flex-center{
display:flex;
align-items:center;
justify-content:center;
}
.flex-between{
display:flex;
align-items:center;
justify-content:space-between;
}
.align-center{
align-items:center;
}
.justify-center{
justify-content:center;
}
.w-100{
width:100%;
}
.h-100{
height:100%;
}
.mb-0{
margin-bottom:0;
}
.mb-1{
margin-bottom:1rem;
}
.mb-2{
margin-bottom:2rem;
}
.mb-3{
margin-bottom:3rem;
}
.mt-1{
margin-top:1rem;
}
.mt-2{
margin-top:2rem;
}
.mt-3{
margin-top:3rem;
}
.pt-0{
padding-top:0;
}
.pb-0{
padding-bottom:0;
}
.rounded{
border-radius:var(--radius);
}
.shadow{
box-shadow:var(--shadow);
}
.bg-light{
background:var(--color-bg);
}
/* ==========================================================
Animation
========================================================== */
.fade-in{
opacity:0;
transform:translateY(30px);
transition:opacity .8s ease,transform .8s ease;
}
.fade-in.is-visible{
opacity:1;
transform:translateY(0);
}
.zoom-in{
overflow:hidden;
}
.zoom-in img{
transition:transform .6s ease;
}
.zoom-in:hover img{
transform:scale(1.08);
}
.hover-up{
transition:transform .3s ease,box-shadow .3s ease;
}
.hover-up:hover{
transform:translateY(-6px);
box-shadow:0 12px 30px rgba(0,0,0,.12);
}

/* ==========================================================
Responsive
========================================================== */
@media (max-width:1024px){

:root{
--section-space:0px;
}
.recruit-buttons{
margin-bottom:50px;		
	}
.container{
width:min(100% - 32px,var(--container));
}

.grid-4{
grid-template-columns:repeat(2,1fr);
}

.grid-3{
grid-template-columns:repeat(2,1fr);
}

.site-header .container{
min-height:80px;
}

.global-menu{
gap:1.5rem;
}

.section-heading{
margin-bottom:30px;
}

}

@media (max-width:768px){

:root{
--section-space:0px;
}
.recruit-inner{
padding:50px 0 0;
}
	.recruit-subtitle{
		padding-top:0 !important;
		margin-top:0 !important;
	}
		.news_title{
		letter-spacing:0.2em !important;
			text-align:center;
			width:95%;
	}
	.page-title{
font-size:20px;
}
body{
font-size:15px;
}

.container{
width:min(100% - 24px,var(--container));
}

.section-heading{
margin-bottom:30px;
}

.section-title{
font-size:1.6rem;
}

.section-description{
font-size:.95rem;
}

.grid-2,
.grid-3,
.grid-4{
grid-template-columns:1fr;
}

.flex-between{
flex-direction:column;
align-items:flex-start;
}

.menu-toggle{
display:block;
z-index:1001;
}

.global-nav{
position:fixed;
top:0;
right:-100%;
width:300px;
max-width:85%;
height:100vh;
background:#fff;
padding:100px 30px 40px;
overflow-y:auto;
box-shadow:-8px 0 20px rgba(0,0,0,.1);
transition:right .35s ease;
}

.global-nav.is-open{
right:0;
}

.global-menu{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0;
}

.global-menu li{
width:100%;
}

.global-menu a{
display:block;
width:100%;
padding:1rem 0;
border-bottom:1px solid var(--color-border);
}

.menu-toggle.is-active span:nth-child(1){
transform:rotate(45deg);
top:23px;
}

.menu-toggle.is-active span:nth-child(2){
opacity:0;
}

.menu-toggle.is-active span:nth-child(3){
transform:rotate(-45deg);
top:23px;
}

.table th,
.table td{
display:block;
width:100%;
}

.table th{
border-bottom:none;
}

.card-body{
padding:1.5rem;
}

.btn-primary,
.btn-outline,
.wp-block-button__link{
width:100%;
}
	.page-title{
	line-height:1.2em;
	padding:30px 20px;
}
	.news_title{
		letter-spacing:0.2em;
		text-align:center;
	}
}

@media (max-width:480px){

:root{
--section-space:0px;
}

.site-header .container{
min-height:72px;
}

.site-logo img{
max-height:48px;
}

.site-title{
font-size:1.6rem;
}

.section-title{
font-size:1.2rem;
}

.section-subtitle{
font-size:.8rem;
}

.card-title{
font-size:1.2rem;
}

}

/* ==========================================================
Accessibility
========================================================== */

:focus-visible{
outline:3px solid var(--color-accent);
outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){

*,
*::before,
*::after{
animation:none!important;
transition:none!important;
scroll-behavior:auto!important;
}

}

/* ==========================================================
Print
========================================================== */

@media print{

.site-header,
.site-footer,
.menu-toggle,
.global-nav,
.btn-primary,
.btn-outline{
display:none!important;
}

body{
background:#fff;
color:#000;
}

.container{
width:100%;
max-width:none;
}

}

/* ==========================================================
Utility Extra
========================================================== */

.clearfix::after{
content:"";
display:block;
clear:both;
}

.hidden{
display:none!important;
}

.visible{
display:block!important;
}

.sr-only{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0;
}

.img-fluid{
display:block;
max-width:100%;
height:auto;
}

.text-primary{
color:var(--color-primary);
}

.text-secondary{
color:var(--color-secondary);
}

.bg-primary{
background:var(--color-primary);
color:#fff;
}

.bg-white{
background:#fff;
}

.round{
border-radius:50%;
}

.shadow-lg{
box-shadow:0 15px 40px rgba(0,0,0,.12);
}
@media (max-width:991px){
.site-header{
position:sticky !important;
top:0 !important;
left:0;
z-index:9999;
width:100%;
}
}

/* ==========================================================
Disable Lightning Mobile Navigation
========================================================== */

.vk-mobile-nav,
.vk-mobile-nav-menu-btn,
.vk-mobile-nav-menu{
display:none !important;
}
.site-header{
position:sticky;
top:0;
left:0;
right:0;
z-index:9999;
}
