@charset "utf-8";
/*
Theme Name: crambec
Description: crambecのテーマ
Author: 作者の名前
*/
/* ================================================== common（ 全画面共通 ）設定 */

body {
	font-size: 16px;
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	background-color: #fff;
	color: #212121;
}

a {
	text-decoration: none;
	transition: 0.2s;
	color: inherit; /* デフォルトの色を引き継ぐ */
}
a:hover {
	color: #7a7a7a;
	text-decoration: none;
	transition: 0.2s;
}
table a {
	color: #0e2788;
	text-decoration: underline;
}

table a:visited {
	color: #0e2788;
	text-decoration: underline !important;
}

/* テーブル内リンクの hover */
table a:hover {
    color: #7a7a7a;
    text-decoration: none;
}

.clear {
	clear: both;
}

/* =================== common */
h1 {
	color: #fff;
	width: 100%;
	font-family: 'Teko';
	font-size: 8rem;
	letter-spacing: 0.2rem;
	text-align: center;
	background:#0e2788;
	padding: 8px 0 16px;
}

.h1_ja {
	color: #fff;
	width: 100%;
	font-size: 2rem;
	margin: -48px auto 48px auto;
	text-align: center;
}

div.button {
	text-align: center;
}

.btn{
	max-width: 96%;
	position: relative;
	text-decoration: none;
	display: inline-block;
	text-align: center;
	background: transparent;
	border: 2px solid #0e2788;
	outline: none;
	transition: all .1s ease;
	margin: 40px 0 0;
}

.btn:hover{
  border-color:transparent; 
}

.btn span {
	font-size: 2rem;
	position: relative;
	z-index: 2;
	display: block;
	padding: 2rem 15rem 2rem 14rem;
	background:#fff;
	color:#0e2788;
	transition: all .2s ease;
}

.pushleft:before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 6px;
	right: 6px;
	width: 100%;
	height: 100%;
	background-color: #0e2788;
}

.pushleft:hover span {
  background-color: #0e2788;
  color: #fff;
  transform: translate(-6px, 6px);
}

.btn span::after {
	content: '→';
	position: absolute;
	padding: 0 8px 0;
}

hr {
	width: 96%;
    height: 5px;
    background: linear-gradient(to right, #0e2788, #8399d3, #0e2788);
    border: none;
}

.back {
	font-size: 2rem;
	font-weight: 800;
	color: #fff;
	position: fixed;
	background: #0e2788;
	z-index: 10;
	bottom: 80px;
	right: 40px;
	padding: 8px 12px;
}

.sub_head {
	font-size: 4rem;
	font-weight: 600;
	line-height: 40rem;
	letter-spacing: .5rem;
	color: #f5f5f5;
	text-shadow: 1px 2px 6px #06070c;
	text-align: center;
	width: 100%;
	height: 320px;
	background-color: #8399d3;
}

.pan {
	width: 100%;
	background-color: #f7f7f8;
	margin: 0 0 80px 0;
	padding: 4px 0 0 0;
}

.pan ul{
	max-width: 1200px;
	height: 32px;
	display: flex;
	margin: 0 auto;
}
.pan ul li::after {
	content: '>';
	margin: 0 8px;
}
.pan ul li:last-child::after {
	content: none;
}

/* =================== header */
header {
	width: 100%;
	height: 96px;
	background: #fff;
	position: fixed;
	z-index: 10;
}

header nav {
	width: auto;
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

header nav ul {
	display: flex;
}
header nav li {
	height: 96px;
	padding: 0px 24px;
	line-height: 9.5rem;
	transition: 0.2s;
}
header nav a {
	text-decoration: none;
}

header nav li:hover {
	color: #0e2788;
	background: #f5f5f5;
	transition: 0.2s;
}

header nav ul a:nth-child(3) {
	color: #fff;
	background-color: #4472c4;
}
header nav ul a:nth-child(4) {
	color: #fff;
	background: #0e2788;
	text-align: center;
	position: relative;
}
header nav ul a:nth-child(4)::before {
	content: url(../img/mail.png);
	position: absolute;
	top: 16px;
	left: 50px;
}
header nav .mail {
	width: 116px;
	padding: 0;
}

header .logo {
	margin: 12px 0 0 0;
}

.logo_box .copy {
	font-size: 1.4rem;
	margin: 4px 0 -8px 16px;
}

.logo_box .copy span{
	color: rgb(235, 39, 32)
}

nav rt {
	font-size: 0.1rem;
}

/* =================== footer */
footer {
	width: 100%;
	background: #fff;
	color: #0e2788;
	padding: 0px 0px 80px 0;
}

footer .ft_nav {
	width: 100%;
	background: #0e2788;
	color: #fff;
	padding: 32px 0;
}

footer ul {
	font-size: 1.4rem;
	width: 96%;
	max-width: 1200px;
	display: flex;
	margin: 0 auto;
	justify-content: center;
	align-items: center;
}

footer ul li::after {
	content: '｜';
	margin: 0 16px;
}
footer ul li:last-child:after {
	content: none;
}

footer .info {
	display: flex;
	width: 96%;
	max-width: 1200px;
	justify-content: center;
	align-items: center;
	margin: 40px auto;
}

footer .info p:first-child {
	margin: 0 24px 0 0;
}

footer .copy {
	font-size: 1.4rem;
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}

/* =================== index */
/* video */
.video{
	width: 100%;
	max-width: 1920px;
	height: auto;
	margin: 0 auto;
	background: url(../img/bg_index.jpg) no-repeat center contain;
	position: absolute;
	top: 96px;
	left: 0;
	overflow: hidden;
	z-index: -10;
  }

.video-container {
	position: relative;
	overflow: hidden;
	background: url(../img/bg_index.jpg) no-repeat center/cover;
}

#video2 {
    display: none;
}


.index .about {
	/* margin: 200px auto;*/
	margin: 10px auto 200px auto;
}

.index .about .about_box {
	width: 100%;
	margin: 40px auto;
	display: flex;
	flex-direction: row-reverse;
}

.index .about .about_box .top_img {
	width: 70%;
	height: 400px;
	background: url(../img/index_about.png) 50% 50%;
	background-size: cover;
}

.index .about .about_box .blue_box {
	position: relative;
	top: 2rem;
	left: 12%;
	max-width: 600px;
	color: #fff;
	background: rgba(14, 27, 136, 0.9);
	padding: 40px 40px 14px 40px;
}

.index .about .about_box .blue_box p:first-child {
	font-size: 2.5rem;
	border-bottom: 1px solid #8399d3;
	padding: 0 0 8px 0;
}
.index .about .about_box .blue_box p {
	font-size: 1.5rem;
	margin: 0 0 24px 0;
}

.index .business {
	padding: 0 0 200px;
	background: #f5f5f5;
}

.index .business .business_box {
	width: 100%;
	max-width: 1200px;
	margin: 40px auto;
	display: flex;
	justify-content: space-between;
}

.index .business .business_box div {
	width: 100%;
	text-align: center;
}

.business_text {
	width: 96%;
	max-width: 1000px;
	margin: 80px auto 64px auto;
	text-align: center;
}

.index .business .business_box div img {
	width: 240px;
	height: 240px;
	min-width: 240px;
	border-radius: 50%;
	object-fit: none;
	object-position: 50% 50%;
}

.index .business .business_box div p:first-child {
	color: #fff;
	font-size: 2rem;
	display: inline-block;
	padding: 0.5em 1.6em 0.4em 0.8em;
	position: relative;
	left: -80px;
	top: 60px;
	color: #fff;
	z-index: 1;
	text-align: left;
}
	.index .business .business_box div p:first-child::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: -1;
		background: rgba(14, 27, 136, 0.9);
		transform: scaleY(1.3) perspective(.6em) rotateX(5deg);
		transform-origin: bottom left;
	}

.index .news {
	padding: 0 0 30px;
	background: #f5f5f5;
	margin: 200px auto 0 auto;
}

.news .news_box {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto 20px auto;
}

.news .news_box dl dt{
	margin-top: 10px;
}

.news .news_box dl dd{
	color:#0e2788;
	font-size: 2rem;
}


/* 横並び・縦並びをレスポンシブに */
.news .news_box dl > * {
  box-sizing: border-box;
}
@media (min-width: 600px) {
  .news .news_box dl {
    flex-direction: column;
  }

  .news .news_box dl dt,
  .news .news_box dl dd {
    display: inline-block;
    width: 100%;
  }

  .news .news_box dl dt:nth-of-type(n),
  .news .news_box dl dd:nth-of-type(n) {
    display: inline-block;
    width: 100%;
  }

  .news .news_box dl dt:nth-of-type(n),
  .news .news_box dl dd:nth-of-type(n) {
    vertical-align: top;
  }

  .news .news_box dl dt{
    padding: 0.5em 1em 0em 1em;
  }

  .news .news_box dl dd {
    padding: 0em 1em 0.5em 1em;
  }
}

/* 各DT+DDのペアをグループ化して見た目を整える */
.news .news_box dl dt {
  font-weight: bold;
}

/* dt+dd セットに区切り線を引く */
.news .news_box dl dt::after {
  content: "";
  display: block;
  border-bottom: 1px solid #ccc;
  margin: 10px 0;
}

/* 小画面用の調整 */
@media (max-width: 599px) {
  .news .news_box dl {
    display: block;
  }

  .news .news_box dl dt,
  .news .news_box dl dd {
    width: 100%;
    display: block;
  }
}
#news_button{
	text-align: right;
}


.index .product {
	margin: 0 auto 200px;
}

.product .product_box {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
}

.product .product_box h2, .works h2 {
	font-size: 2rem;
	color: #0e2788;
	width: 100%;
	max-width: 1200px;
	border-bottom: 2px solid #0e2788;
}
.works h2 {
	max-width: 1200px;
	margin: 0 auto;
}

.product .product_box div {
	display: flex;
	margin: 16px 0 32px 0;
}
.product .product_box div.fence {
	flex-direction: row-reverse;
}

.product .product_box div p:first-child {
	margin: 0 16px 0;
	max-width: 450px;
	min-width: 320px;
}

.index .recruit {
	margin: 0 auto;
	background: url(../img/recruit_bg.jpg) no-repeat 50% 50%;
	background-size: cover;
	padding: 0 0 120px;
}

.index .recruit .recruit_box {
	width: 100%;
	max-width: 1200px;
	margin: 80px auto;
}

.index .recruit .recruit_box .text {
	max-width: 96%;
	margin: 0 auto;
	text-align: center;
}

.guide_inner{
	max-width: 1200px;
	margin: 0 auto;
    display: flex;
	color: #fff;
	text-align: center;
}
.guide_inner>a{
    display: flex;
    align-items: center;
    width: 45%;
	margin: 0 auto;
    padding: 10px;
}

.guide .new-grads {
	display: block;
	padding: 50px;
	background: #4472c4;
	outline : 1px solid #fff;
	outline-offset : -10px;
}
.guide .new-grads p:first-child, .guide .mid-career p:first-child {
	font-size: 3rem;
	font-weight: 600;
}
.guide .new-grads:hover {
	color: #4472c4;
	background: #f5f5f5;
	outline : 1px solid #4472c4;
}

.guide .mid-career {
	display: block;
	padding: 50px;
	background: #0e2788;
	outline : 1px solid #f5f5f5;
	outline-offset : -10px;
}

.guide .mid-career:hover {
	color: #0e2788;
	background: #f5f5f5;
	outline : 1px solid #0e2788;
}

.recruit .guide {
	margin: 0 auto 160px auto;
}

.guide a {
	text-decoration: none;
}
.guide a:hover {
	color: #d7ddf3;
}

/* 拡大率調整 */
@keyframes fadezoom {
	0% {
	  transform: scale(1);
	}
	100% {
	  transform: scale(1.3);
	}
  }
  /* ズームアニメーション */
  .animation {
	animation: fadezoom 15s 0s forwards;
  }


/* =================== company */
.company table a:hover {
	text-decoration: none;
}
.company .sub_head {
	background: url(../img/header_company.jpg) 50% 40%;
	background-size: cover;
}

.company .greeting {
	max-width: 1200px;
	width: 96%;
	height: auto;
	display: flex;
	margin: 0 auto 160px;
}
.company .greeting p {
	margin: 16px 0;
}
.company .greeting p:first-child {
	margin: 0 0 16px 0;
}

.company .greeting .name {
	width: 200px;
	margin: 0 0 0 auto;
	height: 84px;
	background: url(../img/name.png) no-repeat right bottom;
	background-size: contain;
}
.company .greeting .name span {
	display: block;
	text-indent: -99999px;
}
.company .greeting div:first-child {
	flex-shrink: 1.2;
}
.company .greeting div:last-child{
	line-height: 2.5rem;
	padding: 0 0 0 24px;
}

.company .info {
	margin: 0 auto 160px;
}

.info table  {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	table-layout: fixed;
}
.info table tr {
	border-top: 1px solid #0e2788;
}
	.info table tr:last-child {
		border-bottom: 1px solid #0e2788;
	}
.info table th {
	width: 144px;
	color: #0e2788;
	text-align: left;
	padding: 24px;
	background: #eceef6;
}
.info table td {
	padding: 24px;
}

.office {
	max-width: 1200px;
	width: 96%;
	margin: 0 auto 160px;
}

/* =================== works */
.works hr {
	width: 100%;
	margin: 24px 0 0;
}

.works .sub_head {
	background: url(../img/header_works.jpg) 50% 80%;
	background-size: cover;
}

.works .works_list {
	margin: 0 0 80px 0;
}

.works .works_list ul {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
}
.works .works_list ul li {
	width:  calc(25% - 16px);
	margin: 0 8px 24px 8px;
}

.works .works_list ul li p:nth-child(2) {
	font-size: 1.4rem;
	padding: 0 8px;
	color: #0e2788;
	background-color: #d7ddf3;
	margin: 0 16px 0 0;
}

.modal {
	padding: 24px 0;
  }
  .modal h2 {
	margin: 24px 0;
  }
  
  .inner {
	margin: 0 auto;
  }
  
  /* モーダルを開くボタン */
  .modal__cards {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	-webkit-filter:drop-shadow(-10px 10px 0 #0e2788);
	-moz-filter:drop-shadow(-10px 10px 0 #0e2788);
	-ms-filter:drop-shadow(-10px 10px 0 #0e2788);
	filter:drop-shadow(-2px 3px 4px #d7ddf3);
  }
  
  .modal__card {
	width:  calc(25% - 16px);
	margin: 0 8px 24px 8px;
	transition: 0.2s;
  }
  
  .modal__card:hover {
	opacity: .6;
	transition: 0.2s;
  }
  
  .modal__trigger {
	cursor: pointer;
  }
    
  .modal-card__image {
	position: relative;
  }
  
  .modal-card__image:before {
	display: block;
	padding-top: 120%;
	content: '';
  }
  
  .modal-card__image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
  }
  
  .modal-card__content {
	margin-top: 0;
  }

  .modal-card__content p:first-child {
	width: 100%;
	font-size: 1.4rem;
	padding: 8px 8px;
	color: #f5f5f5;
	background-color: #0e2788;
}
.modal-card__content p:nth-child(2) {
	background-color: #f5f5f5;
	padding: 24px 8px;
}

  
  .modal-card__title {
	text-align: center;
  }
  
  /* モーダル本体 */
  .modal__wrapper {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	height: 100%;
  }
  
  .modal__layer {
	height: 100%;
	background: rgba(50, 50, 50, .85);
	cursor: pointer;
  }
  
  .modal__container {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(calc(100% - 40px), 1000px);
	height: 60%;
	padding: 20px;
	background: #f5f5f5;
  }
  
  .modal__inner {
	position: relative;
	overflow-y: scroll;
	height: 100%;
	padding: 80px 20px 20px;
  }
  
  /* モーダルを閉じるボタン */
  .modal__close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	background: rgba(50, 50, 50, 1);
	cursor: pointer;
	transition: opacity .6s;
  }
  
  .modal__close:hover {
	opacity: .6;
  }
  
  .modal__close:before,
  .modal__close:after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 1px;
	background: #fff;
	content: '';
  }
  
  .modal__close:before {
	transform: translate(-50%, -50%) rotate(45deg);
  }
  
  .modal__close:after {
	transform: translate(-50%, -50%) rotate(-45deg);
  }
  
  #mygallery {
	max-width: 800px;
	margin: 0 auto;
  }
  

  .container {
    position: relative;
    margin: 0 auto;
    height: 400px;
	min-width: 500px;
    opacity: 0;
    animation: mainFadeIn 2s ease forwards 1.8s;
}
.main-slider {
    position: relative;
    width: 100%;
    height: 100%;
}
.main-slider .slide {
	margin: 8px auto;
    height: 100%;
}
.main-slider .slide:target {
    z-index: 3;
}
.main-slider .slide:target::before {
    opacity: 1;
}
.main-slider .slide:target:first-of-type .meta .title span {
    transform: translateY(100%);
}
.main-slider .slide:target:first-of-type .meta .desc span {
    transform: translateY(-100%);
}
.main-slider .slide:target figure img {
    animation: show 2.2s ease forwards;
	width: 100%;
}
.main-slider .slide:target .meta .title span {
    animation: showTitle 1.2s forwards .8s;
}
.main-slider .slide:target .meta .desc span {
    animation: showDesc 1s forwards 1.2s;
}
.main-slider .slide:not(:target):not(:first-of-type) {
    animation: zIndex 2.2s ease forwards;
}
.main-slider .slide:not(:target):not(:first-of-type) figure img {
    animation: hide 2.2s ease forwards;
}
.main-slider .slide:not(:target):not(:first-of-type) .meta .title span {
    animation: hideTitle 1s forwards;
}
.main-slider .slide:not(:target):not(:first-of-type) .meta .desc span {
    animation: hideDesc 1s forwards;
}
.main-slider .slide:first-of-type {
    z-index: 2;
}
.main-slider .slide:first-of-type .meta .title span, .main-slider .slide:first-of-type .meta .desc span {
    transform: translateY(0);
}
.slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}
.main-slider .slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #f5f5f5;
    transition: opacity .3s ease;
    opacity: 0;
}
.main-slider .slide .meta {
    position: absolute;
    top: calc(50% - 19px);
    left: 0;
    margin: 0 40% 0 2.4vw;
    color: #fff;
    text-align: left;
    line-height: 1.26;
}
.main-slider .slide .meta .title, .main-slider .slide .meta .desc {
    overflow: hidden;
}
.main-slider .slide .meta .title span, .main-slider .slide .meta .desc span {
    display: inline-block;
}
.main-slider .slide .meta .title {
    font-size: 38px;
    font-weight: 800;
}
.main-slider .slide .meta .title span {
    transform: translateY(100%);
}
.main-slider .slide .meta .desc {
    margin-top: 15px;
    font-size: 15px;
}
.main-slider .slide .meta .desc span {
    transform: translateY(-100%);
}
.thumbnail-slider {
    position: relative;
    width: 100%;
    height: 100%;
    line-height: 0;
    overflow-y: auto;
}
.thumbnail-slider::-webkit-scrollbar {
    width: 5px;
}
.thumbnail-slider::-webkit-scrollbar-track {
    background-color: rgba(255, 255, 255, 0.28);
}
.thumbnail-slider::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.44);
}
.thumbnail-slider .slide {
    position: relative;
    height: 80px;
    overflow: hidden;
	top: 8px;
}
.thumbnail-slider .slide:hover figure img {
    transform: scale(1.1);
}
.thumbnail-slider .slide figure img {
	width: 50%;
    transition: transform .5s;
}
.slide figure {
    height: 100%;
	width: 300%;
}
.slide figure img {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@keyframes mainFadeIn {
    to {
        opacity: 1;
    }
}
@keyframes show {
    0% {
        transform: scale(1.24);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}
@keyframes hide {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(1.2);
        opacity: 0;
    }
}
@keyframes zIndex {
    0% {
        z-index: 2;
    }
    100% {
        z-index: 2;
    }
}
@keyframes showTitle {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: translateY(0);
    }
}
@keyframes hideTitle {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(100%);
    }
}
@keyframes showDesc {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(0);
    }
}
@keyframes hideDesc {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(-100%);
    }
}
figure {
	padding: 8px;
}
figure img {
	padding: 0 -200px 0 0;
}



/* =================== recruit */
.recruit .sub_head {
	position: relative;
	font-size: 3rem;
	line-height: 4rem;
	text-align: left;
	background: url(../img/header_recruit-2507.jpg);
	background-size: cover;
	height: 600px;
	top: 40px;
}

.recruit .sub_head div {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 400px 0 0 0;
}

.recruit .sub_head div p:first-child {
	font-size: 5rem;
}
.recruit .sub_head div p:last-child {
	margin: 24px 0 0 24px;
}

.h1_recruite{
	font-size: 4rem;
	margin: 0 0 40px 0;
	padding: 12px 0 0 0;
}

.recruit .about {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto 80px auto;
	display: flex;
}

.recruit .about div {
	/*width: 33.3%;
	padding: 16px;
	*/
	padding: 3px;
}
.recruit .about div .about_img {
	/*box-shadow: -10px 10px 0 #0e2788;*/
	margin: 0 0 16px 0;
	-webkit-filter:drop-shadow(-10px 10px 0 #0e2788);
	-moz-filter:drop-shadow(-10px 10px 0 #0e2788);
	-ms-filter:drop-shadow(-10px 10px 0 #0e2788);
	filter:drop-shadow(-10px 10px 0 #0e2788);
  }
/*-----↓ wordpress更新でついかしました。↓-----*/
.recruit .about_wrap {
    display: flex;        /* 横並びにする */
    justify-content: space-between;
    flex-wrap: wrap;      /* 狭い画面では折り返す */
    margin-bottom: 80px;
}
.recruit .about_item {
    width: 32%;           /* 3列 */
    margin-bottom: 20px;
    text-align: left;
}
.recruit .about_item .about_img img {
    width: 100%;          /* 親幅に合わせて画像を表示 */
    height: auto;         /* 画像の縦横比を維持 */
    margin-bottom: 16px;
   /*
	-webkit-filter: drop-shadow(-10px 10px 0 #0e2788);
    filter: drop-shadow(-10px 10px 0 #0e2788);
	*/
}

.recruit_check_off{
	max-width: 350px;
    margin: 0 auto;
    font-weight: bolder;
    font-size: 2.5rem;
    margin-bottom: 100px;
}
/*-----↑ wordpress更新でついかしました。↑-----*/

.recruit .hr {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto 160px auto;
}

.recruit .interview {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto 80px auto;
	position: relative;
}
.recruit .interview .flow img {
	width: 70%;
}
.recruit h3 {
	position: relative;
	margin: 0 0 24px 0;
	padding: 2rem;
	border: 3px solid #d8d8d8;
	border-radius: 4px;
	background: #f9f9f9;
	text-align: center;
}
.recruit h3:before {
	position: absolute;
	bottom: -14px;
	left: 1em;
	width: 0;
	height: 0;
	content: '';
	border-width: 14px 12px 0 12px;
	border-style: solid;
	border-color: #d8d8d8 transparent transparent transparent;
  }
  
  .recruit h3:after {
	position: absolute;
	bottom: -10px;
	left: 1em;
	width: 0;
	height: 0;
	content: '';
	border-width: 14px 12px 0 12px;
	border-style: solid;
	border-color: #f9f9f9 transparent transparent transparent;
  }

  .recruit h3::first-line{
	font-size: 3rem;
  }
.recruit .interview_title::after {
	content:"↓";
	display:block;
	position: absolute;
	top: 100%;
	left: calc(50% - 20px);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 20px;
	border-color: #8399d3 transparent transparent transparent;
  }

.recruit .interview_box {
	display: flex;
	background: #eceef6;
	box-shadow: -10px 10px 0 #0e2788;
	margin: 0 0 32px 0;
}

.mynavi {
	max-width: 900px;
	margin: 40px auto 0 auto;
}
.mynavi>a{
	justify-content: center;
}

.recruit .interview_box:nth-child(odd) {
	flex-direction: row-reverse;
}

.recruit .interview_box .img {
	min-width: 320px;
	background-color: #0e2788;
}

.img_01 {
	background: url(../img/image8.jpg);
	background-size: cover;
}
.img_02 {
	background: url(../img/image9.jpg) center;
	background-size: cover;
}
.img_03 {
	background: url(../img/image10.jpeg) center;
	background-size: cover;
}
.recruit .interview_box .text {
	padding: 0 40px 40px 40px;
}
.recruit .interview_box .text p:nth-child(odd) {
	color: #0e2788;
	font-size: 2.2rem;
	font-weight: 600;
	margin: 40px 0 16px 0;
}

.recruit .info {
	margin: 0 0 80px 0;
}
.recruit .info h2 {
	width: 100%;
	font-size: 1.8rem;
	color: #f5f5f5;
	padding: 8px 0;
	margin: 0 auto;
	text-align: center;
	background: #4472c4;
}
.recruit .info .sp_table {
	margin: 80px 0 0 0;
}
.recruit .info .sp_table td{
	width: 50%;
}
.recruit .info .left-b {
	border-left: 1px solid #0e2788;
}
.recruit .info .recruit-rd {
	font-size: 1.8rem;
	font-weight: 600;
	color: rgb(235, 39, 32);
}

.recruit .new-grads {
	margin: 80px auto 0 auto;
}

.recruit .mid-career {
	background: #0e2788;
	margin: 80px auto 0 auto;
}

.recruit .flow {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto 160px auto;
	display: flex;
	justify-content: center;
	text-align: center;
}

.recruit .flow div {
	width: 50%;
}

.recruit .flow div p {
	color: #f7f7f8;
	font-size: 2rem;
	margin: 8px 8px -16px 8px;
	padding: 16px;
	background: #0e2788;
}

.recruit .flow li {
	font-size: 2rem;
	min-height: 120px;
	margin: 24px 8px;
	padding: 24px 2rem;
	border: 1px solid #8399d3;
	position:relative;
}

.recruit .flow li:not(:last-of-type)::after {
	content:"";
	display:block;
	position: absolute;
	top: 100%;
	left: calc(50% - 20px);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 20px;
	border-color: #8399d3 transparent transparent transparent;
  }

.recruit .flow li span {
	display: block;
	font-size: 1.3rem;
	margin: -4px 0 0 0;
}

.ng, .recruit .flow div p.ng {
	background: #4472c4;
}

.recruit .flow li {
	width: 97%;
	height: 120px;
	display: table;
}
.recruit .flow li p {
	color: #06070c;
	display: table-cell;
	margin: 0;
	padding: 0;
	background: transparent;
	text-align: center;
	vertical-align: middle;
}


/* =================== contact */
.contact .about {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
}
.contact table  {
	max-width: 1200px;
	margin: 0 auto;
}
.contact table tr {
	border-top: 2px solid #fff;
}
	.contact table tr:last-child {
		border-bottom: 2px solid #fff;
	}
.contact table th {
	width: 20%;
	color: #0e2788;
	text-align: left;
	padding: 0 24px;
	background: #eceef6;
}
.contact table td {
	padding: 8px;
}

.contact #formWrap {
	margin: 40px 0 200px 0;
}
.contact #formWrap input {
	width: 100%;
	font-size: 2rem;
	padding: 8px;
	border: 1px solid #afafaf;
	border-radius: 4px;
}
.contact #formWrap input[type="submit"] {
	color: #fff;
	width: 300px;
	font-size: 3rem;
	background: #0e2788;
}
.contact #formWrap p {
	width: 96%;
	max-width: 1200px;
	margin: 40px auto;
	text-align: center;
}
.contact #formWrap textarea {
	width: 100%;
	height: 200px;
	border: 1px solid #afafaf;
	border-radius: 4px;
	resize: vertical;
}
::placeholder {
	color: #afafaf;
  }

#formWrap .req::after, span.req {
	content: '必須';
	color: #fff;
	font-weight: 200;
	font-size: 1.2rem;
	background-color: rgb(235, 39, 32);
	margin: 0 0 0 2px;
	padding: 2px 4px;
	border-radius: 4px;
}

/* =================== other */
.other section {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto 200px auto;
}

.other h2 {
	font-size: 1.8rem;
	background: #d7ddf3;
	margin: 0 0 8px 0;
	padding: 8px;
}

.other section div {
	margin: 0 0 40px 0;
}

.other section div p {
	margin: 0 8px;
}

.other table {
	width: 96%;
	max-width: 600px;
	margin: 0 auto;
}
.other table td {
	padding: 40px;
	border: 1px solid #afafaf;
}

/* ================================================== 900px以上（ PC画面用 ）専用設定 */
@media screen and (min-width:900px){
.sp{ display: none; }
.sp2{ display: none; }
}

/* ================================================== 900px未満（ タブレット用 ）専用設定 */
@media screen and (max-width:899px){
.sp{ display: block; }
.sp2{ display: none; }
}

/* ================================================== 600px未満（ スマートフォン用 ）専用設定 */
@media screen and (max-width:759px){
.pc{ display: none; }
.sp{ display: none; }
.sp2 { display: block; }
body {
	font-size: 14px;
}
h1 {
	font-size: 5rem;
}
.h1_ja {
	font-size: 1.6rem;
	margin: -40px auto 40px auto;
}
.btn {
	margin: 16px 0 0;
}
.btn span {
	padding: 1rem 8rem 1rem 7rem;
}
.sub_head {
	font-size: 3rem;
	line-height: 12rem;
	height: 120px;
}
.pan {
	margin: 0 0 32px 0;
	padding-bottom: 10px;
}
.sp-menu__box {
	position: fixed;
	top: 0;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 64px;
	width: 64px;
	z-index: 100;
	background-color: #0e2788;
  }
  .sp-menu__box span,
  .sp-menu__box span:before,
  .sp-menu__box span:after {
	content: "";
	display: block;
	height: 3px;
	width: 40px;
	border-radius: 3px;
	background-color: #ffffff;
	position: absolute;
  }
  .sp-menu__box span:before {
	bottom: 8px;
  }
  .sp-menu__box span:after {
	top: 8px;
  }

#sp-menu__check {
	display: none;
  }
  #sp-menu__check:checked ~ .sp-menu__box span {
	background: rgba(255, 255, 255, 0);
  }
  #sp-menu__check:checked ~ .sp-menu__box span::before {
	bottom: 0;
	transform: rotate(45deg);
  }
  #sp-menu__check:checked ~ .sp-menu__box span::after {
	top: 0;
	transform: rotate(-45deg);
  }
  #sp-menu__check:checked ~ .hamburger__content {
	left: 0;
  }  

.sp-menu__content {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 90;
	background-color: #8399d3;
  }
  .sp-menu__list {
	color: #fff;
	flex-direction: column;
	padding: 70px 10px 0;
  }
  .sp-menu__item {
	border-bottom: solid 1px #ffffff;
	list-style: none;
  }
    .sp-menu__item2{
	border-bottom: solid 1px #ffffff;
	list-style: none;
	position: relative; /* ← 追加 */
	padding-right: 1.5em; /* ← 余白を追加（+と文字の間隔調整） */
  }
      .sp-menu__item2::after{
	content: "+";
	position: absolute; /* ← 追加 */
	right: 5px;            /* ← 右端に寄せる */
	top: 50%;
	transform: translateY(-50%);
  }
  .sp-menu__link {
	display: block;
	width: 100%;
	font-size: 2.5rem;
	box-sizing: border-box;
	color: #ffffff;
	text-decoration: none;
	padding: 9px 15px 10px 0;
  }

   #sp-menu__check:checked ~ .sp-menu__content {
	left: 0;
  }
  .sp-menu__content {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 100%;
	z-index: 90;
	background-color: #3584bb;
	transition: all 0.5s;
  }
header {
	height: 64px;
	position: relative;
}
header nav {
	height: 64px;
}
.logo_box {
	margin: 0 auto;
	text-align: center;
}
.logo_box img {
	height: 40px;
}
.logo_box .copy {
	font-size: 1rem;
}
.back {
	bottom: 0;
	right: 0;
}
.index .about {
	margin: 20px auto 100px;
}
.video{
	margin: -80px 0;
}
.index .about .about_box .top_img {
	/*width: 90%;*/
	width: 40%;
}
.index .about .about_box .blue_box {
	width: 110%;
	left: 4%;
	padding: 24px 24px 8px 24px;
}
.index .about .about_box .blue_box p:first-child {
	font-size: 1.8rem;
}
.index .about .about_box .blue_box p {
	font-size: 1.2rem;
	margin: 0 0 16px 0;
}
.index .business {
	padding: 0 0 80px;
}
.index .business .business_box {
	margin: 0 auto;
}
.business_text {
	margin: 56px auto 40px auto;
}
.index .business .business_box {
	display: flex;
	flex-direction: column;
}
.index .product {
	margin: 0 auto 80px;
}
.product .product_box div {
	display: flex;
	flex-direction: column;
}
.product .product_box div.fence {
	flex-direction: column;
}
.index .recruit .recruit_box .text {
	margin: -24px 0;
}
.guide_inner{
	flex-direction: column;
	margin: -40px auto;
}
.guide_inner>a{
    width: 96%;
}
.guide .new-grads p:first-child, .guide .mid-career p:first-child {
	font-size: 2.2rem;
}
.guide .mid-career {
	margin: 8px auto auto;
}
.company .greeting {
	flex-direction: column;
	text-align: center;
	margin: 0 auto 80px;
}
.company .greeting img {
	max-width: 80%;
}
.company .greeting p {
	text-align: left;
}
.info table th {
	width: 104px;
	padding: 16px 8px;
}
.info table td {
	padding: 16px;
}
.modal__card {
	width:  calc(34% - 16px);
	margin: 0 4px 16px 4px;
}
.recruit .sub_head {
	height: 320px;
	font-size: 1.8rem;
	line-height: 2.2rem;
}
.recruit .sub_head div {
	padding: 180px 0 0 0;
}
.recruit .sub_head div p:first-child {
	font-size: 3rem;
}
.recruit .about {
	flex-direction: column;
}
.recruit .about div {
	width: 96%;
	display: flex;
}
.recruit .about div .about_img {
	width: 160px;
}
.recruit .about div p:nth-child(2) {
	margin: 4px 8px;
	flex: 1;
}
.recruit .interview_box {
	width: 96%;
	margin: 24px auto;
	flex-direction: column;
}
.recruit .interview_box:nth-child(odd) {
	flex-direction:column;
}
.recruit .interview_box .img {
	width: 96%;
	height: 200px;
}
.img_02 {
	background-position-y: 0;
}
.recruit .interview_box .text {
	padding: 0 32px 32px 32px;
}
.recruit .interview_box .text p:nth-child(odd) {
	font-size: 1.8rem;
	margin: 32px 0 16px 0;
}
.recruit table {
	margin: 0 0 56px 0;
}
.recruit .flow {
	flex-direction: column;
}
.recruit .flow div {
	width: 96%;
	margin: 0 auto;
}
.recruit .flow li {
	min-height: 40px;
}
.recruit .flow li {
	height: 40px;
}
.recruit .flow div p {
	font-size: 1.6rem;
}
.recruit .flow li span {
	display: block;
	font-size: 1.2rem;
}
.recruit .hr {
	margin: 0 auto 80px auto;
}
.recruit .hr img {
	width: 160%;
}
.h1_recruite{
	font-size: 2.8rem;
	margin: 0 0 32px 0;
	padding: 12px 0 0 0;
}
.contact table tr {
	display: flex;
	flex-direction: column;
}
.contact table th {
	width: 96%;
	padding: 8px;
}

  /* wordpressで3枚の画像更新追加 */
.recruit .about_wrap {
    margin-bottom: 0px;
}




footer ul {
	font-size: 2rem;
	flex-direction: column;
	text-align: center;
}
footer ul li {
	width: 100%;
	border-bottom: 1px solid #8399d3;
	padding: 16px;
}
footer ul a {
	display: block;
}

footer ul a:link {
	text-decoration: none;
}

footer ul li::after {
	content: none;
}

footer ul li:last-child {
	border: none;
}


}


/*
@media screen and (max-width:600px){
.sub_head {
	font-size: 3rem;
	padding-top: 1rem;
    line-height: 4.5rem;
	height: 120px;
}
}
*/

@media screen and (max-width:500px){
	.index .about .about_box .blue_box p:first-child {
		font-size: 2rem;
	}
	.index .about .about_box .blue_box p {
		font-size: 1.5rem;
		margin: 0 0 16px 0;
	}
	
		.index .about .about_box .top_img {
			width: 30%;
		}
	}

@media screen and (max-width:400px){
	.modal__card {
		width:  calc(50% - 16px);
		margin: 0 4px 16px 4px;
	}
	.recruit .sub_head {
		height: 240px;
		font-size: 1.4rem;
		line-height: 2rem;
	}
	.recruit .sub_head div p:first-child {
		font-size: 2rem;
		margin: -80px 0 0 0;
	}	
	.recruit .about div {
		width: 96%;
		display: flex;
		flex-direction: column;
	}
	.recruit .about div .about_img {
		width: 80%;
		margin: 0 auto;
	}
	.recruit .about div p:nth-child(2) {
		margin: 16px auto 0;
		flex: 1;
	}
	.recruit .about_wrap {
    margin-bottom: 0px;
}
		
}


/*募集要項ボタン*/
div.info-button{
	background: #0e2788;
    color: #fff;
    padding: 5px 10px;
    width: 200px;
    border-radius: 2px;
    margin-top: 10px;
    font-size: larger;
    text-align: center;
	text-decoration:none;
}
div a{
	text-decoration:none;
}
div.info-button:hover{
	background: #122d9b;
}

/*社員インタビュー*/
figure{
  margin: 0px 0px 24px;
  padding: 2rem;
  border-color: rgb(216, 216, 216);
  border-radius: 4px;
  background: rgb(249, 249, 249);
}

body .wp-block-columns{
    background: rgb(236, 238, 246)!important;
    margin: 0px 0px 32px!important;
    padding: 10px!important;
}

h2.wp-block-heading{
  color: rgb(14, 39, 136)!important;
    font-size: 2.2rem!important;
    font-weight: 600!important;
    margin: 40px 0px 16px!important;
}

.wp-block-separator{
border-top:0px;
}

/*福利厚生*/
.benefits-list li::before{
 content: "●";
 color: #0e2788;
 font-size: larger;
 margin-right: 5px;
}

.benefits-list li{
 font-size: larger;
 font-weight: bold;
}

.benefits-list p{
	margin-top: 5px;
}


/*応募フォーム*/
.wpcf7-form-control-wrap{
	text-align: center;
}