@charset "UTF-8";
.test_bg {
    width: 100%;
    max-width: 1517px;
    margin: 0 auto;
    position: relative;
    pointer-events: none;
    opacity: 0;
    z-index: 999;
}

.test_bg.active {
    opacity: 0.5;
}

.test_bg > * {
    width: 100%;
    padding-top: 313.33%;
    position: absolute;
    background: url("../../assets/img/test_bg.jpg") no-repeat top center;
    background-size: cover;
    top: 0;
    left: 0;
    background-position-y: -24px;
}

header {
    width: 100%;
    transition: background-color 1s ease;
    z-index: 998;
    position: relative;
}

header .header_container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: auto;
    padding: 20px;
    box-sizing: border-box;
    transition: 0.6s;
}

header .header_right ul {
    display: flex;
    align-items: center;
    padding-left: 0;
    font-size: 21px;
    margin-right: 80px;
}

header .header_right ul li {
    margin: 0 2vw 0;
    font-weight: 400;
    letter-spacing: 0.1em;
}

header .header_right ul li a {
    text-decoration: none;
    color: #000;
	transition: .3s;
}

header .header_right ul li a:hover {
    opacity: .8;
}

header .icon-hamburger {
    background: #098346;
    height: 65px;
    width: 65px;
    border-radius: 50%;
    cursor: pointer;
    margin-left: 45px;
    position: fixed;
    right: 20px;
    top: 20px;
    z-index: 999;
}

header .icon-hamburger span {
    background: white;
    position: absolute;
    height: 1px;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 50%;
    cursor: pointer;
}

header .icon-hamburger span:nth-of-type(1) {
    transition: 0.5s;
    transform: rotate(0) translate(0, -9px);
}

header .icon-hamburger span:nth-of-type(3) {
    transition: 0.5s;
    transform: rotate(0) translate(0, 9px);
}

header .menu-container {
    position: fixed;
    width: 100vw;
    width: 100dvw;
    height: 100vh;
    height: 100dvh;
    z-index: 998;
    pointer-events: none;
    opacity: 0;
    right: 0;
    top: 0;
    transition: 0.5s;
}

header .menu-container .cover {
    position: absolute;
    width: calc(100% - 250px);
    /* width: 80%; */
    height: 100%;
    background: rgb(5 133 71 / 90%);
    right: 0;
    transition: .3s;
    transform: translate(100%);
    z-index: 1;
}

header .menu-container .cover:before {
    content: "";
    position: absolute;
    width: 230px;
    height: 100%;
    background: rgb(5 133 71 / 90%);
    mask-image: url("../../assets/img/nav_mask.svg");
    mask-repeat: repeat-y;
    mask-position: 0 0;
    mask-size: auto 200%;
    left: -230px;
    top: 0;
    transition: top .5s 0s;
}

header .menu-container a {
    color: white;
    transform: translateY(100%);
    transition: 0s .3s;
    opacity: 0;
}

header .menu-container ul {
    height: auto;
    display: flex;
    flex-direction: column;
    color: #fff;
    padding: 20px 0;
    position: relative;
    z-index: 1;
}

header .menuInner > ul:first-of-type {
    margin-right: 4%;
}

header .menu-container ul > li {
    font-size: 40px;
}

header .menu-container ul > li li {
    font-size: 70%;
}

header .menu-container ul > li ul {
    padding: 0em 0 0 0.6em;
    margin-left: 1em;
    margin-top: 0.5em;
    position: relative;
}

header .menu-container ul > li ul:before {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    border-left: 2px solid;
    top: 0;
    left: 0;
    transition: height .3s .6s;
}

header .menu-container ul li {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0.2em 0;
    font-family: "Jost",YakuHanJP, "Zen Kaku Gothic New", 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 500;
    letter-spacing: 0.06em;
    overflow: hidden;
}

header .menu-container ul li span {
    font-size: 47%;
    margin-left: 0.5em;
    letter-spacing: 0.02em;
}

header .menu-container .menu_flex {
    position: relative;
    width: calc(100vw - 180px);
    width: calc(100dvw - 180px);
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
    margin-left: auto;
}

header .menu-container .menuInner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin-right: 60px;
}

.open .menu-container .cover {
    transform: translate(0);
}

.open .menu-container .cover:before {
    animation: wave 30s linear infinite;
}

@keyframes wave {
    0% {
        mask-position: 0 0;
    }

    100% {
        mask-position: 0 200%;
    }
}

.open .menu-container ul > li ul:before {
    height: 100%;
}

.open .menu-container a {
    transform: translateY(0);
    opacity: 1;
    transition: text-shadow .3s,color .3s,transform .3s .3s,opacity .3s .3s;
}

.open .menu-container a:hover {
    text-shadow: #ffffff61 0 0 10px;
    color: #f4fffa;
}

.open .icon-hamburger {
    background: transparent;
}

.open .menu-container {
    pointer-events: auto;
    opacity: 1;
}

.open .icon-hamburger span:nth-of-type(1) {
    transform: rotate(-330deg);
}

.open .icon-hamburger span:nth-of-type(2) {
    opacity: 0;
}

.open .icon-hamburger span:nth-of-type(3) {
    transform: rotate(330deg);
}

@media (max-width: 999px) {
	header .header_right ul {
		display: none;
	}
	
	header .menu-container .cover {
		width: calc(100% - 100px);
	}

	header .menu-container .cover:before {
		width: 180px;
		left: -180px;
	}

	header .menu-container .menu_flex {
		width: calc(100vw - 70px);
		width: calc(100dvw - 70px);
	}
	
	header .menu-container .menuInner {
		display: block;
		margin-left: 15%;
		padding-top: 80px;
	}

	header .menuInner > ul {
		width: 100%;
		margin: 0 !important;
		padding: 0 !important;
	}
}

@media (max-width: 767px) {
	header .header_container {
	    padding: 10px;
	}
	
	header .header_left {
	    width: 23%;
	}
	
	header .icon-hamburger {
	    height: 50px;
	    width: 50px;
	    top: 10px;
	    right: 10px;
	}
	
	header .menu-container ul > li {
	    font-size: 8vw;
	}
	
	header .menu-container a {
	padding: 0.1em 0;
	}

	header .menu-container ul > li li {
	    font-size: 80%;
	}
	
	header .menu-container ul > li li a {
	    display: flex;
	    flex-direction: column;
	}
	
	header .menu-container ul > li li a span {
	    margin-left: 0;
	}
	
	header .menu-container .cover {
		width: 100%;
	}

	header .menu-container .cover:before {
		display: none;
	}

	header .menu-container .menu_flex {
		width: 100vw;
		width: 100dvw;
	}
	
	header .menu-container .menuInner {
		margin-left: 5%;
		padding-top: 50px;
	}

	header .menu-container ul > li ul {
		margin-left: 0.5em;
		margin-top: 0em;
	}
}



/* footer */
#gmap {
    position: relative;
    width: 100%;
    height: 420px;
}

#gmap iframe {
    vertical-align: bottom;
    width: 100%;
    height: 100%;
    position: absolute;
}

#footer {
    background: #098346;
    color: white;
    padding: 80px 0 100px;
}

#footer a {
    color: white;
    text-decoration: none;
    cursor: pointer;
    transition: .3s;
}

#footer a:hover {
    text-shadow: #ffffff61 0 0 8px;
    color: #f4fffa;
}

#footer ul {
    padding: 0;
}

#footer .inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 1400px;
    padding: 0 60px;
}

#footer .footer_left {
    min-width: 330px;
    margin-top: 1em;
}

#footer .inner .footLogo {
    margin-top: 15px;
    margin-bottom: 40px;
    display: block;
}

#footer .inner .footLogo img {
    width: 180px;
}

#footer .inner .address {
    margin-bottom: 25px;
    line-height: 1.7;
}

#footer .sns_icon_wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
}

#footer .sns_icon_wrap a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    color: inherit;
    text-decoration: none;
}

#footer .sns_icon_wrap i {
    font-size: 40px;
    line-height: 1;
}

#footer .sns_icon_wrap img {
    display: block;
    width: 50px;
    height: auto;
    object-fit: contain;
}

#footer .footer_contact {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    list-style-type: disclosure-closed;
    list-style-position: inside;
    font-size: 90%;
    margin-bottom: 0;
    width: 100%;
}

#footer .inner .footer_contact li {
    margin-right: 2.6em;
}

#footer .inner .footer_contact li:last-of-type {
    margin-right: 0;
}

#footer .footer_right {
    display: flex;
    flex-wrap: wrap;
    width: 65%;
    width: calc(100% - 330px);
    justify-content: flex-end;
}

#footer .inner .footer_right > ul {
    padding-left: 0;
    margin: 0;
    margin-right: 5.7%;
    margin-top: 1em;
}

#footer .inner .footer_right > ul:last-of-type {
    margin-right: 0;
}

#footer .inner .footer_right li .ttl {
    font-family: jost;
    font-size: 190%;
    letter-spacing: 0.1em;
}

#footer .inner .footer_right ul ul {
    padding-top: 15px;
}

#footer .inner .footer_right ul ul li {
    font-size: 114%;
    margin-bottom: 0.1em;
}

@media (max-width: 1399px) {
	#footer .inner .footer_right > ul {
		width: 25%;
	}
	#footer .inner .footer_right > ul:last-of-type{
		margin-right: 5.7%;
	}
}

@media (max-width: 999px) {
	#footer .inner .footer_right > ul {
		width: 45%;
		margin-right: 5%;
	}
}

@media (max-width: 767px) {
	#footer {
		padding: 30px 0;
	}

	#footer .inner {
		padding: 0 60px 0 20px;
		position: relative;
	}

	#footer .inner > * {
		width: 100%;
		margin-top: 0;
	}
	
	#footer .inner .footLogo {
		width: 30%;
		margin-bottom: 1em;
	}

	#footer .inner .address {
		margin-bottom: 1em;
	}

	#footer .sns_icon_wrap {
	    margin: 15px 0 0;
	}

	#footer .footer_contact {
		margin-top: 20px;
	}
	
	#footer .inner .footer_right > ul {
		width: 100%;
		margin-top: 0.5em !important;
		margin-right: 0;
	}

	#footer .inner .footer_right li .ttl {
		font-size: 7.5vw;
	}

	#footer .inner .footer_right > ul ul {
		display: none;
	}

}


/* aside */
#sidebar {
    position: fixed;
    top: 200px;
    right: 0;
    z-index: 998;
}

#sidebar .form_banner {
    background: #098346;
    position: relative;
    overflow: hidden;
    outline: none;
    font-size: 20px;
    letter-spacing: 0.2em;
    border: 1px solid #098346;
    border-right: none;
    display: inline-block;
    margin: auto;
    width: 60px;
    height: 340px;
    writing-mode: vertical-rl;
    text-align: center;
    border-radius: 30px 0px 0px 30px;
    cursor: pointer;
    text-decoration: none;
    transition: ease .2s;
}

#sidebar .form_banner span {
    position: relative;
    line-height: 60px;
    display: block;
    z-index: 998;
}

#sidebar .form_banner span {
    color: white;
}

#sidebar .form_banner:before {
    content: '';
    position: absolute;
    top: 0;
    left: -250%;
    width: 240%;
    height: 100%;
    transform: skewX(-10deg);
    transform-origin: right top;
    z-index: 998;
}

#sidebar .form_banner:before {
    background: white;
}

/* animation */
.open #sidebar .form_banner:before,
#sidebar .login_banner:hover:before,
#sidebar .form_banner:hover:before,
footer .footer_right .login_banner:hover:before,
footer .footer_right .form_banner:hover:before {
    animation: skewanime .5s forwards;
}

.open #sidebar .form_banner span,
#sidebar .form_banner:hover span {
    color: #098346;
}

@media (max-width: 767px) {
	#sidebar {
		display: none;
	}
}


/* common */
.inner {
    max-width: 1280px;
    margin: 0 auto;
}

@media (max-width: 1279px) {
	.inner {
		padding-left: 10px;
		padding-right: 10px;
	}
}

a.viewmore {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    font-size: 83%;
    min-width: 138px;
}

a.viewmore:hover span {
    background: #fff;
}

a.viewmore .arrow:before {
    content: '';
    display: block;
    width: 70%;
    height: 13px;
    border-bottom: 1px solid;
    border-right: 1px solid;
    border-color: #fff;
    transform: skewX(42deg);
    transition: transform .2s .3s;
    z-index: 1;
}

a.viewmore:hover .arrow {
    transform: translateX(4px);
}

a.viewmore:hover .arrow:before {
    border-color: #098346;
}

a.viewmore .arrow {
    display: block;
    background: #098346;
    border: 1px solid #098346;
    width: 60px;
    height: 60px;
    top: 0;
    bottom: 0;
    position: relative;
    border-radius: 50%;
    padding: 19px 5px 20px 8px;
    box-sizing: border-box;
    margin-left: 1em;
    transition: .3s;
}

h1.ttl {
    font-family: "Jost",YakuHanJP, "Zen Kaku Gothic New", 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 500;
    font-size: 400%;
    letter-spacing: 0.1em;
    line-height: 1;
    margin: 0.6em 0;
}

h1.ttl span {
    font-size: 30%;
    display: inline-block;
    margin-left: 0.7em;
    letter-spacing: 0.2em;
}
@media (max-width: 767px) {
	h1.ttl {
		font-size: 8vw;
	}
}

h2.ttl {
    font-family: "Jost",YakuHanJP, "Zen Kaku Gothic New", 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 500;
    font-size: 285%;
    letter-spacing: 0.1em;
    line-height: 1;
    margin: 1.4em 0;
    text-align: center;
}

h2.ttl span {
    font-size: 37.5%;
    display: block;
    margin-top: 0.7em;
    letter-spacing: 0.2em;
}
@media (max-width: 767px) {
	h2.ttl {
		font-size: 6.8vw;
	}
}

/* トップページ */

#mv .copy {
    writing-mode: vertical-rl;
    position: absolute;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    top: 0;
    left: 10px;
}

#mv h2 {
    max-width: 1260px;
    margin: 30px auto 110px auto;
    padding: 0 10px;
    font-size: 190%;
    text-align: right;
    line-height: 1.8;
}
#mv .inner {
    max-width: 1600px;
    overflow: hidden;
    position: relative;
    margin: 0 auto;
}
#mv .mv_slider {
    margin: 0 auto;
    margin-top: -30px;
    width: 65%;
    position: relative;
    overflow: hidden;
}
#mv .mv_slider:after {
    content: "";
    position: absolute;
    background: #fff;
    background: url("../../assets/img/mv_cover.png") no-repeat top center;
    background-size: cover;
    width: 101%;
    height: 101%;
    z-index: 6;
    top: 0;
    left: 0;
}
#mv img {
    width:59vw;
    height:38vw;
    max-width: 991px;
    max-height: 638px;
    object-fit: cover;
}

@media (max-width: 767px) {
    #mv h2.ttl {
        font-size: 3.8vw;
        margin: 20px auto 60px auto;
    }
    #mv .mv_slider {
        margin-top:0;
    }
	#mv .copy {
	    font-size: 2vw;
	}
}


#service ul {
    display: flex;
    flex-wrap: wrap;
}

#service li {
    width: calc(100% / 3 - 1px);
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    position: relative;
}

#service li:nth-of-type(3n) {
    border-right: none;
}

#service li:nth-last-of-type(-n+3) {
    border-bottom: none;
}

#service li a {
    color: black;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 155%;
    letter-spacing: 0.06em;
    line-height: 1.8;
    padding: 4em 12%;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    position: relative;
    background-size: cover;
}

#service li:first-of-type a {
    background-image: url(../../assets/img/service_grahic.jpg);
}

#service li:nth-of-type(2) a {
    background-image: url(../../assets/img/service_illust.jpg);
}

#service li:nth-of-type(3) a{
    background-image: url(../../assets/img/service_web.jpg);
}

#service li:nth-of-type(4) a {
    background-image: url(../../assets/img/service_video.jpg);
}

#service li:nth-of-type(5) a {
    background-image: url(../../assets/img/service_planning.jpg);
}
#service li:nth-of-type(6) a {
    background-image: url(../../assets/img/service_cm.jpg);
}


#service li a:before {
    content: "";
    background: #ffffff;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    transition: 0.6s;
}

#service li .txt {
    position: relative;
}

#service li .txt span {
    font-size: 80%;
}

#service li .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 100;
    border: 1px solid;
    letter-spacing: 0;
    line-height: 1;
    font-size: 150%;
    border-radius: 50%;
    width: 2.5em;
    height: 2.5em;
    position: relative;
    transition: 0.3s;
}

#service li .arrow:before,
#service li .arrow:after {
    content: "";
    display: block;
    position: absolute;
}

#service li .arrow:before {
    width: 30%;
    border-top: 1.5px solid;
}

#service li .arrow:after {
    border-top: 1px solid;
    border-right: 1px solid;
    width: 20%;
    height: 20%;
    transform: rotate(45deg);
}

#service a:hover {
    color: white;
}

#service a:hover:before {
    background: #474443;
    opacity: 0.6;
}

#service a:hover .arrow {
    transform: translateX(5px);
}

@media (max-width: 1279px) {
    #service li a {
        font-size: 2.3vw;
        padding: 3em 8%;
    }
    
    #service li .arrow {
        width: 2em;
        height: 2em;
    }
}

@media (max-width: 767px) {
    #service li {
        width: calc(100% / 2 - 1px);
    }
    
    #service li:nth-of-type(3n) {
        border-right: 1px solid #000;
    }
    
    #service li:nth-last-of-type(-n+3) {
        border-bottom: 1px solid #000;
    }
    
    #service li:nth-of-type(2n) {
        border-right: none;
    }
    
    #service li:nth-last-of-type(-n+2) {
        border-bottom: none;
    }
    
    #service li a {
        font-size: 3.8vw;
        line-height: 1.5;
    }
    
    #service li .txt span {
        font-size: 65%;
    }
}




#news .inner {
    margin: 0 auto 100px;
    display: flex;
}

#news ul {
    width: 100%;
    max-width: 815px;
    margin-left: auto;
    margin-right: 3em;
}

#news ul li {
    margin: 20px 0;
    display: flex;
}

#news ul li a {
    color: inherit;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    cursor: pointer;
}

#news ul li .date {
    width: 9em;
    font-size: 95%;
    margin-right: 1em;
}

@media (max-width: 1279px) {
    #news .inner {
        justify-content: space-between;
        flex-wrap: wrap;
        margin: 0 auto;
    }
    
    #news ul {
        width: auto;
        max-width: 1090px;
        margin-left: 0;
        margin-right: 1em;
    }
    
    #news ul li .date {
        width: 6em;
    }
    
    #news .viewmore{
        margin-left: auto;
    }
}

@media (max-width: 767px) {
	#news ul {
        width: 100%;
        margin-right: 0;
    }

}





#works {
    width: 100%;
    overflow: hidden;
}

#works .inner {
    margin: 0 auto 100px;
    display: flex;
}

#works a {
    color: inherit;
}

#works a.viewmore {
    margin-left: auto;
    margin-top: 80px;
}

#works #works_slide {
    margin-top: 85px;
    max-width: 1060px;
    overflow: visible;
}

#works .imgWrap {
    width: 100%;
    padding-top: 66.25%;
    overflow: hidden;
    position: relative;
    border-radius: 20px;
    border: 1px solid #cac2c271;
    background: #fff;
    color: #fff;
}

#works .imgWrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: 0.6s;
    position: absolute;
    top: 0;
    left: 0;
    transform: scale(1.2);
    cursor: pointer;
    margin: auto;
}
#works .imgWrap img.movie_thumbnail {
    object-fit: cover;
}
#works .imgWrap .arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 100;
    border: 1px solid;
    letter-spacing: 0;
    line-height: 1;
    font-size: 150%;
    border-radius: 50%;
    width: 4em;
    height: 4em;
    box-sizing: border-box;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    opacity: 0;
    transition: 0.3s;
    transform: translateX(-10px);
}

#works .imgWrap .arrow:before,
#works .imgWrap .arrow:after {
    content: "";
    display: block;
    position: absolute;
}

#works .imgWrap .arrow:before {
    width: 30%;
    border-top: 1.5px solid;
}

#works .imgWrap .arrow:after {
    border-top: 1px solid;
    border-right: 1px solid;
    width: 20%;
    height: 20%;
    transform: rotate(45deg);
}

#works .works_ttl {
    font-size: 160%;
    margin: 0.5em 0 0.3em;
    font-weight: 400;
}

#works .client {
    font-size: 125%;
    font-weight: 400;
}

#works .tagWrap a {
    background: #098346;
    color: #fff;
    margin-top: 0.6em;
    margin-right: 0.4em;
    padding: 0.4em 1em;
    border-radius: 1em;
    line-height: 1;
    display: inline-block;
    font-weight: normal;
    transition: .3s;
}

#works .tagWrap a:hover {
    opacity: 0.8;
}

#works a:hover .imgWrap img {
    opacity: 0.7;
    filter: blur(3px);
}

#works a:hover .imgWrap .arrow {
    opacity: 1;
    transform: translateX(0);
}
@media (max-width: 767px) {
	#works .inner {
	    margin: 0 auto 50px;
	}

	#works a.viewmore {
	    margin-top: 20px;
	}
	
	#works #works_slide {
	    margin-top: 0;
	}
	
	#works .works_ttl {
		font-size: 130%;
	}
	
	#works .client {
		font-size: 100%;
	}
	
	#works .tagWrap a {
		font-size: 90%;
        padding: 0.3em 0.8em;
        margin-right: 0;
	}
}



#contact {
    background: #f0f0f0;
    padding: 78px 0;
}

#contact .inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#contact h2.ttl {
    text-align: left;
    font-size: 255%;
}

#contact h2.ttl span {
    font-size: 48%;
}

#contact .contact_desc {
    width: 100%;
    max-width: 590px;
}

#contact .contact_desc a.contact_btn {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 1.3em 0.5em;
    border: 1px solid #058547;
    color: #058547;
    text-align: center;
    text-decoration: none;
    border-radius: 3em;
    margin-bottom: 1em;
    font-size: 150%;
    letter-spacing: 0.3em;
}

#contact .contact_desc a.contact_btn:before {
    content: '';
    position: absolute;
    top: 0;
    left: -130%;
    width: 120%;
    height: 110%;
    background: #058547;
    transform: skewX(-25deg);
}

#contact .contact_desc a.contact_btn span {
    position: relative;
    z-index: 3;
}

#contact .contact_desc a.contact_btn:hover span {
    color: white;
}

#contact .contact_desc a.contact_btn:hover:before {
    animation: skewanime .5s forwards;
}

@keyframes skewanime {
    100% {
        left: -10%;
    }
}

#contact .tel {
    font-size: 142%;
    width: 93%;
    line-height: 1.4;
    font-weight: 400;
}

#contact .tel_desc {
    text-align: right;
    font-size: 90%;
    font-weight: 500;
}

#contact .tel a {
    font-family: "Jost",sans-serif;
    color: black;
    text-decoration: none;
    font-size: 230%;
    margin-left: 15px;
    display: inline-block;
    font-weight: 500;
    transition: .3s;
}

#contact .tel a:hover {
    transform: translateY(-2px);
}

@media (max-width: 1000px) {
	#contact .inner {
		display: block;
	}
	#contact h2.ttl {
		text-align: center;
		font-size: 255%;
		margin-top: 0;
	}
	#contact .contact_desc {
		margin: 0 auto;
	}
	#contact .tel {
		width: 100%;
	}
}

@media (max-width: 767px) {
    #contact h2.ttl {
		font-size:6.8vw;
    }
	#contact .contact_desc {
		font-size: 2.6vw;
		max-width: none;
	}
}




#recruit {
    padding: 80px 0 100px 0;
}

#recruit a {
    display: block;
    width: 96%;
    max-width: 1090px;
    background-size: cover;
    border-radius: 20px;
    margin: 0 auto;
    text-decoration: none;
    color: white;
    padding: 40px 0;
    position: relative;
    overflow: hidden;
}

#recruit a:hover:before {
    transform: scale(1.05);
    filter: blur(3px);
}

#recruit a:hover:after {
    background: rgba(0, 0, 0, 0.3);
}

#recruit h2 {
    border: 1px solid white;
    width: 80%;
    max-width: 385px;
    margin: 0 auto;
    padding: 26px 0;
    position: relative;
    z-index: 2;
}

#recruit a:before {
    content: "";
    background-image: url(../../assets/img/recruit_wallpaper.png);
    background-size: cover;
    background-position: center center;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 1;
    transition: 0.8s;
}

#recruit a:after {
    content: "";
    background: rgba(0, 0, 0, 0.2);
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 1;
    transition: .3s;
}

/* modal */
.modal {
    display: none;
    position: fixed;
    z-index: 999;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
    background-color: rgba(0,0,0,0.5);
}
.modal-content {
    background-color: #f4f4f4;
    margin: 10% auto;
    width: 50%;
    box-shadow: 0 5px 8px 0 rgba(0,0,0,0.2),0 7px 20px 0 rgba(0,0,0,0.17);
    animation-name: modalopen;
    animation-duration: 1s;
    border-radius: 20px;
}
.modal-content .modal-body dt {
    display: flex;
    flex-wrap: wrap;
  }
.modal-content .modal-body dt a {
    margin-right: 10px;
    cursor: pointer;
    text-decoration: none;
    color: #058547;
}
.modal-header h1 {
    margin: 1rem 0;
}
.modal-header {
    background: lightblue;
    padding: 3px 15px;
    display: flex;
    justify-content: space-between;
    border-radius: 20px 20px 0 0;
}
.modal-header h2 {font-size: 26px;}
.modalClose {
    font-size: 2rem;
}
.modalClose:hover {
    cursor: pointer;
}
.modal-body {
    padding: 10px 20px;
    color: black;
}
.modal-body  dl.modal_video,
.modal-body  dl.modal_pic {
    text-align: center;
    width: 100%;
    margin: auto;
}
.modal-body  dl.modal_pic img {
    width: inherit;
    max-height: 500px;
    background: #fff;
    object-fit: contain;
}
.modal-body  dl.modal_video {
    display: none;
}
.modal-body  dl.modal_video iframe {
    width:100%;
    aspect-ratio: 16 / 9;
}
.modal-body ul {
    width: 100%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.modal-body ul li {
    font-size: 20px;
}
.modal-body ul li:nth-of-type(2) {font-size: 24px;}
.modal-body #directLink {
    display: none;
    cursor: pointer;
    text-decoration: none !important;
    width: 50%;
    margin: auto;
    text-align: center;
    border: 1px solid #058547;
    padding: 5px 20px;
    border-radius: 20px;
    color: #058547 !important;
}
.modal-body .modal_slider {
    display: none;
    position: relative;
    margin: 0 auto;
    margin-bottom: 20px;
    width: 95%;
}
.modal-body .modal_slider .slick-slide img,
.modal-body .modal_slider ul li img {
    display: block;
    width: 100%;
    max-height: 500px;
    background: #fff;
    object-fit: contain;
}
.modal-body .modal_slider .slick-prev:before,
.modal-body .modal_slider .slick-next:before {
    color: black;
}


/* */
.button-next,
.button-prev
{
    cursor: pointer;
    position: absolute;
    width: 50px;
    height: 50px;
    top: 50%;
    border-radius: 50%;
    z-index: 1;
    color: transparent;
    outline: none;
}
.button-next::before,
.button-prev::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    border: 1px solid #000000;
    border-width: 3px 3px 0 0;
    position: absolute;
}
.button-next {
    left: 102%;
    &::before {
        transform: translateY(-50%) rotate(45deg);
    }
}
.button-prev {
    left: -3%;
    &::before {
        transform: translateY(-50%) rotate(-135deg);
    }
}
.pagination{
    padding: 5px 0;
    display: flex;
    justify-content: center;
    z-index: 1;
    span{
        width: 10px;
        height: 10px;
        background: #cfcfcf;
        opacity: 1;
    }
    .swiper-pagination-bullet-active{
        background: #1e4729;
    }
}
.modal_swiper {
    width: 100%;
    height: auto; 
}
.swiper-wrapper {
    height: auto;
}
.swiper-slide.imgWrap {
    display: flex;
    justify-content: center;
    align-items: center;
    visibility: hidden;
    height: auto;
}
.swiper-slide img {
    max-width: 100%;
    height: auto;
    display: block; 
    margin: 0 auto; 
}
.swiper-slide-active.imgWrap {visibility: visible;}
/* */
  @keyframes modalopen {
    from {opacity: 0}
    to {opacity: 1}
  }
  @media (max-width: 767px) {
    .modal-content {
        width: 90%;
    }
    #works .tagWrap a {
      margin-right: 0.4em;
    }
    .modal-header h2 {
        font-size: 20px;
    }
    .modal-body ul li {
        font-size: 16px;
    }
    .modal-body ul li:nth-of-type(2) {
        font-size: 18px;
    }
  }
  
/* common block */
.wp-block-columns{
    align-items:normal !important;
    box-sizing:border-box;
    display:flex;
    flex-wrap:wrap !important;
  }
  @media (min-width:782px){
    .wp-block-columns{
      flex-wrap:nowrap !important;
    }
  }
  .wp-block-columns.are-vertically-aligned-top{
    align-items:flex-start;
  }
  .wp-block-columns.are-vertically-aligned-center{
    align-items:center;
  }
  .wp-block-columns.are-vertically-aligned-bottom{
    align-items:flex-end;
  }
  @media (max-width:781px){
    .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
      flex-basis:100% !important;
    }
  }
  @media (min-width:782px){
    .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
      flex-basis:0;
      flex-grow:1;
    }
    .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{
      flex-grow:0;
    }
  }
  .wp-block-columns.is-not-stacked-on-mobile{
    flex-wrap:nowrap !important;
  }
  .wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{
    flex-basis:0;
    flex-grow:1;
  }
  .wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{
    flex-grow:0;
  }
  
  :where(.wp-block-columns){
    margin-bottom:1.75em;
  }
  
  :where(.wp-block-columns.has-background){
    padding:1.25em 2.375em;
  }
  
  .wp-block-column{
    flex-grow:1;
    min-width:0;
    overflow-wrap:break-word;
    word-break:break-word;
  }
  .wp-block-column.is-vertically-aligned-top{
    align-self:flex-start;
  }
  .wp-block-column.is-vertically-aligned-center{
    align-self:center;
  }
  .wp-block-column.is-vertically-aligned-bottom{
    align-self:flex-end;
  }
  .wp-block-column.is-vertically-aligned-stretch{
    align-self:stretch;
  }
  .wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{
    width:100%;
  }