@charset "utf-8";

:root {--corp_color: #00486a;}

/* -----------------------------------------------------------
　common
----------------------------------------------------------- */

* {box-sizing: border-box;}
img {max-width: 100%;}
.fcred {color: #FF0000;}
.fwbold {font-weight: bold;}
.fs80 {font-size: 0.8em;}
.fs120 {font-size: 1.2em;}
.left {float: left;}
.right {float: right;}
.center {text-align: center;}
.alignright {text-align: right;}
.alignleft {text-align: left;}
.clear {clear: both;}
.italic {font-style: italic;}
figure img {display: block;width: 100%;}
body figure {margin-bottom: 0;}
hr.clear {
  border: none;
  height: 0;
  margin: 0;
  padding: 0;
  background: none;
}
.anc {
  height: 0 !important;
  border: none !important;
  background: none !important;
  margin: -110px 0 0 !important;
  padding: 110px 0 0 !important;
}
a {
  color: inherit;
  text-decoration: none;
}
.mt00 {margin-top: 0 !important;}
.mt05 {margin-top: 5px !important;}
.mt10 {margin-top: 10px !important;}
.mt15 {margin-top: 15px !important;}
.mt20 {margin-top: 20px !important;}
.mt25 {margin-top: 25px !important;}
.mt30 {margin-top: 30px !important;}
.mt40 {margin-top: 40px !important;}
.mt50 {margin-top: 50px !important;}
.mt60 {margin-top: 60px !important;}
.mt70 {margin-top: 70px !important;}
.mt80 {margin-top: 80px !important;}
.mt90 {margin-top: 90px !important;}
.mt100 {margin-top: 100px !important;}
.mb00 {margin-bottom: 0 !important;}
.mb05 {margin-bottom: 5px !important;}
.mb10 {margin-bottom: 10px !important;}
.mb15 {margin-bottom: 15px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb25 {margin-bottom: 25px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}
.mb90 {margin-bottom: 90px !important;}
.mb100 {margin-bottom: 100px !important;}
html {font-size: 62.5%;}
body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #333333;
}
input, button, select, option, textarea {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: inherit;
}
button {cursor: pointer;}
body.open {overflow: hidden;}
.pc_cont {display:block!important;} 

@media screen and (min-width: 768px) {
  
  .sp_cont {display: none !important;}
}
a:hover {
  text-decoration: underline;
  color: inherit;
}

/* -----------------------------------------------------------
  template
----------------------------------------------------------- */

/* :::::::::: header :::::::::: */

header {
  position: fixed;
  z-index: 10;
  min-width: 1100px;
  inset: 0 0 auto;
  background: #FFF;
  transition: 0.5s;
}
header.hide {top:-170px;}
header .logo_outer {
  position: absolute;
  z-index: 1;
  inset : 0 auto auto 0;
  width: 480px;
  height: 108px;
  filter: drop-shadow(0 0 5px rgba(0,0,0,0.2));
  transform: translateZ(0);
}
header .logo_outer .logo {
  background: #FFFFFF;
  padding: 40px 130px 40px 50px;
  clip-path: polygon(0 0, 100% 0, 75% 100%, 0 100%);
}
header .logo_outer .logo img {display: block;}

/* :::::::::: nav :::::::::: */

header .menu {display: none;}
nav .nav_bg {display: none;}
header .nav_top {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  height: 48px;
  line-height: 48px;
  padding: 0 60px 0 300px;
  background: linear-gradient(to right,  #ffffff 0%,#00486a 60%);
}
header .nav_top ul {
  position: relative;
  z-index: 0;
  display: inline-block;
  vertical-align: middle;
  width: auto;
  height: 100%;
  color: #FFFFFF;
  font-size: 1.4rem;
}
header .nav_top ul li {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding: 0 1em;
}
header .nav_top ul::before ,
header .nav_top ul li::before {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 1px;
  height: 14px;
  background: #FFFFFF;
  margin: auto;
  inset: 0 auto 0 0 ;
}
header .nav_top ul li::before {inset: 0 0 0 auto;}
header .nav_top ul li a {text-decoration: none;transition: 0.3s;}
header .nav_top ul li a:hover {opacity: 0.5;}
header .nav_top .header_search {
  display: inline-block;
  vertical-align: middle;
  padding: 0 10px;
  cursor: pointer;
}
header .nav_top .header_search input {
  width: 0;
  color: #FFFFFF;
  font-size: 1.4rem;
  transition: 0.5s;
}
header .nav_top .header_search.open input {
  width: 160px;
  height: 26px;
  padding: 0 0.5em;
  margin: 0 10px 0 0;
  border: solid 1px #FFFFFF;
  border-radius: 4px;
}
header .nav_top .header_search button {
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 20px;
  margin: 0 0 4px;
  background: url("../img/common/ico_search.svg") no-repeat center / contain;
  cursor: pointer;
  pointer-events: none;
}
header .nav_top .header_search.open button {pointer-events: auto;}

header .nav_bottom {
  width: 100%;
  height: 60px;
  padding: 0 60px 0 500px;
}
header .nav_bottom > ul {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  width: 100%;
  height: 60px;
}
header .nav_bottom > ul > li {
  position: relative;
  z-index: 0;
  display: inline-block;
  width: auto;
  height: 60px;
}
header .nav_bottom > ul > li > span {
  position: relative;
  z-index: 5;
  display: block;
  height: 60px;
  padding: 16px 20px 26px;
  font-weight: 700;
  cursor: pointer;
}
header .nav_bottom > ul > li > span.current ,
header .nav_bottom > ul > li > span:hover {color: var(--corp_color);}
header .nav_bottom > ul > li > span::after {
  position: absolute;
  display: block;
  content: "";
  width: 0;
  height: 3px;
  background: var(--corp_color);
  inset: auto 0 16px 0;
  margin: auto;
  transition: 0.5s;
}
header .nav_bottom > ul > li > span:hover::after {width: calc(100% - 40px);}
header .nav_bottom > ul > li > span a {text-decoration: none;}
header .nav_bottom > ul > li > ul {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  z-index: 1;
  width: 240px;
  background: var(--corp_color);
  margin: auto;
  padding: 50px 10px;
  top: 70px;
  left: -100%;
  right: -100%;
  border-radius: 8px;
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.4);
  transition: 0.5s;
}
header .nav_bottom > ul > li > span:hover + ul,
header .nav_bottom > ul > li > span.active + ul {
  opacity: 1;
  visibility: visible;
}
header .nav_bottom > ul > li > ul::before {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 25px;
  height: 20px;
  background: var(--corp_color);
  clip-path: polygon(50% 0 ,100% 100%, 0 100%);
  margin: auto;
  left: 0;
  right: 0;
  top: -20px;
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.4);
}
header .nav_bottom > ul > li > ul li {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  margin: 0 auto 1.2em;
}
header .nav_bottom > ul > li > ul li:nth-last-child(1) {margin: 0;}
header .nav_bottom > ul > li > ul li a {color: #FFFFFF;}

/* :::::::::: company_menu :::::::::: */

.company_home article {
  position: relative;
  z-index: 1;
}
.company_menu {
  position: absolute;
  z-index: 2;
  width: calc(100% - 80px);
  max-width: 1440px;
  min-width: 1040px;
  height: 80px;
  margin: auto;
  left: 0;
  right: 0;
  top: -105px;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
  transform: translateZ(0);
  transition: 0.5s;
}
.home .company_menu {top: -55px;}
.tate + .home .company_menu {top: -50px;}

.company_menu.fixed ,
.company_home .company_menu.fixed {
  position: fixed;
  top: 120px;
  /*transition: 0.5s;*/
}
.header_company.hide + main .company_menu.fixed,
.header_company.hide + .kv_company + .company_home .company_menu.fixed {top: 20px;}


.company_menu p {display: none;}
.company_menu ul {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  background: #FFFFFF;
  clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px),calc(100% - 20px) 100% ,0 100% ,0 20px);
}
.company_menu ul li {
  position: relative;
  z-index: 0;
  font-size: 1.6rem;
  font-weight: 700;
  padding: 0.5em 0.25em;
  margin: 0 0.5em;
}
.company_menu ul li a {text-decoration: none;}
.company_menu ul li a::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 0;
  height: 2px;
  background: var(--corp_color);
  margin: auto;
  left: 0;
  right: 0;
  bottom: 0;
  transition: 0.5s;
}
.company_menu ul li a:hover::after ,
.company_menu ul li a.current::after {width: 100%;}

/* :::::::::: main :::::::::: */

main {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  min-width: 1100px;
  padding: 130px 0 160px;
  background: #FFFFFF;
  margin: 0 0 655px;
}
article {
  position: relative;
  z-index: 0;
}
main.home {
  margin: 100vh 0 655px;
  padding: 130px 0 0;
  background: none;
  overflow: hidden;
}
main.home.company_home {
  margin: calc(100vh - 50px) 0 655px;
  padding: 0;
  overflow: visible;
}
.tate + main.home {margin: max(calc(100px + 50vw),650px) 0 655px;}
.tate + main.home.company_home {margin: max(calc(132px + 50vw),670px) 0 655px;}
.yoko + main.home {margin: calc(100vw / 2 - 148px) 0 655px;}

main.home article {
  padding: 0 0 160px;
  background: #FFFFFF;
  box-shadow: 0 -10px 10px 0 rgba(0,0,0,0.1);
}
main.home.company_home article {
  padding: 120px 0 160px;
  overflow: hidden;
  box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.1);
}

.box {
  width: 100%;
  max-width: 1200px;
  padding: 0 40px;
  margin: 0 auto;
}

/* :::::::::: footer :::::::::: */

.pagetop {
  position: fixed;
  z-index: 10;
  font-size: 0;
  width: 60px;
  height: 60px;
  background: #FFFFFF;
  border-radius: 50%;
  box-shadow: 2px 2px 8px 0 rgba(0,0,0,0.3);
  cursor: pointer;
  right: 40px;
  bottom: 30px;
  transition: bottom 0.5s;
}
.pagetop.fixed {bottom: 160px;}
.pagetop::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 25px;
  height: 20px;
  background: var(--corp_color);
  clip-path: polygon(50% 0,100% 100% ,0 100%);
  margin: auto;
  inset: 0;
}
footer {
  position: fixed;
  z-index: 0;
  left: 0;
  right: 0;
  bottom: 0;
  min-width: 1100px;
  color: #FFFFFF;
}
.home + footer {
  z-index: -1;
  opacity: 0;
}
footer.show {
  z-index: 1;
  opacity: 1;
}
footer .box {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
footer .footer_bottom .box {align-items: flex-end;}
footer .box > .logo ,
footer .box > .copyright {width: 340px;}
footer .box > .logo img {display: block;}
footer .box > .copyright ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 10px 0 20px;
}
footer .box > .copyright ul li {margin: 0 15px 0 0;}
footer .box > .copyright ul .sns_x {width: 36px;}
footer .box > .copyright ul .sns_is {width: 36px;}
footer .box > .copyright ul .sns_yt {width: 46px;}
footer .box > .copyright ul .sns_fb {width: 40px;}
footer .box > .copyright ul li a {transition: 0.5s;}
footer .box > .copyright ul li a:hover {opacity: 0.5;}
footer .box > .copyright p {font-size: 1rem;}

footer .box > .f_nav {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 600px;
}
footer .box > .f_nav > ul {width: 35%;}
footer .box > .f_nav > ul:nth-last-of-type(1) {width: 65%;}
footer .box > .f_nav ul li {
  font-size: 1.3rem;
  margin: 0 0 1em;
}
footer .box > .f_nav ul li:nth-last-child(1) {margin: 0;}
footer .box > .f_nav ul li a[target="_blank"]::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1em;
  height: 1em;
  background: url("../img/common/ico_target_w.svg") no-repeat center / contain;
  margin: 0 0 5px 5px;
}
footer .box > .f_nav > ul > li p {
  font-size: 1.6rem;
  font-weight: 700;
}
footer .box > .f_nav > ul > li ul {
  margin: 1.2em 0 0 1.2em;
  list-style-type: disc;
}
footer .box > .f_nav > ul > li ul li {margin: 0 0 0.5em;}
footer .footer_top {
  position: relative;
  z-index: 0;
  padding: 200px 0 80px;
  background: linear-gradient(to bottom,  #00486a 1%,#0068b7 100%); 
  overflow: hidden;
}
footer .footer_top::before {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 100vw;
  height: 100%;
  background: rgba(255,255,255,0.03);
  margin: auto;
  inset: -100% 55% -100% auto;
  transform: skew(-45deg);
}
footer .footer_bottom {
  padding: 50px 0;
  background: var(--corp_color);
}
footer .footer_bottom .box {flex-direction: row-reverse;}

a figure.dia {
  position: relative;
  z-index: 0;
  clip-path: polygon(8.4% 0, 100% 0, 100% 87.6%,91.6% 100% ,0 100% ,0 12.4%);
  overflow: hidden;
}
a figure.dia:after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: calc(100% + 50%);
  background: rgba(0,0,0,0.3);
  inset: 0;
  opacity: .25;
  transform-origin: right top;
  transform: translate(-100%, 0) skewX(-30deg);
  transition: .8s .1s ;
}
a:hover figure.dia:after {
  transform: translate(0, 0) skewX(-30deg);
  transition: .4s ;
  opacity: .5;
}
a figure.dia img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.map_box {
  position: relative;
  z-index: 0;
}
.map_box iframe {
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  inset: 0;
}

/* -----------------------------------------------------------
 subpage
----------------------------------------------------------- */


.h2_common ,
.editor_contents h2 {
  color: var(--corp_color);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.4;
  border-top: solid 4px var(--corp_color);
  border-bottom: solid 2px #E7E7E7;
  padding: 0.6em 0;
  margin: 80px 0 40px;
}
.editor_contents .anc + h2 {margin: 70px 0 40px;}
.h2_center ,
.editor_contents .h2_center {
  position: relative;
  z-index: 0;
  color: var(--corp_color);
  text-align: center;
  padding: 0 0 30px;
  margin: 60px auto;
  font-size: 3.2rem;
  font-weight: 700;
  border: none;
}
.h2_center::after ,
.editor_contents .h2_center::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 60px;
  height: 4px;
  background: var(--corp_color);
  margin: auto;
  inset: auto 0 0;
}

.editor_contents h3 ,
.h3_common {
  position: relative;
  color: var(--corp_color);
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  border-bottom: solid 1px #E7E7E7;
  padding: 0 1em 0.6em;
  margin: 70px 0 40px;
}
.editor_contents h3::before ,
.h3_common::before {
  position: absolute;
  display: block;
  content: "";
  width: 8px;
  height: calc(100% - 10px);
  background: var(--corp_color);
  margin: auto;
  top: 0;
  left: 0;
}
.editor_contents h4 {
  color: var(--corp_color);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  padding: 0.5em 1em;
  border-left: solid 4px var(--corp_color);
  background: #f7f7f7;
  margin: 60px 0 30px;
}
.editor_contents h5 {
  color: var(--corp_color);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.4;
  margin: 60px 0 30px;
}
.editor_contents h2 + h3 {margin: 50px 0 40px;}
.editor_contents h3 + h4 {margin: 40px 0 30px;}
.editor_contents h4 + h5 {margin: 40px 0 30px;}
.editor_contents p {
  line-height: 1.8;
  margin: 0 0 20px;
}
.editor_contents figure.wp-block-image {
  text-align: center;
  margin: 20px 0 40px;
}
.editor_contents figure.wp-block-image img {height: auto;}
.editor_contents figure figcaption {font-size: 0.86em;}
.editor_contents ul {margin: 0 0 20px;}
.editor_contents ul li {
  position: relative;
  font-weight: 500;
  line-height: 1.8;
  padding: 0 0 0 1em;
  margin: 0 0 5px;
}
.editor_contents ul li::before {
  position: absolute;
  display: block;
  content: "";
  width: 0.6em;
  height: 0.6em;
  background: var(--corp_color);
  border-radius: 50%;
  top: 0.65em;
  left: 0;
}
.editor_contents ol {
  margin: 0 0 20px;
  counter-reset: item;
  list-style-type: none;
}
.editor_contents ol li {
  position: relative;
  font-weight: 500;
  line-height: 1.8;
  padding: 0 0 0 1.8em;
  margin: 0 0 5px;
}
.editor_contents ol li:before {
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  line-height: 20px;
  border-radius: 50%;
  background: var(--corp_color);
  color: #FFFFFF;
  text-align: center;
  counter-increment: item;
  content: counter(item);
  top: 4px;
  left: 0;
}
.editor_contents table {
  width: 100%;
  margin: 0 0 40px;
  max-width: 100%;
  text-align: left;
  clear: both;
}
.editor_contents table caption {caption-side: bottom;}
.editor_contents table th p, 
.editor_contents table td p {margin-bottom: 0;}
.editor_contents table th {
  font-weight: 500;
  text-align: center;
  padding: 1em;
  vertical-align: top;
  background: #EBF2F8;
  border: solid 1px #CCCCCC;
}
.editor_contents table td {
  padding: 1em;
  vertical-align: top;
  border: solid 1px #CCCCCC;
}
.editor_contents p a, 
.editor_contents li a, 
.editor_contents table a, 
.editor_contents caption a, 
.editor_contents figcaption a {
  color: var(--corp_color);
  text-decoration: underline;
}
.editor_contents p a:hover, 
.editor_contents li a:hover, 
.editor_contents table a:hover, 
.editor_contents caption a:hover, 
.editor_contents figcaption a:hover {opacity: 0.5;}




.editor_contents p a[target="_blank"]::after {
  display: inline-block;
  vertical-align: text-top;
  margin: 0 0.5em;
  content: "";
  width: 1.2em;
  height: 1.2em;
  background: url("../img/common/ico_target.svg") no-repeat center / contain;
}
.editor_contents p a[href$=".xls"]::after, 
.editor_contents p a[href$=".xlsx"]::after {
  margin: 0.2em 0.5em 0;
  background: url("../img/common/ico_excel.svg") no-repeat center / contain;
}
.editor_contents p a[href$=".pdf"]::after {
  margin: 0.2em 0.5em 0;
  background: url("../img/common/ico_pdf.svg") no-repeat center / contain;
}



.editor_contents .bg_box {
  background: #F2F2F2;
  padding: 30px;
  margin: 20px auto 40px;
}
.editor_contents .border_box {
  border: solid 1px #999999;
  padding: 30px;
  margin: 20px auto 40px;
}

/* -----------------------------------------------------------
 Single/Archive
----------------------------------------------------------- */

.news_cat {color: #FFFFFF;}

.information_japan,
.information_hokkaido,
.information_touhoku,
.information_kkse,
.information_kanchu,
.information_chushikoku,
.information_kyusyu {background: #005bab!important;}

.recruit_japan,
.recruit_hokkaido,
.recruit_touhoku,
.recruit_kkse,
.recruit_kanchu,
.recruit_chushikoku,
.recruit_kyusyu {
  background: #8bc53f!important;
  letter-spacing: 1em;
  text-indent: 1em;
}

.event_japan,
.event_hokkaido,
.event_touhoku,
.event_kkse,
.event_kanchu,
.event_chushikoku,
.event_kyusyu {background: #00a89c!important;}

.select_outer {
  position: relative;
  width: 400px;
  height: 60px;
  margin: 80px 0;
}
.select_outer::after {
  position: absolute;
  display: block;
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  border-right: solid 2px var(--corp_color);
  border-bottom: solid 2px var(--corp_color);
  transform: rotate(45deg);
  margin: auto;
  top: 1em;
  right: 2rem;
  pointer-events: none;
}
.select_outer select {
  width: 100%;
  height: 60px;
  color: var(--corp_color);
  font-size: 1.8rem;
  padding: 0 2em;
  border: solid 1px var(--corp_color);
  cursor: pointer;
}

.news_info {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  border-bottom: solid 4px var(--corp_color);
  margin: 60px 0 0;
}
.news_info .news_cat {
  width: 160px;
  height: 40px;
  line-height: 40px;
  text-align: center;
}
.news_info .news_date {
  width: 160px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  background: #e2e3e1;
}
h1.news_title {
  padding: 0.6em 0;
  margin: 0 0 40px;
  font-size: 3.6rem;
  line-height: 1.5;
  border-bottom: solid 1px #e6e6e6;
}
.news_list li {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  line-height: 1.3;
}
.news_list li p:nth-of-type(1) {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 130px;
  padding: 20px 0;
  border-bottom: solid 1px var(--corp_color);
  margin: 0 5px 0 0;
}
.news_list li p:nth-of-type(2) {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 140px;
  padding: 20px 0;
  border-bottom: solid 1px #cbcbcb;
}
.news_list li p:nth-of-type(3) {
  width: calc(100% - 275px);
  padding: 20px 0;
  border-bottom: solid 1px #cbcbcb;
} 
.news_list li:nth-child(1) p:nth-of-type(1) {border-top: solid 1px var(--corp_color);}
.news_list li:nth-child(1) p:nth-of-type(2) ,
.news_list li:nth-child(1) p:nth-of-type(3) {border-top: solid 1px #cbcbcb;}
a .doc_size::before {content: "（";}
a .doc_size::after {content: "）";}

.news_list li a:hover {color: #00486a;}
.news_list li a[target="_blank"]::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1.2em;
  height: 1.2em;
  margin: 0 0 3px 5px;
  background: url("../img/common/ico_target.svg") no-repeat center / contain;
}
.news_list li a[href$=".pdf"]::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1.2em;
  height: 1.2em;
  margin: 0 0 3px 5px;
  background: url(../img/common/ico_pdf.svg) no-repeat center / auto 100%;
}
.news_list li .news_cat {
  width: 90px;
  height: 24px;
  font-size: 1.4rem;
  line-height: 24px;
  text-align: center;
  background: #CCCCCC;
  border-radius: 99px;
}
.pagenation {
  width: 100%;
  text-align: center;
  margin: 70px auto 0;
}
.pagenation a,.pagenation span {
  display: inline-block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  margin: 0 2px 2px;
  border: solid 1px #E1E1E1;
  background: #FFFFFF;
  vertical-align: top;
}
.pagenation a:hover,.pagenation span.current {background: #E1E1E1;}
.pagenation a.nextpostslink,
.pagenation a.previouspostslink {
  position: relative;
  font-size: 0;
}
.pagenation a.nextpostslink::after ,
.pagenation a.previouspostslink::after {
  position: absolute;
  display: block;
  content: "";
  width: 7px;
  height: 7px;
  border-top: solid 1px;
  border-right: solid 1px;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.pagenation a.nextpostslink::after {
  transform: rotate(45deg);
  right: 6px;
}

.pagenation a.previouspostslink::after {
  transform: rotate(-135deg);
  left: 6px;
}

.btn_back {
  width: 480px;
  height: 80px;
  line-height: 78px;
  padding: 0;
  margin: 40px auto 0;
}
.btn_back a {
  display: block;
  height: 100%;
  color: var(--corp_color);
  font-weight: 700;
  font-size: 2rem;
  border-radius: 99px;
  border: solid 1px var(--corp_color);
  background: #FFFFFF;
  text-align: center;
  text-decoration: none;
  transition: 0.5s;
}
.btn_back a:hover {
  color: #FFFFFF;
  background: var(--corp_color);
}


/* -----------------------------------------------------------
 home
----------------------------------------------------------- */

.home_kv {
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  min-width: 1100px;
  height: auto;
  min-height: 610px;
  max-height: calc(100vh - 132px);
  background: #FFFFFF;
  padding: 14px;
  margin: 108px 0 0;
  /*overflow: hidden;*/
}
.home_kv.kv_company.tate {padding-bottom: 30px;}
.home_kv.yoko {
  height: calc(100vw / 2 - 148px);
  min-height: calc(100vw / 2 148px);
  max-height: calc(100vw / 2- 148px);
}
.home_kv .home_kv_bg {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 120vw;
  height: 100vh;
  background: rgba(0,0,0,0.75);
  opacity: 0;
  top: 0;
  left: 0;
  margin: auto;
  pointer-events: none;
}
.kv_slider {
  z-index: 1;
  margin: 0 auto!important;
  opacity: 0;
  transition: 0.5s;
}
.kv_slider.slick-initialized {opacity: 1;}
.kv_slider li {text-align: center;}
.kv_slider li figure {
  position: relative;
  display: inline-block;
  width: auto;
  height: calc(100vh - 180px);
}
.kv_company .kv_slider li figure {height: calc(100vh - 220px);}
.home_kv.yoko .kv_slider li figure {height: calc(100vw / 2 - 168px);}
.home_kv.kv_company.yoko .kv_slider li figure {height: calc(100vw / 2 - 168px);}

.kv_slider li figure span {
  display: block;
  height: 100%;
  filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.3));
  transform: translateZ(0);
}
.tate .kv_slider li figure {
  width: 100%;
  height: auto;
}
.kv_slider li figure::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100vw;
  min-width: 1500px;
  height: 100%;
  background: var(--corp_color);
  top: 24px;
  right: 24px;
}
.tate .kv_slider li figure img {
  width: 100%;
  height: auto;
}
.kv_slider .slick-list {overflow: visible;}
.kv_slider .slick-slide {
  padding: 10px;
}
.kv_slider .slick-slide figure img {
  width: auto;
  height: 100%;
  margin: 0 auto;
  clip-path: polygon(6.5% 0, 100% 0, 100% 87.5%,93.5% 100%,0 100% ,0 12.5%);
}
.kv_slider .slick-arrow {
  top: auto;
  width: 40px;
  height: 40px;
  bottom: 50px;
  z-index: 10;
  transform: translateY(0);
  border-radius: 50%;
  box-shadow: 2px 2px 3px 0 rgba(0,0,0,0.3);
  transition: opacity 0.3s;
}
.kv_slider .slick-prev {background: url("../img/common/slick_l.svg") no-repeat center / cover;}
.kv_slider .slick-next {background: url("../img/common/slick_r.svg") no-repeat center / cover;}
.kv_slider .slick-arrow::before {display: none;}
.kv_slider .slick-prev:hover,
.kv_slider .slick-prev:focus {background: url("../img/common/slick_l.svg") no-repeat center / cover;}
.kv_slider .slick-next:hover,
.kv_slider .slick-next:focus {background: url("../img/common/slick_r.svg") no-repeat center / cover;}
.kv_slider .slick-prev:hover,
.kv_slider .slick-next:hover {opacity: 0.5;}

.kv_slider .slick-dots {
  display: flex;
  justify-content: flex-start;
  margin: auto;
  left: 50px;
  right: 0;
  bottom: 67px;
}
.kv_slider .slick-dots li {
  width: 23%;
  height: 5px;
  margin: 0 1%;
}
.kv_slider .slick-dots > li:first-child:last-child {display: none;}
.kv_slider .slick-dots li button {
  display: block;
  width: 100%;
  height: 100%;
  background: #FFFFFF;
  padding: 0;
}
.kv_slider .slick-dots li button::before {
  content: "";
  width: 0;
  height: 100%;
  background: var(--corp_color);
  opacity: 1!important;
}
.kv_slider .slick-dots li.slick-active button::before {animation: kv_dots linear 5s;}

@keyframes kv_dots {
  0% {width: 0%;}
  100% {width: 100%;}
}
.home .h2_box h2 {
  color: var(--corp_color);
  font-family: "Montserrat", serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: italic;
  font-size: 4.8rem;
  margin: 0 0 10px;
  line-height: 1.3;
}
.home .h2_box p {
  color: var(--corp_color);
  font-size: 1.5rem;
  font-weight: 500;
}
.bg_area01 {
  position: relative;
  z-index: 1;
}
.bg_area01::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100%;
  height: 70%;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(135deg,  #ffffff 0%,#d3dfe4 20%,#00486a 80%); 
}
.btn_home {
  width: 200px;
  height: 56px;
  text-align: center;
  margin: 0 auto;
}
.btn_home a {
  display: block;
  height: 100%;
  line-height: 54px;
  text-decoration: none;
  color: var(--corp_color);
  font-size: 1.8rem;
  font-weight: 700;
  border: solid 1px var(--corp_color);
  transition: 0.5s;
}
.btn_home a:hover {
  color: #ffffff;
  background: var(--corp_color);
}
.home .box .slick-arrow {
  position: relative;
  width: 60px;
  height: 60px;
  background: #FFFFFF;
  right: auto;
  bottom: auto;
  z-index: 1;
  transition: opacity 0.3s;
}
.home .box .slick-arrow:hover {opacity: 0.5;}
.home .box .slick-arrow::before {
  display: block;
  content: "";
  width: 12px;
  height: 15px;
  clip-path: polygon(0 50% ,100% 0 ,100% 100%);
  background: var(--corp_color);
  margin: auto;
  inset: 0;
  opacity: 1;
}
.home .box .slick-arrow.slick-next::before {
  clip-path: polygon(0 0 ,100% 50% ,0 100%);
}
.home_pickup {
  position: relative;
  z-index: 0;
  padding: 60px 0 0;
}
.home_pickup .box {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}
.home_pickup .box > .h2_box {
  position: absolute;
  z-index: 2;
  width: 240px;
  top: 0;
  left: 40px;
}
.home_pickup .box > .pickup_slider {
  width: 100%;
  max-height: 430px;
  padding: 0 30px 40px!important;
  transform: translateX(340px);
  z-index: 0;
}
.home_pickup .box > .pickup_slider.slider_short {transform: translateX(0);padding: 0 30px 60px!important;}
.home_pickup .box > .pickup_slider .slick-list {
  position: static;
  overflow: visible;
}
.home_pickup .box > .pickup_slider .slick-slide {
  margin: 0 1vw;
  opacity: 0;
  visibility: hidden;
  transition: 0.5s;
}
.home_pickup .box > .pickup_slider .slick-slide.slick-current ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current + .slick-slide ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current + .slick-slide + .slick-slide ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current + .slick-slide + .slick-slide + .slick-slide {
  opacity: 1;
  visibility: visible;
}
.home_pickup .box > .pickup_slider .slick-slide figure {transition: 0.5s;}
.home_pickup .box > .pickup_slider .slick-slide.slick-current figure {
  transform: scale(1.5);
  transform-origin: bottom right;
}
.home_pickup .box > .pickup_slider a {text-decoration: none;}
.home_pickup .box > .pickup_slider a figure {margin: 0 0 20px;}
.home_pickup .box > .pickup_slider a figure {
  aspect-ratio: 440 / 246;
  clip-path: polygon(8.4% 0, 100% 0, 100% 85%,91.6% 100% ,0 100% ,0 15%);
}
.home_pickup .box > .pickup_slider a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home_pickup .box > .pickup_slider p {
  color: #FFFFFF;
  font-size: 2rem;
  font-weight: 700;
  padding: 0 12px;
  margin: 0 0 20px;
}
.home_pickup .box > .pickup_slider span {
  opacity: 0;
  visibility: hidden;
  transition: 0.5s;
  color: #FFFFFF;
  padding: 0 12px;
}
.home_pickup .box > .pickup_slider .slick-slide.slick-current p ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current span {
  opacity: 1;
  visibility: visible;
  width: 150%;
  transform: translateX(-34%);
  transition: transform 0.3s;
}
.home_pickup .box > .pickup_slider a p ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current a p ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current a span {transition: 0.3s;}

.home_pickup .box > .pickup_slider a:hover p ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current a:hover p ,
.home_pickup .box > .pickup_slider .slick-slide.slick-current a:hover span {opacity: 0.5;}

.home_pickup .box > .pickup_slider .slick-arrow {
  position: absolute;
  left: -340px;
  top: 180px;
  transition: opacity 0.3s;
}
.home_pickup .box > .pickup_slider .slick-next {left: -280px;}
.home_pickup .box > .pickup_slider .slick-slide.slick-current span {display: block;}
.home_event {
  position: relative;
  z-index: 1;
  padding: 0 0 80px;
}
.home_event .box::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 110vw;
  min-width: 1500px;
  height: calc(100% - 160px);
  background: #e5edf0;
  right: -50px;
  bottom: 0;
  clip-path: polygon(0 0,100% 0 ,100% calc(100% - 160px),calc(100% - 160px) 100% ,0 100%);
}
.home_event .box > .h2_box {
  position: relative;
  z-index: 0;
  padding: 80px 0 0;
  text-align: center;
}
.home_event .box > .h2_box::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100vw;
  min-width: 1200px;
  height: 100%;
  background: #e5edf0;
  left: 0;
  top: 0;
  clip-path: polygon(180px 0 ,100% 0,100% 100% , 0 100%,0% 180px);
}
.home_event .event_slider {
  width: calc(100% + 30px);
  margin: 60px auto;
}
.home_event .event_slider a {text-decoration: none;}
.home_event .event_slider .slick-list {padding: 0!important;}
.home_event .event_slider .slick-list .slick-slide {margin: 0 30px 0 0;}
.home_event .event_slider .slick-list .slick-slide p {
  font-size: 2rem;
  font-weight: 700;
  color: var(--corp_color);
  margin: 0 auto 10px;
  text-align: center;
}
.home_event .event_slider .slick-list .slick-slide span {
  display: block;
  font-size: 1.5rem;
  text-align: center;
}
.home_event .event_slider .slick-list .slick-slide a p ,
.home_event .event_slider .slick-list .slick-slide a span {transition: 0.3s;}
.home_event .event_slider .slick-list .slick-slide a:hover p ,
.home_event .event_slider .slick-list .slick-slide a:hover span {opacity: 0.5;}


.home_event .event_slider .slick-list .slick-slide .event_tag {
  display: inline-block;
  width: auto;
  min-width: 80px;
  height: 30px;
  line-height: 30px;
  border-radius: 99px;
  text-align: center;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 700;
  background: var(--corp_color);
  transform: translateX(12px) translateY(-15px);
  margin: 0;
  padding: 0 0.5em;
}
.home_event .event_slider .slick-list .slick-slide a:hover .event_tag {opacity: 1;}
.home_event .event_slider li figure {aspect-ratio: 3 / 2;}
.home_event .event_slider li figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home_event .box > .event_slider .slick-arrow {
  position: absolute;
  top: auto;
  left: auto;
  right: 80px;
  bottom: -120px;
  transform: none;
  transition: opacity 0.3s;
}
.home_event .box > .event_slider .slick-next {
  left: auto;
  right: 20px;
}
.home_event .box > .event_company_link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  width: 640px;
  margin: 0 auto;
}
.home_event .box > .event_company_link .btn_home {margin: 0 0 20px;}
.home_event .box > .event_info {
  color: var(--corp_color);
  font-size: 1.5rem;
  font-weight: 500;
  margin: 100px auto;
  text-align: center;
}
.bg_area02 {
  position: relative;
  z-index: 1;
}
.bg_area02::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100%;
  height: calc(100% - 80px);
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to bottom,  #ffffff 0%,#d9e3e8 16%,#00486a 40%,#00486a 100%); 
  clip-path: polygon(0 0,100% 0,100% 80%,80% 100% ,0 100%);
}
.bg_area03 {
  position: relative;
  z-index: 1;
}
.bg_area03::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: calc(50vw + 720px);
  max-width: calc(100% - 24px);
  height: 100%;
  top: 0;
  right: 0;
  background: linear-gradient(to right,  #ffffff 0%,#d9e4e9 65%,#d9e4e9 65%); 
  clip-path: polygon(160px 0,100% 0,100% calc(100% - 160px),calc(100% - 160px) 100% ,0 100%,0 160px);
}
.bg_area02 .h2_box {
  text-align: center;
  margin: 0 auto 50px;
}
.home_product {padding: 100px 0;}
.home_product figure {
  filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.3));
  transform: translateZ(0);
}
.home_product figure a {
  display: block;
  height: 100%;
  overflow: hidden;
  clip-path: polygon(40px 0,100% 0,100% calc(100% - 40px),calc(100% - 40px) 100% ,0 100%,0 40px);
}
.home_product figure a::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: calc(100% + 50%);
  background: rgba(0,0,0,0.3);
  inset: 0;
  opacity: .25;
  transform-origin: right top;
  transform: translate(-100%, 0) skewX(-30deg);
  transition: .8s .1s ;
}
.home_product figure a:hover:after {
  transform: translate(0, 0) skewX(-30deg);
  transition: .4s ;
  opacity: .5;
}
.home_about {padding: 100px 0 30px;}
.home_about + .home_about {padding: 0 0 30px;}
.home_company {padding: 0 0 30px;}
.home .home_list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.home .home_list::after {
  display: block;
  content: "";
  width: 31%;
  height: 0;
}
.home .home_list li {
  width: 31%;
  margin: 0 0 50px;
}
.home .home_list li figure {margin: 0 auto 10px;}
.home .home_list li p {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  transition: 0.3s;
}
.home .home_list li a {text-decoration: none;}
.home .home_list li a:hover p {opacity: 0.5;}
.home .home_list li figure {aspect-ratio: 3 / 2;}
.home .home_list li figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home_news {margin: 120px 0 0;}
.home_news .box {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.home_news .box .h2_box {
  width: 280px;
  padding: 50px 0 0;
  border-top: solid 1px var(--corp_color);
}
.home_news .box ul {
  width: calc(100% - 280px);
  border-top: solid 1px var(--corp_color);
}
.home_news .box ul li {
  padding: 20px 0;
  border-bottom: solid 1px var(--corp_color);
}
.home_news .box ul li .news_cat {
  display: inline-block;
  vertical-align: middle;
  width: auto;
  min-width: 80px;
  height: 20px;
  line-height: 20px;
  padding: 0 10px;
  margin: 0 0 5px 10px;
  background: #CCC;
  color: #FFFFFF;
  font-size: 1.3rem;
  font-weight: 500;
  text-align: center;
  border-radius: 99px;
}
.home_news ul li {
  display: block;
  line-height: 1.6;
}
.home_news ul li a:hover {color: #00486a;}

.home_news ul p:nth-of-type(1) {
  display: block;
  width: 100%;
  padding: 0;
  border: none!important;
}
.home_news .btn_home {
  position: absolute;
  top: 180px;
  left: 40px;
}

/* -----------------------------------------------------------
 sub
----------------------------------------------------------- */

.kv_sub {
  position: relative;
  z-index: 0;
  width: calc(100% - 40px);
  height: 280px;
  margin: 0 auto;
  clip-path: polygon(40px 0, 100% 0, 100% calc(100% - 40px),calc(100% - 40px) 100% ,0 100% ,0 40px);
  background: linear-gradient(to right,  #ecf1f4 40%,#bfd1da 100%);
}
.company_sub .kv_sub {margin: 0 auto 60px;}
.kv_sub .p_title {
  position: absolute;
  z-index: 1;
  color: var(--corp_color);
  font-size: 4rem;
  font-weight: 900;
  text-align: center;
  transform: translateY(-50%);
  top: 50%;
  left: 0;
  right: 0;
}
.kv_sub .company_title {
  position: absolute;
  z-index: 1;
  width: 240px;
  height: 50px;
  line-height: 50px;
  background: rgba(255,255,255,0.85);
  border-radius: 10px;
  color: var(--corp_color);
  font-size: 2rem;
  font-weight: 900;
  text-align: center;
  margin: auto;
  top: 20px;
  left: 0;
  right: 0;
}
.kv_sub.has_eyecatch {height: 400px;}
.kv_sub.has_eyecatch > img {
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kv_sub.has_eyecatch .p_title {text-shadow: 0px 0px 15px rgba(255, 255, 255, 1),0px 0px 20px rgba(255, 255, 255, 1);}



.breadcrumbs {
  width: 100%;
  color: var(--corp_color);
  font-size: 1.2rem;
  font-weight: 700;
  padding: 0 50px;
  margin: 10px 0;
}
.breadcrumbs > span {
  display: inline-block;
  margin: 0 0.5em 0 0;
} 
.breadcrumbs > span::after {
  color: #b2b2b2;
  content: "-";
  margin: 0 0 0 0.5em;
}
.breadcrumbs > span:nth-last-child(1)::after {content: none;}
.breadcrumbs > span a {color: #b2b2b2;}  

.portal_list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.portal_list li {
  width: 31%;
  margin: 0 0 40px!important;
  padding: 0!important;
}
.portal_list li::before {display: none!important;}
.portal_list li p {
  text-align: center;
  color: var(--copr_color);
  font-size: 2rem;
  font-weight: 700;
  margin: 10px 0 0!important;
}
.portal_list li a {
  text-decoration: none;
  transition: 0.5s;
}
.portal_list li a figure {aspect-ratio: 3 / 2;}
.portal_list li a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hanbaiten a {transition: 0.5s;}
.hanbaiten a:hover {opacity: 0.5;} 
.editor_contents .hanbaiten a[target="_blank"]::after {display: none;}

.page_corp .corp_nav {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 30px 0 0;
}
.page_corp .corp_nav li {margin: 0 1em;}
.page_corp .corp_nav li a {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding: 0 2em 0 0;
  text-decoration: none;
}
.page_corp .corp_nav li a::before,
.page_corp .corp_nav li a::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.page_corp .corp_nav li a::before {
  width: 1.3em;
  height: 1.3em;
  border: solid 1px var(--corp_color);
  border-radius: 50%;
  top: 0;
  bottom: 0;
  right: 0;
}
.page_corp .corp_nav li a::after {
  width: 0.4em;
  height: 0.4em;
  border-top: solid 2px var(--corp_color);
  border-right: solid 2px var(--corp_color);
  top: 0;
  bottom: 0;
  right: 0.55em;
  transform: rotate(45deg);
}

.page_corp .corp_nav li:hover a::before ,
.page_corp .corp_nav li.current a::before {
  background: var(--corp_color);
  border: solid 1px var(--corp_color);
}
.page_corp .corp_nav li:hover a::after ,
.page_corp .corp_nav li.current a::after {
  border-top: solid 2px #FFFFFF;
  border-right: solid 2px #FFFFFF;
}
.page_corp .corp_nav li span {
  position: relative;
  z-index: 0;
  display: inline-block;
  color: var(--corp_color);
  font-weight: 700;
  text-decoration: none;
}
.page_corp .corp_nav li span::after {
  position: absolute;
  z-index: 0;
  margin: auto;
  inset: auto 0 0;
  display: block;
  content: "";
  width: 0;
  height: 2px;
  background: var(--corp_color);
  transition: 0.5s;
}
.page_corp .corp_nav li:hover span::after, 
.page_corp .corp_nav li.current span::after {width: 100%;}
.page_corp .corp_info > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.page_corp .corp_info > div > figure {
  width: 390px;
  margin: 0;
}
.page_corp .corp_table {
  width: 100%;
  table-layout: fixed;
}
.page_corp .corp_table th {
  width: 350px;
  text-align: left;
  border-top: solid 1px var(--corp_color);
  border-bottom: solid 1px var(--corp_color);
  border-left: none;
  border-right: none;
  background: none;
}
.page_corp .corp_table td {
  position: relative;
  border-left: none;
  border-right: none;
}
.page_corp .corp_table td::before {
  position: absolute;
  display: block;
  content: "";
  width: 5px;
  height: 104%;
  background: #FFFFFF;
  top: -2%;
  left: 0;
}
.page_corp .corp_info > div > div {width: calc(100% - 460px);}
.page_corp .corp_info .corp_table th {width: 120px;}
.page_corp .map_box {
  width: 100%;
  height: 460px;  
}
.page_corp .corp_message > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-flow: row-reverse;
  margin: 120px 0 0; 
}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(1) {width: 34%;}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(1) figure {margin: 0 0 30px;}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(1) .ceo {
  font-size: 1.2rem;
  text-align: right;
  margin: 0 0 0 auto;
}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(1) .ceo span {
  display: block;
  font-family: 'Noto Serif JP', serif;
  font-size: 3em;
  font-weight: 600;
}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(2) {width: 60%;}
.page_corp .corp_message > div > div.wp-block-group:nth-of-type(2) h2 {
  margin: 0 0 30px;
  border: none;
  color: #333333;
  font-size: 4rem;
  font-weight: 500;
  line-height: 1.8;
}
.idea01,.idea03,.idea04 {font-family: 'Noto Serif JP', serif;}
.idea04 {overflow:hidden;margin:0;}
.idea01 ol li,.idea03 ol li,.idea04 ol li {padding:0;}
.idea01 ol li:before,.idea03 ol li:before,.idea04 ol li:before {content:none;}
.idea01 {text-align:center;}
.idea01 p {
  font-size:3.2rem;
  margin:0 auto 1em;
}
.idea01 ol {font-size:4.8rem;}
.idea02 {overflow:hidden;}
.idea02 h3 {margin-top:0;}
.idea02 div {
  width:calc(100% - 380px);
  float:left;
}
.idea02 figure {
  width:300px;
  margin:0 0 0 80px;
  float:left;
}
.idea03 h3 ,.idea04 h3 {
  color: #333333;
  font-weight:bold;
  font-size:2.8rem;
  padding:0;
  border:none;
  margin:0 0 20px;
}
.idea03 h3::before,.idea04 h3::before {content:none;}
.idea03 ol {margin:0 0 80px;overflow:hidden;}
.idea04 ol {margin:0;overflow:hidden;}
.idea03 ol li {font-size:4rem;}
.idea04 ol li {
  font-size:2.4rem;
  width:calc(100% / 3);
  float:left;
}


/* -----------------------------------------------------------
 event
----------------------------------------------------------- */

.event_nav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  /*max-width: 700px;*/
  margin: 30px auto 0;
}
.event_nav li {margin: 0 0.75em 0.5em;}
.event_nav li a {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding: 0 2em 0 0;
  text-decoration: none;
}
.event_nav li a::before,
.event_nav li a::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.event_nav li a::before {
  width: 1.3em;
  height: 1.3em;
  border: solid 1px var(--corp_color);
  border-radius: 50%;
  top: 0;
  bottom: 0;
  right: 0;
}
.event_nav li a::after {
  width: 0.4em;
  height: 0.4em;
  border-top: solid 2px var(--corp_color);
  border-right: solid 2px var(--corp_color);
  top: 0;
  bottom: 0.15em;
  right: 0.45em;
  transform: rotate(135deg);
}

.event_nav li:hover a::before ,
.event_nav li.current a::before {
  background: var(--corp_color);
  border: solid 1px var(--corp_color);
}
.event_nav li:hover a::after ,
.event_nav li.current a::after {
  border-top: solid 2px #FFFFFF;
  border-right: solid 2px #FFFFFF;
}
.event_nav li span {
  position: relative;
  z-index: 0;
  color: var(--corp_color);
  font-weight: 700;
  text-decoration: none;
}
.event_nav li span::after {
  position: absolute;
  z-index: 0;
  margin: auto;
  inset: auto 0 0;
  display: block;
  content: "";
  width: 0;
  height: 2px;
  background: var(--corp_color);
  transition: 0.5s;
}
.event_nav li:hover span::after, 
.event_nav li.current span::after {width: 100%;}
.event_archive h3 a {
  position: relative;
  z-index: 0;
}
/*
.event_archive h3 a::after {
  position: absolute;
  font-size: 1.6em;
  font-weight: normal;
  content: ">";
  height: 1em;
  line-height: 1;
  text-decoration: none;
  margin: auto;
  top: 0;
  bottom: 0;
  left: calc(100% + 0.5em);
}
*/
.event_box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.event_box figure {
  position: relative;
  z-index: 0;
  width: 350px;
  margin: 0 80px 0 0;
  aspect-ratio: 3 / 2;
}
.event_box figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.event_box figure a:hover img {opacity: 0.5;}
.event_box figure .event_tag {
  position: absolute;
  z-index: 1;
  display: inline-block;
  width: auto;
  min-width: 100px;
  height: 30px;
  line-height: 30px;
  color: #FFFFFF;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  padding: 0 0.5em;
  background: var(--corp_color);
  border-radius: 99px;
  top: -10px;
  left: 20px;
}
.event_box dl {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  flex-wrap: wrap;
  position: relative;
  z-index: 0;
  width: calc(100% - 430px);
  padding: 20px 0;
}
.event_box dl::after {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: 100%;
  background: var(--corp_color);
  left: 120px;
  top: 0;
}
.event_box dl dt {
  width: 120px;
  font-weight: 500;
  color: var(--corp_color);
  margin: 0 0 10px;
}
.event_box dl dd {
  width: calc(100% - 120px);
  margin: 0 0 10px;
  padding: 0 0 0 30px;
}

.event_single .event_box {margin: 80px auto 40px;}
.event_single .event_box figure {
  width: 40%;
  margin: 0 5% 0 0;
}
.event_single .event_box figure img {
  width: 100%;
  height: auto;
}
.event_single .event_box figure .event_tag {
  display: inline-block;
  width: auto;
  min-width: 130px;
  height: 40px;
  line-height: 40px;
  font-size: 2.4rem;
  padding: 0 0.5em;
  top: -20px;
}
.event_single .event_box dl {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  flex-wrap: wrap;
  position: relative;
  z-index: 0;
  width: 55%;
  padding: 30px;
  background: #e5edf0;
}
.event_single .event_box dl::after {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: calc(100% - 60px);
  background: var(--corp_color);
  left: 160px;
  top: 0;
  bottom: 0;
  margin: auto;
}
.event_single .event_box dl dt {
  width: 120px;
  font-weight: 500;
  color: var(--corp_color);
  margin: 0 0 10px;
}
.event_single .event_box dl dd {
  width: calc(100% - 120px);
  margin: 0 0 10px;
  padding: 0 0 0 50px;
}
.event_single .event_box dl dd:nth-last-of-type(1), 
.event_single .event_box dl dt:nth-last-of-type(1) {margin-bottom: 0;}
.event_single .map_box {
  width: 100%;
  height: 460px;  
}

/* -----------------------------------------------------------
 produts
----------------------------------------------------------- */

.product {padding: 130px 0 100px;}
.product .product_list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.product .product_list::before ,
.product .product_list::after {
  display: block;
  content: "";
  width: 23%;
  height: 0;
}
.product .product_list::before {order: 1;}
.product .product_list li {
  width: 23%;
  margin: 0 0 60px;
  padding: 0;
}
.product .product_list li::before {display: none;}
.product .product_list li a {
  text-decoration: none;
  transition: 0.5s;
}
.product .product_list li a:hover {opacity: 0.5;}
.product .product_list li figure {
  aspect-ratio: 1 / 1;
  margin: 0;
}
.product .product_list li figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.product .product_list li p {
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  margin: 0;
  line-height: 1.6;
}
.product .product_nav {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 50px 0 0;
}
.product .product_nav li {margin: 0 2em 0 0;}
.product .product_nav li a {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding: 0 2em 0 0;
  text-decoration: none;
}
.product .product_nav li a::before,
.product .product_nav li a::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.product .product_nav li a::before {
  width: 1.3em;
  height: 1.3em;
  border: solid 1px var(--corp_color);
  border-radius: 50%;
  top: 0;
  bottom: 0;
  right: 0;
}
.product .product_nav li a::after {
  width: 0.4em;
  height: 0.4em;
  border-top: solid 2px var(--corp_color);
  border-right: solid 2px var(--corp_color);
  top: 0;
  bottom: 0.15em;
  right: 0.45em;
  transform: rotate(135deg);
}
.product .product_nav li:hover a::before ,
.product .product_nav li.current a::before {
  background: var(--corp_color);
  border: solid 1px var(--corp_color);
}
.product .product_nav li:hover a::after ,
.product .product_nav li.current a::after {
  border-top: solid 2px #FFFFFF;
  border-right: solid 2px #FFFFFF;
}
.product .product_nav li span {
  position: relative;
  z-index: 0;
  color: var(--corp_color);
  font-weight: 700;
  text-decoration: none;
}
.product .product_nav li span::after {
  position: absolute;
  z-index: 0;
  margin: auto;
  inset: auto 0 0;
  display: block;
  content: "";
  width: 0;
  height: 2px;
  background: var(--corp_color);
  transition: 0.5s;
}
.product .product_nav li:hover span::after, 
.product .product_nav li.current span::after {width: 100%;}
.product .maker_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.product .maker_list li {
  width: 23%;
  margin: 0 0 40px;
}
.product .maker_list li a {
  text-align: center;
  text-decoration: none;
  transition: 0.5s;  
}
.product .maker_list li a:hover {opacity: 0.5;}
.product .maker_list li a figure {
  height: 120px;
  padding: 20px 30px;
  border: solid 1px #e5e5e5;
  border-radius: 4px;
  margin: 0 0 10px;
}
.product .maker_list li a figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.product .maker_list li a p {
  font-size: 1.8rem;
  font-weight: 700;
}
.product .maker_list::before,
.product .maker_list::after {
  display: block;
  content: "";
  width: 23%;
  height: 0;
}
.product .maker_list::before {order: 1;}
.product .work_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.product .work_list li {
  width: 23%;
  height: 120px;
  margin: 0 0 calc(8% / 3);
  border: solid 1px var(--corp_color);
  border-radius: 4px;
}
.product .work_list li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  text-align: center;
  text-decoration: none;
  transition: 0.5s;  
}
.product .work_list li a:hover {opacity: 0.5;}
.product .work_list li a span {
  color: var(--corp_color);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5
}
.product .work_list::before,
.product .work_list::after {
  display: block;
  content: "";
  width: 23%;
  height: 0;
}
.product .work_list::before {order: 1;}

  
/* -----------------------------------------------------------
 search
----------------------------------------------------------- */

.search_box {
  width: 640px;
  height: 50px;
  margin: 80px auto;
}
.search_box form {
  display: flex;
  justify-content: center;
  align-items: stretch;
  width: 100%;
  height: 100%;
  border: solid 1px var(--corp_color);
  border-radius: 4px;
}
.search_box input {
  width: calc(100% - 50px);
  height: 50px;
  padding: 0 1em;
}
.search_box button {
  display: inline-block;
  vertical-align: middle;
  width: 50px;
  height: 50px;
  margin: 0;
  background: url("../img/common/ico_search_c.svg") no-repeat center / 60%;
  cursor: pointer;
}
.search_box + .h2_common {margin-bottom: 0;}
.sort_box {
  padding: 20px 0;
  text-align: right;
  border-bottom: solid 1px #e6e6e6;
}
.sort_box span {
  line-height: 2;
  padding: 0 1em;
}
.sort_box span a.current {
  color: var(--corp_color);
  font-weight: 700;
}
.sort_box span:nth-last-child(1) {border-left: solid 1px #333;}
.search_result {
  padding: 20px 0;
  border-bottom: solid 1px #e6e6e6;
}
.search_result p {margin: 0 0 0.5em;}
.search_result .result_title {
  font-size: 1.5em;
  font-weight: 500;
  color: var(--corp_color);
  margin: 0 0 0.5em;
}
.search_result .result_link {
  font-size: 0.875em;
  margin: 0;
  word-break: break-all;
}

  
/* -----------------------------------------------------------
 hanbaiten
----------------------------------------------------------- */

.page_hanbaiten .anc {
  margin: -180px 0 0 !important;
  padding: 180px 0 0 !important;
}
.hanbaiten {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.hanbaiten > figure {order: 1;}
.hanbaiten > div {width: 220px;}
.hanbaiten .area_right {order: 2;}
.hanbaiten .area_kyushu {
  position: absolute;
  z-index: 0;
  bottom: 0;
  right: 340px;
}
.hanbaiten > div h3 {
  height: 54px;
  line-height: 54px;
  margin: 0 auto 20px;
  text-align: center;
  color: #FFFFFF;
  font-size: 2.4rem;
  font-weight: 700;
}
.hanbaiten > div h3 a {
  display: block;
  height: 100%;
  border-radius: 8px;
  text-decoration: none;
  transition: 0.3s;
}
.hanbaiten > div h3 a:hover {opacity: 0.5;}

.hanbaiten > div h3.hokkaido a {background: #2aa8e8;}
.hanbaiten > div h3.tohoku a {background: #39b9c6;}
.hanbaiten > div h3.kanto a {background: #f9b253;}
.hanbaiten > div h3.kansai a {background: #ff7390;}
.hanbaiten > div h3.chushikoku a {background: #009ed0;}
.hanbaiten > div h3.kyushu a {background: #d395ef;}
.hanbaiten > div ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin: 0 0 80px;
}
.hanbaiten > div ul li {
  width: 100px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  margin: 0 0 15px;
}
.hanbaiten > div ul li a {
  display: block;
  height: 100%;
  color: var(--corp_color);
  font-weight: 500;
  background: #e5edf0;
  border-radius: 99px;
  text-decoration: none;
}
.hanbaiten > div ul li a:hover {
  background: var(--corp_color);
  color: #e5edf0;
}
.hanbaiten > div ul li a[target="_blank"]::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1em;
  height: 1em;
  margin: 0 0 2px 5px;
  background: url("../img/common/ico_target.svg") no-repeat center / contain;
}
.hanbaiten > div ul li a:hover::after {background: url("../img/common/ico_target_w.svg") no-repeat center / contain;}
.hanbaiten_table {
  width: 100%;
  table-layout: fixed;
  font-size: 1.8rem;
  margin: 0 0 60px;
}
.hanbaiten_table th {
  font-size: 1em;
  font-weight: 500;
  text-align: left;
  padding: 1em;
  background: #e5edf0;
  border-top: solid 3px var(--corp_color);
  border-bottom: solid 1px var(--corp_color);
}
.hanbaiten_table th:nth-of-type(1) {width: 200px;}
.hanbaiten_table th:nth-of-type(2) {padding: 1em 2em;}
.hanbaiten_table th:nth-of-type(3) {width: 180px;padding: 1em 1em 1em 2em;}
.hanbaiten_table td {
  position: relative;
  z-index: 0;
  font-size: 1em;
  font-weight: 400;
  text-align: left;
  padding: 1em;
  border-bottom: solid 1px var(--corp_color);
}
.hanbaiten_table td::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 1px;
  height: calc(100% - 1em);
  background: #e7e7e7;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
}
.hanbaiten_table td:nth-of-type(1)::after {display: none;}
.hanbaiten_table td:nth-of-type(1) {width: 200px;font-weight: 500;}
.hanbaiten_table td:nth-of-type(2) {padding: 1em 2em;}
.hanbaiten_table td:nth-of-type(3) {width: 160px;padding: 1em 1em 1em 2em;}
.hanbaiten_table td p:nth-of-type(1) {margin: 0 0 10px;}
.hanbaiten_table td .btn_map {
  position: relative;
  z-index: 0;
  display: inline-block;
  font-size: 1.5rem;
  padding: 0 1.5em 0 1.75em;
  margin: 0 20px 0 0;
  text-decoration: none;
}
.hanbaiten_table td .btn_map::before,
.hanbaiten_table td .btn_map::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.hanbaiten_table td .btn_map::before {
  width: 1.1em;
  height: 1.1em;
  border: solid 1px #005bab;
  border-radius: 50%;
  top: 0;
  bottom: 0;
  left: 0;
}
.hanbaiten_table td .btn_map::after {
  width: 0.3em;
  height: 0.3em;
  border-top: solid 1px #005bab;
  border-right: solid 1px #005bab;
  top: 0;
  bottom: 0.1em;
  left: 0.35em;
  transform: rotate(45deg);
}

.hanbaiten_table td .btn_map:hover::before {
  background: #005bab;
  border: solid 1px #005bab;
}
.hanbaiten_table td .btn_map:hover::after {
  border-top: solid 2px #FFFFFF;
  border-right: solid 2px #FFFFFF;
}
.hanbaiten_table td .btn_map a {
  position: relative;
  z-index: 0;
  display: block;
  color: #005bab;
  text-decoration: none;
}
.hanbaiten_table td .btn_map a::before {
  position: absolute;
  z-index: 0;
  margin: auto;
  inset: auto 0 0;
  display: block;
  content: "";
  width: 0;
  height: 2px;
  background: #005bab;
  transition: 0.5s;
}
.hanbaiten_table td .btn_map a:hover::before, 
.hanbaiten_table td .btn_map a:hover:before {width: 100%;}
.hanbaiten_table td .btn_map a::after {
  position: absolute;
  z-index: 0;
  margin: auto;
  right: -1.5em;
  top: 0;
  bottom: 0;
  display: inline-block;
  content: "";
  width: 1em;
  height: 1em;
  background: url("../img/sub/ico_target_map.svg") no-repeat center / contain;
}
.hanbaiten_table td .btn_calendar {
  display: inline-block;
  vertical-align: middle;
  width: 130px;
  height: 30px;
  line-height: 28px;
  font-size: 1.4rem;
  text-align: center;
  border: solid 1px #0068b7;
  margin: 0 0 3px;
}
.hanbaiten_table td .btn_calendar a {
  display: block;
  height: 100%;
  color: #0068b7;
  text-decoration: none;
}
.hanbaiten_table td .btn_calendar a:hover {
  color: #FFFFFF;
  background: #0068b7;
}
.tab_menu {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  margin: 0 0 30px;  
  border-bottom: solid 1px var(--corp_color);
}
.tab_menu li {
  width: 33.2%; 
  height: 60px;
  line-height: 60px;
  color: #FFFFFF;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
  background: var(--corp_color);
  cursor: pointer;
  margin: 0 0.2% 0 0;
}
.tab_menu li:nth-last-child(1) {margin: 0;}
.tab_menu li.active {
  height: 80px;
  padding: 15px 0 0;
  color: var(--corp_color);
  font-size: 2rem;
  background: #FFFFFF;
  border-top: solid 5px var(--corp_color);
  border-left: solid 1px var(--corp_color);
  border-right: solid 1px var(--corp_color);
  transform: translateY(1px);
}
.tab_content {display: none;}
.tab_content.active {display: block;}
.page_hanbaiten .anc + .h2_common {margin-top: 30px;}

/* -----------------------------------------------------------
 recruit
----------------------------------------------------------- */

.page_recruit .editor_contents h2 {
  color: #0068b7;
  border-top-color: #0068b7;
}
.page_recruit .editor_contents table {
  width: 100%;
  table-layout: fixed;
}
.page_recruit .editor_contents table td {
  border: solid 1px #CCCCCC;
  padding: 1em 1.5em;
}
.page_recruit .editor_contents table td:nth-of-type(1) {
  width: 260px;
  background: #eaf3fc;
}
.page_recruit .editor_contents p a[target="_blank"]::after {display: none;}
.page_recruit .editor_contents .banner_list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.page_recruit .editor_contents .banner_list li {
  width: 23%;
  margin: 0 2% 2% 0;
  padding: 0;
}
.page_recruit .editor_contents .banner_list li:nth-child(4n) {margin: 0 0 2%;}
.page_recruit .editor_contents .banner_list li::before {display: none;}
.page_recruit .editor_contents .portal_list a figure {
  border-radius: 20px;
  overflow: hidden;
}
.page_recruit .editor_contents .portal_list a p {color: #333333;}
.page_recruit .editor_contents .btn_recruit {
  width: 750px;
  margin: 40px auto;
}
.page_recruit .editor_contents .btn_recruit a {
  position: relative;
  z-index: 0;
  display: block;
  height: 100%;
  line-height: 1.2;
  padding: 1.8em;
  border-radius: 99px;
  text-align: center;
  text-decoration: none;
  color: #0068b7;
  font-size: 2.4rem;
  font-weight: 700;
  transition: 0.5s;
  background: linear-gradient(to right, #1978e6, #60b6fc) ;
}
.page_recruit .editor_contents .btn_recruit a:hover {
  color: #FFFFFF;
  opacity: 1;
}
.page_recruit .editor_contents .btn_recruit a::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background: #FFFFFF;
  inset: 0;
  border-radius: 99px;
  margin: auto;
  transition: 0.5s;
}
.page_recruit .editor_contents .btn_recruit a:hover::before {opacity: 0;}
.recruit_top {padding: 130px 0 0;}
.recruit_top .kv_sub.has_eyecatch {height: 280px;}

.recruit_top h2 {
  font-size: 8rem;
  font-weight: 700;
  line-height: 1.2em;
  margin: 0 auto 40px;
  text-align: center;
  background: linear-gradient(to right, #1978e6, #60b6fc); 
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}



.recruit_top .catch {
  text-align: center;
  padding: 100px 0 330px;
  background: url("../img/sub/bg_recruit.jpg") no-repeat bottom center / 100%;
}
.recruit_top .catch p {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2.25;
  background: linear-gradient(to right, #1978e6, #60b6fc); 
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.recruit_top .recruit_about {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-flow: row-reverse;
  margin: 0 0 110px;
}
.recruit_top .recruit_about:nth-of-type(1) {margin-top: 110px;}
.recruit_top .recruit_about:nth-of-type(even) {flex-flow: row;}
.recruit_top .recruit_about > figure {
  position: relative;
  z-index: 1;
  width: 48%;
}
.recruit_top .recruit_about > figure img {border-radius: 20px;}

.recruit_top .recruit_about > figure::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, #1978e6, #60b6fc); 
  border-radius: 20px;
  top: 10px;
  left: -10px;
}
.recruit_top .recruit_about:nth-of-type(even) > figure::after {left: 10px;}
.recruit_top .recruit_about > div {width: 48%;}
.recruit_top .recruit_about > div h3 {
  position: relative;
  z-index: 0;
  color: #0068b7;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 20px;
  padding: 0 0 20px;
}
.recruit_top .recruit_about > div h3::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 120%;
  height: 1px;
  background: #0068b7;
  left: 0;
  bottom: 0;
}
.recruit_top .recruit_about:nth-of-type(even) > div h3::after {
  left: auto;
  right: 0;
}
.recruit_top .recruit_about > div h3 span {
  display: block;
  font-size: 2.4rem;
  font-weight: 900;
  margin: 0 0 5px;
  background: linear-gradient(to right, #1978e6, #60b6fc); 
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.recruit_top .recruit_about > div .link_recruit {
  width: 240px;
  height: 56px;
  line-height: 1.2;
  margin: 30px 0 0;
}
.recruit_top .recruit_about > div .link_recruit a {
  position: relative;
  z-index: 0;
  display: block;
  height: 100%;
  line-height: 1.4;
  padding: 1em;
  border-radius: 99px;
  text-align: center;
  text-decoration: none;
  color: #0068b7;
  font-size: 1.6rem;
  font-weight: 700;
  transition: 0.5s;
  background: linear-gradient(to right, #1978e6, #60b6fc) ;
}
.recruit_top .recruit_about > div .link_recruit a:hover {
  color: #FFFFFF;
  opacity: 1;
}
.recruit_top .recruit_about > div .link_recruit a::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  background: #FFFFFF;
  inset: 0;
  border-radius: 99px;
  margin: auto;
  transition: 0.5s;
}
.recruit_top .recruit_about > div .link_recruit a:hover::before {opacity: 0;}

.recruit_top .recruit_entry {
  background: url("../img/sub/bg_entry.png") no-repeat top center / 100%,linear-gradient(90deg, rgba(24,113,217,0.1) 0%, rgba(96,182,252,0.1) 100%);;
  padding: 270px 0 160px;
}
.recruit_top .recruit_entry h2 {
  font-size: 6.2rem;
  margin: 0 auto 60px;
}
.recruit_top .recruit_entry p {
  width: 760px;
  margin: 0 auto 40px;
}
.recruit_top .recruit_entry p a {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  color: #1877e6;
  font-size: 2.4rem;
  font-weight: 700;
  border-radius: 99px;
  padding: 20px;
}
.recruit_top .recruit_entry p:nth-of-type(2) a {color: #00af98;}
.recruit_top .recruit_entry p:nth-of-type(1) a {background: linear-gradient(to right, #1978e6, #60b6fc);}
.recruit_top .recruit_entry p:nth-of-type(2) a {background: linear-gradient(to right, #00af98, #7ddae9);}
.recruit_top .recruit_entry p a span {
  width: 200px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  color: #FFFFFF;
  border-radius: 99px;
  margin: 0 40px 0 0;
}
.recruit_top .recruit_entry p:nth-of-type(1) a span {background: linear-gradient(to right, #1978e6, #60b6fc);}
.recruit_top .recruit_entry p:nth-of-type(2) a span {background: linear-gradient(to right, #00af98, #7ddae9);}
.recruit_top .recruit_entry p a::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background: #FFFFFF;
  inset: 0;
  border-radius: 99px;
  margin: auto;
  transition: 0.5s;
}
.recruit_top .recruit_entry p a:hover {color: #FFFFFF;}
.recruit_top .recruit_entry p a:hover::before {opacity: 0;}
.recruit_top .recruit_entry p a:hover span {background: #FFFFFF;}
.recruit_top .recruit_entry p:nth-of-type(1) a:hover span {color: #60b6fc;}
.recruit_top .recruit_entry p:nth-of-type(2) a:hover span {color: #7ddae9;}


/* -----------------------------------------------------------
 contact
----------------------------------------------------------- */

main.contact input[type="text"],
main.contact input[type="email"] {
  width: 100%;
  max-width: 560px;
  padding: 0.5em 1em;
  border: solid 1px #c2c2c2;
  border-radius: 6px;
}
main.contact .smf-form--simple-table .wide input[type="text"] ,
main.contact .smf-form--simple-table .wide input[type="email"] {max-width: 100%;}
main.contact .smf-select-control {
  width: 100%;
  max-width: 560px;
}
main.contact .smf-select-control select {
  width: 100%;
  padding: 0.5em 1em;
  border: solid 1px #c2c2c2;
  border-radius: 6px;
}
.smf-form .smf-select-control__toggle:before {
  width: 0.75em!important;
  height: 0.75em!important;
  border-width: 0 2px 2px 0!important;
  border-color: var(--corp_color)!important;
  top: 0.75em!important;
  right: 1em!important;
}
main.contact textarea {
  width: 100%!important;
  padding: 0.5em 1em!important;
  border: solid 1px #c2c2c2!important;
  border-radius: 6px!important;
}
main.contact input[type="text"]::placeholder,
main.contact input[type="email"]::placeholder {color: #cccccc;}

.snow-monkey-form .h2_center {margin-bottom: 140px!important;}
.smf-form--simple-table .smf-item {
  font-size: 2rem;
  border-top: solid 1px #e7e7e7;
  padding: 30px 0!important;
}
.smf-form--simple-table .smf-item__col--label {
  position: relative;
  z-index: 0;
  color: var(--corp_color);
  font-weight: 500;
  flex: 0 0 320px!important;
  max-width: 320px!important;
  padding: 0.35em 120px 0 0!important;
}
.smf-form--simple-table .smf-item__col--label .smf-item__label__text::after {
  position: absolute;
  z-index: 0;
  display: inline-block;
  vertical-align: middle;
  content: "任意";
  width: 56px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 500;
  background: #8f8f8f;
  border-radius: 10px;
  top: 0.5em;
  right: 50px;
}
.smf-form--simple-table .must .smf-item__col--label .smf-item__label__text::after {
  content: "必須";
  background: #ff0000;
}
.smf-form--simple-table .smf-item__col--controls {
  flex: 1 1 calc(100% - 320px)!important;
  max-width: calc(100% - 320px)!important;
}
.smf-form--simple-table .smf-item__col--controls .smf-placeholder + .smf-placeholder {margin-top: 20px;}

.smf-checkboxes-control__control label {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding: 0.25em 0 20px 2em;
}
.smf-checkboxes-control__control label input {display: none!important;}

.smf-checkboxes-control__control label input[type="checkbox"] + span::before {
  position: absolute;
  z-index: 0;
  display: inline-block;
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  border: solid 1px #c2c2c2;
  top: 0.45em;
  left: 0;
}
.smf-checkboxes-control__control label input[type="checkbox"]:checked + span::after {
  position: absolute;
  display: block;
  content: "✔";
  color: var(--corp_color);
  line-height: 1;
  top: 0.5em;
  left: 0.2em; 
  font-size: 2rem;
}

.smf-button-control__control {
  width: 480px;
  height: 80px;
  line-height: 78px!important;
  padding: 0!important;
  color: var(--corp_color)!important;
  font-weight: 700!important;
  font-size: 2rem!important;
  border-radius: 99px!important;
  border: solid 1px var(--corp_color)!important;
  background: #FFFFFF!important;
  transition: 0.5s!important;
  margin-top: 40px;
}
.smf-button-control__control:hover {
  color: #FFFFFF!important;
  background: var(--corp_color)!important;
}


.smf-placeholder + p {
  color:#8f8f8f;
  font-size: 1.8rem;
}
.smf-placeholder + p a {
  color: var(--corp_color);
  text-decoration: underline;
}

.snow-monkey-form[data-screen="confirm"] .smf-item__controls {padding: 5px 0 0;}
.snow-monkey-form .h2_input {display: block;}
.snow-monkey-form .h2_confirm {display: none;}
.snow-monkey-form[data-screen="confirm"] .h2_confirm {display: block;}
.snow-monkey-form[data-screen="confirm"] .h2_input {display: none;}

/* -----------------------------------------------------------
 sitemap
----------------------------------------------------------- */

.sitemap h2 {padding: 0;}
.sitemap h2 a {
  display: block;
  text-decoration: none;
  transition: 0s;
  padding: 0.6em 0;
}
.sitemap h2 a span {
  position: relative;
  z-index: 0;
  display: inline-block;
  color: #333333;
  padding: 0 1.5em 0 0;
}
.sitemap h2 a:hover span {color: var(--corp_color);}
.sitemap h2 a span::before,
.sitemap h2 a span::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
  top: 0.15em;
  bottom: 0;
}
.sitemap h2 a span::before {
  width: 0.9em;
  height: 0.9em;
  border: solid 1px var(--corp_color);
  border-radius: 50%;
  right: 0;
}
.sitemap h2 a span::after {
  width: 0.3em;
  height: 0.3em;
  border-top: solid 1px var(--corp_color);
  border-right: solid 1px var(--corp_color);
  transform: rotate(45deg);
  right: 0.35em;
}
.sitemap h2 a:hover span::before {background: var(--corp_color);}
.sitemap h2 a:hover span::after {
  border-top: solid 1px #FFFFFF;
  border-right: solid 1px #FFFFFF;
}
.sitemap .editor_contents ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.sitemap .editor_contents ul li {
  width: 48%;
  margin: 0 0 20px;
  padding: 0;
}
.sitemap .editor_contents ul li::before {content: none;}
.sitemap .editor_contents ul li a {
  display: block;
  height: 100%;
  padding: 0.45em 1.5em;
  background: #f6f6f6;
  text-decoration: none;
  transition: 0s;
}
.sitemap .editor_contents ul li a:hover {opacity: 1;}
.sitemap .editor_contents ul li a span {
  position: relative;
  z-index: 0;
  display: inline-block;
  font-size: 2rem;
  font-weight: 500;
  color: #333333;
  padding: 0 1.5em 0 0;
}
.sitemap .editor_contents ul li a:hover span {color: var(--corp_color);}
.sitemap .editor_contents ul li a span::before,
.sitemap .editor_contents ul li a span::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
  top: 0.1em;
  bottom: 0;
}
.sitemap .editor_contents ul li a span::before {
  width: 1em;
  height: 1em;
  border: solid 1px var(--corp_color);
  border-radius: 50%;
  right: 0;
}
.sitemap .editor_contents ul li a span::after {
  width: 0.3em;
  height: 0.3em;
  border-top: solid 1px var(--corp_color);
  border-right: solid 1px var(--corp_color);
  transform: rotate(45deg);
  right: 0.4em;
}
.sitemap .editor_contents ul li a:hover span::before {
  background: var(--corp_color);
}
.sitemap .editor_contents ul li a:hover span::after {
  border-top: solid 1px #FFFFFF;
  border-right: solid 1px #FFFFFF;
}

/* -----------------------------------------------------------
 404
----------------------------------------------------------- */

.page404 {padding: 130px 0 0;}
.page404 .box {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: row;
  flex-direction: column;
  flex-wrap: wrap;
  text-align: center;
  padding-top: 200px;
  padding-bottom: 200px;
}
.page404 .box h1 {
  color: #0068b7;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.75;
  margin: 0 auto 1em;
}
.page404 .box p {margin: 0 auto 3em;}
.page404 .box p:nth-last-of-type(1) {margin: 0 auto;}
.page404 .box p a {
  color: #0068b7;
  text-decoration: none;
}
.page404 .box p a:hover {text-decoration: underline;}
.page404 .box p:nth-last-of-type(1)::after {
  color: #0068b7;
  content: "＞";
  margin: 0 0 0 1em;
}

/* 202506 フォーム改修により追加 */
main.contact .smf-form--simple-table .wp-block-columns:has(input[name="zip"]){
  gap: 0.5em 1.5em;
  margin-bottom: 20px;
}
main.contact .smf-form--simple-table .wp-block-columns:has(input[name="zip"]) div:first-of-type,
main.contact .smf-form--simple-table .wp-block-columns:has(input[name="zip"]) div:first-of-type *{
  width: 260px !important;
  flex-basis: initial !important;
  flex-grow: initial !important;
}
main.contact .smf-form--simple-table .wp-block-columns:has(input[name="zip"]) p{margin: 0;}
main.contact .smf-form--simple-table .wp-block-columns:has(input[name="zip"]) .wp-block-column:has(p){
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
/* 確認画面 */
main.contact .snow-monkey-form[data-screen="confirm"] .wp-block-columns:has(input[name="zip"]){margin-bottom: 0;}
main.contact .snow-monkey-form[data-screen="confirm"] .wp-block-columns:has(input[name="zip"]) p{display: none;}
main.contact .snow-monkey-form[data-screen="confirm"] .wp-block-columns:has(input[name="zip"]) + div,
main.contact .snow-monkey-form[data-screen="confirm"] .wp-block-columns:has(input[name="zip"]) + div + div{
  display: inline-block;
  width: fit-content;
}