html {
  font-size: 100%;
  font-family: 'Noto Sans JP', sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
body {
  background: rgb(255, 255, 255);
  color: rgb(17, 17, 17);
}
button, input, optgroup, select, textarea {
  font-family: 'Noto Sans JP', sans-serif;
}
a {
  transition: all 0.5s 0s ease;
}
/*--------------------------------------------------------------
Media
--------------------------------------------------------------*/
img, video {
  height: auto; /* Make sure images are scaled correctly. */
  max-width: 100%;
  width: 100%;
}
.site-footer a[target="_blank"]::after {
  background: url("../images/svg/icon-entry-blank.svg");
  background-size: contain;
  width: 1rem;
  height: 1rem;
  display: inline-block;
  content: "";
}

.site-footer a:hover {
	color: #fff;
	text-decoration: underline;
}

a[target="_blank"]:hover {
  opacity: 0.8;
}
.remodal a[target="_blank"]::after {
  background: url("../images/svg/blank.svg");
  background-size: contain;
  width: 1rem;
  height: 1rem;
  display: inline-block;
  content: "";
}
.screen {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
  clip-path: inset(0px 0px 99.9% 99.9%);
  border: 0;
}
/*--------------------------------------------------------------
Typography
--------------------------------------------------------------*/
body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 100%;
  font-weight: 400;
}
h1 {
  font-size: 1.5rem;
  font-weight: 400;
}
h3 {
  font-size: 1.5rem;
}
.title, .sub-title {
  text-align: center;
}
.title span, .sub-title span {
  font-family: 'Roboto Condensed', sans-serif;
  display: block;
}
.title span {
  color: rgba(42, 69, 146);
  font-size: 4rem;
}
.title.left {
  text-align: left;
}
.sub-title {
  margin: 3rem 0;
  font-size: 2rem;
  line-height: 2.5rem;
}
.sub-title span {
  font-size: 1rem;
  color: rgba(42, 69, 146);
}
.sub-title span::before {
  content: url("../images/svg/sub-title-under.svg");
  display: block;
}
.section-header {
  align-items: center;
}
.section-header .title {
  font-size: 1.5rem;
}
.section-header .title.left {
  padding: 8.33%;
}
/*--------------------------------------------------------------
Layout
--------------------------------------------------------------*/
.flex {
  display: flex;
  justify-content: center;
}
.none {
  display: none;
}
#page {
  position: relative;
  overflow: hidden;
}
.inner {
  margin: 0 auto;
  max-width: 1040px;
}
/*--------------------------------------------------------------
*
*縲繝倥ャ繝繝ｼ
*
--------------------------------------------------------------*/
.header.flex {
  justify-content: space-between;
  position: relative;
  background: rgb(255, 255, 255);
  z-index: 99;
}
.header.fixed {
  position: fixed;
  width: 100%;
}
.branding {
  align-items: center;
  padding: 0 1rem;
}
.branding .logo {
  width: 160px;
}
.site-title {
  display: flex;
  padding: 0 1rem;
margin:0;
}
.site-title span {
  font-size: 0.8rem;
  font-weight: bold;
}

.header nav {margin-left:auto;}

.top-menu {
  display: flex;
  align-items: stretch;
}
.top-menu li {
  position: relative;
  display: flex;
align-items:center;
transition: all 0.5s 0s ease;
}
.top-menu a {
  align-self: center;
  padding: 1.5rem .8rem;
  font-weight: bold;
  color: rgb(17, 17, 17);
  font-size: 0.9rem;
}
.top-menu li::before {
  opacity: 0;
  transition: all 0.5s ease 0s;
  display: block;
  content: "";
}
.top-menu li.last a {
  padding-right: 2rem;
}
.top-menu li:hover::before {
  opacity: 1;
  width: 100%;
  height: 4px;
  background: rgba(76, 119, 190, 1);
  position: absolute;
  bottom: 0;
}
.top-menu li.entry:hover::before,.top-menu li.sns:hover::before {
  display: none;
  height: 0;
}

.top-menu .entry {
background: rgb(245, 170, 0);
}

.top-menu .entry a,.top-menu .contact a,.sns a {
padding: 1rem 2rem;
  color: rgb(255, 255, 255);
  white-space: nowrap;
  display: flex;
  align-self: center;
}

.top-menu .contact {
  background: #4C77BE;
}
.sns,.sns-icon {
  background: -webkit-linear-gradient(
  135deg,
  #ffd600 0%,
  #ff9a00 20%,
  #ff7a00 40%,
  #ff3d5a 70%,
  #f13f79 100%
) no-repeat;
background: linear-gradient(
  135deg,
  #ffd600 0%,
  #ff9a00 20%,
  #ff7a00 40%,
  #ff3d5a 70%,
  #f13f79 100%
) no-repeat;
}
.sns-icon {
  color: rgb(255, 255, 255);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6.55%;
  padding: 2.08% 6.55%;
  position: absolute;
  z-index: 2;
  right: 0;
}
.sns-icon svg {width: 1.6em;}
.page-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  background-image: url("../images/page-top.svg");
  background-size: 20px;
  background-repeat: no-repeat;
  background-position: center;
  padding: 1.5rem;
  background-color: rgba(255, 255, 255, 0.5);
  z-index: 10;
}
.top-menu .entry:hover, .sp-entry:hover {
  background-color: rgb(251, 205, 0);
}

.top-menu .contact:hover, .sp-contact:hover,.top-menu .sns:hover {
  opacity:0.8;
}

.sp-menu-toggle, .header .sp-nav, .sp-menu {
  display: none;
}
.welfare .inline-list {
  margin-left: 1rem;
  position: relative;
  left: 1rem; 
}
.welfare .inline-list::before {
  margin-left: -2rem; 
}
.inline-list::before, .footer-entry li::before {
  background: url(../images/circle.svg);
  content: "";
  width: .5rem;
  height: .5rem;
  background-size: contain;
  display: inline-block;
  vertical-align: middle;
  margin: 0 0.5rem;
}

.footer-entry .block .hrmos {margin: 2.5%;
  max-width: 260px;
  height: auto;
  display: block;}

/*--------------------------------------------------------------
13.0 Layout
--------------------------------------------------------------*/
#page {
  position: relative;
  overflow: hidden;
}
.inner {
  margin: 0 auto;
  max-width: 1040px;
}
/*footer******************************************/
.footer-entry {
  color: rgb(255, 255, 255);
  background: rgba(42, 69, 146, 0.75);
  padding: 2.08%;
  padding-top: 0;
}
.footer-entry .section-header {
  justify-content: flex-start;
  align-items: center;
}
.footer-entry .section-header .title.left {
  border-right: 1px solid rgb(255, 255, 255);
  padding: 1rem 4rem 1rem 0;
  margin: 2rem 2rem 2rem 0;
}
.footer-entry .title span {
  color: rgb(255, 255, 255);
  margin-bottom: 1rem;
}
.footer-entry .column-3 {
  color: rgb(17, 17, 17);
  background: rgb(255, 255, 255);
  justify-content: space-around;
}
.footer-entry .column-3 .block {
  padding: 2rem 0;
}
.footer-entry .column-3 dt {
  background: rgba(42, 69, 146, 0.75);
  color: rgb(255, 255, 255);
  padding: 0.5rem;
  margin-bottom: 1rem;
  text-align: center;
}
.footer-entry .column-3 dd {
  padding: 0;
}
.notice {
  font-size: 0.75rem;
}

.footer-entry .file-dl,.inline-list .file-dl,.footer-entry .column-3 dd li a.file-dl {margin-left: 0.25rem;display: inline-flex;}

.footer-entry .file-dl img,.inline-list .file-dl img {width:12px;vertical-align: baseline;}

/*資格取得バナー******************************************/

.qual .lede {
padding-top:0;
}
.qual-banner {
  margin-bottom: 6.25%;
overflow: hidden;
}
.qual-banner .column-2 {
  overflow: hidden;
}

.qual-banner .block h3 {
font-size: 1.5rem;
font-weight: inherit;
padding: 0;
margin: 0;
}
.qual-banner .block p {margin:0;}

.qual-banner a:hover {
  opacity: 0.8;
}
.qual-banner .block {
  background: rgb(79, 116, 190);
  color: rgb(255, 255, 255);
  width: 50%;
  padding: 6.25% 8.33%;
  line-height: 3rem;
}

.qual-banner .thumb {
  max-width: 50%;
  height: auto;
  object-fit: cover;
}

.qual-banner .view-more {
  width: 94px;
}


/*--------------------------------------------------------------
Footer
--------------------------------------------------------------*/
.site-footer {
  background: rgb(42, 69, 146);
  color: rgb(255, 255, 255, .5);
  padding: 6.25%;
  text-align: center;
  line-height: 3rem;
}
.privacy::before {
  margin: 0 1rem;
  content: "";
  width: 1px;
  height: 1rem;
  display: inline-block;
  background: rgba(255, 255, 255, .5);
  vertical-align: middle;
}

@media screen and (max-width:980px) {
  .header.flex {
    line-height: 1rem;
  }

.site-title {padding: 0 0.5rem;}
  .site-title span {
    font-size: 0.625rem;
  }
  .title span {
    font-size: 3rem;
  }
  .title {
    font-size: 1.125rem;
    line-height: 4rem;
  }
  .sub-title {
    font-size: 1.5rem;
  }
  .lede {
    padding: 8.33% 0;
  }
  .flex {
    line-height: 1.8rem;
  }
  .inner, .interview {
    padding: 0 6.25%;
  }
  .staff-detail .inner.article {
    padding: 0;
  }
  .pc, .pc.main-visual,.header nav {
    display: none;
  }
  .sp {
    display: block;
  }
  .branding .logo {
    width: 104px;
  }
  .header .sp-nav {
    display: flex;
  }
  .sp-nav {
    margin-left: auto;
  }
  .sp-contact, .sp-entry {
    padding: 0 6.55%;
    color: rgb(255, 255, 255);
    white-space: nowrap;
    font-size: 0.65rem;
    display: flex;
    line-height: 3rem;
    align-items: center;
    width: 3.8rem;
    justify-content: center;
  }
  .sp-entry {
    background: rgb(245, 170, 0);
  }
  .sp-contact {
    background: #4C77BE;
  }
  .branding.flex, .header.flex {
    display: flex;
    line-height: 1rem;
  }
  .branding {
    padding: 0.5rem;
  }
  .top-menu.flex {
    display: none;
  }
  .flex {
    display: block;
  }
  .footer-entry .block {
    padding: 1rem 2rem;
  }
  
  .sp-menu-toggle {
    background-image: url("/recruit/assets/images/svg/top_icon_menu.svg");
    background-color: rgb(246, 246, 246);
    display: flex;
    background-size: 20px;
    background-position: center;
    background-repeat: no-repeat;
    width: 3.5rem;
    height: 3rem;
    height: 100%;
    border: none;
  }
  .sp-menu-toggle.close {
    background-image: url("/recruit/assets/images/svg/top_icon_close.svg");
    transition: transform 0.5s ease-in-out; /* マウスオーバーで拡大する時の時間とイージング */
  }
  .sp-menu {
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    bottom: 0;
    z-index: -1;
    display: none;
    overflow-y: scroll;
  }
  .sp-menu.open {
    background: rgb(246, 246, 246);
    z-index: 97;
    align-items: baseline;
    padding-top: 15vh;
    padding-bottom: 10vh;
  }
  .sp-body {
    overflow: hidden;
  }
  .sp-menu.open li a {
    color: #4C77BE;
    display: block;
    padding: 6.55%;
    text-align: center;
    transition: 0s;
    position: relative;
  }
  .sp-menu.open li a:hover {
    background: rgb(255, 255, 255, .25);
    transition: all 0.5s 0s ease;
  }
  .sub-title, .business dd::after {
    margin: 1rem auto;
  }
  .person img, .staff .list, .footer-entry .block.newgrads, .footer-entry .block.careers, .footer-entry .careers .flex dl, .section-header .title.left {
    width: 100%;
    display: block;
  }
  .sp-menu.open li.entry a {
    background: rgb(245, 170, 0);
    color: rgb(255, 255, 255);
  }
  .sp-menu.open li.contact a {
    background: #4C77BE;
    color: rgb(255, 255, 255);
  }
  .sp-menu.open li.sns a {
color: rgb(255, 255, 255);
display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.08%;
}

.sp-menu.open li.sns a svg {
width:1.5rem;
}

  .sp-menu.open li.entry, .sp-menu.open li.contact,.sp-menu.open li.sns {
    margin-top: 1rem;
  }
  .sp-menu.open li.entry a:hover, .sp-menu.open li.contact a:hover,.sp-menu.open li.sns a:hover {
    opacity: 0.95;
  }
  .sp-menu .inner {
    width: 90%;
    position: relative;
    z-index: 99;
list-style:none;
  }
  .inner {
    padding: 0 2.08%;
    margin: 0 auto;
  }
  .site-footer {
    font-size: 0.75rem
  }
  .site-navi li {
    width: 100%;
  }
  /*モーダル*/
  .remodal {
    width: 95%;
  }
  .modal-navi .prev, .modal-navi .next {
    display: none;
  }
  .modal-section .block.img {
    padding: 2rem 0;
    width: auto;
    height: auto;
  }
  
  .recommend-link {
    margin-bottom: 6.25%;
  }
  /*社員紹介*/
  .person {
    margin-top: 1rem;
  }
  .person .thumb {
    max-width: inherit;
  }
  .section-header .title {
    font-size: 1.2rem;
    line-height: 3rem;
    letter-spacing: 0.2rem;
  }
  .footer-entry .section-header .title.left,.footer-contact .section-header .title.left {
    margin: 0 auto;
    padding: 0;
    padding-top: 2rem;
    border: 0;
    text-align: center;
  }
  .footer-entry .section-header p,.footer-contact .section-header p {
    padding: 2rem 0;
  }
	.office-image {
  margin-bottom: 6.25%;
}
	.footer-contact {
		padding: 3rem 0;
	}
	
	.footer-entry {padding-bottom: 3rem;}
	
	.photo .slide-nav {top:25%;}
	
  .modal-close {
    left: 0;
    right: 0;
  }
  .modal-section img {
    position: static;
  }
  .modal-close {
    margin: 0 auto;
  }
  .staff-more {
    margin: 1rem;
  }
  .page-header .page-title {
    font-size: 1.5rem;
    padding: 25% 0;
    text-align: center;
  }
  .footer-entry .careers .flex dl {
    border: none;
	padding: 1rem 0;
  }
	p.text-center {width: 10rem; margin: 0 auto;}
	.form-container .head-lede {
		padding: 2.08%;
	}.section-header .title {padding: 10%;}
	.qual-banner .thumb,.qual-banner .block {max-width:100%;}
}