@charset "UTF-8";
/* CSS Document */
@media (min-width: 640px) {
}
@media (max-width: 1600px) {
}
/**************************基本**************************/
.m0 {
  margin: 0 !important;
}
.p0 {
  padding: 0 !important;
}
.p3 {
  padding: 3px !important;
}
.mt0 {
  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;
}
.mt35 {
  margin-top: 35px !important;
}
.mt40 {
  margin-top: 40px !important;
}
.mt45 {
  margin-top: 45px !important;
}
.mt50 {
  margin-top: 50px !important;
}
.mt55 {
  margin-top: 55px !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;
}
.mt120 {
  margin-top: 120px !important;
}
.mt150 {
  margin-top: 150px !important;
}
.mb0 {
  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;
}
.mb35 {
  margin-bottom: 35px !important;
}
.mb40 {
  margin-bottom: 40px !important;
}
.mb45 {
  margin-bottom: 45px !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;
}
.mb120 {
  margin-bottom: 120px !important;
}
.mb150 {
  margin-bottom: 150px !important;
}
.ml0 {
  margin-left: 0 !important;
}
.ml05 {
  margin-left: 5px !important;
}
.ml10 {
  margin-left: 10px !important;
}
.ml15 {
  margin-left: 15px !important;
}
.ml20 {
  margin-left: 20px !important;
}
.ml25 {
  margin-left: 25px !important;
}
.ml30 {
  margin-left: 30px !important;
}
.ml35 {
  margin-left: 35px !important;
}
.ml40 {
  margin-left: 40px !important;
}
.ml45 {
  margin-left: 45px !important;
}
.ml50 {
  margin-left: 50px !important;
}
.ml60 {
  margin-left: 60px !important;
}
.ml70 {
  margin-left: 70px !important;
}
.ml80 {
  margin-left: 80px !important;
}
.ml90 {
  margin-left: 90px !important;
}
.ml100 {
  margin-left: 100px !important;
}
.ml1em {
  margin-left: 1em !important;
}
.mr0 {
  margin-right: 0 !important;
}
.mr05 {
  margin-right: 5px !important;
}
.mr10 {
  margin-right: 10px !important;
}
.mr15 {
  margin-right: 15px !important;
}
.mr20 {
  margin-right: 20px !important;
}
.mr25 {
  margin-right: 25px !important;
}
.mr30 {
  margin-right: 30px !important;
}
.mr35 {
  margin-right: 35px !important;
}
.mr40 {
  margin-right: 40px !important;
}
.mr45 {
  margin-right: 45px !important;
}
.mr50 {
  margin-right: 50px !important;
}
.mr60 {
  margin-right: 60px !important;
}
.mr70 {
  margin-right: 70px !important;
}
.mr80 {
  margin-right: 80px !important;
}
.mr90 {
  margin-right: 90px !important;
}
.mr100 {
  margin-right: 100px !important;
}
.pt0 {
  padding-top: 0 !important;
}
.pt05 {
  padding-top: 5px !important;
}
.pt10 {
  padding-top: 10px !important;
}
.pt15 {
  padding-top: 15px !important;
}
.pt20 {
  padding-top: 20px !important;
}
.pt25 {
  padding-top: 25px !important;
}
.pt30 {
  padding-top: 30px !important;
}
.pt35 {
  padding-top: 35px !important;
}
.pt40 {
  padding-top: 40px !important;
}
.pt45 {
  padding-top: 45px !important;
}
.pt50 {
  padding-top: 50px !important;
}
.pt60 {
  padding-top: 60px !important;
}
.pt70 {
  padding-top: 70px !important;
}
.pt80 {
  padding-top: 80px !important;
}
.pt90 {
  padding-top: 90px !important;
}
.pt100 {
  padding-top: 100px !important;
}
.pb0 {
  padding-bottom: 0 !important;
}
.pb05 {
  padding-bottom: 5px !important;
}
.pb10 {
  padding-bottom: 10px !important;
}
.pb15 {
  padding-bottom: 15px !important;
}
.pb20 {
  padding-bottom: 20px !important;
}
.pb25 {
  padding-bottom: 25px !important;
}
.pb30 {
  padding-bottom: 30px !important;
}
.pb35 {
  padding-bottom: 35px !important;
}
.pb40 {
  padding-bottom: 40px !important;
}
.pb45 {
  padding-bottom: 45px !important;
}
.pb50 {
  padding-bottom: 50px !important;
}
.pb60 {
  padding-bottom: 60px !important;
}
.pb70 {
  padding-bottom: 70px !important;
}
.pb80 {
  padding-bottom: 80px !important;
}
.pb90 {
  padding-bottom: 90px !important;
}
.pb100 {
  padding-bottom: 100px !important;
}
.pb120 {
  padding-bottom: 120px !important;
}
.pb140 {
  padding-bottom: 140px !important;
}
.pl05 {
  padding-left: 5px !important;
}
.pl10 {
  padding-left: 10px !important;
}
.pl15 {
  padding-left: 15px !important;
}
.pl20 {
  padding-left: 20px !important;
}
.pl25 {
  padding-left: 25px !important;
}
.pl30 {
  padding-left: 30px !important;
}
.pl35 {
  padding-left: 35px !important;
}
.pl40 {
  padding-left: 40px !important;
}
.pl45 {
  padding-left: 45px !important;
}
.pl50 {
  padding-left: 50px !important;
}
.pl60 {
  padding-left: 60px !important;
}
.pl70 {
  padding-left: 70px !important;
}
.pl80 {
  padding-left: 80px !important;
}
.pl90 {
  padding-left: 90px !important;
}
.pl100 {
  padding-left: 100px !important;
}
.pr05 {
  padding-right: 5px !important;
}
.pr10 {
  padding-right: 10px !important;
}
.pr15 {
  padding-right: 15px !important;
}
.pr20 {
  padding-right: 20px !important;
}
.pr25 {
  padding-right: 25px !important;
}
.pr30 {
  padding-right: 30px !important;
}
.pr35 {
  padding-right: 35px !important;
}
.pr40 {
  padding-right: 40px !important;
}
.pr45 {
  padding-right: 45px !important;
}
.pr50 {
  padding-right: 50px !important;
}
.pr60 {
  padding-right: 60px !important;
}
.pr70 {
  padding-right: 70px !important;
}
.pr80 {
  padding-right: 80px !important;
}
.pr90 {
  padding-right: 90px !important;
}
.pr100 {
  padding-right: 100px !important;
}
img {
  vertical-align: bottom;
}

.mincho {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3",
    "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.t_center {
  text-align: center !important;
}
.t_right {
  text-align: right !important;
}
.t_left {
  text-align: left !important;
}
.v_top {
  vertical-align: top;
}
.v_middle {
  vertical-align: middle;
}
.v_bottom {
  vertical-align: bottom;
}
.v_txt_bot {
  vertical-align: text-bottom;
}
.float_r {
  float: right;
}
.float_l {
  float: left;
}
.va_-3px {
  vertical-align: -3px;
}
.va_-5px {
  vertical-align: -5px;
}
.va_2px {
  vertical-align: 2px;
}
.va_10px {
  vertical-align: 10px;
}
.va_mid {
  vertical-align: middle;
}
.fontb {
  font-weight: bold !important;
}
.fontn {
  font-weight: normal;
}
.txt50p {
  font-size: 50% !important;
}
.txt60p {
  font-size: 60% !important;
}
.txt70p {
  font-size: 70% !important;
}
.txt80p {
  font-size: 80% !important;
}
.txt85p {
  font-size: 85% !important;
}
.txt90p {
  font-size: 90% !important;
}
.txt95p {
  font-size: 95% !important;
}
.txt100p {
  font-size: 100% !important;
}
.txt105p {
  font-size: 105% !important;
}
.txt110p {
  font-size: 110% !important;
}
.txt115p {
  font-size: 115% !important;
}
.txt120p {
  font-size: 120% !important;
}
.txt130p {
  font-size: 130% !important;
}
.txt140p {
  font-size: 140% !important;
}
.txt150p {
  font-size: 150% !important;
}
.txt160p {
  font-size: 160% !important;
}
.txt170p {
  font-size: 170% !important;
}
.txt180p {
  font-size: 180% !important;
}
.txt190p {
  font-size: 190% !important;
}
.txt200p {
  font-size: 200% !important;
}
.txt240p {
  font-size: 240% !important;
}
.txt280p {
  font-size: 280% !important;
}
.txt13px {
  font-size: 1.3rem;
}
.txt14px {
  font-size: 1.4rem;
}
.txt16px {
  font-size: 1.6rem;
}
.txt18px {
  font-size: 1.8rem;
}
.txt21px {
  font-size: 2.1rem;
}
.txt24px {
  font-size: 2.4rem;
}
.txt26px {
  font-size: 2.6rem;
}
.txt30px {
  font-size: 3rem;
}
.txt40px {
  font-size: 4rem;
}
.txt50px {
  font-size: 5rem;
}
.txt64px {
  font-size: 6.4rem;
}
.txt-red {
  color: #ee0000 !important;
}
.txt-pink {
  color: #f98080 !important;
}
.txt-pink2 {
  color: #f500a8 !important;
}
.txt-000 {
  color: #000 !important;
}
.txt-555 {
  color: #555 !important;
}
.txt-888 {
  color: #888 !important;
}
.txt-aaa {
  color: #aaa !important;
}
.txt-ccc {
  color: #ccc !important;
}
.txt-fff {
  color: #fff !important;
}
.txt-right-green {
  color: #b9f084;
}
.txt-green {
  color: #6eba3d;
}
.txt-green2 {
  color: #009e96;
}
.txt-green3 {
  color: #4da13c;
}
.txt-blue {
  color: #0841ac !important;
}
.txt-blue2 {
  color: #023894;
}
.txt-blue3 {
  color: #043b95;
}
.txt-blue4 {
  color: #08287f;
}
.txt-gold {
  color: #6f5b00;
}
.txt-purple {
  color: #b423b8;
}
.txt-orange {
  color: #ee7800;
}
.txt-inherit {
  color: inherit;
}

.w48p {
  width: 48%;
}
.w24p {
  width: 24%;
}
.w100p {
  width: 100% !important;
}
.w60p {
  width: 60%;
}
.w98p {
  width: 98%;
}
.w95p {
  width: 95%;
}
.w90p {
  width: 90%;
}
.img-w400 {
  max-width: 400px;
  width: 100%;
}
.img-w500 {
  max-width: 500px;
  width: 100%;
}
.img-w600 {
  max-width: 600px;
  width: 100%;
}
.img-w750 {
  max-width: 750px;
  width: 100%;
}
.img-w100 {
  max-width: 100px;
  width: 100%;
}
.img-w60 {
  max-width: 60px;
  width: 100%;
}
.img-w40 {
  max-width: 40px;
  width: 100%;
}

.mw60p {
  max-width: 60%;
}
.mw70p {
  max-width: 70%;
}
.mw80p {
  max-width: 80%;
}
.mw90p {
  max-width: 90%;
}

.fw500 {
  font-weight: 500;
}
.num_list {
  margin-left: 1.5em;
}
.num_list li {
  margin-bottom: 0.8em;
}
.num_list li:last-child {
  margin-bottom: 0;
}
.lh0 {
  line-height: 0;
}
.lh10 {
  line-height: 10px;
}
.lh11 {
  line-height: 11px;
}
.lh12 {
  line-height: 12px;
}
.lh13 {
  line-height: 13px;
}
.lh14 {
  line-height: 14px;
}
.lh15 {
  line-height: 15px;
}
.lh16 {
  line-height: 16px;
}
.lh17 {
  line-height: 17px;
}
.lh18 {
  line-height: 18px;
}
.lh19 {
  line-height: 19px;
}
.lh20 {
  line-height: 20px;
}
.lh21 {
  line-height: 21px;
}
.lh22 {
  line-height: 22px;
}
.lh23 {
  line-height: 23px;
}
.lh24 {
  line-height: 24px;
}
.lh25 {
  line-height: 25px;
}
.lh26 {
  line-height: 26px;
}
.lh27 {
  line-height: 27px;
}
.lh28 {
  line-height: 28px;
}
.lh29 {
  line-height: 29px;
}
.lh30 {
  line-height: 30px;
}
.lh100p {
  line-height: 1;
}
.lh110p {
  line-height: 1.1;
}
.lh120p {
  line-height: 1.2;
}
.lh140p {
  line-height: 1.4;
}
.lh160p {
  line-height: 1.6;
}
.lh180p {
  line-height: 1.8;
}
.lh200p {
  line-height: 2;
}
.lh220p {
  line-height: 2.2;
}
.clearfix:after {
  clear: both;
  content: ".";
  display: block;
  height: 0;
  visibility: hidden;
}
a.mouseover img {
  transition: 0.3s;
}
a.mouseover:hover img {
  filter: alpha(opacity=70);
  -moz-opacity: 0.7;
  opacity: 0.7;
}
.pic_border {
  border: 1px solid #ccc;
}
.pic_round {
  border-radius: 10px;
}
.pic_circle {
  border-radius: 10000px;
}
@media (min-width: 640px) {
  .xs_only {
    display: none !important;
  }
}
@media (max-width: 1600px) {
  .xl_only {
    display: none !important;
  }
}

.inline_block {
  display: inline-block;
}
.txt-torikesisen {
  text-decoration: line-through;
}
.m-width-90p {
  max-width: 90%;
}
.m-width-100p {
  max-width: 100%;
}
.posi_r {
  position: relative;
}
.pdf_link:before {
  font-size: 1.2em;
  content: "\f1c1";
  margin-right: 5px;
  color: #d14244;
  text-decoration: none;
  display: inline-block;
  font-family: var(--fa-style-family, "Font Awesome 6 Free");
  font-weight: var(--fa-style, 900);
}
.external_link:after {
  content: "\f08e";
  font-family: FontAwesome;
  margin-left: 5px;
  color: #d14244;
  text-decoration: none;
  display: inline-block;
}
.common_hr {
  border: none !important;
  border-top: 1px solid #ccc !important;
}
.word_link:before {
  content: "\f1c2";
  font-family: FontAwesome;
  margin-right: 5px;
  color: #e60012;
  text-decoration: none;
  display: inline-block;
}
.excel_link:before {
  content: "\f1c3";
  font-family: FontAwesome;
  margin-right: 5px;
  color: #4c7b3b;
  text-decoration: none;
  display: inline-block;
}
/*関連リンク
テキストリンク*/
.kanren_link li {
  margin-bottom: 0.4em;
}
.kanren_link li a {
  /*color: #333;*/
  padding: 0.2em 0;
  text-decoration: none;
  transition: 0.3s;
  display: inline-block;
}
.kanren_link li a:hover {
  color: #e60012;
  /*
				background: #EBEBEB;
				border-radius: 100%;
				*/
  transition: 0.3s;
}
/*ローカルリンク*/
a.kanren_link_local:after {
  content: "\f105";
  margin-left: 10px;
  font-family: FontAwesome;
  color: #e60012;
  text-decoration: none;
  transition: 0.3s;
}
/*外部リンク
					_BLANK自動付与 JQUERY*/
a.kanren_link_window:after {
  content: "\f08e";
  margin-left: 10px;
  font-family: FontAwesome;
  color: #e60012;
  text-decoration: none;
  transition: 0.3s;
}
/*PDF*/
a.kanren_link_pdf:before {
  content: "\f1c1";
  margin-right: 5px;
  font-family: FontAwesome;
  color: #e60012;
  text-decoration: none;
  transition: 0.3s;
}
/*imgボタン*/
a img.bnt-hover-shadow {
  transition: 0.3s;
  transform: scale(1);
}
a img.bnt-hover-shadow:hover {
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.35);
  transition: 0.3s;
  transform: scale(1.04);
}

/*横罫*/
.hr-dott {
  height: 1px;
  border: none;
  border-top: 1px dashed #ccc;
}
.common_list {
  margin-left: 1.5em;
}
.common_list li {
  line-height: 1.4;
  margin-bottom: 1em;
  text-indent: -1em;
}
.common_list li:before {
  content: "・";
  margin-right: 0;
  color: #999;
  font-size: 2em;
  line-height: 0;
  vertical-align: -0.2em;
  width: 0.5em;
  display: inline-block;
}
.common_list li:last-child {
  margin-bottom: 0;
}
.common_list_pdf_icon li:before {
  content: "\f1c1";
  color: #e10004;
}
.common_list2 li {
  line-height: 1.4;
  margin-bottom: 15px;
}
.common_list2 li:after {
  content: "\f105";
  font-family: FontAwesome;
  margin-left: 0.5em;
  color: #e60012;
}
.common_list2 li:last-child {
  margin-bottom: 0;
}
.common_list3 {
  margin-left: 0;
}
.common_list3 li {
  position: relative;
  padding-left: 0.7em;
  margin-left: 0;
  margin-bottom: 0.9em;
  border-bottom: 1px dashed #f8adac;
}
.common_list3 li:before {
  font-family: FontAwesome;
  content: "\f0da";
  color: #f98084;
  display: inline-block;
  position: absolute;
  left: 0;
}
.common_list3 li:last-child {
  margin-bottom: 0;
}
.common_box {
  background: #ecf2f6;
  padding: 40px;
  border-radius: 18px;
}
.common_box2 {
  background: #f5f8ff;
  padding: 20px;
}
.common_box3 {
  padding: 20px;
  border: 4px solid #ddd;
}
.common_box6 {
  background: #e6f3f7;
  padding: 20px;
}
.indent0 {
  text-indent: 0;
}
.caution {
  text-indent: -1em;
  padding-left: 1em;
}
.caution1_4em {
  text-indent: -1.4em;
  padding-left: 1.4em;
}
.caution1_5em {
  text-indent: -1.5em;
  padding-left: 1.5em;
}
.caution2em {
  text-indent: -2em;
  padding-left: 2em;
}
.caution2_5em {
  text-indent: -2.5em;
  padding-left: 2.5em;
}
.caution3em {
  text-indent: -3em;
  padding-left: 3em;
}
.caution6em {
  padding-left: 6em;
  position: relative;
}
.caution6em span {
  position: absolute;
  display: block;
  left: 0;
  top: 0;
}

.flex_wrap {
  flex-wrap: wrap;
}
.flex_reverse {
  flex-direction: row-reverse;
}
.sp_link_none a,
.fax_num a,
a.link_txt_normal {
  color: inherit;
  text-decoration: none;
}
.fax_num,
.fax_num a {
  pointer-events: none;
}
.tel_num,
.tel_num a {
  color: inherit;
}
.movie_box {
  position: relative;
  width: 100%;
  border: 1px solid #ddd;
}
.movie_box:before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
.movie_box iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.uk-hr {
  opacity: 0.5;
}
.anchor_point {
  height: 1px;
  padding-top: 90px;
  margin-top: -90px;
}
/*----------------------------------*/
:root {
  --bg-color: #1e3a5f;
  --text-color: #ffffff;
  --accent-color: #f8f041;
  --grid-color: rgba(255, 255, 255, 0.05);
  --header-height: 80px;
}
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 90px; /* ヘッダーの高さに合わせて調整 */
}
body {
  position: relative;
  padding-bottom: 0;
  margin: 0 auto;
  font-size: 1.6rem; /* 16px*/
  line-height: 1.7;
  color: #222;
  font-family: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic,
    "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  -webkit-print-color-adjust: exact;
}
* {
  box-sizing: border-box;
}

.base_width {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_xs {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_xxs {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_xxxs {
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_s {
  max-width: 1083px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_l {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
.base_width_xl {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
}
/*----------------------------------*/

::-webkit-scrollbar {
  width: 15px; /* 少し太くして操作性UP */
  background: transparent;
}

/* トラックの外周に境界線を作る */
::-webkit-scrollbar-track {
  background: #f1f1f1;
  box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.08); /* 左内側に1pxライン */
}

/* サムは白フチ＋影で浮かせる */
::-webkit-scrollbar-thumb {
  background-color: #395aa1;
  border: 3px solid #f1f1f1; /* トラック色と同じボーダーで“溝”を作る */
  border-radius: 10px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04); /* 薄影でエッジ強調 */
}
::-webkit-scrollbar-thumb:hover {
  background-color: #2f4c87;
}

.head_bg {
  background: #fff;
  border-bottom: 1px solid #fff;
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.site_header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1320px;
  margin: 0 auto;
  width: 96%;
}

.logo img {
  width: 150px;
}

.global_nav {
  margin-left: auto;
  margin-right: 25px;
}
.global_nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.global_nav a {
  color: #000;
  text-decoration: none;
  font-weight: bold;
  font-size: .93em;
  display: flex;
  align-items: center;
  height: 130px;
  border-bottom: 4px solid rgba(255, 255, 255, 0);
  transition: all 0.3s ease;
  position: relative;
  padding: 0 10px;
}
.global_nav a::after {
  content: "";
  position: absolute;
  top: calc(50% + 25px);
  left: 15px;
  width: calc(100% - 30px);
  height: 4px;
  background: rgba(255, 255, 255, 0);
  border-radius: 0;
  transition: 0.3s;
}

body#about .global_nav_link_li_about a:after,
body#product .global_nav_link_li_product a:after,
body#company .global_nav_link_li_company a:after,
body#sustainability .global_nav_link_li_sustainability a:after,
body#recruit .global_nav_link_li_recruit a:after,
body#news .global_nav_link_li_news a:after,
body#contact .global_nav_link_li_contact a:after,
body.page-template-page-contact .global_nav_link_li_contact a:after,
body.page-template-page-contact-recruit .global_nav_link_li_contact a:after,
.global_nav a:hover::after {
  background: #3b539b;
}

.menu_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 60px;
  height: 60px;
  background: none;
  border-radius: 50%;
  border: none;
  color: #fff;
  cursor: pointer;
  padding-top: 7px;
  text-decoration: none;
  position: relative;
}
.menu_btn::before {
  content: "";
  position: absolute;
  top: -5px;
  left: -5px;
  transform: scale(1);
  width: 70px;
  height: 70px;
  background: #3b539b;
  transition: 0.3s;
  border-radius: 1000px;
  z-index: 1;
}
.menu_btn:hover::before {
  transform: scale(1.15);
}

.menu_btn > * {
  position: relative;
  z-index: 2;
}

.menu_btn .icon {
  width: 24px;
  height: 2px;
  position: relative;
}

.menu_btn .icon::before,
.menu_btn .icon::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 2px;
  background: #fff;
  left: 0;
  transition: all 0.3s ease;
}

.menu_btn .icon::before {
  top: -3px;
}
.menu_btn .icon::after {
  top: 3px;
}

body.uk-offcanvas-container .menu_btn .icon {
  background: none;
}

body.uk-offcanvas-container .menu_btn .icon::before {
  top: 0;
  transform: rotate(45deg);
  transition: all 0.3s ease;
}

body.uk-offcanvas-container .menu_btn .icon::after {
  top: 0;
  transform: rotate(-45deg);
  transition: all 0.3s ease;
}

.menu_btn .text {
  font-size: 10px;
  margin-top: 10px;
  font-weight: bold;
}

/* サブメニューのスタイル */
.global_nav_open_sub_menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #f5f5f5;
  border: 1px solid #eee;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}

.global_nav_open_sub_menu_content {
  padding: 40px 0 100px;
  width: 90%;
  max-width: 900px;
  margin: 0 auto;
}

.global_nav_open_sub_menu_content_inner_title a {
  color: #333;
  font-size: 1.4em;
  margin-bottom: 40px;
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  transition: color 0.3s ease;
  position: relative;
  padding: 0 45px 0 0;
}
.global_nav_open_sub_menu_content_inner_title a:hover {
  text-decoration: underline;
}

.global_nav_open_sub_menu_content_inner_title a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 15px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  border-radius: 1000px;
}
.global_nav_open_sub_menu_content_inner p {
  color: #666;
  line-height: 1.6;
  margin-bottom: 15px;
}

.global_nav_open_sub_menu_content_inner ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  gap: 15px 40px;
  flex-wrap: wrap;
}

.global_nav_open_sub_menu_content_inner ul li {
  flex: 0 0 calc(33.33% - 30px);
  min-width: 0;
}

.global_nav_open_sub_menu_content_inner ul li a {
  color: #333;
  text-decoration: none;
  padding: 5px 20px 5px 0;
  display: block;
  transition: color 0.3s ease;
  border-bottom: 1px solid #ccc;
  font-weight: bold;
  position: relative;
}
.global_nav_open_sub_menu_content_inner ul li a::after {
  position: absolute;
  right: 0;
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 1em;
  vertical-align: middle;
  display: inline-block;
  text-decoration: none;
}

.global_nav_open_sub_menu_content_inner ul li a:hover {
  text-decoration: underline;
}

/* ナビゲーションリンクのアクティブ状態 */
.global_nav a.global_nav_link.active::after {
  background: #3b539b;
}

header.site_header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1111111112;
}

#main_menu {
  opacity: 0;
  transition: 0.5s;
  width: 100vw;
  display: block;
  right: 0;
  left: 0;
  z-index: -10000000;
  visibility: hidden;
  top: 130px;
}
.uk-offcanvas-page #main_menu.uk-offcanvas {
  opacity: 1;
  z-index: 1111111111;
  visibility: inherit;
  left: 0;
}

#main_menu .uk-offcanvas-bar {
  left: auto;
  right: 0;
  padding: 0;
  width: 100%;
  background: #f5f5f5;
  color: #000;
  line-height: 1.4;
}

#main_menu .uk-offcanvas-bar a {
  color: #222;
  text-decoration: none;
}


.main_menu_content {
  padding: 45px 0 100px;
}

/* main_menu_link_ul の3カラムレイアウト */
.main_menu_link_ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 40px 60px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.main_menu_link_ul a:hover {
  text-decoration: underline !important;
}

.main_menu_link_ul > li {
  flex: 0 0 calc(33.33% - 40px);
  min-width: 0;
  margin-bottom: 40px;
}


.main_menu_link_ul > li > div > a {
  color: #333;
  font-size: 1.2em;
  font-weight: bold;
  text-decoration: none;
  display: block;
  padding: 10px 35px 10px 0;
  border-bottom: 2px solid #3b539b;
  transition: color 0.3s ease;
  position: relative;
}
.main_menu_link_ul > li > div > a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 14px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: #f8f041;
  transition: all 0.3s 
ease;
  border-radius: 1000px;
}

.main_menu_link_ul > li > div > a:hover {
  color: #3b539b;
  text-decoration: underline;
}

.main_menu_link_ul > li > ul {
  list-style: none;
  padding: 0;
  margin-top: 10px;
}

.main_menu_link_ul > li > ul > li {
  margin-bottom: 8px;
}

.main_menu_link_ul > li > ul > li > a {
  color: #666;
  text-decoration: none;
  display: block;
  padding: 2px 0;
  padding-left: 20px;
  position: relative;
  transition: color 0.3s ease;
  font-weight: bold;
  line-height: 1.25;
}

.main_menu_link_ul > li > ul > li > a::before {
  content: "\f0da";
  font-family: FontAwesome;
  position: absolute;
  left: 0;
  color: #3b539b;
  font-size: 1em;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  text-decoration: none !important;
}

.main_menu_link_ul > li > ul > li > a:hover {
  color: #3b539b;
  text-decoration: underline;
}

.head_bg,
.global_nav a,
#main_menu {
  transition: 0.3s;
}
div.headroom--not-top .head_bg,
div.headroom--not-top .global_nav a {
  height: 90px;
}
div.headroom--not-top #main_menu {
  top: 90px;
}

div.headroom--not-top .head_bg {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid #eee;
}

/* スマートフォン用階層メニューのスライドアニメーション */
.main_menu_link_ul_sp {
  position: relative;
}

.main_menu_link_ul_sp > li {
}

.main_menu_link_ul_sp > li > ul {
  position: absolute;
  top: 0;
  right: -100%;
  width: 100%;
  min-height: 100%;
  background: #f5f5f5;
  transition: right 0.3s ease;
  z-index: 10;
}

.main_menu_link_ul_sp > li > ul.slide-in {
  right: 0;
}

.main_menu_link_ul_sp > li > ul > li > ul {
  position: absolute;
  top: 0;
  right: -100%;
  width: 100%;
  min-height: 100%;
  background: #f5f5f5;
  transition: right 0.3s ease;
  z-index: 20;
}

.main_menu_link_ul_sp > li > ul > li > ul.slide-in {
  right: 0;
}

.main_menu_link_ul_sp a {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 40px 0 14px;
  border-bottom: 1px solid #ccc;
  text-decoration: none;
  color: #333;
  font-weight: bold;
  transition: color 0.3s ease;
  position: relative;
  text-align: left;
  font-size: 14.5px;
}

/* 階層メニューのタイトル */
.menu-level-title {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 10px 0 100px;
  height: 50px;
  font-size: 1.2em;
  font-weight: bold;
  color: #fff;
  background: #3b539b;
  box-sizing: border-box;
  margin: 0;
  border: none;
}

/* 子要素を持たないリンク（通常のリンク） */
.main_menu_link_ul_sp a:after {
  position: absolute;
  content: "";
  right: 10px;
  top: 0;
  height: 100%;
  width: 14.5px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(/common/img/icon/arrow_up_right_blue.svg);
}

/* 子要素を持つリンク（階層メニュー） */
.main_menu_link_ul_sp div:has(+ ul) > a:after,
.main_menu_link_ul_sp a:has(+ ul):after {
  background-image: url(/common/img/icon/arrow_right_blue.svg);
}

/* 戻るボタンのスタイル */
.main_menu_link_ul_sp a.menu-back-btn {
  height: 50px;
  position: absolute;
  left: 0;
  top: 0;
  width: 73px;
  color: #fff !important;
  font-size: 1.2em;
  font-weight: bold;
  text-decoration: none;
  display: flex;
  align-items: center;
  border-right: 1px solid rgba(255, 255, 255, 0.5);
  padding: 0;
  justify-content: center;
  background: #3b539b;
  box-sizing: border-box;
  margin: 0;
  border-top: none;
  border-bottom: none;
  border-left: none;
}

/* フッターのスタイル */

.footer-contact {
  background-image: url(/common/img/footer/contact_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 5%;
  color: #fff;
}

.footer-contact-inner {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: 60px;
  flex-wrap: wrap;
  align-items: center;
}

.contact-item {
}

.contact-title {
  background: #f8f041;
  color: #395aa1;
  font-weight: 700;
  padding: 5px 15px;
  display: inline-block;
  margin-bottom: 10px;
  font-size: 14px;
  min-width: 10em;
  text-align: center;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.contact-phone {
  font-size: 42px;
  font-weight: 500;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  margin: 15px 0;
  font-family: "Oswald", sans-serif;
  line-height: 0;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.contact-time {
  font-size: 14px;
  font-weight: 700;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.btn-contact {
  display: inline-block;
  background: #f8f041;
  color: #395aa1;
  font-weight: 700;
  padding: 15px;
  border-radius: 100px;
  text-decoration: none;
  transition: all 0.3s ease;
  text-align: center;
  font-size: 26px;
  width: 360px;
  max-width: 100%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.btn-contact:hover {
  color: #fff;
  background: #395aa1;
  transform: translateY(-3px);
}

@media (max-width: 768px) {
  .footer-contact-inner {
    gap: 40px;
  }

  .contact-phone {
    font-size: 32px;
    margin: 6px 0;
  }
  .contact-phone img {
    width: 40px;
  }

  .btn-contact {
    padding: 11px;
    font-size: 18px;
    max-width: 100%;
    width: 280px;
  }
}

.footer_blue_body {
  background: #3557a0;
  color: #fff;
  padding: 70px 0 160px;
}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.footer-logo-grid{
  margin-bottom: 40px;
  align-items: center;
}
.footer-logo-icon a {
  font-size: 2em;
  color: #fff;
  transition: .3s;
}
.footer-logo-icon a:hover {
  opacity: .6;
}

.footer-logo img {
  width: 150px;
}

.footer-nav_body {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 40px;
}

.footer-column {
  padding-left: 30px;
}

.footer-column div.footer-column_title {
  margin-bottom: 7px;
  position: relative;
}
.footer-column div.footer-column_title::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 50%;
  width: 20px;
  height: 20px;
  background-image: url(/common/img/icon/arrow_right_yellow.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transform: translateY(-50%);
  display: block;
}
.footer-column div.footer-column_title a {
  font-size: 1.1em;
  font-weight: 700;
  color: #fff;
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column li {
  margin-bottom: 4px;
  line-height: 1.2;
}

.footer-column a {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  transition: opacity 0.2s;
}

.footer-column a:hover {
  text-decoration: underline;
}

/* 下部 */
.footer-bottom {
  margin: 40px auto 0;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 40px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 13px;
  opacity: 0.9;
}

.footer-links a {
  color: #fff;
  text-decoration: none;
}

.footer-links span {
  margin: 0 6px;
}

.footer-copy {
  text-align: right;
}

.footer-links-separator {
  pointer-events: none;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
  .footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 10px;
  }
  .footer-logo {
    text-align: center;
  }
  .footer-logo img {
    margin-bottom: 30px;
    width: 110px;
  }
  .footer-copy {
    text-align: center;
    margin-top: 40px;
  }

  .footer_blue_body {
    background: #3557a0;
    color: #fff;
    padding: 50px 0 110px;
  }
}

.body_header_padding {
  padding-top: 130px;
}

.pankuzu {
  font-size: 90%;
  margin-bottom: 30px;
}
.pankuzu li {
  display: inline;
}
.pankuzu li:after {
  content: "\f105";
  font-family: FontAwesome;
  margin: 0 10px;
}
.pankuzu li:last-child::after {
  display: none;
}
.pankuzu li a {
  color: #555;
}

.subpage_pic_main_title {
  padding: 15% 4% 15%;
  border-radius: 28px;
  background: #3b539b;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.subpage_pic_main_title_company {
  padding: 3% 3% 27%;
}
.subpage_pic_main_title h1 {
  background: #fff;
  font-size: 2.3em;
  display: inline-block;
  padding: 10px 30px;
  border-radius: 20px;
}

.company_index_grid {
  text-align: center;
}
.company_index_grid_title {
  font-size: 1.5em;
  font-weight: 700;
  margin-bottom: 10px;
  color: #3b539b;
}
.company_index_grid_img {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
  height: 70px;
  width: 100%;
}
.company_index_grid_date {
  font-size: 1.6em;
  font-weight: 700;
  line-height: 1;
  color: #3b539b;
  margin-bottom: 8px;
}
.company_index_grid_date strong {
  font-size: 1.8em;
  margin-right: 0.1em;
}
.company_index_grid_txt {
  font-size: 1em;
  font-weight: 700;
  padding-bottom: 30px;
}

.subpage_content_body {
  padding: 50px 0 150px;
}

.common_index_grid a {
  display: block;
  color: #222;
  text-decoration: none;
  transition: all 0.3s ease;
}
.common_index_grid a:hover {
  opacity: 0.8;
  transform: translateY(-3px);
}

.common_index_grid_img img {
  border-radius: 15px;
}
.common_index_grid_title {
  font-weight: 700;
  font-size: 1.35em;
  background: #fff;
  border-radius: 0 14px 0 0;
  padding: 15px 5px 20px 0;
  margin-top: -40px;
  position: relative;
  z-index: 2;
  width: 75%;
}
.common_index_grid_title span {
  display: inline-block;
  position: relative;
  z-index: 2;
  padding-right: 56px;
}
.common_index_grid_title span::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 20px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  background: #f8f041;
  border-radius: 1000px;
}

.vision_txt_box,
.company_index_award_box {
  border-radius: 28px;
  background: #f5f5ee;
  padding: 50px;
}

.vision_txt_box_blue {
  background: #395aa1;
  color: #fff;
}
.vision_txt_box_blue .vision_logo {
  margin-bottom: 20px;
}
.vision_txt_box_blue .vision_logo img {
  width: 100px;
}
.vision_txt_box_blue .vision_txt_box_blue ul li {
  color: #fff;
  list-style: none;
  margin-bottom: 10px;
  font-size: 1.1em;
  font-weight: 700;
  line-height: 1.2;
}

.message_content p {
  margin-bottom: 2em;
  line-height: 1.8;
  font-size: 1.1em;
}

.subpage_txt_main_title_body {
  border-bottom: 1px solid #ccc;
  padding: 0 0 30px;
}
.subpage_txt_main_title h1 {
  font-size: 2em;
}

.pic_round_l {
  border-radius: 28px;
}

.subpage_txt_content_body h2 {
  position: relative;
  font-size: 1.8em;
  margin-bottom: 1.3em;
  color: #0841ac;
  line-height: 1.2;
  padding-left: 20px;
}
.subpage_txt_content_body h2::before,
.subpage_txt_content_body h2::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 5px;
  height: 34.5%;
  border-radius: 100px;
}
.subpage_txt_content_body h2::before {
  top: 15%;
  background: #3b539b;
}
.subpage_txt_content_body h2::after {
  bottom: 15%;
  background: #f8f041;
}

.subpage_txt_content_body h3 {
  position: relative;
  font-size: 1.5em;
  margin-bottom: 0.8em;
  line-height: 1.2;
  padding-left: 15px;
}
.subpage_txt_content_body h3:before {
  position: absolute;
  left: 0;
  height: 80%;
  top: 10%;
  width: 4px;
  content: "";
  display: block;
  background: #0841ac;
  border-radius: 100px;
}

.vision_txt_box {
  font-weight: bold;
}

.vision_txt_01 {
  font-size: 2.2em;
  line-height: 1.45;
}
.vision_txt_01 span {
  color: #f8f041;
  font-weight: 900;
}
.vision_ul {
  font-size: 1.1em;
  margin-top: 25px;
  list-style: disc;
  text-align: left;
}
.vision_txt_02 {
  font-size: 1.9em;
}
.vision_txt_03 {
  font-size: 1.5em;
  display: inline-block;
  text-align: left;
}
.vision_txt_03 li {
  position: relative;
  line-height: 1.3;
}
.vision_txt_03 li:nth-child(n + 2) {
  margin-top: 0.8em;
}
.vision_txt_03 li span.vision_txt_03_num {
  color: #0841ac;
  position: absolute;
  left: -1.6em;
  display: block;
}
.vision_txt_04 {
  font-size: 1.2em;
}
.vision_txt_05 {
  font-size: 1.2em;
}

.line_txt {
  display: inline-block;
  position: relative;
}
.line_txt::before {
  content: "";
  display: block;
  position: absolute;
  left: 5%;
  width: 90%;
  height: 6px;
  bottom: -5px;
  border-radius: 100px;
}
.line_txt_yellow::before {
  background: #f8dd41;
}
.line_txt_blue::before {
  background: #0841ac;
}

.ib_span_body span {
  display: inline-block;
}

.subpage_bottom_link_nav_body {
  background: #eaeaea;
  padding: 50px 0 80px;
}

.subpage_bottom_link_nav_title {
  font-size: 1.65em;
  margin-bottom: 25px;
}
.subpage_bottom_link_nav_title a {
  color: #333;
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  transition: color 0.3s ease;
  position: relative;
  padding: 0 45px 0 0;
}
.subpage_bottom_link_nav_title a:hover {
  text-decoration: underline;
}

.subpage_bottom_link_nav_title a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 15px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  border-radius: 1000px;
}

.subpage_bottom_link_nav_list a {
  display: block;
  border-radius: 8px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 78px;
  text-decoration: none;
  color: #333;
  font-weight: bold;
  transition: all 0.3s ease;
  border: 1px solid #eee;
  overflow: hidden;
  position: relative;
  padding-left: 100px;
  padding-right: 60px;
  line-height: 1.25;
}
.subpage_bottom_link_nav_list a:hover {
  text-decoration: underline;
}
.subpage_bottom_link_nav_list a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 15px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  border-radius: 1000px;
}
.subpage_bottom_link_nav_list_img {
  position: absolute;
  left: 0;
  height: 100%;
  width: 78px;
  top: 0;
  display: block;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.company_overview_table {
  width: 100%;
  border-collapse: collapse;
}
.company_overview_table th,
.company_overview_table td {
  padding: 30px;
}
.company_overview_table th {
  text-align: left;
  border-bottom: 1px solid #0841ac;
  white-space: nowrap;
  width: 20%;
}
.company_overview_table td {
  border-bottom: 1px solid #ccc;
}
.company_overview_table tr:first-child th {
  border-top: 1px solid #0841ac;
}
.company_overview_table tr:first-child td {
  border-top: 1px solid #ccc;
}

.access_map_iframe {
  margin-bottom: 10px;
}
.access_map_iframe iframe {
  width: 100%;
  height: 400px;
  border: 0;
}

.history_section_open_link {
  display: block;
  text-decoration: none;
  color: #fff;
  padding: 80px 0;
  position: relative;
}
.history_section_open_link::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.65) 0%,
    rgba(0, 0, 0, 0) 90%,
    rgba(0, 0, 0, 0) 100%
  ); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  opacity: 0.6;
}
.history_section_open_link > * {
  z-index: 2;
  position: relative;
}

.history_section_open_link_content {
  width: 45%;
}

.history_section_open_link_txt {
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.history_section_open_link_period span {
  text-align: center;
  display: inline-block;
  background: #f8f041;
  color: #333;
  padding: 0.5em 1em;
  font-size: 0.9em;
  margin-bottom: 20px;
  min-width: 15em;
}

.history_section_open_link_txt_01,
.history_section_open_link_txt_02,
.history_section_open_link_txt_03 {
  font-weight: bold;
}

.history_section_open_link_txt_01 {
  font-size: 1.25em;
}
.history_section_open_link_txt_02 {
  font-size: 2em;
  margin-bottom: 15px;
}
.history_section_open_link_txt_03 {
  font-size: 1.25em;
  margin-bottom: 10px;
}
.history_section_open_link_txt_04 {
  font-size: 1.1em;
  line-height: 1.7;
}

.history_section_open_link_btn {
  margin-top: 40px;
  text-align: center;
  font-size: 1.2em;
  font-weight: bold;
  color: #395aa1;
  background: #fff;
  padding: 0.5em 80px 0.5em 40px;
  border-radius: 1000px;
  display: inline-block;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  min-width: 240px;
}
.history_section_open_link_btn::after {
  content: "┼";
  color: #3b539b;
  font-size: 15px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  border-radius: 1000px;
  font-weight: 400;
  -webkit-text-stroke: 1px #3b539b;
}
.history_section_open_link.active .history_section_open_link_btn::after {
  content: "─";
}
.history_section_open_link:hover .history_section_open_link_btn {
  color: #fff;
  background: #395aa1;
  transform: translateY(-3px);
}

.history_section_open_content {
  display: none;
}

.history_section_open_content {
  padding: 0;
  overflow: hidden;
  position: relative;
}
.history_section_open_content_close {
  display: inline-block;
  font-size: 1.2em;
  font-weight: bold;
  color: #fff;
  background: #395aa1;
  padding: 0.8em;
  width: 100%;
  max-width: 500px;
  border-radius: 1000px;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  cursor: pointer;
}
.history_section_open_content_close:hover {
  opacity: 0.6;
}

.about_main_body {
  background: #395aa1;
  color: #fff;
  padding: 80px 5%;
  text-align: center;
  margin: 0 20px 45px;
  font-weight: bold;
  cursor: default;
}
.about_logo {
  width: 110px;
  margin: 0 auto 35px;
}
.about_logo img {
  width: 100%;
  height: auto;
}

.about_main_txt_01 {
  font-size: 3.4em;
}
.about_main_txt_02 {
  font-size: 2.1em;
  margin-top: 35px;
}
.about_main_txt_02 span {
  display: inline-block;
  position: relative;
}
.about_main_txt_02 span:after {
  content: "";
  display: block;
  position: absolute;
  right: -0.5em;
  bottom: 0.3em;
  width: 0.34em;
  height: 0.34em;
  background: #f8f041;
  border-radius: 1000px;
}
.about_main_txt_02 strong {
  color: #f8f041;
  font-weight: 700;
}

.common_link_btn {
  background: #f8f041;
  color: #395aa1;
  padding: 0.5em 50px 0.5em 30px;
  border-radius: 1000px;
  display: inline-block;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  font-weight: bold;
  font-size: 1.2em;
  min-width: 300px;
}
.common_link_btn::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 18px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #fff;
  transition: all 0.3s ease;
  border-radius: 1000px;
}
.common_link_btn:hover {
  background: #395aa1;
  color: #fff;
}

.common_link_btn_l {
  min-width: 350px;
  padding: 0.7em 50px 0.7em 30px;
  font-size: 1.3em;
}
.common_link_btn_xl {
  min-width: none;
  max-width: 100%;
  width: 500px;
  padding: 0.7em 50px 0.7em 30px;
  font-size: 1.6em;
}

.about_section_title_en {
  font-size: 1.5em;
  font-weight: bold;
  color: #395aa1;
  background: linear-gradient(90deg, #1ebecb 0%, #1877aa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}
.about_section_title {
  font-size: 2.5em;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.3;
}

.about_section_lead {
  font-weight: bold;
  font-size: 1.2em;
  margin-bottom: 8px;
  line-height: 1.4;
}

.section_padding {
  padding: 70px 0 100px;
}

.bg_grayblue {
  background: #ecf2f6;
}
.bg_blue {
  background: #395aa1;
  color: #fff;
}
.bg_blue .about_section_title_en {
  background: linear-gradient(90deg, #1ebecb 0%, #aabeff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.bg_blue .common_link_btn:hover {
  background: #fff;
  color: #395aa1;
}
.bg_blue .common_link_btn:hover::after {
  color: #fff;
  background: #395aa1;
}

.common_title_left_yellow {
  border-left: 4px solid #f8f041;
  padding-left: 13px;
  margin-bottom: 20px;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.3;
}

.about_pic_slider_item {
  text-align: center;
}
.about_pic_slider_item_img img {
  border-radius: 10px;
}
.about_pic_slider_item_caption {
  font-size: 15px;
  margin-top: 5px;
}

.about_pic_slider .slick-dots {
  bottom: -35px;
}
.about_pic_slider .slick-dots li {
  margin: 0 0;
}
.about_pic_slider .slick-dots li button:before {
  color: #fff;
  opacity: 0.5;
  font-size: 10px;
}
.about_pic_slider .slick-dots li.slick-active button:before {
  opacity: 1;
  color: #fff;
}
.about_pic_slider .slick-prev,
.about_pic_slider .slick-next {
  bottom: -43px;
  top: auto;
  z-index: 2;
}
.about_pic_slider .slick-prev {
  left: calc(50% - 90px);
}
.about_pic_slider .slick-prev:before {
  content: "\f104";
}

.about_pic_slider .slick-next {
  right: calc(50% - 90px);
}
.about_pic_slider .slick-next:before {
  content: "\f105";
}

.about_pic_slider .slick-prev:before,
.about_pic_slider .slick-next:before {
  opacity: 1;
  font-family: FontAwesome;
}

.about_section_img {
  text-align: center;
}

.aboutkeywords_grid_box {
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  height: 100%;
  margin: 0 auto;
}
/* Establish query container on the parent of the box */
.aboutkeywords_grid_item {
  container-type: inline-size;
}

.aboutkeywords_grid_box_title {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 15px;
  text-align: center;
  line-height: 1.3;
}
.aboutkeywords_grid_box_txt {
  font-size: 1em;
  line-height: 1.5;
}

.aboutkeywords_grid_box_content {
  padding: 30px;
}

.slick-slide .about_pic_slider_item_img img {
  display: inline-block;
}

#founder_message.uk-modal {
  z-index: 10100000000;
}

#founder_message.founder_message_modal {
  background: rgba(0, 0, 0, 0.95);
  color: #fff;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  padding: 100px 0;
}

.founder_message_modal_title {
  font-size: 1.8em;
  font-weight: bold;
  margin-bottom: 50px;
  text-align: center;
  line-height: 1.3;
}
.founder_message_modal_subtitle {
  font-size: 1.5em;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.3;
  border-left: 4px solid #f8f041;
  padding-left: 13px;
}

.founder_message_modal_list {
  list-style: disc;
  padding-left: 1.5em;
}
.founder_message_modal_list li:nth-child(n + 2) {
  margin-top: 0.4em;
}

.founder_message_modal_list_history li {
  position: relative;
  padding-left: 9em;
}
.founder_message_modal_list_history li span {
  position: absolute;
  left: 0;
}

.founder_message_close_btn {
  position: fixed;
  top: 30px;
  right: 30px;
  width: 70px;
  height: 70px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  z-index: 10100000001;
  background-image: url(/common/img/icon/yellow_close_btn.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.founder_message_close_btn > * {
  opacity: 0;
}

.message_content_footer_name {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 20px;
}
.message_content_footer_name_text {
  font-size: 1.2em;
}
.message_content_footer_name_img {
}
.message_content_footer_name_img img {
}

.font_w500 {
  font-weight: 500;
}

.sustainability_content_name {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 20px;
}
.sustainability_content_name_text {
  font-size: 0.9em;
}
.sustainability_content_name_img {
}
.sustainability_content_name_img img {
  width: 180px;
}

.sustainability_img_width {
  width: 550px;
}

.recruit_main_body {
  height: 700px;
  background-image: url(/recruit/img/main_bg.jpg);
  background-size: cover;
  background-position: right bottom;
  background-repeat: no-repeat;
  padding-top: 160px;
  position: relative;
}

body.header_white_bg_none .head_bg {
  background: rgba(255, 255, 255, 0);
  border-bottom: 1px solid rgba(255, 255, 255, 0);
}
body.header_white_bg_none .site_header:hover .head_bg,
body.header_white_bg_none .headroom--not-top .head_bg {
  background: rgba(255, 255, 255, 1);
  border-bottom: 1px solid #eee;
}

.recruit_main_lead img {
  max-width: 35vw;
}

.recruit_main_link_body {
  position: absolute;
  bottom: 70px;
  right: 30px;
  width: auto;
  text-align: center;
}
.recruit_main_link {
  display: flex;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
}
.recruit_main_link a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  font-size: 1.2em;
  font-weight: 900;
  width: 160px;
  height: 80px;
  transition: 0.3s ease;
}
a.recruit_main_link_btn_new {
  background: #f8f041;
  color: #395aa1;
  border-radius: 10px 0 0 10px;
}
a.recruit_main_link_btn_career {
  background: #395aa1;
  color: #f8f041;
  border-radius: 0 10px 10px 0;
}
.recruit_main_link a:hover {
  text-decoration: underline;
}

.recruit_news_section_content {
  border-radius: 16px;
  background: #fff;
  padding: 30px 90px 30px 180px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
  position: relative;
}

.recruit_news_section_list .slick-prev:before,
.recruit_news_section_list .slick-next:before {
  font-family: fontAwesome;
  font-size: 18px;
  line-height: 1;
  color: #395aa1;
  opacity: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.message_content_width {
  max-width: 870px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.recruit_news_section_list_item .recruit_news_section_list_item_flex {
  display: block;
  text-decoration: none;
  transition: 0.3s ease;
  padding-left: 7em;
  position: relative;
}
.recruit_news_section_date {
  position: absolute;
  left: 0;
}
.recruit_news_section_list_item a:hover {
}
.recruit_news_section_list_item a:hover .recruit_news_section_date {
}
.recruit_news_section_list_item .recruit_news_section_link_txt a {
  text-decoration: underline;
  color: #000;
}
.recruit_news_section_list_item .recruit_news_section_link_txt a:hover {
  text-decoration: none;
}

.recruit_news_section_title {
  color: #334465;
  font-size: 1.4em;
}
.recruit_news_section_list .slick-prev {
  left: auto;
  right: -35px;
}
.recruit_news_section_list .slick-next {
  left: auto;
  right: -60px;
}

.recruit_news_section_title {
  left: 30px;
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
}

.recruit_news_section {
  position: relative;
  z-index: 2;
  margin-top: -30px;
}

.common_link_btn2 {
  position: relative;
  display: inline-block;
  padding-right: 45px;
  font-size: 1.1em;
  color: #000;
  text-decoration: none;
  font-weight: bold;
}
.common_link_btn2:hover {
  text-decoration: underline;
}
.right_arrow {
  position: relative;
  display: inline-block;
  padding-right: 45px;
}
.right_arrow:after,
.common_link_btn2::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 18px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  transition: all 0.3s ease;
  border-radius: 1000px;
}

.common_en_title {
  color: #395aa1;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 4.6em;
  line-height: 1;
}
.common_en_title_sub {
  color: #666;
  font-weight: bold;
  font-size: 1.1em;
  margin: 5px 0 20px;
}

.common_lead {
  font-size: 1.8em;
  line-height: 1.5;
  margin-bottom: 20px;
  font-weight: bold;
}

.recruit_who_section {
  position: relative;
  padding-bottom: 80px;
}

.recruit_who_section_left {
  width: 46%;
}

.recruit_who_section_right {
  position: absolute;
  right: 0;
  top: 0;
  background-image: url(/recruit/img/who_pic.jpg);
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  width: 49%;
  height: 100%;
  z-index: 1;
  border-radius: 20px 0 0 20px;
}
.recruit_who_section_bg_body {
  padding-bottom: 60px;
}

.blue_bg_link_btn {
  background: #395aa1;
  color: #fff;
  text-decoration: none;
  display: block;
  padding: 35px calc(50% + 30px) 55px 30px;
  border-radius: 20px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
  position: relative;
  overflow: hidden;
  transition: 0.3s ease;
}
.blue_bg_link_btn:hover {
  transform: translateY(-10px);
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.25);
}
.blue_bg_link_btn_subtitle {
  font-size: 1em;
  font-weight: bold;
  margin-bottom: 0;
  color: #fff;
}
.blue_bg_link_btn_title {
  font-size: 1.8em;
  line-height: 1.2;
  font-weight: bold;
  margin-bottom: 17px;
  color: #fff;
  position: relative;
}
.blue_bg_link_btn_description {
  font-size: 1.1em;
  color: #fff;
}

.blue_bg_link_btn_img {
  position: absolute;
  right: 0;
  top: 0;
  width: 50%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.recruit_what_section {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.recruit_what_section_bg {
  background-image: url(/recruit/img/what_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  width: 97%;
  height: 100%;
  z-index: -1;
  border-radius: 0 20px 20px 0;
}

.recruit_what_section_pic {
  background-image: url(/recruit/img/what_pic.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  right: 0;
  bottom: -60px;
  width: 56%;
  height: calc(100% - 120px);
  z-index: 1;
  border-radius: 20px 0 0 20px;
}

.recruit_what_section_content {
  position: relative;
  z-index: 3;
}

.recruit_what_section_left {
  width: 46%;
}

.common_link_btn3 {
  background: #f8f041;
  color: #395aa1;
  padding: 0.7em 50px 0.7em 30px;
  border-radius: 12px;
  display: inline-block;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  font-weight: bold;
  font-size: 1.2em;
  min-width: 300px;
  text-align: center;
}
.common_link_btn3::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 18px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #fff;
  transition: all 0.3s ease;
  border-radius: 1000px;
}
.common_link_btn3:hover {
  background: #395aa1;
  color: #fff;
}

.common_link_btn3_back {
  padding: 0.7em 30px 0.7em 50px;
}

.common_link_btn3_back::after {
  content: "\f060";
  left: 10px;
  right: auto;
}

.common_link_btn3_back:hover::after {
  background: #fff;
}

.recruit_what_section_left_box {
  background: #fff;
  padding: 50px 70px 70px;
}

.recruit_what_section_left_box_list a {
  display: block;
  text-decoration: none;
  color: #000;
  font-size: 1.2em;
  font-weight: bold;
  transition: 0.3s ease;
  border-bottom: 1px solid #ddd;
  padding: 1em 30px 1em 0;
  position: relative;
}
.recruit_what_section_left_box_list a:hover {
  text-decoration: underline;
}
.recruit_what_section_left_box_list a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 18px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 100%;
  background: #fff;
  transition: all 0.3s ease;
  border-radius: 1000px;
}

.recruit_people_section_grid_item_img {
  text-align: center;
}

.recruit_people_section_grid_item_name_box {
  background: #fff;
  position: relative;
  z-index: 2;
  padding: 20px 5px 20px 0;
  border-radius: 0 10px 0 0;
  margin-top: -40px;
  width: 92%;
  font-weight: bold;
  font-size: 0.96em;
}
.recruit_people_section_grid_item_name_box_name:after {
  content: "｜";
  opacity: 0.5;
  margin: 0 4px;
  font-weight: normal;
}

.recruit_people_section_grid_item_txt {
  font-size: 1em;
  font-weight: 500;
}

.recruit_people_section_grid_item {
  container-type: inline-size;
}
.recruit_people_section_grid_item a {
  display: block;
  text-decoration: none;
  color: #000;
  transition: 0.3s ease;
}
.recruit_people_section_grid_item a:hover {
  opacity: 0.8;
  transform: translateY(-10px);
}

.recruit_wellbeing_section {
  position: relative;
  color: #fff;
}
.recruit_wellbeing_section_bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 97%;
  height: 100%;
  background: #395aa1;
  border-radius: 20px 0 0 20px;
  z-index: -1;
}

.recruit_wellbeing_section_left_box_list li:nth-child(n + 2) {
  margin-top: 10px;
}
.recruit_wellbeing_section_left_box_list li a {
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  font-size: 1.1em;
  transition: 0.3s ease;
}
.recruit_wellbeing_section_left_box_list li a:hover {
  text-decoration: underline;
}

.blue_bg_link_btn_gray_bg {
  background: #f3f3f3;
  font-weight: 500;
}
.blue_bg_link_btn_gray_bg > * {
  color: #395aa1 !important;
}

.recruit_top_bottom_link_body {
  background: #ecf2f6;
}

.recruit_top_bottom_link_item {
  background: #fff;
  display: block;
  text-decoration: none;
  color: #000;
  transition: 0.3s ease;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  position: relative;
  padding: 30px 30px 30px 138px;
  line-height: 1.4;
}
.recruit_top_bottom_link_item_img {
  position: absolute;
  top: 0;
  left: 25px;
  width: 108px;
  height: 100%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
  display: flex;
  align-items: center;
}
.recruit_top_bottom_link_item_txt {
  position: relative;
  z-index: 2;
  padding: 20px;
}
.recruit_top_bottom_link_item_txt_title {
  font-size: 1.2em;
  font-weight: bold;
}
.recruit_top_bottom_link_item_txt_description {
  font-size: 1.5em;
  font-weight: bold;
}
.recruit_top_bottom_link_item:hover {
  transform: translateY(-10px);
}

.subpage_top_pic_link {
  display: block;
  text-decoration: none;
  color: #000;
  transition: 0.3s ease;
}
.subpage_top_pic_link:hover {
  opacity: 0.8;
  transform: translateY(-10px);
}
.subpage_top_pic_link_img {
}
.subpage_top_pic_link_img img {
  border-radius: 20px;
}

.recruit_company_katikan_list_img {
  text-align: center;
}
.recruit_company_katikan_list_img {
  text-align: center;
}
.recruit_company_katikan_list_title {
  font-size: 1.55em;
  margin: 20px 0 15px;
  font-weight: bold;
  text-align: center;
  color: #0841ac;
}
.recruit_company_katikan_list_txt {
  font-size: 1em;
  font-weight: 500;
}

.recruit_company_suuji_grid_box {
  text-align: center;
  padding: 40px 15px 180px;
  background: #ecf2f6;
  position: relative;
  height: 100%;
}
.recruit_company_suuji_grid_box_img img {
  width: 140px;
  margin-bottom: 15px;
}
.recruit_company_suuji_grid_box_title {
  font-size: 1.75em;
  font-weight: bold;
}
.recruit_company_suuji_grid_box_num_body {
  position: absolute;
  left: 0;
  bottom: 80px;
  width: 100%;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.recruit_company_suuji_grid_box_num {
  font-size: 2em;
  font-weight: bold;
  color: #0841ac;
  line-height: 1;
}
.recruit_company_suuji_grid_box_num span {
  font-size: 0.55em;
  color: #000;
}
.recruit_company_suuji_grid_box_num strong {
  font-size: 1.8em;
  margin: 0 0.1em;
  vertical-align: text-bottom;
}
.recruit_company_suuji_grid_box_hosoku {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
  font-size: 1.1em;
  line-height: 1.2;
}

.subpage_top_pic_link_title {
  font-size: 1.5em;
  font-weight: bold;
  background: #fff;
  max-width: 440px;
  padding: 15px 10px 15px 0;
  margin-top: -50px;
  border-radius: 0 10px 0 0;
  position: relative;
  z-index: 2;
}

.environment_voice_grid_box {
  min-height: 99px;
  padding-left: 140px;
  position: relative;
}
.environment_voice_grid_box_img {
  position: absolute;
  left: 10px;
  top: 0;
}
.environment_voice_grid_box_txt {
}

.environment_voice_grid_box_hukidasi {
  background: #f8f041;
  border-radius: 8px;
  padding: 25px;
  font-weight: bold;
  position: relative;
}
.environment_voice_grid_box_hukidasi > * {
  position: relative;
  line-height: 1.4;
  z-index: 2;
}
.environment_voice_grid_box_hukidasi:after {
  content: "";
  position: absolute;
  left: -11px;
  top: 30px;
  width: 0;
  height: 0;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-right: 20px solid #f8f041;
}

.education_3_hasira {
  max-width: 580px;
  width: 50vw;
  min-width: 260px;
}

.education_grid_box {
}

.education_grid_box_img,
.education_grid_box_title {
  text-align: center;
  margin-bottom: 15px;
}
.education_grid_box_title {
  font-size: 1.6em;
  font-weight: bold;
  color: #0841ac;
}
.education_grid_box_img img {
  width: 220px;
}
.education_grid_box_list {
  list-style: disc;
  font-size: 0.95em;
  padding-left: 1.5em;
  font-weight: 700;
  margin-top: 20px;
  line-height: 1.4;
}
.education_grid_box_list li:nth-child(n + 2) {
  margin-top: 0.45em;
}

.common_box_white {
  padding: 20px;
  background: #fff;
  border-radius: 10px;
}

.h100p {
  height: 100%;
}

.recruit_company_suuji_grid_box_welfare {
  padding-bottom: 40px !important;
  padding-left: 7% !important;
  padding-right: 7% !important;
  font-size: 0.93em;
}

.environment_voice_grid {
  padding-bottom: 50px;
}

/* FAQ開閉スタイル */
.recruit_faq_box {
  margin-bottom: 30px;
  border: 1px solid #2090c0;
  border-radius: 20px;
  overflow: hidden;
}

.recruit_faq_box_title {
  cursor: pointer;
  position: relative;
  padding: 35px 100px 35px 130px;
  user-select: none;
  font-size: 1.3em;
  font-weight: bold;
  line-height: 1.6;
  transition: background-color 0.2s ease;
  line-height: 1.4;
}

.recruit_faq_box_title:hover {
  text-decoration: underline;
}

.recruit_faq_box_title::before {
  content: "";
  position: absolute;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  background-image: url(/recruit/faq/img/icon_q.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.recruit_faq_box_title::after {
  content: "┼";
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 900;
  color: #fff;
  transition: transform 0.3s ease;
  background: #0080b7;
  border-radius: 1000px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 0;
  text-decoration: none;
  -webkit-text-stroke: 0.7px #fff;
}

.recruit_faq_box_title.is-open::after {
  content: "─";
  transform: translateY(-50%) rotate(0deg);
}

.recruit_faq_box_content {
  display: none;
  padding: 35px 40px 40px 130px;
  position: relative;
  margin-top: 0;
  line-height: 1.8;
}

.recruit_faq_box_content::before {
  content: "";
  position: absolute;
  left: 40px;
  top: 10px;
  width: 60px;
  height: 60px;
  background-image: url(/recruit/faq/img/icon_a.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: top 0.3s ease;
}
.recruit_faq_box_content.is-open::before {
  top: 20px;
}
.recruit_faq_box_content::after {
  content: "";
  display: block;
  left: 40px;
  width: calc(100% - 80px);
  height: 1px;
  background: #2090c0;
  position: absolute;
  top: 0;
}

.recruit_faq_box_content.is-open {
  display: block;
}

/* ========================================
   History Timeline - 改善版
   ======================================== */

.history_open_box {
  clear: both;
}

.history_open_box .btn .history_open_btn,
.history_close_btn {
  color: #b39248;
  position: absolute;
  bottom: 20px;
  left: 50%;
  font-family: "Oswald", sans-serif;
  font-weight: bold;
  text-align: center;
  font-size: 90%;
  transform: translateX(-50%);
}

.history_open_box .btn .history_open_btn .icon,
.history_close_btn .icon {
  width: 55px;
  height: 55px;
  background: #b39248;
  border-radius: 50%;
  position: relative;
}

.history_open_box .btn .history_open_btn .icon span,
.history_close_btn .icon span {
  width: 20px;
  height: 3px;
  background: #395aa1;
  display: inline-block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: 0.3s;
}

.history_open_box .btn .history_open_btn .icon span:nth-child(2),
.history_close_btn.icon span:nth-child(2) {
  transform: translate(-50%, -50%) rotate(90deg);
}

.history_open_box .btn.active .history_open_btn .icon span:nth-child(2) {
  opacity: 0;
}

.history_open_box .history_list {
  display: none;
}

.history_list {
  position: relative;
}

.history_list img {
}

/* タイムラインの中央線 */
.history_list:before {
  content: "";
  width: 4px;
  height: 100%;
  background: #f4d045;
  position: absolute;
  top: 0;
  left: 200px;
  transform: translateX(-50%);
  z-index: -1;
}
.history_list_product:before {
  width: 1px;
  background: #ccc !important;
  top: 15px;
  height: calc(100% - 38px);
}

/* タイムラインの下部三角形（上向き矢印） */
.history_list:after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 200px;
  transform: translate(-50%, 0);
  z-index: 2;
  width: 0;
  height: 0;
  border-left: 24px solid transparent;
  border-right: 24px solid transparent;
  border-top: 18px solid #f4d045;
}
.history_list_product:after {
  border-top-color: #ccc !important;
  display: none !important;
}

@media all and (-ms-high-contrast: none) {
  .history_list:after {
    bottom: 120px;
    transform: translate(-50%, 0);
  }
}

/* タイムラインコンテナ */
.history_list .list {
  position: relative;
  padding-bottom: 40px;
}

/* タイムライン項目 - 統一クラス */
.history_item {
  width: 100%;
  padding: 0 0 0 260px;
  position: relative;
  box-sizing: border-box;
  margin-left: auto;
  margin-bottom: 50px;
}

/* 年号スタイル */
.history_item .year {
  position: absolute;
  left: 0;
  top: -10px;
  padding-left: 30px;
}
.history_item .year > span {
  display: block;
  line-height: 1.2;
  color: #666;
  font-size: 0.9em;
}
.history_item .year > span.txt160p {
  color: #000;
  margin-left: -3px;
}

.history_item .year span span {
  display: inline-block;
}

.history_item p {
  font-weight: 500;
}
.history_item p:nth-child(n + 2) {
  font-size: 1.2em;
}

.history_item .year:after {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #666;
  position: absolute;
  left: 200px;
  top: 17px;
  transform: translateX(-50%);
  z-index: 3;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px #f4d045;
}
.history_list_product .history_item .year:after {
  box-shadow: 0 0 0 2px #395aa1;
}
.history_item .year:before {
  content: "";
  height: 2px;
  background: #ccc;
  position: absolute;
  left: 225px;
  top: 25px;
  transform: translateX(-50%);
  z-index: 3;
  width: 30px;
}

.history_close_btn {
  position: relative;
  text-align: center;
  display: inline-block;
  cursor: pointer;
  margin-top: 50px;
}

.history_close_btn .icon {
  margin-left: auto;
  margin-right: auto;
}

.history_list .expert {
  font-weight: bold;
  color: #395aa1;
}

.history_list .last {
  padding-bottom: 180px;
}

.history_list .center {
  position: absolute;
  left: 50%;
  bottom: 60px;
  transform: translateX(-50%);
  width: 100%;
  max-width: 640px;
  padding: 30px 20px;
  font-size: 130%;
  font-weight: bold;
  color: #b39248;
  border: 3px solid #b39248;
  background: #fff;
  text-align: center;
  z-index: 2;
}
/*
.history_list .expert p{
	margin-left: 1em;
	position: relative;
}

.history_list .expert p:before{
	content:"・";
	position: absolute;
	left: -1em;
	top:0;
}*/

.history_open_box .txtbox h2 {
  background: #fff;
  padding: 5px 20px;
  display: inline-block;
  font-size: 140%;
}

.history_open_box .txtbox h3 {
  font-size: 200%;
  margin-bottom: 20px;
}

.history_open_box h3 strong.enji {
  color: #ae1633;
}

.history_open_box .txtbox h3 strong.gold {
  color: #cab311;
}

.history_open_box .txtbox h3 span {
  font-weight: normal;
}

.history_open_box .txtbox h3 strong,
.history_open_box .txtbox h3 span {
  display: block;
}

.vision_2030_box {
  background: #fff;
  padding: 30px 50px 30px 80px;
  display: inline-block;
  font-size: 0.9em;
}
.vision_2030_box .vision_txt_03 li {
  line-height: 1.6;
}

p.year .txt-nakahashi {
  color: #395aa1;
  font-weight: bold;
  margin-right: 0.1em;
}

.history_item_2030 {
  margin-top: 130px !important;
}
.history_item_2030_txt {
  padding: 13px;
  font-size: 130%;
  font-weight: bold !important;
  color: #b39248;
  border: 3px solid #b39248;
  position: relative;
  top: -17px;
}

.history_item_2030 p.year .txt-nakahashi {
  color: #b39248;
}

.history_section_open_link_btn:before {
  content: "詳しく見る";
}
.history_section_open_link.active .history_section_open_link_btn:before {
  content: "閉じる";
}

.global_nav_open_sub_menu_content_inner_list li > div {
  margin-top: 4px;
}
.global_nav_open_sub_menu_content_inner_list li > div a {
  display: block;
  border: none;
  font-weight: 500;
  font-size: 0.9em;
  line-height: 1;
}
.global_nav_open_sub_menu_content_inner_list li > div a:before {
  content: "-";
  margin-right: 0.5em;
  display: inline-block;
  text-decoration: none;
}
.global_nav_open_sub_menu_content_inner_list li > div a:after {
  display: none;
}

.motomeru_box {
  text-align: center;
  padding: 40px;
  background: #f5f5ee;
}
.motomeru_box_title {
  color: #0841ac;
  font-weight: bold;
  font-size: 1.8em;
  line-height: 1.4;
  margin-bottom: 40px;
}

.motomeru_box_grid_title {
  margin: 40px 0 15px;
  font-weight: bold;
  font-size: 1.35em;
  line-height: 1.4;
}
.motomeru_box_grid_txt {
  font-size: 1em;
  font-weight: 500;
  line-height: 1.8;
}

.motomeru_box_grid_icon img {
  max-width: 40%;
}

.people_main_lead {
  font-size: 2em;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 60px;
}

.people_main_body {
  position: relative;
}

.people_main_txt_box {
  font-weight: bold;
}

.people_main_txt_box_name {
  margin-bottom: 11px;
  font-size: 1.5em;
  line-height: 1.2;
}
.people_main_txt_box_sub {
  display: flex;
  gap: 0.8em;
}

.people_content_body h2 {
  color: #0841ac;
  font-size: 1.6em;
  margin-bottom: 0.4em;
  line-height: 1.2;
}
.people_content_body h2:before {
  content: "─";
  margin-right: 0.35em;
}
.people_content_body p {
  font-size: 1.1em;
  line-height: 1.8;
  margin-bottom: 3em;
  font-weight: 500;
}
.people_content_body p:last-child {
  margin-bottom: 0;
}

.people_content_img {
  margin-bottom: 80px;
  text-align: center;
}
.people_content_img img {
  width: 700px;
  max-width: 80%;
}

.daily_schedule_list {
  position: relative;
  line-height: 1.3;
}
.daily_schedule_list:before {
  content: "";
  width: 2px;
  height: calc(100% - 1em);
  top: 0.5em;
  left: calc(2.8em + 19px);
  background: #ccc;
  position: absolute;
  z-index: 0;
}
.daily_schedule_list li {
  position: relative;
  padding: 0.2em 0 0.2em calc(2.8em + 40px);
}
.daily_schedule_list span {
  display: inline-block;
  width: 2.8em;
  text-align: right;
  color: #0841ac !important;
  font-weight: bold;
  position: absolute;
  left: 0;
  z-index: 1;
}
.daily_schedule_list span:after {
  content: "●";
  position: absolute;
  width: 40px;
  display: flex;
  justify-content: center;
  left: 2.8em;
  color: #0841ac !important;
  font-weight: bold;
  background: transparent;
  z-index: 2;
  top: 0;
  height: 100%;
  transform: scale(0.7);
}

.daily_schedule_list_box {
  padding: 30px;
  background: #ecf2f6;
  font-size: 1.1em;
  font-weight: 500;
}

.daily_schedule_list_box_right {
  line-height: 1.8;
}

.people_message_img img {
  border-radius: 10000px;
  width: 50%;
  max-width: 310px;
  margin-bottom: 20px;
}

.people_main_img {
  text-align: center;
}

@media (max-width: 768px) {
  .people_main_img img {
    width: 50%;
    max-width: 310px;
    border-radius: 1000px !important;
  }
}

.news_archive_link_box_data .news_cat_span {
  display: inline-block;
  background: #395aa1;
  color: #fff;
  padding: 0 5px;
  min-width: 130px;
  text-align: center;
  vertical-align: 1px;
  position: relative;
}

.news_archive_link_box_data .list_content_time {
  margin-left: 10px;
}

.news_tax_title {
  color: #395aa1;
  font-size: 140%;
}

.recruit_top_bottom_link_body_custom {
  background: none;
}

.recruit_top_bottom_link_body_custom .recruit_top_bottom_link_item {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0);
  border: 2px solid #777;
}

.requirements_table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 100px;
}
.requirements_table th {
  background: #f2f5fb;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
  font-size: 1.1em;
  width: 30%;
}
.requirements_table td strong {
  font-weight: bold;
  color: #0841ac;
}
.requirements_table th,
.requirements_table td {
  padding: 20px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.requirement-closed-message {
  color: #ff0000;
  margin-bottom: 20px;
  font-size: 1.2em;
  font-weight: bold;
}

.news_archive_link_box {
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #ccc;
}
.archive_page_news_list > .news_archive_link_box:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.news_archive_link_box_data {
  font-size: 0.9em;
  margin-bottom: 5px;
}

.news_archive_link_box_title a {
  color: #000;
  font-weight: 500;
  text-decoration: underline;
  font-size: 1.05em;
}
.news_archive_link_box_title a:hover {
  text-decoration: none;
}

.common_title2 {
  line-height: 1.3;
  font-size: 1.5em;
  font-weight: bold;
  position: relative;
  margin-bottom: 30px !important;
  border-bottom: 2px solid #0841ac;
  padding-bottom: 0.5em;
}

.common_title3 {
  position: relative;
  font-size: 2.2em;
  font-weight: bold;
  margin-bottom: 40px !important;
  padding-bottom: 25px;
  line-height: 1.4;
  text-align: center;
}
.common_title3:after {
  content: "";
  background: #f8f041;
  width: 76px;
  height: 6px;
  border-radius: 100px;
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.common_title3_border_none {
  padding-bottom: 0 !important;
}
.common_title3_border_none:after {
  display: none !important;
}

.common_link_btn.common_link_btn_pdf{
  padding-left: 10px!important;
  padding-right: 10px!important;
}
.common_link_btn.common_link_btn_pdf::before {
  content: "\f1c1";
  font-family: FontAwesome;
  font-weight: normal;
  margin-right: 0.2em;
}
.common_link_btn.common_link_btn_pdf::after {
  content: "\f019";
  display: none!important;
}

.subpage_bottom_link_nav_body_img_none .subpage_bottom_link_nav_list a {
  padding-left: 5%;
}

.product_functions_btn_body {
  position: absolute;
  top: 8%;
  left: 20.6%;
  width: 59%;
  height: 82%;
}

.product_functions_btn {
  position: absolute;
  width: 31%;
  border-radius: 10px;
}
.product_functions_btn a {
  display: block;
  border-radius: 10px;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.1);
  overflow: hidden;
  background: #44b1cc;
  transition: 0.3s ease;
  line-height: 0;
  position: relative;
  z-index: 2;
}
.product_functions_btn a:after {
  content: "┼";
  position: absolute;
  right: 1px;
  top: 50%;
  transform: translateY(-50%) scale(0.6);
  font-size: 20px;
  font-weight: 900;
  color: #395aa1;
  transition: transform 0.3s ease;
  background: #f8f041;
  border-radius: 1000px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 0;
  text-decoration: none;
  -webkit-text-stroke: 1.5px #395aa1;
  transition: all 0.3s ease;
}
.product_functions_btn a:hover::after {
  color: #fff;
  background: #395aa1;
  -webkit-text-stroke: 1.5px #fff;
}
.product_functions_btn a:hover {
  transform: translateY(-2px);
}
.product_functions_btn img {
  margin-left: -8%;
}
.product_functions_btn_01,
.product_functions_btn_02,
.product_functions_btn_03,
.product_functions_btn_04,
.product_functions_btn_05 {
  left: 0;
}
.product_functions_btn_06,
.product_functions_btn_07,
.product_functions_btn_08,
.product_functions_btn_09 {
  left: 34.5%;
}
.product_functions_btn_10,
.product_functions_btn_11,
.product_functions_btn_12,
.product_functions_btn_13,
.product_functions_btn_14,
.product_functions_btn_15 {
  left: 69%;
}
.product_functions_btn_02,
.product_functions_btn_07,
.product_functions_btn_11 {
  top: 17%;
}
.product_functions_btn_03,
.product_functions_btn_08,
.product_functions_btn_12 {
  top: 34%;
}
.product_functions_btn_04,
.product_functions_btn_09,
.product_functions_btn_13 {
  top: 51%;
}
.product_functions_btn_05,
.product_functions_btn_14 {
  top: 68%;
}
.product_functions_btn_15 {
  top: 85%;
}

.uk_functions_modal_btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
}
.uk_functions_modal_btn_prev:before {
  content: "\f060";
  font-family: FontAwesome;
  font-weight: normal;
  position: absolute;
  left: -50px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: #395aa1;
  transition: transform 0.3s ease;
  background: #fff;
  border-radius: 1000px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 0;
  text-decoration: none;
  transition: all 0.3s ease;
}
.uk_functions_modal_btn_next:before {
  content: "\f061";
  font-family: FontAwesome;
  font-weight: normal;
  position: absolute;
  right: -50px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: #395aa1;
  transition: transform 0.3s ease;
  background: #fff;
  border-radius: 1000px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  margin: 0;
  padding: 0;
  text-decoration: none;
  transition: all 0.3s ease;
}

.uk_functions_modal_btn_prev:hover::before,
.uk_functions_modal_btn_next:hover::before {
  background: #f8f041;
}

.uk_functions_modal .uk-modal-header {
  background: #44b1cc;
  border-bottom: none;
  color: #fff;
  text-align: center;
  border-radius: 10px 10px 0 0;
}

.uk_functions_modal .uk-modal-dialog {
  border-radius: 10px;
  width: 400px;
}

.uk_functions_modal [class*="uk-modal-close-"] {
  position: absolute;
  z-index: 1010;
  top: -10px;
  right: -10px;
  padding: 5px;
  color: #395aa1;
  font-size: 20px;
  font-weight: 900;
  background: #f8f041;
  border-radius: 1000px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.uk-modal.uk_functions_modal {
  z-index: 1111111113;
  transition: opacity 0.15s linear;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px); /* Safari対策 */
}

.product_history_right {
  position: relative;
  top: -9px;
}

.history_list.history_list_product .list {
  padding-bottom: 0;
}

.product_history_yellow_box {
  background: #f8f041;
  padding: 20px;
  border-radius: 10px;
  margin-top: 20px;
  display: flex;
  align-items: center;
}
.product_history_yellow_box_title {
  font-size: 1.2em;
  font-weight: bold;
  white-space: nowrap;
  margin-right: 15px;
}
.product_history_yellow_box_title:after {
  content: "▶";
  color: #395aa1;
  margin-left: 0.5em;
}
.product_history_yellow_box_list li {
  text-indent: -1em;
  padding-left: 1em;
  line-height: 1.4;
}
.product_history_yellow_box_list li:nth-child(n + 2) {
  margin-top: 0.5em;
}
.product_history_yellow_box_list li:before {
  content: "-";
  margin-right: 0.5em;
}

.white_bg_txt {
  font-weight: bold;
  text-align: center;
  font-size: 1.2em;
  color: #395aa1;
  background: #fff;
  padding: 10px;
  border-radius: 1000px;
  margin-bottom: 30px;
}

.product_service_check_list li {
  position: relative;
  padding-left: 70px;
  font-size: 1.1em;
}
.product_service_check_list li:nth-child(n + 2) {
  margin-top: 1em;
}
.product_service_check_list li strong {
  position: relative;
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 10px;
}
.product_service_check_list li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background-image: url(/common/img/icon/check_blue.svg);
  width: 53px;
  height: 53px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.product_service_grid {
}

.product_service_blue_txt_list {
  padding-top: 0.5em;
}
.product_service_blue_txt_list li {
  padding: 2px 0 0 0;
  color: #395aa1;
  font-weight: bold;
  font-size: 1.1em;
}
.product_service_blue_txt_list li:before {
}

.product_service_img {
  text-align: center;
}
.product_service_img img {
  max-width: 60vw;
  width: 100%;
}

.product_case_box {
  overflow: hidden;
}

/* 全体ボックス */
.product_case_box {
  display: flex;
  background: #fff;
  align-items: flex-start;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}
.product_case_box:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

/* 左側画像（角丸） */
.product_case_box_img img {
  width: 480px;
}

/* 右側の内容 */
.product_case_box_inner {
  flex: 1;
  padding: 30px;
}

/* ロゴ + タイトル横並び */
.product_case_box_inner_top {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
}

/* ロゴ */
.product_case_box_inner_top_logo img {
  width: 100px;
  height: auto;
}

/* 企業名 */
.product_case_box_inner_top_title {
  font-size: 1.4em;
  font-weight: 700;
}

/* 説明文 */
.product_case_box_inner_text {
  font-size: 1.3em;
  line-height: 1.5;
  font-weight: 700;
}
.product_case_box_inner_bottom_list {
  margin-top: 30px;
}

/* 情報行（ラベル + 値） */
.product_case_box_inner_bottom {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

/* ラベル（丸背景） */
.product_case_box_inner_bottom_label {
  color: #333;
  font-weight: 600;
  padding: 3px;
  border-radius: 999px;
  text-align: center;
  min-width: 7em;
  font-size: 0.8em;
  margin-right: 12px;
  white-space: nowrap;
  border: 1px solid #78c8e6;
  font-weight: 700;
}

/* 値 */
.product_case_box_inner_bottom_value {
  font-size: 1em;
}

.case_table {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.case_table th,
.case_table td {
  padding: 20px;
}
.case_table th {
  text-align: left;
  white-space: nowrap;
  font-size: 1.1em;
  width: 20%;
  border-top: 2px solid #3b539b;
  border-bottom: 2px solid #3b539b;
}
.case_table td {
  border-top: 2px solid #ccc;
  border-bottom: 2px solid #ccc;
  text-align: left;
}
.case_table td ul {
  list-style: disc;
  padding-left: 1em;
}

.footer_product_contact_body {
  background: #ecf2f6;
  padding: 50px 0;
}
.footer_product_contact_grid a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  line-height: 1.3;
  text-decoration: none;
  color: inherit;
  padding: 60px 80px 60px 120px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  position: relative;
  height: 100%;
}
.footer_product_contact_grid a:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.footer_product_contact_grid a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 15px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  border-radius: 1000px;
}

.footer_product_contact_grid_title {
  font-size: 1.3em;
  font-weight: bold;
}

.footer_product_contact_grid_link_icon {
  position: absolute;
  left: 20px;
  top: 0;
  width: 80px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #3b539b;
  font-size: 1.5em;
  font-weight: 900;
  z-index: 2;
}
.footer_product_contact_grid_link_icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product_top_body {
  padding: 100px 0;
  color: #fff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
.product_top_body_title {
  font-size: 3.5em;
  font-weight: bold;
  line-height: 1.35;
  margin-bottom: 30px;
}
.product_top_body_title span {
  display: inline-block;
  margin-left: -0.7em;
}
.product_top_body_txt ,
.product_top_body_title {
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.product_top_body_txt {
  font-size: 1.2em;
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 40px;
}
.product_top_body_btn {
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 60px;
}

/* 企業ロゴスライダー */
.product_top_company_logo_slider_body {
  padding: 40px 0;
  background: #f8f9fa;
}
.product_top_company_logo_slider_title {
  font-size: 1.5em;
  font-weight: bold;
  text-align: center;
  margin-bottom: 25px;
  color: #395aa1;
}
.product_top_company_logo_slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.product_top_company_logo_slider_wrapper {
  display: flex;
  flex-direction: row;
  animation: productLogoScroll 35s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  width: 5894px; /* 24個 × 236px + 23個 × 10px = 5664px + 230px = 5894px */
}
.product_top_company_logo_slider_wrapper > * {
  width: 236px; /* 画像の幅に合わせて固定 */
  flex-shrink: 0;
}
.product_top_company_logo_slider_item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 236px;
  margin-right: 10px;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.product_top_company_logo_slider_item:last-child {
  margin-right: 0;
}
.product_top_company_logo_slider_item img {
  width: 236px;
  height: 103px;
  object-fit: contain;
  display: block;
  transition: opacity 0.3s ease;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: auto;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.product_top_company_logo_slider_item:hover img {
  opacity: 1;
}
@keyframes productLogoScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-2942px); /* 12個 × 236px + 11個 × 10px = 2832px + 110px = 2942px（1セット分） */
  }
}

.yellow_border_txt {
  display: inline-block;
  border: 1px solid #f8f041;
  border-radius: 1000px;
  color: #395aa1;
  padding: 1px 20px;
  font-size: 1em;
  font-weight: bold;
  line-height: 1.5;
}

.blue_check_list li {
  position: relative;
  padding-left: 25px;
}
.blue_check_list li:before {
  position: absolute;
  content: "";
  left: 0;
  width: 16px;
  height: 16px;
  top: 5px;
  background-image: url(/common/img/icon/check_blue_02.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.blue_check_list li:nth-child(n + 2) {
  margin-top: 0.3em;
}

.product_top_case_grid_box {
  display: block;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  height: 100%;
  background: #fff;
}
.product_top_case_grid_box:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.product_top_case_grid_box_img {
  text-align: center;
}
.product_top_case_grid_box_img img {
  width: 100%;
  height: auto;
}
.product_top_case_grid_box_txt_body {
  padding: 25px;
  font-weight: 500;
}

.product_top_case_grid_box_txt_body_top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 1.1em;
}
.product_top_case_grid_box_txt_body_top_logo {
  width: auto;
  height: 36px;
  overflow: hidden;
}
.product_top_case_grid_box_txt_body_top_logo img {
  width: 100%;
  height: 100%;
}
.product_top_case_grid_box_txt_body_text {
  display: inline-block;
}

.donyu_kouka_grid_hukidashi {
  border-radius: 1000px;
  background: #69C1D6;
  color: #fff;
  font-weight: 400;
  font-size: 1.1em;
  line-height: 1.35;
  padding: 20px 15px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  transition: all 0.3s ease;
  min-height: 4em;
  position: relative;
}
.donyu_kouka_grid_hukidashi::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 15px solid #69C1D6;
}
.donyu_kouka_grid_hukidashi span {
  display: inline-block;
}

.donyu_kouka_grid .uk-grid-margin {
  margin-top: 30px;
}

.product_flow_box {
  position: relative;
}
.product_flow_box_step_number {
  position: absolute;
  top: -40px;
  left: -40px;
  width: 106px;
  height: 106px;
  background: #f8f041;
  border-radius: 1000px;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1;
  color: #395aa1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.product_flow_box_step_number span {
  display: block;
}
.product_flow_box_step_number_text {
  font-size: 0.9em;
}
.product_flow_box_step_number_number {
  font-size: 1.3em;
}

.common_link_btn_plus:after {
  content: "┼";
  -webkit-text-stroke: 0.7px #3b539b;
  color: #3b539b;
}
.common_link_btn_plus.is-open:after {
  content: "─";
}
.common_link_btn_plus:before {
  content: "詳しく見る";
}
.common_link_btn_plus.is-open:before {
  content: "閉じる";
}

.product_flow_open_content {
  display: none;
}

.product_flow_open_content_inner {
  max-width: 940px;
  margin: 60px auto 0;
}

.flow_box {
  background: #fff;
  border-radius: 20px;
  padding: 40px 30px;
  margin-bottom: 30px;
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

.flow_num {
  font-size: 46px;
  font-weight: 700;
  color: #2bb7c1;
  flex-shrink: 0;
  width: 60px;
  text-align: center;
}

.flow_content {
  flex: 1;
}

.flow_title {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 8px;
}

.flow_text {
  font-size: 15px;
  line-height: 1.7;
  font-weight: 500;
  font-size: 1.1em;
}

.flow_tag {
  margin-top: 15px;
  display: inline-block;
  background: #f5f6f2;
  color: #395aa1;
  font-size: 0.9em;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid #395aa1;
  font-weight: 700;
}

.case_img_width {
  max-width: 60vw;
}

.case_info_list_box {
  padding: 30px 20px;
  height: 100%;
}
.case_info_list_box_01 {
  background: #ecf2f6;
  border: 1px solid #8cc1e5;
}
.case_info_list_box_02 {
  background: #fffff5;
  border: 1px solid #f8f041;
}
.case_info_list_box_title {
  text-align: center;
  font-size: 1.5em;
  font-weight: 700;
  margin-bottom: 10px;
}
.case_info_list_box ul {
  list-style: disc;
  padding-left: 1.8em;
}
.case_info_list_box ul li {
  line-height: 1.5;
  margin-bottom: 6px;
}
.case_info_list_box ul li:last-child {
  margin-bottom: 0;
}

.case_info_list_box_img {
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  margin: 10px 0 20px;
}
.case_info_list_box_img img {
  max-width: 100%;
  height: auto;
}

.case_info_list_item {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.case_info_list_title {
  font-weight: 700;
  border: 1px solid #395aa1;
  padding: 2px 10px;
  border-radius: 1000px;
  margin-right: 10px;
  font-size: 0.9em;
  width: 10.5em;
  text-align: center;
}
.case_info_list_value {
  font-weight: 500;
}

.case_img_width_half1 {
  width: 31.54%;
}
.case_img_width_half2 {
  width: 66.12%;
}

.common_box_contact {
  background: #f5f5ee;
}
.common_box_contact hr {
  opacity: 0.4;
  margin: 20px 0;
}
.common_box_contact br {
  display: none;
}
.common_box_contact h3 {
  font-size: 1.1em;
  font-weight: bold;
  margin-bottom: 10px;
}
span.required {
  display: inline-block;
  color: #fff;
  background: #f00;
  padding: 0 1.3em;
  border-radius: 1000px;
  font-size: 0.8em;
  margin-left: 1em;
  font-weight: 400;
  line-height: 1.43;
}

.contact_privacy_checkbox {
  margin-top: 25px;
}
.contact_privacy_checkbox .wpcf7-list-item-label:after {
  content: "必須" !important;
  display: inline-block;
  color: #fff;
  background: #f00;
  padding: 1px 0.8em;
  border-radius: 1000px;
  font-size: 0.8em;
  margin-left: 0.7em;
  font-weight: 400;
  line-height: 1.43;
}

.contact_privacy_checkbox .wpcf7-list-item {
  font-size: 1.1em;
  display: inline-block;
  margin: 0 0 0 0;
  transform: scale(1);
}

/* テキスト入力フィールド */
.common_box_contact input[type="number"],
.common_box_contact input[type="text"],
.common_box_contact input[type="email"],
.common_box_contact input[type="tel"],
.common_box_contact input[type="date"] {
  width: 100%;
  max-width: 100%;
  padding: 10px 15px;
  font-size: 1em;
  line-height: 1.5;
  color: #333;
  background-color: #fff;
  border: 1px solid #bbb;
  border-radius: 4px;
  box-sizing: border-box;
  transition: border-color 0.3s ease;
}
.common_box_contact input[type="date"] {
  display: inline-block;
  width: 160px !important;
}

.common_box_contact input[type="number"]:focus,
.common_box_contact input[type="text"]:focus,
.common_box_contact input[type="email"]:focus,
.common_box_contact input[type="tel"]:focus,
.common_box_contact input[type="date"]:focus {
  outline: none;
  border-color: #395aa1;
  box-shadow: 0 0 0 2px rgba(57, 90, 161, 0.1);
}

.common_box_contact input[type="number"]::placeholder,
.common_box_contact input[type="text"]::placeholder,
.common_box_contact input[type="email"]::placeholder,
.common_box_contact input[type="tel"]::placeholder {
  color: #999;
  opacity: 1;
}

/* 日付入力フィールドの追加スタイル */
.common_box_contact input[type="date"] {
  position: relative;
  cursor: pointer;
}

.common_box_contact input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.6;
  padding: 5px;
  margin-left: 5px;
}

.common_box_contact
  input[type="date"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
}

.common_box_contact input[type="date"]::-webkit-inner-spin-button,
.common_box_contact input[type="date"]::-webkit-clear-button {
  display: none;
  -webkit-appearance: none;
}

/* テキストエリア */
.common_box_contact textarea {
  width: 100%;
  max-width: 100%;
  min-height: 120px;
  padding: 10px 15px;
  font-size: 1em;
  line-height: 1.5;
  color: #333;
  background-color: #fff;
  border: 1px solid #bbb;
  border-radius: 4px;
  box-sizing: border-box;
  resize: vertical;
  font-family: inherit;
  transition: border-color 0.3s ease;
}

.common_box_contact textarea:focus {
  outline: none;
  border-color: #395aa1;
  box-shadow: 0 0 0 2px rgba(57, 90, 161, 0.1);
}

.common_box_contact textarea::placeholder {
  color: #999;
  opacity: 1;
}

/* セレクトボックス */
.common_box_contact select {
  width: 100%;
  max-width: 290px;
  padding: 10px 15px;
  font-size: 1em;
  line-height: 1.5;
  color: #333;
  background-color: #fff;
  border: 1px solid #bbb;
  border-radius: 4px;
  box-sizing: border-box;
  transition: border-color 0.3s ease;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23333' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 12px 8px;
  padding-right: 40px;
}

.common_box_contact select:focus {
  outline: none;
  border-color: #395aa1;
  box-shadow: 0 0 0 2px rgba(57, 90, 161, 0.1);
}

.common_box_contact select:hover {
  border-color: #999;
}

.common_box_contact select:disabled {
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 0.6;
}

/* チェックボックス */
.common_box_contact input[type="checkbox"],
.contact_privacy_body input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  cursor: pointer;
  accent-color: #395aa1;
  flex-shrink: 0;
}

.common_box_contact label:has(input[type="checkbox"]),
.contact_privacy_body label:has(input[type="checkbox"]) {
  display: inline-block;
  align-items: flex-start;
  margin-bottom: 8px;
  cursor: pointer;
}

.common_box_contact label:has(input[type="checkbox"]) input[type="checkbox"],
.contact_privacy_body label:has(input[type="checkbox"]) input[type="checkbox"] {
  vertical-align: -3px;
}

/* ラジオボタン */
.common_box_contact input[type="radio"],
.contact_privacy_body input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  cursor: pointer;
  accent-color: #395aa1;
  flex-shrink: 0;
}

.common_box_contact label:has(input[type="radio"]),
.contact_privacy_body label:has(input[type="radio"]) {
  display: flex;
  align-items: flex-start;
  margin-bottom: 8px;
  cursor: pointer;
}

.common_box_contact label:has(input[type="radio"]) input[type="radio"],
.contact_privacy_body label:has(input[type="radio"]) input[type="radio"] {
  margin-top: 5px;
}

.common_box_contact .label-sex input[type="radio"] {
  vertical-align: -3px;
  margin-right: 0;
}

/* チェックボックス・ラジオボタンのラッパーdiv */
.common_box_contact > label > div {
  margin-top: 8px;
}

.common_box_contact > label > div > label {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  cursor: pointer;
  font-weight: normal;
}

.common_box_contact > label > div > label:last-child {
  margin-bottom: 0;
}

.label-inquiry-item span.wpcf7-list-item {
  display: block;
}

.common_box_contact .wpcf7-list-item {
  display: inline-block;
  margin: 0 2em 0.5em 0;
}
.common_box_contact .label-inquiry-item .wpcf7-list-item {
  margin: 0 0 0 0;
}

.common_box_contact_inner {
  max-width: 1000px;
  margin: 15px auto;
}

.contact_privacy_body {
  margin-top: 50px;
  text-align: center;
}
.contact_privacy_title {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 10px;
}
.privacy-box {
  border: 1px solid #395aa1;
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px;
  border-radius: 10px;
  font-weight: 500;
}

.contact_submit_body {
  margin-top: 60px;
  text-align: center;
}
.contact_submit_body input {
  display: inline-block;
  background: #ffea00;
  color: #395aa1;
  font-weight: 700;
  padding: 15px;
  border-radius: 100px;
  text-decoration: none;
  transition: all 0.3s ease;
  text-align: center;
  font-size: 26px;
  width: 360px;
  margin: 0 1%;
  max-width: 40%;
  border: none;
  cursor: pointer;
  margin-top: 20px;
  text-decoration: none;
  font-size: 1.2em;
  font-weight: bold;
  line-height: 1.5;
  transition: all 0.3s ease;
  &:hover {
    background: #395aa1;
    color: #fff;
  }
}
.contact_submit_body input.wpcf7-previous {
  background: #ddd;
  color: #444;
  &:hover {
    background: #395aa1;
    color: #fff;
  }
}

.wpcf7 form .wpcf7-response-output {
  text-align: center;
  border: none !important;
  color: #f00;
  font-weight: bold;
}
.common_box_contact .wpcf7-not-valid-tip,
.privacy-box .wpcf7-not-valid-tip {
  font-size: 0.9em;
  color: #f00;
  font-weight: bold;
  display: block;
}

.form-step {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 60px;
  gap: 12px;
}

.form-step_item {
  text-align: center;
  color: #999;
  font-size: 14px;
  position: relative;
}

.form-step_circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #eee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  margin: 0 auto 0;
  color: #7a7a7a;
  font-size: 18px;
  position: relative;
  z-index: 2;
}

.form-step_item.active .form-step_circle {
  background: #0d47a1; /* 青背景（あなたの画像に合わせる） */
  color: #fff;
}

.form-step_label {
  font-weight: bold;
  font-size: 1.1em;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  text-align: center;
}
.form-step_item.active .form-step_label {
  color: #000;
}

.form-step_line {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: #eee;
}

.form-step_line.half_active {
  background: linear-gradient(
    to right,
    #0d47a1 0%,
    #0d47a1 50%,
    #eee 50%,
    #eee 100%
  );
}
.form-step_line.active {
  background: #0d47a1;
}

.common_box_red {
  background: #ffeeee;
}
.common_box_bg_none {
  background: transparent;
  padding-top: 20px;
  padding-bottom: 20px;
}

.form-step_body {
  max-width: 410px;
  margin: 0 auto;
}

.attention_title {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 10px;
  color: #f00;
  padding-left: 2em;
  position: relative;
}
.attention_title:before {
  content: "";
  background-image: url(/common/img/icon/warning_circle.svg);
  background-size: contain;
  background-position: left center;
  background-repeat: no-repeat;
  width: 2em;
  height: 100%;
  display: inline-block;
  margin-right: 10px;
  position: absolute;
  left: 0;
  top: 0;
}

.contact_content_body .wpcf7-spinner {
  display: none;
}

#autozip {
  display: none !important;
}

.label-your-name input,
.label-your-kana input,
.label-tel input {
  width: 400px !important;
}
.label-postcode input {
  width: 230px !important;
}

.label-birth-date input {
  width: 97px !important;
  margin-right: 5px;
  display: inline-block;
}

.label-birth-date strong {
  display: inline-block;
  position: relative;
  padding-bottom: 12px;
}
.label-birth-date strong .wpcf7-not-valid-tip {
  position: absolute;
  top: calc(100% + 11px);
  left: 0;
  width: 100%;
  font-weight: bold;
  display: block;
  white-space: nowrap;
}
.label-birth-date strong:nth-child(n + 2) .wpcf7-not-valid-tip {
  display: none !important;
}

body#contact .footer-contact {
  display: none;
}

.page_anchor_nav {
  margin: 40px 0;
}

.page_anchor_nav ul {
  display: flex;
  justify-content: center;
  gap: 10px 40px; /* 丸とテキストのセット同士の間隔 */
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
}

.page_anchor_nav li {
  margin: 0;
  padding: 0;
}

.page_anchor_nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  color: #000;
}

/* 黄色の丸＋矢印アイコン */
.page_anchor_nav a::before {
  content: "\f063";
  font-family: FontAwesome;
  position: relative;
  margin-right: 10px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #f8f041; /* 黄色 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 900;
  color: #395aa1; /* 矢印の色 */
  line-height: 1;
  text-decoration: none;
}

.page_anchor_nav a:hover span {
  text-decoration: underline;
}

.contact_top_link_grid_box {
  border: 1px solid #d9d9d9;
  border-radius: 20px;
  text-align: center;
  height: 100%;
  overflow: hidden;
}
.contact_top_link_grid_box_title {
  background: #f5f5ee;
  padding: 15px 20px;
  font-size: 1.35em;
  font-weight: bold;
  color: #395aa1;
}
.contact_top_link_grid_box_txt {
  font-size: 1.1em;
  font-weight: 500;
  margin-bottom: 10px;
  line-height: 1.5;
}

.contact_top_link_grid_box_content {
  padding: 30px 20px 30px;
}

.contact_top_link_grid_box_btn a {
  display: inline-block;
  border-radius: 1000px;
  font-size: 1.1em;
  background: #f8f041;
  color: #395aa1;
  font-weight: bold;
  padding: 15px 20px;
  text-decoration: none;
  min-width: 310px;
  transition: all 0.3s ease;
  &:hover {
    background: #395aa1;
    color: #fff;
  }
}

.contact_top_link_grid2_box {
  border-radius: 20px;
  height: 100%;
  overflow: hidden;
  background: #f5f5ee;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 35px 20px;
}
.contact_top_link_grid2_box,
.contact_top_link_grid2_box * {
  text-shadow: none;
  box-shadow: none;
}
.contact_top_link_grid2_box .contact-title {
  margin-bottom: 0;
}

.contact_top_link_grid2_box .contact-phone {
  color: #0841ac;
  margin-bottom: 10px;
}

.hero-section {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100% ; /* min-heightではなくheight固定 */
  width: 100%;
  padding: var(--header-height) 5% 70px;
  box-sizing: border-box;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden; /* はみ出し防止 */
}

.hero-content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 1400px;
  gap: 170px;
  position: relative;
  box-sizing: border-box;
  transform-origin: center center;
}

.hero-text {
  position: relative;
  flex-shrink: 0;
  width: 500px; /* 幅は固定 */
  margin-right: -500px; /* マージンで隠す（ロゴに重ねるのではなく、スペースを消す） */
  z-index: 10;
  opacity: 0;
  /* widthアニメーションではなくmarginアニメーション */
  transition: opacity 0.8s ease-out, transform 0.8s ease-out,
    margin-right 0.8s ease-out;
  transform: translateX(30px); /* 少し右から */
}

.hero-text.visible {
  opacity: 1;
  margin-right: 0; /* スペースを確保 */
  transform: translateX(0);
}

.catch-copy {
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: nowrap;
  color: #fff;
}

.catch-line {
  display: block;
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  margin-bottom: 0.5rem;
}

.catch-line.visible {
  opacity: 1;
  transform: translateX(0);
}

.dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: var(--accent-color);
  border-radius: 50%;
  margin-left: 2px;
  vertical-align: text-bottom;
  position: relative;
  top: -0.1em;
}

.highlight {
  color: var(--accent-color);
}

.hero-canvas {
  position: relative;
  flex-shrink: 0;
  transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 5;
  transform: translateX(0);
}

.hero-canvas.move-left {
  transform: translateX(-10px);
}

.hero-canvas.move-right {
  transform: translateX(0);
}

canvas#myCanvas {
  display: block;
  width: 100%;
  max-width: 868px;
  height: auto;
}



.home.body_header_padding {
  padding-top: 0;
}
.home .logo{
  background-image: url(/common/img/header/company_logo_white.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.home.uk-offcanvas-container .headroom--not-top .logo,
.home .headroom--not-top .logo{
  background: none;
}
.home .head_bg {
  background: none;
  border-bottom: none;
}
.home .site_header:hover .head_bg {
  background: #fff;
}
.home.uk-offcanvas-container .site_header .head_bg ,
.home .headroom--not-top .head_bg {
  background: #fff;
  border-bottom: 1px solid #eee;
}
.home .logo img {
  opacity: 0;
}
.home.uk-offcanvas-container .site_header .logo img ,
.home .site_header:hover .logo img ,
.home .headroom--not-top .logo img {
  opacity: 1;
}
.home .global_nav a{
  color: #fff;
}
.home.uk-offcanvas-container .site_header .global_nav a ,
.home .site_header:hover .global_nav a ,
.home .headroom--not-top .global_nav a{
  color: #000;
}
.home .menu_btn::before {
  background: #fff;
}
.home.uk-offcanvas-container .site_header .menu_btn::before ,
.home .site_header:hover .menu_btn::before ,
.home .headroom--not-top .menu_btn::before {
  background: #3b539b;
}
.home .menu_btn .icon::before, 
.home .menu_btn .icon::after {
  background: #3b539b;
}
.home.uk-offcanvas-container .site_header .menu_btn .icon::before, 
.home.uk-offcanvas-container .site_header .menu_btn .icon::after ,
.home .site_header:hover .menu_btn .icon::before, 
.home .site_header:hover .menu_btn .icon::after ,
.home .headroom--not-top .menu_btn .icon::before, 
.home .headroom--not-top .menu_btn .icon::after {
  background: #fff;
}
.home .menu_btn {
  color: #3b539b;
}
.home.uk-offcanvas-container .site_header .menu_btn , 
.home .site_header:hover .menu_btn , 
.home .headroom--not-top .menu_btn {
  color: #fff;
}


.toppage_main_body {
  position: relative;
  height: 800px;
  overflow: hidden;
}

.toppage_main_bg_pic {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(/common/img/top/main_bg.jpg);
  background-size: COVER;
  background-position: 0 center;
  background-repeat: repeat-x;
  z-index: -1;
  animation: scrollBackground 70s linear infinite;
}

@keyframes scrollBackground {
  0% {
    background-position: 0 center;
  }
  100% {
    background-position: 100% center;
  }
}
.toppage_main_bg_blue {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #395AA1;
  opacity: 1;
  z-index: 0;
}

.sample_slider_item_content{
  background: #fff;
  border-radius: 20px;
  padding: 30px 10px;
  text-align: center;
}
.sample_slider_item_content img{
  display: inline-block!important;
}

.sample_slider_title{
  font-weight: bold;
  color: #555;
  margin-bottom: 20px;
  font-size: 1.5em;
}


.sample_slider .slick-dots {
  bottom: -35px;
}
.sample_slider .slick-dots li {
  margin: 0 0;
}
.sample_slider .slick-dots li button:before {
  color: #3b539b;
  opacity: 0.5;
  font-size: 10px;
}
.sample_slider .slick-dots li.slick-active button:before {
  opacity: 1;
  color: #3b539b;
}
.sample_slider .slick-prev,
.sample_slider .slick-next {
  bottom: -43px;
  top: auto;
  z-index: 2;
}
.sample_slider .slick-prev {
  left: calc(50% - 80px);
}
.sample_slider .slick-prev:before {
  content: "\f104";
}

.sample_slider .slick-next {
  right: calc(50% - 80px);
}
.sample_slider .slick-next:before {
  content: "\f105";
}

.sample_slider .slick-prev:before,
.sample_slider .slick-next:before {
  color: #3b539b;
  opacity: 1;
  font-family: FontAwesome;
}

.toppage_main_support_btn{
  position: absolute;
  bottom: 60px;
  right: 30px;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  z-index: 10;
}
.footer_support_btn{
  position: fixed;
  z-index: 10;
  bottom: 30px;
  right: 30px;
}
.footer_support_btn a,
.toppage_main_support_btn a{
  display:inline-block;
  background: #F8F041;
  color: #395AA1;
  padding: 15px 50px;
  border-radius: 10px;
  text-decoration: none;
  font-size: 1.2em;
  font-weight: bold;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  z-index: 10;
  transition: 0.3s ease;
}
.footer_support_btn a:hover,
.toppage_main_support_btn a:hover{
  transform: translateY(-5px);
  text-decoration: underline;
}

body.home .recruit_news_section_content {
  padding-left: 250px;
}
body.home .recruit_news_section_title {
  color: #f00;
}

.toppage_news_section_body{
  height: 0;
}

.toppage_about_section{
  padding: 140px 0 100px;
  position: relative;
  &::before{
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 45%;
    height: 100%;
    background-image: url(/common/img/top/about_pic.png);
    background-position: top left;
    background-size: cover;
    z-index: -1;
  }
}

.toppage_en_title{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  position: relative;
  line-height: 1;
  padding-bottom: 15px;
  margin-bottom: 50px;
  &::before{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100px;
    height: 4px;
    background: #f8f041;
    border-radius: 1000px;
  }
}
.toppage_en_title_left{
  font-size: 3.5em;
  font-weight: bold;
  font-family: "Montserrat", sans-serif;
}
.toppage_en_title_left span{
  background: linear-gradient(90deg, #1ebecb 0%, #1877aa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  font-weight: 100;
}

.toppage_en_title_right{
  font-size: 1.1em;
  font-weight: 500;
}

.product_top_body_bg_slider_body{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
}
.product_top_body_bg_slider{
  position: relative;
  width: 100%;
  height: 100%;
}
.product_top_body_bg_slider > div{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.product_top_body_bg_slider_item{
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  animation: productBgFade 24s infinite;
}
.product_top_body_bg_slider > div:nth-child(1) .product_top_body_bg_slider_item{
  animation-delay: 0s;
}
.product_top_body_bg_slider > div:nth-child(2) .product_top_body_bg_slider_item{
  animation-delay: 8s;
}
.product_top_body_bg_slider > div:nth-child(3) .product_top_body_bg_slider_item{
  animation-delay: 16s;
}
@keyframes productBgFade {
  0% {
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  30% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

.toppage_service_section{
  padding: 80px 0 90px;
  position: relative;
  color: #fff;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  margin-bottom: 70px;
  &::before{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 99%;
    height: 100%;
    background-image: url(/common/img/top/service_bg.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    border-radius: 20px 0 0 20px;
  }
}
.toppage_service_section a{
  text-shadow: 0 0 10px rgba(0, 0, 0, 0);
}
.toppage_service_section .toppage_en_title_left span {
  background: none;
  -webkit-background-clip: none;
  -webkit-text-fill-color: #fff;
}

.common_link_btn_white{
  background: #fff;
  color: #395AA1;
  &:hover{
    background: #395AA1;
    color: #fff;
  }
}

.common_link_btn_white_border{
  border: 2px solid #395AA1;
}
.common_link_btn_white::after {
  background: #F8F041;
}

.highlight_yellow{
  position: relative;
  display: inline-block;
  padding: 0 0.1em;                 /* 左右少しだけ余白 */
  background: linear-gradient(
    transparent 60%,                /* 上は透明 */
    #f8f041 0                       /* 下40%を黄色に */
  );
}


.toppage_recruit_section{
  padding: 50px 0 60px;
  position: relative;
  &::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 99%;
    height: 100%;
    background-image: url(/common/img/top/recruit_bg.jpg);
    background-size: 1650px;
    background-position: bottom right;
    background-repeat: no-repeat;
    z-index: -1;
    border-radius: 0 20px 20px 0;
  }
}
.toppage_recruit_lead img{
 width: 450px;
}

.toppage_company_section{
  padding: 80px 0 90px;
}

.toppage_company_grid_link {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: .3s;
  max-width: 632px;
  margin: 0 auto;
}

.toppage_company_grid_link:hover {
  transform: translateY(-4px);
}

/* 画像 */
.toppage_company_grid_img {
  width: 100%;
}

.toppage_company_grid_img img {
  width: 100%;
  display: block;
  border-radius: 20px 20px 20px 22px;
}


/* 英語タイトル（Company / Sustainability） */
.toppage_company_grid_title {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 2.4em;
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #ffffff;
  text-shadow: 0 4px 10px rgba(0,0,0,0.3);
  font-family: "Montserrat", sans-serif;
}

/* 下部の白いラベルエリア */
.toppage_company_grid_txt {
  position: absolute;
  left: 0;
  bottom: 0;
  max-width: 340px;
  width: 70%;
  padding: 15px 10px 15px 20px;
  border-radius: 0 15px 0 0;
  background: #ffffff;
  display: flex;
  align-items: center;
}

/* 日本語テキスト */
.toppage_company_grid_txt_description {
  font-size: 1.3em;
  font-weight: 700;
  color: #111111;
  white-space: nowrap;
}
.toppage_company_grid_link:hover .toppage_company_grid_txt_description span  {
  text-decoration: underline;
}


.toppage_news_list_section{
  padding: 80px 0 90px;
  background: #ecf2f6;
}
body.home .footer_product_contact_body{
  background: #3557a0;
}

.toppage_news_cat_tab a{
  display: inline-block;
  border-radius: 1000px;
  background: #fff;
  color: #395AA1;
  padding: 1px 20px;
  text-decoration: none;
  font-weight: bold;
  z-index: 10;
  transition: 0.3s ease;
  &:hover{
    background: #395AA1;
    color: #fff;
  }
}
.toppage_news_cat_tab a span{
  display: none;
}
.toppage_news_cat_tab li.uk-active a{
  background: #F8F041;
  &:hover{
    background: #395AA1;
    color: #fff;
  }
}

.toppage_news_tab_content_box{
  border-radius: 14px;
  background: #fff;
  padding: 40px 50px;
}

.toppage_news_tab_content_list a{
  display: flex;
  padding: 20px 0;
  text-decoration: none;
  color: #000;
  padding-right: 40px;
  position: relative;
  line-height: 1.5;
  align-items: center;
}
.news_archive_page_grid .toppage_news_tab_content_list a{
  padding-top: 32px;
  padding-bottom: 32px;
}
.toppage_news_tab_content_list li:not(:last-child){
  border-bottom: 1px solid #eee;
}
.toppage_news_tab_content_list a::after {
  font-family: FontAwesome;
  content: "\f061";
  color: #3b539b;
  font-size: 18px;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  margin-left: 10px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  background: #f8f041;
  transition: all 0.3s 
ease;
  border-radius: 1000px;
}
.toppage_news_tab_content_list_item_title{
  font-weight: 500;
}
.toppage_news_tab_content_list a:hover .toppage_news_tab_content_list_item_title{
  text-decoration: underline;
}

.toppage_news_tab_content_list_item_body{
  white-space: nowrap;
  margin-right: 1em;
}
.toppage_news_tab_content_list_item_cat{
  font-size: .9em;
  font-weight: bold;
  color: #395AA1;
  background: #eee;
  display: inline-block;
  padding: 0 10px;
  border-radius: 1000px;
  margin-left: 10px;
  width: 9em;
  text-align: center;
}

.toppage_news_tab_content_list_item_date{
  color: #555;
}

.news_single_title{
  color: #0841AC;
  line-height: 1.3;
  margin-bottom: 40px;
  font-size: 1.7em;
  margin-top: 20px;
}

.pswp {
  z-index: 15000000000;
}

.news_back_btn{
  background: #F8F041;
  color: #395AA1;
  padding: 20px 20px;
  display: inline-block;
  border-radius: 1000px;
  text-decoration: none;
  font-weight: bold;
  transition: 0.3s ease;
  min-width: 405px;
  font-size: 1.4em;
  &:hover{
    background: #395AA1;
    color: #fff;
  }
}

#wpadminbar {
  z-index: 9999999999999!important;
}

body.home .footer_product_contact_body{
  display: none!important;
}

.label-inquiry-detail div p{
  white-space: pre-line;
}

.grecaptcha-badge{
  display: none!important;
}
body.page-template-page-contact .grecaptcha-badge,
body.page-template-page-contact-recruit .grecaptcha-badge,
body#contact .grecaptcha-badge{
  display: block!important;
}
body.page-template-page-contact .footer_support_btn,
body.page-template-page-contact-recruit .footer_support_btn,
body#contact .footer_support_btn{
  display: none!important;
}

.subpage_pic_main_title_body{
  margin-bottom: 60px;
}
.subpage_pic_main_title_txt h1{
  margin-bottom: 30px;
  font-size: 3.1em;
}

.site_search_box_pc {
  width: 70%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
}


.site_search_box_sp{
  text-align: center;
  margin-top: 35px;
  margin-left: auto;
  margin-right: auto;
  width: 90%;
  max-width: 550px;
}

.site_search_box_body {
  text-align: center !important;
}

.site_search_box_body .gsc-search-box {
  display: inline-block !important;
  text-align: left !important;
}



/* ================================
   Google カスタム検索 全体調整
================================ */

/* 入力欄をシンプルに */
.gsc-input-box {
  border: 1px solid #ccc !important;
  border-radius: 6px;
  background: #fff;
}

.gsib_a {
  padding: 0 0 0 45px !important;
  background-size: 24px 24px !important;
  background-position: 12px center !important;
  display: flex !important;
  align-items: center !important;
}

/* このスタイルは下の詳細な定義に統合されました */

/* クリアボタン（×）- デフォルトのものを使用するため非表示 */
.gsib_b {
  display: none !important;
}

/* 代わりにGoogleのデフォルトクリアボタンのスタイル調整 */
.gsc-clear-button {
  display: none !important;
}

/* 検索ボタン */
.gsc-search-button-v2 {
  background: #3b539b !important;
  border: none !important;
  padding: 0 4px 0 0 !important;
  height: 40px !important;
  border-radius: 6px !important;
}

.gsc-search-button-v2 svg {
  transform: scale(1.4);
}
.gsc-search-button-v2 svg path {
  fill: #fff !important;
}


/* ================================
   検索結果エリア
================================ */

.gsc-results-wrapper-nooverlay {
  margin-top: 30px;
  text-align: center !important;
}

.gsc-wrapper {
  text-align: center !important;
}

/* 個別の検索結果 */
.gs-webResult.gs-result {
  margin-bottom: 30px;
}

/* タイトル */
.gs-title b {
  color: #395AA1 !important;
}

.gs-title {
  font-size: 18px !important;
  line-height: 1.4 !important;
}

/* スニペット（説明文） */
.gs-snippet {
  font-size: 14px !important;
  color: #333 !important;
  line-height: 1.6 !important;
}

/* URL 表示 */
.gs-visibleUrl {
  color: #888 !important;
}

/* 「Googleで検索」ボタンの調整 */
.gcsc-find-more-on-google {
  border: 1px solid #395AA1;
  color: #395AA1;
  padding: 10px 12px!important;
  border-radius: 6px;
  font-size: 14px;
}

.gcsc-find-more-on-google svg path {
  fill: #395AA1 !important;
}

/* 広告ブロックを目立たなくする */
.gsc-adBlockInvisible,
.gsc-adBlock {
  margin-bottom: 20px;
  opacity: 0.7;
}

/* タブ表示（見出し部分） */
.gsc-tabHeader {
  background: #395AA1 !important;
  color: #fff !important;
  border-radius: 4px 4px 0 0;
  padding: 6px 12px;
  font-size: 14px;
}

.gsc-tabHeader.gsc-tabhInactive {
  background: #ccc !important;
  color: #555 !important;
}

/* 不要な隙間を削除 */
.gsc-above-wrapper-area,
.gsc-above-wrapper-area-container {
  display: none !important;
}

/* ▼ 検索ボックスとボタンの高さをそろえる */

.gsc-search-box td.gsc-input,
.gsc-search-box td.gsc-search-button {
  padding: 0 !important;           /* 余白を消す */
  vertical-align: middle !important;
}

/* 検索ボタンを表示 */
.gsc-control-searchbox-only table.gsc-search-box tbody tr td.gsc-search-button,
.gsc-search-box-tools table.gsc-search-box tbody tr td.gsc-search-button,
table.gsc-search-box tbody tr td.gsc-search-button,
td.gsc-search-button,
.gcse-searchbox-only td.gsc-search-button {
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
}

/* 検索ボタンを強制表示 */
.gsc-control-searchbox-only .gsc-search-button-v2,
.gcse-searchbox-only .gsc-search-button-v2,
td.gsc-search-button button.gsc-search-button-v2 {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.gsc-input-box {
  height: 48px !important;         /* 入力ボックスの高さ */
  box-sizing: border-box;
}

input.gsc-input {
  height: 100% !important;
  padding: 12px 20px !important;
  box-sizing: border-box;
  font-size: 16px !important;
  background: transparent !important;
  line-height: normal !important;
}

.gsc-search-button-v2,
button.gsc-search-button-v2 {
  height: 48px !important;         /* ボタンの高さ */
  width: 80px !important;          /* 正方形にしたい場合 */
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin-left: 0 !important;                /* 入力欄との間の余白 */
  visibility: visible !important;
  opacity: 1 !important;
}

/* ついでに角丸を合わせたい場合 */
.gsc-input-box {
  border-radius: 1000px 0 0 1000px !important;
}

.gsc-search-button-v2 {
  border-radius: 0 1000px 1000px 0 !important;
}



/* ============================= */
.recruit_news_section_list {
  opacity: 0;
}
.recruit_news_section_list.slick-slider {
  opacity: 1;
}

.pc_nav_icon_body {
  text-align: right;
  margin-top: 15px;
}
.pc_nav_icon_body a{
  font-size: 24px;
  display: inline-block;
  padding: 7px 15px;
  color: #fff!important;
  background: #222;
  border-radius: 4px;
  line-height: 0;
  transition: 0.3s;
  &:hover{
    opacity: 0.6;  }
}

.pc_nav_icon_body a i{
  vertical-align: -2px;
  margin-right: 4px;
}
.sp_nav_icon_body {
  text-align: center;
  margin-top: 40px;
}
.sp_nav_icon_body a{
  font-size: 20px;
  display: inline-block;
  padding: 5px 15px;
  color: #fff!important;
  background: #222;
  border-radius: 4px;
  line-height: 0;
  transition: 0.3s;
  &:hover{
    opacity: 0.6;  }
}
.sp_nav_icon_body a i{
  vertical-align: -1px;
  margin-right: 4px;
}

.global_nav_instagram_icon{
  margin-left: auto;
  margin-right: 50px;
}
.global_nav_instagram_icon a{
  font-size: 2.2em;
  color: #222;
  transition: .3s;
}
.global_nav_instagram_icon a:hover{
  opacity: .6;
}

.home .head_bg .global_nav_instagram_icon a{
  color: #fff;
}
.home .site_header:hover .head_bg .global_nav_instagram_icon a,
.home.uk-offcanvas-container .site_header .head_bg .global_nav_instagram_icon a,
.home .headroom--not-top .head_bg .global_nav_instagram_icon a{
  color: #222;
}
