@media screen and (min-width: 1500px){
	.swiper-button-prev,
	.swiper-rtl .swiper-button-next{ left: 24.5%; }
	.swiper-button-next,
	.swiper-rtl .swiper-button-prev{ right: 24.5%; }

	#top .fv:after{ left: -20%; }
}

@media screen and (max-width: 1300px) {
	#top .fv:after{ left: -25%; } 
}
@media screen and (max-width: 1180px) {
	#recruit .container{ border-radius: 0; }
}
@media screen and (max-width: 1080px) {
	#top .fv:after{ content: none; }
}
@media screen and (max-width: 820px) {

	.pc{ display: none!important; }
	.sp{ display: block!important; }

	:target { scroll-margin-top: 60px; }

	.btn{ padding: 18px; font-size: 1.6rem; }
	.btn.search:before { width: 15px; height: 15px; }

	/*body.fixed{ position: fixed; }*/

	header{ padding: 15px 0; margin-bottom: 0; position: unset; }
	header { -webkit-transform: unset; transform: unset; }
	header.header--unpinned { -webkit-transform: unset; transform: unset; }
	header .right{ position: fixed; top: 10px; right: 10px; z-index: 999;}
	header .container{ padding: 0 10px!important; background: none!important; border-radius: 0!important; box-shadow: none!important; }
	header .left{ position: relative; z-index: 999; }
	header .left h1 a img{ max-height: 30px; }
	header .right .modalbtn{ transition: 0.3s; position: relative; z-index: 999; }
	header .right .modalbtn:before{ content: ""; position: absolute; transition: all .3s; left: 0; right: 0; top: -3px; bottom: 0; margin: auto; width: 13px; height: 1px; background: #000; }
	header .right .modalbtn:after{ content: ""; position: absolute; transition: all .3s; left: 0; right: 0; top: 0; bottom: -3px; margin: auto; width: 13px; height: 1px; background: #000; }
	header .right .modalbtn.active:before{ -webkit-transform: rotate(315deg); transform: rotate(315deg); top: 0; }
	header .right .modalbtn.active:after{ -webkit-transform: rotate(45deg); transform: rotate(45deg); bottom: 0; }

	header .right nav{ display: none; height: 100%; overflow-y: auto; padding: 0; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; text-align: center; position: fixed; top: 0; right: 0; bottom: 0; left: 0; height: 0; height: 100%; background: #f8f8f8; width: 100%; }
	header .right ul{ gap: 0 50px; -ms-flex-wrap: wrap; flex-wrap: wrap; padding-top: 60px; }
	header .right ul li{ width: 100%; }
	header .right ul li.nav-list a{ display: block; width: 100%;  padding: 20px; text-align: left; }
	header .right nav > ul > li.nav-list a{ padding: 20px; }
	header .right ul li.nav-list:not(:last-child){ border-bottom: 1px solid #e7e7e7; }
	header .right ul li.nav-list > a:before{ content: ""; position: absolute; transition: all .3s; right: 20px; top: 0; bottom: 0; margin: auto; width: 5px; height: 5px; border-top: 2px solid #000; border-right: 2px solid #000; -webkit-transform: rotate(45deg); transform: rotate(45deg); }
	header .right ul li.nav-list.lang-list{ -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
	header .right ul li.nav-list.lang-list a{ width: auto; }
	header .right ul li.nav-list.hover-nav a{ position: relative; }
	header .right ul li.nav-list.hover-nav a:before{ content: ""; position: absolute; transition: all .3s; right: 20px; top: 0; bottom: 0; margin: auto; width: 5px; height: 5px; border-top: 2px solid #000; border-right: 2px solid #000; -webkit-transform: rotate(135deg); transform: rotate(135deg); }
	header .right ul li.nav-list.hover-nav.active > a:before{ -webkit-transform: rotate(-45deg); transform: rotate(-45deg);  }
	header .right ul li.nav-list.blank:after{ position: absolute; right: 18px; top: 0; bottom: 0; margin: auto; }
	header .right ul li.nav-list.blank a:before,
	header .right ul li.nav-list.lang-list a:before{ content: none; }
	header .right ul li.nav-list .in-nav{ background: #fff; position: unset; width: 100%; padding: 0; }
	header .right ul li.nav-list .in-nav:before{ content: none; width: 100%; }
	header .right ul li.nav-list .in-nav li:not(:last-child){ margin: 0; }
	header .right ul li.nav-list .in-nav li a:before{ -webkit-transform: rotate(45deg); transform: rotate(45deg); }

	header.is-animation{ padding: 10px 0; backdrop-filter: none; }
	header .right .modalbtn .menu-icon{ gap: 4.5px; width: 30px; height: 30px; -ms-flex-wrap: wrap; flex-wrap: wrap; cursor: pointer;}
	header .right .modalbtn .menu-icon .box { transition: 0.3s; width: 7px; height: 7px; background: var(--main-color); display: inline-block; }
	header .right .modalbtn.active .menu-icon .box:nth-child(2),
	header .right .modalbtn.active .menu-icon .box:nth-child(4),
	header .right .modalbtn.active .menu-icon .box:nth-child(6),
	header .right .modalbtn.active .menu-icon .box:nth-child(8){ opacity: 0; }

	footer { padding: 70px 0 30px; }
	footer .top{ margin-bottom: 40px; }
	footer .top nav{ width: 100%; }
	footer .top nav ul{ gap: 15px; }
	footer .top nav ul li.nav-list{ width: calc( 100% / 3 - ( 10px )) }
	footer .middle{ -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
	footer .middle .address .bottom p{ font-size: 1.4rem; }
	footer .middle .address .top{ margin-bottom: 30px; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
	footer .middle .address .top *{ font-size: 1.6rem; }
	footer .bottom{ margin-bottom: 0; }
	footer .bottom small { font-size: 1.2rem; }
	footer .bottom .label { width: 100%; max-width: 150px; gap: 0 5px; }
	footer .bottom .left a{ order: 1; }
	footer .bottom .left small{ order: 2; }


	footer .left .logo { max-width: 135px; margin-bottom: 40px; }
	footer .left{ text-align: center; width: 100%; max-width: 100%; }
	footer .left .address{ margin-bottom: 40px; display: block; }
	footer .left .address p{ margin-bottom: 25px; font-size: 1.4rem; }
	footer .left .address a{ font-size: 1.4rem; }
	footer .left .nav-box{ width: calc( 100% + 40px ); margin-left: -20px; margin-right: -20px; }
	footer .left .nav-box nav{ gap: 0; border-top: 1px solid #414141; }
	footer .left .nav-box nav ul{ width: 50%; border-bottom: 1px solid #414141; }
	footer .left .nav-box nav ul li a{ font-size: 1.3rem; padding: 18px 15px; width: 100%; display: inline-block; text-align: center; }
	footer .left .nav-box nav ul li:not(:last-child) { border-bottom: 1px solid #414141; margin-bottom: 0; }
	footer .left .nav-box nav ul:nth-child(odd){ border-right: 1px solid #414141; }
	footer .left .tel{ margin-bottom: 40px; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
	footer .left .tel .tel-box .num{ font-size: 3.1rem; }
	footer .left .tel .tel-box .text{ font-size: 1rem; }
	footer .right{ position: fixed; bottom: 0; left: 0; width: 100%; z-index: 100; }
	footer .right .foot-btn{ width: 50%; }
	footer .right .foot-btn a{ background: var(--main-color); display: block; padding: 15px; }
	footer .right .foot-btn a p{ text-align: center; }
	footer .right .foot-btn a p .en{ margin: 0; font-size: 2rem; }
	footer .right .foot-btn a p .ja{ display: none; }
	footer .right .foot-btn a:before{ content: none; }
	footer .right .foot-btn a:nth-child(even){ background: #000; } 
	footer #page-top{ display: none; }
	footer small{ font-size: 1rem; }

	.btn.mail span { padding-left: 20px; }

	#top .fv { padding: 80px 0; }
	#top .fv h2,
	#top .fv h2 span{ font-size: 9vw; }
	#top .fv:before { background-position: right top; width: 50%; right: -5%; bottom: -20%; }

	.about-area{ padding: 80px 0 0; }
	.about-area .left{ width: 100%; order: 2; }
	.about-area .right{ width: 100%; order: 1; }
	.about-area h3{ font-size: 3.2rem; margin-bottom: 30px; }
	.about-area h3 .en{ font-size: 5rem; }

	#top .news-area{ padding: 80px 0; }
	#top .news-area .box .left{ width: 100%; }
	#top .news-area .box .right{ width: 100%; }
	#top .news-area h3{ margin-bottom: 30px; }
	#top .news-area .left{ max-width: 100%; }
	#top .news-area .left ul{ display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; max-width: 350px; }
	#top .news-area .left ul .tab,
	#top .news-area .left ul .tab a{ letter-spacing: -0.5px; font-size: 1.2rem; }

	ul.news-list li:before{ width: 9px; height: 9px; right: 0; }
	ul.news-list li a{ padding: 40px 0; }
	ul.news-list li a p{ font-size: 1.8rem; padding-right: 20px; }
	ul.news-list li a .meta span,
	ul.news-list li a .meta span{ font-size: 1.4rem; }
	ul.news-list li a .meta { margin-bottom: 10px; gap: 0 10px; }

	.cv-area1{ padding: 80px 0; background: url(../images/common/cv-area1_bgsp.jpg) no-repeat; background-size: cover; background-position: center; }
	.cv-area1.fadeIn{ padding: 80px 0; }
	.cv-area1 h3{ font-size: 3rem; }
	.cv-area1 h3 .en{ font-size: 2.8rem; margin-bottom: 20px; }
	.cv-area1 p{ font-size: 1.6rem; }
	.cv-area1 .recruit-btn img { max-width: 50px; }

	.swiper-area{ padding: 80px 0; }
	.swiper-area h3 { font-size: 4rem; margin-bottom: 10px; }
	.swiper-area .swiper-container{ padding: 0 20px!important; }
	.swiper-area .sectitle-box{ margin-bottom: 10px; }

	ul.blog-list li .text-box { padding: 25px; }
	ul.blog-list li .text-box p { font-size: 1.5rem; }
	ul.blog-list li .text-box .meta span { font-size: 1.2rem; }
	ul.blog-list li .text-box .meta { margin-bottom: 10px; }
	ul.blog-list li.new:before{ font-size: 1.2rem; width: 70px; padding: 2px 5px; }	.contact-btn{ top: 175px; }
	ul.blog-list.flex li{ width: 100%; }

	ul.recruit-list li:before{ width: 9px; height: 9px; right: 0; }
	ul.recruit-list li a{ padding: 40px 20px 40px 0; }
	ul.recruit-list li a .text-box .post-title{ margin-bottom: 20px; font-size: 2rem; }
	ul.recruit-list li a .text-box .message{ font-size: 1.6rem; }
	ul.recruit-list li a .text-box .text *{ font-size: 1.4rem; }

	.recruit-meta span{ font-size: 1.2rem!important; }

	.contents-box{ margin-bottom: 100px; }

	.pagination{ margin-top: 60px; }
	.pagination .nav-links a,
	.pagination .nav-links span{ font-size: 1.5rem; }

	#sidebar > div:not(:last-child) { margin-bottom: 55px; }
	#sidebar h2 { margin-bottom: 25px; }
	#sidebar ul li:not(:last-child) { margin-bottom: 17px; }
	#sidebar a { font-size: 1.6rem; }

	.sub .title-box { margin: 50px 0 80px; }
	.sub .title-box span{ font-size: 5.5rem; }

	.sub .flex-box main{ order: 1; width: 100%; }
	.sub .flex-box aside{ order: 2; }

	#single-detail .meta-box { padding-bottom: 35px; margin-bottom: 35px; }
	#single-detail .meta-box .meta { margin-bottom: 15px; }
	#single-detail .meta-box .meta span{ font-size: 1.4rem; }
	#single-detail .meta-box .content-title { font-size: 2.5rem; }

	#single-detail .contents h3,
	#single-detail .contents h4,
	#single-detail .contents h5{ margin-bottom: 20px; }
	#single-detail .contents > h3:not(:first-child) { margin-top: 75px; }
	#single-detail .contents > h4:not(:first-child),
	#single-detail .contents > blockquote:not(:first-child){ margin-top: 65px; }
	#single-detail .contents > h5:not(:first-child) { margin-top: 55px; }

	#about section:not(:last-child) { margin-bottom: 80px; }
	#about section h3 { margin-bottom: 30px; }
	#about section h3 .ja{ font-size: 3.2rem; line-height: 1.5em; }
	#about section h3 .en { font-size: 3rem; }
	#about section h3 span:not(:last-child) { margin-bottom: 30px; }
	#about .mission { padding: 80px 0; }

	.vision p,
	.mission p{ font-size: 1.5rem; }

	#recruit section:not(:last-child){ margin-bottom: 80px; }

	.culture h3 { margin-bottom: 30px; }
	.culture h3 .en { font-size: 3rem; }
	.culture .culture-list{ margin-top: 80px; gap: 35px 60px; }
	.culture .culture-list dl{ width: calc( 100% / 2 - ( 30px ) ); padding: 50px 0 0 100px; }
	.culture .culture-list dl:before{ left: 35px; }

	#about .greeting .bg-box{ padding: 80px 0; }
	#about .greeting h3 .ja{ font-size: 2.5rem; }
	#about .greeting .text { gap: 1em 15px; }
	#about .greeting .text p { width: calc( 100% / 2 - ( 7.5px ) ); }

	#about .member .member-list{ margin-top: 80px; }
	#about .member .member-list li{ width: 100%; }
	#about .office .office-box{ padding-top: 80px; padding-bottom: 80px; }

	#about .logo-story .two-column > *{ width: 100%; }
	#about .logo-story .img{ padding: 0!important; text-align: center; }
	#about .logo-story .img img{ max-width: 250px; }
	#about .logo-story .img.left,
	#about .logo-story .text.left{ margin-bottom: 50px; }
	#about .logo-story .text .text-box:not(:last-child) { margin-bottom: 50px; }
	#about .logo-story .img-box { margin: 70px 0; }
	#about .logo-story .text.left{ padding: 0; }
	#about .logo-story .img-box.flex > *{ width: 50%; }
	#about .logo-story .img.right img { max-width: 500px; }
	#about .company table { border-spacing: 50px 30px; }

	#recruit .vision h3 { font-size: 3.2rem; margin-bottom: 30px; }
	#recruit .vision p{ font-size: 1.8rem; }

	.member-area h3 { font-size: 3.2rem; margin-bottom: 30px; }
	.member-area h3 .en{ font-size: 5rem; margin-bottom: 20px; }
	.member-area .right,
	.member-area .left{ width: 100%; }

	.qa-area{ padding: 80px 0; }
	.qa-area .flex{ display: block; }
	.qa-area .flex h3.en{ font-size: 5rem; margin-bottom: 20px; }

	.mw_wp_form .left { width: calc( 65% - 25px );}
	.mw_wp_form .right { width: calc( 35% - 25px );}
	.mw_wp_form .flex-box{ gap: 90px 50px; }

	#top .news-area .box .btn-box{ margin-top: 20px; width: 100%; text-align: center;}

	.hover-nav::after{
    display: none;
  }
  .hover-nav::before{
    display: none;
  }

  .guidline-area .accordion dt p:before, .guidline-area .accordion dd ul li{
    flex-direction: column;
    gap: 10px;
  }

  .guidline-area .accordion dt p:before, .guidline-area .accordion dd ul li .btn-box span{
    justify-content: center;
  }

  .vision p{
    letter-spacing: -2px;
  }
}
@media screen and (max-width: 782px) {
  html{
    margin-top: 0!important;
  }
  header.is-animation{
    padding-top: 15px;
  }
}

@media screen and (max-width: 768px) {
	#service section h3 .ja{
		font-size: 3.1rem;
	}
}

@media screen and (max-width: 640px) {
	.contact-btn a{
    padding: 20px 13px;
  }
	#top .fv h2,
	#top .fv h2 span{ font-size: 12vw; }
	#top .fv:before { width: 90%; right: -35%; bottom: -17%; }

	.about-area p{ font-size: 1.8rem; }
	.member-area p{ font-size: 1.8rem; }

	.contact-btn { top: auto; bottom: 0; }
	.contact-btn a { padding: 100px 5px 20px; width: 50px; }
	.contact-btn a:before { width: 19px; height: 12px; top: 20px; }
	.contact-btn a span{ font-size: 1.5rem; }

	.culture .culture-list dl{ width: 100%; padding: 30px 0 0 80px; }
	.culture .culture-list dl:before{ top: 30px; left: 20px; font-size: 3rem; }

	#about .greeting .text p{ width: 100%; }

	#about .member .member-list li { gap: 20px; }
	#about .member .member-list li .left { max-width: 120px; }
	#about .member .member-list li .right { width: calc( 100% - 140px ); }
	#about .member .member-list li .right p { font-size: 1.3rem; }

	#about .office .office-box p{ margin-bottom: 20px; font-size: 1.4rem; }
	#about .office .office-box .btn-box { margin-top: 30px; }

	#about .logo-story .img-box > *{ width: 100%; }
	#about .logo-story .text h4,
	#about .logo-story .text .layout-box h4{ font-size: 3.8rem; letter-spacing: -2px; margin-bottom: 20px; }
	#about .logo-story .text .layout-box img { right: 0; max-width: 120px; max-height: 120px; }
	#about .logo-story .text .layout-box{ max-width: 370px; }

	#about .company table{ border-spacing: 0; }
	#about .company tr,
	#about .company th,
	#about .company td{ display: block; width: 100%; font-size: 1.5rem; }
	#about .company tr:not(:last-child) td{ margin-bottom: 30px; }

	.culture .culture-list { margin-top: 50px; }
	#about .member .member-list{ margin-top: 50px; }

	.document-area p{ font-size: 1.7rem; }
	.document-area .doc-box{ margin-top: 30px; }
	.document-area img { max-width: 170px; }

	.swiper-button-next, .swiper-button-prev { top: 52%; width: 40px; height: 40px; }
	.swiper-button-next:after, .swiper-button-prev:after{ width: 6px; height: 6px; }
	.swiper-button-next, .swiper-rtl .swiper-button-prev{ right: 13%; }
	.swiper-button-prev, .swiper-rtl .swiper-button-next{ left: 13%; }

	form .left > .box:not(:last-child) { margin-bottom: 20px; }
	form .right{ width: 100%; }
	form .right ul li{ font-size: 1.5rem; }
	input[type="text"], input[type="email"], textarea, select,
	#confirm form .form-item{ font-size: 1.4rem; }


	.qa-area .flex p { font-size: 1.8rem; }

	.qa-area .accordion dt p:before,
	.qa-area .accordion dd p:before { width: 30px; font-size: 2.2rem; }
	.qa-area .accordion dt p{ font-size: 1.6rem; }
	.qa-area .accordion dd p{ font-size: 1.6rem; }
	.qa-area .accordion dl:not(:last-child) { margin-bottom: 20px; }

	#recruit_type .search-box table th{ display: block; width: 100%; font-size: 2rem; padding: 20px 0; }
	#recruit_type .search-box table td{ display: block; width: 100%; padding: 0 0 20px; }
	#recruit_type .search-box table td p{ margin-bottom: 20px; font-size: 1.6rem; }
	#recruit_type .search-box .check-box .flex { gap: 20px; }
	#recruit_type .title-box { margin: 50px auto 30px; }
	.mw_wp_form .left,
	.mw_wp_form .right{ width: 100%; }
	form .right ul li a{ font-size: 1.5rem; }
	#top .fv{ padding: 50px 0 80px; }

}

@media screen and (max-width: 420px) {
	.btn,
	form .submit-box .btn{ max-width: 100%; }
	#about .vision p,
	#recruit .vision p{ font-size: 1.5rem; }
} 

@media screen and (max-width: 376px) {

	#top .fv h2,
	#top .fv h2 span{ font-size: 11vw; }
	#top .fv h2{ margin-bottom: 30px; }


}

@media screen and (max-width: 640px) {

  .contact-btn a{
    padding: 20px 13px;
  }
}


/* 202504追加 */
@media screen and (max-width: 820px) {
	footer .middle .address .bottom p{
		text-align: left;
	}
	footer .left.f_wrap{
		flex-direction: column;
		text-align: left;
	}
	footer .middle .address .top {
        margin-bottom: 10px;
	}
	footer .middle {
		margin-bottom: 40px;
	}
	#single-detail .contents > h3:not(:first-child) {
        margin-top: 30px;
    }
	#single-detail .contents > h4:not(:first-child) {
        margin-top: 30px;
    }
	#recruit section:not(:last-child) {
        margin-bottom: 140px;
    }
	.guidline-area {
		padding: 50px 0;
	}
	#service section:not(:last-child) {
		margin-bottom: 100px;
	}
	#service section h3 .en {
		font-size: 3rem;
		display: block;
		line-height: 1em;
	}
	.member-area p {
		font-size: 1.8rem;
	}
	#service section.member-area h3 {
		margin-bottom: 0;
	}
	#service .member-area .flex {
		gap: 19px;
	}
	.cv-area1 {
		padding: 100px 0;
		background-image: linear-gradient(-45deg, #004B9E, #4DABDC);
		background-size: 200% auto;
		animation: gradientEffect 4s infinite alternate;
    }
}

@media screen and (max-width: 640px) {
    .member-area p {
        margin-bottom: 0;
    }
}

@media screen and (max-width: 420px) {
	footer .top nav ul{
		flex-direction: column;
	}
	#recruit section:first-of-type {
		margin-top: 50px;
	}
	#recruit .vision .container:before{
		bottom: -4rem;
	}
	#recruit section:not(:last-child) {
        margin-bottom: 100px;
    }
	#service section:not(:last-child) {
		margin-bottom: 70px;
	}
	#service section h3 .en {
		font-size: 2.4rem;
	}

}

/* 202506 */
@media screen and (max-width: 1080px) {
	.br1080{
		display: none;
	}

	.about-area .flex{
		gap: 50px;
	}
}

@media screen and (max-width: 900px) {
	.br900{
		display: none;
	}
}

@media screen and (max-width: 820px) {

	.sp820{
		display: block;
	}

    #about section h3 span:not(:last-child) {
        margin-bottom: 12px;
    }
	#about .greeting h3 .message-tx {
		font-size: 1.8rem;
		margin-bottom: 20px;
	}

	#service .member-area .right, #service .member-area .left {
		width: 100%;
	}
	#service section.member-area h3 {
        margin-bottom: 10px;
    }
	#recruit .vision h3 {
        font-size: 4.2rem;
    }
}

@media screen and (max-width: 560px) {
	.sp820.br560{
		display: none;
	}
	.swiper-area .swiper-container ul.swiper-wrapper{
		padding-top: 0;
	}
}

@media screen and (max-width: 390px) {
	.about-area h3 .en {
        font-size: 4rem;
    }
    .about-area h3 {
        font-size: 2.8rem;
        margin-bottom: 20px;
    }
}