@font-face {
    font-family: 'Bree Serif';
    src: url('./fonts/BreeSerif-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'noto sans';
    src: url('./fonts/NotoSansJP-VariableFont_wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'noto serif';
    src: url('./fonts/NotoSerifJP-VariableFont_wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'BizUDP Regular';
    src: url('./fonts/BIZUDPGothic-Bold.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Din Bold';
    src: url('./fonts/D-DIN-PRO-700-Bold.otf') format('truetype');
}
@font-face {
    font-family: 'MPLUS 1p';
    src: url('./fonts/MPLUS1p-Bold.ttf') format('truetype');
}
@font-face {
    font-family: 'MPLUS 1p Medium';
    src: url('./fonts/MPLUS1p-Medium.ttf') format('truetype');
}
@font-face {
    font-family: 'RobotoCondensed-Light';
    src: url('./fonts/RobotoCondensed-Light.ttf') format('truetype');
}
* {
  box-sizing: border-box;
}
body{
    margin: 0 auto;
    font-family: 'noto sans', sans-serif;
    text-align: justify;
    overflow-x: hidden;
}
header {
    background: #0E76C3;
}
p{
    font-size: 16px;
    font-family: 'noto sans', sans-serif;
    /*line-height: 3em;*/
    color: #292929;
    font-weight: 300;
}
.txtCenter{
    text-align: center;
}
.top_main_visual{
    height: 80vh;
    background-image: url("../images/index/main_v_front.webp"), url("../images/index/main_v.webp");
    background-position: bottom right, center;
    background-size: 40%, 100%;
    background-repeat: no-repeat, no-repeat;
}
.top_main_txt {
    position: relative;
    max-width: 1080px;
    margin: auto;
    top: 10%;
}
.top_main_title {
    font-family: 'Din Bold', sans-serif;
    font-size: 50px;
    color: #0E76C3;
    letter-spacing: 2px;
}
.top_main_subtitle {
    color: #707070;
    letter-spacing: 4px;
    margin-top: 10px;
    font-family: 'noto sans';
}
.top_main_visual img{
    width: 100vw;
}

.company{
    /*height: 50vh;*/
    background-image: url("../images/index/company.webp");
    background-size: cover;
    background-position: center;
    padding: 50px 0;
    margin: 150px auto 50px;
}
.company_wrap p{
    line-height: 2.5;
}
.company_wrap{
    max-width: 650px;
    width:96%;
    margin: auto;
    text-align: center;
    padding: 30px 0;
}

.content{
    max-width: 1800px;
    width: 100%;
    margin: 100px auto;
}

.title_en{
    color: #0E5696;
    font-size: 50px;
    font-family: 'Bree Serif', sans-serif;
    width: 100%;
    line-height: 0.5;
    margin: 35px auto;
    letter-spacing: 5px;
}
.title_jp{
    color: #0E5696;
    font-size: 16px;
    font-weight: 700;
    font-family: 'MPLUS 1p';
}
.company_wrap .title_jp{
    color: #000;
}
.company_moto{
    font-size: 22px;
    font-weight: 600;
    font-family: 'MPLUS 1p';
    color: #0E5696;
}
.company_wrap .company_moto{
    color: #000;
}
.more_btn {
    margin: 35px 0;
}
a.button_more::after{
    content: url(../images/common/btn_arrow.svg);
    position: relative;
    margin-left: 20px;
    top: 2px;
    
}

a.button_more {
    font-family: 'RobotoCondensed-Light', sans-serif;
    background: #0E76C3;
    color: #fff;
    text-decoration: none;
    padding: 15px 20px;
}


.content_wrap {
    max-width: 1080px;
    width: 100%;
    margin: 50px auto;
    display: flex; /* Use flexbox to align items side by side */
    align-items: center; /* Align items vertically centered */
    gap: 20px; /* Add some space between the image and text */
    position: relative; /* Ensure overflow works correctly */
    /*background: #E5F4FF;*/
    justify-content: flex-end;
   
}




.footer_conts {
    max-width: 1080px;
    margin: 50px auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /*grid-template-rows: repeat(2, 1fr);*/
    grid-column-gap: 10px;
    grid-row-gap: 10px;
}

.recruit { grid-area: 1 / 1 / 2 / 4; 
margin: 50px auto;}
.contact { grid-area: 2 / 1 / 3 / 2; }
.number { grid-area: 2 / 2 / 3 / 3; }
.mail { grid-area: 2 / 3 / 3 / 4; }

.recruit_btn{
    text-align: center;
    display: flex;
    justify-content: center;
    color: #0E5696;
    
}
.recruit_link__btn{
    color: #0E5696;
    background: #E5F4FF;
    font-size: 40px;
    text-decoration: none;
    display: table-cell;
    padding: 10px 50px;
}
.contact_ttl{
    font-size: 40px;
    text-decoration: none;
    display: table-cell;
    padding: 10px 20px;
    color: #0E5696;
}
.vacancy{
    font-weight: 600;
    font-family: 'MPLUS 1p';
}
.footer_cont_ttl{
    font-weight: 600;
    font-family: 'Bree Serif', sans-serif;
}
.recruit_link__btn .smallletter{
    font-size: 18px;
    color: #0E5696;
    font-family: 'MPLUS 1p';
}
.contact_tt_jp{
    font-size: 18px;
    color: #0E5696;
}
.number_num{
    font-size: 40px;
    color: #0E5696;
    font-weight: 600;
    font-family: 'Bree Serif', sans-serif;
}
.number_text{
    font-size: 18px;
    color: #0E5696;
}

a.mail_to{
    border: 1px solid #0E5696;
    color: #0E5696;
    font-size: 25px;
    text-decoration: none;
    display: table-cell;
    padding: 10px 20px;
    font-weight: 600;
    font-family: 'Bree Serif', sans-serif;
}
a.mail_to::before{
    content: url(../images/common/mail_icon.svg);
    position: relative;
    margin-left: 10px;
    top: 2px;
    left: -10px;
}

.footer_prem_parents {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(1, 1fr);
    grid-column-gap: 0;
    grid-row-gap: 0;
    max-width: 1080px;
    margin: auto;
    padding: 25px 0;
    position: relative;
}
.footer_premp_b {
    position: relative;
}
button#topBtn {
    background: none;
    border: none;
    width: 80px;
    position: absolute;
    right: 5%;
    top: 100px;
}

.footer_details { grid-area: 1 / 1 / 2 / 2; }
.footer_menu { grid-area: 1 / 2 / 2 / 3; }

.footer_prem {
    /*background: #0E76C3;*/
    color: #fff;
    background: rgb(14, 118, 195) url(../images/common/footer_bg_right.svg);
  background-size: contain; /* Adjust to your needs (e.g., contain, auto) */
  background-position: right; /* Center the image */
  background-repeat: no-repeat; /* Prevents repeating of the background image */
}
.footer_addr{
    margin: 20px 0 30px 0;
    font-family: 'MPLUS 1p';
}
.footer_details img{
    width: 100%;
    max-width: 220px;
}
.footer_menu_ul{
    display: flex;
    flex-wrap: nowrap;
}
.footer_menu_ul li{
    list-style: none;
    display: flex;
    margin: 0 10px;
}
.footer_menu_ul li a{
    color: #fff;
}
.pc{
    display: block;   
}
.sp{
    display: none;
}
button#topBtn img{
    width: 100%;
}
@media screen and (max-width: 1200px) {
    .top_main_visual{
        background-size: 48%, 100%;
    }
    
}
@media screen and (max-width: 1000px) {
    .top_main_visual{
        background-size: 56%, 100%;
    }
    
}
@media screen and (max-width: 960px) {
    .top_main_visual{
        background-size: 60%, 100%;
    }
    
}
@media screen and (max-width: 780px) {
    .top_main_visual{
        background-size: 70%, 100%;
    }
    
}

@media screen and (max-width: 540px) {
    
.pc{
    display: none !important;
        
}
.sp{
    display: block;
}
/*
body{
    width: calc(100% - 20px);
}
*/
    .top_main_txt{
        left: 10px;
        width: 90%;
    }
.top_main_visual{
    height: 50vh;
    background-size: 55%, 100%;
}
.company{
    background-image: url(../images/index/company_sp.webp);
    background-size: cover;
    margin: 100px auto 50px;
}
    
    
    /*footer*/
    
    .footer_conts{
        justify-items: center;
        grid-template-rows: none;
    }
    
    .recruit { grid-area: 1 / 1 / 1 / 4;
    text-align: center;margin: 20px auto;}
    .contact { grid-area: 2 / 1 / 2 / 4;
    text-align: center;margin: 20px auto;}
    .number { grid-area: 3 / 1 / 3 / 4;
    text-align: center;margin: 20px auto;}
    .mail { grid-area: 4 / 1 / 4 / 4; 
    text-align: center;margin: 20px auto;}
    
    

.footer_prem{
    background: #0E76C3;
}
    .recruit_link__btn .smallletter{
        font-size: 15px;
    }
    .footer_prem_parents{
        padding: 25px 10px;
    }
button#topBtn{
    top: 15px;
}
button#topBtn img{
    width: 90%;
}
.recruit_link__btn{
    padding: 20px 10px;    
}
    
    }