@charset "utf-8";

/* ↓↓↓ common ↓↓↓ */
* {
  margin: 0;
  box-sizing: border-box;
}

.dir-under .wrap {
  position: relative;
  background: url(../images/main-under-bg.jpg) repeat-y;
  background-size: 100% auto;
  background-position: top center;
}

.dir-under .wrap::before {
  content: '';
  position: absolute;
  translate: -50% 0;
  top: 0;
  left: 50%;
  max-width: 1280px;
  width: 100%;
  height: 100%;
  background: url(../images/deco-under-bg.png) repeat-y;
  background-size: 100% auto;
}

@media screen and (max-width: 768px) {
  .dir-under .wrap::before {
    background: url(../images/deco-under-bg_sp.png) repeat-y;
    background-size: 100% auto;
  }
}

.title-group {
  position: relative;
}

.title-group .deco01 {
  position: absolute;
  width: 106px;
  bottom: -10px;
  left: 560px;
}

@media screen and (max-width: 768px) {
  .title-group .deco01 {
    width: 58px;
    top: 0;
    bottom: initial;
    left: initial;
    right: 20px;
  }
}

.title-group .page-title {
  position: relative;
  font-size: clamp(5rem, calc(64/1280*100vw), 6.4rem);
  font-weight: 400;
  font-family: var(--rammetto);
  letter-spacing: 0.048em;
  color: #fff;
  -webkit-text-stroke: 2px #000;
  filter: drop-shadow(8px 8px 0 #55D6C2);
  padding-bottom: 8px;
  margin: 0;
  overflow: hidden;
  opacity: 0;
}

@media screen and (max-width: 768px) {
  .title-group .page-title {
    text-align: center;
    font-size: 4rem;
  }
}

.title-group .page-title span {
  translate: 0 200%;
  display: inline-block;
}

.title-group .sub-title {
  position: relative;
  display: block;
  width: max-content;
  font-size: 1.4rem;
  font-weight: 700;
  font-family: var(--zenKakuAntique);
  text-align: center;
  line-height: 1;
  border: 2px solid #000;
  border-radius: 40px;
  padding: 11px 30px;
  margin: 0 0 20px;
  background-color: #fff;
  z-index: 0;
}

@media screen and (max-width: 768px) {
  .title-group .sub-title {
    margin: 0 auto 20px;
  }
}

.title-group .sub-title::before {
  content: '';
  position: absolute;
  translate: 0 100%;
  bottom: 0;
  left: 35px;
  width: 22px;
  height: 15px;
  clip-path: polygon(20% 0, 0% 100%, 100% 0);
  background-color: #000;
}

.title-group .sub-title::after {
  content: '';
  position: absolute;
  translate: 0 100%;
  bottom: 1px;
  left: 38px;
  width: 18px;
  height: 12px;
  clip-path: polygon(20% 0, 0% 100%, 100% 0);
  background-color: #fff;
}

.dir-under .text {
  text-align: justify;
  font-size: 1.6rem;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .dir-under .text {
    font-size: 1.4rem;
  }
}
/* ↑↑↑ common ↑↑↑ */

/* ↓↓↓ fv-area ↓↓↓ */
.fv-area {
  position: relative;
  max-width: calc(1080px + 70px * 2);
  margin: 0 auto;
}

.fv-area .inner {
  padding: 42px 70px 0;
}

@media screen and (max-width: 768px) {
  .fv-area .inner {
    padding: 37px 15px 0;
  }
}
/* ↑↑↑ fv-area ↑↑↑ */

/* ↓↓↓ catch-area ↓↓↓ */
.catch-area {
  position: relative;
  max-width: calc(1080px + 70px * 2);
  margin: 72px auto 0;
}

@media (max-width: 768px) {
  .catch-area {
    margin: 24px auto 0;
  }
}

.catch-area .inner {
  position: relative;
  padding: 0 70px;
  z-index: 1;
}

@media (max-width: 768px) {
  .catch-area .inner {
    padding: 0 10px;
  }
}

.catch-area .image {
  border-radius: 100px;
  overflow: hidden;
}

@media (max-width: 768px) {
  .catch-area .image {
    width: calc(100% - 20px * 2);
    margin: 0 auto;
    border-radius: 50px;
  }
}

.catch-area .deco01 {
  position: absolute;
  transform: rotateY(180deg);
  top: 56%;
  left: 20px;
  width: 95px;
}

@media (max-width: 768px) {
  .catch-area .deco01 {
    top: 33%;
    left: -6px;
    width: 70px;
  }
}

.catch-area .deco02 {
  position: absolute;
  bottom: -60px;
  right: 20px;
  width: 95px;
}

@media (max-width: 768px) {
  .catch-area .deco02 {
    bottom: -80px;
    width: 55px;
  }
}

.catch-area .btn-group {
  padding: 94px 0 74px;
}

@media (max-width: 768px) {
  .catch-area .btn-group {
    padding: 34px 0 40px;
  }
}

.catch-area .apply-btn {
  position: relative;
  display: grid;
  place-content: center;
  width: 373px;
  height: 75px;
  margin: 0 auto;
  border-radius: 64px;
  padding: 0 64px 0 30px;
  border: 2px solid #000;
  background-color: #F49097;
  box-shadow: 6px 6px 0 #000;
  transition: box-shadow ease .3s, translate ease .3s;
  z-index: 1;
}

@media (min-width: 769px) {
  .catch-area .apply-btn:hover {
    box-shadow: 0 0 0 #000;
    translate: 6px 6px;
  }
}

@media (max-width: 768px) {
  .catch-area .apply-btn {
    width: 280px;
    height: 57px;
    padding: 0 60px 0 30px;
  }
}

.catch-area .apply-btn .link-txt {
  text-align: center;
  font-family: var(--zenKakuAntique);
  font-size: 2.1rem;
  font-weight: 700;
  color: #fff;
}

@media (max-width: 768px) {
  .catch-area .apply-btn .link-txt {
    font-size: 1.6rem;
  }
}

.catch-area .apply-btn .arrow {
  position: absolute;
  translate: 0 -50%;
  top: 50%;
  right: 0;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #000;
  background-color: #F5E960;
}

@media (max-width: 768px) {
  .catch-area .apply-btn .arrow {
    width: 57px;
    height: 57px;
  }
}

.catch-area .apply-btn .arrow::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 50%;
  scale: 0;
  transition: scale ease .3s;
}

@media (min-width: 769px) {
  .catch-area .apply-btn:hover .arrow::before {
    scale: 1;
  }
}

.catch-area .apply-btn .arrow img {
  position: relative;
  width: 13px;
  height: 8px;
  z-index: 1;
}

.catch-area .catch-title {
  text-align: center;
  font-size: 3.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.3;
  margin-bottom: 30px;
}

@media (max-width: 768px) {
  .catch-area .catch-title {
    font-size: 2.2rem;
    margin-bottom: 16px;
  }
}

.catch-area .catch-textgroup {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2.5;
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {
  .catch-area .catch-textgroup {
    font-size: 1.4rem;
    letter-spacing: 0.01em;
  }
}

@media (max-width: 1100px) {
  .catch-area .catch-text .-pc {
    display: none;
  }

  .catch-area .catch-text .-sp {
    display: block;
  }
}
/* ↑↑↑ catch-area ↑↑↑ */

/* ↓↓↓ culture-area ↓↓↓ */
.culture-area {
  position: relative;
  max-width: calc(1080px + 70px* 2);
  margin: 110px auto 0;
}

@media (max-width: 768px) {
  .culture-area {
    margin: 66px auto 0;
  }
}

.culture-area .inner {
  padding: 0 70px;
}

@media (max-width: 768px) {
  .culture-area .inner {
    padding: 0 32px;
  } 
}

.culture-area .culture-block {
  display: flex;
  gap: 28px;
}

@media (max-width: 768px) {
  .culture-area .culture-block {
    position: relative;
    display: block;
    max-width: 500px;
    margin: 0 auto;
  }  
}

.culture-area .culture-block .text-wrap {
  max-width: 500px;
}

@media (max-width: 768px) {
  .culture-area .culture-block .text-wrap {
    position: relative;
    max-width: initial;
  } 
}

.culture-area .culture-block .text-wrap .text {
  margin-top: 20px;
}

@media (max-width: 768px) {
  .culture-area .culture-block .text-wrap .text {
    padding-top: min(340px, 60vw);
  }
}

.culture-area .culture-block .image {
  min-width: 260px;
  height: max-content;
  border-radius: 32px;
  overflow: hidden;
}

@media (max-width: 768px) {
  .culture-area .culture-block .image {
    position: absolute;
    top: 135px;
    left: 0;
    min-width: initial;
    width: 100%;
    border-radius: 24px;
  }
}
/* ↑↑↑ culture-area ↑↑↑ */

/* ↓↓↓ project-area ↓↓↓ */
.project-area {
  position: relative;
  max-width: calc(1080px + 70px* 2);
  margin: 110px auto 0;
}

@media (max-width: 768px) {
  .project-area {
    margin: 66px auto 0;
  }
}

.project-area .inner {
  padding: 0 70px;
}

@media (max-width: 768px) {
  .project-area .inner {
    padding: 0 32px;
  } 
}

.project-area .title-group {
  text-align: center;
}

.project-area .title-group .sub-title {
  margin: 0 auto 20px;
}

.project-area .project-block {
  position: relative;
  counter-reset: listnum;
}

@media (max-width: 768px) {
  .project-area .project-block {
    max-width: 500px;
    margin: 0 auto;
  }
}

.project-area .deco01 {
  position: absolute;
  translate: 0 -100%;
  top: 0;
  left: 0;
  width: 144px;
}

@media (max-width: 768px) {
  .project-area .deco01 {
    left: -20px;
    width: 60px;
  }
}

.project-area .project-box {
  position: relative;
  display: flex;
  gap: 38px;
  border: 2px solid #231F20;
  border-radius: 30px;
  background-color: #fff;
  padding: 55px 58px;
  margin-top: 20px;

}

@media (max-width: 768px) {
  .project-area .project-box {
    flex-direction: column;
    gap: 18px;
    padding: 34px 24px;
    margin-top: 16px;
  }

  .project-area .project-box::before {
    counter-increment: listnum;
    content: counter(listnum, decimal-leading-zero);
    position: absolute;
    top: 10px;
    left: 15px;
    font-family: var(--rammetto);
    font-size: 3.6rem;
    letter-spacing: 0.048em;
    line-height: 1;
    padding-right: 24px;
    color: #fff;
    -webkit-text-stroke: 1px #55D6C2;
  }
  
}

.project-area .project-box:has(.image) .text-wrap {
  max-width: 680px;
}

.project-area .project-box .theme {
  position: relative;
  display: flex;
  align-items: center;
  font-size: clamp(2rem, calc(24 / 1280* 100vw), 2.4rem);
  font-weight: 700;
  padding-bottom: 14px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .project-area .project-box .theme {
    text-align: center;
    font-size: 1.8rem;
  }
}

.project-area .project-box .theme::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(to right, #000 2px, transparent 2px);
  background-size: 6px 2px;
  bottom: 0;
  left: 0;
}

.project-area .project-box .theme .num {
  font-family: var(--rammetto);
  font-size: min(5.2rem, calc(52 / 1280* 100vw));
  line-height: 1;
  letter-spacing: 0.048em;
  padding-right: 24px;
  color: #fff;
  -webkit-text-stroke: 1px #55D6C2;
}

@media (max-width: 768px) {
  .project-area .project-box .theme .num {
    display: none;
  }

  .project-area .project-box .theme .txt {
    position: relative;
    display: block;
    margin: 0 auto;
    letter-spacing: 0.02em;
    z-index: 1;
  }
}

.project-area .project-box .image {
  min-width: 160px;
}
/* ↑↑↑ project-area ↑↑↑ */

/* ↓↓↓ wlb-area ↓↓↓ */
.wlb-area {
  position: relative;
  max-width: calc(1080px + 70px* 2);
  margin: 86px auto 0;
}

@media (max-width: 768px) {
  .wlb-area {
    margin: 66px auto 0;
  }
}

.wlb-area .inner {
  padding: 0 70px;
}

@media (max-width: 768px) {
  .wlb-area .inner {
    padding: 0;
  } 
}

.wlb-area .title-group {
  text-align: center;
}

.wlb-area .title-group .sub-title {
  margin: 0 auto 20px;
}

.wlb-area .wlb-block {
  position: relative;
}

@media (max-width: 768px) {
  .wlb-area .wlb-block {
    padding: 0 32px;
  }
}

.wlb-area .wlb-block .deco01 {
  position: absolute;
  translate: 0 -100%;
  top: -20px;
  left: -75px;
  width: 101px;
}

@media (max-width: 768px) {
  .wlb-area .wlb-block .deco01 {
    top: -160px;
    left: 10px;
    width: 60px;
  }
}

.wlb-area .text-wrap {
  margin: 20px auto 0;
}

@media (max-width: 768px) {
  .wlb-area .text-wrap {
    max-width: 500px;
  }
}
/* ↑↑↑ wlb-area ↑↑↑ */

/* ↓↓↓ development-area ↓↓↓ */
.development-area {
  position: relative;
  max-width: calc(1080px + 70px* 2);
  margin: 72px auto 0;
}

@media (max-width: 768px) {
  .development-area {
    margin: 66px auto 0;
  }
}

.development-area .inner {
  padding: 0 70px;
}

@media (max-width: 768px) {
  .development-area .inner {
    padding: 0;
  } 
}

.development-area .title-group {
  text-align: center;
}

.development-area .title-group .sub-title {
  margin: 0 auto 20px;
}

.development-area .development-block {
  position: relative;
}

@media (max-width: 768px) {
  .development-area .development-block {
    padding: 0 32px;
  }
}

.development-area .development-block .deco01 {
  position: absolute;
  top: 30px;
  right: 0;
  width: 128px;
  z-index: 1;
}

@media (max-width: 768px) {
  .development-area .development-block .deco01 {
    top: 130px;
    right: 15px;
    width: 70px;
  }
}

.development-area .development-block .deco02 {
  position: absolute;
  transform: rotateY(180deg);
  bottom: 28%;
  left: -75px;
  width: 80px;
}

@media (max-width: 768px) {
  .development-area .development-block .deco02 {
    bottom: 26%;
    left: 0;
    width: 46px;
  }
}

.development-area .text-wrap {
  position: relative;
  margin: 20px auto 0;
  z-index: 1;
}

@media (max-width: 768px) {
  .development-area .text-wrap {
    max-width: 500px;
  }
}

.development-area .text-wrap .text {
  text-align: center;
}

.development-area .text-wrap .attention {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
  text-indent: -1em;
  padding-left: 1em;
}

@media (max-width: 768px) {
  .development-area .text-wrap .text,
  .development-area .text-wrap .attention {
    text-align: justify;
  }

  .development-area .text-wrap .attention {
    font-size: 1.2rem;
  }
}

.development-area .development-list {
  max-width: 933px;
  border: 2px solid #231F20;
  border-radius: 30px;
  background-color: #fff;
  margin: 44px auto 0;
  padding: 42px 55px;
}

@media (max-width: 768px) {
  .development-area .development-list {
    max-width: 500px;
    margin: 24px auto 0;
    padding: 22px 30px;
  }
}

.development-area .development-list .item {
  position: relative;
  max-width: 822px;
  display: flex;
  justify-content: space-between;
  list-style: none;
  margin: 0 auto;
  padding: 30px 0;
}

@media (max-width: 768px) {
  .development-area .development-list .item {
    flex-direction: column;
    padding: 20px 0;
  }
}

.development-area .development-list .item:not(:last-of-type)::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(to right, #000 2px, transparent 2px);
  background-size: 6px 2px;
  bottom: 0;
  left: 0;
}

.development-area .development-list .heading {
  font-size: 1.8rem;
  font-weight: 700;
  min-width: 200px;
  margin-right: 25px;
}

@media (max-width: 768px) {
  .development-area .development-list .heading {
    font-size: 1.6rem;
    min-width: initial;
    margin: 0 0 5px;
  }
}

.development-area .development-list .heading .sub {
  font-size: 1.4rem;
}

@media (max-width: 768px) {
  .development-area .development-list .heading .sub {
    font-size: 1.2rem;
  }
}

.development-area .development-list .text {
  text-align: left;
  width: 450px;
}

@media (max-width: 768px) {
  .development-area .development-list .text {
    width: 100%;
  }
}

.development-area .more-group {
  display: flex;
  justify-content: center;
  gap: 26px;
  margin: 57px auto 0;
}

@media (max-width: 940px) {
  .development-area .more-group {
    flex-direction: column;
    align-items: center;
  }
}

@media (max-width: 768px) {
  .development-area .more-group {
    gap: 20px;
    margin: 30px auto 0;
  }
}

.development-area .interview-btn {
  position: relative;
  display: grid;
  place-content: center;
  width: 373px;
  height: 75px;
  border-radius: 64px;
  padding: 0 64px 0 20px;
  border: 2px solid #000;
  background-color: #fff;
  box-shadow: 6px 6px 0 #000;
  transition: box-shadow ease .3s, translate ease .3s;
  z-index: 1;
}

@media (min-width: 769px) {
  .development-area .interview-btn:hover {
    box-shadow: 0 0 0 #000;
    translate: 6px 6px;
  }
}

@media (max-width: 768px) {
  .development-area .interview-btn {
    width: 280px;
    height: 57px;
    padding: 0 60px 0 20px;
  }
}

.development-area .interview-btn .link-txt {
  text-align: center;
  font-family: var(--zenKakuAntique);
  font-size: 1.6rem;
  font-weight: 700;
  color: #000;
}

@media (max-width: 768px) {
  .development-area .interview-btn .link-txt {
    font-size: 1.4rem;
  }
}

.development-area .interview-btn .arrow {
  position: absolute;
  translate: 0 -50%;
  top: 50%;
  right: 0;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #000;
  background-color: #F5E960;
}

@media (max-width: 768px) {
  .development-area .interview-btn .arrow {
    width: 57px;
    height: 57px;
  }
}

.development-area .interview-btn .arrow::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 50%;
  scale: 0;
  transition: scale ease .3s;
}

@media (min-width: 769px) {
  .development-area .interview-btn:hover .arrow::before {
    scale: 1;
  }
}

.development-area .interview-btn .arrow img {
  position: relative;
  width: 13px;
  height: 8px;
  z-index: 1;
}

.development-area .apply-btn {
  position: relative;
  display: grid;
  place-content: center;
  width: 373px;
  height: 75px;
  border-radius: 64px;
  padding: 0 64px 0 30px;
  border: 2px solid #000;
  background-color: #F49097;
  box-shadow: 6px 6px 0 #000;
  transition: box-shadow ease .3s, translate ease .3s;
  z-index: 1;
}

@media (min-width: 769px) {
  .development-area .apply-btn:hover {
    box-shadow: 0 0 0 #000;
    translate: 6px 6px;
  }
}

@media (max-width: 768px) {
  .development-area .apply-btn {
    width: 280px;
    height: 57px;
    padding: 0 60px 0 30px;
  }
}

.development-area .apply-btn .link-txt {
  text-align: center;
  font-family: var(--zenKakuAntique);
  font-size: 2.1rem;
  font-weight: 700;
  color: #fff;
}

@media (max-width: 768px) {
  .development-area .apply-btn .link-txt {
    font-size: 1.6rem;
  }
}

.development-area .apply-btn .arrow {
  position: absolute;
  translate: 0 -50%;
  top: 50%;
  right: 0;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #000;
  background-color: #F5E960;
}

@media (max-width: 768px) {
  .development-area .apply-btn .arrow {
    width: 57px;
    height: 57px;
  }
}

.development-area .apply-btn .arrow::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 50%;
  scale: 0;
  transition: scale ease .3s;
}

@media (min-width: 769px) {
  .development-area .apply-btn:hover .arrow::before {
    scale: 1;
  }
}

.development-area .apply-btn .arrow img {
  position: relative;
  width: 13px;
  height: 8px;
  z-index: 1;
}
/* ↑↑↑ development-area ↑↑↑ */