@charset "UTF-8";
/* 2025/05/26 追加 */
.ag-title:before,
.big-title:before {
  background: #be0017;
}

#footer .top .ft-menu ul li {
  margin: 0px 10px;
}
#footer .btn {
  min-width: 150px;
}
#footer .btn:hover::after {
  width: 30px;
}
#footer .btn:hover span {
  transform: translateX(-15px);
}

@media (max-width: 1130px) and (min-width: 768px) {
  #footer {
    padding-left: 50px;
  }
  #footer .ft-bg {
    padding: 50px 50px 15px 100px;
  }
}
@media (max-width: 1060px) and (min-width: 768px) {
  #footer .ft-bg {
    padding-top: 30px;
  }
  #footer .btn,
  #footer .top .ft-logo {
    margin: 0 auto;
  }
  #footer .top .ft-menu {
    width: 100%;
    margin: 10px 0 20px;
  }
}
@media (max-width: 940px) {
  #header .box-header .menu-main ul,
  #header .box-header .menu-main ul li:not(:last-child) {
    margin-right: 20px;
  }
}
@media (max-width: 940px) and (min-width: 768px) {
  #header .box-header .btn {
    min-width: 150px;
  }
  #header .box-header .btn:hover::after {
    width: 30px;
  }
  #header .box-header .btn:hover span {
    transform: translateX(-15px);
  }
}
@media (max-width: 767px) {
  #footer .top .ft-menu ul li {
    width: 50%;
    margin: 0 0 10px;
    padding: 0 20px;
  }
  .recruit .bottom .item .featured {
    min-height: 268px;
  }
  .animate-letter p,
  .animate-letter-c p {
    height: unset;
    line-height: 135%;
  }
}
body.home {
  overflow-x: clip !important;
}
body.home .ag-title:before {
  background: #be0017;
}
body.home .banner-home-main {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 70px 80px 200px !important;
}
body.home .banner-home-main p {
  margin: inherit;
  padding: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
body.home .banner-home-main .block-text {
  padding-top: 70px;
}
body.home .banner-home-main .scrolltop p {
  font-weight: 700;
  font-size: 16px !important;
  line-height: 100% !important;
  letter-spacing: 0em !important;
}
body.home .banner-home-main .scrolltop span {
  width: 2px;
}
body.home .banner-home-main .line1,
body.home .banner-home-main .line2 {
  position: absolute;
  height: 1px;
  background: #be0017;
  width: 140vh;
  transform: rotate(108deg) scale(0, 1);
  transition: all 1s 2s;
}
body.home .banner-home-main .line1 {
  right: 60vw !important;
  top: 100vh !important;
}
body.home .banner-home-main .line2 {
  right: 58vw !important;
  top: 100vh !important;
}
body.home .banner-home-main .home-banner__text {
  padding: 0;
  font-weight: 700;
  font-size: 2.6388888889vw;
  line-height: 180%;
  letter-spacing: 0em;
}
body.home .banner-home-main__heading {
  position: static;
  top: 0;
  margin: 0;
  padding-top: 100px;
  font-weight: 900;
  font-size: 6.9444444444vw;
  line-height: 140%;
  letter-spacing: 0em;
}
body.home .banner-home-main__heading-wrap {
  display: flex;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  padding-top: 200px;
}
@media screen and (max-width: 991px) {
  body.home .banner-home-main .scrolltop {
    bottom: 120%;
  }
}
@media screen and (max-width: 767px) {
  body.home .banner-home-main {
    padding: 24px 24px 50px !important;
  }
  body.home .banner-home-main .scrolltop {
    bottom: 120%;
    right: -7px;
  }
  body.home .banner-home-main .block-text {
    padding-top: 50px;
  }
  body.home .banner-home-main .block-text .dc-txt.--txt1 {
    padding-left: 0;
  }
  body.home .banner-home-main .home-banner__text {
    font-size: 22px;
    line-height: 180%;
    letter-spacing: 0em;
  }
  body.home .banner-home-main .line1,
  body.home .banner-home-main .line2 {
    bottom: unset;
    right: unset !important;
    top: 0px !important;
    left: 60px;
    width: 250px;
    transform-origin: left;
  }
  body.home .banner-home-main .line2 {
    left: 76px;
  }
  body.home .banner-home-main .line1.--1 {
    right: unset !important;
    top: 38vh !important;
    left: 100%;
    width: 1400px;
  }
  body.home .banner-home-main .line1.--2 {
    right: unset !important;
    top: 38vh !important;
    left: calc(100% + 19px);
    width: 1400px;
  }
  body.home .banner-home-main .line1.--3 {
    right: unset !important;
    top: unset !important;
    bottom: 500px;
    left: 55px;
    width: 600px;
  }
  body.home .banner-home-main__heading {
    top: 60px;
    padding: 0;
    font-size: 16.6666666667vw;
    line-height: 140%;
    letter-spacing: 0em;
  }
  body.home .banner-home-main__heading .large {
    font-size: 20.5128205128vw;
    line-height: 140%;
    letter-spacing: 0em;
  }
  body.home .banner-home-main__heading-wrap {
    padding: 0px;
    justify-content: center;
  }
}
body.home .business {
  padding: 90px 40px 115px;
}
body.home .business .line-c-1,
body.home .business .line-c-2 {
  background: #be0017;
}
body.home .business .container {
  width: 1120px;
  max-width: 100%;
}
body.home .business .container .list-flex {
  display: flex;
  justify-content: flex-end;
}
body.home .business .container .list-flex .img {
  position: absolute;
  z-index: 0;
  right: 515px;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
body.home .business .container .list-flex .img img {
  position: absolute;
  right: -15%;
  top: 0%;
  height: auto;
  min-height: 130%;
  width: 100%;
  max-width: unset;
  object-fit: cover;
}
body.home .business .container .list-flex .img::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  z-index: 10;
  width: 100%;
  height: 100%;
  background: linear-gradient(102.54deg, rgba(43, 44, 66, 0.5) 6.79%, rgba(43, 44, 66, 0) 18.51%, rgba(255, 255, 255, 0) 49.48%, rgba(43, 44, 66, 0.5) 62.46%, rgba(43, 44, 66, 0.9) 74.18%, #2b2c42 93.85%);
}
body.home .business .container .list-flex .info {
  padding: 0;
  width: 550px;
  max-width: 100%;
}
body.home .business .container .list-flex .info .des {
  max-width: 100%;
  margin-bottom: 90px;
}
body.home .business .container .list-flex .info .des p {
  font-weight: 700;
  font-size: 20px;
  line-height: 160%;
  letter-spacing: 0;
}
body.home .business + .bg-box::before {
  top: 293px;
  width: 85vw;
  height: 1770px;
  background-image: unset;
  background-color: #edf2f4;
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%);
}
@media screen and (max-width: 767px) {
  body.home .business {
    padding: 60px 0 286px;
  }
  body.home .business .line-c-1,
  body.home .business .line-c-2 {
    display: none;
  }
  body.home .business .ag-title {
    text-align: left;
  }
  body.home .business .container .list-flex {
    justify-content: center;
  }
  body.home .business .container .list-flex .img {
    top: 0;
    left: 0;
    right: unset;
    bottom: unset;
    width: 100%;
    height: 100%;
  }
  body.home .business .container .list-flex .img::before {
    background: linear-gradient(180deg, #2b2c42 0%, rgba(43, 44, 66, 0.8) 34.13%, rgba(43, 44, 66, 0.6) 58.65%, rgba(43, 44, 66, 0.3) 67.31%, rgba(43, 44, 66, 0) 82.69%, rgba(43, 44, 66, 0.3) 100%);
  }
  body.home .business .container .list-flex .img img {
    top: 0;
    left: 0;
    right: unset;
    bottom: unset;
    width: 100%;
    object-fit: cover;
  }
  body.home .business .container .list-flex .info .des {
    margin-bottom: 30px;
  }
  body.home .business .container .list-flex .info .des p {
    font-size: 16px;
    line-height: 160%;
  }
  body.home .business .container .list-flex .info .btn {
    margin-left: auto;
    display: block;
    width: fit-content;
    max-width: 100%;
  }
}
body.home .recruit {
  padding-top: 200px;
  padding-bottom: 0px;
}
body.home .recruit .bottom .list .item:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  body.home .recruit {
    padding-top: 80px;
    padding-bottom: 60px;
  }
}
body.home .person .des p,
body.home .career .des p {
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  body.home .person .des p,
  body.home .career .des p {
    letter-spacing: 0;
  }
}
body.home .career .top {
  margin-bottom: 40px;
}
body.home .career .animated-img {
  height: 500px;
  clip-path: polygon(21% 0, 100% 0, 100% 100%, 0% 100%);
}
body.home .career .animated-img img {
  height: auto;
  min-height: 130%;
  width: 100%;
  max-width: unset;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  body.home .career {
    padding-bottom: 0;
  }
  body.home .career::before {
    display: none;
  }
  body.home .career .bottom .container {
    padding: 0 30px;
  }
  body.home .career .dc-txt.--txt1 {
    display: flex;
    align-items: stretch;
    padding-left: 0;
  }
}
body.home .company {
  padding-top: 200px;
}
body.home .company .info .ag-title h2,
body.home .company p {
  color: #000;
}
@media screen and (max-width: 767px) {
  body.home .company {
    padding-top: 80px;
    padding-bottom: 60px;
  }
}
body.page-template-business .business-top {
  position: relative;
  align-items: flex-start;
  width: 1440px;
  max-width: 100%;
  min-height: 751px;
  margin: 0 auto;
  padding-bottom: 50px;
  box-sizing: content-box;
}
body.page-template-business .business-top .info {
  z-index: 50;
  width: 75%;
}
body.page-template-business .business-top .featured.on-pc {
  position: absolute;
  z-index: 10;
  top: 100px;
  right: 0;
  width: 600px;
  padding: 0;
}
body.page-template-business .business-top .featured.on-pc img {
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%, 0 40%);
}
body.page-template-business .business-top .featured.on-pc .image-fit:after {
  display: none;
}
body.page-template-business .business-top .big-title p {
  height: 1.5em;
}
body.page-template-business .business-top .info .des {
  margin-top: 170px;
}
body.page-template-business .business-top .info .des h3 {
  font-weight: 700;
  font-size: 66px;
  line-height: 100%;
  letter-spacing: 0em;
}
body.page-template-business .business-top .info .des h3 span {
  padding: 26px 16px;
}
@media screen and (max-width: 1000px) {
  body.page-template-business .business-top .info {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  body.page-template-business .business-top {
    min-height: unset;
    padding-bottom: 25px;
  }
  body.page-template-business .business-top .sp-featured img {
    height: 60vw;
    min-height: 300px;
  }
  body.page-template-business .business-top .info {
    padding-left: 30px;
  }
  body.page-template-business .business-top .info .des {
    margin-top: -29px;
  }
  body.page-template-business .business-top .info .des h3 {
    font-size: 30px;
  }
  body.page-template-business .business-top .info .des h3 span {
    padding: 18px 10px;
  }
}
body.page-template-business .business-bottom p {
  font-weight: 400;
  font-size: 20px;
  line-height: 175%;
  letter-spacing: 0em;
}
body.page-template-business .business-bottom-in {
  width: 930px;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 40px 80px;
}
@media screen and (max-width: 767px) {
  body.page-template-business .business-bottom p {
    font-weight: 500;
    font-size: 16px;
  }
  body.page-template-business .business-bottom-in {
    padding: 0 30px 80px;
  }
}
body.page-template-business .business-item .info {
  padding: 90px 0 0;
}
body.page-template-business .business-item .des h4 {
  margin: 52px 0 15px;
  font-weight: 400;
}
body.page-template-business .business-item .des p {
  font-weight: 400;
  letter-spacing: 0em;
}
@media screen and (max-width: 767px) {
  body.page-template-business .business-item::before {
    right: 20px;
  }
  body.page-template-business .business-item .info .des {
    padding-right: 0;
  }
  body.page-template-business .business-item .des h4 {
    font-weight: 500;
  }
  body.page-template-business .business-item .des p {
    font-weight: 500;
  }
}
body.page-template-interview .interview-top .info .des h3, body.page-template-interview-2 .interview-top .info .des h3 {
  margin-bottom: 50px;
  font-weight: 700;
  font-size: 32px;
  line-height: 100%;
  letter-spacing: 0em;
}
body.page-template-interview .interview-top .info .des h3 .emply, body.page-template-interview-2 .interview-top .info .des h3 .emply {
  padding: 26px 16px;
}
body.page-template-interview .interview-top .info .des p, body.page-template-interview-2 .interview-top .info .des p {
  line-height: 200%;
  letter-spacing: 0.05em;
}
body.page-template-interview .interview-content h3, body.page-template-interview-2 .interview-content h3 {
  margin-bottom: 0;
}
body.page-template-interview .interview-content h3 span:last-child, body.page-template-interview-2 .interview-content h3 span:last-child {
  margin-bottom: 0;
}
body.page-template-interview .recruit .bottom .item .featured, body.page-template-interview-2 .recruit .bottom .item .featured {
  object-position: bottom;
}
@media screen and (max-width: 767px) {
  body.page-template-interview .interview-top .info, body.page-template-interview-2 .interview-top .info {
    padding-left: 30px;
  }
  body.page-template-interview .interview-top .info .des h3, body.page-template-interview-2 .interview-top .info .des h3 {
    margin-top: -40px;
    margin-left: -30px;
    font-size: 30px;
    line-height: 120%;
  }
  body.page-template-interview .interview-top .info .des h3 .emply, body.page-template-interview-2 .interview-top .info .des h3 .emply {
    padding: 18px 10px;
  }
  body.page-template-interview .interview-top .info .des p, body.page-template-interview-2 .interview-top .info .des p {
    font-weight: 500;
    font-size: 16px;
  }
  body.page-template-interview .interview-content, body.page-template-interview-2 .interview-content {
    font-weight: 500;
    letter-spacing: 0;
  }
  body.page-template-interview .interview-content p, body.page-template-interview-2 .interview-content p {
    font-size: 16px;
    letter-spacing: 0;
  }
}
@media screen and (min-width: 768px) {
  body.page-template-interview .interview-top .info .des h3 {
    font-size: 28px;
  }
}
body.page-template-career .career-top {
  align-items: flex-start;
}
body.page-template-career .career-top .shape {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 72%;
}
body.page-template-career .career-top .info .des {
  position: relative;
  z-index: 10;
  margin-top: 180px;
}
body.page-template-career .career-top .featured.on-pc {
  position: relative;
  z-index: 10;
}
body.page-template-career .career-top .featured.on-pc .image-fit img {
  clip-path: polygon(30% 0px, 100% 0px, 100% 100%, 0px 100%, 0px 40%);
}
body.page-template-career .career-top .featured.on-pc .image-fit::after {
  display: none;
}
@media screen and (max-width: 767px) {
  body.page-template-career .career-top {
    min-height: unset;
    padding-bottom: 25px;
  }
  body.page-template-career .career-top .sp-featured {
    position: relative;
    z-index: 10;
  }
  body.page-template-career .career-top .sp-featured img {
    height: 60vw;
    min-height: 300px;
  }
  body.page-template-career .career-top .info {
    padding-left: 30px;
  }
  body.page-template-career .career-top .info .des {
    margin-top: -29px;
  }
  body.page-template-career .career-top .info .des h3 {
    font-size: 24px;
    line-height: 100%;
  }
  body.page-template-career .career-top .info .des h3 span {
    padding: 18px 10px;
  }
}
body.page-template-career .career-content p {
  letter-spacing: 0.01em;
}
body.page-template-career .career-content p img {
  display: flex;
  margin: 0 auto;
}
body.page-template-career .career-content p strong {
  font-size: 125%;
}
@media screen and (max-width: 767px) {
  body.page-template-career .career-content {
    padding-top: 0;
    font-weight: 500;
    letter-spacing: 0;
  }
  body.page-template-career .career-content p {
    font-size: 16px;
    letter-spacing: 0;
  }
  body.page-template-career .career-content p strong {
    font-size: 114%;
  }
  body.page-template-career .career-content h3 {
    margin-bottom: 0;
  }
}
body.page-template-career .career-value .box-info .list .item {
  width: 100%;
  padding: 0 10px 67px;
}
body.page-template-career .career-value .box-info .list .item .it-box {
  max-width: 100%;
}
body.page-template-recruit {
  overflow: auto;
}
body.page-template-recruit .page-top .featured.on-pc {
  padding: 0;
}
body.page-template-recruit .page-top .featured.on-pc .image-fit {
  max-height: 508px;
}
body.page-template-recruit .page-top .featured.on-pc .image-fit::after {
  display: none;
}
body.page-template-recruit .page-top .featured.on-pc .image-fit img {
  object-position: center;
  clip-path: polygon(96px 0, 100% 0, 100% 100%, 0 100%, 0 186px);
}
body.page-template-recruit .jobs-table {
  width: 900px;
}
body.page-template-recruit .jobs-table tbody tr th,
body.page-template-recruit .jobs-table tbody tr td {
  padding: 30px 0;
  font-size: 20px;
  line-height: 175%;
  letter-spacing: 0;
  border-bottom: 1px solid #a3b5c3;
}
body.page-template-recruit .jobs-table tbody tr th {
  width: 300px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: left;
  vertical-align: top;
}
body.page-template-recruit .jobs-table tbody tr td {
  padding-left: 10px;
  font-weight: 400;
}
body.page-template-recruit .jobs-table tbody tr:last-child th,
body.page-template-recruit .jobs-table tbody tr:last-child td {
  border-bottom: 0;
}
body.page-template-recruit .jobs-table-wrap {
  padding: 20px 0 120px;
}
@media screen and (max-width: 767px) {
  body.page-template-recruit .page-top .info .des {
    font-weight: 500;
  }
  body.page-template-recruit .page-top .info .des p {
    font-size: 16px;
  }
  body.page-template-recruit .jobs-table {
    width: 100%;
  }
  body.page-template-recruit .jobs-table tbody tr {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 20px 0;
    border-bottom: 1px solid #a3b5c3;
  }
  body.page-template-recruit .jobs-table tbody tr th,
  body.page-template-recruit .jobs-table tbody tr td {
    padding: 0 !important;
    font-size: 18px;
    border: 0;
  }
  body.page-template-recruit .jobs-table-wrap {
    padding: 10px 0 80px;
  }
}
body.page-template-default .entry-main.message .message-top {
  padding-bottom: 26px;
}
body.page-template-default .entry-main.message .message-top .line1,
body.page-template-default .entry-main.message .message-top .line2 {
  z-index: 0;
}
body.page-template-default .entry-main.message .message-top .info {
  width: 100%;
  padding-right: calc((100% - 1000px) / 2);
}
body.page-template-default .entry-main.message .message-top .info .big-title h1 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}
body.page-template-default .entry-main.message .message-top .info .des {
  width: 850px;
  max-width: 100%;
  margin: 120px auto 0;
}
body.page-template-default .entry-main.message .message-top .info .des h3 {
  margin-bottom: 4px;
  font-size: 25px;
  line-height: 1;
}
body.page-template-default .entry-main.message .message-top .info .des h3 span {
  padding: 26px 16px;
  background: linear-gradient(87.32deg, rgb(190, 0, 23) 0px, rgb(255, 0, 44) 100%);
}
body.page-template-default .entry-main.message .message-top .info .des p {
  margin-top: 80px;
  padding-right: 0;
  font-size: 22px;
  letter-spacing: 0.01em;
  line-height: 175%;
}
@media screen and (max-width: 767px) {
  body.page-template-default .entry-main.message .message-top {
    font-size: 40px;
  }
  body.page-template-default .entry-main.message .message-top .info {
    padding-left: 30px;
    padding-bottom: 0;
  }
  body.page-template-default .entry-main.message .message-top .info .big-title h1 {
    font-size: 40px;
  }
  body.page-template-default .entry-main.message .message-top .info .des {
    margin-top: 60px;
    margin-left: -30px;
  }
  body.page-template-default .entry-main.message .message-top .info .des h3 {
    font-size: 22px;
    line-height: 1.2;
  }
  body.page-template-default .entry-main.message .message-top .info .des h3 .emply {
    padding: 18px 10px;
  }
  body.page-template-default .entry-main.message .message-top .info .des p {
    margin-top: 50px;
    font-weight: 500;
    font-size: 16px;
  }
}
body.page-template-default .entry-main.message .business-content .business-item {
  padding-top: 90px;
  margin-bottom: 0;
}
body.page-template-default .entry-main.message .business-content .business-item .info .des h3 {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 175%;
}
body.page-template-default .entry-main.message .business-content .business-item .info .des h3 .emply {
  display: inline-block;
  padding: 8px 12px;
  margin-bottom: 12px;
  color: white;
  background-color: #2b2d42;
}
body.page-template-default .entry-main.message .business-content .business-item .info .des h3 .emply:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  body.page-template-default .entry-main.message .business-content .business-item .info .des h3 {
    font-size: 16px;
  }
  body.page-template-default .entry-main.message .business-content .business-item .info .des p {
    font-size: 16px;
  }
}
body.page-template-default .entry-main.message .recruit {
  padding-top: 120px;
}
body.page-template-default .entry-main.message .recruit .bottom .item .featured {
  object-position: bottom;
}
@media screen and (max-width: 767px) {
  body.page-template-default .entry-main.message .recruit {
    padding-top: 60px;
  }
  body.page-template-default .entry-main.message .recruit::before {
    display: none;
  }
}

.site-open body.home #header {
  transition-delay: 2s;
}
.site-open body.home .banner-home-main .line1,
.site-open body.home .banner-home-main .line2 {
  transform: rotate(108deg) scale(1, 1);
}

.dc-txt.--txt1 {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 2px solid #000000;
}
.dc-txt.--txt1 .dc-txt1__txt {
  font-weight: 700;
  font-size: 18px;
  line-height: 150%;
  letter-spacing: 0em;
}
.dc-txt.--txt1 .dc-txt1__txt p {
  font-weight: 700;
  font-size: 18px;
  line-height: 150%;
  letter-spacing: 0em;
}
.dc-txt.--txt1 .dc-txt1__txt p:last-child {
  margin-bottom: 0;
}
.dc-txt.--txt1-no-border {
  padding-top: 0;
  border-top: 0;
}
.dc-txt.--txt1-large {
  align-items: flex-end;
  gap: 50px;
}
.dc-txt.--txt1-large .dc-txt1__txt {
  font-weight: 700;
  font-size: 20px;
  line-height: 200%;
  letter-spacing: 0;
}
.dc-txt.--txt1-large .dc-txt1__txt p {
  font-weight: 700;
  font-size: 20px;
  line-height: 200%;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .dc-txt.--txt1 {
    flex-direction: column;
    gap: 20px;
    padding: 20px 10px 0;
    margin-top: 20px;
    border-top-width: 1px;
  }
  .dc-txt.--txt1 .dc-txt1__txt {
    font-size: 16px;
    line-height: 180%;
    letter-spacing: 0em;
  }
  .dc-txt.--txt1 .dc-txt1__btn {
    margin-left: auto;
  }
  .dc-txt.--txt1-large {
    margin-top: 0;
  }
  .dc-txt.--txt1-large .dc-txt1__txt {
    font-size: 16px;
  }
  .dc-txt.--txt1-large .dc-txt1__txt p {
    font-size: 16px;
  }
}