/* ベーススタイル */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


html{
	scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

body {
  font-family: "BIZ UDPGothic", sans-serif;
    font-weight: 700;
    line-height: 2;
    font-size: 18px;
    color: #333;
    background-color: #fff;
	font-feature-settings: 'palt';
	overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a{
	text-decoration: none;
	color: #333;
}

a, button {
  -webkit-tap-highlight-color: transparent;
}

a:focus {
  outline: none;
}


a:focus-visible {
  outline: 2px solid blue;
}


.site-wrapper {
  margin: 0 auto;
  background-color: #fff;
  min-height: 100vh;
  position: relative;
}


.flex-box{
	display: flex;
}

.inner-left,
.inner-right{
  width: 50%;
}


.orange{
	color: #ff6c0a;
}

.ex-br{
	display: none;
}


.button{
	width: 317px;
    height: 65px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    background: #0039a4;
    color: #fff;
    border-radius: 7.5px;
    padding-left: 42px;
}
.button:after {
    content: '';
    display: inline-block;
    position: absolute;
    width: 12.6735px;
    height: auto;
    aspect-ratio: 1 / 1;
    background: url(../images/icon-cross.svg);
    background-size: contain;
    top: 50%;
    right: 34px;
    transform: translateY(-50%);
    filter: invert(99%) sepia(0%) saturate(0%) hue-rotate(224deg) brightness(104%) contrast(102%);
}


/* 右下基点のアニメーション定義 */
@keyframes motion-combined-right-bottom {
  0% {
    transform: rotate(-3deg) translateY(-10px);
  }
  50% {
    transform: rotate(3deg) translateY(10px);
  }
  100% {
    transform: rotate(-3deg) translateY(-10px);
  }
}

/* クラスへの適用 */
.sway-right-bottom {
  /* アニメーションの変形基点を「右下」に設定 */
  transform-origin: right bottom;
  
  animation: motion-combined-right-bottom 2s 0s cubic-bezier(.59, .2, .42, .78) forwards infinite;
}


/* 左下基点＆揺れ逆のアニメーション定義 */
@keyframes motion-combined-left-bottom {
  0% {
    /* 揺れ方を逆にするため、ここをプラス(3deg)に */
    transform: rotate(3deg) translateY(-10px);
  }
  50% {
    /* ここをマイナス(-3deg)に */
    transform: rotate(-3deg) translateY(10px);
  }
  100% {
    transform: rotate(3deg) translateY(-10px);
  }
}

/* クラスへの適用 */
.sway-left-bottom {
  /* アニメーションの変形基点を「左下」に設定 */
  transform-origin: left bottom;
  
  animation: motion-combined-left-bottom 2s 0s cubic-bezier(.59, .2, .42, .78) forwards infinite;
}



.deco-box-sp{
	display: none;
}


.sp-button{
	display: none;
}

/* ヘッダー -------------------------------------------------- */
.site-header {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 140px;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 1);
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.site-header.scrolled{
	height: 107px;
}


.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 0 24px;
  height: 100%;
}
.site-header.scrolled .header-inner{
	border-bottom: none;
}

.header-logo {
  width: 10.79vw;
	max-width:207.1992px;
	min-width: 100px;
	height: auto;
	aspect-ratio: 207.1992 / 105.6826;
	margin: 0;
}

.site-header.scrolled .header-logo{
	width: 8.07vw;
	max-width:154.8863px;
	min-width: 100px;
	aspect-ratio: 154.8863 / 66.8305;
}

.header-logo a img:nth-child(1){
	display: block;
}

.header-logo a img:nth-child(2){
	display: none;
}
.site-header.scrolled .header-logo a img:nth-child(1){
	display: none;
}

.site-header.scrolled .header-logo a img:nth-child(2){
	display: block;
}




.header-nav{
	height: 100%;
}

.header-nav ul {
  display: flex;
  align-items: center;
  gap: 50px;
  margin: 0;
  padding: 0;
  list-style: none;
  justify-content: space-between;
  height: 100%;
}

.header-nav ul li{
    height: 100%;
    min-width: 63px;
    display: flex;
    align-items: center;
    justify-content: center;
	position: relative;
}

.header-nav li::after {
  content: '';
	background: url("../images/icon-cross.svg");
	background-size: contain;
	background-repeat: no-repeat;
  width: 11.8828px;
  height: 11.8828px;
	display: inline-block;
	margin-left: 4px;
	transition: 0.2s;
}
.header-nav li.nav-contact::after{
	display: none;
}

.header-nav li:hover::after{
	filter: invert(27%) sepia(85%) saturate(7232%) hue-rotate(339deg) brightness(104%) contrast(103%);
}


.header-nav a {
  text-decoration: none;
  color: #333;
  font-size: 18px;
  font-weight: bold;
  text-transform: uppercase;
	transition: 0.3s;
}
.header-nav li:hover a{
	color: #ff0f47;
}

.header-nav ul li.nav-contact{
	margin-left: 10px;
}

.header-nav ul li.nav-contact a{
	width: 174px;
	height: 100%;
    background: #ff0f47;
    display: flex;
    justify-content: center;
    align-items: center;
	font-size: 15px;
	color: #fff;
    transition: background-color 0.3s ease;
}
.header-nav ul li.nav-contact a:hover{
	filter: brightness(1.2);
}
.site-header.scrolled .header-nav ul li.nav-contact a{
	height: 107px;
}


.header-menu-toggle {
  display: none;
  background: none;
  border: none;
  padding: 0px;
  cursor: pointer;
  margin-left: 16px;
  margin-right: 10px;
}

.header-menu-toggle span {
  display: block;
  width: 25px;
  height: 4px;
  background-color: #333;
  border-radius: 0px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.header-menu-toggle span + span {
  margin-top: 8px;
}

.site-header .header-menu-toggle span:nth-child(2) {
  display: none;
}

.site-header.is-open .header-menu-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

/*.site-header.is-open .header-menu-toggle span:nth-child(2) {
  opacity: 0;
}*/

.site-header.is-open .header-menu-toggle span:nth-child(3) {
  transform: translateY(-5px) rotate(-45deg);
}


.site-header.is-open .header-nav ul li a{
	color: #fff;
}

.site-header.is-open .header-nav ul li.nav-contact a{
	width: auto;
	height: auto;
	background: none;
}



/* ヒーロー -------------------------------------------------- */

.first-wrapper{
   /*background: url("../images/hero-back.png");
  background-size: cover;
  background-position: top;
  background-repeat: no-repeat;*/
	position: relative;
}
.first-wrapper::before{
	content: '';
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.4);
	position: absolute;
	top: 0;
	left: 0;
}

.bg-video{
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	-webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: filter;
	transition: filter 0.5s ease;
  filter: blur(0px);
	width: 100%;
    max-width: 100vw;
}
.bg-video video{
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.bg-video.is-blurred{
  filter: blur(20px);
}

.bg-video::before{
	content: '';
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.4);
	position: absolute;
	top: 0;
	left: 0;}


.hero {
	width: 100%;
  position: relative;
  /*height: 1245px;*/
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 0 24px;
  /*padding-top: 140px;*/
	padding-top: 730px;
	margin-bottom: 200px;
	max-width: 1920px;
}


.hero-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.hero-inner .inner-left{
	width: auto;
	padding: 0 60px;
	max-width: 1080px;
}
.hero-inner .inner-right{
	/*width: 31.82%;*/
	width: 611px;
}
.hero-tagline{
  font-size: clamp(28px,7.26vw,90px);
  font-weight: bold;
  line-height: 1.211;
  display: block;
  margin-bottom: 36px;
}
.hero-tagline span{
	display: inline-block;
}


.hero-lead-p{
	font-size: 20px;
  font-weight: bold;
}

.recruit-button{
	background: url("../images/top-recruit-back.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 494px;
	aspect-ratio: 494 / 344;
	padding: 42px 0 36px;
    position: relative;
}

.recruit-button .deco-01{
	width: 171px;
	aspect-ratio: 171 / 328;
	position: absolute;
	bottom: -40px;
    left: -92px;
}
.recruit-button .deco-02{
	width: 171px;
	aspect-ratio: 171 / 352;
	position: absolute;
    top: -60px;
    right: -62px;
}





.recruit-button a{
	color: #fff;
	padding: 0 54px;
	display: flex;
	flex-direction: column;
	justify-content: center;
    height: 100%;
    margin: 0 25px;
}
.reccruit-button-head{
    font-size: 37px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    line-height: 1;
    border-bottom: solid 1px #fff;
    width: fit-content;
}
.recruit-button a p{
	line-height: 1.5;
}
.recruit-button-inner{
	position: relative;
	background-size: cover;
	display: flex;
	flex-direction: column;
}
.recruit-button-inner::after{
	content:'';
	display: inline-block;
	position: absolute;
	width: 51px;
	height: auto;
	aspect-ratio: 1 / 1;
	background: url("../images/icon-circle-cross-blue.svg");
	top: -4px;
	right: 0;
}


.hero-button {
  display: inline-block;
  padding: 12px 32px;
  border-radius: 999px;
  background-color: #fff;
  color: #1f6feb;
  font-weight: 600;
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-button:hover {
  opacity: 0.9;
}


.header-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  opacity: 0;
  pointer-events: none;
  z-index: 900;
  transition: opacity 0.3s ease;
  width: 100%;
  max-width: 100vw;
}

body.menu-open .header-overlay {
  opacity: 1;
  pointer-events: auto;
}


@media (max-width: 1400px) {
  .header-inner {
    padding: 10px 16px;
  }


  .header-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: #4e5bae;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    padding: 16px 34px 24px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;

    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;

    transition:
      max-height 0.3s ease,
      opacity 0.3s ease,
      transform 0.3s ease;
  }

  .header-nav ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
	  width: 100%;
  }
	.header-nav ul li{
		width: 100%;
	}


  .site-header.is-open .header-nav {
    max-height: 90vh;
    height: fit-content;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }


  .header-menu-toggle {
    display: block;
  }
	
	.header-nav li.current::after, 
	.header-nav li:hover::after{
		width: 0;
	}	
	
	

	
	.header-logo{
		width: 60%;
	}
	
	
	
}








/* フッター -------------------------------------------------- */
.site-footer {
  background-color: #e6edfa;
  color: #333;
  padding: 100px 24px;
	min-height: 464px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	    position: relative;
}

.footer-p{
	max-width: 1450px;
	font-size: 13px;
}

.footer-inner {
	width: 100%;
  max-width: 1450px;
  margin: 100px auto 0;
  display: flex;
  justify-content: space-between;
}



.footer-left,
.footer-right{
	width: fit-content;
}




.footer-right{
	display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.footer-left{
	display: flex;
    align-items: flex-end;
	gap: 60px;
}

.f-company-info{
    min-width: 420px;
}


.privacy-button{
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
	font-size: 13px;
	font-weight: bold;
	color: #333;
	width: 240px;
	height: 57px;
	border: solid 1px #333;
}


.footer-company {
  font-weight: 18px;
}



.tel-and-fax{
	display: flex;
	gap: 1em;
}

.footer-address,
.footer-tel {
  font-size: 18px;
	line-height: 1.5;
}

.footer-tel,
.footer-fax{
	position: relative;
	display: flex;
    align-items: center;
    white-space: nowrap;
}





.footer-copy {
  font-size: 11px;
  text-align: right;
  margin: 0;
}
.footer-copy span{
	display: inline-block;
}


/* TOPへ戻るボタン -------------------------------------------------- */

.pagetop {
    position: fixed;
    bottom: 120px;
    right: 30px;
    width: 67.5px;
    opacity: 0;
	display: flex;
	justify-content: center;
	align-items: center;
    transform: translateY(20px);
    z-index: 999;
    transition: opacity .3s ease, transform .3s ease, bottom .3s ease;
}

.pagetop.is-fixed {
    bottom: 25px; 
    opacity: 1;
    transform: translateY(0);
}

.pagetop img{
	width: 67.5px;
	aspect-ratio: 1 / 1;
}








/* TOP section1 ---------------------------------- */


#top .section-01 .section-inner{
	padding: 154px 0 388px;
	display: flex;
	position: relative;
}




#top .section-01 .flex-box{
	width: 100%;
	margin: 0 auto;
	justify-content: space-between;
	position: relative;
	border: solid 1px #fff;
	max-width: 1449px;
}
/*#top .section-01 .flex-box::after{
	content: '';
	background: url("../images/top-section-01-03.png");
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: -73px;
	left: 86px;
	width: 197.1144px;
	height: auto;
	aspect-ratio: 197.1144 / 301.8484;
}*/
#top .section-01 .flex-box .deco-a{
	position: absolute;
	top: -73px;
	left: 86px;
	width: 157px;
	height: auto;
	aspect-ratio: 157 / 164;
}
#top .section-01 .flex-box .deco-b{
	position: absolute;
	top: 85px;
	left: 175px;
	width: 154px;
	height: auto;
	aspect-ratio: 154 / 172;
}







#top .section-01 .flex-box .deco{
	position: absolute;
	bottom: -6.77vw;
	right: -6.77vw;
	width: 24.64vw;
	max-width: 473px;
	height: auto;
	aspect-ratio: 473 / 346;
}



#top .section-01 .flex-box > img{
	align-self: flex-start;
}

#top .section-01 .flex-box > img:nth-of-type(1){
	margin-left: -35px;
	margin-bottom: -107px;
	align-self: flex-end;
}
#top .section-01 .flex-box > img:nth-of-type(2){
	margin-right: 22px;
	margin-top: -58px;
	align-self: flex-start;
}






#top .section-01 .flex-box .inner-right{
	display: flex;
    flex-direction: column;
	position: relative;
	padding-left: 60px;
}

#top .section-01 h2{
	margin-bottom: 60px;
	text-align: center;
}



#top .section-01 .flex-box .inner-right p{
	max-width: 490px;
	color: #fff;
}


#top .section-01 .inner-flex{
	max-width: 676px;
	color: #fff;
	margin: 120px 85px;
	display: flex;
    flex-direction: column;
    align-items: center;
}
#top .section-01 .since1926{
	width: 120px;
	height: auto;
	aspect-ratio: 120 / 31;
	margin-bottom: 40px;
}




/* TOP News ---------------------------------- */

#top-news{
	z-index: 3;
    position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#top-news .content-wrapper{
	display: flex;
	background: #f4f6fa;
	width: 100%;
	max-width: 1450px;
	padding: 65px 115px 46px 133px;
	gap: 84px;
}

#top-news .content-wrapper .inner-left{
	width: auto;
	padding-top: 35px;
}
#top-news .content-wrapper .inner-right{
	width: 100%;
}

.top-news-en{
	width: 52.8484px;
	aspect-ratio: 52.8484 / 16.3848;
}
#top-news .title-wrap{
	gap: 15px;
}

.section-title{
	margin-top: 27px;
	line-height: 1;
}


#top-news .section-title{
	font-size: 40px;
	margin-top: 40px;
}


#top-news .button{
	margin-top: 40px;
}


#newsList{
	list-style: none;
}
#newsList li{
	/*min-height: 118px;*/
	width: 100%;
	border-bottom: solid 1px #afafaf;
    display: flex;
    flex-direction: column;
    justify-content: center;
	padding: 35px 0;
}



#newsList li:last-child{
	border-bottom: none;
}

#newsList li a{
    width: fit-content;
}

.date-and-title{
	display: flex;
    margin-bottom: 16px;
	align-items: center;
    gap: 30px;
}

.catName{
	line-height: 1;
    color: #0039a4;
	background: #dfe8fa;
	height: 30px;
	display: flex;
    justify-content: center;
    align-items: center;
    min-width: 110px;
	padding: 0 10px;
	font-size: 16px;
}

.up_ymd{
	display: block;
	font-size: 18px;
	font-weight: 600;
	color: #0039a4;
	line-height: 1;
	/*margin-bottom: 16px;*/
}

#newsList li .title{
	display: block;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
}




/* TOP Service ---------------------------------- */


#top .section-02 .section-inner{
	padding: 100px 0 180px;
	display: flex;
	flex-direction: column;
	position: relative;
	background-color: #f4f6fa;
	background-size: cover;
	background-repeat: no-repeat;
	align-items: center;
	z-index: 2;
	margin-top: -102px;
	overflow: visible;
	clip-path: polygon(
    0 0, 
    647px 0, 
    647px 102px,
    100% 102px, 
    100% 100%,
    0 100%
  );
}
#top .section-02 .section-inner::before{
	content:'';
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("../images/top-service-back.svg");
	background-repeat: repeat;
	background-position: top left;
	/*background-size: cover;*/
	background-size: 100%;
	clip-path: polygon(
    0 0,      
    647px 0,   
    647px 102px, 
    100% 102px,  
    100% 100%,
    0 100%
  );
}

#top .section-02 .title-box {
	margin-bottom: 130px;
	max-width: 1448px;
    width: 100%;
}

.title-wrap{
	position: relative;
	display: flex;
	align-items: center;
	gap: 30px;
}
.title-wrap span{
	width: 27px;
	height: 5px;
	display: inline-block;
	background: #ff0f47;
}

.title-service{
	width: 78.7871px;
	aspect-ratio: 78.7871 / 16.2672;
	position: relative;
}



#top .section-02 .section-title{
	font-size: 40px;
}



#top .section-02 .service-list{
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 80px;
	list-style: none;
	width: 100%;
    max-width: 1596px;
}
#top .section-02 .service-list > li{
	display: flex;
	background-color: #fff;
	width: 100%;
	position: relative;
	/*min-height: 350px;*/
}
#top .section-02 .service-list > li::after{
	content: '';
    display: inline-block;
    position: absolute;
    width: 68px;
    height: auto;
    aspect-ratio: 1 / 1;
    background: url(../images/icon-circle-cross-pink.svg);
	background-size: contain;
    background-repeat: no-repeat;
    top: 50%;
    right: 90px;
    transform: translateY(-50%);
}
#top .section-02 .service-list > li:nth-child(2),
#top .section-02 .service-list > li:nth-child(3){
	min-height: 350px;
}


#top .section-02 .service-list > li a{
	display: flex;
	width: 100%;
	text-decoration: none;
	align-items: center;
}

#top .section-02 .service-list > li a img{
	max-width: 455px;
	aspect-ratio: 455 / 326;
	margin-left: 30px;
	margin-top: -28px;
	margin-bottom: 23px;
	align-self: flex-start;
}
#top .section-02 .service-list li > a .inner-box{
	/*padding: 65px 78px;*/
	padding: 0 78px
}


#top .section-02 .service-list li > a h3{
    font-size: 35px;
	line-height: 1;
	margin-bottom: 24px;
	position: relative;
}
#top .section-02 ul li > a h3::before{
	content:'01';
	display: inline-flex;
	justify-content: center;
	align-items: center;
	color: #0039a4;
	border-bottom: solid 5px #0039a4;
	font-size: 30px;
	width: 35px;
	margin-right: 32px;
	padding-bottom: 12px;
}
#top .section-02 ul li:nth-of-type(2) > a h3::before{
	content:'02';
}
#top .section-02 ul li:nth-of-type(3) > a h3::before{
	content:'03';
}
#top .section-02 ul li:nth-of-type(4) > a h3::before{
	content:'04';
}
#top .section-02 ul li:nth-of-type(5) > a h3::before{
	content:'05';
}


#top .section-02 ul li > a p{
	font-size: 18px;
	margin-bottom: 16px;
	max-width: 764px;
}



.item-list{
	display: flex;
	gap: 13px;
}

.item-list li{
	display: flex;
	align-items: center;
	width: 158.6053px;
	height: 40px;
	color: #0039a4;
	background: #dce6fa;
	padding: 0 0 0 14px;
	font-size: 17px;
}
.item-list li.and-more{
	font-size: 13px;
	background: transparent;
	width: fit-content;
	padding: 0;
}

.item-list li.font17{
	font-size: 17px;
}
.item-list li.font16{
	font-size: 16px;
}

.item-list li.long-box{
	width: 221px;
}


/* TOP 会社案内 ---------------------------------- */


#top .section-03 .section-inner{
	padding: 140px 0;
	display: flex;
	flex-direction: column;
	position: relative;
	background: url("../images/top-company-back.jpg");
	background-size: cover;
	background-repeat: no-repeat;
    align-items: flex-start;
	justify-content: center;
	overflow: hidden;
	min-height: 832px;
}


#top .section-03 .title-box {
    width: fit-content;
}

#top .section-03 .title-wrap{
	margin-bottom: 35px;
}

.title-company{
	width: 89.0488px;
	aspect-ratio: 89.0488 / 17.5732;
	position: relative;
}



#top .section-02 .section-title{
	font-size: 40px;
}





#top .section-03 .card{
	background: #fff;
	max-width: 1204px;
	min-height: 313px;
	width: 100%;
	display: flex;
	gap: 48px;
	align-items: center;
    justify-content: center;
}

#top .section-03 .card a{
	width: fit-content;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	padding: 24px 56px 24px 38px;
}
#top .section-03 .card a > img:nth-last-of-type(1){
	width: 67.5px;
	height: auto;
	aspect-ratio: 1 / 1;
}
#top .section-03 .card a > img:nth-last-of-type(2){
	width: 142.872px;
	height: auto;
	aspect-ratio: 142.872 / 184.3597;
}
#top .section-03 .card a > p{
	max-width: 560.5488px;
	margin-left: 25px;
	margin-right: 10px;
}




#top .section-03 .section-title{
	font-size: 40px;
	font-weight: bold;
  font-optical-sizing: auto;
	color: #152039;
	line-height: 1;
	min-width: 4em;
}
#top .section-03 .section-text{
	font-size: 18px;
	text-align: center;
	margin-bottom: 30px;
}




/* TOP 採用情報 ---------------------------------- */



#top .section-04 .section-inner{
	display: flex;
	flex-direction: column;
	position: relative;
	background-color: #f4f6fa;
	background-size: cover;
	background-repeat: no-repeat;
	align-items: center;
	z-index: 2;
	overflow: visible;
	padding-top: 180px;
	padding-bottom: 250px;
}
#top .section-04 .section-inner::before{
	content:'';
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("../images/top-service-back.svg");
	background-repeat: repeat;
	background-position: top left;
	background-size: 100%;
}


#top .section-04 .flex-box{
	flex-direction: column;
	position: relative;
	width: 100%;
}
#top .section-04 .flex-box::before{
	content:'';
	position: absolute;
	background-image: url("../images/join-us.svg");
	background-repeat: no-repeat;
	background-position: top left;
	background-size: contain;
	width: 100%;
	height: auto;
	max-width: 96.8438px;
	aspect-ratio: 96.8438 / 466.855;
	left: 0;
	top: 108px;
}



#top .section-04 .flex-box span{
	font-size: 40px;
	background: #5fbcff;
	padding: 32px 60px;
	display: flex;
	align-items: center;
	height: 97px;
	color: #fff;
}

#top .section-04 .flex-box span:nth-of-type(1){
	justify-content: flex-end;
	width: 847px;
	display: inline-flex;
    align-self: flex-start;
	margin-bottom: -50px;
	z-index: 2;
}

#top .section-04 .flex-box span:nth-of-type(2){
	justify-content: flex-start;
	width: 758px;
	display: inline-flex;
    align-self: flex-end;
	margin-top: -50px;
	
}

#top .section-04 .flex-box img{
	max-width: 1680px;
	width: 100%;
    margin: 0 auto;
}


#top .section-04 .info-box{
	display: flex;
	max-width: 1350px;
	margin-top: 115px;
	position: relative;
}

#top .section-04 .info-box .deco-01{
	width: 210px;
    aspect-ratio: 210 / 171;
    position: absolute;
    top: -183px;
    left: -256px;
}
#top .section-04 .info-box .deco-02{
	width: 115px;
    aspect-ratio: 115 / 135;
    position: absolute;
    top: 18px;
    left: -177px;
}
#top .section-04 .info-box .deco-03{
	width: 126px;
    aspect-ratio: 126 / 137;
    position: absolute;
    top: 113px;
    left: -52px;
}





#top .section-04 .title-box {
	transform: translateY(-50px);
}

#top .section-04 .title-box .section-title{
	font-size: 40px;
	line-height: 1;
}


#top .section-04 .title-wrap{
	margin-bottom: 35px;
}

.title-recruit{
	width: 77.8311px;
	aspect-ratio: 77.8311 / 19.5664;
	position: relative;
	margin-bottom: 35px;
}
.title-recruit::before{
	content: '';
	width: 27px;
	height: 5px;
	display: inline-block;
	background: #ff0f47;
	position: absolute;
	top: 50%;
	left: calc(-27px + -35px);
	transform: translateY(-50%);
	
}

#top .section-04 .info-box p{
	max-width: 697px;
	margin: 0 102px 0 74px;
	letter-spacing: 0.0015em;
}

#top .section-04 .info-box a{
	width: 317px;
	height: 65px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	position: relative;
	background: #ff0f47;
	color: #fff;
	border-radius: 7.5px;
	padding-left: 42px;
}
#top .section-04 .info-box a:after{
	content: '';
    display: inline-block;
    position: absolute;
    width: 12.6735px;
    height: auto;
    aspect-ratio: 1 / 1;
    background: url(../images/icon-cross.svg);
    background-size: contain;
    top: 50%;
    right: 34px;
    transform: translateY(-50%);
	filter: invert(99%) sepia(0%) saturate(0%) hue-rotate(224deg) brightness(104%) contrast(102%);
}


/* TOP よくある質問 ---------------------------------- */

#top .section-05{
	width: 100%;
	background: #fff;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	padding: 100px 0 100px 160px;
}

#top .section-05 .section-inner{
	display: flex;
	width: 100%;
	max-width: 1685px;
    justify-content: space-between;
}

#top .section-05 .section-inner .inner-left{
	/*width: 49.58vw;*/
	width: 100%;
	max-width: 952px;
	position: relative;
	padding-top: 80px;
}

#top .section-05 .section-inner .inner-left .deco-01{
	width: 232px;
	aspect-ratio: 232 / 152;
	position: absolute;
	top: 0;
	right: 288px;
}
#top .section-05 .section-inner .inner-left .deco-02{
	width: 240px;
	aspect-ratio: 240 / 172;
	position: absolute;
	top: 0;
	right: 30px;
}
#top .section-05 .section-inner .inner-left .deco-03{
	width: 185px;
	aspect-ratio: 185 / 461;
	position: absolute;
	bottom: -58px;
	left: -138px;
}



#top .section-05 .section-inner .inner-right{
	/*width: 29.84vw;*/
	width: 100%;
	max-width: 573px;
	aspect-ratio: 573 / 757;
}


.title-q-and-a{
	width: 248.9919px;
    aspect-ratio: 248.9919 / 16.4209;
    position: relative;
}

#top .section-05 .section-title{
	margin-bottom: 35px;
	font-size: 40px;
}
#top .section-05 .section-title span{
	display: inline-block;
}

#top .section-05 ul{
	margin-top: 50px;
	display: flex;
	flex-wrap: wrap;
	gap: 40px 33px;
	list-style: none;
	margin-bottom: 87px;
	position: relative;
	z-index: 2;
}
#top .section-05 ul li{
	background: #dce6fa;
	width: 454px;
	height: 106px;
	position: relative;
	padding: 0 30px;
	display: flex;
	align-items: center;
}


#top .section-05 ul li::after{
	content: '';
  position: absolute;
  top: calc(100% - 1px); 
  left: 50%;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 31px 0 0 28px;
  border-color: #dce6fa transparent transparent transparent;
}



#top .section-05 .section-inner .inner-left .button{
	margin: 0 auto;
}




/* TOP お問い合わせ ---------------------------------- */

#f-contact{
	position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.section-contact{
	display: flex;
	flex-direction: column;
	position: relative;
	/*background: url("../images/top-contact-back.jpg");
	background-size: cover;
	background-repeat: no-repeat;*/
	align-items: center;
	overflow: hidden;
	color: #fff;
	min-height: 757px;
}

.f-bg-video {
	position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    -webkit-transform: translateZ(0);
	transform: translateZ(0);
	width: 100%;
}
.f-bg-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.section-contact::before {
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    position: absolute;
    top: 0;
    left: 0;
	z-index: 1;
}


#f-contact .section-inner .flex-box{
    align-items: center;
}




.tel-button-wrapper{
	    margin-bottom: 100px;
    width: 100%;
	display: flex;
	justify-content: center;
}


.child-page .section-contact .section-inner,
.section-contact .section-inner{
	padding: 140px 0;
	display: flex;
	flex-direction: column;
    align-items: center;
	position: relative;
	margin: 0;
	max-width: unset;
	z-index: 2;
}

.section-contact .title-box{
	margin-right: 95px;
}

.section-contact .section-title{
	font-size: 50px;
	font-weight: bold;
	margin-bottom: 30px;
	width: fit-content;
	line-height: 1.18;
}


.section-contact .section-text{
	max-width: 493px;
	font-size: 18px;
    letter-spacing: 0.05em;
}

.contact-box{
	display: flex;
	gap: 40px;
}

.contact-title{
	display: block;
	font-size: 20px;
	margin-bottom: 15px;
	line-height: 1;
	font-weight: 500;
}


.contact-button{
	border-radius: 11px;
	width: 386.5px;
	height: 138px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	line-height: 1;
}

.tel-button{
	background: #fff;
	color: #333;
	font-size: 24px;
}
.tel-button .mini{
	font-size: 13px;
    display: inline-block;
	margin-top: 16px;
}

.form-button{
	background: #fff;
	color: #ff0f47;
	font-size: 16px;
	position: relative;
	padding-left: 55px;
	align-items: flex-start;
}

.form-button::before{
	content:'';
	display: inline-block;
	width: 33.75px;
	height: auto;
	aspect-ratio: 1 /1;
	background: url("../images/icon-circle-cross-pink.svg");
	background-size: cover;
	background-repeat: no-repeat;
	position: absolute;
	right: 55px;
	top: 50%;
	transform: translateY(-50%);
}



/* 子ページ共通 -------------------------------------------------- */

.child-page{
}


.child-header{
	width: 100%;
	height: 567px;
    background-size: cover;
	background-repeat: no-repeat;
	background: url("../images/child-header-back.svg");
	position: relative;
}
.child-header::before {
    content: '';
    width: 960px;
    height: auto;
	aspect-ratio: 960 / 400;
    position: absolute;
    top: 107px;
    right: 0;
	background-size: contain;
	background-repeat: no-repeat;
}

.child-header-inner{
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	position: relative;
	padding-top: 107px;
	padding-left: 190px;
}

.child-header-inner .title-wrap{
	margin-bottom: 28px;
}


.child-header-inner .child-title{
	color: #333;
	font-size: 40px;
    line-height: 1;
	margin-bottom: 28px;
}
/*.child-header-inner .child-title .mini{
	font-size: 0.2255em;
	display: inline-block;
	margin-top: 10px;
}*/




/* パンくずリスト */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  font-size: 15px;
  color: #333;
}

.breadcrumb-item + .breadcrumb-item::before {
  content: ">";
  margin: 0 8px;
  color: #333;
}

.breadcrumb-item a {
  color: #333;
  text-decoration: none;
}

.breadcrumb-item[aria-current="page"] {
  pointer-events: none;
}





/* 新着情報 -------------------------------------------------- */

#news .child-header::before{
	background-image: url("../images/child-header-news.png");
}


#news .c-header-title {
    width: 52.8484px;
    aspect-ratio: 52.8484 / 16.3848;
    position: relative;
}

#news .section-01{
	padding: 112px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#news .section-01 .section-inner{
	width: 100%;
	max-width: 990px;
	display: flex;
	flex-direction: column;
	position: relative;
}

#news .section-01 .news-inner-wrapper{
	display: flex;
    align-items: center;
    gap: 20px;
}

.pager{
	display: flex;
	justify-content: center;
    align-items: center;
	gap: 70px;
	position: relative;
	width: 100%;
	max-width: 526px;
    margin: 112px auto 0;
}
.pager a{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 18px;
	color: #0039a4;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	
}
.pager a.current{
	color: #000;
}

.custom-pager .page-numbers{
	display: flex;
	justify-content: center;
    align-items: center;
	column-gap: 30px;
    list-style: none;
}

.pager-link{
	cursor: pointer;
}

.pager-link.current{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 18px;
	color: #333;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	pointer-events: none;
	cursor: inherit;
}
.pager-link:hover{
	color: #000;
	background: #f0f2f9;
	border: solid 1px #f0f2f9;
}

.pager .button-next,
.pager .button-prev{
	width: 50px;
	/*height: 50px;*/
	cursor: pointer;
	position: relative;
}
.pager .button-next img{
	transform: rotate(90deg);
}
.pager .button-prev img{
	transform: rotate(-90deg);
}

.pager .button-next .bg-layer,
.pager .button-prev .bg-layer{
	width: 100%;
	height: 100%;
	position: relative;
	
}

.custom-pager .button-prev img,
.custom-pager .button-next img{
  display: block;
}

/*.custom-pager .button-prev:not(.is-disabled)::after{
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/icon-arrow.svg") center / contain no-repeat;
  pointer-events: none;
	transform: rotate(180deg);
}


.custom-pager .button-next:not(.is-disabled)::after{
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/icon-arrow.svg") center / contain no-repeat;
  pointer-events: none;
}*/

/*.custom-pager .button-prev:not(.is-disabled) img,
.custom-pager .button-next:not(.is-disabled) img{
	opacity: 0;
}
*/

/*新着情報（詳細ページ）///////////////////////////////////////*/

#news.news-detail #content-01 .content-wrapper{
	width: 100%;
	max-width: 1200px;
	padding: 0 50px;
	margin: 0 auto;
}

#news.news-detail #content-01 .content-wrapper h2{
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 50px;
	margin-top: 26px;
}

.news-header{
	border-bottom: solid 1px #ccc;
	margin-bottom: 50px;
}


#news.news-detail #content-01 .content-wrapper img{
	margin-bottom: 60px;
}

#news.news-detail #detail{
	padding-bottom: 125px;
	border-bottom: solid 1px #ccc;
	margin-bottom: 80px;
}



#news.news-detail .button-container{
	    display: flex;
    justify-content: center;
}

#news.news-detail #catName{
	line-height: 1;
    color: #0039a4;
    background: #dfe8fa;
    height: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 110px;
    padding: 0 10px;
    font-size: 16px;
	width: fit-content;
}
#news.news-detail #up_ymd {
    display: block;
    font-size: 18px;
    font-weight: 600;
    color: #0039a4;
    line-height: 1;
	margin-bottom: 1em;
}






/* オフィス事業 -------------------------------------------------- */

#office .child-header::before{
	background-image: url("../images/child-header-office.png");
}


#office .c-header-title {
    width: 167.9929px;
    aspect-ratio: 167.9929 / 16.3848;
    position: relative;
}

#office .section-01{
	padding: 150px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#office .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	background: #f9f8f7;
	display: flex;
	position: relative;
}
#office .section-01 .section-inner::before{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	top: 76px;
	left: 40px;
}
#office .section-01 .section-inner::after{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	bottom: 76px;
	left: 40px;
}

#office .section-01 .section-inner .inner-left{
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

#office .section-01 .section-inner .inner-right{
	max-width: 726px;
}

#office .section-01 .section-inner .inner-left .inner-wrapper{
	width: 100%;
	max-width: 508px;
}

#office .section-01 h3{
	font-size: 40px;
	margin-bottom: 50px;
	line-height: 1.4;
	position: relative;
}
#office .section-01 h3::before{
	content: '';
    background: url(../images/office-section-01-deco.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 55.0229px;
    aspect-ratio: 55.0229 / 36.0225;
    position: absolute;
    top: -30px;
    left: -30px;
}



#office .section-02{
	padding: 20px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#office .section-02 .section-inner{
	width: 100%;
	max-width: 1450px;
}

#office .section-02 ul{
	display: flex;
	flex-wrap: wrap;
	gap: 30px 16px;
}

#office .section-02 ul li{
	width: 472px;
	min-height: 457px;
	background-color: #f4f6fa;
	display: flex;
	flex-direction: column;
}

#office .section-02 ul li .inner-wrapper{
	padding:  34px 44px;
}

#office .section-02 ul li  h4{
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 20px;
	position: relative;
	line-height: 1;
	display: flex;
	align-items: center;
}
#office .section-02 ul li  h4::before{
	content: '';
	display: inline-block;
    width: 7px;
	background-color: #4e5bae;
    aspect-ratio: 1 / 1;
	margin-right: 18px;
}



#office .section-02 ul li p{
	font-size: 18px;
	line-height: 1.75;
}



#office .section-03{
	padding: 20px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#office .section-03 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#office .section-03 ul{
	display: flex;
	flex-wrap: wrap;
	gap: 22px 26px;
}

#office .section-03 ul li{
	width: 342px;
	min-height: 120px;
	padding: 12px;
	background-color: #f4f6fa;
	display: flex;
	flex-direction: column;
}

#office .section-03 ul li .inner-wrapper{
	background: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

#office .section-03 ul li  h4{
	font-size: 24px;
	font-weight: bold;
	position: relative;
	line-height: 1;
}

#office .section-03  .section-inner > p{
	text-align: center;
	margin-top: 50px;
}




#office .section-04{
	padding: 0 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#office .section-04 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	background: url("../images/office-section-04-back.png");
	background-size: cover;
	background-repeat: no-repeat;
}


#office .section-04 .section-inner .inner-left{
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: #fff;
}

#office .section-04 .section-inner .inner-right{
	max-width: 726px;
}

#office .section-04 .section-inner .inner-left .inner-wrapper{
	width: 100%;
	max-width: 508px;
}

#office .section-04 h3{
	font-size: 40px;
	margin-bottom: 30px;
	line-height: 1.4;
	position: relative;
}
#office .section-04 h3::before{
	content: '';
    background: url(../images/office-section-04-deco.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 55.0229px;
    aspect-ratio: 55.0229 / 36.0225;
    position: absolute;
    top: -30px;
    left: -36px;
}

#office .section-04 ul{
	display: flex;
	gap: 10px;
	list-style: none;
	margin-bottom: 30px;
}

#office .section-04 ul li{
	color: #333;
	font-size: 18px;
	background: #fff;
	padding: 8px;
	line-height: 1;
}


/* 選挙事業 -------------------------------------------------- */

#election .child-header::before{
	background-image: url("../images/child-header-election.png");
}


#election .c-header-title {
    width: 184.3191px;
    aspect-ratio: 184.3191 / 16.3848;
    position: relative;
}


#election .section-01{
	padding: 150px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#election .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	background: #f9f8f7;
	display: flex;
	position: relative;
}
#election .section-01 .section-inner::before{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	top: 76px;
	left: 40px;
}
#election .section-01 .section-inner::after{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	bottom: 76px;
	left: 40px;
}

#election .section-01 .section-inner .inner-left{
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

#election .section-01 .section-inner .inner-right{
	max-width: 726px;
}

#election .section-01 .section-inner .inner-left .inner-wrapper{
	width: 100%;
	max-width: 508px;
}

#election .section-01 h3{
	font-size: 40px;
	margin-bottom: 50px;
	line-height: 1.4;
	position: relative;
}
#election .section-01 h3::before{
	content: '';
    background: url(../images/office-section-01-deco.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 55.0229px;
    aspect-ratio: 55.0229 / 36.0225;
    position: absolute;
    top: -30px;
    left: -34px;
}

#election .section-02{
	padding: 20px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#election .section-02 .section-inner{
	width: 100%;
	max-width: 1450px;
}

#election .section-02 ul{
	display: flex;
	flex-direction: column;
	gap: 100px;
}

#election .section-02 ul li{
	width: 100%;
	min-height: 414px;
	background-color: #f4f6fa;
	display: flex;
}

#election .section-02 ul li .inner-wrapper{
	width: 100%;
	padding:  65px 60px;
}

#election .section-02 ul li  h4{
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 30px;
	position: relative;
	line-height: 1;
	display: flex;
	align-items: center;
}
#election .section-02 ul li  h4::before{
	content: '';
	display: inline-block;
    width: 7px;
	background-color: #4e5bae;
    aspect-ratio: 1 / 1;
	margin-right: 18px;
}

#election .section-02 .item-tugline{
	display: block;
	font-size: 24px;
	font-weight: bold;
	color: #4e5bae;
	line-height: 1.583;
	margin-bottom: 20px;
}

#election .section-02 ul li p{
	font-size: 18px;
	line-height: 1.75;
	width: 100%;
	max-width: 609px;
	padding: 20px 22px;
	background: #fff;
}

#election .section-02 ul li p span{
	display: inline-block;
}










/* メーリング事業 -------------------------------------------------- */

#dm .child-header::before{
	background-image: url("../images/child-header-dm.png");
}


#dm .c-header-title {
    width: 214.1443px;
    aspect-ratio: 214.1443 / 18.9909;
    position: relative;
}


#dm .section-01{
	padding: 150px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#dm .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
}



#dm .section-01 .h-box{
	background-image: url("../images/dm-section-01-head.svg");
	background-repeat: no-repeat;
	background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
	position: relative;
	height: 111px;
	width: 100%;
}

#dm .section-01 h3{
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	font-size: 40px;
	line-height: 1;
	height: 100%;
	margin-left: -182px;
	position: relative;
	z-index: 1;
}

#dm .section-01 h3 .normal{
	position: relative;
	display: flex;
    align-items: center;
}

#dm .section-01 h3 .normal::before{
	content: '';
	display: block;
	background: url("../images/cost.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 156px;
	aspect-ratio: 1 / 1;
	margin-right: 26px;
	z-index: 2;
	position: absolute;
	left: -182px;
}


#dm .section-01 h3 .mini{
	font-size: 0.6em;
	display: block;
	margin-left: 0.6em;
}


#dm .section-01 .wrapper{
	background-color: #fad7e0;
	position: relative;
}
#dm .section-01 .wrapper:before{
	content: '';
	width: 100%;
	height: 100%;
	background-image: url("../images/back-grids.png");
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0.25;
}

#dm .section-01 .wrapper .flex-box{
	display: flex;
	position: relative;
	z-index: 1;
}
#dm .section-01 .wrapper .flex-box:nth-child(even){
	flex-direction: row-reverse;
}

#dm .section-01 .wrapper .flex-box .inner-left{
	width: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

#dm .section-01 .wrapper .flex-box .inner-left h4{
	max-width: fit-content;
	display: flex;
	align-items: center;
	margin-bottom: 42px;
	line-height: 1;
}

#dm .section-01 .wrapper .flex-box .inner-left .inner-wrapper{
	max-width: 488px;
}

.merit{
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
	color: #fff;
	background: #d60032;
	width: 113px;
	height: 30px;
	margin-right: 16px;
	position: relative;
}

.merit::before{
	content: '';
	background: url("../images/dm-section-01-deco.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 24.7603px;
	aspect-ratio: 24.7603 / 16.2101;
	position: absolute;
	top: -25px;
	left: -20px;
}

.h-main{
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
	color: #333;
	background: #fff;
	padding: 8px 15px;
	font-size: 30px;
	font-weight: bold;
}

.red{
	color: #d60032;
}

.terms{
	margin-bottom: 20px;
	margin-top: -10px;
}

#dm .section-01 .wrapper .flex-box .inner-right{
	width: 50%;
}




#dm .section-02{
	padding: 20px 34px 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#dm .section-02 .section-inner{
	width: 100%;
	max-width: 1450px;
}

.h-wrapper{
	width: 100%;
	border: solid 1px #e2e2e2;
	border-bottom: none;
	display: flex;
	justify-content: center;
	min-height: 58.5px;
	margin-bottom: 26px;
}

.h-wrapper h3{
	color: #3949ae;
	line-height: 1;
	width: 300px;
	display: flex;
	justify-content: center;
	background: #fff;
	font-size: 40px;
	margin-top: -20px;
}

#dm .section-02 h4{
	color: #fff;
	line-height: 1;
	width: 300px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #3949ae;
	font-size: 30px;
	position: relative;
	padding: 0 22px;
	min-height: 52px;
}
#dm .section-02 h4::after{
  content: '';
  position: absolute;
  top: 0;
  left: 100%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 52px 0 0 31px;
  border-color: transparent transparent transparent #3949ae;
}

.inner-section{
	margin-bottom: 100px;
}

#dm .section-02 ul{
	background: #f4f6fa;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 100px 34px;
	list-style: none;
	gap: 20px;
}

#dm .section-02 ul li{
	background: #fff;
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 1145px;
	min-height: 45px;
	padding: 12px 30px;
	font-size: 18px;
}

#dm .section-02 ul li h5{
	font-size: 18px;
	border-right: solid 2px #3949ae;
	min-width: calc(306px - 12px);
	padding-right: 12px;
}

#dm .section-02 ul li p{
	padding-left: 35px;
}



/* 物流中継事業 -------------------------------------------------- */

#logistics .child-header::before{
	background-image: url("../images/child-header-logistics.png");
}


#logistics .c-header-title {
    width: 193.6062px;
    aspect-ratio: 193.6062 / 19.3111;
    position: relative;
}

#logistics .section-01{
	padding: 150px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#logistics .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
}
#logistics .section-01 .section-inner .flex-box{
	width: 100%;
	background: #f9f8f7;
	display: flex;
	position: relative;
}
#logistics .section-01 .section-inner .flex-box::before{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	top: 76px;
	left: 40px;
}
#logistics .section-01 .section-inner .flex-box::after{
	content: '';
	display: block;
	background-image: url("../images/office-section-01-deco-02.svg");
	background-size: contain;
	background-repeat: no-repeat;
	width: 19px;
	aspect-ratio: 19 / 136;
	position: absolute;
	bottom: 76px;
	left: 40px;
}

#logistics .section-01 .section-inner .inner-left{
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

#logistics .section-01 .section-inner .inner-right{
	max-width: 726px;
}

#logistics .section-01 .section-inner .inner-left .inner-wrapper{
	width: 100%;
	max-width: 508px;
}

#logistics .section-01 h3{
	font-size: 40px;
	margin-bottom: 50px;
	line-height: 1.4;
	position: relative;
}
#logistics .section-01 h3::before{
	content: '';
    background: url(../images/office-section-01-deco.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 55.0229px;
    aspect-ratio: 55.0229 / 36.0225;
    position: absolute;
    top: -30px;
    left: -30px;
}

#logistics .photo-box{
	display: flex;
	list-style: none;
	margin-top: 60px;
	gap: 44px;
}
#logistics .photo-box li{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 34px;
}

#logistics .photo-box li h4{
	line-height: 1;
}



/* Q&A -------------------------------------------------- */

#faq .child-header::before{
	background-image: url("../images/child-header-faq.png");
}


#faq .c-header-title {
    width: 248.9929px;
    aspect-ratio: 248.9929 / 16.4209;
    position: relative;
}


#faq .selector{
	display: flex;
	justify-content: center;
	gap: 12px;
	margin: 143px auto 0;
	padding: 0 34px;
}
#faq .selector li{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 348px;
	height: 101px;
	background: #fff;
	border: solid 5px #edeceb;
	position: relative;
}
#faq .selector li a{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background: #fff;
	font-size: 18px;
	font-weight: bold;
	line-height: 1;
}


#faq .selector li::before {
  content: '';
  position: absolute;
  top: 100%;                   
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 21px 14px 0 14px;
  border-color: #edeceb transparent transparent transparent;
}

#faq .selector li::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 16px 9px 0 9px;
  border-color: #ffffff transparent transparent transparent;
  margin-top: -5px;
}



#faq .section-01,
#faq .section-02,
#faq .section-03{
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	margin-top: 100px;
	padding: 0 34px;
}
#faq .section-03{
	margin-bottom: 240px;
}


#faq .section-01 .section-inner,
#faq .section-02 .section-inner,
#faq .section-03 .section-inner{
	width: 100%;
	max-width: 1450px;
	background: #f9f8f7;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	padding: 40px 34px 100px;
}

#faq .section-inner h3 {
    width: 18.63vw;
    max-width: 357.6664px;
	min-width: 250px;
    aspect-ratio: 357.6664 / 88.3958;
    position: relative;
    z-index: 1;
}

/* リストの基本スタイルリセット */
.faq-list {
  list-style: none;
  padding: 0;
  margin: 15px 0 0;
  width: 100%;
  max-width: 1145px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.faq-item {
  background: #fff;
}

/* チェックボックス本体は隠す */
.faq-check {
  display: none;
}

/* ------------------------------------
   質問部分（ラベル）とアイコン設定
------------------------------------ */
.faq-question {
  display: block;
  position: relative;
  padding: 14px 140px 14px 40px; /* 右側にアイコン用の余白を確保 */
  font-size: 22px;
  font-weight: bold;
  cursor: pointer;
  user-select: none;
}

/* 右上のアイコン（デフォルト / 閉じた状態） */
.faq-question::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: background-image 0.2s ease;
}
#faq .section-01 .faq-question::after{
	background-image: url('../images/faq-icon-blue-open.svg'); 
}
#faq .section-02 .faq-question::after{
	background-image: url('../images/faq-icon-green-open.svg'); 
}
#faq .section-03 .faq-question::after{
	background-image: url('../images/faq-icon-yellow-open.svg'); 
}

/* ------------------------------------
   チェック（開いた状態）のアイコン差し替え
------------------------------------ */
#faq .section-01 .faq-check:checked + .faq-question::after {
  background-image: url("../images/faq-icon-blue-close.svg");
}
#faq .section-02 .faq-check:checked + .faq-question::after {
  background-image: url("../images/faq-icon-green-close.svg");
}
#faq .section-03 .faq-check:checked + .faq-question::after {
  background-image: url("../images/faq-icon-yellow-close.svg");
}

/* ------------------------------------
   回答部分のアニメーション設定
------------------------------------ */
/* CSS Gridを使って高さ0→autoの滑らかなアニメーションを実現 */
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease-out;
}

.faq-answer-inner {
  overflow: hidden; /* 中身があふれないように必須 */
  padding: 0 40px;
  color: #333;
  font-size: 18px;
  line-height: 1.75;
  transition: padding 0.3s ease-out;
}

/* チェックが入ったら高さを展開 */
.faq-check:checked ~ .faq-answer {
  grid-template-rows: 1fr;
}

.faq-check:checked ~ .faq-answer .faq-answer-inner {
  padding: 24px 40px 35px;
}



/* 会社案内 -------------------------------------------------- */

#company .child-header::before{
	background-image: url("../images/child-header-company.png");
}


#company .c-header-title {
    width: 89.0488px;
    aspect-ratio: 89.0488 / 17.5732;
    position: relative;
}

#company .section-01{
	padding: 150px 34px 100px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#company .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	position: relative;	
}

#company .section-inner .title{
	display: flex;
	flex-direction: column;
	align-items: center;
}

#company .section-inner .title h3{
	font-size: 40px;
	position: relative;
	line-height: 1;
	margin-bottom: 16px;
}

#company .section-inner .title h3::before{
	content: '';
	display: block;
	width: 50px;
	height: 1px;
	background: #333;
	position: absolute;
	left: -74px;
	top: 50%;
	transform: translateY(-50%);
}
#company .section-inner .title h3::after{
	content: '';
	display: block;
	width: 50px;
	height: 1px;
	background: #333;
	position: absolute;
	right: -74px;
	top: 50%;
	transform: translateY(-50%);
}


#company .section-inner .title .title-en{
	width: 80.3506px;
    aspect-ratio: 80.3506 / 17.3918;
    position: relative;
	padding-bottom: 50px;
}


#company .section-01 .outer-wrapper{
	background: url("../images/message-back.png");
	background-size: cover;
	padding: 22px;
	margin-top: 100px;
}


#company .section-01 .inner-left{
	width: 43.49vw;
	max-width: 835px;
    min-height: 768px;
	border-left: solid 5px #ff0f47;
	background: #fff;
	padding: 74px;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	z-index: 2;
	margin-right: -34px;
	flex-shrink: 0;
}
#company .section-01 h4{
	font-size: 26px;
	margin-bottom: 40px;
	line-height: 1.4;
}
#company .section-01 p{
	margin-bottom: 70px;
}
#company .section-01 p.name{
	margin-bottom: 0;
	line-height: 1;
	text-align: right;
	font-size: 20px;
}






#company .section-01 .inner-right{
	width: 724px;
	min-height: 768px;
	position: relative;
	z-index: 1;
	margin-top: -100px;
	margin-right: -97px;
	flex-shrink: 0;
}






#company .section-02{
	padding: 90px 34px;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #e6edfa;
}

#company .section-02 .section-inner{
	width: auto;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	position: relative;
	gap: 80px;
}

#company .section-02 .section-inner .inner-left{
	width: 250px;
}
#company .section-02 .section-inner .inner-left h3{
	font-size: 40px;
}
#company .section-02 .section-inner .inner-left h3 span{
	color: #4e5bae;
}

#company .section-02 .section-inner .inner-right{
	width: auto;
}

#company .section-02 .section-inner .inner-right p{
	font-size: 40px;
	font-weight: bold;
	line-height: 2.275;
}

#company .section-02 .section-inner .inner-right ul{
	list-style-type: '一　';
    margin-left: 3em;
}
#company .section-02 .section-inner .inner-right ul li{
	font-size: 30px;
	font-weight: bold;
	line-height: 2.033;
}





#company .section-03{
	padding: 180px 34px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#company .section-03 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	position: relative;
}


#company .section-03 .section-inner .title .title-en{
	width: 149.8096px;
    aspect-ratio: 149.8096 / 17.1431;
}


/* 会社概要テーブルの基本スタイル */
.company-table {
  border-collapse: collapse;
  width: 100%;
  border: solid 3px #c8c8c8;
}

.company-table .table-label {
	color: #fff;
  background-color: #4e5bae;
  border: 1px solid #c8c8c8;
  text-align: center;
  width: 215px;
  height: 80px;
	padding: 0 48px;
}


.company-table .table-data {
  background-color: #ffffff;
  border: 1px solid #dddddd;
  padding: 30px 48px;
}

/* 最初の行のセル幅・高さ固定用 */
/*.company-table .w-100 { width: 100px; }
.company-table .h-40 { height: 40px; }*/

/* 箇条書きやテキストの微調整 */
.company-table p {
  line-height: 1.8;
  margin: 0; /* デフォルトの余白をリセット */
}

/*.company-table .mb-10 {
  margin-bottom: 10px;
}*/

.company-table .business-block {
  display: inline-block;
  margin-bottom: 2em;
}

.company-table .table-data.last{
	padding: 42px 30px 50px
}

.company-table .table-data span{
	display: inline-block;
}






#company .section-04{
	padding: 180px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#company .section-04 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	position: relative;
}

#company .section-04 .section-inner .flex-box{
	margin-bottom: 100px;
}
#company .section-04 .section-inner .flex-box:last-of-type{
	margin-bottom: 0;
}

#company .section-04 .map-wrapper{
	width: 849px;
	height: 578px;
}

#company .section-04 .section-inner .title .title-en {
    width: 70.2705px;
    aspect-ratio: 149.8096 / 17.04;
}

#company .section-04 .inner-wrapper{
	margin-bottom: 26px;
}

#company .section-04 h4{
	font-size: 24px;
	margin-bottom: 20px;
	line-height: 1;
}

.business-hours{
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 12px;
}

.business-hours:nth-of-type(2){
	margin-bottom: 0;
}

.business-hours span{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 30px;
	line-height: 1;
	background: #4e5bae;
	color: #fff;
	font-size: 15px;
}

#company .section-04 .inner-wrapper p{
	line-height: 1;
	margin-bottom: 16px;
}
#company .section-04 .inner-wrapper p:nth-of-type(2) span{
	display: inline-block;
}

.map-wrapper{
	width: 849px;
	height: 100%;
}

#company .section-04 .flex-box{
	gap: 65px;
}

#company .section-04 .inner-right,
#company .section-04 .inner-left{
	width: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}


/* 採用情報 -------------------------------------------------- */

#recruit .child-header::before{
	background-image: url("../images/child-header-recruit.png");
}


#recruit .c-header-title {
    width: 75.8174px;
    aspect-ratio: 75.8174 / 19.0137;
    position: relative;
}

#recruit .section-01{
	padding: 250px 34px 180px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#recruit .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	display: flex;
	flex-direction: column;
	position: relative;	
}

#recruit .section-01 h3{
	width: 20.97vw;
	max-width: 402.5611px;
	aspect-ratio: 402.5611 / 158.8141;
	position: absolute;
	z-index: 2;
	top: -104px;
	left: -30px;
}

#recruit .section-01 .flex-box{
	gap: 60px;
}

#recruit .section-01 .inner-left{
	width: 29.52vw;
	max-width: 566.7797px;
	aspect-ratio: 566.7797 / 640;
	position: relative;
}
#recruit .section-01 .inner-left img{
	position: relative;
}
#recruit .section-01 .bold{
	font-size: 40px;
	margin-bottom: 40px;
	line-height: 1;
}
#recruit .section-01 p{
	line-height: 1.75;
	margin-bottom: 20px;
}
#recruit .section-01 .inner-right{
	width: 820px;
	position: relative;
}
#recruit .section-01 .inner-right::after{
	content: '';
	background-image: url("../images/recruit-massage.svg");
	background-repeat: no-repeat;
	background-size: contain;
   width: 34.43vw;
	max-width: 661.0762px;
	aspect-ratio: 661.0762 / 143.0879;
	position: absolute;
	right: 0;
	/*bottom: 70px;*/
	z-index: 0;
}

.blue{
	color: #0072cd;
}
.blue2{
	color: #0039a4;
}

#recruit .section-01 p.name{
	text-align: right;
	line-height: 1;
}

.inner-wrapper{
	position: relative;
	z-index: 2;
}


.day-off{
	width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	position: relative;
	padding: 100px 0 0;
}

.day-off h4{
	font-size: 40px;
	line-height: 1;
	margin-bottom: 10px;
}



.day-off .image-box{
	background: url("../images/recruit-section-01-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	/*width: 57.05vw;*/
	width: 1095.4073px;
	max-width: 1095.4073px;
	aspect-ratio: 1095.4073 / 763.8019;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
}

.day-off .image-box > img:nth-child(1){
	width: 300px;
	max-width: 300px;
	aspect-ratio: 300 / 179.1049;
	position: absolute;
	left: -230px;
	top: 0;
}

.day-off .image-box > img:nth-child(2){
	width: 910.2456px;
	max-width: 910.2456px;
	aspect-ratio: 910.2456 / 595.6154;
}

.day-off .image-box::before{
	content: '';
	background: url("../images/my-day-off.svg");
	background-repeat: no-repeat;
	background-size: contain;
	width: 107.0063px;
	aspect-ratio: 107.0063 / 572.6973;
	position: absolute;
	left: -180px;
	bottom: 0;
}

.day-off .image-box::after{
	content: '';
	background: url("../images/recruit-section-01-deco.svg");
	background-repeat: no-repeat;
	background-size: contain;
	width: 266.3387px;
	aspect-ratio: 266.3387 / 112.5086;
	position: absolute;
	right: -314px;
	bottom: 140px;
}


#recruit .section-02{
	padding: 0px 0 180px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#recruit .section-02 .section-inner{
	width: 100%;
	max-width: 1920px;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;	
}

#recruit .section-02 h3{
	width: 20.97vw;
	max-width: 402.5611px;
	min-width: 239.7806px;
	aspect-ratio: 402.5611 / 158.8141;
	position: relative;
	z-index: 1;
}
#recruit .section-02 .h-box{
	position: relative;
	margin-bottom: 26px;
}

#recruit .section-02 .h-box:after{
	content: '';
    background-image: url("../images/advantages.svg");
    background-repeat: no-repeat;
    background-size: contain;
    width: 692.6602px;
    aspect-ratio: 692.6602 / 110.4966;
    position: absolute;
    right: -640px;
	bottom: -52px;
    z-index: 0;
}



#recruit .section-02 ul{
	list-style: none;
	width: 100%;
}
#recruit .section-02 ul li{
	display: flex;
	    align-items: center;
	width: 100%;
	height: 100%;
}

#recruit .section-02 ul li .inner-right{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 670.5302px;
	height: 372.3696px;
	background: url("../images/recruit-section-02-back.png");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 0 80px;
}

#recruit .section-02 ul li .inner-right .inner-wrapper{
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 504px;
}




#recruit .section-02 ul li:nth-child(even){
	flex-direction: row-reverse;
	align-items: stretch;
}
#recruit .section-02 ul li:nth-child(even) .inner-right{
	background: #ebe6f2;
	width: 50%;
	height: auto;
}


#recruit .section-02 ul li h4{
	font-size: 40px;
	line-height: 1;
	position: relative;
	margin-bottom: 30px;
	padding-left: calc(46.5833px + 20px);
}

#recruit .section-02 ul li h4::before{
	content: '';
	display: inline-block;
    background-image: url("../images/icon-01.svg");
    background-repeat: no-repeat;
    background-size: contain;
    width: 46.5833px;
    aspect-ratio: 46.5833 / 50.0765;
    position: absolute;
	left: 0;
	top: -10px;
}

#recruit .section-02 ul li:nth-child(2) h4::before{
	background-image: url("../images/icon-02.svg");
}
#recruit .section-02 ul li:nth-child(3) h4::before{
	background-image: url("../images/icon-03.svg");
}
#recruit .section-02 ul li:nth-child(4) h4::before{
	background-image: url("../images/icon-04.svg");
}




#recruit .section-02 ul li .strong{
	font-size: 30px;
	line-height: 1;
	margin-bottom: 30px;
}



#recruit .section-03{
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#recruit .section-03 .section-inner{
	width: 100%;
	/*max-width: 1450px;*/
	max-width: 1920px;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;	
	padding-bottom: 180px;
    padding-left: 20px;
    padding-right: 30px;
}

#recruit .section-03 .section-inner::after{
	content: '';
    background-image: url(../images/recruit-section-03-deco.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 516.8855px;
    aspect-ratio: 516.8855 / 118.586;
    position: absolute;
    right: 70px;
	top: 115px;
    /*bottom: 142px;*/
    z-index: 0;
}


#recruit .section-03 .title{
	display: flex;
	align-items: center;
	padding-bottom: 120px;
	gap: 77px;
	position: relative;
}
#recruit .section-03 .title::after{
	content: '';
    background-image: url(../images/voice.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 342.1626px;
    aspect-ratio: 342.1626 / 110.4966;
    position: absolute;
    left: -76px;
    bottom: 24px;
    z-index: 0;
}

#recruit .section-03 h3{
	width: 20.97vw;
	max-width: 402.5611px;
	aspect-ratio: 402.5611 / 158.8141;
	position: relative;
	z-index: 1;
}

#recruit .section-03 ul{
	display: flex;
	justify-content: center;
	width: 102%;
	margin-top: 58px;
    flex-wrap: wrap;
    gap: 25px;
}
#recruit .section-03 ul li{
	display: flex;
	flex-direction: column;
	/*width: 100%;*/
}

#recruit .section-03 ul li a{
	display: flex;
	flex-direction: column;
	width: 100%;
}

#recruit .section-03 ul li img{
	width: 100%;
	max-width: 593px;
	margin-bottom: 20px;
}




#recruit .section-03 ul li:nth-child(1) a{
	max-width: 612px;
	aspect-ratio: 612 / 594;
	background: url("../images/recruit-section-03-02-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 31px 24px 36px 55px;
	margin-top: 57px;
}

#recruit .section-03 ul li:nth-child(1) .inner-wrapper{
	padding-left: 43px;
}

#recruit .section-03 ul li:nth-child(2) a{
	max-width: 591px;
	aspect-ratio: 591 / 609;
	background: url("../images/recruit-section-03-03-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 24px 31px 58px 27px;
}

#recruit .section-03 ul li:nth-child(2)  .inner-wrapper{
	padding-left: 20px;
}


#recruit .section-03 ul li:nth-child(3)  a{
	max-width: 616px;
	aspect-ratio: 616 / 574;
	background: url("../images/recruit-section-03-04-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 30px 30px 20px 51px;
	margin-top: 58px;
}

#recruit .section-03 ul li:nth-child(3)  .inner-wrapper{
	padding-left: 56px;
}
/*#recruit .section-03 ul:nth-of-type(1) li:nth-child(1) a{
	max-width: 684px;
	aspect-ratio: 684 / 638;
	background: url("../images/recruit-section-03-01-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	margin-top: 82px;
	padding: 33px 35px 24px 56px;
	
}

#recruit .section-03 ul:nth-of-type(1) li:nth-child(1) .inner-wrapper{
	padding-left: 57px;
}

#recruit .section-03 ul:nth-of-type(1) li:nth-child(2) a{
	max-width: 680px;
	aspect-ratio: 680 / 660;
	background: url("../images/recruit-section-03-02-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 33px 35px 24px 56px;
}

#recruit .section-03 ul:nth-of-type(1) li:nth-child(2) .inner-wrapper{
	padding-left: 50px;
}

#recruit .section-03 ul:nth-of-type(2) li:nth-child(1) a{
	max-width: 657px;
	aspect-ratio: 657 / 676;
	background: url("../images/recruit-section-03-03-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 27px 33px 65px 28px;
	margin-top: 52px;
}

#recruit .section-03 ul:nth-of-type(2) li:nth-child(1) .inner-wrapper{
	padding-left: 22px;
}


#recruit .section-03 ul:nth-of-type(2) li:nth-child(2) a{
	max-width: 684px;
	aspect-ratio: 684 / 638;
	background: url("../images/recruit-section-03-04-back.svg");
	background-size: contain;
	background-repeat: no-repeat;
	padding: 33px 35px 24px 57px;
}

#recruit .section-03 ul:nth-of-type(2) li:nth-child(2) .inner-wrapper{
	padding-left: 64px;
}*/


#recruit .section-03 ul li p{
	font-size: 21px;
	font-weight: bold;
	line-height: 1;
}
#recruit .section-03 ul li p span{
	display: flex;
	width: fit-content;
    align-items: center;
	background: #00ba91;
	color: #fff;
	height: 30px;
	margin-bottom: 4px;
	line-height: 1;
	padding: 0 8px;
}
#recruit .section-03 ul li p span:last-of-type{
	margin-bottom: 12px;
}

#recruit .section-03 ul li p.name{
	font-size: 16px;
}


#recruit .section-04{
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#recruit .section-04 .section-inner{
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;	
	background-image:url("../images/recruit-section-04-back.png");
	background-size: contain;
    background-repeat: repeat;
    background-position: top center;
}
#recruit .section-04 .section-inner .inner-wrapper{
	width: 100%;
	max-width: 1374px;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;	
	padding-bottom: 100px;
    padding-top: 100px;
}

#recruit .section-04 .title{
	width: 100%;
	display: flex;
	align-items: center;
	padding-left: 53px;
	padding-bottom: 120px;
	gap: 77px;
	position: relative;
}
#recruit .section-04 .title::after{
	content: '';
    background-image: url("../images/job-description.svg");
    background-repeat: no-repeat;
    background-size: contain;
    width: 899.7261px;
    aspect-ratio: 899.7261 / 108.8711;
    position: absolute;
    right: 0;
    z-index: 0;
}


#recruit .section-04 h3{
	width: 20.97vw;
	max-width: 402.5611px;
	aspect-ratio: 402.5611 / 158.8141;
	position: relative;
	z-index: 1;
}

#recruit .section-04 .flex-box{
	background: #fff;
}

#recruit .section-04 .flex-box .inner-left{
	width: 650px;
	position: relative;
	display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
#recruit .section-04 .flex-box .inner-right{
	width: 725px;
}

#recruit .section-04 .flex-box .inner-left::before{
	content: '';
	display: block;
	width: 67px;
	aspect-ratio: 1 / 1;
	border-top: solid 7px #f1dd53;
	border-left: solid 7px #f1dd53;
	position: absolute;
	top: 0;
	left: 0;
}


#recruit .section-04 .flex-box .inner-left .type{
	display: inline-flex;
    justify-content: center;
	align-items: center;
    width: 102px;
    height: 41px;
    border: solid 1px #333;
	margin-right: 28px;
}
#recruit .section-04 .flex-box .inner-left .job{
	font-size: 30px;
	vertical-align: middle;
}
#recruit .section-04 .flex-box .inner-left p{
	    margin-top: 20px;
}


#recruit .section-04 .last-box{
	background: #fff;
	width: 100%;
	/*height: 536px;*/
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
    padding-top: 180px;
    padding-bottom: 250px;
}

#recruit .section-04 .last-box p{
	text-align: center;
	font-size:30px;
	line-height: 1.333;
	position: relative;
}

#recruit .section-04 .last-box p::before{
	content: '';
	display: block;
	width: 42px;
	height: 5px;
	background: #f1dd53;
	position: absolute;
	top: -20px;
	left: 50%;
	transform: translateX(-50%);
}



/* 先輩社員の声 -------------------------------------------------- */


.voice .section-01{
	padding: 180px 0 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.voice .section-01 .section-inner{
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;	
}


.voice .flex-box{
	width: 100%;
	gap: 4.9vw;
}

.voice .flex-box .inner-left,
.voice .flex-box .inner-right{
	width: calc(100% - 4.9vw / 2);
}


.voice .flex-box:nth-child(even){
	flex-direction: row-reverse;
	margin-top: 180px;
}
.voice .flex-box:nth-child(even) .inner-right{
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.voice .flex-box .inner-right .inner-wrapper{
	display: flex;
	flex-direction: column;
	max-width: 634px;
	gap: 50px;
}
.voice .flex-box .inner-right .inner-wrapper ul{
	display: flex;
	flex-direction: column;
	gap: 50px;
	list-style: none;
}

.voice .flex-box h3{
	line-height: 1;
	font-size: 24px;
}

.voice .flex-box h4{
	color: #4e5bae;
	line-height: 1;
	font-size: 30px;
	position: relative;
	margin-bottom: 20px;
	padding-left: 37px;
}
.voice .flex-box h4::before{
	content: '';
	display: block;
	width: 21px;
	height: 4px;
	background: #e2e2e2;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.voice .flex-box h4 span{
	display: inline-block;
}


.voice .section-01 .button{
	margin-top: 180px;
}

.certification{
	display: flex;
	line-height: 1.611;
	margin-top: 20px;
}




/* お問い合わせ -------------------------------------------------- */

#contact .child-header::before{
	background-image: url("../images/child-header-contact.png");
}


#contact .c-header-title {
    width: 85.1572px;
    aspect-ratio: 85.1572 / 19.5659;
    position: relative;
}


#contact .section-01{
	padding: 150px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#contact .section-01 .section-inner{
	width: 100%;
	max-width: 1020px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#contact .section-01 .section-inner > p{
	text-align: center;
	margin-bottom: 30px;
}

#contact .section-01 .section-inner > p:nth-of-type(2){
	display: flex;
	align-items: center;
}

#contact .section-01 .section-inner > p .required{
    display: inline-flex;
	margin-right: 8px;
}



/*#contact .section-inner{
	max-width: 1488px;
	margin: 150px auto;
	padding: 0 34px;
	display: flex;
	flex-direction: column;
	align-items: center;
}*/

#contact #f-contact .section-inner{
	max-width: unset;
	padding: 0 24px;
}



#contact .form-wrap {
	width: 100%;
  max-width: 1020px;
  margin: 0 auto;
	padding-top: 40px;
	border-top: solid 1px #ccc;
}

#contact .form-group {
  display: flex;
  align-items: flex-start;
  margin-bottom: 32px;
}

#contact .label-name {
  width: 258px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
	display: flex;
	justify-content: space-between;
	padding-right: 35px;
}

.confirmation-box,
#contact input[type="text"],
#contact input[type="email"],
#contact textarea {
  width: calc(100% - 258px);
  padding: 8px 14px;
  border: 1px solid #ccc;
  font-size: 16px;
  box-sizing: border-box;
}

.required {
  background: #4e5bae;
  color: #fff;
  font-size: 15px;
  border-radius: 13px;
	    display: flex;
    width: 53px;
    height: 26px;
    text-align: center;
    justify-content: center;
    align-items: center;
	font-weight: normal;
	letter-spacing: 0.5em;
    padding-left: 0.5em;
}


.checkbox-wrapper{
	display: flex;
    flex-wrap: wrap;
    max-width: 456px;
    gap: 0px 20px;
}

.checkbox-wrapper label{
	width: 204px;
    display: flex;
    align-items: center;
}


.text-area textarea {
  min-height: 200px;
}



input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border: 1px solid #1a1a1a;
  background-color: #fff;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
  transition: background-color 0.2s;
  flex-shrink: 0;
  margin-right: 10px;
}

input[type="checkbox"]:checked {
  background-color: #206cb8;
  border-color: #206cb8;
}


input[type="checkbox"]::after {
  content: "";
  position: absolute;
  left: 3px;
  top: -2px;
  width: 7px;
  height: 12px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}


input[type="checkbox"]:checked::after {
  opacity: 1;
}

/* ----------------------------
   電話番号 3分割
-----------------------------*/
.tel-group .tel-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
  width: calc(100% - 258px);
}

.tel-group input {
  width: 75px!important;
}




/* ----------------------------
   送信確認
-----------------------------*/
.policy .policy-notice {
  width: 258px;
    display: flex;
    justify-content: flex-end;
	padding-right: 35px;
}

.policy-check{
	display: flex;
    flex-direction: column;
}

.policy-check label{
  display: flex;
}






.button_area{
	margin-top: 50px;
    display: flex;
    justify-content: center;
	gap: 40px;
}


.button_area .button{
	width: 236px;
    height: 77px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background: #4e5bae;
	border-radius: 0;
    color: #fff;
	border: none;
	font-size: 18px;
	 cursor: pointer;
	padding-left: 0;
}
.button_area .button::after{
	display: none;
}

@media (max-width: 768px) {
  #contact-01 .form-group {
    display: block;
  }

  #contact-01 .label-name {
    justify-content: flex-start;
    padding-right: 0;
    gap: 1em;
    margin-bottom: 0.5em;
  }
	
  #contact-01 input[type="text"], 
	#contact-01 input[type="email"], 
	#contact-01 textarea{
		width: 100%;
	}


	
	.policy .policy-notice{
		width: 100%;
    display: flex;
    justify-content: center;
    padding-right: 0;
	}
	.policy-check {
    display: flex;
    flex-direction: column;
}
	
	.button_area{
      flex-direction: column;
      align-items: center;
	}

	
	
}



/*.confirmation-box{
	width: calc(100% - 258px);
    padding: 10px 14px;
    border: 1px solid #ccc;
    font-size: 16px;
    box-sizing: border-box;
}


.confirm .button_area{
	display: flex;
	justify-content: center;
    gap: 40px;
}
*/


.thanks h3{
	font-size: 30px;
	margin-bottom: 30px;
}

.thanks .section-inner p{
	margin-bottom: 1em;
	text-align: center;
}



.thanks .section-inner .button {
    width: 236px;
    height: 77px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background: #4e5bae;
    border-radius: 0;
    color: #fff;
    border: none;
    font-size: 18px;
    cursor: pointer;
    padding-left: 0;
	margin-top: 60px;
}
.thanks .section-inner .button::after{
	display: none;
}




/* 個人情報保護方針 -------------------------------------------------- */

#privacy .child-header::before{
	background-image: url("../images/child-header-privacy.png");
}


#privacy .c-header-title {
    width: 193.6062px;
    aspect-ratio: 193.6062 / 19.3111;
    position: relative;
}

#privacy .section-01{
	padding: 150px 34px 250px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#privacy .section-01 .section-inner{
	width: 100%;
	max-width: 1450px;
	position: relative;
	display: flex;
	flex-direction: column;
}


#privacy .section-01 .child-box{
    margin-bottom: 24px;
}



#privacy .section-01 h3{
	color: #4e5bae;
	font-size: 23px;
	margin-bottom: 1em;
	line-height: 1;
}
#privacy .section-01 h4{
	color: #4e5bae;
	font-size: 18px;
	margin-bottom: 1em;
	line-height: 1;
}
#privacy .section-01 .child-box p{
	margin-bottom: 36px;
}



#privacy .section-01 .child-box ul,
#privacy .section-01 .child-box ol{
	margin-left: 1.5em;
	margin-bottom: 36px;
}


/* 表全体を囲むコンテナ（レスポンシブの肝） */
.table-container {
  width: 100%;
  overflow-x: auto; /* 横幅が溢れたらスクロールさせる */
  -webkit-overflow-scrolling: touch; /* iOSでのスクロールを滑らかにする */
  margin-bottom: 60px;
}

/* テーブルの基本スタイル */
.custom-table {
  width: 1450px;
  border-collapse: collapse;
}

/* 枠線とパディング */
.custom-table th,
.custom-table td {
  border: 1px solid #333;
  padding: 12px 15px;
  text-align: left;
}

/* ヘッダーのスタイル */
.custom-table th {
  font-weight: normal;
  text-align: center;
  background-color: #ffffff; /* 画像に合わせて白、お好みで薄いグレー等に変更可 */
}

/* 一番左の列（A, B）のスタイル調整 */
.custom-table td.col-id {
  text-align: center;
  width: 140px; /* 横幅を固定 */
  font-weight: normal;
	height: 120px;
}

/* ★一番右の列（使用目的）のスタイルを追加 */
.custom-table .col-purpose {
  width: 654px; /* 任意の横幅（例: 250px）に固定 */
}






.pdf-link-wrapper{
	display: flex;
	gap: 50px;
	width: 100%;
	max-width: 1026px;
	margin: 0 auto 80px;
}
.pdf-link-wrapper > div{
	background: #eee;
	width: calc(100% - 50px / 2);
	height: 273px;
	display: flex;
	flex-direction: column;
	align-items: center;	
}
.pdf-link-wrapper a{
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 40px;
	text-align: center;
}
.pdf-link-wrapper a span{
	display: inline-block;
}

.pdf-link-wrapper a img{
	width: 89.1685px;
	aspect-ratio: 89.1685 / 128;
}
#privacy .section-01 .child-box .pdf-link-wrapper p{
	width: fit-content;
	line-height: 1;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: solid 1px #c8c8c8;
}








/* レスポンシブ---------------------------------- */




@media (min-width: 1921px) {
	.first-wrapper{
    display: flex;
    flex-direction: column;
    align-items: center;
	}
	#top-news .content-wrapper{
      min-width: 1450px;
	}
	#top .section-01 .flex-box .deco{
		bottom: -130px;
		right: -130px;
	}
	#top .section-02 .section-inner{
clip-path: polygon(
      0 0,                               
      calc(50% - 960px + 647px) 0,  
      calc(50% - 960px + 647px) 102px, 
      100% 102px,
      100% 100%,
      0 100% 
    );
}
	
	#top .section-05{
		align-items: center;
	}
	
	
}


@media (max-width: 1919px) {
	#top .section-04 .flex-box::before{
        width: 5.044vw;
	}
	#top .section-04 .flex-box img{
		width: 87.5vw;
	}
	#recruit .section-03 ul{
		width: 100%;
	}
	
	#recruit .section-03 ul li:nth-child(3) a,
	#recruit .section-03 ul li:nth-child(1) a{
		margin-top: 0;
	}
	
	#recruit .section-03 ul{
		    gap: 50px;
	}
}


@media (max-width: 1840px) {
	.hero{
		margin-bottom: 0;
		padding-top: 140px;
		height: 1245px;
	}
	.hero-inner{
      flex-direction: column;
      align-items: center;
    justify-content: center;
      width: fit-content;
	}
	.hero-inner .inner-right{
		margin-top: 100px;
		margin-left: 60px;
	}
}


@media (max-width: 1740px) {
	#top .section-05 ul li{
		width: 100%;
	}
	#top .section-05 ul li br{
		display: none;
	}
	#top .section-05 .section-inner{
		gap: 60px;
	}
	#top .section-05 .section-inner .inner-left .deco-01{
		width: 164.16px;
	}
	#top .section-05 .section-inner .inner-left .deco-02{
		width: 169.92px;
	}
}


@media (max-width: 1680px) {
	#top .section-01 .section-inner,
	#top .section-02 .section-inner{
		padding-left: 24px;
		padding-right: 24px;
	}
	
	#top .section-04 .info-box{
        flex-direction: column;
		margin: 112px 25px 0;
		max-width: 973px;
	}
	#top .section-04 .info-box p{
		max-width: unset;
        margin: 0 0 60px 0;
	}
	.section-contact .section-inner .flex-box{
		flex-direction: column;
	}
	.contact-box{
		    margin-top: 40px;
	}
	
	#top .section-04 .info-box .deco-01 {
    /*left: -366px;*/
		display: none;
}
	#top .section-04 .info-box .deco-02 {
    /*left: -287px;*/
		display: none;
}
	#top .section-04 .info-box .deco-03 {
    /*left: -162px;*/
		display: none;
}
	
	#top .section-04 .deco-box-sp{
		display: block;
		position: absolute;
		bottom: 64px;
		left: 50%;
		transform: translateX(-50%);
		width: 318.24px;
	}
	
	#top .section-04 .deco-box-sp .deco-box-inner{
		width: 100%;
		height: 165.6px;
		position: relative;
	}
	
	    #top .section-04 .deco-box-sp .deco-01{
		display: block;
		position: absolute;
        top: 18px;
		right: unset;
        left: 0;
        width: 169.68px;
        height: auto;
        aspect-ratio: 210 / 171;
	}
	    #top .section-04 .deco-box-sp .deco-02{
		display: block;
		position: absolute;
        top: 0;
        left: 158px;
        right: unset;
        width: 88.32px;
        height: auto;
        aspect-ratio: 115 / 135;
	}
	    #top .section-04 .deco-box-sp .deco-03{
		display: block;
		position: absolute;
        top: 63px;
        left: unset;
        right: 0;
         width: 96px;
        height: auto;
        aspect-ratio: 126 / 137;
	}
	
	.child-header::before{
        right: unset;
        left: 50%;
	}

	
	.day-off .image-box{
        width: 57.05vw;
		min-width: 366px;
	}
	.day-off .image-box > img:nth-child(2) {
    width: 47.41vw;
    min-width: 304px;
}
	
	.day-off .image-box::before{
		    top: 12vw;
		left: -9.38vw;
	}
	
	.day-off .image-box > img:nth-child(1){
		width: 15.63vw;
		min-width: 216.0091px;
		left: -11.98vw;
	}
	#recruit .section-02 .h-box{
		margin-bottom: 80px;
	}
	
	.header-nav ul{
		gap: 16px 40px;
	}
	
}

@media (max-width: 1530px) {
	/*.hero-inner{
      flex-direction: column;
      align-items: flex-start;
    justify-content: center;
	}
	.hero-inner .inner-right{
		margin-top: 100px;
		margin-left: 60px;
	}*/
	
	#top .section-01 .flex-box .inner-right{
		padding-left: 0;
	}
	/*#top .section-01 h2{
		align-self: flex-start;
	}*/
	
	#top .section-01 .inner-right .inner-box-02{
		width: 100%;
		padding-right: 20px;
	}
	
	#top .section-01 .inner-right .inner-box-01{
		flex-direction: column;
	}
	#top .section-01 .inner-right .inner-box-03{
		width: auto;
	}
	#top .section-01 .inner-right .inner-box-03 img{
		display: none;
	}
	#top .section-02 .section-inner{
		padding: 140px 34px;
	}

	#top .section-02 ul{
		flex-wrap: wrap;
	}
	
	
	
	
	
	#top .section-02 .service-list > li::after{
		right: 20px;
		width: 52.5px;
	}
	#top .section-02 .service-list li > a .inner-box{
		padding: 65px 120px 65px 78px;
	}
	
	
	#top .section-05 .section-inner{
        flex-direction: column;
	}
	
	#top .section-05 .section-inner{
		align-items: center;
	}
	#top .section-05 .section-inner .inner-right{
		display: none;
	}
	
	
	#top .section-03 .card{
		padding: 32px;
	}
	
	#election .section-01 .section-inner,
	#office .section-01 .section-inner{
		flex-direction: column;
		padding: 100px 34px 50px 100px;
		align-items: center;
        gap: 80px;
	}
	#election .section-01 .section-inner .inner-right,
	#election .section-01 .section-inner .inner-left,
	#office .section-01 .section-inner .inner-right,
	#office .section-01 .section-inner .inner-left{
		width: 100%;
		max-width: unset;
	}
	
	#election .section-01 .section-inner .inner-left .inner-wrapper,
	#office .section-01 .section-inner .inner-left .inner-wrapper{
		max-width: unset;
	}
	
	#office .section-02 ul li{
		width: calc((100% - 60px) / 3);
	}
	#office .section-03 ul li{
		width: calc((100% - 80px) / 4);
	}
	
	#office .section-04 .section-inner{
		flex-direction: column;
	}
	#office .section-04 .section-inner .inner-left,
	#office .section-04 .section-inner .inner-right{
		max-width: unset;
		width: 100%;
	}
	#office .section-04 .section-inner {
        flex-direction: column;
        padding: 200px 68px 50px;
        align-items: center;
        gap: 80px;
    }
	#office .section-04 .section-inner .inner-left .inner-wrapper{
		    width: 100%;
          max-width: unset;
	}
	#recruit .section-01 .inner-left{
		position: static;
	}
	#recruit .section-01 .flex-box{
		position: relative;
	}
	#recruit .section-01 h3{
		z-index: 2;
    top: -11.76vw;
    left: 50%;
    transform: translateX(-50%);
		min-width: 240px;
	}
	
	#recruit .section-03 ul{
		flex-direction: column;
		align-items: center;
		gap: 40px;
	}
	#recruit .section-03 ul li{
		align-items: center;
	}
	
	
	#recruit .section-03 ul:nth-of-type(1) {
		margin-bottom: 40px;
	}
	
	#recruit .section-03 ul:nth-of-type(2) li:nth-child(1),
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(1){
		margin: 0;
	}
	#recruit .section-03 .title{
		flex-direction: column;
		gap: 120px;
		padding-bottom: 0;
		margin-bottom: 30px;
        padding-right: 36px;
        padding-left: 36px;
	}
	#recruit .section-03 .title::after{
		left: 50%;
    transform: translateX(-50%);
		width:  228.2012px;
		bottom: 60px;
	}
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(1) a{
		margin-top: 0;
	}
	#recruit .section-03 h3{
		min-width: 239.7806px;
	}
	
	#recruit .section-03 .title p span{
		display: inline-block;
	}
	
	#recruit .section-03 .section-inner::after{
		display: none;
	}
	
	#recruit .section-04 .flex-box {
    flex-direction: column-reverse;
}
	#recruit .section-04 .flex-box .inner-left{
		width: 100%;
		padding: 40px;
	}
	#recruit .section-04 .title{
        flex-direction: column;
		padding-left: 0;
		padding-bottom: 80px;
	}
	#recruit .section-04 h3{
		min-width: 239.7806px;
	}
	#recruit .section-04 .title::after{
        right: unset;
        left: 50%;
		bottom: 25px;
        transform: translateX(-50%);
		    width: 363.0918px;
	}
	
	
	#logistics .section-01 .section-inner .flex-box{
        flex-direction: column;
        padding: 100px 34px 50px 100px;
        align-items: center;
        gap: 80px;
    }
	#logistics .section-01 .section-inner .flex-box .inner-right,
	#logistics .section-01 .section-inner .flex-box .inner-left{
		width: 100%;
		max-width: unset;
	}
	#logistics .section-01 .section-inner .inner-left .inner-wrapper{
        max-width: unset;
	}
	
	.header-nav ul li.nav-contact a{
		font-size: 18px;
	}
	.header-nav li::after{
		display: none;
	}
	
	#election .section-02 ul{
		align-items: center;
	}
	
	#election .section-02 ul li{
      flex-direction: column;
		max-width: 1000px;
	}
	#election .section-02 .h-wrapper{
		max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
	}
	
	
	
	
	
	
	
}




@media (max-width: 1480px) {
	
	#company .section-01 .flex-box{
		flex-direction: column;
		align-items: center;
	}
	#company .section-01 .inner-right{
        margin-top: 60px;
        margin-left: 0;
		max-width: 100%;
		min-height: unset;
        width: auto;
        margin-right: 0;
	}
	#company .section-01 .inner-left {
    width: 100%;
    max-width: unset;
		min-height: unset;
		margin-right: 0;
	}
	#company .section-01 .outer-wrapper{
		margin-top: 0;
	}
	
	#recruit .section-02 ul li,
	#recruit .section-02 ul li:nth-child(even){
		flex-direction: column;
		align-items: center;
	}
	#recruit .section-02 ul li .inner-right,
	#recruit .section-02 ul li:nth-child(even) .inner-right{
		background: none;
		width: 100%;
		padding: 56px 16px 30px;
		max-width: 960px;
	}
	#recruit .section-02 ul li .inner-right .inner-wrapper{
		max-width: unset;
	}
	#recruit .section-02 ul li .inner-left{
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	#recruit .section-02 .h-box {
        margin-bottom: 180px;
    }
	
	#recruit .section-02 .h-box:after{
		right: unset;
        bottom: -130px;
        left: 50%;
        transform: translateX(-50%);
	}
	#recruit .section-02 {
		padding: 0px 15px 70px;
	}
	
	.voice .flex-box,
	.voice .flex-box:nth-child(even){
		flex-direction: column;
		align-items: center;
		column-gap: 40px;
	}
	.voice .flex-box .inner-left, .voice .flex-box .inner-right {
    width: 100%;
		max-width: 960px;
}
	voice .flex-box:nth-child(even){
		margin-top: 50px;
	}
	
	.voice .flex-box:nth-child(even) .inner-right{
		align-items: flex-start;
	}
	
	.voice .section-01 .button {
    margin-top: 100px;
}
	.voice .section-01 .section-inner{
		padding-left:34px;
		padding-right: 34px;
	}
	
	
	
}






@media (max-width: 1400px) {
	
	.header-nav ul li.nav-contact{
		margin-left: 0;
	}
	
	#top .section-01 .flex-box{
		flex-direction: column;
	}
	#top .section-01 .inner-flex{
		max-width: unset;
	}
	#top .section-02 .service-list > li a{
		flex-direction: column;
	}
	#top .section-04 .section-inner{
		padding-bottom: 0;
	}
	#top .section-03 .section-inner{
		padding: 0;
		min-height: 702px;
		    justify-content: flex-end;
	}
	

	
	#top .section-05{
		    padding: 100px 40px 100px 160px;
	}
	
	#top .section-03 .card{
		padding: 50px 40px 30px 25px;
		width: 89.06vw;
	}
	
	.footer-inner{
        display: flex;
        justify-content: space-between;
        flex-direction: column;
        gap: 28px;
	}
	
	
	#top .section-04 .info-box .deco-01,
	#top .section-04 .info-box .deco-02,
	#top .section-04 .info-box .deco-03{
		display: none;
	}
	
	#top .section-04 .info-box{
		margin-bottom: 250px;
	}
	
	#company .section-04 .inner-wrapper p{
		    line-height: 1.75;
	}
	#recruit .section-01 .flex-box{
		margin-bottom: 40px;
	}
	
	
	
	

}




@media (max-width: 1280px) {
.child-header::before{
        display: none;
	}
	.child-header {
        height: 380px;
	}

	.child-header-inner{
		padding-left: 10vw;
	}
	
	#company .section-04 .section-inner .flex-box{
        flex-direction: column;
	}
	#company .section-04 .map-wrapper{
		width: 100%;
	}
	#company .section-04 .inner-left{
		flex-direction: row;
	}
	#company .section-04 .inner-wrapper{
		margin-bottom: 0;
	}
	#company .section-04 .inner-wrapper .inner-right img{
        width: 40%;
	}
	
	#recruit .section-01 p .blue br{
		display: none;
	}
	#recruit .section-01 .inner-left{
		min-width: 366px;
	}
	
	
	
	
}








@media (max-width: 1180px) {
	#top-news .content-wrapper{
		flex-direction: column;
	}
	
	.pc-button{
	display: none;
}

.sp-button{
	display: flex;
}

#top-news .content-wrapper{
	gap: 0;
}
	
	#top .section-01 .flex-box > img:nth-of-type(1),
	#top .section-01 .flex-box > img:nth-of-type(2){
		display: none;
	}
	
	#top .section-01 .flex-box{
		border: none;
	}
	#top .section-01 .section-inner{
		padding-top: 0;
		padding-bottom: 30px;
	}
	#top .section-01 .inner-flex{
		margin-top: 190px;
        margin-bottom: 24px;
	}
	
	#top .section-02 .section-inner{
		clip-path: none;
	}
	
	#top .section-01 .flex-box .deco-a {
    /*top: 40px;
    left: 21.35vw;
    width: 118.56px;*/
		display: none;
}
	#top .section-01 .flex-box .deco-b {
    /*top: 70px;
    left: unset;
    right: 8.77vw;
    width: 129.36px;*/
		display: none;
}
	
	#top .section-01 .flex-box .deco{
		position: relative;
		width: 100%;
        margin: 0 auto;
		bottom: unset;
    right: unset;
	}
	#top .section-02 .section-inner{
		margin-top: 0;
	}
	#top .section-02 .section-inner{
		padding-top: 64px;
	}
	
	#top .section-03 .card{
		flex-direction: column;
		width: fit-content;
		max-width: 89.06vw;
		align-items: flex-start;
	}
	#top .section-03 .card a{
		padding: 0;
	}
	#top .section-03 .card a > p{
		margin-right: 0;
		margin-left: 0;
	}
	
	#top .section-03 .card a > img:nth-last-of-type(1){
		width: 33.75px;
		position: absolute;
		top: -66px;
		right: 60px;
	}
	
	
	#top .section-03 .title-box{
        padding-left: 32px;
	}
	#top .section-03 .card a > p {
        margin: 0;
    }
	#top .section-03 .card a > p br{
		display: none;
	}
	
	
	#top .section-03 .card{
		padding-bottom: 40px;
		gap: 36px;
	}
	
	#top .section-01 .section-inner .deco-box-sp{
		display: block;
		position: absolute;
		top: 40px;
		left: 51%;
		transform: translateX(-50%);
		width: 238.56px;
	}
	
	#top .section-01 .section-inner .deco-box-sp .deco-box-inner{
		width: 100%;
		height: 158.64px;
		position: relative;
	}
	
	
	
	#top .section-01 .section-inner .deco-box-sp .deco-a{
		display: block;
		position: absolute;
    top: 0;
    left: 0;
    width: 118.56px;
    height: auto;
    aspect-ratio: 157 / 164;
	}
	#top .section-01 .section-inner .deco-box-sp .deco-b{
		display: block;
		position: absolute;
        top: 30px;
		left: unset;
        right: 0;
       width: 116.64px;
      height: auto;
      aspect-ratio: 154 / 172;
	}
	
	#dm .section-01 h3{
		font-size: 30px;
		margin-left: -124px;
	}
	#dm .section-01 h3 .normal::before{
        width: 124px;
	}
	#dm .section-01 .wrapper .flex-box:nth-child(even),
	#dm .section-01 .wrapper .flex-box{
        flex-direction: column;
	}
	#dm .section-01 .wrapper{
		padding: 80px 34px;
		    display: flex;
    flex-direction: column;
    align-items: center;
		gap: 80px;
	}
	
	#dm .section-01 .wrapper .flex-box .inner-right,
	#dm .section-01 .wrapper .flex-box .inner-left{
		width: 100%;
	}
	#dm .section-01 .wrapper .flex-box .inner-right{
		max-width: 724px;
	}
	#dm .section-01 .wrapper .flex-box .inner-left .inner-wrapper {
    max-width: 724px;
		margin-bottom: 40px;
}
	
	#company .section-02 .section-inner .flex-box{
        flex-direction: column;
	}
	
	#recruit .section-02 .h-box {
        margin-bottom: 100px;
    }
	
	#recruit .section-02 .h-box:after{
		width: 335.0929px;
		bottom: -75px;
	}
	
	
	
	
	
	
}

@media (max-width: 1040px) {
	#office .section-03 ul li,
	#office .section-02 ul li{
		width: 100%;
	}
	
	#company .section-04 .inner-left {
        flex-direction: column;
    }
	
	#recruit .section-01 .flex-box{
		flex-direction: column;
        align-items: center;
		gap: 40px;
	}
	#recruit .section-01 .bold{
		text-align: center;
        margin-bottom: 30px;
	}
	#recruit .section-01 .inner-right::after{
		display: none;
	}
	#recruit .section-01 .flex-box::after {
    content: '';
    background-image: url(../images/recruit-massage.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 355px;
    aspect-ratio: 661.0762 / 143.0879;
    position: absolute;
    top: -90px;
	left: 50%;
    transform: translateX(-50%);
    z-index: 0;
}
	#recruit .section-01 h3{
		top: -207px;
	}
	#recruit .section-01{
		padding-top: 255px;
		padding-bottom: 0;
	}
	
	.day-off{
		padding: 86px 0;
	}
	
	.day-off h4{
		margin-bottom: 130px;
		font-size: 24px;
	}
	.day-off .image-box > img:nth-child(1) {
        left: 50%;
        transform: translateX(-50%);
        top: -115px;
    }
	.day-off .image-box::before,
	.day-off .image-box::after{
		display: none;
	}
	.day-off::before {
    content: '';
    background: url(../images/my-day-off-sp.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 331.3994px;
    aspect-ratio: 331.3994 / 61.9116;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    bottom: unset;
    right: unset;
}
	
	#recruit .section-01 p.name{
		margin-bottom: 0;
	}
	
	#logistics .photo-box{
        flex-direction: column;
		gap: 80px;
	}
	
	
	
	
}




@media (max-width: 960px) {
  .header-inner {
    padding: 0;
    margin: 0 18px;
  }
	.recruit-button-inner::after{
		right: -70px;
	}


  .footer-inner {
    flex-direction: column;
  }

  .footer-nav ul {
    justify-content: flex-start;
  }

	
	.hero-inner .inner-left{
		width: 100%;
		padding: 0;
	}
	
	.hero-tagline{
		margin-bottom: 40px;
	}
	

	
	
	#top .section-01 h2{
        width: auto;
	}
	
	#top .section-01 .flex-box .inner-right p{
		margin-bottom: 40px;
	}
	
	
	#top .section-03 .card{
		width: 100%;
	}
	
	#top .section-04 .title-image{
		width: 100%;
	}
	
	#top .section-04 .flex-box{
		margin-top: 0;
		/*flex-direction: column-reverse;*/
		flex-direction: column;
	}
	#top .section-04 .inner-right{
		width: 100%;
		flex-direction: column;
		align-items: flex-end;
		margin-bottom: 80px;
	}
	#top .section-04 .vertical-text{
		writing-mode: unset;
		            margin-top: 1em;
		        width: fit-content;
		line-height: 2;
		padding: 0 1em;
	}
	#top .section-04 .inner-left .inner-box {
    margin-left: 0;
}
	#top .section-04 .inner-left{
		width: 100%;
    justify-content: center;
	}
	.contact-box{
		flex-direction: column;
    align-items: center;
		gap: 60px;
		width: 100%;
	}
	.contact-title{
		text-align: center;
	}
	.contact-box .inner-left,
	.contact-box .inner-right{
		min-width: 320px;
	}
	
	
	.footer-right{
		width: 100%;
	}
	
	
	
	
	
	
	
	

	.hero{
		padding-left: 0;
	}
	
	
	#top .section-04 .flex-box span:nth-of-type(1),
	#top .section-04 .flex-box span:nth-of-type(2){
		    width: auto;
		font-size: 20px;
	}
	
	.hero-inner .inner-right{
        /*margin-left: 0;
        width: fit-content;*/
		        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: 100%;
		display: flex;
        justify-content: center;
	}
	
	.contact-box .inner-left, .contact-box .inner-right{
		width: 100%;
	}    
	.section-contact .title-box{
		margin-right: 0;
	}
	#top .section-03 .card a{
		flex-direction: column;
	}
	/*#top .section-03 .card a > p{
		margin: 40px 0;
	}*/
	#top .section-02 .service-list > li a img{
		margin-right: 0;
		margin-left: 0;
		align-self: center;
	}
	#top .section-04 .flex-box span:nth-of-type(1), 
	#top .section-04 .flex-box span:nth-of-type(2){
		font-size: 24px;
        height: auto;
        padding: 20px;
		line-height: 1;
	}
	#top .section-01 .flex-box{
		/*width: calc(100% - 48px);*/
	}
	#top .section-01 .inner-flex{
		margin: 190px 40px 25px;
	}
	#top .section-02 .section-inner{
		margin-top: 0;
		clip-path: none;
	}
	#top .section-04 .flex-box::before{
		top: 48px;
	}
	#top .section-04 .title-box{
		margin-top: 20px;
	}

	
	.hero-inner{
		align-items: center;
		width: 100%;
        padding: 0 20px;
	}
	
	#top .section-05{
		padding: 80px 34px;
	}
	
	
	#top .section-05 ul{
		display: none;
	}
	
	#top .section-05 .section-inner .inner-left .deco-01{
		/*top: unset;
        right: unset;
		left: 32.71vw;
		bottom: 194px;*/
		display: none;
	}
	#top .section-05 .section-inner .inner-left .deco-02{
		/*top: unset;
        right: unset;
		left: 37.81vw;
		bottom: 80px;*/
		display: none;
	}
	#top .section-05 .section-inner .inner-left .deco-03{
		/*width: 114.72px;
		bottom: -45px;
        left: 54.48vw;*/
		display: none;
	}
	#top .section-05 .section-inner .inner-left{
		padding-bottom: 342px;
        align-items: center;
        display: flex;
        flex-direction: column;
	}
	#top .section-05 .section-inner .inner-left .button{
		margin-top: 40px;
	}
	#top .section-05 .section-title,
	#top .section-05 .title-wrap{
		    padding-left: 32px;
	}
	
	
	#top .section-05 .section-inner .deco-box-sp{
		display: block;
		position: absolute;
		bottom: 0;
		left: 51%;
		transform: translateX(-50%);
		width: 325.92px;
	}
	
	#top .section-05 .section-inner .deco-box-sp .deco-box-inner{
		width: 100%;
		height: 269.76px;
		position: relative;
	}
	
	    #top .section-05 .section-inner .inner-left .deco-box-sp .deco-01{
		display: block;
		position: absolute;
        top: 10px;
		right: unset;
        left: 0;
        width: 164.16px;
        height: auto;
        aspect-ratio: 232 / 152;
	}
	    #top .section-05 .section-inner .inner-left .deco-box-sp .deco-02{
		display: block;
		position: absolute;
        top: 110px;
        left: 52px;
        right: unset;
        width: 169.92px;
        height: auto;
        aspect-ratio: 240 / 172;
	}
	    #top .section-05 .section-inner .inner-left .deco-box-sp .deco-03{
		display: block;
		position: absolute;
        top: 0;
        left: unset;
        right: 0;
         width: 114.72px;
        height: auto;
        aspect-ratio: 185 / 461;
	}
	
	
	#dm .section-02 ul li{
		    flex-direction: column;
		align-items: flex-start;
	}
	#dm .section-02 ul li h5{
		padding: 0;
		border-right: none;
        border-bottom: solid 2px #3949ae;
        width: 100%;
		margin-bottom: 1em;
	}
	#dm .section-02 ul li p {
    padding-left: 0;
}
	
	#dm .section-01{
		padding-top: 80px;
	}
	#dm .section-01 h3{
		font-size: 20px;
		        margin-left: 0;
	}
	#dm .section-01 .h-box{
		height: auto;
		padding: 20px 0;
	}
	#dm .section-01 h3 .normal::before {
       display: none;
    }
	#dm .section-01 .h-box::before {
    content: '';
    display: block;
     width: clamp(64px,12vw,124px);
    left: -10px;
    top: -30px;
    background: url(../images/cost.svg);
    background-size: contain;
    background-repeat: no-repeat;
    aspect-ratio: 1 / 1;
    margin-right: 26px;
    z-index: 2;
    position: absolute;
    }
	
	.company-table .table-label{
		width: 180px;
	}
	
	#company .section-02 .section-inner .inner-left h3 {
    font-size: 30px;
    }
	#company .section-02 .section-inner .inner-right p{
        font-size: 28px;
	}
	#company .section-02 .section-inner .inner-right ul li{
        font-size: 26px;
	}
	
	
	#recruit .section-01 .inner-right{
		width: 100%;
	}
	
	
	#recruit .section-04 .section-inner{
		background: none;
	}
	#recruit .section-04 {
    background-image: url(../images/recruit-section-04-back.png);
    background-size: cover;
		padding: 30px 34px 0;
}
	
	#recruit .section-04 .last-box p{
		line-height: 2.188;
}
	
	#recruit .section-04 .last-box p span{
	display: block;
}
	
	.pdf-link-wrapper{
      flex-wrap: wrap;
	}
	
	#recruit .section-04 .last-box{
		width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
	}
	
	
}

@media (max-width: 768px) {
	
	.child-header-inner .child-title{
		font-size: 24px;
	}
	.breadcrumb-item{
		font-size: 10px;
	}
	
	/*#company table td,
	#recruit table td{
		display: block;
    width: 100% !important;
	}
	#dm table td {
    width: 1em !important;
}*/
	.child-header-inner{
		padding-top: 0;
	}
	.contact-box .inner-left, 
	.contact-box .inner-right{
		min-width: unset;
	}
	.child-page .section-contact .section-inner, 
	.section-contact .section-inner{
        padding: 140px 24px;
	}

	.footer-inner{
		margin-top: 0;
	}
	.site-footer{
		padding-bottom: 36px;
		padding-left: 40px;
        padding-right: 40px;
	}

	
	#election h6{
		line-height: 1.5;
	}
	

	#election h6{
	margin-bottom: 0;
}
	.row-list li{
		margin-bottom: 0!important;
	}
	.ex-br{
	display: inline;
}
	#contact .form-group{
		flex-direction: column;
	}
	#contact .label-name{
		width: auto;
		padding-right: 0;
		margin-bottom: 1em;
	}
	.required{
		margin-left: 1em;
	}
	#contact input[type="text"], 
	#contact input[type="email"],
	#contact textarea{
		width: 100%;
	}
	
	.hero-tagline{
		line-height: 1.6;
        margin-bottom: 26px;
    }
	
	
	#top .section-02 .service-list li > a h3::after {
    content: '';
    display: inline-block;
    position: absolute;
    width: 34px;
    height: auto;
    aspect-ratio: 1 / 1;
    background: url(../images/icon-circle-cross-pink.svg);
    background-size: contain;
    top: calc(50% - 8px);
    background-repeat: no-repeat;
    right: 24px;
    transform: translateY(-50%);
}
	
	
	
	#top .section-02 .service-list > li::after{
		display: none;
	}


	.contact-button{
		margin: 0 auto;
		width: 100%;
	}
	#top .section-02 .service-list > li a img{
		width: 100%;
		margin-top: 0;
        margin-bottom: 34px;
	}
	#top .section-02 .service-list li > a .inner-box {
       /* padding: 65px 24px 65px 24px;*/
		padding: 0;
    }
	.site-header,
	.site-header.scrolled{
		height: 96px;
	}
	.site-header.scrolled .header-logo,
	.header-logo {
        width: 32vw;
		min-width: unset;
		max-width: 125px;
		aspect-ratio:unset;
    }
	
	
	.site-header.scrolled .header-logo a img:nth-child(2){
		display: none;
	}
	.site-header.scrolled .header-logo a img:nth-child(1){
		display: block;
	}
	
	
	.hero-inner .inner-left{
		padding: 0;
	}
	.recruit-button a{
      padding: 0 10vw;
	}
	.recruit-button-inner::after{
        top: -6px;
        right: 0;
        width: 40px;
	}
	.reccruit-button-head{
		font-size: 28px;
        padding-bottom: 10px;
		width: 100%;
	}
	.recruit-button a p {
    font-size: 14px;
}
	
	
	.hero-lead-p{
		font-size: 15px;
		line-height: 1.75;
	}
	.hero-lead-p span{
		display: inline-block;
	}
	
	#top .section-01 .flex-box > img:nth-of-type(1),
	#top .section-01 .flex-box > img:nth-of-type(2){
		width: 30vw;
	}
	#top .section-01 .flex-box::after{
		top: -40px;
    left: 20px;
		width: 20vw;
	}
	#top .section-01 h2 br{
		display: none;
	}
	/*#top .section-01 .section-inner{
		    padding: 0 0 180px;

	}*/
	#top .section-02 .service-list li > a h3{
		    font-size: 24px;
		padding: 0 24px;
	}
	.item-list li,
	.item-list li.font17,
	.item-list li.font16{
		font-size: 14px;
	}
	#top .section-02 ul{
		flex-direction: column;
	}
	#top .section-04 .section-inner{
		padding-top: 75px;
	}
	.section-contact .section-title{
		font-size: 24px;
	}
	.tel-button {
        font-size: clamp(7vw,31px);
    }
	
	.hero {
    /*padding: 180px 20px 40px;*/
	/*min-height: 100vh;
    height: auto;*/
    height: 1169px;
    padding: 318px 35px 40px;
  }
	.hero-inner{
		        align-items: center;
        justify-content: flex-start;
		padding: 0;
	}

  .hero-title {
    font-size: 30px;
  }

  .hero-lead {
    font-size: 24px;
  }
	
	.hero-inner .inner-right {
		margin-top: 190px;
	}
	
	#top-news  .title-box {
        padding-left: 25px;
    }
	
	.title-wrap{
        gap: 18px;
	}
	
	
	#top .section-02 .title-box{
		margin-bottom: 25px;
		padding-left: 42px;
	}
	#top .section-05 .section-title,
	#top .section-02 .section-title,
	#top .section-03 .section-title,
	#top .section-04 .title-box .section-title{
    font-size: 30px;
}
	#top .section-04 .title-wrap,
	#top .section-03 .title-wrap{
		margin-bottom: 20px;
	}
	#top .section-04 .flex-box::before {
        /*top: 0;*/
		display: none;
    }
	.section-title {
		margin-top: 16px;
	}
	
	
	
	
	

	
	body{
		font-size: 16px;
	}
	
	

	
	#top .section-01 .section-inner::before{
		left: 0;
	}
	
	#top .section-01 .flex-box .inner-left{
		padding-right: 0;
	}
	#top .section-02 ul li a p{
		font-size: 16px;
		padding-bottom: 0;
		margin-bottom: 0;
		text-align: left;
	}
	#top .section-02 ul li a p br{
		display: none;
	}
	#top .section-02 ul li{
		min-width: unset;
		aspect-ratio: unset;
	}
	#top .section-03 .card::before{
		top: -100px;
		right: 50%;
        transform: translateX(50%);
		aspect-ratio: 203 / 158;
        width: 70%;
        height: auto;
        background-size: contain;
        background-repeat: no-repeat;
	}
	#top .section-04 .inner-left{
		flex-direction: column;
	}
	#top .section-03 .section-text{
		font-size: 16px;
	}
	#top .section-04 .inner-left img{
		align-self: center;
		margin-bottom: 40px;
		        width: 50%;
	}
    .footer-left {
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
		gap: 28px;
    }
	.tel-and-fax{
		flex-direction: column;
        gap: 0;
        margin-top: 0;
	}
	.footer-nav ul{
		flex-direction: column;
	}
	.footer-nav ul li{
		width: fit-content;
		border-right: none;
		padding-right: 0;
		padding-left: 10px;
        border-left: solid 1px #fff;
	}
	.footer-company{
        width: 100%;
        height: auto;
		max-width: 300px;
		margin-top: 40px;
	}
	
	
	
	.footer-address, .footer-tel {
    font-size: 16px;
}
	.footer-copy{
		font-size: 12px;
        text-align: left;
	}
	


	.section-contact .section-inner{
		padding: 80px 20px;
	}
	
	.section-contact .section-text{
		text-align: left;
	}
	

	

	
	.child-header{
		height: 30vh;
		padding-top: 96px;
		min-height: 300px;
		max-height: 567px;
	}
	
	
	
	
	.recruit-button .deco-01{
		width: 127.2px;
		bottom: -190px;
		left: 67px;
	}
    .recruit-button .deco-02{
		width: 127.2px;
		top: unset;
        bottom: -190px;
        right: 83px;
	}
	    .hero {
        margin-bottom: 180px;
    }
	
	.recruit-button{
		width: 100%;
		max-width: 494px;
	}
	
	#top .section-02 .service-list > li{
		background: none;
	}
	#top .section-02 ul.item-list{
		display: none;
	}
	
	#top .section-02 .service-list{
		gap: 45px;
	}
	
	#top .section-02 .section-inner{
		padding-bottom: 64px;
	}
	
	
	#top-news .content-wrapper{
		padding: 60px 30px 70px;
	}
	
	#top-news .button {
    margin-left: auto;
    margin-right: auto;
}
	
	#top .section-05 .section-title{
		line-height: 1.267;
	}
	#top .section-04 .flex-box img{
		        width: 100%;
	}
	.f-company-info {
    min-width: unset;
    }
	.footer-address span{
		display: inline-block;
	}
	
	.form-button::before{
		right: 24px;
	}
	
	#top .section-04 .info-box a {
        margin-left: auto;
        margin-right: auto;
    }
	
	#top .section-04 .title-box{
        margin-left: 34px;
		transform: translateY(-36px);
	}
	
	#top .section-04 .flex-box span:nth-of-type(2){
		margin-top: -40px;
	}
	#top .section-04 .flex-box span:nth-of-type(1){
        margin-bottom: -13px;
	}
	
	#top .section-04 .info-box{
		margin-top: 90px;
		margin-bottom: 252px;
	}
	
	.up_ymd{
        font-size: 16px;
	}
	#newsList li .title{
        font-size: 16px;
	}
	
	#top .section-03 .section-inner{
		background: url(../images/top-company-back-sp.jpg);
		background-position: center;
		padding-top: 330px;
	}

	#dm .section-01 .wrapper .flex-box .inner-left h4{
        flex-direction: column;
        margin-left: auto;
        margin-right: auto;
        gap: 20px;
	}
	#dm .section-01 .wrapper .flex-box:nth-child(even), 
	#dm .section-01 .wrapper .flex-box{
        display: flex;
        flex-direction: column;
        align-items: center;
	}
	#dm .section-01 .wrapper .flex-box .inner-left{
		
	}
	
	#dm .section-01 .wrapper{
        padding: 80px 20px 50px;
	}
	
	.h-main{
      font-size: 24px;
	}
	
	#dm .section-02{
		padding-bottom: 50px;
	}
	
	.inner-section {
    margin-bottom: 80px;
    }
	
	#dm .section-02 ul li{
		padding: 30px 24px;
	}
	
	.h-wrapper h3{
		    width: 160px;
		font-size: 22px;
		margin-top: -12px;
	}
	.h-wrapper{
		min-height: 40.5px;
	}
	#dm .section-02 ul{
        padding: 50px 20px;
	}
	
	#dm .section-02 h4{
		font-size: 18px;
		width: calc(100% - 31px);
		max-width: 300px;
	}
	
	
	#dm .section-02 ul li h5{
		min-width: unset;
		font-size: 16px;
	}
	#dm .section-02 ul li p{
        font-size: 14px;
	}
	
	#election .section-01 .section-inner,
	#office .section-01 .section-inner{
		padding: 50px 24px;
		gap: 40px;
	}
	
	#election .section-01 h3,
	#office .section-01 h3 {
		font-size: 23px;
		margin-bottom: 34px;
	}
	#election .section-01 .section-inner::before,
	#election .section-01 .section-inner::after,
	#office .section-01 .section-inner::before,
	#office .section-01 .section-inner::after{
		display: none;
	}
	#election .section-01 h3::before,
	#office .section-01 h3::before{
		width: 28.0229px;
        top: -14px;
        left: -16px;
	}
	#office .section-02 ul li h4 {
		font-size: 20px;
	}
	#office .section-02 ul li .inner-wrapper {
    padding: 34px 24px;
}
	#office .section-02 ul li{
		min-height: unset;
	}
	
	#office .section-04 .section-inner{
		padding: 100px 34px 50px;
	}
	
#office .section-04 h3 {
	font-size: 22px;
	}
	#office .section-04 h3::before{
		width: 28.0229px;
        top: -14px;
        left: -16px;
	}
	
	#office .section-04 ul{
		    flex-wrap: wrap;
	}
	#office .section-04 ul li{
		    font-size: 14px;
	}
	
	#office .section-03 ul li .inner-wrapper{
		gap: 6px;
	}
	#office .section-04{
        padding: 20px 34px 150px;
	}
	
	#election .section-01,
	#office .section-01 {
        padding-top: 80px;
		padding-bottom: 80px;
    }
	
	#dm .section-01,
	#office .section-03,
	#office .section-02{
		padding-bottom: 80px;
	}
	#election .section-02 ul{
		gap:60px;
	}
	#logistics .section-01 .section-inner .flex-box{
        gap: 40px;
	}
	
	.company-table .table-data,
	.company-table .table-label{
        display: flex;
        width: 100%;
        flex-direction: column;
        justify-content: center;
        text-align: left;
	}
	
	#company .section-inner .title h3{
		    font-size: 30px;
	}
	#company .section-01 h4{
		    font-size: 22px;
	}
	#company .section-01 h4 span{
		display: inline-block;
	}
	
	#company .section-01 .inner-left{
		padding: 74px 34px;
	}
	
	#company .section-01 .inner-left .inner-wrapper{
		max-width: 468px
	}
	
	#company .section-02 .section-inner .inner-left h3 {
        font-size: 24px;
    }
	
	#company .section-02 .section-inner .inner-right p{
		font-size: 18px;
	}
	#company .section-02 .section-inner .inner-right ul li {
        font-size: 16px;
    }
	#company .section-02 .section-inner .inner-right ul{
		margin-left: 2em;
	}
	
	#company .section-04,
	#company .section-03,
	#company .section-02,
	#company .section-01{
		padding-top: 80px;
	}
	
	#company .section-02 .section-inner{
		gap: 50px;
	}
	.company-table .table-label{
		height: 50px;
	}
	.company-table .table-data{
        padding: 30px 24px;
	}
	.company-table .table-label{
        padding: 0 24px;
	}
	
	#company .section-04 h4{
		font-size: 22px;
	}
	
	#company .section-04 .inner-wrapper p span{
		display: inline-block;
	}
	#company .section-04 .inner-wrapper p.business-hours span{
		display: flex;
	}
	#company .section-04 .flex-box {
    gap: 40px;
}
	
	#recruit .section-01 .bold{
		font-size: 24px;
	}
	#recruit .section-01 p br{
		display: none;
	}
	#recruit .section-01{
		padding-right: 30px;
		padding-left: 30px;
	}
	
	#recruit .section-02 ul li h4 {
		font-size: 29px;
		line-height: 1.5;
	}
	#recruit .section-02 ul li h4::before{
		/*top: -17px;*/
	}
	#recruit .section-02 ul li .strong {
		font-size: 24px;
		margin-bottom: 20px;
	}
	
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(1) a{
		min-width: 366.2449px;
		width: 96%;
		padding: 4.3vw 4.56vw 3.13vw 7.29vw;
	}
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(2) a{
		min-width: 364.1049px;
		width: 96%;
        padding: 4.3vw 4.56vw 3.13vw 7.29vw;
	}
	#recruit .section-03 ul:nth-of-type(2) li:nth-child(1) a{
		min-width: 351.636px;
		width: 96%;
        padding: 27px 4.3vw 4vw 3.65vw;
		margin-top: 0;
	}
	#recruit .section-03 ul:nth-of-type(2) li:nth-child(2) a{
		min-width: 366.244px;
		width: 96%;
		padding: 4.3vw 4.56vw 3.13vw 7.42vw;
	}
	#recruit .section-03 ul li p{
		font-size: clamp(12px,2.99vw,23px);
	}
	#recruit .section-03 ul li p span{
		height: clamp(18px,4.43vw,34px);
	}
	#recruit .section-03 ul li p.name {
    font-size: clamp(9.6px,2.34vw,18px);
}
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(1) .inner-wrapper {
    padding-left: 7.42vw;
}
	#recruit .section-03 ul:nth-of-type(1) li:nth-child(2) .inner-wrapper {
    padding-left: 6.51vw;
}
	#recruit .section-03 ul:nth-of-type(2) li:nth-child(1) .inner-wrapper {
    padding-left: 2.86vw;
}
	#recruit .section-03 ul:nth-of-type(2) li:nth-child(2) .inner-wrapper {
    padding-left: 8.33vw;
}
	#recruit .section-03 ul{
		gap: 22px;
	}
	#recruit .section-03 ul:nth-of-type(1) {
        margin-bottom: 22px;
    }
	#recruit .section-03 ul li img {
    width: 100%;
    margin-bottom: 16px;
}
	
	#recruit .section-04 .section-inner .inner-wrapper{
		padding-top: 0;
		padding-bottom: 70px;
	}
	#recruit .section-03 .section-inner{
        padding-bottom: 30px;
	}
	#recruit .section-04 .flex-box .inner-left::before{
		display: none;
	}
	#recruit .section-04 .flex-box {
        background: none;
    }
	#recruit .section-04 .last-box{
        background: #fff;
        width: calc(100% + 36px + 36px);
		height: auto;
		min-height: 274px;
		padding-top: 80px;
        padding-bottom: 80px;
	}
	#recruit .section-04 .last-box p{
		font-size: 16px;
		line-height: 2.188;
	}
	
	#recruit .section-04 .flex-box .inner-right{
		width: 100%;
	}
	
	#recruit .section-04 .flex-box .inner-left .job{
        font-size: 24px;
	}
	#recruit .section-04 .flex-box .inner-left{
		padding-bottom: 0;
        padding-right: 20px;
        padding-left: 20px;
	}
	
	.voice .section-01 {
		padding: 80px 0 150px;
	}
	.voice .flex-box:nth-child(even){
		margin-top: 60px;
	}
	.voice .flex-box h4{
		    font-size: 24px;
	}
	
	.voice .flex-box:nth-child(even) .inner-left{
		margin-bottom: 40px;
	}
	.certification{
        flex-direction: column;
	}
	
	
	#logistics .section-01 {
        padding-top: 80px;
    }
	/*#logistics .section-01 .section-inner{
		padding: 50px 24px;
	}*/
	
	#logistics .section-01 h3 {
		font-size: 23px;
		margin-bottom: 34px;
	}
	#logistics .section-01 .section-inner .flex-box::before,
	#logistics .section-01 .section-inner .flex-box::after{
		display: none;
	}
	#logistics .section-01 h3::before{
		width: 28.0229px;
        top: -14px;
        left: -16px;
	}
	
	#logistics .section-01 .section-inner .flex-box{
        padding: 50px 24px;
	}
	
	#privacy .section-01{
		padding-top: 80px;
	}
	
	#recruit .section-01 p {
		line-height: 2;
		margin-bottom: 36px;
	}
	
	#recruit .section-02 ul li .inner-left{
		aspect-ratio: 354 / 253;
		overflow: hidden;
	}
	#recruit .section-02 ul li .inner-left img{
		width: 100%;             
        height: 100%;            
        object-fit: cover;       
        object-position: center; 
	}
	
	#recruit .section-03 .title::after{
          /*bottom: 90px;*/
        bottom: unset;
        top: 120px;
	}
	
	#election .section-02 ul li .inner-wrapper{
		padding: 65px 24px;
	}
	
	#election .section-02{
		padding-bottom: 150px;
	}
	
	#election .section-01 h3 br{
		display: none;
	}
	
	#faq .selector{
		flex-direction: column;
        margin: 80px auto 0;
		padding: 0 24px;
	}
	#faq .selector li{
		width: 100%;
		height: 60px;
	}
	#faq .selector li::before,
	#faq .selector li::after{
		display: none;
	}
	
	#faq .selector li a{
		font-size: 16px;
	}
	
	
	.faq-question::after{
        width: 30px;
        height: 30px;
		right: 20px;
	}
	.faq-question{
		font-size: 16px;
		padding-left: 20px;
		padding-right: 60px;
	}
	.faq-answer-inner{
		font-size: 15px;
		padding-left: 20px;
		padding-right: 20px;
	}
	#faq .section-01, 
	#faq .section-02, 
	#faq .section-03{
		margin-top: 80px;
		padding: 0px 24px;
	}
	#faq .section-01 .section-inner, 
	#faq .section-02 .section-inner, 
	#faq .section-03 .section-inner{
        padding: 40px 20px 60px;
	}
	.faq-check:checked ~ .faq-answer .faq-answer-inner{
		padding-left: 20px;
		padding-right: 20px;
	}
	
	#faq .section-03 {
    margin-bottom: 100px;
    }
	
	#top-news .section-title {
    font-size: 30px;
    margin-top: 16px;
}
	
	#top .section-01 h2 span{
		display: inline-block;
	}
	#top .section-01 .inner-flex {
        margin: 190px 0px 25px;
    }
	#company .section-01 .inner-right{
        margin-top: 20px;
	}
}

@media (max-width: 658px) {
	#recruit .section-03 .title > p{
		 max-width: 282px;
	}
}



@media (max-width: 530px) {
	
	
	.breadcrumb{
		display: none;
	}
	.privacy-button{
		display: none;
	}
	
	.hero-inner .inner-right{
        width: 100vw;
		    gap: 20px;
		/*margin-top: 100px;*/
	}
	
	#company .section-01 .outer-wrapper{
		    padding: 16px;
	}
	#company .section-01 .inner-left {
        padding: 74px 24px;
    }
	#company .section-01 p.name{
		font-size: 16px;
	}
	
	
	#recruit .section-01 .inner-left {
        min-width: 260px;
    }
	
	#recruit .section-04{
        padding: 30px 10px 0;
	}
	
	.voice .flex-box h4{
        font-size: 20px;
        margin-bottom: 16px;
	}
	.voice .flex-box h3{
		font-size: 16px;
	}
	
	.voice .flex-box h4.long{
		line-height: 1.5;
	}
	
	#privacy .section-01{
		padding-left: 32px;
		padding-right: 32px;
	}
	#privacy .section-01 h3{
		font-size: 20px;
		line-height: 1.5;
	}
	.custom-table td.col-id{
        height: 80px;
	}
	#privacy .section-01 h4{
		font-size: 18px;
	}
	
	#contact .section-01 {
		padding: 80px 32px 150px;
	}
	#contact .section-01 .section-inner > p {
    text-align: left;
    }
	
	.thanks .section-inner p{
		text-align: left;
	}
	#contact.thanks .section-01 {
        padding: 80px 26px 150px;
    }
	
	
	.pager{
		margin: 80px auto 0;
	}
	
	#election .section-02 ul li h4 {
		font-size: 20px;
	}
	#election .section-02 .item-tugline{
		font-size: 18px;
	}
	
	#election .section-02 .item-tugline br{
		display: none;
	}
	#election .section-02 ul li p{
		font-size: 16px;
	}
	
	.faq-question::after{
        width: 20px;
        height: 20px;
		right: 10px;
	}
	.faq-question{
		padding-right: 40px;
	}
	
	#top .section-03 .section-inner{
		background-size: cover;
	}
	
	#company .section-01{
		padding-left: 40px;
		padding-right: 40px;
	}
	
	#recruit .section-03 ul:nth-of-type(1) {
        margin-top: 10px;
    }

	.child-header-inner .child-title{
		margin-bottom: 0;
	}
	
	#recruit .section-03 .title{
        padding-right: 0;
        padding-left: 0;
	}
	
	
	
}















[id]{
	scroll-margin-top: 160px;
}


















