@charset "utf-8";

html{
    font-size: 62.5%;
    scroll-behavior: smooth;
}

/*------------------- base -------------------*/
body{
	font-family: 'Noto Sans JP',sans-serif;
    font-style: normal;
	font-size: 1.6rem;
	color: #333;
    background-color: #fafafa;
}
.font_serif{
    font-family: serif;
    font-weight: bold;
}
a{
	text-decoration:none;
    color: #333;
    cursor: pointer;
}
p{
    line-height: 1.76;
    letter-spacing: 0.2rem;
    margin-bottom: 2.2rem;
}
@media screen and (max-width: 582px){
    p{
        margin-bottom: 1rem;
    }    
}    
img{
	max-width: 100%;
	height: auto;
}
.br_sp_on{
    display: none;
}
@media screen and (max-width: 582px){
    .br_sp_none{
        display: none;
    }
    .br_sp_on{
        display: inline;
    }    
}    
/*------------------- ここまでbase -------------------*/

/*------------------- header -------------------*/
.header_container{
    width: 100%;
    background-color: #B299E4;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 70;
}
.header_inner{
    max-width: 1600px;
    padding: 4px 40px 12px;
    margin: 0 auto;
    position: relative;
}
@media screen and (max-width: 768px){
    .header_inner{
        padding: 2px 40px 8px;
    }
}
@media screen and (max-width: 582px){
    .header_inner{
        padding: 2px 12px 6px;
    }
}
.koushinbi{
    font-size: 2rem;
    font-weight: bold;
    position: absolute;
    top: 50%;
    left: 14%;
    transform: translateY(-50%);
}
@media screen and (max-width: 1120px){
    .koushinbi{
        font-size: 1.6rem;
        left: 16%;
    }
}
@media screen and (max-width: 880px){
    .koushinbi{
        font-size: 1.2rem;
        top: 84%;
        left: 40px;
    }
}
@media screen and (max-width: 768px){
    .koushinbi{
        font-size: 1rem;
        left: 10%;
        top: 86%;
    }
}
@media screen and (max-width: 582px){
    .koushinbi{
        font-size: 1.2rem;
        top: 50%;
        left: 98px;
    }
}
@media screen and (max-width: 364px){
    .koushinbi{
        font-size: 1rem;
        left: 52px;
    }
}
/* ハンバーガーメニュー ---- */
.hbg_menu_btn{
    width: 30px;
    height: 20px;
    position: absolute;
    top: 50%;
    transform: translate(0, -42%);
    z-index: 99;
}
.hbg_menu_btn span{
    display: block;
    height: 2px;
    position: absolute;
    background-color: #fff;
}
.btn_t{
    width: 100%;
    top: 0;
}
.hbg_menu_btn.active .btn_t{ /* js */
    display: none;
}
.btn_c{
    width: 100%;
    top: 45%;
}
.hbg_menu_btn.active .btn_c{ /* js */
    width: 80%;
    transform: rotate(-45deg);
}
.btn_b{
    width: 60%;
    bottom: 0;
}
.hbg_menu_btn.active .btn_b{ /* js */
    width: 80%;
    transform: rotate(45deg);
    top: 50%;
}
.hbg_menu_content{
    pointer-events: none;
    width: 100%;
    height: 100%;
    background: url(../images/hbg_menu_bg.jpg) center center / cover no-repeat;
    overflow-y: scroll;
    overflow-x: hidden;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 0.8s;
}
@media screen and (max-width: 582px){
    .hbg_menu_content{
        background-position: center left -340px;
    }
}
.hbg_menu_content.active{ /* js */
    pointer-events: auto;
    opacity: 1;
    transform: translateY(0px);
    z-index: 80;
}
.hbg_menu_inner{
    display: flex;
    justify-content: center;
    padding: 170px 30px 80px;
}
@media screen and (min-width: 1367px){
    .hbg_menu_inner{
        padding: 190px 15px 80px;
    }
}
@media screen and (max-width: 582px){
    .hbg_menu_inner{
        display:block;
        padding: 100px 20px 80px;
    }
}
.nav{
    font-size: 1.8rem;
}
@media screen and (max-width: 768px){
    .nav{
        font-size: 1.6rem;
    }
}
.nav li:not(:last-child):not(.nav_sub li){
    margin-bottom: 28px;
}
@media screen and (max-width: 768px){
    .nav li:not(:last-child):not(.nav_sub li){
        margin-bottom: 24px;
    }
}
.nav li a{
    display: block;
    color: #fff;
    transform: translateX(0);
    transition: transform .3s;
    filter: drop-shadow(2px 2px 4px #000);
}
@media screen and (max-width: 768px){
    .nav li a{
        width: fit-content;
        background-color: #3F484F;
        border-radius: 10px;
        filter: none;
    }
}
.nav li a:hover{
    filter: drop-shadow(0 0 6px #fff);
    transform: translateX(20px);
}
@media screen and (max-width: 768px){
    .nav li a:hover{
        filter: none;
    }
}
.nav li a:hover span{
    color: #c2a4ff;
}
.nav_sub li{
    font-size: 1.6rem;
    margin: 6px 0 0 26px;
}
.hbg_menu_inner_r{
    display: flex;
    flex-direction: column;
    justify-content: end;
    margin-left: 38%;
    filter: drop-shadow(2px 2px 4px #000);
}
@media screen and (max-width: 768px){
    .hbg_menu_inner_r{
        margin-left: 0;
    }
}
@media screen and (max-width: 768px){
    .hbg_menu_inner_r{
        filter: none;
    }
}
.hbg_menu_inner_r p{
    color: #fff;
    text-align: end;
    margin: 4px 0 0 0;
}
@media screen and (max-width: 768px){
    .hbg_menu_inner_r p{
        width: fit-content;
        background-color: #3F484F;
        border-radius: 10px;
        margin-left: auto;
    }
}
.hbg_menu_inner_r p:nth-of-type(3) a,
.hbg_menu_inner_r p:nth-of-type(4) a{
    color: #fff;
}
.hbg_menu_inner_r p:last-child a{
    display: block;
    color: #fff;
    width: fit-content;
    background-color: #333;
    padding: 4px 10px;
    border-radius: 4px;
    margin-left: auto;
}
.hbg_menu_inner_r div img{
    display: block;
    margin-left: auto;
}
@media screen and (max-width: 582px){
    .hbg_menu_inner_r div:last-child{
        margin-top: 50px;
    }
}
/* ここまでハンバーガーメニュー ---- */
.sns_box{
    line-height: 0;
    position: absolute;
    top: 50%;
    left: 92px;
    transform: translate(0, -50%);
    z-index: 99;
}
@media screen and (max-width: 768px){
    .sns_box img{
        max-width: 40px;
    }
}
@media screen and (max-width: 582px){
    .sns_box{
        left: 54px;
    }
    .sns_box img{
        max-width: 35px;
    }
}
@media screen and (max-width: 364px){
    .sns_box{
        display: none;
    }
}
.logo{
    text-align: center;
    line-height: 0;
    position: relative;
    z-index: 90;
}
@media screen and (max-width: 582px){
    .logo{
        text-align: end;
    }
}
.logo a{
    opacity: 1;
}
@media screen and (max-width: 768px){
    .logo img{
        max-width: 120px;
    }
}
@media screen and (max-width: 582px){
    .logo img{
        max-width: 100px;
    }
}
.header_btn{
    display: flex;
}
.header_btn .btn{
    position: absolute;
    top: 50%;
    transform: translate(0,-50%);
    z-index: 99;
}
.header_btn .btn_1{
    right: 212px;
}
.header_btn .btn_2{
    right: 40px;
}
@media screen and (max-width: 1068px){
    .header_btn .btn_1{
        position: fixed;
        bottom: 94px;
        right: 11px;
        transform: translate(0,100%);
        z-index: 70;
    }
    .header_btn .btn_1 a{
        font-size: 1.4rem;
        width: 86px;
        height: 86px;
        border-radius: 100%;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: 1s;
    }
}
@media screen and (max-width: 768px){
    .header_btn .btn_2{
        right: 22px;
    }
}
@media screen and (max-width: 582px){
    .header_btn .btn_2{
        display: none;
    }
}
/*------------------- ここまでheader -------------------*/

/*------------------- footer -------------------*/
.footer_contact{
    text-align: center;
    width: 100%;
    height: 390px;
    background: url(../images/footer_contact_bg.jpg) center center / cover no-repeat ;
    padding: 76px 7px 0;
    margin-top: 40px;
    margin-bottom: -132px;
}
@media screen and (max-width: 582px){
    .footer_contact{
        background-position: bottom 50px right;
    }
}
.footer_contact p{
    color: #fff;
    filter: drop-shadow(0px 0px 6px #fff);
}
.footer_contact .btn_2 a{
    filter: drop-shadow(0px 4px 6px black);
}
.footer_bg{
    width: 100%;
    height: 100%;
    background-color: #F2F2F2;
}
.footer_inner{
    max-width: 1200px;
    margin: 0 auto;
    font-size: 1.5rem;
    padding: 60px 15px;
}
.footer_content_top{
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 28px;
    border-bottom: solid 1px #B2B2B2;
    margin-bottom: 24px;
}
@media screen and (max-width: 768px){
    .footer_content_top{
        display: block;
    }
}
.footer_logo{
    margin-right: 7vw;
}
.footer_logo a{
    opacity: 1;
}
.footer_info{
    margin-right: 80px;
}
@media screen and (max-width: 582px){
    .footer_info{
        margin-right: 0;
    }    
}
.footer_info p{
    margin-bottom: 10px;
}
.footer_sns{
    position: relative;
    line-height: 0;
}
.footer_content_top .footer_sns::after{
    content: "";
    display: block;
    width: 1px;
    height: 80px;
    background-color: #B2B2B2;
    position: absolute;
    top: -18px;
    left: -43px;
}
@media screen and (max-width: 582px){
    .footer_content_top .footer_sns::after{
        display: none;
    }
}
.footer_nav{
    display: flex;
    justify-content: space-around;
}
@media screen and (max-width: 1058px){
    .footer_nav{
        display: block;
    }
    .footer_nav li{
        margin-bottom: 10px;
    }
}
.footer_privacypolicy{
    display: block;
    color: #B2B2B2;
    text-align: center;
    margin: 26px 0 -36px;
}
.footer_bottom_line{
    font-size: 1.3rem;
    color: #fff;
    height: 40px;
    background-color: #333;
    display: flex;
    justify-content: center;
    align-items: center;
}
@media screen and (max-width: 582px){
    .footer_bottom_line{
        font-size: 1.2rem;
        height: 32px;
    }    
}
/* footer Waves ---- */
.footerwaves{
    position:relative;
    width: 100%;
    height:15vh;
    margin-bottom:-7px;
    min-height:100px;
    max-height:150px;
}  
.parallax > use{
  animation: move-forever 25s cubic-bezier(.55,.5,.45,.5)     infinite;
}
.parallax > use:nth-child(1){
  animation-delay: -2s;
  animation-duration: 7s;
}
.parallax > use:nth-child(2){
  animation-delay: -3s;
  animation-duration: 10s;
}
.parallax > use:nth-child(3){
  animation-delay: -4s;
  animation-duration: 13s;
}
.parallax > use:nth-child(4){
  animation-delay: -5s;
  animation-duration: 20s;
}
@keyframes move-forever{
  0%{
   transform: translate3d(-90px,0,0);
  }
  100%{ 
    transform: translate3d(85px,0,0);
  }
}
/* ここまでfooter Waves ---- */
/*------------------- ここまでfooter -------------------*/

/*------------------- ページ共通 -------------------*/
.main_container{
    padding: 0 14px;
    margin-top: 240px;
    overflow: hidden;
    position: relative;
}
@media screen and (max-width: 768px){
    .main_container{
        margin-top: 180px;
    }       
}
@media screen and (max-width: 582px){
    .main_container{
        margin-top: 130px;
    }        
}
.main_inner{
    max-width: 1896px;
    margin: 0 auto;
}
.content{
    margin-bottom: 100px;
}
@media screen and (max-width: 768px){
    .content{
        margin-bottom: 70px;
    }      
}
@media screen and (max-width: 582px){
    .content{
        margin-bottom: 50px;
    }        
}
.ttl{
    font-size: 2.4rem;
    color: #fff;
    width: fit-content;
    padding: 8px 30px 8px 23vw;
    margin-left: calc(50% - 50vw);
    position: relative;
}
@media screen and (max-width: 582px){
    .ttl{
        font-size: 2rem;
        padding: 4px 18px 4px 18vw;
    }        
}
.ttl::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: #714ac3;
    transition: transform .4s .1s cubic-bezier(0.42, 0, 0.9, 0.47);
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
}
.ttl.display_in{
    opacity: 0;
}
.ttl.display_in::before{
    transform: scale(0, 1);
}
.ttl.display_in.active{ /* js */
    opacity: 1;
}
.ttl.display_in.active::before{ /* js */
    transform-origin: left top;
    transform: scale(1,1);
}
.sub_ttl{
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 20px;
}
@media screen and (max-width: 582px){
    .sub_ttl{
        margin-bottom: 10px;
    }            
}
/* ボタン ---- */
.btn a{
    font-size: 1.8rem;
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.2rem;
    display: inline-block;
    width: 152px;
    padding: 14px 0;
    border-radius: 4px;
    opacity: 1;
}
@media screen and (max-width: 768px){
    .btn a{
        font-size: 1.4rem;
        width: 122px;
    }
}
.btn a span{
    display:inline-block;
    transition: .5s;
}
a:hover span{
    transform: rotateX(360deg);
}
.btn_1 a{
    color: #fff;
    background-color: #794ad9;
}
.btn_2 a{
    color: #fff;
    background-color: #333;
}
.btn_3_center{
    text-align: center;
    margin-top: 40px;
}
.btn_3 a{
    color: #714ac3;
    background-color: transparent;
    border: solid 2px #714ac3;
}
.btn_4 a{
    color: #fff;
    background-color: #714ac3;
}
/* ここまでボタン ---- */
/* 上に戻るボタン ---- */
.top_btn{
    font-size: 14px;
    width: fit-content;
    opacity: 0;
    transition: .7s;
    position: fixed;
    top: 60%;
    right: 13px;
    z-index: 20;
}
.top_btn::after{
    content: "";
    display: block;
    width: 1px;
    height: 76px;
    background-color: #333;
    position: absolute;
    bottom: -84px;
    right: 6px;
}
/* ここまで上に戻るボタン ---- */
/* SNSアイコン ---- */
a.sns_ico{
    display: inline-block;
    opacity: 1;
    line-height: 0;
}
a.sns_ico::before{
    content: "";
    width: 90%;
    height: 10px;
    position: absolute;
    top: 100%;
    left: 5%;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%);
    z-index: -1;
    opacity: 0;
    transition: .3s;
}
a.sns_ico:hover{
    transform: translateY(-7px);
}
a.sns_ico:hover::before{
    transform: translateY(7px);
    opacity: 1;
}
/* ここまでSNSアイコン ---- */
.font_purple01{
    color: #794ad9;
}
.font_purple02{
    color: #b299e4;
}
.img_bg{
    position: relative;
}
.img_bg{
    position: relative;
    width: fit-content;
    height: fit-content;
    line-height: 1;
}
.img_bg::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: #BFAEE1;
    position: absolute;
    top: 10px;
    left: -10px;
    z-index: -1;
}
/*------------------- ここまでページ共通 -------------------*/

/*------------------- topページ -------------------*/
/* TOPファーストビュー ----*/
.top_fw_wrap{
    width: 100%;
    height: calc(100vh - 127px);
    background-color: #B299E4;
    position: relative;
    top: 75px;
}
@media screen and (max-width: 768px){
    .top_fw_wrap{
        height: calc(100vh - 88px);
        top: 87px;
    }
}
@media screen and (max-width: 582px){
    .top_fw_wrap{
        height: calc(100vh - 73px);
        top: 72px;
    }
}
.top_fwslide{
    width: 72%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    overflow: hidden;
}
@media screen and (max-width: 768px){
    .top_fwslide{
        width: 90%;
    }
}
.top_fw{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0;
    animation: top_fw 24s linear infinite;
}
.top_fw01{
    background: url(../images/top_fw01.jpg) center left / cover no-repeat;
    animation-delay: -2s;
}
.top_fw02{
    background: url(../images/top_fw02.jpg) center right 30% / cover no-repeat;
    animation-delay: 6s;
}
.top_fw03{
    background: url(../images/top_fw03.jpg) center center / cover no-repeat;
    animation-delay: 14s;
}
@media screen and (max-width: 582px){
    .top_fw02{
        background-position: center right 40%;
    }
    .top_fw03{
        background-position: center right 20%;
    }    
}
@keyframes top_fw{
    0%{
        opacity: 0;
        transform: scale(1);
    }
    4.16%{
        opacity: 1;
    }
    33.33%{
        opacity: 1;
    }
    41.66%{
        opacity: 0;
        transform: scale(1.2);
    }
    100%{
        opacity: 0;
    }
}
.top_fw_wrap p{
    font-size: 3.4rem;
    color: #fff;
    position: absolute;
    top: 50%;
    left: 10%;
    overflow: hidden;
    opacity: 0;
    transform: translateX(-80px);
    transition: opacity .4s,transform .4s;
}
@media screen and (max-width: 768px){
    .top_fw_wrap p{
        font-size: 2.6rem;
        writing-mode: vertical-rl;
        top: 10%;
        left: 20%;
    }    
}
.top_fw_wrap p.display_in.active{ /* js */
    opacity: 1;
    transform: translateX(0px);
}
.top_fw_wrap p::before{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: #ffffff96;
    transition: .5s .3s;
}
.top_fw_wrap p.display_in.active::before{ /* js */
    transform: translateX(110%);
}
/* ここまでTOPファーストビュー ----*/
/* TOP共通 ---- */
.top_ttl{
    font-size: 6rem;
    color: #707070;
}
@media screen and (max-width: 984px){
    .top_ttl{
        font-size: 4rem;
    } 
}
@media screen and (max-width: 582px){
    .top_ttl{
        font-size: 3.4rem;
    } 
}
/* ここまでTOP共通 ---- */
.top_content_flex{
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    display: flex;
    justify-content: center;
    position: relative;
}
@media screen and (max-width: 984px){
    .top_content_flex{
        display: block;
    }   
}
.top_flex_r{
    line-height: 0;
}
.top_flex_r img{
    width: fit-content;
}
.top_flex_l{
    max-width: 50%;
    background-color: #fafafacc;
    padding: 76px 46px 0;
    margin-top: 80px;
    margin-left: -62px;
    position: relative;
    z-index: 60;
}
@media screen and (max-width: 984px){
    .top_flex_l{
        max-width: 96%;
        padding: 0 14px;
        margin-top: 0;
        margin-left: 0;
    } 
}
@media screen and (max-width: 582px){
    .top_flex_l{
        max-width: 100%;
    } 
}
.top_content_flex .top_ttl{
    position: absolute;
    top: -54px;
}
@media screen and (max-width: 984px){
    .top_content_flex .top_ttl{
        position: static;
        margin-bottom: 10px;
    } 
}
.top_content_flex p{
    max-width: 1100px;
}
.top_flex_l .btn{
    margin-top: 30px;
}
@media screen and (max-width: 984px){
    .top_flex_l .btn{
        margin: 0;
    }    
}
.top_content_flex_reverse{
    flex-direction: row-reverse;
}
.top_content_flex_reverse .top_flex_l{
    margin-left: 0;
    margin-right: -62px;
}
.top_content_flex_reverse .top_ttl01_02{
    left: auto;
}
.top_content_flex_reverse .top_flex_l .btn{
    text-align: end;
}
@media screen and (max-width: 984px){
    .top_content_flex_reverse .top_flex_l .btn{
        text-align: start;
    }       
}
.top_ttl_center{
    text-align: center;
    margin-bottom: 40px;
}
@media screen and (max-width: 984px){
    .top_ttl_center{
        margin-bottom: 10px;
    }    
}
.top_p_center{
    text-align: center;
}
.top_recruitcard_box{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.recruitcard{
    display: block;
    max-width: 460px;
    width: 100%;
    margin: 0 16px;
    /* margin-bottom: 32px; */
    position: relative;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
.recruitcard:hover{
    transition: .4s !important;
    transform: translateX(20px) !important;
}
.recruitcard_ttl{
    font-size: 3.6rem;
    font-weight: bold;
    color: #fff;
    background: url(../images/recruitcard_bg.jpg) center center / cover no-repeat;
    padding: 3% 3% 100px;
    border-radius: 14px;
}
@media screen and (max-width: 984px){
    .recruitcard_ttl{
        font-size: 3rem;
    }       
}
@media screen and (max-width: 582px){
    .recruitcard_ttl{
        font-size: 2.8rem;
        padding: 3% 3% 80px;
    }       
}
.recruitcard::before{
    content: "…→";
    font-size: 3rem;
    color: #fff;
    position: absolute;
    bottom: 0;
    right: 4%;
}
.recruitcard span:last-child{
    display: block;
    text-align: end;
}
@media screen and (max-width: 582px){
    .recruitcard span:last-child{
        display: inline;
        text-align: start;
    }
}
.top_link_content{
    display: flex;
    justify-content: center;
}
@media screen and (max-width: 768px){
    .top_link_content{
        flex-direction: column;
        align-items: center;
    }
}
.top_link_content a{
    margin: 20px 20px;
}
@media screen and (max-width: 768px){
    .top_link_content a{
        margin: 20px 10px;
    }
}
.top_link_content img{
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
/*------------------- ここまでtopページ -------------------*/

/*------------------- TOP以外のfw -------------------*/
.otherpage_fw{
    width: 100%;
    height: 350px;
    position: relative;
    top: 126px;
    overflow: hidden;
    background: url(../images/other_fw.jpg) center center / cover no-repeat;
}
@media screen and (max-width: 768px){
    .otherpage_fw{
        height: 240px;
        top: 87px;
    }
}
@media screen and (max-width: 582px){
    .otherpage_fw{
        height: 170px;
        top: 72px;
        background-position: center right -90px;
    }
}
.otherpage_fw .main_ttl{
    font-size: 4rem;
    color: #fff;
    font-weight: bold;
    position: absolute;
    top: 60%;
    right: 10%;
    opacity: 0;
    transform: translate(20px,20px);
    transition: opacity .4s,transform .4s;
}
@media screen and (max-width: 768px){
    .otherpage_fw .main_ttl{
        font-size: 3.4rem;
        top: 56%;
        right: 6%;
    }
}
@media screen and (max-width: 582px){
    .otherpage_fw .main_ttl{
        font-size: 2.9rem;
        top: 45%;
        left: 16px;
        width: max-content;;
    }
}
.otherpage_fw .main_ttl.display_in.active,
.singlepage_fw .main_ttl.display_in.active{ /* js */
    opacity: 1;
    transform: translate(0px);
}
.otherpage_fw span:last-child{
    font-size: 2.4rem;
    color: #b299e4;
    display: block;
}
/*------------------- ここまでTOP以外のfw -------------------*/

/*------------------- 会社概要ページ -------------------*/
.about_content{
    max-width: 946px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .about_content{
        margin: 24px auto 0;
    }            
}
.about_content p{
    max-width: 612px;
}
.ceo_imgbox{
    width: fit-content;
    margin-left: auto;
    position: relative;
}
.ceo_img{
    text-align: end;
    margin-right: 70px;
    position: relative;
}
.ceo_img.img_bg::before{
    left: auto;
    top: -20px;
    right: -20px;
}
@media screen and (max-width: 982px){
    .ceo_img{
        margin-right: 0;
    }                         
}
.ceo_imgbox p{
    width: max-content;
    font-size: 4rem;
    line-height: 1.2;
    margin: 0;
    position: absolute;
    top: 36px;
    left: -120px;
}
@media screen and (max-width: 982px){
    .ceo_imgbox p{
        font-size: 3rem;
        left: -80px;
    }                           
}
@media screen and (max-width: 582px){
    .ceo_imgbox p{
        font-size: 6vw;
        left: -50px;
    }                           
}
.ceo_imgbox p span{
     font-size: 1.8rem;
}
.about_content02 p{
    max-width: 540px;
}
.about02_imgbox{
    display: flex;
    margin: 60px 0 -60px;
}
@media screen and (max-width: 820px){
    .about02_imgbox{
        margin-top: 22px;
    }        
}
.about02_imgbox_r{
    margin-left: 14px;
    transform: translateY(-124px);
    position: relative;
    z-index: -1;
}
@media screen and (max-width: 820px){
    .about02_imgbox_r{
        margin-left: 8px;
        transform: translateY(-46px);
    }    
}
.about02_imgbox_r div:first-child{
    margin-bottom: 8px;
}
@media screen and (max-width: 820px){
    .about02_imgbox_r div:first-child{
        margin-bottom: 0;
    }        
}
.rinen_box{
    background: url(../images/rinen_bg.jpg) center center / cover no-repeat;
    padding: 60px 14px;
    margin: 40px calc(50% - 50vw);
}
@media screen and (max-width: 768px){
    .rinen_box{
        padding: 30px 14px;
    }           
}
.rinen_ttl{
    font-size: 4rem;
    color: #fff;
    text-align: center;
    max-width: 70%;
    border-bottom: solid 1px #fff;
    padding-bottom: 20px;
    margin: 0 auto 20px;
}
@media screen and (max-width: 768px){
    .rinen_ttl{
        font-size: 3rem;
    }           
}
@media screen and (max-width: 582px){
    .rinen_ttl{
        padding-bottom: 11px;
        margin: 0 auto 16px;
    }           
}
.rinen_box p{
    font-size: 3rem;
    color: #fff;
    text-align: center;
    max-width: 100%;
}
@media screen and (max-width: 768px){
    .rinen_box p{
        font-size: 2rem;
    }           
}
@media screen and (max-width: 582px){
    .rinen_box p{
        font-size: 1.8rem;
    }           
}
.rinen_box p span{
    color: #B299E4;
}
.award_box{
    margin-top: 40px;
}
.award_box h4{
    font-size: 3rem;
    color: #9370DB;
    text-align: center;
    position: relative;
    z-index: 1;
}
.award_box h4::before{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: #fafafa;
    transition: .5s;
}
.award_box h4.display_in.active::before{
    transform: translateY(100%);
}
.award_box h4::after{
    content: "";
    display: block;
    width: 1px;
    height: 70px;
    background-color: #9370DB;
    position: absolute;
    top: 60px;
    right: 50%;
    opacity: 0;
    transform: translateY(-100px);
    transition: opacity .5s .4s,transform .5s .3s;
}
@media screen and (max-width: 582px){
    .award_box h4::after{
        height: 50px;
        top: 52px;
    }          
}
.award_box h4.display_in.active::after{
    opacity: 1;
    transform: translateY(0px);
}
.award_content{
    max-width: 744px;
    height: 404px;
    margin: 66px auto 0;
    position: relative;
    z-index: -1;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
@media screen and (max-width: 582px){
    .award_content{
        margin-top: 28px;
        height: 350px;
    }              
}
.award_content::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url(../images/award_bg.png) center center / contain no-repeat;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
    position: absolute;
}
@media screen and (max-width: 582px){
    .award_content::before{
        opacity: 0.5;
    }              
}
.award_content.display_in.active{
    opacity: 1;
    transform: translateY(0px);
}
.award_content ul{
    width: fit-content;
    position: absolute;
    top: 40px;
    left: 50%;
    transform: translateX(-50%);
}
@media screen and (max-width: 582px){
    .award_content ul{
        width: 100%;
        text-align: center;
    }                 
}
.award_content ul li{
    font-size: 2rem;
    font-weight: bold;
}
.award_content ul li:not(:last-child){
    margin-bottom: 20px;
}
.award_content ul li span{
    font-size: 1.6rem;
}
.movie_content{
    height: 550px;
    background: url(../images/movie_bg.png) center center / cover no-repeat;
    padding: 0 14px;
    margin: 66px calc(50% - 50vw) 0;
    position: relative;
    z-index: 0;
}
@media screen and (min-width: 768px){
    .movie_content{
        height: 850px;
    }              
}
@media screen and (max-width: 1400px){
    .movie_content{
        height: auto;
        background: url(../images/movie_bg.png) top 10px center / cover no-repeat;
        padding-top: 40px;
    }              
}
@media screen and (max-width: 582px){
    .movie_content{
        margin-top: 44px;
    }              
}
.movie_content video{
    display: block;
    max-width: 100%;
	height: auto;
    margin: 0 auto;
}
.about_content03{
    display: flex;
    justify-content: center;
}
@media screen and (max-width: 820px){
    .about_content03{
        justify-content: start;
        position: relative;
    }            
}
.about_info{
    margin-right: 130px;
}
@media screen and (max-width: 820px){
    .about_info{
        margin-right: 0;
    }
    .about_content03 div{
        max-width: 170px;
        position: absolute;
        top: 0;
        right: 5%;
        z-index: -1;
        opacity: 0.5;
    }          
}
@media screen and (max-width: 582px){
    .about_content03 div{
        max-width: 120px;
        top: -60px;
    }          
}
.about_info th{
    text-align: start;
    vertical-align: baseline;
    padding: 0 68px 30px 0;
}
@media screen and (max-width: 582px){
    .about_info th{
        width: 40%;
        padding-right: 40px;
    }              
}
.about_info td{
    padding-bottom: 30px;
}
.about_info tr:last-child th,
.about_info tr:last-child td{
    padding-bottom: 0;
}
.about_content04{
    margin-top: 40px;
}
.google_map{
    width: fit-content;
    background-color: #B299E4;
    border-radius: 0 14px 0 0;
    margin-left: calc(50% - 50vw);
    line-height: 0;
}
.google_map iframe{
    background-color: #714ac3;
    max-width: 90vw;
    padding: 14px 14px 0 0;
    border-radius: 0 14px 0 0;
    margin: 14px 14px 0 0;
}
@media screen and (min-width: 1400px){
    .google_map iframe{
        width: 55vw;
    }
}
.google_map_content p{
    text-align: end;
    padding-right: 36px;
    margin-right: 15px;
    border-bottom: solid 1px #B2B2B2;
    position: relative;
    z-index: -1;
}
@media screen and (max-width: 1220px){
    .google_map_content p{
        display: none;
    }
}
.google_map_content p:nth-child(2){
    max-width: 1120px;
    transform: translateY(-340px);
}
.google_map_content p:nth-child(3){
    max-width: 1194px;
    transform: translateY(-320px);
}
.google_map_content p:last-child{
    max-width: 1008px;
    transform: translateY(-280px);
}
@media screen and (min-width: 1367px){
    .google_map_content p:nth-child(2){
        max-width: 80vw;
    }
    .google_map_content p:nth-child(3){
        max-width: 86vw;
    }
    .google_map_content p:last-child{
        max-width: 74vw;
    }
}
/*------------------- ここまで会社概要ページ -------------------*/

/*------------------- 事業紹介ページ -------------------*/
.service_content{
    max-width: 994px;
    padding: 0 15px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .service_content{
        margin: 24px auto 0;
    }                 
}
.service_box{
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    padding: 40px;
    margin-bottom: 40px;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
@media screen and (max-width: 930px){
    .service_box{
        padding: 22px;
    }      
}
@media screen and (max-width: 768px){
    .service_box{
        flex-direction: column-reverse;
        align-items: start;
        padding: 15px;
    }
    .service_box div:first-child{
        align-self: end;
    }     
}
@media screen and (max-width: 582px){
    .service_box div:first-child{
        align-self: center;
    }     
}
.service_box img{
    max-width: none;
}
@media screen and (max-width: 768px){
    .service_box img{
        max-width: 100%;
    }          
}
.service_txtbox{
    max-width: 560px;
    margin-left: 38px;
}
@media screen and (max-width: 768px){
    .service_txtbox{
        margin-left: 0;
    }          
}
.service_content02{
    max-width: 1070px;
    padding: 0;
}
.service_imgbox{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.service_imgbox .img_bg{
    margin: 0 20px 40px;
}
@media screen and (max-width: 742px){
    .service_imgbox .img_bg{
        width: 46%;
        margin: 0 2% 30px;
    }
}
.service_content .btn a{
    width: fit-content;
    padding: 14px 20px;
}
/*------------------- ここまで事業紹介ページ -------------------*/

/*------------------- 工事実績ページ -------------------*/
.results_ttl{
    color: #fbcf9b;
    text-shadow: 1px 1px 0px #ff8400, -1px 1px 0px #ff8400, 1px -1px 0px #ff8400, -1px -1px 0px #ff8400;
    text-align: center;
    font-size: 5rem;
    font-weight: bold;
    margin-bottom: 40px;
}
.results_ttl02{
    color: #fff;
    text-shadow: 1px 1px 0px #61b0ff, -1px 1px 0px #61b0ff, 1px -1px 0px #61b0ff, -1px -1px 0px #61b0ff;
}
@media screen and (max-width: 582px){
    .results_ttl{
        font-size: 2.8rem;
        margin-bottom: 30px;
    }
}
.results_ttl a{
    color: #fbcf9b;
    display: inline-block;
    transition: transform .3s;
}
.results_ttl02 a{
    color: #fff;
}
.results_ttl a:hover{
    filter: drop-shadow(0 0 6px #fff);
    transform: translateX(20px);
}
.results_box{
    max-width: 1130px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: start;
    flex-wrap: wrap;
}
.results_box ul{
    text-align: center;
    width: fit-content;
    margin: 0 30px 60px;
}
.results_box ul li:nth-child(2){
    font-size: 1.24rem;
    font-weight: bold;
    margin: 10px 0;
}
.results_imgbox img{
    margin: 0 30px 60px;
}
.results_imgbox4 img{
    width: 20%;
    margin: 0 28px 60px;
}
@media screen and (max-width: 990px){
    .results_imgbox4 img{
        width: fit-content;
    }
}
/*------------------- ここまで工事実績ページ -------------------*/

/*------------------- 採用情報ページ -------------------*/
.recruit_recruitcard_content{
    width: fit-content;
    display: flex;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .recruit_recruitcard_content{
        margin-top: 24px;
    }                                             
}
@media screen and (max-width: 990px){
    .recruit_recruitcard_content{
        flex-wrap: wrap;
        justify-content: end;
    }                                             
}
.recruit_recruitcard{
    max-width: 388px;
    background-color: #fff;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
    border-radius: 14px;
    margin: 0 14px;
    position: relative;
}
.recruit_recruitcard img{
    border-radius: 14px 14px 0 0;
}
.recruit_recruitcard::before{
    content: "";
    display: block;
    position: absolute;
    bottom: 20px;
    right: 45px;
    margin: auto;
    width: 18px;
    height: 1px;
    background: #B2B2B2;
    transition: .2s;
}
.recruit_recruitcard:hover::before{
    right: 33px;
    width: 32px;
}
.recruit_recruitcard::after{
    content: "";
    display: block;
    position: absolute;
    bottom: 16px;
    right: 44px;
    margin: auto;
    width: 8px;
    height: 8px;
    border-right: 1px solid #B2B2B2;
    border-top: 1px solid #B2B2B2;
    transform: rotate(45deg);
    transition: .2s;
}
.recruit_recruitcard:hover::after {
    right: 32px;
}
.recruit_recruitcard_neme{
    font-size: 3.6rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 0;
    margin-left: 20px;
    position: absolute;
    top: 12%;
}
@media screen and (max-width: 1153px){
    .recruit_recruitcard_neme{
        font-size: 2.4rem;
    }                                                   
}
.recruitcard_txtbox{
    padding: 6% 8% 40px;
    margin: 0;
}
@media screen and (max-width: 1153px){
    .recruitcard_txtbox{
        padding: 15px 15px 40px;
    }                                                
}
.faq_content{
    max-width: 900px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .faq_content{
        margin: 24px auto 0;
    }                                                           
}
.question{
    font-size: 2rem;
    color: #fff;
    font-weight: bold;
    background-color: #333;
    padding: 20px;
    margin: 10px 0 0 10px;
    position: relative;
}
@media screen and (max-width: 768px){
    .question{
        font-size: 1.6rem;
        padding: 16px;
    }                                                           
}
.question::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: solid 1px #333;
    position: absolute;
    top: -10px;
    left: -10px;
}
.answer{
    padding: 10px 20px 0;
    margin-bottom: 60px;
}
@media screen and (max-width: 768px){
    .answer{
        margin-bottom: 40px;
    }                                                               
}
.recruit_slide{
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .faq_content{
        margin: 24px auto 0;
    }                                                           
}
.recruit_slide_img{
    max-width: 802px;
    padding: 14px;
    margin: 0 auto;
    background-color: #BFAEE1;
    border-radius: 14px;
    line-height: 0;
}
.recruit_slide_img img{
    border-radius: 14px;
}
/*------------------- ここまで採用情報ページ -------------------*/

/*------------------- 採用個別ページ -------------------*/
.kensetusagyou_fw{
    background: url(../images/kensetusagyou_fw.jpg) center center / cover no-repeat;
}
.recruit_content01{
    max-width: 1078px;
    background-color: #fff;
    padding: 60px 60px 80px;
    margin: 0 auto 100px;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
@media screen and (max-width: 768px){
    .recruit_content01{
        padding: 20px 15px 40px;
    }                                                           
}
.recruit_about{
    font-size: 2rem;
    padding-bottom: 40px;
    background-image: linear-gradient(90deg, #714ac3 15%, #B2B2B2 15%);
    background-repeat: no-repeat;
    background-size: 100% 2px;
    background-position: bottom;
}
@media screen and (max-width: 768px){
    .recruit_about{
        font-size: 1.6rem;
        padding-bottom: 20px;
    }                                                               
}
.recruit_box{
    margin: 0 auto;
}
table.recruit_box{
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
.recruit_box th{
    text-align: start;
    vertical-align: top;
    padding: 46px 5vw 32px 0;
    border-bottom: solid 1px #B2B2B2;
}
@media screen and (max-width: 768px){
    .recruit_box th{
        display: block;
        width: 100%;
        border-bottom: 0;
        padding: 12px 0 0 0;
    } 
    tr{
        border-bottom: solid 1px #B2B2B2;
    }                                                                
}
.recruit_box td{
    max-width: 706px;
    padding: 46px 0;
    border-bottom: solid 1px #B2B2B2;
}
@media screen and (max-width: 768px){
    .recruit_box td{
        display: block;
        width: 100%;
        border: 0;
        padding: 12px 0 12px 24px;
        box-sizing: border-box;
    }                                                                      
}
.recruit_box span{
    display: block;
    position: relative;
}
.recruit_box span:not(:first-child){
    margin-top: 28px;
}
@media screen and (max-width: 768px){
    .recruit_box span:not(:first-child){
        margin-top: 10px;
    }                                                                         
}
.recruit_box span::before{
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    border-radius: 100%;
    background-color: #714ac3;
    position: absolute;
    top: 9px;
    left: -19px;
}
.recruit_box .tel{
    font-size: 2.4rem;
    position: static;
}
@media screen and (max-width: 768px){
    .recruit_box .tel{
        font-size: 2rem;
    }                                                                             
}
.recruit_box .tel a{
    color: #333;
}
.recruit_box .tel span:first-child{
    font-weight: bold;
    display: inline;
    position: static;
    border-bottom: 1px solid #714ac3;
}
.recruit_box .tel_img{
    display: inline-block;
    position: static;
    vertical-align: middle;
    width: 30px;
    height: 30px;
    background: url(../images/tel_img.png) center center / contain no-repeat;
    margin-top: 0 !important;
}
.recruit_box .btn span{
    position: static;
}
.recruit_box .tel::before,
.recruit_box .tel span::before,
.recruit_box .tel_img::before,
.recruit_box .btn span::before{
    display: none;
}
.recruit_box .btn{
    margin-top: 20px;
}
@media screen and (max-width: 768px){
    .recruit_box .btn{
        margin-top: 10px;
    }                                                                                 
}
.oneday_content{
    max-width: 660px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .oneday_content{
        margin: 24px auto 0;
    }
}
.oneday_box{
    display: flex;
}
.oneday_box_l{
    width: fit-content;
    min-height: 120px;
    display: flex;
    align-items: center;
    flex-direction: column;
}
.oneday_circle{
    width: 30px;
    height: 30px;
    background-color: #9370DB;
    border-radius: 100%;
}
.oneday_border{
    background-color: #707070;
    flex: 1 1 0%;
}
.oneday_border_v{
    width: 1px;
    margin: 8px 0;
}
.oneday_box_r{
    flex: 1 1 0%;
}
.oneday_box_time_box{
    display: flex;
    align-items: center;
}
.oneday_border_h{
    height: 1px;
    margin: 0 8px;
}
.oneday_box_time{
    font-size: 2rem;
    font-weight: bold;
}
.oneday_ttl{
    font-size: 2rem;
    font-weight: bold;
}
.oneday_ttl,
.oneday_box_r p,
.oneday_box_r img{
    padding-left: 8px;
}
@media screen and (max-width: 582px){
    .oneday_ttl,
    .oneday_box_r p,
    .oneday_box_r img{
        padding-left: 0px;
    }
}
.oneday_box_r img{
    padding-bottom: 30px;
}
/* 応募フォーム */
.entry_content{
    max-width: 930px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .entry_content{
        margin: 24px auto 0;
    }       
}
.entry_content .form_table{
    width: 100%;
    border-collapse: collapse;
    word-break: break-all;
    margin-top: -38px;
}
.entry_content.form_table tbody tr{
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    outline: 0;
    font-size: 1em;
}
.entry_content .form_table tbody tr th{
    width: 29%;
    font-weight: 500;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #D1CFCF;
    padding: 20px 50px 20px 0;
}
@media screen and (max-width: 768px){
    .entry_content .form_table tbody tr th{
        width: 100%;
        display: block;
        padding: 20px 0px 0px 0;
        border: 0;
    }
    .entry_content .form_table tbody tr:first-child th{
        padding-top: 0;
    }
}
.entry_content .form_table tbody tr th .must{
    width: 55px;
    color: #fff;
    height: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 500;
    background-color: #c5d3e3;
    text-align: center;
}
.entry_content .form_table tbody tr th .must_not{
    background-color: #dddddd;
}
@media screen and (max-width: 768px){
    .entry_content .form_table tbody tr th .must{
        float: none;
    }
}
.entry_content .form_table tbody tr td{
    font-size: 1.3rem;
    text-align: left;
    vertical-align: middle;
    position: relative;
    border-bottom: 1px solid #D1CFCF;
    padding: 28px 0 28px 58px;
}
@media screen and (max-width: 768px){
    .entry_content .form_table tbody tr td{
        width: 100%;
        display: block;
        padding: 0px 0 20px 0px;
        border: 0;
    }
}
.entry_content .form_table tbody tr td::before{
    position: absolute;
    left: 0;
    top: 27px;
    width: 1px;
    bottom: 27px;
    background: #b1adad;
    content: "";
}
@media screen and (max-width: 768px){
    .entry_content .form_table tbody tr td::before{
        display: none;
    }
}
.entry_content .form_table tbody p{
    margin: 0;
}
.entry_content .form_table tbody p label{
    display: flex;
    justify-content: space-around;
    align-items: center;
}
@media screen and (max-width: 768px){
    .entry_content .form_table tbody p label{
        justify-content: start;
    }    
}
.entry_content .wpcf7-text,
.entry_content .wpcf7-number,
.entry_content .wpcf7-select,
.entry_content .wpcf7-textarea{
    width: 100%;
    height: 60px;
    color: #413b3b;
    font-size: 1.3rem;
    padding: 5px 10px 5px 23px;
    box-sizing: border-box;
    background-color: #e8e8e8;
    border: 0;
    border-radius: 4px;
}
.entry_content .form_table tbody tr:last-child .wpcf7-textarea{
    height: 200px;
}
.entry_content p input.wpcf7-submit{
    font-family: 'Noto Sans JP',sans-serif;
    font-style: normal;
    font-size: 1.8rem;
    text-align: center;
    letter-spacing: 0.2rem;
    display: block;
    width: 152px;
    padding: 14px 0;
    border-radius: 4px;
    opacity: 1;
    color: #714ac3;
    background-color: transparent;
    border: solid 2px #714ac3;
    margin: 1em auto 0;
    cursor: pointer !important;
    position: relative;
}
@media screen and (max-width: 768px){
    .entry_content p input.wpcf7-submit{
        font-size: 1.4rem;
        width: 122px;
    }
}
.entry_content p input.wpcf7-submit:hover{
    transform: translateY(10px);
    filter: none;
}
/* ここまで応募フォーム */
/*------------------- ここまで採用個別ページ -------------------*/

/*------------------- 星組ブログページ -------------------*/
/* ブログカード ---- */
.blogcard_wrap{
    margin-top: 46px;
}
.blogcard_wrap a:not(:first-child){
    margin-top: 40px;
}
@media screen and (max-width: 582px){
    .blogcard_wrap a:not(:first-child){
        margin-top: 20px;
    }
}
.blogcard_wrap a{
    display: block;
    max-width: 974px;
    background-color: #fff;
    padding: 40px;
    border-radius: 24px;
    border: solid 1px #B2B2B2;
    margin: 0 auto;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
    opacity: 1;
}
@media screen and (max-width: 582px){
.blogcard_wrap a{
        padding: 28px;
    }
}
.blogcard{
    display: flex;
    justify-content: center;
    align-items: center;
}
.blogcard div:first-child{
    width: 312px;
    height: 200px;
}
.blogcard div:first-child img{
    object-fit: contain;
    width: 100%;
    height: 100%;
}
@media screen and (max-width: 582px){
    .blogcard{
        display: block;
        position: relative;
    }
    .blogcard div:first-child{
        max-width: 86px;
        position: absolute;
        right: 0;
        top: 0;
        line-height: 1;
    }
    .blogcard div:first-child img{
        width: auto;
        height: auto;
    }    
}
.blogcard_data{
    max-width: 542px;
    margin-left: 38px;
}
@media screen and (max-width: 892px){
    .blogcard_data{
        width: 66vw;
    }
}
@media screen and (max-width: 582px){
    .blogcard_data{
        max-width: 320px;
        width: 100%;
        margin-left: 0;
    }
    .blogcard_data p{
        margin-bottom: 0;
    }
}
.blogcard_ttl{ 
    font-size: 2.4rem;
    font-weight: bold;
    margin: 14px 0;
}
@media screen and (max-width: 582px){
    .blogcard_ttl{ 
        margin-top: 56px;
    }
}
.blogcard_btn{
    width: fit-content;
    color: #B2B2B2;
    width: 92px;
    border-radius: 100%;
    margin-left: auto;
    position: relative;
}
.blogcard_wrap .blogcard_btn::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 24px;
    margin: auto;
    width: 18px;
    height: 1px;
    background: #B2B2B2;
    transition: .2s;
}
.blogcard_wrap a:hover .blogcard_btn::before {
    right: 9px;
    width: 32px;
}
.blogcard_wrap .blogcard_btn::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 22px;
    margin: auto;
    width: 8px;
    height: 8px;
    border-right: 1px solid #B2B2B2;
    border-top: 1px solid #B2B2B2;
    transform: rotate(45deg);
    transition: .2s;
}
.blogcard_wrap a:hover .blogcard_btn::after{
    right: 7px;
}
/* ここまでブログカード ---- */
.blogpage_blog_wrap{
    margin-top: 40px;
}
@media screen and (max-width: 768px){
    .blogpage_blog_wrap{
        margin-top: 24px;
    }                                                                     
}
.pagenation{
    font-size: 1.8rem;
    max-width: fit-content;
    margin: 80px auto 0;
}
.pagenation .page-numbers{
    margin: 0 6px;
}
.pagenation a{
    color: #949494;
    margin: 0 6px;
}
.pagenation a:hover{
    opacity: 0.7;
}
/*------------------- ここまで星組ブログページ -------------------*/

/*------------------- ブログ個別記事ページ -------------------*/
@media screen and (max-width: 582px){
    .single_blogttl{
        font-size: 2rem !important;
    }
}
.otherpage_fw img{
    width: 280px;
    position: absolute;
    top: 50%;
    left: 12%;
    transform: translateY(-50%);
}
@media screen and (max-width: 1236px){
    .otherpage_fw img{
        width: 180px;
        top: 4%;
        left: 85%;
        transform: translate(-50%, 0);    
    }                                                                         
}
@media screen and (max-width: 768px){
    .otherpage_fw img{
        width: 100px;
    }                                                                         
}
@media screen and (max-width: 582px){
    .otherpage_fw img{
        width: 70px;
    }                                                                         
}
.blog_singletxtbox{
    max-width: 826px;
    margin: 0 auto;
}
.pagenation_single{
    max-width: 90%;
}
.pagenation_single .nav-links{
    display: flex;
    justify-content: space-between;
}
.pagenation_single .nav-previous,
.pagenation_single .nav-next{
    position: relative;
}
.pagenation_single .nav-previous::before,
.pagenation_single .nav-next::before{
    content: "";
    display: block;
    width: 4px;
    height: 4px;
    background-color: #9370DB;
    position: absolute;
    bottom: -8px;
    right: 50%;
    transform: translate(50%, 0);
}
.blog_single_sidebtn{
    position: fixed;
    top: 200px;
    right: 30px;
    width: 220px;
    background-color: #9370DB;
    transform: translateX(50%);
    display: flex;
    align-items: center;
    padding: 10px 0 10px 15px;
    opacity: 0;
    transition: .5s;
}
@media screen and (max-width: 768px){
    .blog_single_sidebtn{
        width: 186px;
        transform: translateX(80%);
        padding: 4px 0 4px 4px;
        top: 325px;
    }        
}
.blog_single_sidebtn a{
    font-size: 1.8rem;
    font-weight: bold;
    color: #fff;
}
@media screen and (max-width: 768px){
    .blog_single_sidebtn a{
        font-size: 1.2rem;
    }            
}
/*------------------- ここまでブログ個別記事ページ -------------------*/

/*----- サイドバー -------------------*/
.sidebar_btn{
    width: 220px;
    background-color: #9370DB;
    color: #fff;
    font-size: 1.8rem;
    text-align: center;
    font-weight: bold;
    transform: translateX(50%);
    transition: .5s;
    display: flex;
    align-items: center;
    padding: 10px 0 10px 15px;
    cursor: pointer;
    opacity: 0;
    position: fixed;
    top: 272px;
    right: 30px;
}
@media screen and (max-width: 768px){
    .sidebar_btn{
        width: 186px;
        font-size: 1.2rem;
        transform: translateX(80%);
        padding: 4px 0 4px 4px;
        top: 360px;
    }    
}
.sidebar_btn.active{ /* js */
    transform: translateX(0);
}
#sidebar{
    transform: translateX(200%);
    transition: .8s;
    width: fit-content;
    position: fixed;
    top: 320px;
    right: 30px;
}
@media screen and (max-width: 768px){
    #sidebar{
        top: 387px;
    }    
}
#sidebar.active{ /* js */
    transform: translateX(0);
}
.sidebar{
    width: 220px;
    background-color: #fff;
    border: solid 1px #9370DB;
}
@media screen and (max-width: 768px){
    .sidebar{
        width: 186px;
    }            
}
.sidebar_content{
    max-width: 182px;
    padding: 30px 0;
    margin: 0 auto;
}
@media screen and (max-width: 768px){
    .sidebar_content{
        max-width: 144px;
    }
            
}
.sidebar li{
    position: relative;
}
.sidebar li:not(:last-child){
    margin-bottom: 40px;
}
.sidebar li::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #B2B2B2;
    position: absolute;
    top: 34px;
}
.sidebar a{
    font-size: 1.8rem;
    color: #333;
    display: block;
}
@media screen and (max-width: 768px){
    .sidebar a{
        font-size: 1.6rem;
    }        
}
.sidebar_content div:nth-last-of-type(1){
    display: flex;
    flex-direction: column;
}
#archives-dropdown-2{
    font-family: 'Noto Sans JP', sans-serif;
    height: 40px;
    border: 0;
    border-bottom: solid 1px #714ac3;
}
/*----- ここまでサイドバー -------------------*/

/*------------------- 癒しの空間・園芸部ページ -------------------*/
.page-id-441{
    background: url(../images/healing_bg.jpg) center center / contain repeat;
}
.page-id-443{
    background: url(../images/horticulture_bg.jpg) center center / cover no-repeat;
}
.healing_horticulture_box{
    max-width: 1130px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: start;
    flex-wrap: wrap;
}
.healing_horticulture_box ul{
    text-align: center;
    width: fit-content;
    margin: 0 30px 60px;
}
.healing_horticulture_box ul li:nth-child(2){
    font-size: 1.24rem;
    font-weight: bold;
    margin: 10px 0;
}
@media screen and (max-width: 768px){
    .healing_horticulture_box .pare{
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
    }
}
.healing_horticulture_imgbox div{
    position: relative;
}
.healing_horticulture_imgbox div.new::before,
.healing_horticulture_imgbox div.new_horticulture::before{
    content: "NEW!!";
    color: transparent;
    font-size: 2rem;
    font-weight: bold;
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
}
.healing_horticulture_imgbox div.sub_point::after{
    content: url(../images/sub_point_after.png);
    position: absolute;
    bottom: 47px;
    left: 0;
}
@media screen and (max-width: 1155px){
    .healing_horticulture_imgbox div.sub_point::after{
        content: url(../images/sub_point_after_sp.png);
        top: 20px;
        left: 30px;
    }
}
 @media screen and (max-width: 582px){
        .healing_horticulture_imgbox div.sub_point::after{
        top: 15px;
        left: 0;
    }
}
.healing_horticulture_imgbox div.new_healing::before{
    -webkit-text-stroke: .4px #e9630a;
    filter: drop-shadow(0 0 6px #e9630a60);
}
.healing_horticulture_imgbox div.new_horticulture::before{
    -webkit-text-stroke: .4px #50c30c;
    filter: drop-shadow(0 0 6px #50c30c60);
}
.healing_box.healing_horticulture_imgbox img{
    margin: 22px 10px 30px;
}
.healing_horticulture_imgbox img{
    margin: 22px 30px 60px;
}
.healing_horticulture_imgbox .pare img{
    width: 93%;
    margin-left: 10px;
    margin-right: 10px;
}
@media screen and (max-width: 1155px){
    .healing_horticulture_imgbox .pare img{
        width: revert-layer;
        margin-left: 30px;
        margin-right: 30px;
    }        
}
@media screen and (max-width: 582px){
    .healing_horticulture_imgbox img,
    .healing_horticulture_imgbox .pare img{
        margin: 22px auto 30px;
    }
}
.pare{
    width: 100%;
    display: flex;
    justify-content: center;
}
@media screen and (max-width: 1155px){
    .pare{
        flex-wrap: wrap;
    }
}
/*------------------- ここまで癒しの空間・園芸部ページ -------------------*/

/*------------------- お問合せページ -------------------*/
.conact_box{
    max-width: 700px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .conact_box{
        margin: 24px auto 0;
    }    
}
.conact_box p.tel{
    font-size: 2.4rem;
}
.conact_box a{
    font-size: 4rem;
    color: #333;
    font-weight: bold;
}
@media screen and (max-width: 582px){
    .conact_box a{
        font-size: 3.2rem;
    }    
}
.conact_box .tel_img{
    display: inline-block;
    vertical-align: text-bottom;
    width: 50px;
    height: 50px;
    background: url(../images/tel_img.png) center center / cover no-repeat;
}
@media screen and (max-width: 582px){
    .conact_box .tel_img{
        width: 40px;
        height: 40px;
    }        
}
/* お問い合せフォーム ----*/
.conact_box input.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required,
.conact_box input.wpcf7-form-control.wpcf7-tel.wpcf7-text.wpcf7-validates-as-tel,
.conact_box textarea.wpcf7-form-control.wpcf7-textarea{
    max-width: 700px;
    width: 100%;
    height: 60px;
    margin-bottom: 10px;
    box-sizing: border-box;
    background-color: #e8e8e8;
    border: 0;
    padding: 5px 10px 5px 23px;
}
.conact_box textarea.wpcf7-form-control.wpcf7-textarea{
    height: 200px;
}
.wpcf7-form p{
    font-size: 1.6rem;
}
.wpcf7-form p:nth-of-type(5){
    margin-bottom: 0;
}
.conact_box form input[type=submit]{
    font-family: 'Noto Sans JP',sans-serif;
    font-style: normal;
    font-size: 1.8rem;
    text-align: center;
    letter-spacing: 0.2rem;
    display: block;
    width: 152px;
    padding: 14px 0;
    border-radius: 4px;
    opacity: 1;
    color: #714ac3;
    background-color: transparent;
    border: solid 2px #714ac3;
    margin: 1em auto 0;
    cursor: pointer !important;
    position: relative;
}
@media screen and (max-width: 768px){
    .conact_box form input[type=submit]{
        font-size: 1.4rem;
        width: 122px;
    }
}
.conact_box form input[type=submit]:hover{
    transform: translateY(10px);
    filter: none;
}
/* プライバシーポリシーチェックボックスCSS　フォーム共通 */
.privacypolicy_checkbox{
    text-align: center;
    margin-top: 10px;
}
.privacypolicy_checkbox_ttl{
    font-size: 2rem;
    font-weight: bold;
}
@media screen and (max-width: 582px){
    .privacypolicy_checkbox_ttl{
        font-size: 1.6rem;
    }
}
.privacypolicy_checkbox p{
    margin-bottom: 10px;
}
.privacypolicy_checkbox a{
    font-size: 1.6rem;
    color: #949494;
    text-decoration: underline;
}
/* ここまでお問い合せフォーム ----*/
/*------------------- ここまでお問合せページ -------------------*/

/*------------------- プライバシーポリシーページ -------------------*/
.privacypolicy_content{
    max-width: 990px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .privacypolicy_content{
        margin: 24px auto 0;
    }           
}
.privacypolicy_content h4{
    font-size: 2rem;
    font-weight: bold;
}
.privacypolicy_content p{
    margin-bottom: 30px;
}
@media screen and (max-width: 582px){
    .privacypolicy_content p{
        margin-bottom: 18px;
    }              
}
/*------------------- ここまでプライバシーポリシーページ -------------------*/

 /*------------------- 送信完了ページ -------------------*/
 .sendcompletely_container{
    height: 100vh;
    padding: 100px 0 230px;
    margin: 0;
    background: url(../images/sendcompletely_bg.jpg) center left / cover no-repeat;
 }
.sendcompletely_content{
    width: 100%;
    color: #fff;
    padding: 0 14px;
    display: flex;
    justify-content: center;
    align-items: end;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    filter: drop-shadow(0 0 6px #fff);
}
@media screen and (max-width: 582px){
    .sendcompletely_content{
        flex-direction: column;
        align-items: center;
    }        
}
.sendcompletely_content h2{
    font-size: 2.4rem;
    margin-bottom: 30px;
}
@media screen and (max-width: 582px){
    .sendcompletely_content h2{
        font-size: 1.8rem;
        margin-bottom: 16px;
    }    
}
.sendcompletely_content a{
    color: #fff;
    text-decoration: underline;
}
/*------------------- ここまで送信完了ページ -------------------*/

/*------------------- 下請契約時必要書類ページ -------------------*/
.required_content{
    max-width: 994px;
    background-color: #fff;
    padding: 40px;
    margin: 40px auto 0;
    filter: drop-shadow(3px 3px 8px #C5D3E3);
}
@media screen and (max-width: 768px){
    .required_content{
        padding: 15px;
        margin: 24px auto 0;
    }
}
.required_content li{
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 16px;
}
@media screen and (max-width: 768px){
    .required_content li{
        font-size: 1.6rem;
    }
}
.required_content02{
    max-width: 940px;
    margin: 30px auto 0;
}
.required_content02 p:first-child{
    font-weight: bold;
}
.download_box{
    width: fit-content;
    border: solid 1px #9370DB;
    padding: 20px;
    border-radius: 30px;
}
.download_ttl{
    font-size: 2rem;
    font-weight: bold;
    color: #9370DB;
    margin-bottom: 10px;
}
@media screen and (max-width: 768px){
    .download_ttl{
        font-size: 1.8rem;
    }
}
.download_box p{
    margin-bottom: 10px;
}
.download_box a{
    display: block;
    margin-bottom: 8px;
}
.download_box a span{
    color: #888888;
    text-decoration: underline;
}
.download_box a:hover span{
    opacity: 0.6;
}
.invoicenews_content{
    max-width: 940px;
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .invoicenews_content{
        margin: 24px auto 0;
    }
}
.invoicenews_content p:nth-child(2){
    font-size: 3rem;
    font-weight: bold;
    color: #9370DB;
}
@media screen and (max-width: 768px){
    .invoicenews_content p:nth-child(2){
        font-size: 2rem;
    }    
}
.invoicenews_content p a{
    color: #888888;
    text-decoration: underline;
}
.invoicenews_content p a:hover{
    opacity: 0.6;
}
.invoicenews_content img{
    display: block;
    margin-left: auto;
}
@media screen and (max-width: 582px){
    .invoicenews_content img{
        margin: 0 auto;
    }
}
/*------------------- ここまで下請契約時必要書類ページ -------------------*/

/*------------------- 指定請求書ダウンロードページ -------------------*/
.invoice_content{
    margin: 40px auto 0;
}
@media screen and (max-width: 768px){
    .invoice_content{
        margin: 24px auto 0;
    }
}
.invoice_content .download_box{
    margin: 0 auto;
}
/*------------------- ここまで指定請求書ダウンロードページ -------------------*/

/*------------------- js -------------------*/
/* 画面に現れたら下からふわっと表示 ----*/
.display_in{ 
    opacity: 0;
    transform: translateY(80px);
    transition: opacity .1s .2s,transform .5s .2s;
}
.top_flex_l.display_in{
    transition: opacity .1s .6s,transform .5s .6s;
}
.display_in.active{
    opacity: 1;
    transform: translateY(0px);
}
/* ここまで画面に現れたらふわっと表示 ----*/

/* TOPページ　横からシュッと表示 ----*/
.top_flex_r.display_in,
.top_content_flex_reverse .top_flex_r.display_in{
    opacity: 0;
    transform: translateX(-90%);
    transition: opacity .5s .4s, transform .5s .4s;
}
.top_content_flex_reverse .top_flex_r.display_in{
    transform: translateX(90%);
}
.top_flex_r.display_in.active,
.top_content_flex_reverse .top_flex_r.display_in.active{
    opacity: 1;
    transform: translateX(0px);
}
/* ここまでTOPページ　横からシュッと表示 ----*/

/* 画面に現れたら上からスタスタ表示 ----*/
.recruitcard.display_in,
.recruit_recruitcard.display_in{
    opacity: 0;
    transform: translateY(-20px);
}
.recruitcard01.display_in,
.recruit_recruitcard01.display_in{
    transition: opacity .2s .4s, transform .2s .4s;
}
/* .recruitcard02.display_in,
.recruit_recruitcard02.display_in{
    transition: opacity .2s .6s, transform .2s .6s;
}
.recruitcard03.display_in,
.recruit_recruitcard03.display_in{
    transition: opacity .2s .8s, transform .2s .8s;
} */
.recruitcard.display_in.active,
.recruit_recruitcard.display_in.active{
    opacity: 1;
    transform: translateY(0px);
}
/* ここまで画面に現れたら上からスタスタ表示 ----*/

/*------------------- js -------------