html{
  font-size: 16px;
}
:root{
  --font-xs: 0.75rem;    /* 12px */
  --font-sm: 0.875rem;   /* 14px */
  --font-base: 0.9375rem;/* 15px */
  --font-md: 1rem;        /* 16px */
  --font-lg: 1.1875rem;    /* 19px */
  --font-ll: 1.375rem;    /* 22px */
  --font-xl: 1.5rem;      /* 24px */
  --font-xll: 2rem;      /* 32px */
  --font-2xl: 2.625rem;    /* 42px */
  --font-3xl: 3rem;   /* 48px */
  --font-4xl: 3.75rem;   /* 60px */
}

/* -------------------------
   ユーティリティクラス
------------------------- */
.font-xs { font-size: var(--font-xs); }
.font-sm { font-size: var(--font-sm); }
.font-base { font-size: var(--font-base); }
.font-md { font-size: var(--font-md); }
.font-lg { font-size: var(--font-lg); }
.font-ll { font-size: var(--font-ll); }
.font-xl { font-size: var(--font-xl); }
.font-xll { font-size: var(--font-xll); }
.font-2xl { font-size: var(--font-2xl); }
.font-3xl { font-size: var(--font-3xl); }
.font-4xl { font-size: var(--font-4xl); }

/* -------------------------
    基本スタイル
------------------------- */
*,*::before,*::after{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
@font-face {
  font-family: 'SourceHanSansJP';
  src: url('../fonts/SourceHanSansJP-Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'SourceHanSansJP-bold';
  src: url('../fonts/SourceHanSansJP-Bold.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}

body{
  font-size: var(--font-base);
  line-height: 1.6;
  font-family:"SourceHanSansJP", sans-serif;
  color: #231815;
  background-color: #fff;
  overflow-x: hidden;
}
h1{
  font-size: var(--font-md);
}
h2{
  font-size: var(--font-4xl);
}
h3{
  font-size: var(--font-xl);
}
h2, h3, h4, h5, h6 {
  font-weight: bold;
  line-height: 1;
}
p{
  font-size: var(--font-md);
}
img,video{
  max-width: 100%;
  height: auto;
  display: block;
}
video{
  width: 100%;
}
nav{
  height: inherit;
}
li{
    list-style: none;
    line-height: 1;
}
a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  line-height: 1;
  color: inherit;
  transition: all 0.4s ease;
}
a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 1.5px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: all 0.4s ease;
}
a:hover::after {
  transform: scaleX(1);
}
input,select,textarea{
/*  cursor: pointer;*/
}

header nav > ul > li > a::after,
header > h1 > a::after,
.top_detail_button::after,
.top_news_flex a::after,
.top_pagination a::after,
.recruit_flex::after,
.foot_copyright_flex a::after,
.corporate_group > article a::after,
.form_flex label.privacy_policy_label > a::after,
.recruit_button > a::after,
.new_graduate_recruitment_flow > div > p > a::after,
.news_flex::after{
  content: none;
}

.other_page_container h2{
    padding-top: 18.125rem;
}

main{
  position: relative;
  overflow: hidden;
}
.container {
  width: 100%;
  max-width: 75rem;  /* 1200px */
  margin: 0 auto;
  padding: 0 1.25rem;
}
header{
    position: fixed;
    width: 100%;
    height: 10rem;
    background-color: #fff;
    top: 0;
    z-index: 1000;
    opacity: 1;
    transition: all .6s ease;
}
header h1{
    position: absolute;
    top: 50%;
    left: 2rem;
    transform: translateY(-50%);
    line-height: 1;
    z-index: 3;
}
header h1 > a:hover{
  opacity: .8;
}
header h1 svg{
    height: 7.0625rem;
}
header .hamburger_button{
  display: none;
  z-index: 3;
}
header > div:first-of-type{
  height: inherit;
}
header nav > ul{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}
header nav > ul > li > a{
    padding: 0 2.5em;
    border-left: 0.03125rem solid #000;
    display: inline-block;
}
header nav > ul > li:last-of-type > a{
    border-right: 0.03125rem solid #000;
}
header::after,
.top_fv_area::after,
section > h2::after,
.business_fv_area::after,
.information_fv_area::after,
.about_fv_area::after,
.privacy_policy_fv_area::after,
.contact_fv_area::after,
.recruit_fv_area::after,
.recruit_Mid-Career_fv_area::after,
.news_fv_area::after{
    content: '';
    display: block;
    width: 100%;
    min-width: 120rem;
    height: 0.3125rem;
    background: linear-gradient(to right,
  #008d3f 0rem,
  #008d3f 28.75rem,
  #f08208 28.75rem,
  #f08208 41.25rem,
  #008d3f 41.25rem,
  #008d3f 120rem
    );
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}
header nav > ul > li{
  position: relative;
  height: 100%;
  display: inline-flex;
  align-items: center;
}
header nav > ul > li:hover .dropdown{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
header .dropdown {
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 280px;
  /*background: #595757;*/
  background-color: rgba(0,0,0,0.6);
  color: white;
  padding: 2.25rem;
  z-index: 100;
  transition: all .6s ease;
}
header .dropdown ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
header .dropdown > ul > li {
  line-height: 2;
}
header .dropdown > ul > li:not(:first-of-type) {
  padding-left: 1em;
}
header .arrow-up {
  position: absolute;
  top: -30px;
  left: calc(25% - 2px);
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-bottom: 30px solid rgba(0,0,0,0.6); /*#595757;*/
}
header.hide {
  transform: translateY(-100%);
  opacity: 0;
}
.head_square{
  display: none;
}

footer > section{
    width: 90%;
    background-color: #fff;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 6.25rem;
    border-radius: 1.25rem;
    padding: 3.75rem 5rem;
}
.foot_info_flex{
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  margin-top: 1.4375rem;
}
.foot_info_flex svg{
  width: 9.0625rem;
}
.foot_info_text{
  margin-left: 1.625rem;
}
.flex_dl{
  display: flex;
}
footer nav > ul{
  display: flex;
}
footer li{
  line-height: 2;
}
footer nav > ul > li > a{
  margin-right: clamp(5.625rem, 3.013rem + 4.26vw, 8.125rem);;
  display: inline-flex;
  align-items: center;
}
footer nav > ul > li > ul{
  padding-left: 2rem;
}
.foot_square_size{
  font-size: 0.625rem;
}


.foot_copyright_container{
  background-color: #3e3a39;
  color: #fff;
  padding: 1.4375rem 1.25rem;
}
.foot_copyright_flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 75rem;  /* 1200px */
  margin: 0 auto;
}
.foot_copyright_flex a:hover{
  opacity: .6;
}
.foot_copyright_flex > div > a:first-of-type{
  margin-right: 2em;
}

.background_video {
  position: absolute;
  top: clamp(1180px,120.40816326530612244897959183673vw,1850px);
  right: clamp(26.25rem, -11.543rem + 61.702vw, 62.5rem);
  z-index: 0;
  pointer-events: none;
}
.background_video_other{
  top:1280px;
}
.background_video video {
    width: clamp(46.875rem, -1.995rem + 79.787vw, 93.75rem);
    height: clamp(34.375rem, 14.827rem + 31.915vw, 53.125rem);
    object-fit: cover;
    filter: brightness(1.1);
}
main > *:not(.background_video) {
    position: relative;
    z-index: 1;
}
.sp_add_br{
  display: none;
}