/*
** .hero-header
*/

.hero {
  position: relative;
  display: flex;
  min-height: calc(498 * 100vw / var(--standard-width));
}

#animation-bg {
  width: 100%;
}

#animation-overlay,
#animation-overlay canvas {
  position: absolute;
  top: 0;
  left: 0;
  z-index: var(--z-index-low);
  width: 100% !important;
  height: auto !important;
}

#dom-overlay {
  display: none;
}


/*
** .main
*/

/*
** #service
** #possession
*/

#service,
#possession {
  background-size: 100%;
  background-repeat: no-repeat;
}

#service {
  background-image: url(../image/home/bg_service@sm.jpg);
  background-position: center bottom;
}

#possession {
  background-image: url(../image/home/bg_possession@sm.jpg);
  background-position: center top;
}

.service__inner,
.possession__inner {
  position: relative;
  padding-top: calc(60 * 100vw / var(--standard-width));
  padding-bottom: calc(60 * 100vw / var(--standard-width));
}

.possession__inner {
  overflow-x: hidden;
  overflow-y: visible;
}

.service__inner::before,
.possession__inner::before {
  content: '';
  position: absolute;
  z-index: 0;
  display: block;
  background-color: var(--black);
}

.service__inner::before {
  top: 0;
  left: 0;
  width: calc(135 * 100vw / var(--standard-width));
  height: calc(405 * 100vw / var(--standard-width));
  clip-path: polygon(0 0, 0 100%, 100% 0);
}

.possession__inner::before {
  top: calc(60 * 100vw / var(--standard-width));
  right: calc(-82 * 100vw / var(--standard-width));
  width: calc(279.97 * 100vw / var(--standard-width));
  height: calc(333 * 100vw / var(--standard-width));
  clip-path: polygon(40% 0, 100% 0%, 60% 100%, 0% 100%);
}

.service__images,
.possession__images {
  position: relative;
  padding-bottom: calc(75 * 100vw / var(--standard-width));
}

.service__images {
  margin-right: calc(30 * 100vw / var(--standard-width));
}

.possession__images {
  margin-left: calc(30 * 100vw / var(--standard-width));
  margin-bottom: calc(10 * 100vw / var(--standard-width));
}

.service__deco,
.possession__deco {
  position: absolute;
  bottom: 0;
  z-index: var(--z-index-low);
  width: calc(275 * 100vw / var(--standard-width));
  height: calc(183 * 100vw / var(--standard-width));
}

.service__deco {
  right: calc(-20 * 100vw / var(--standard-width));
}

.possession__deco {
  left: calc(-20 * 100vw / var(--standard-width));
}

.service__deco img,
.possession__deco img {
  position: absolute;
  top: 0;
  left: 0;
}

.service__head,
.possession__head {
  font-weight: 700;
  font-style: italic;
  line-height: 1;
  margin-left: calc(-17 * 100vw / var(--standard-width));
}

.service__head {
  font-size: calc(60 / var(--standard-font-size) * 1em);
}

.possession__head {
  font-size: calc(48 / var(--standard-font-size) * 1em);
  color: var(--dark);
  letter-spacing: -0.05em;
  white-space: nowrap;
}

.service__lead,
.possession__lead {
  font-size: calc(22 / var(--standard-font-size) * 1em);
  font-weight: 700;
  color: #fff;
  line-height: 1;
  margin-bottom: calc(20 * 100vw / var(--standard-width));
}

.service__lead {
  margin-top: calc(-12.5 * 100vw / var(--standard-width));
}

.possession__lead {
  margin-top: calc(-9 * 100vw / var(--standard-width));
}

.service__lead span,
.possession__lead span {
  display: inline-block;
  padding: calc(10 * 100vw / var(--standard-width));
}

.service__lead span::before {
  background-color: var(--dark);
}

.possession__lead span::before {
  background-color: var(--black);
}

.service__lead span + span,
.possession__lead span + span {
  margin-top: calc(10 * 100vw / var(--standard-width));
}

.service__body,
.possession__body {
  font-weight: 500;
  margin-bottom: calc(20 * 100vw / var(--standard-width));
}


/*
** #info
*/

#info {
  background-image: url(../image/home/bg_info.jpg);
  background-size: 100%;
  background-position: center bottom;
  background-repeat: no-repeat;
  padding-top: calc(30 * 100vw / var(--standard-width));
  padding-bottom: calc(90 * 100vw / var(--standard-width));
}

.info__contents {
  margin-bottom: calc(30 * 100vw / var(--standard-width));
}

.info__list {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
}

.info__item {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: calc(5 * 100vw / var(--standard-width));
  line-height: 1.25;
  border-bottom: 1px solid var(--gray);
  padding-top: calc(15 * 100vw / var(--standard-width));
  padding-bottom: calc(15 * 100vw / var(--standard-width));
}

.info__item-date {
  font-size: calc(13 / var(--standard-font-size) * 1em);
  font-weight: 700;
  color: var(--main);
}

.info__item-title {
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  max-height: calc(2em * 1.25);  /* ブラウザがサポートしていない場合のフェールセーフ */
}

.info__archive-link a {
  margin-left: auto;
  margin-right: auto;
}


/*
** #company
*/

#company {
  background-image: url(../image/home/bg_company@sm.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding-top: calc(60 * 100vw / var(--standard-width));
  padding-bottom: calc(90 * 100vw / var(--standard-width));
}

.campany__inner {
  color: #fff;
}

.company__lead {
  font-size: calc(25 / var(--standard-font-size) * 1em);
  font-weight: 700;
  text-align: center;
  text-shadow: 0 0 calc(6 * 100vw / var(--standard-width)) rgba(255, 255, 255, 0.75);
  margin-bottom: calc(30 * 100vw / var(--standard-width));
}

.company__lead span {
  display: inline-block;
}

.company__logo {
  width: 100%;
  margin-bottom: calc(30 * 100vw / var(--standard-width));
}

.company__page-link a {
  margin-left: auto;
  margin-right: auto;
}


/*
** #recruit
*/

#recruit {
  position: relative;
  z-index: 0;
  background-image: url(../image/common/catch_recruit.png), url(../image/common/bg_recruit.jpg);
  background-size: 100%;
  background-position: center top calc(15 * 100vw / var(--standard-width)), center top;
  background-repeat: no-repeat, repeat;
  clip-path: polygon(0 calc(35 * 100vw / var(--standard-width)), 100% 0, 100% 100%, 0% 100%);
  padding-top: calc(35 * 100vw / var(--standard-width));
  margin-top: calc(-35 * 100vw / var(--standard-width));
}

#recruit::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100%;
  height: calc(35 * 100vw / var(--standard-width));
  background-color: var(--black);
  clip-path: polygon(0 100%, 100% 100%, 100% 0);
}

.recruit__head {
  margin-right: calc(22 * 100vw / var(--standard-width));
  margin-bottom: calc(20 * 100vw / var(--standard-width));
}

.recruit__page-link {
  margin-bottom: calc(10 * 100vw / var(--standard-width));
}

.recruit__page-link a {
  margin-left: auto;
  margin-right: auto;
}