/* =========================
   Minimal Reset + Base Style
========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

body {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%; /* iOSズーム暴走防止 */
  text-rendering: optimizeLegibility;
  background-color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

ul,
ol {
  list-style: none;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
  background-color: transparent;
  border: none;
  outline: none;
}

button {
  background: none;
  padding: 0;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

iframe {
  display: block;
  max-width: 100%;
}

html {
  scroll-behavior: smooth;
}

blockquote,
q {
  quotes: none;
}
blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
  content: none;
}

[hidden] {
  display: none !important;
}
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

/* =========================
   変数設定
========================= */
:root {
  /* ====== カラーパレット ====== */
  --color-blue: #235FB7;
  --color-dark-blue: #011439;
  --color-orange: #F78C19;
  --color-dark-orange: #D4470B;
  
  /* ====== グレースケール ====== */
  --color-black: #000;
  --color-dark-gray: #050D2A;
  --color-light-gray: #A0A0A0;
  --color-gray: #222222;
  --color-white: #fff;
  --color-title-blue: #002F50;
  --color-title-blue02: #0E3E7C;

  /* ====== 背景・テキスト ====== */
  --bg-body: var(--color-white);
  --text-main: var(--color-gray);

  /* ====== ボーダー・シャドウ ====== */
  --border-color: var(--color-gray-300);
  --shadow-base: 0 2px 8px rgba(0, 0, 0, 0.08);

  /* ====== フォント系 ====== */
  --font-sans: 'Noto Sans JP', sans-serif;
  --font-mont: "Montserrat", sans-serif;
  --font-serif: YuMincho,"Hiragino Mincho ProN",serif;

  /* ====== コンテンツサイズ ====== */
  --wrap-size: 1440px;
  --content-size: 1280px;
  --content-sub-size: 1248px;
  --second-size: 1080px;
}

/* =========================
   共通設定
========================= */

body {
  line-height: 1.5;
  color: var(--text-main);
  font-family: var(--font-sans);
  font-size: 16px;
}

body.no-scroll {
  overflow: hidden;
}

[id] {
  scroll-margin-top: 104px;
}

.entry_btn {
  background: linear-gradient(to right, var(--color-dark-orange), var(--color-orange));
  color: var(--color-white);
  font-size: 16px;
  height: 56px;
  width: 184px;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.entry_btn {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.entry_btn::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
  border: 2px solid #ff701e;
  border-radius: 28px;
}

.entry_btn:hover {
  color: #ff701e;
}

.entry_btn:hover::after {
  transform: scale(1, 1);
}

.entry_btn.big {
  width: 320px;
  border: 1px solid #e6e6e6;
}

.entry_btn.big:hover {
  border: none;
}

.entry_btn.footer {
  width: 288px;
  border: 1px solid #e6e6e6;
}

.entry_btn.footer:hover {
  border: none;
}

.h2_title {
  font-size: 48px;
  font-weight: 700;
  color: var(--color-gray);
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  letter-spacing: 2px;
}

.h2_title.mb0 {
  margin-bottom: 0;
}

.h2_title.white {
  color: var(--color-white);
}

.h2_title.center {
  text-align: center;
  justify-content: center;
}

.h2_title.blue {
  color: var(--color-title-blue02);
}

.h2_title .en {
  font-size: 16px;
  color: var(--color-blue);
  font-family: var(--font-mont);
}

.h2_title.white .en {
  color: var(--color-white);
}

.h2_title.blue .en {
  color: var(--color-title-blue03);
}

#second_wrap {
  background-color: #F2F2F2;
  overflow: hidden;
  /*margin-top: 104px;*/
  margin-top: 124px;
}

.second_in {
  max-width: var(--second-size);
  margin: 0 auto;
}

.bread_crumbs {
  background-color: #F7F7F7;
}

.bred_list {
  max-width: var(--wrap-size);
  padding: 0 48px;
  margin: 0 auto;
}

.bred_list_in {
  padding: 11px 0;
}

.bred_list_in ul {
  padding: 0;
  margin: 0;
  display: flex;
  gap:10px;
}

.bred_list_in ul li {
  font-size: 16px;
  list-style: none;
}

.bred_list_in ul li a {
  color: rgba(0, 0, 0, 0.3);
  position: relative;
}

.bred_list_in ul li a::after {
  content: '/';
  display: inline-block;
  position: absolute;
  right: -8px;
}

.bred_list_in ul li span {
  color: var(--color-black);
}

.fade-in {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-load {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-load.show {
  opacity: 1;
}

.sp {
  display: none;
}

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

  [id] {
    scroll-margin-top: 63px;
  }

  .entry_btn {
    width: 140px;
    height: 29px;
    font-size: 14px;
  }

  .entry_btn.big {
    height: 37px;
  }

  .h2_title {
    font-size: 24px;
  }

  #second_wrap {
    /*margin-top: 63px;*/
    margin-top: 73px;
  }

  .bred_list {
    padding: 0 20px;
  }

  .bred_list_in ul li {
    font-size: 12px;
  }

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

/* =========================
   header
========================= */

header {
  position: fixed;
  top:0;
  left: 0;
  background-color: var(--color-white);
  z-index: 100;
  width: 100%;
}

.header_wrap {
  max-width: var(--wrap-size);
  margin: 0 auto;
  padding: 24px 48px;
}

.header_in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap:24px;
}

.header_logo {
  width: 198px;
}

.header_nav_in {
  display: flex;
  gap:32px;
  align-items: center;
  flex-wrap: wrap;
}

.entry_aera {
  display: flex;
  flex-direction: column;
  line-height: 1;
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  text-align: center;
}

.entry_aera.white {
  color: var(--color-white);
}

.entry_aera.small {
  width: 220px;
}

.header_menu {
  display: flex;
  flex-wrap: wrap;
  gap:32px;
  font-size: 16px;
  align-items: center;
  margin: 0;
  padding: 0;
  font-weight: 500;
}

.header_menu li a {
  padding-bottom: 3px;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  transition: background-size 0.3s;
}

.header_menu li a:hover {
  background-position: bottom left;
  background-size: 100% 1px;
}



@media screen and (max-width: 1260px) {
  .header_wrap {
    padding: 15px 18px;
  }

  .header_logo {
    width: 135px;
  }

  .header_nav_in {
    flex-wrap: nowrap;
    gap: 20px;
  }

  .entry_aera {
    font-size: 9px;
    gap:5px;
  }

  footer .entry_aera {
    width: 288px;
  }

  .entry_aera.small {
    width: 171px;
  }

  .hamburger {
    width: 30px;
    cursor: pointer;
    position: relative;
    z-index: 9999;
  }
  .hamburger span {
    display: block;
    height: 3px;
    width: 100%;
    background: #333;
    margin: 6px 0;
    transition: .3s;
  }

  .menu_panel {
    position: fixed;
    top: 63px;
    right: 0;
    width: 100%;
    height: auto;
    background: #fff;
    transform: translateX(100%);
    transition: transform .4s ease;
    z-index: 9998;
    padding: 60px 20px;
  }

  .menu_panel.active {
    transform: translateX(0);
  }

  .header_menu {
    flex-direction: column;
    align-items: flex-end;
    gap:0;
  }

  .header_menu li {
    position: relative;
    width: 100%;
  }

  .header_menu li a {
    color: #333;
    text-decoration: none;
    font-size: 16px;
    display: block;
    text-align: right;
    padding: 17px 40px;
  }

  .header_menu li a span {
    position: relative;
  }

  .header_menu li a span::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 5px;
    background-color: #2B3E9D;
    position: absolute;
    top: 50%;
    left: -30px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }

  .header_menu li a span::after {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url(../img/header_menu_icon.svg);
    background-repeat: no-repeat;
    position: absolute;
    top: 50%;
    right: -40px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }

  .overlay {
    position: fixed;
    top: 63px;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.5);
    display: none;
    z-index: 20;
  }

  .overlay.active {
    display: block;
  }

  /* クリック時にハンバーガーが×に変化(オプション) */
  .hamburger.active span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }
}

/* =========================
   footer
========================= */

footer {
  background-color: #0A092B;
}

.footer_wrap {
  max-width: var(--content-size);
  margin: 0 auto;
  padding: 80px 0 0;
}

.footer_in {
  display: flex;
  justify-content: space-between;
  padding-bottom: 30px;
}

.footer_menu01 {
  display: flex;
  flex-direction: column;
  gap:48px;
}

.footer_logo {
  width: 287px;
}

.footer_policy {
  font-size: 12px;
  color: #959595;
  transition: opacity 0.5s;
}

.footer_policy:hover {
  opacity: 0.5;
}

.footer_menu02 {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap:20px;
}

.footer_menu02 li {
  list-style: none;
}

.footer_menu02 li a {
  text-decoration: none;
  color: var(--color-white);
  font-size: 16px;
  padding-bottom: 3px;
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  transition: background-size 0.3s;
}

.footer_menu02 li a:hover {
  background-position: bottom left;
  background-size: 100% 1px;
}


.footer_policy_sp {
  display: none;
}

.footer_copy {
  text-align: center;
  padding: 30px 0;
  font-size: 12px;
  color: #959595;
}

@media screen and (max-width: 767px) {
  .footer_wrap {
    padding: 50px 0 0;
  }

  .footer_in {
    padding: 0 15px;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 40px;
  }

  .footer_logo {
    width: 135px;
  }

  .footer_menu01 {
    gap:36px
  }

  .entry_btn.footer {
    height: 37px;
  }

  .footer_policy {
    display: none;
  }

  .footer_policy_sp {
    display: block;
    padding: 5px 15px;
    font-size: 12px;
    color: #959595;
  }

  .footer_copy {
    text-align: left;
    padding: 5px 15px 20px;
  }
}

/* =========================
   top page
========================= */

.main_v {
  width: 100%;
  background: linear-gradient(-45deg,#2f2662, #19369b, #6bbbee ,#a2c8ef) fixed;
  background-size: 800% 800%;
  animation: GradietionAnimation 7s ease infinite;
  position: relative;
  margin-top: 104px;
}

@keyframes GradietionAnimation { 
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

.main_v::before {
  content: '';
  width: 100%;
  height: 100%;
  display: inline-block;
  background: linear-gradient(-90deg, #fff, rgba(255,255,255,0)) ;
}

.main_v_bg00 {
  position: absolute;
  right: 0;
  top:0;
  z-index: 1;
  width: 1000px;
  opacity: 0.8;
}

.main_v_bg01 {
  position: absolute;
  left: 0;
  top:0;
  z-index: 5;
  width: 100%;
}

.main_v_bg02 {
  position: absolute;
  width: 80%;
  right: 0;
  top:0;
  z-index: 1;
}

.main_v_bg03 {
  position: absolute;
  width: 90%;
  height: 100%;
  left: 0;
  top:0;
  z-index: 2;
  background: linear-gradient(to right, rgba(255, 255, 255, 1) 30%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 80%);
}

.main_v_bg04 {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top:0;
  z-index: 3;
  background: linear-gradient(to top, rgba(255, 255, 255, 1) 5%, rgba(255, 255, 255, 1) 15%, rgba(255, 255, 255, 0) 80%);
}

.main_v_bg05 {
  display: none;
}

.main_v_wrap {
  max-width: var(--content-size);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  color: var(--color-dark-blue);
  padding: 180px 0 20px;
  z-index: 10;
  position: relative;
}

.main_v_title {
  font-size: 24px;
  font-weight: 600;
  color: var(--color-title-blue);
}

.main_v_title_sub {
  font-size: 100px;
  font-weight: 600;
  color: var(--color-title-blue);
  margin-left: -62px;
  margin-top: 10px;
  margin-bottom: 30px;
  line-height: 1.3;
}

.main_v_title_sub span {
  font-size: 72px;
}

.main_v_caption {
  font-size: 20px;
  font-weight: 400;
  color: var(--color-title-blue);
  letter-spacing: 2px;
  line-height: 2;
  margin-bottom: 50px;
}

.main_v .entry_btn {
  width: 220px;
}

.main_v_sub_caption {
  color: var(--color-gray);
  font-size: 48px;
  font-weight: 700;
  margin-top: 140px;
  letter-spacing: 2px;
}

.main_v_sub_copy {
  color: var(--color-gray);
  max-width: var(--wrap-size);
  font-size: 20px;
  display: flex;
  justify-content: flex-end;
  margin: 20px auto 60px;
  letter-spacing: 2px;
  position: relative;
  z-index: 5;
}

.main_v_sub_copy > div {
  max-width: 660px;
  letter-spacing: 2px;
  margin-right: 48px;
}

.main_v_p {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.main_v_p img {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.main_v_p img.is-show {
  opacity: 1;
  transform: translateY(0);
  animation: floatUpDown 3s ease-in-out infinite;
}

@keyframes floatUpDown {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}

.main_v_p01 {
  width: 11.38%;
  position: absolute;
  left: 52.22%;
  top:2.37%;
  z-index: 10;
}

.main_v_p02 {
  width: 15.55%;
  position: absolute;
  left: 59.72%;
  top:8.59%;
  z-index: 10;
}

.main_v_p03 {
  width: 9.23%;
  position: absolute;
  left: 86.11%;
  top:9.14%;
  z-index: 10;
}

.main_v_p04 {
  width: 7.63%;
  position: absolute;
  right: 0;
  top:0.06%;
  z-index: 10;
}

.main_v_p05 {
  width: 15.55%;
  position: absolute;
  left: 78.26%;
  top:26.23%;
  z-index: 10;
}

.main_v_p06 {
  width: 10.41%;
  position: absolute;
  left: 50.00%;
  top:56.03%;
  z-index: 10;
}

.main_v_p07 {
  width: 10.20%;
  position: absolute;
  left: 62.98%;
  top:47.07%;
  z-index: 10;
}

.main_v_p08 {
  width: 9.65%;
  position: absolute;
  left: 70.76%;
  top:57.67%;
  z-index: 9;
}

.main_v_p09 {
  width: 14.72%;
  position: absolute;
  right: 0;
  top:53.29%;
  z-index: 9;
}

@media screen and (max-width: 767px) {
  .main_v {
    padding: 0 20px;
    margin-top: 73px;
  }

  .main_v::before {
    background: linear-gradient(-90deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
  }

  .main_v_wrap {
    padding: 280px 0 20px;
  }

  .main_v_bg00 {
    width: 700px;
  }

  .main_v_bg01 {
    width: 100%;
    height: calc(100% - 52%);
  }

  .main_v_bg01 img {
    width: 100%;
    height: 450px;
    object-fit: cover;
  }

  .main_v_bg02 {
    width: 100%;
    height: 450px;
  }

  .main_v_bg02 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .main_v_bg03 {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 2;
    background: linear-gradient(to right, rgba(255, 255, 255, 1) 5%, rgba(255, 255, 255, 0) 80%);
  }

  .main_v_bg04 {
    background: linear-gradient( rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0) 41%, rgba(255, 255, 255, 1) 45%, rgba(255, 255, 255, 1) 100%);
  }

  .main_v_bg05 {
    display: block;
    position: absolute;
    width: 100%;
    height: 450px;
    left: 0;
    top: 0;
    z-index: 2;
    background: linear-gradient( rgba(255, 255, 255, 0) 5%, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 1) 100%);
  }

  .main_v_p {
    height: 390px;
    z-index: 10;
  }

  .main_v_p01 {
    width: 19.2%;
    left: 40.33%;
    top: 50%;
  }

  .main_v_p02 {
    width: 22.13%;
    left: 17.06%;
    top: 2.66%;
  }

  .main_v_p03 {
    width: 14.4%;
    left: 78.4%;
    top: 4.44%;
    z-index: 2;
  }

  .main_v_p04 {
    display: none;
  }

  .main_v_p05 {
    width: 25.33%;
    left: 58.26%;
    top: 14.44%;
    z-index: 1;
  }

  .main_v_p06 {
    width: 13.86%;
    left: 4%;
    top: 30.22%;
  }

  .main_v_p07 {
    width: 24.26%;
    left: 21.33%;
    top: 37.33%;
  }

  .main_v_p08 {
    display: none;
  }

  .main_v_p09 {
    width: 25.06%;
    right: 3%;
    left: auto;
    top: 50%;
    z-index: 0;
  }

  .main_v_title {
    font-size: 10px;
  }

  .main_v_title_sub {
    font-size: 32px;
    margin-bottom: 10px;
    margin-left: -18px;
  }

  .main_v_title_sub span {
    font-size: 24px;
  }

  .main_v_title_sub {
    margin-left: 0;
  }

  .main_v_caption {
    font-size: 16px;
    letter-spacing: 0px;
    margin-bottom: 20px;
  }

  .main_v .entry_btn {
    width: 171px;
    height: 37px;
  }

  .main_v_sub_copy > div {
    margin-right: 0;
  }

  .main_link_list {
    flex-direction: column;
  }

  .main_v_sub_caption {
    margin-top: 40px;
    font-size: 24px;
  }

  .main_v_sub_copy {
    font-size: 16px;
    margin: 0 auto 90px;
  }
}

.main_content {
  position: relative;
  overflow: hidden;
}

.main_content_bg01 {
  position: absolute;
  left: 0;
  top: -47%;
  width: 848px;
  z-index: 3;
}

.main_content_bg02 {
  position: absolute;
  right: 0;
  top:-50%;
  width: 785px;
  z-index: 2;
}

.main_link_list_bg {
  position: relative;
  z-index: 1;
}

.main_link_list {
  display: flex;
  position: relative;
  z-index: 3;
}

.main_link {
  width: calc(100% / 3);
  height: 360px;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  padding: 40px;
  background-size: cover;
  position: relative;
  overflow: hidden; 
}

.main_link::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.main_link:hover::before {
  opacity: 1;
}

.main_link.about {
  background-image: url(../img/top/mian_link_about.png);
}

.main_link.philosophy {
  background-image: url(../img/top/mian_link_philosophy.png);
}

.main_link.message {
  background-image: url(../img/top/mian_link_message.png);
}

.main_link_title {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  font-size: 32px;
  font-weight: 600;
  color: var(--color-white);
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

.main_link:hover .main_link_title {
  transform: translate(5px , 5px);
}

.main_link_title .icon {
  width: 45px;
}

@media screen and (max-width: 767px) {
  .main_content_bg01 {
    top: -15%;
  }

  .main_content_bg02 {
    top: 10%;
    z-index: 0;
  }

  .main_link {
    width: 100%;
    height: 220px;
    padding: 5px 20px;
  }

  .main_link_title {
    font-size: 24px;
  }
}

.top_about_bg {
  position: relative;
  z-index: 10;
}

.top_about_wrap {
  max-width: var(--wrap-size);
  margin: 0 auto;
  padding: 140px 0 120px;
}

.top_about_content {
  max-width: var(--content-size);
  margin: 0 auto;
}

.top_about_in {
  max-width: 834px;
  margin-bottom: 60px;
  letter-spacing: 1px;
  line-height: 1.8;
}

.top_about_more {
  background-color: var(--color-white);
  border-radius: 12px;
  box-shadow: 0px 0px 40px 0px rgba(28, 121, 158, 0.12);
  box-sizing: border-box;
  height: 437px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap:30px;
  background-image:url(../img/top/top_about_more_bg01.png), url(../img/top/top_about_more_bg02.png);
  background-repeat: no-repeat, no-repeat;
  background-position:bottom left,bottom right;
  background-size: auto 437px, auto 437px;
  z-index: 10;
  position: relative;
}

.top_about_more_title {
  font-size: 41px;
  color: var(--color-title-blue);
  font-weight: 700;
  letter-spacing: 2px;
}

.top_about_more_btn {
  width: 220px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  background-color: var(--color-orange);
  font-size: 16px;
  border-radius: 28px;
}

.top_about_more_btn {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.top_about_more_btn::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
  border: 2px solid var(--color-orange);;
  border-radius: 28px;
}

.top_about_more_btn:hover {
  color: var(--color-orange);;
}

.top_about_more_btn:hover::after {
  transform: scale(1, 1);
}


.ticker-wrap {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
  position: relative;
  z-index: 10;
  line-height: 1;
  position: absolute;
  bottom: 45px;
}

.ticker {
  display: inline-flex;
  animation: scroll 28s linear infinite;
}

.ticker span {
  font-size: 128px;
  font-family: var(--font-mont);
  font-weight: bold;
  background: linear-gradient(90deg, #002abf,#56a3ff,#a5eeff, #ddfaff);
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
  margin-right: 30px;
  position: relative;
  opacity: 0.8;
}

/* 無限スクロールアニメーション */
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 767px) {
  .top_about_wrap {
    padding: 60px 15px 60px;
  }

  .top_about_content .h2_title {
    text-align: center;
  }
  
  .top_about_more {
    background-image: url(../img/top/top_about_more_bg01_sp.png), url(../img/top/top_about_more_bg02_sp.png);
    height: auto;
    background-size: 100% auto , 100% auto;
    background-position: top left, bottom right;
    padding: 35% 15px 23%;
    gap:24px;
  }

  .top_about_more_title {
    font-size: 18px;
    color: var(--color-black);
  }

  .top_about_more_btn {
    width: 149px;
    height: 37px;
    font-size: 16px;
  }

  .ticker-wrap {
    bottom: 20px;
  }
  
  .ticker span {
    font-size: 58px;
    margin-right: 20px;
  }
}

.top_business_wrap {
  width: 100%;
  height: 302px;
  background-image: url(../img/top/top_business_bg.png);
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  
}

.top_business_in {
  max-width: 992px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 500;
  font-size: 16px;
  gap:80px;
  color: var(--color-white);
}

.top_business_line {
  width: 1px;
  height: 200px;
  background-color: var(--color-white);
}

.top_business_txt {
  max-width: 290px;
  letter-spacing: 2px;
}

.top_business_btn {
  width: 220px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-dark-gray);
  background-color: var(--color-white);
  font-size: 16px;
  border-radius: 28px;
  font-weight: 600;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.top_business_btn::after {
  background: #222;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
  border: 2px solid #222;
  border-radius: 28px;
}

.top_business_btn:hover {
  color: #fff;
}

.top_business_btn:hover::after {
  transform: scale(1, 1);
}

@media screen and (max-width: 767px) {
  .top_business_wrap {
    background: none;
    height: auto;
    display: block;
  }

  .top_business_in {
    flex-direction: column;
    height: auto;
    background: linear-gradient(-125deg, #0A092B 0%, #0A092B 50%, #176FE1 100%);
    gap:20px;
    padding: 30px 15px 45px;
    align-items: baseline;
  }

  .top_business_line {
    display: none;
  }

  .top_business_btn {
    margin-top: 15px;
  }

}

.top_interview_wrap {
  padding: 140px 0 80px;
  position: relative;
}

.top_interview_bg01 {
  width: 71.80%;
  position: absolute;
  top:4%;
  left: 0;
  z-index: 1;
}

.top_interview_bg02 {
  width: 37.33%;
  position: absolute;
  top:0;
  right: 0;
  z-index: 2;
}

.top_interview_in {
  max-width: var(--wrap-size);
  margin: 0 auto;
  position: relative;
  z-index: 3;
}

.top_interview_intro {
  text-align: center;
  margin-bottom: 25px;
}

.top_interview_items {
  max-width: 1272px;
  margin: 0 auto;
}

.top_interview_list {
}

.top_interview_list .slick-track {
  display: flex !important;
  gap: 24px;
}

.top_interview_list .slick-slide {
  height: auto;
}

.top_interview_list_in {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 20px;
  display: flex !important;
  flex-direction: column;
  gap:16px
}

.top_interview_detail {
  display: flex;
  flex-direction: column;
  gap:16px;
  color: var(--color-gray);
}

.top_interview_sub_title {
  font-size: 14px;
  color: var(--color-blue);
  font-weight: 600;
}

.top_interview_title {
  font-size: 24px;
  font-weight: 700;
}

.top_interview_detail_member {
  margin-top: auto;
}

.top_interview_arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  z-index: 10;
}

.top_interview_arrow--prev {
  left: -50px;
}

.top_interview_arrow--next {
  right: -50px;
}

.top_interview_arrow img {
  width: 75px;
  height: auto;
}

.top_interview_btn {
  width: 220px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  background-color: var(--color-orange);
  font-size: 16px;
  border-radius: 28px;
  margin: 16px auto 0;
}

.top_interview_btn {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.top_interview_btn::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
  border: 2px solid var(--color-orange);;
  border-radius: 28px;
}

.top_interview_btn:hover {
  color: var(--color-orange);;
}

.top_interview_btn:hover::after {
  transform: scale(1, 1);
}

.top_join_wrap {
  background: linear-gradient(-25deg, #A3B8F8 0%, #098BF9 50%, #0D3D7B 100%);
  position: relative;
  z-index: 1;
  padding: 30px 0 80px;
}

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

  .top_interview_bg02 {
    width: 46%;
    top: 3%;
  }

  .top_interview_wrap {
    padding: 80px 0;
    background-color: #F2F2F2;
  }

  .top_interview_wrap.blue {
    background-color: #DFE8F0;
  }

  .top_interview_arrow {
    margin-top: -16px;
  }

  .top_interview_arrow img {
    width: 40px;
  }

  .top_interview_arrow--next {
    right: 2.5px;
  }

  .top_interview_arrow--prev {
    left: 2.5px;
  }

  .top_interview_btn {
    width: 220px;
    height: 37px;
  }

}

.top_join_in {
  max-width: var(--content-sub-size);
  margin: 0 auto;
}

.top_join_title {
  font-size: 160px;
  font-family: var(--font-mont);
  font-weight: 700;
  text-align: center;
  color: #8690C7;
  text-align: center;
  opacity: 0.3;
}

.top_join_content {
  background-color: var(--color-white);
  border-radius: 12px;
  height: 320px;
  display: flex;
  align-items: center;
  overflow: hidden;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

.top_join_content:hover {
  transform: translate(5px , 5px);
}

.top_join_content_txt {
  display: flex;
  justify-content: flex-end;
  width: 395px;
  padding-left: 78px;
  box-sizing: border-box;
  flex-direction: column;
}

.top_join_content_img {
  flex: 1;
}

.top_join_content_img img {
  height: 320px;
  width: 100%;
  object-fit: cover;
}

.top_join_btn_area {
  text-align: center;
  padding: 50px 0;
  display: flex;
  justify-content: center;
}

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

  .top_join_content {
    flex-direction: column;
    height: auto;
  }

  .top_join_title {
    font-size: 80px;
  }

  .top_join_in {
    padding: 0 15px;
  }

  .top_join_content_txt {
    width: 100%;
    justify-content: flex-start;
    padding: 35px 20px 0;
  }

  .top_join_btn_area {
    padding: 30px 0;
  }
}

.top_company_wrap {
  width: 100%;
  height: 302px;
  background-image: url(../img/top/top_company_bg.png);
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  padding: 0 78px;
}

.top_company_in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 600;
  font-size: 16px;
  gap:80px;
  width: 100%;
  color: var(--color-white);
}

.top_company_line {
  width: 1px;
  height: 200px;
  background-color: var(--color-white);
}

.top_company_txt {
  max-width: 350px;
  font-weight: 500;
  letter-spacing: 2px;
}

.top_company_btn {
  width: 220px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-dark-gray);
  background-color: var(--color-white);
  font-size: 16px;
  border-radius: 28px;
  font-weight: 600;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.top_company_btn::after {
  background: #222;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
  border: 2px solid #222;
  border-radius: 28px;
}

.top_company_btn:hover {
  color: #fff;
}

.top_company_btn:hover::after {
  transform: scale(1, 1);
}

@media screen and (max-width: 767px) {
  .top_company_wrap {
    background-color: #005CB1;
    background-image: url(../img/top/top_company_bg_sp.png);
    background-size: auto 100%;
    background-repeat: no-repeat;
    height: auto;
    padding: 35px 20px;
    background-position: top right;
  }

  .top_company_in {
    flex-direction: column;
    height: auto;
    gap:24px;
  }

  .top_company_in .h2_title {
    text-align: center;
  }

  .top_company_line {
    display: none;
  }

  .top_company_txt {
    text-align: center;
  }

  .top_company_btn {
    height: 37px;
    font-size: 16px;
  }
  
}

/* =========================
   interview
========================= */

.interview_wrap {
  max-width: var(--second-size);
  margin: 0 auto;
}

.interview_title {
  height: 720px;
  width: 100%;
  position: relative;
}

.interview_title_img {
  height: 720px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.interview_title_img img {
  height: 720px;
  width: 100%;
  object-fit: cover;
}

.interview_title_in {
  height: 720px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: center;
  gap:30px;
  font-size: 20px;
  font-weight: 500;
  position: relative;
  z-index: 1;
  color: var(--color-white);
  box-sizing: border-box;
  padding-bottom: 20px;
}

.interview_main_title {
  font-size: 47px;
  font-weight: 600;
}

.interview_main_title_name {
  font-weight: 600;
}

.interview_in {
  background-color: var(--color-white);
  padding: 80px;
  margin-bottom: 120px;
}

.interview_in p {
  margin-bottom: 24px;
  color: var(--color-black);
}

.index {
  background-color: #F3F7F8;
  padding: 40px;
  border-radius: 12px;
}

.index_title {
 font-size: 32px;
 font-weight: 600;
 color: #224D92; 
}

.index_list {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
}

.index_list li {
  border-bottom: 1px solid #AEBFD6;
}

.index_list li a {
  display: block;
  padding: 20px 0;
  color: #224D92;
  font-weight: 600;
}

.index_list li a span {
  text-decoration: underline;
}

.interview_h2 {
  padding: 80px 0 25px;
}

.interview_h2 span {
  color: #224D92;
  display: block;
  border-left: 8px solid;
  font-size: 40px;
  padding-left: 20px;
  font-weight: 600;
}

.interview_h3 {
  padding: 16px 0 16px;
  margin-bottom: 24px;
  color: #224D92;
  font-size: 30px;
  font-weight: 600;
  border-bottom: 1px solid;
}

.interview_img {
  margin-bottom: 46px;
}

.interview_img02 {
  margin-top: 80px;
  margin-bottom: 46px;
}

.interview_sche {
  display: flex;
  justify-content: space-between;
}

.interview_sche_img {
  width: 55%;
}

.interview_sche_txt {
  width: 42.4%;
}

.interview_sche_hukidashi {
  padding: 24px;
  background-color: #2A68AD;
  color: var(--color-white);
  font-size: 16px;
  letter-spacing: 2px;
  border-radius: 12px;
  margin-bottom: 30px;
  position: relative;
}

.interview_sche_hukidashi::after {
  content: '';
  background-image: url(../img/interview/interview_hukidashi.svg);
  width: 35px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  left: 50%;
  bottom: -24px;
}

.interview_pick {
  background-color: #3F8CE2;
  color: var(--color-white);
  padding: 24px;
  font-size: 16px;
  letter-spacing: 2px;
  border-radius: 12px;
  margin-top: 20px;
}

.interview_pick_title {
  font-weight: 600;
  margin-bottom: 15px;
}

.interview_other {
  background-color: #DFE8F0;
  padding: 120px 0;
}

.interview_other_wrap {
  max-width: var(--content-sub-size);
  margin: 0 auto;
}

.interview_other_in {
  display: flex;
  gap:24px;
}

.interview_other_list {
  width: calc((100% - 48px) / 3);
}

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

  .interview_other {
    padding: 64px 0;
  }

  .interview_in {
    padding: 0;
    margin-bottom: 0;
  }

  .interview_title {
    height: 260px;
    line-height: 1.4;
  }

  .interview_title_in {
    height: 260px;
    font-size: 14px;
    gap:10px;
    font-weight: 400;
    padding-bottom: 10px;
  }

  .interview_title_img {
    height: 260px;
  }

  .interview_title_img img {
    height: 260px;
  }

  .interview_main_title {
    font-size: 20px;
  }

  .index {
    padding: 24px 20px;
  }

  .index_title {
    font-size: 24px;
  }

  .index_list li a {
    padding: 12px 0;
  }

  .interview_conts {
    padding: 0 20px 20px;
  }

  .interview_h2 {
    padding: 44px 0 24px;
  }

  .interview_h2 span {
    font-size: 24px;
    padding-left: 14px;
  }

  .interview_img {
    margin-bottom: 24px;
  }

  .interview_h3 {
    margin-bottom: 16px;
    font-size: 18px;
  }

  .interview_sche {
    flex-direction: column;
    gap:16px;
  }

  .interview_sche_img {
    width: 100%;
  }

  .interview_sche_txt {
    width: 100%;
  }
}


/* =========================
   work
========================= */

.work_wrap {
  max-width: var(--wrap-size);
  margin: 0 auto;
}

.work_title {
  height: 720px;
  width: 100%;
  position: relative;
}

.work_title_img {
  height: 720px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.work_title_img img {
  height: 720px;
  width: 100%;
  object-fit: cover;
}

.work_title_in {
  height: 720px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: center;
  gap:30px;
  font-size: 20px;
  font-weight: 500;
  position: relative;
  z-index: 1;
  color: var(--color-white);
  box-sizing: border-box;
  padding-bottom: 60px;
}

.work_main_title {
  font-size: 48px;
  font-weight: 600;
}

.work_main_menu {
  border-radius: 8px;
  background-color: rgba(225, 225, 225, 0.6);
  max-width: 488px;
  width: 100%;
  display: flex;
  align-items: center;
  margin: 0 auto;
  font-size: 16px;
}

.work_main_menu > a {
  display: block;
  padding: 25px 22px;
  color: #0C2D45;
  display: flex;
  align-items: center;
  transition: opacity 0.5s;
}

.work_main_menu > a:hover {
  opacity: 0.5;
}

.work_main_menu > a > span {
  width: 200px;
  border-right: 1px solid #0C2D45;
  box-sizing: border-box;
  padding-right: 50px;
  position: relative;
  font-weight: 600;
}

.work_main_menu > a:last-child > span {
  border: none;
}

.work_main_menu > a > span::after {
  position: absolute;
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url(../img/arrow-down.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.work_intro {
  padding: 120px 0 64px;
}

.work_intro_menu {
  display: flex;
  align-items: center;
  gap:24px;
  max-width: 1324px;
  margin: 0 auto;
  width: 100%;
}

.work_intro_menu_link {
  border-radius: 40px;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: 20px;
  font-weight: 600;
  width: calc((100% - 24px) / 2);
  position: relative;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

.work_intro_menu_link:hover {
  transform: translate(5px , 5px);
}

.work_intro_menu_link.floor {
  background-color: #224D92;
}

.work_intro_menu_link.pit {
  background-color: #3A3A3A;
}

.work_intro_menu_link:before {
  content: '';
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  margin: auto;
}

.work_intro_menu_link:after {
  content: '';
  width: 10px;
  height: 10px;
  border: 0;
  border-top: solid 3px #224D92;
  border-right: solid 3px #224D92;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 30px;
  bottom: 0;
  margin: auto;
}

.work_intro_menu_link.pit:after {
  border-color: #3A3A3A;
}

.work_info {
  background-color: var(--color-white);
  padding: 120px 0;
  border-bottom: 2px solid #D9D9D9;
}

.work_info_title {
  position: relative;
  font-size: 40px;
  font-weight: 600;
  color: #ffffff;
  border-radius: 50px;
  background-color: #224D92;
  max-width: 821px;
  width: 100%;
  padding: 16px;
  margin: 0 auto 64px;
  text-align: center;
}

.work_info_title.gray {
  background-color: #3A3A3A;
}

.work_info_title::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 1;
  width: 64px;
  height: 26px;
  transform: translateX(-50%);
  box-sizing: border-box;
  background-color: #224D92;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.work_info_title.gray::after {
  background-color: #3A3A3A;
}

.work_info_img {
  margin-bottom: 64px;
}

.work_sub_conts {
  max-width: 792px;
  text-align: center;
  font-size: 16px;
  color: var(--color-black);
  margin: 0 auto 64px;
}

.work_sub_title {
  font-size: 24px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 22px;
}

.work_img_list {
  display: flex;
  gap:40px;
  max-width: 1322px;
  margin: 0 auto;
}

.work_img_list > div {
  width: calc((100% - 80px) / 3);
  display: flex;
  flex-direction: column;
  gap:16px;
}

.work_img_list > div .sub_title {
  color: #5891D7;
  font-weight: 600;
}

.work_img_list > div .title {
  font-size: 24px;
  font-weight: 600;
}

.work_style {
  background-color: var(--color-white);
  padding: 120px 0;
}

.work_style_title {
  color: var(--color-black);
  text-align: center;
  font-size: 32px;
  font-weight: 600;
  margin-bottom: 64px;
}

.work_style_point {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 1324px;
  margin: 0 auto 24px;
}

.work_style_point_list {
  display: flex;
  gap:64px;
  align-items: center;
}

.work_style_point_img {
  width: 54%;
}

.work_style_point_txt {
  width: 46%;
  font-size: 20px;
  color: var(--color-black);
}

.work_style_point_subtitle {
  color: #5891D7;
  font-weight: bold;
  margin-bottom: 16px;
}

.work_style_point_title {
  color: #224D92;
  font-weight: bold;
  margin-bottom: 28px;
}

.work_style_benefits {
  background-color: #F4F8FD;
  padding: 80px;
  max-width: 1324px;
  margin: 0 auto;
}

.work_style_benefits_title {
  color: #224D92;
  font-size: 32px;
  font-weight: 600;
  margin-bottom: 64px;
  text-align: center;
}

.work_style_benefits_list {
  display: flex;
  flex-wrap: wrap;
  gap:24px;
}

.work_style_benefits_list_in {
  width: calc((100% - 24px) / 2);
  background-color: var(--color-white);
  display: flex;
  flex-direction: column;
  gap:24px;
  color: var(--color-black);
  padding: 24px;
  box-sizing: border-box;
}

.work_style_benefits_list_title {
  font-weight: 600;
  font-size: 20px;
  color: var(--color-gray);
}

@media screen and (max-width: 767px) {
  .work_title {
    height: 291px;
  }
  
  .work_title_img {
    height: 291px;
  }
  
  .work_title_img img {
    height: 291px;
  }
  
  .work_title_in {
    height: 291px;
    padding: 0 20px 20px;
    gap:15px;
  }

  .work_main_title {
    font-size: 20px;
  }

  .work_main_menu {
    box-sizing: border-box;
    padding: 0 20px;
  }

  .work_main_menu > a {
    padding: 16px;
    box-sizing: border-box;
    width: 50%;
    justify-content: center;
  }

  .work_main_menu > a > span {
    width: auto;
    font-size: 14px;
    border: none;
  }

  .work_intro {
    padding: 64px 20px 40px;
  }

  .work_intro_menu {
    flex-direction: column;
  }

  .work_intro_menu_link {
    width: 100%;
    font-size: 18px;
    height: 56px;
  }

  .work_info {
    padding: 64px 0;
  }

  .work_info_title {
    font-size: 18px;
    max-width: calc(100% - 40px);
    margin-bottom: 40px;
  }

  .work_info_title::after {
    width: 44px;
    height: 20px;
  }

  .work_info_img {
    margin-bottom: 24px;
  }

  .work_sub_conts {
    padding: 0 20px;
    margin-bottom: 22px;
  }

  .work_sub_title {
    font-size: 20px;
  }

  .work_img_list {
    flex-direction: column;
    padding: 0 20px;
    gap:55px;
  }

  .work_img_list > div {
    width: 100%;
  }

  .work_style {
    padding: 64px 0 0;
  }

  .work_style_title {
    font-size: 20px;
    padding: 0 20px;
  }

  .work_style_point {
    gap:55px;
  }

  .work_style_point_list {
    flex-direction: column;
    gap:24px;
    padding: 0 20px;
  }

  .work_style_point_img {
    width: 100%;
  }

  .work_style_point_txt {
    width: 100%;
    font-size: 16px;
  }

  .work_style_point_title {
    font-size: 20px;
  }

  .work_style_benefits {
    padding: 64px 20px;
  }

  .work_style_benefits_title {
    margin-bottom: 24px;
  }

  .work_style_benefits_list_in {
    width: 100%;
    padding: 20px;
    gap:16px;
  }
  
}


/* =========================
   recruit
========================= */

.recruit_wrap {
  max-width: var(--second-size);
  margin: 0 auto;
  padding: 80px 0;
}

.recruit_title {
  height: 320px;
  width: 100%;
  position: relative;
}

.recruit_title_img {
  height: 320px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.recruit_title_img img {
  height: 320px;
  width: 100%;
  object-fit: cover;
}

.recruit_title_in {
  height: 320px;
  width: 100%;
  max-width: var(--wrap-size);
  padding: 0 48px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
  color: var(--color-white);
}

.recruit_main_title {
  font-size: 48px;
  font-weight: 600;
}

.recruit_info {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 120px 80px;
}

.recruit_h3_title {
  font-size: 48px;
  color: #224D92;
  margin-bottom: 64px;
  letter-spacing: 2px;
  font-weight: 600;
}

.recruit_h3_title.center {
  text-align: center;
}

.recruit_tb {
  border-top: 1px solid #D3D3D3;
  border-left: none;
  border-right: none;
  border-bottom: none;
}

.recruit_tb tr {
  border-bottom: 1px solid #D3D3D3;
}

.recruit_tb th,.recruit_tb td {
  padding: 24px;
  border: none;
  text-align: left;
  vertical-align: top;
  box-sizing: border-box;
}

.recruit_tb th {
  color: #224D92;
  font-weight: 600;
  width: 30%;
}

.recruit_tb td {
  color: var(--color-gray);
}

.recruit_tb td b {
  font-weight: 600;
}

.recruit_tb td a {
  text-decoration: underline;
  color: var(--color-gray);
  transition: opacity 0.5s;
}

.recruit_tb td a:hover {
  opacity: 0.5;
}

.recruit_tb td a.link::after {
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url(../img/recruit/link_icon.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  vertical-align: -5px;
}

.recruit_sub_wrap {
  background-color: var(--color-white);
  padding: 120px 0;
  border-bottom: 2px solid #D9D9D9;
}

.recruit_sub_in {
  max-width: 1252px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap:120px;
}

.recruit_sub_in .recruit_h3_title {
  width: 308px;
}

.recruit_flow_in_txt {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap:16px;
  justify-content: center;
  align-items: center;
}

.recruit_flow_step {
  background-color: #EBF5F9;
  border-radius: 12px;
  padding: 20px 64px;
  display: flex;
  align-items: center;
  gap:64px;
  font-size: 20px;
  font-weight: 600;
  width: 100%;
}

.recruit_flow_step_title {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background-color: #005CB1;
  color: var(--color-white);
  font-weight: 600;
  line-height: 1;
  font-size: 16px;
  border-radius: 4px;
}

.recruit_flow_step_title .number {
  font-size: 32px;
}

.recruit_flow_in_txt .polygon {
  width: 80px;
}

.recruit_qa_in_txt {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap:24px;
  justify-content: center;
  align-items: center;
}

.recruit_qa_in {
  background-color: #F2F2F2;
  border-radius: 12px;
  padding: 24px;
  width: 100%;
  box-sizing: border-box;
}

.recruit_qa_in dt,.recruit_qa_in dd {
  position: relative;
  padding-left: 72px;
  font-size: 16px;
  font-weight: 600;
}

.recruit_qa_in dt::before,.recruit_qa_in dd::before {
  width: 48px;
  height: 48px;
  border-radius: 4px;
  background-color: #005CB1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: 24px;
  font-weight: 600;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.recruit_qa_in dt::before {
  content: 'Q';
}

.recruit_qa_in dd::before {
  content: 'A';
  margin-top: 10px;
}

.recruit_qa_in dt::after {
  content: '';
  background-image: url(../img/recruit/qa_polygon.svg);
  width: 24px;
  height: 16px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.recruit_qa_in dt.active::after {
  transform: rotateX(180deg);
  margin-top: -7px;
}

.recruit_qa_in dt {
  padding: 12px 80px;
}

.recruit_qa_in dd {
  padding-top:20px;
  margin-top: 20px;
  border-top: 1px solid #D3D3D3;
  display: none;
}

@media screen and (max-width: 767px) {
  .recruit_title {
    height: 200px;
  }
  
  .recruit_title_img {
    height: 200px;
  }
  
  .recruit_title_img img {
    height: 200px;
  }
  
  .recruit_title_in {
    height: 200px;
    align-items: end;
    padding: 24px 18px;
  }

  .recruit_sub_in {
    flex-direction: column;
    gap:0;
  }

  .recruit_wrap {
    padding: 0;
  }

  .recruit_info {
    padding: 64px 20px 0;
  }

  .recruit_h3_title {
    font-size: 24px;
    margin-bottom: 24px;
  }

  .recruit_tb th, .recruit_tb td {
    display: block;
    width: 100%;
  }

  .recruit_tb th {
    padding: 24px 0;
  }

  .recruit_tb td {
    padding: 0 0 24px;
  }

  .recruit_sub_wrap {
    padding: 64px 20px;
  }
  
  .recruit_sub_in .recruit_h3_title {
    width: 100%;
    text-align: center;
  }

  .recruit_flow_step {
    padding: 20px;
    gap:24px;
  }

  .recruit_flow_step > span:last-child {
    flex: 1;
  }

  .recruit_flow_step_title {
    width: 52px;
    height: 52px;
    font-size: 12px;
  }

  .recruit_flow_step_title .number {
    font-size: 24px;
  }

  .recruit_flow_in_txt .polygon {
    width: 46px;
  }

  .recruit_qa_in {
    padding: 24px 20px;
  }

  .recruit_qa_in dt, .recruit_qa_in dd {
    font-size: 14px;
  }

  .recruit_qa_in dt {
    padding: 2px 40px;
  }

  .recruit_qa_in dt::before, .recruit_qa_in dd::before {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }

  .recruit_qa_in dd {
    padding-left: 40px;
  }
}


/* =========================
   company
========================= */

.company_wrap {
  max-width: var(--second-size);
  margin: 0 auto;
  padding: 80px 0;
}

.company_title {
  height: 320px;
  width: 100%;
  position: relative;
}

.company_title_img {
  height: 320px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.company_title_img img {
  height: 320px;
  width: 100%;
  object-fit: cover;
}

.company_title_in {
  height: 320px;
  width: 100%;
  max-width: var(--wrap-size);
  padding: 0 48px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
  color: var(--color-white);
}

.company_main_title {
  font-size: 48px;
  font-weight: 600;
}

.company_info {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 120px 80px;
}

.company_h3_title {
  font-size: 48px;
  color: #224D92;
  margin-bottom: 64px;
  letter-spacing: 2px;
  font-weight: 600;
}

.company_h3_title.center {
  text-align: center;
}

.company_tb {
  border-top: 1px solid #D3D3D3;
  border-left: none;
  border-right: none;
  border-bottom: none;
  margin-bottom: 64px;
  width: 100%;
}

.company_tb tr {
  border-bottom: 1px solid #D3D3D3;
}

.company_tb th,.company_tb td {
  padding: 24px;
  border: none;
  text-align: left;
  vertical-align: top;
  box-sizing: border-box;
}

.company_tb th {
  color: #224D92;
  font-weight: 600;
  width: 30%;
}

.company_tb td {
  color: var(--color-gray);
}

.company_tb td b {
  font-weight: 600;
}

.company_tb td a {
  text-decoration: underline;
  color: var(--color-gray);
  transition: opacity 0.5s;
}

.company_tb td a:hover {
  opacity: 0.5;
}

.company_tb .map {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9のアスペクト比 */
  height: 0;
  margin-top: 24px;
}

.company_tb .map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.company_tb .area_title {
  color: var(--color-white);
  padding: 12px 24px;
  font-size: 20px;
  font-weight: 600;
  position: relative;
  margin-bottom: 24px;
}

.company_tb .area_title.tohoku {
  background-color: #AE3E3E;
}

.company_tb .area_title.tochigi {
  background-color: #C9672A;
}

.company_tb .area_title.ibaraki {
  background-color: #3B8CA9;
}

.company_tb .area_title.chiba {
  background-color: #AF8B37;
}

.company_tb .area_title.tokyo {
  background-color: #224D92;
}

.company_tb .area_title.yamanashi {
  background-color: #01712E;
}

.company_tb .area_title:after {
  content: '';
  background-image: url(../img/company/area_polygon.svg);
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: rotateX(180deg);
  margin-top: -12px;
}

.company_tb .area_title.active::after {
  transform: rotateX(0);
}

.company_tb .store_list {
  display: none;
  flex-direction: column;
  gap:24px;
  display: none;
  margin-bottom: 40px;
}

.company_tb .store_list.active {
  display: flex;
}

.company_tb .store_title {
  display: flex;
  gap:24px;
  font-size: 18px;
  color: var(--color-black);
  font-weight: 600;
  margin-bottom: 10px;
}

.company_tb .prefectures {
  padding: 4px 12px;
  color: var(--color-white);
  font-size: 14px;
  font-weight: 600;
  border-radius: 2px;
}

.company_tb .prefectures.tohoku {
  background-color: #AE3E3E;
}

.company_tb .prefectures.tochigi {
  background-color: #C9672A;
}

.company_tb .prefectures.ibaraki {
  background-color: #3B8CA9;
}

.company_tb .prefectures.chiba {
  background-color: #AF8B37;
}

.company_tb .prefectures.tokyo {
  background-color: #224D92;
}

.company_tb .prefectures.yamanashi {
  background-color: #01712E;
}

.company_tb .store_info {
  display: flex;
  gap:16px;
}

.company_tb .store_info_txt {
  flex: 1;
}

.company_tb .store_info_logo {
  width: 114px;
}

.company_tb .store_map_link {
  display: inline-block;
  margin-left: 26px;
  position: relative;
  margin-top: 5px;
  transition: opacity 0.5s;
}

.company_tb .store_map_link:hover {
  opacity: 0.5;
}

.company_tb .store_map_link::before {
  content: '';
  background-image: url(../img/company/map_icon.svg);
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  left: -26px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.company_img {
  border-top: 1px solid #D3D3D3;
  border-bottom: 1px solid #D3D3D3;
  padding: 16px;
  text-align: center;
}

.thumb-open {
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  cursor: pointer;
  font-size: 14px;
  margin-top: 16px;
  display: none;
}

.img-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity .2s ease;
  z-index: 9999;
}

.img-modal.is-active {
  visibility: visible;
  opacity: 1;
}

.img-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .6);
}

.img-modal__content {
  position: relative;
  z-index: 1;
  max-width: 90vw;
  max-height: 90vh;
  background: #fff;
  padding: 16px;
  box-sizing: border-box;
  border-radius: 4px;
}

.img-modal__img {
  max-width: 100%;
  max-height: 80vh;
  display: block;
}

.img-modal__close {
  position: absolute;
  top: 8px;
  right: 8px;
  border: none;
  background: none;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}


@media screen and (max-width: 767px) {
  .company_title {
    height: 200px;
  }
  
  .company_title_img {
    height: 200px;
  }
  
  .company_title_img img {
    height: 200px;
  }
  
  .company_title_in {
    height: 200px;
    align-items: end;
    padding: 24px 18px;
  }

  .company_sub_in {
    flex-direction: column;
    gap:0;
  }

  .company_wrap {
    padding: 0;
  }

  .company_info {
    padding: 64px 20px;
  }

  .company_h3_title {
    font-size: 24px;
    margin-bottom: 24px;
  }

  .company_tb th, .company_tb td {
    display: block;
    width: 100%;
  }

  .company_tb th {
    padding: 24px 0;
  }

  .company_tb td {
    padding: 0 0 24px;
  }

  .company_tb .store_title {
    flex-wrap: wrap;
    gap:3px;
  }

  .company_tb .store_title > span:last-child {
    width: 100%;
  }

  .company_tb .store_info_logo {
    width: 90px;
  }

  .thumb-open {
    display: inline-block;
  }
}


/* =========================
   business
========================= */

.business_wrap {
  max-width: var(--wrap-size);
  margin: 0 auto;
  overflow: hidden;
}

.business_title {
  height: 720px;
  width: 100%;
  position: relative;
}

.business_title_img {
  height: 720px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.business_title_img img {
  height: 720px;
  width: 100%;
  object-fit: cover;
}

.business_title_in {
  height: 720px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: center;
  gap:30px;
  font-size: 20px;
  font-weight: 500;
  position: relative;
  z-index: 1;
  color: var(--color-white);
  box-sizing: border-box;
  padding-bottom: 60px;
}

.business_main_title {
  font-size: 48px;
  font-weight: 600;
}

.business_main_menu {
  border-radius: 8px;
  background-color: rgba(225, 225, 225, 0.6);
  max-width: 732px;
  width: 100%;
  display: flex;
  align-items: center;
  margin: 0 auto;
  font-size: 16px;
}

.business_main_menu > a {
  display: block;
  padding: 25px 5px;
  color: #0C2D45;
  display: flex;
  align-items: center;
  transition: opacity 0.5s;
}

.business_main_menu > a:hover {
  opacity: 0.5;
}

.business_main_menu > a > span {
  width: 234px;
  border-right: 1px solid #0C2D45;
  box-sizing: border-box;
  padding-right: 50px;
  position: relative;
  font-weight: 600;
}

.business_main_menu > a:last-child span {
  border: none;
}

.business_main_menu > a > span::after {
  position: absolute;
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url(../img/arrow-down.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.business_intro {
  position: relative;
}

.business_intro::before {
  content: '';
  background-image: url(../img/business/business_bg02.png);
  width: 900px;
  height: 1009px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  right: 0;
  top: 0%;
}

.business_intro::after {
  content: '';
  background-image: url(../img/business/business_bg01.png);
  width: 911px;
  height: 1077px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  left: 0;
  bottom: 0;
}

.business_intro_in {
  max-width: 1324px;
  margin: 0 auto;
  padding: 120px 0;
  position: relative;
  z-index: 2;
}

.business_intro_about {
  display: flex;
  gap: 64px;
  align-items: center;
}

.business_intro_about_img {
  width: 680px;
  background-color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 440px;
}

.business_intro_about_img img {
  width: 326px;
}

.business_intro_about_img02 {
  width: 680px;
}

.business_intro_about_img02 img {
  width: 100%;
}


.business_intro_about_txt {
  width: 582px;
  font-size: 20px;
  font-weight: 600;
}

.business_intro_about_title {
  color: #224D92;
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 40px;
}

.business_intro_logo_list {
  display: flex;
  background-color: #EAF6FF;
  padding: 40px;
  gap:16px;
  margin: 56px 0;
}

.business_intro_logo_list > div {
  width: calc((100% - 48px) / 3);
  text-align: center;
  font-weight: 600;
}

.business_intro_logo_list > div > .img {
  background-color: var(--color-white);
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.business_intro_tag_list {
  display: flex;
  gap:16px;
  margin-top: 40px;
  flex-wrap: wrap;
}

.business_intro_tag_list > span {
  color: var(--color-white);
  font-weight: 600;
  background-color: #538BC7;
  padding: 8px 12px;
  line-height: 1;
}

.business_main_bg {
  background-color: var(--color-white);
  padding: 120px 0;
}

.business_main_wrap {
  background: linear-gradient(-25deg, #A3B8F8 0%, #098BF9 50%, #0D3D7B 100%);
  padding: 120px 56px;
  display: flex;
  gap:44px;
}

.business_main_list {
  width: calc((100% - 44px) / 2);
  color: var(--color-white);
  display: flex;
  flex-direction: column;
}

.business_main_list_img {
  margin-bottom: 20px;
}

.business_main_list_title {
  margin-bottom: 25px;
  font-size: 32px;
  font-weight: 600;
  text-align: center;
}

.business_main_list03 {
  display: flex;
  flex-direction: column;
  gap:64px;
  padding: 64px 56px;
}

.business_main_list03 > div {
  display: flex;
  gap:64px;
  align-items: center;
}

.business_main_list03_img {
  width: 680px;
  display: flex;
  justify-content: center;
}

.business_main_list03_txt {
  width: 582px;
  font-weight: 600;
  font-size: 18px;
}

.business_main_list03_title {
  color: #224D92;
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 40px;
}

.business_philosophy {
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}

.business_philosophy::before {
  content: '';
  background-image: url(../img/business/business_bg03.png);
  width: 911px;
  height: 1601px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  left: 0;
  top: 232px;
}

.business_philosophy::after {
  content: '';
  background-image: url(../img/business/business_bg04.png);
  width: 900px;
  height: 1797px;
  background-repeat: no-repeat;
  background-size: 100% auto;
  position: absolute;
  right: 0;
  bottom: 200px;
}

.business_philosophy_intro {
  width: 100%;
}

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

.business_philosophy_declaration {
  text-align: center;
  padding: 60px 0;
  font-size: 24px;
}

.business_philosophy_declaration_title {
  font-size: 25px;
  font-weight: 700;
  margin-bottom: 40px;
}

.business_promise {
  background-color: #F4F8FD;
  padding: 80px;
  display: flex;
  gap:116px;
  max-width: 1120px;
  margin: 0 auto;
  border-radius: 12px;
}

.business_promise_title {
  font-size: 32px;
  color: #224D92;
  line-height: 1.8;
  font-weight: 600;
  width: 240px;
}

.business_promise_list {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap:24px;
}

.business_promise_list_in {
  background-color: #fff;
  padding: 24px;
  display: flex;
  gap:24px;
  align-items: center;
}

.business_promise_list_img {
  width: 120px;
}

.business_promise_list_txt {
  font-size: 16px;
  display: flex;
  flex-direction: column;
  gap:24px;
  flex: 1;
}

.business_promise_list_txt > .title {
  font-size: 20px;
  font-weight: 600;
}

.business_message {
  background-color: var(--color-white);
  padding: 80px;
  border-radius: 12px;
  max-width: 1342px;
  margin: 64px auto 0;
}

.business_message_h3 {
  text-align: center;
  color: #224D92;
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 64px;
}

.business_message_wrap {
  background-color: #F4F8FD;
  padding: 24px;
}

.business_message_in {
  max-width: 805px;
  margin: 0 auto;
  text-align: center;
}

.business_message_title {
  margin-bottom: 40px;
  font-weight: 700;
  font-size: 24px;
}

.business_about {
  background-image: url(../img/business/business_about_bg.png);
  height: 302px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 64px;
}

.business_about_in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1120px;
  width: 100%;
}


@media screen and (max-width: 767px) {
  .business_title {
    height: 285px;
  }
  
  .business_title_img {
    height: 285px;
  }
  
  .business_title_img img {
    height: 285px;
  }
  
  .business_title_in {
    height: 285px;
    padding: 16px 18px;
    gap:16px
  }

  .business_main_title {
    font-size: 20px;
  }

  .business_main_menu {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    padding: 10px 0;
  }

  .business_main_menu > a {
    padding: 6px 5px;
  }

  .business_main_menu > a > span {
    border: none;
    font-size: 14px;
    width: auto;
  }

  .business_intro_in {
    padding: 64px 20px;
  }

  .business_intro_about {
    padding: 0;
    flex-direction: column;
    gap:24px
  }

  .business_intro_about_img {
    width: 100%;
    min-height: auto;
    box-sizing: border-box;
    padding: 40px;
  }

  .business_intro_about_img img {
    width: 184px;
  }

  .business_intro_about_txt {
    width: 100%;
    font-size: 16px;
  }

  .business_intro_about_title {
    font-size: 20px;
    margin-bottom: 24px;
  }

  .business_intro_logo_list {
    flex-direction: column;
    padding: 40px 16px;
    gap:24px;
  }

  .business_intro_logo_list > div {
    width: 100%;
  }

  .business_intro_about_img02 {
    width: 100%;
  }

  .business_intro_tag_list {
    flex-wrap: wrap;
  }

  .business_main_bg {
    padding: 64px 0;
  }

  .business_main_wrap {
    flex-direction: column;
    padding: 64px 20px;
  }

  .business_main_list {
    width: 100%;
  }

  .business_main_list_title {
    font-size: 20px;
  }

  .business_main_list03 {
    padding: 64px 20px 0;
  }

  .business_main_list03 > div {
    flex-direction: column;
    gap: 24px;
  }

  .business_main_list03_img {
    width: 100%;
  }

  .business_main_list03_txt {
    width: 100%;
    font-size: 16px;
  }

  .business_main_list03_title {
    font-size: 20px;
    margin-bottom: 24px;
  }

  .business_philosophy {
    padding: 64px 0 0;
  }

  .business_philosophy::before {
    top: -8%;
  }

  .business_philosophy_intro {
    height: auto;
  }

  .business_philosophy_declaration {
    padding: 24px 20px;
    font-size: 16px;
  }
  
  .business_philosophy_declaration_title {
    font-size: 20px;
    margin-bottom: 24px;
  }

  .business_promise {
    border-radius: 0;
    padding: 60px 20px;
    flex-direction: column;
    gap:24px;
  }

  .business_promise_title {
    width: 100%;
    text-align: center;
  }

  .business_promise_list_in {
    flex-direction: column;
  }

  .business_promise_list_txt > .title {
    text-align: center;
  }

  .business_message {
    margin: 0;
    padding: 64px 20px;
    border-radius: 0;
  }

  .business_message_h3 {
    margin-bottom: 24px;
    font-size: 28px;
  }

  .business_message_title {
    font-size: 20px;
    margin-bottom: 24px;
  }

  .business_about {
    background: none;
    height: auto;
    flex-direction: column;
    margin-bottom: 40px;
  }

  .business_about_in {
    background-image: url(../img/business/business_about_bg_sp.png);
    background-size: cover;
    flex-direction: column;
    padding: 40px 20px;
    gap: 30px;
    align-items: baseline;
  }

  .business_about_in .top_company_btn {
    height: 56px;
  }
}



/* =========================
   privacy
========================= */

.privacy_wrap {
  max-width: var(--second-size);
  margin: 0 auto;
  padding: 80px 0;
  letter-spacing: 1px;
}

.privacy_title {
  height: 320px;
  width: 100%;
  position: relative;
}

.privacy_title_img {
  height: 320px;
  width: 100%;
  position: absolute;
  left: 0;
  top:0;
}

.privacy_title_img img {
  height: 320px;
  width: 100%;
  object-fit: cover;
}

.privacy_title_in {
  height: 320px;
  width: 100%;
  max-width: var(--wrap-size);
  padding: 0 48px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
  color: var(--color-white);
}

.privacy_main_title {
  font-size: 48px;
  font-weight: 700;
}

.privacy_wrap {
  max-width: var(--second-size);
  margin: 0 auto;
  padding: 80px 0;
}

.privacy_info {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 120px 80px;
}

.privacy_h2_title {
  font-size: 48px;
  color: #224D92;
  margin-bottom: 64px;
  letter-spacing: 2px;
  font-weight: 700;
  text-align: center;
}

.privacy_h3_title {
  font-size: 24px;
  color: #224D92;
  margin-top: 80px;
  margin-bottom: 24px;
  letter-spacing: 2px;
  font-weight: 700;
  border-left: 8px solid;
  padding: 0 14px;
}

.privacy_h4_title {
  font-size: 20px;
  font-weight: 700;
  margin-top: 40px;
  margin-bottom: 16px;
}

.privacy_info p {
  padding: 16px 0;
}

.privacy_info .right {
  text-align: right;
}

.privacy_info a {
  text-decoration: underline;
  transition: opacity 0.5s;
}

.privacy_info a:hover {
  opacity: 0.5;
}

.privacy_info strong {
  font-weight: 600;
}

ul.privacy_ul {
	list-style:disc;
  margin-left: 20px;
  padding-left: 16px;
}

ul.privacy_ul li {
  position: relative;
  margin-bottom: 6px;
}

ol.privacy_ol {
	list-style: decimal;
  margin-left: 20px;
  padding-left: 16px;
}

ul.privacy_ul li > ul {
  margin-top: 6px;;
}

ol.privacy_ol li {
  position: relative;
  margin-bottom: 6px;
}

.personal_info_intro {
  padding: 74px 0;
  max-width: 920px;
  margin: 0 auto;
}

.personal_info {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 40px 80px 80px;
}

.personal_info > div {
  margin-bottom: 16px;
}

.personal_h2_title {
  font-size: 24px;
  color: #224D92;
  margin-bottom: 64px;
  letter-spacing: 2px;
  font-weight: 700;
  text-align: center;
}

.personal_h3_title {
  font-size: 20px;
  margin-top: 40px;
  margin-bottom: 16px;
  letter-spacing: 2px;
  font-weight: 700;
}

ol.personal_ol {
	counter-reset: listnum;
	list-style: none;
  margin-top: 3px;
}

ol.personal_ol li {
  padding-left: 30px;
  position: relative;
  margin-bottom: 3px;
}

ol.personal_ol li::before{
	counter-increment: listnum;
	content: counter(listnum, katakana) "）";
	display: inline-block;
  position: absolute;
  left: 0;
}

ol.personal_sub_ol {
  margin-top: 3px;
  counter-reset: my-counter;
  list-style: none;
}

ol.personal_sub_ol li {
  padding-left: 26px;
  position: relative;
}

ol.personal_sub_ol li:before {
  content: counter(my-counter);
  counter-increment: my-counter;
  border: 1px solid;
  border-radius: 50%;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 20px;
  width: 20px;
  font-size: 80%;
  line-height: 1;
  position: absolute;
  top: 3px;
  left: 0;
}

.personal_contact {
  margin-top: 26px;
}

.personal_contact > div {
  padding-left: 34px;
}


@media screen and (max-width: 767px) {
  .privacy_title {
    height: 200px;
  }
  
  .privacy_title_img {
    height: 200px;
  }
  
  .privacy_title_img img {
    height: 200px;
  }
  
  .privacy_title_in {
    height: 200px;
    align-items: end;
    padding: 24px 18px;
  }

  .privacy_wrap {
    padding: 0;
  }

  .privacy_info {
    border-radius: 0;
    padding: 64px 20px;
  }

  .privacy_h2_title {
    font-size: 28px;
    margin-bottom: 24px;
  }

  .privacy_h3_title {
    margin-top: 64px;
    font-size: 24px;
  }

  .personal_info_intro {
    padding: 64px 20px;
  }

  .personal_h2_title {
    text-align: left;
    margin-bottom: 24px;
    font-size: 24px;
  }

  .personal_info {
    border-radius: 0;
    padding: 40px 20px 60px;
  }

  ol.personal_ol li {
    padding-left: 0;
  }

  ol.personal_ol li::before {
    position: static;
  }

  ol.personal_sub_ol li {
    padding-left: 0;
  }

  ol.personal_sub_ol li:before {
    position: static;
    text-align: center;
    display: inline-block;
    padding-top: 3px;
    vertical-align: 1px;
    margin-right: 2px;
  }

  .personal_contact > div {
    padding-left: 0;
  }
}