@charset "UTF-8";
/* CSS Document */
/*------------------------------
google fonts
------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Murecho:wght@500&display=swap");
/*------------------------------
	初期設定
------------------------------*/
/* 2023/10/24 ver.1.11.1 GitHub */
html, body {
  background-color: #fff;
}

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
  -moz-tab-size: 2;
    -o-tab-size: 2;
       tab-size: 2;
  scrollbar-gutter: stable;
}

:where(html:has(dialog:modal[open])) {
  overflow: clip;
}

:where(body) {
  line-height: 1.5;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

:where(button) {
  all: unset;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(a) {
  color: inherit;
  text-underline-offset: 0.2ex;
  text-decoration: none;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg, video) {
  width: 100%;
  max-inline-size: 100%;
  block-size: auto;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
  font-size: 1.6rem;
}

:where(h2, h3, h4, h5, h6) {
  font-weight: 400;
}

:where(hr) {
  border: none;
  -webkit-border-before: 1px solid;
          border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(dialog, [popover]) {
  border: none;
  background: none;
  color: inherit;
  inset: unset;
  max-width: unset;
  max-height: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none !important;
}

:where(:focus-visible) {
  outline: 3px solid CanvasText;
  box-shadow: 0 0 0 5px Canvas;
  outline-offset: 1px;
}

:where(:focus-visible, :target) {
  scroll-margin-block: 8vh;
}

:where(.visually-hidden:not(:focus-within, :active)) {
  -webkit-clip-path: inset(50%) !important;
          clip-path: inset(50%) !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  border: 0 !important;
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
}

/*------------------------------
	ブラウザ対応
------------------------------*/
/* 2023/9/18(A (more) Modern CSS Reset) */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  -webkit-margin-after: 0;
          margin-block-end: 0;
}

ul[role=list], ol[role=list] {
  list-style: none;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

h1, h2, h3, h4, button, input, label {
  line-height: 1.1;
}

a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
  color: currentColor;
}

img, picture {
  max-width: 100%;
  width: 100%;
  display: block;
  font-size: 1.6rem;
}

input, button, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

@media print {
  body {
    background-color: #fff !important;
  }
  a, a:link, a:visited, a:hover {
    text-decoration: none !important;
  }
  #tabLink {
    display: none !important;
  }
}
/*------------------------------
	ブレイクポイント
------------------------------*/
html {
  font-size: clamp(7px, 0.625vw, 10px);
}

@media screen and (max-width: 767px) {
  html {
    font-size: max(2.6666666667vw, 8px);
  }
}
/* Safari用のハックは、Chromeに適用されないようにする */
@supports (-webkit-touch-callout: none) {
  body {
    /* Safari用のハック */
    height: -webkit-fill-available;
  }
}
/*------------------------------
	全体設定
------------------------------*/
html,
body {
  -webkit-text-size-adjust: none;
}

body {
  font-size: 1.6rem;
  line-height: 1.1;
  font-family: "Lato", "Noto Sans JP", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "Verdana", "ＭＳ Ｐゴシック", "sans-serif";
  color: #000000;
  text-align: left;
}

/*------------------------------*/
.spmask {
  display: block;
}

.sponly {
  display: none;
}

@media (max-width: 767px) {
  .spmask {
    display: none;
  }
  .sponly {
    display: block;
  }
}
/*------------------------------*/
:root {
  --external: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20,11a1,1,0,0,0-1,1v6a1,1,0,0,1-1,1H6a1,1,0,0,1-1-1V6A1,1,0,0,1,6,5h6a1,1,0,0,0,0-2H6A3,3,0,0,0,3,6V18a3,3,0,0,0,3,3H18a3,3,0,0,0,3-3V12A1,1,0,0,0,20,11Z"/><path d="M16,5h1.58l-6.29,6.28a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L19,6.42V8a1,1,0,0,0,1,1h0a1,1,0,0,0,1-1V4a1,1,0,0,0-1-1L16,3h0a1,1,0,0,0,0,2Z"/></svg>');
  --arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path style="fill: none; stroke: %23888; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;" d="M7 24 L41 24 L35 18 M41 24 L35 30"/></svg>');
  --main: #008cff;
  --text: #000000;
}

/*------------------------------*/
body:has(#menuWrap.open) {
  overflow: hidden;
}

main,
footer {
  position: relative;
}

body#blue {
  background-color: #e5eef5;
}

/*------------------------------*/
.hoverImage *:has(> img) {
  overflow: hidden;
  position: relative;
}
.hoverImage *:has(> img)::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  left: -100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
  z-index: 2;
}
.hoverImage img {
  transition: 0.8s ease;
}

@media (any-hover: hover) {
  .hoverImage:hover *:has(> img)::before {
    -webkit-animation: hover-image 0.8s cubic-bezier(0, 0.27, 0, 0.77) backwards;
            animation: hover-image 0.8s cubic-bezier(0, 0.27, 0, 0.77) backwards;
  }
  .hoverImage:hover img {
    scale: 1.05;
    opacity: 0.9;
  }
}
@-webkit-keyframes hover-image {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
@keyframes hover-image {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
.hoverArrow {
  width: 1em;
  font-weight: 500;
  aspect-ratio: 1;
  position: relative;
  overflow: hidden;
  display: grid;
  place-content: center;
}
.hoverArrow::before, .hoverArrow::after {
  content: "→";
  padding-inline: 0.1em;
  display: inline-block;
  font-family: "Murecho";
  line-height: 0.9;
  position: absolute;
  translate: 0 0;
}
.hoverArrow::before {
  left: -1em;
}

@media (any-hover: hover) {
  a:has(.hoverArrow):hover .hoverArrow::before, a:has(.hoverArrow):hover .hoverArrow::after {
    -webkit-animation: hover-arrow 0.6s ease backwards;
            animation: hover-arrow 0.6s ease backwards;
  }
}
@-webkit-keyframes hover-arrow {
  0% {
    translate: 0 0;
  }
  100% {
    translate: 1em 0;
  }
}
@keyframes hover-arrow {
  0% {
    translate: 0 0;
  }
  100% {
    translate: 1em 0;
  }
}
/*------------------------------*/
.inner {
  padding-inline: 2rem;
  max-width: calc(1100px + 4rem);
  margin-inline: auto;
}
.inner.narrow {
  max-width: calc(900px + 4rem);
}

.readText {
  font-kerning: normal;
  line-height: 2;
  font-family: "Noto Sans jp", "sans-serif";
  font-size: 1.6rem;
}
@media screen and (max-width: 767px) {
  .readText {
    font-size: 1.3rem;
    line-height: 1.9;
  }
}

/*------------------------------*/
/*------------------------------*/
[data-inview=fadeup] > * {
  --transition-delay: 100ms;
  opacity: 0;
  transform: translate3d(0, 2rem, 0) rotate(0.001deg);
  transition: 1300ms cubic-bezier(0.23, 1, 0.32, 1);
  transition-property: opacity, transform;
}
[data-inview=fadeup] > *:nth-child(1) {
  transition-delay: calc(var(--transition-delay, 200ms) + 140ms);
}
[data-inview=fadeup] > *:nth-child(2) {
  transition-delay: calc(var(--transition-delay, 200ms) + 280ms);
}
[data-inview=fadeup] > *:nth-child(3) {
  transition-delay: calc(var(--transition-delay, 200ms) + 420ms);
}
[data-inview=fadeup] > *:nth-child(4) {
  transition-delay: calc(var(--transition-delay, 200ms) + 560ms);
}
[data-inview=fadeup] > *:nth-child(5) {
  transition-delay: calc(var(--transition-delay, 200ms) + 700ms);
}
[data-inview=fadeup] > *:nth-child(6) {
  transition-delay: calc(var(--transition-delay, 200ms) + 840ms);
}
[data-inview=fadeup] > *:nth-child(7) {
  transition-delay: calc(var(--transition-delay, 200ms) + 980ms);
}
[data-inview=fadeup] > *:nth-child(8) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1120ms);
}
[data-inview=fadeup] > *:nth-child(9) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1260ms);
}
[data-inview=fadeup] > *:nth-child(10) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1400ms);
}
[data-inview=fadeup] > *:nth-child(11) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1540ms);
}
[data-inview=fadeup] > *:nth-child(12) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1680ms);
}
[data-inview=fadeup] > *:nth-child(13) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1820ms);
}
[data-inview=fadeup] > *:nth-child(14) {
  transition-delay: calc(var(--transition-delay, 200ms) + 1960ms);
}
[data-inview=fadeup] > *:nth-child(15) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2100ms);
}
[data-inview=fadeup] > *:nth-child(16) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2240ms);
}
[data-inview=fadeup] > *:nth-child(17) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2380ms);
}
[data-inview=fadeup] > *:nth-child(18) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2520ms);
}
[data-inview=fadeup] > *:nth-child(19) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2660ms);
}
[data-inview=fadeup] > *:nth-child(20) {
  transition-delay: calc(var(--transition-delay, 200ms) + 2800ms);
}

[data-inview=fadeup].is-shown > * {
  opacity: 1;
  transform: translate3d(0, 0, 0) rotate(0.001deg);
}

/*------------------------------*/
/*------------------------------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 8rem;
  padding: 2rem;
  z-index: 1000005;
}
@media screen and (max-width: 767px) {
  header {
    height: 6rem;
    padding-block: 0;
  }
}
header.is-scrolled {
  background-color: #fff;
}
header#scrollColor {
  transition: background-color 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
header .header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 767px) {
  header .header-inner {
    height: 100%;
  }
}
header .header-inner .header-logo {
  display: flex;
  -moz-column-gap: 1.2rem;
       column-gap: 1.2rem;
  align-items: center;
  transition: opacity 0.1s;
}
@media screen and (max-width: 767px) {
  header .header-inner .header-logo {
    -moz-column-gap: 0.8rem;
         column-gap: 0.8rem;
  }
}
header .header-inner .header-logo img {
  width: 13rem;
  translate: 0 -19%;
}
@media screen and (max-width: 767px) {
  header .header-inner .header-logo img {
    width: 9rem;
  }
}
header .header-inner .header-logo p {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  header .header-inner .header-logo p {
    font-size: 0.9rem;
  }
}
@media (any-hover: hover) {
  header .header-inner .header-logo:hover {
    opacity: 0.6;
  }
}
header .header-inner .header-nav {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  header .header-inner .header-nav {
    display: none;
  }
}
header .header-inner .header-nav .nav-wrap {
  display: flex;
  align-items: center;
  margin-right: 4rem;
  -moz-column-gap: 6rem;
       column-gap: 6rem;
}
header .header-inner .header-nav .nav-wrap > a, header .header-inner .header-nav .nav-wrap > div {
  display: inline-block;
  font-weight: 500;
  cursor: pointer;
}
header .header-inner .header-nav .nav-wrap > a p, header .header-inner .header-nav .nav-wrap > div p {
  transition: 0.1s;
  font-size: 1.4rem;
  position: relative;
  z-index: 1;
}
header .header-inner .header-nav .nav-wrap > a.option-btn, header .header-inner .header-nav .nav-wrap > div.option-btn {
  position: relative;
}
header .header-inner .header-nav .nav-wrap > a.option-btn::after, header .header-inner .header-nav .nav-wrap > div.option-btn::after {
  content: "";
  display: block;
  width: 0.8rem;
  height: 0.4rem;
  background-color: var(--main);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  left: calc(50% - 0.4rem);
  top: calc(100% + 0.7rem);
  transition: rotate 0.2s ease, scale 0.2s ease;
}
header .header-inner .header-nav .nav-wrap > a.option-btn .option-wrap, header .header-inner .header-nav .nav-wrap > div.option-btn .option-wrap {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 50%;
  padding: 6.5rem 3.5rem 3rem;
  translate: -50% 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, translate 0.3s ease;
}
header .header-inner .header-nav .nav-wrap > a.option-btn .option-wrap::before, header .header-inner .header-nav .nav-wrap > div.option-btn .option-wrap::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 3.5rem);
  position: absolute;
  bottom: 0;
  left: 0;
  border-radius: 1.6rem;
  background-color: #fff;
  box-shadow: 0 0 2rem -0.2rem rgba(0, 0, 0, 0.1254901961);
}
header .header-inner .header-nav .nav-wrap > a.option-btn .option-wrap .option, header .header-inner .header-nav .nav-wrap > div.option-btn .option-wrap .option {
  white-space: nowrap;
  display: block;
  font-size: 1.4rem;
  position: relative;
  z-index: 1;
  transition: color 0.1s;
}
header .header-inner .header-nav .nav-wrap > a.option-btn .option-wrap .option + .option, header .header-inner .header-nav .nav-wrap > div.option-btn .option-wrap .option + .option {
  margin-top: 2rem;
}
@media (any-hover: hover) {
  header .header-inner .header-nav .nav-wrap > a.option-btn .option-wrap .option:hover, header .header-inner .header-nav .nav-wrap > div.option-btn .option-wrap .option:hover {
    color: var(--main);
  }
}
header .header-inner .header-nav .nav-wrap > a.option-btn:has(.option-wrap.active) > p, header .header-inner .header-nav .nav-wrap > div.option-btn:has(.option-wrap.active) > p {
  color: var(--main);
}
header .header-inner .header-nav .nav-wrap > a.option-btn:has(.option-wrap.active)::after, header .header-inner .header-nav .nav-wrap > div.option-btn:has(.option-wrap.active)::after {
  rotate: 180deg;
  scale: 1.5;
}
header .header-inner .header-nav .nav-wrap > a.option-btn:has(.option-wrap.active) .option-wrap, header .header-inner .header-nav .nav-wrap > div.option-btn:has(.option-wrap.active) .option-wrap {
  pointer-events: auto;
  opacity: 1;
  translate: -50% 0;
}
@media (any-hover: hover) {
  header .header-inner .header-nav .nav-wrap > a:hover > p, header .header-inner .header-nav .nav-wrap > div:hover > p {
    color: var(--main);
  }
  header .header-inner .header-nav .nav-wrap > a:hover::after, header .header-inner .header-nav .nav-wrap > div:hover::after {
    rotate: 180deg;
    scale: 1.5;
  }
  header .header-inner .header-nav .nav-wrap > a:hover .option-wrap, header .header-inner .header-nav .nav-wrap > div:hover .option-wrap {
    pointer-events: auto;
    opacity: 1;
    translate: -50% 0;
  }
}
header .header-inner .header-nav .entry-btn {
  display: grid;
  place-content: center;
  background-color: var(--main);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  padding-inline: 4rem;
  border: 0.1rem solid var(--main);
  height: 4rem;
  transition: 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media (any-hover: hover) {
  header .header-inner .header-nav .entry-btn:hover {
    color: var(--main);
    background-color: #fff;
  }
}
header .header-inner #menuBtn {
  display: none;
  width: 4.4rem;
  aspect-ratio: 1;
  position: relative;
  z-index: 100006;
  cursor: pointer;
  pointer-events: auto;
  translate: -0.5rem 0;
}
@media screen and (max-width: 767px) {
  header .header-inner #menuBtn {
    display: block;
  }
}
header .header-inner #menuBtn .bar {
  height: 2px;
  display: block;
  position: absolute;
  border-radius: 1px;
  width: 100%;
  left: 50%;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  transform-origin: center center;
  background-color: #000;
}
header .header-inner #menuBtn .bar.top {
  top: 36%;
  transform: translateX(-50%);
}
header .header-inner #menuBtn .bar.bottom {
  bottom: 36%;
  transform-origin: right;
  transform: translateX(-50%) scale(0.8, 1);
}
header .header-inner #menuBtn.active .bar {
  background-color: #000;
}
header .header-inner #menuBtn.active .bar.top {
  transform: translateX(-50%) rotate(20deg);
  top: calc(50% - 1px);
}
header .header-inner #menuBtn.active .bar.bottom {
  transform-origin: center;
  transform: translateX(-50%) rotate(-20deg) scale(1, 1);
  bottom: calc(50% - 1px);
}
@media (any-hover: hover) {
  header .header-inner #menuBtn:hover:not(.active) .bar.bottom {
    transform-origin: right;
    transform: translateX(-50%) scale(1, 1);
  }
}

/*------------------------------*/
/*------------------------------*/
#menuWrap {
  --line: #e1e1e1;
  display: none;
  position: fixed;
  z-index: 100000;
  inset: 0;
  height: 100dvh;
  width: 100vw;
  overflow: clip;
  visibility: hidden;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  #menuWrap {
    display: block;
  }
}
#menuWrap.open {
  visibility: visible;
  pointer-events: auto;
}
#menuWrap.open .menu-container {
  opacity: 1;
  transform: translateY(0);
  transition: 0.4s cubic-bezier(0.5, 0.5, 0.5, 1);
}
#menuWrap .menu-container {
  position: relative;
  height: 100%;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto 0;
  opacity: 0;
  background-color: #fff;
  overscroll-behavior: contain;
  transform: translateY(100%);
  transition: 0.5s;
  opacity: 1;
  width: 100%;
}
#menuWrap .menu-container .menu-inner {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-inline: 2rem;
  height: 100%;
  padding-top: 8rem;
  position: relative;
}
#menuWrap .menu-container .menu-inner .menu-nav .nav-wrap .top-btn {
  padding-bottom: 2.5rem;
  display: block;
  border-bottom: 0.1rem solid var(--line);
}
#menuWrap .menu-container .menu-inner .menu-nav .nav-wrap .entry-btn {
  display: grid;
  place-content: center;
  background-color: var(--main);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  height: 5rem;
  margin-top: 2.5rem;
}
#menuWrap .menu-container .menu-inner .menu-nav .nav-wrap .option-wrap {
  padding-block: 2.5rem;
  border-bottom: 0.1rem solid var(--line);
}
#menuWrap .menu-container .menu-inner .menu-nav .nav-wrap .option-wrap p {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--main);
}
#menuWrap .menu-container .menu-inner .menu-nav .nav-wrap .option-wrap .option {
  font-size: 1.3rem;
  margin-top: 2rem;
  display: block;
}
#menuWrap .menu-container .menu-inner .menuHome-copyright {
  padding-block: 5rem 1rem;
}
#menuWrap .menu-container .menu-inner .menuHome-copyright p {
  font-size: 1rem;
  text-align: center;
}

/*------------------------------*/
/*------------------------------*/
footer .footer-recruitment {
  padding-block: 11rem 10rem;
  background: url(../images/common/bg_recruitment.jpg) no-repeat center center/cover;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment {
    padding-block: 5rem;
  }
}
footer .footer-recruitment .inner h2 {
  font-size: 2rem;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.8rem;
       column-gap: 0.8rem;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner h2 {
    font-size: 1.2rem;
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
  }
}
footer .footer-recruitment .inner h2::before, footer .footer-recruitment .inner h2::after {
  content: "";
  height: 0.1rem;
  width: 2.6rem;
  display: block;
  background-color: currentColor;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner h2::before, footer .footer-recruitment .inner h2::after {
    width: 1.2rem;
  }
}
footer .footer-recruitment .inner p.en {
  font-size: 10rem;
  font-weight: 700;
  white-space: nowrap;
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner p.en {
    font-size: 3.6rem;
    margin-top: 0.5rem;
  }
}
footer .footer-recruitment .inner .link-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4.5rem;
  -moz-column-gap: 6rem;
       column-gap: 6rem;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner .link-wrap {
    margin-top: 2.5rem;
    gap: 1.2rem;
    flex-direction: column;
  }
}
footer .footer-recruitment .inner .link-wrap .entry-btn,
footer .footer-recruitment .inner .link-wrap .requirement-btn {
  display: grid;
  place-content: center;
  width: calc(50% - 3rem);
  aspect-ratio: 520/130;
  font-weight: 700;
  transition: 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner .link-wrap .entry-btn,
footer .footer-recruitment .inner .link-wrap .requirement-btn {
    width: 100%;
  }
}
footer .footer-recruitment .inner .link-wrap .entry-btn {
  background-color: #fff;
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner .link-wrap .entry-btn {
    font-size: 2rem;
  }
}
@media (any-hover: hover) {
  footer .footer-recruitment .inner .link-wrap .entry-btn:hover {
    background-color: var(--text);
    color: #fff;
  }
}
footer .footer-recruitment .inner .link-wrap .requirement-btn {
  background-color: var(--text);
  color: #fff;
  font-size: 2.7rem;
}
@media screen and (max-width: 767px) {
  footer .footer-recruitment .inner .link-wrap .requirement-btn {
    font-size: 1.8rem;
  }
}
@media (any-hover: hover) {
  footer .footer-recruitment .inner .link-wrap .requirement-btn:hover {
    background-color: #fff;
    color: var(--text);
  }
}
footer .footer {
  background-color: #fff;
  padding-block: 6rem 2rem;
}
@media screen and (max-width: 767px) {
  footer .footer {
    padding-block: 1rem;
  }
}
footer .footer .footer-inner {
  max-width: 140rem;
  padding-inline: 2rem;
  margin-inline: auto;
}
footer .footer .footer-inner .footer-wrap {
  display: flex;
  -moz-column-gap: 13rem;
       column-gap: 13rem;
}
@media screen and (max-width: 767px) {
  footer .footer .footer-inner .footer-wrap {
    display: none;
  }
}
footer .footer .footer-inner .footer-wrap .logo-wrap {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
footer .footer .footer-inner .footer-wrap .logo-wrap .header-logo {
  transition: opacity 0.1s;
}
footer .footer .footer-inner .footer-wrap .logo-wrap .header-logo img {
  width: 17rem;
}
footer .footer .footer-inner .footer-wrap .logo-wrap .header-logo p {
  font-size: 1.4rem;
  margin-top: 1.2rem;
}
@media (any-hover: hover) {
  footer .footer .footer-inner .footer-wrap .logo-wrap .header-logo:hover {
    opacity: 0.6;
  }
}
footer .footer .footer-inner .footer-wrap .logo-wrap .external {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
  transition: opacity 0.1s;
}
footer .footer .footer-inner .footer-wrap .logo-wrap .external::after {
  content: "";
  display: block;
  width: 1em;
  aspect-ratio: 1;
  background: url(../images/common/external.svg) no-repeat center center/cover;
}
@media (any-hover: hover) {
  footer .footer .footer-inner .footer-wrap .logo-wrap .external:hover {
    opacity: 0.6;
  }
}
footer .footer .footer-inner .footer-wrap .nav-wrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  -moz-column-gap: 5rem;
       column-gap: 5rem;
}
footer .footer .footer-inner .footer-wrap .nav-wrap li p.en {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--main);
  margin-bottom: 0.6rem;
}
footer .footer .footer-inner .footer-wrap .nav-wrap li p.ja {
  font-size: 2.1rem;
  font-weight: 500;
  border-bottom: 0.1rem solid currentColor;
  padding-bottom: 1rem;
  margin-bottom: 2rem;
}
footer .footer .footer-inner .footer-wrap .nav-wrap li a {
  display: block;
  padding-block: 0.2em;
  font-size: 1.4rem;
  transition: color 0.1s;
}
footer .footer .footer-inner .footer-wrap .nav-wrap li a + a {
  margin-top: 1rem;
}
@media (any-hover: hover) {
  footer .footer .footer-inner .footer-wrap .nav-wrap li a:hover {
    color: var(--main);
  }
}
footer .footer .footer-inner .copyright {
  text-align: right;
  font-size: 1.4rem;
  margin-top: 16rem;
}
@media screen and (max-width: 767px) {
  footer .footer .footer-inner .copyright {
    margin-top: 0;
    font-size: 1rem;
  }
}

/*------------------------------*/
/*------------------------------*/
#obj {
  position: fixed;
  z-index: 0;
  width: 100vw;
  height: 100lvh;
  pointer-events: none;
}
#obj .obj-part {
  position: absolute;
  inset: 0;
}
#obj .obj-part.part1 {
  -webkit-animation: obj-part 32s 0s infinite;
          animation: obj-part 32s 0s infinite;
}
#obj .obj-part.part2 {
  -webkit-animation: obj-part 32s -8s infinite;
          animation: obj-part 32s -8s infinite;
}
#obj .obj-part.part3 {
  -webkit-animation: obj-part 32s -16s infinite;
          animation: obj-part 32s -16s infinite;
}
#obj .obj-part.part4 {
  -webkit-animation: obj-part 32s -24s infinite;
          animation: obj-part 32s -24s infinite;
}
#obj .obj-part img {
  position: absolute;
  width: calc(var(--ow) / 16 * 1vw);
  left: calc(var(--ol) / 16 * 1vw);
  top: calc(var(--ot) / 8 * 1vh);
  -webkit-animation: flare-soft 8s ease var(--flare-delay) infinite both;
          animation: flare-soft 8s ease var(--flare-delay) infinite both;
  will-change: opacity;
}
@media screen and (max-width: 767px) {
  #obj .obj-part img {
    width: calc(var(--ow) / 8 * 1vw);
    left: calc(var(--ol) / 16 * 1vw);
    top: calc(var(--ot) / 8 * 1vh);
  }
}

@-webkit-keyframes obj-part {
  0% {
    opacity: 0;
  }
  1%, 25% {
    opacity: 1;
  }
  26%, 100% {
    opacity: 0;
  }
}

@keyframes obj-part {
  0% {
    opacity: 0;
  }
  1%, 25% {
    opacity: 1;
  }
  26%, 100% {
    opacity: 0;
  }
}
@-webkit-keyframes flare-soft {
  0% {
    opacity: 0;
  }
  45%, 55% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes flare-soft {
  0% {
    opacity: 0;
  }
  45%, 55% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
/*------------------------------*/
/*------------------------------*/
.sub-mv-obj {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.sub-mv-obj img {
  opacity: 0;
  transition: opacity 0.8s;
  position: absolute;
  width: calc(var(--ow) / 16 * 1vw);
  left: calc(var(--ol) / 16 * 1vw);
  top: calc(var(--ot) / 8 * 1%);
}
.sub-mv-obj img:nth-child(1) {
  transition-delay: 0s;
}
.sub-mv-obj img:nth-child(2) {
  transition-delay: 50ms;
}
.sub-mv-obj img:nth-child(3) {
  transition-delay: 100ms;
}
.sub-mv-obj img:nth-child(4) {
  transition-delay: 200ms;
}
.sub-mv-obj img:nth-child(5) {
  transition-delay: 250ms;
}
.sub-mv-obj img:nth-child(6) {
  transition-delay: 300ms;
}
.sub-mv-obj img:nth-child(7) {
  transition-delay: 350ms;
}
@media screen and (max-width: 767px) {
  .sub-mv-obj img {
    width: calc(var(--ow) / 8 * 1vw);
    left: calc(var(--ol) / 16 * 1vw);
    top: calc(var(--ot) / 8 * 1%);
  }
}
.sub-mv-obj.is-shown img {
  opacity: 1;
}

/*------------------------------*/
/*------------------------------*/
.notfound {
  position: relative;
  z-index: 1;
  overflow-x: clip;
  margin-bottom: 10rem;
}
@media screen and (max-width: 767px) {
  .notfound {
    margin-bottom: 6rem;
  }
}
.notfound .inner {
  position: relative;
  z-index: 1;
}
.notfound .title {
  width: 100%;
  height: 100svh;
  max-height: 480px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
@media screen and (max-width: 767px) {
  .notfound .title {
    height: auto;
    padding-block: 16rem 6rem;
  }
}
.notfound .title p.en {
  font-size: 8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .notfound .title p.en {
    font-size: 4rem;
  }
}
.notfound .title p.ja {
  font-size: 2rem;
  font-weight: 500;
  margin-top: 1.2rem;
  padding-left: 0.1em;
}
@media screen and (max-width: 767px) {
  .notfound .title p.ja {
    font-size: 1.4rem;
    margin-top: 0.6rem;
  }
}
.notfound p.readText {
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .notfound p.readText {
    margin-top: 0;
  }
}
.notfound a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 22rem;
  margin-inline: 0 auto;
  border-bottom: 0.1rem var(--text) solid;
  padding-bottom: 1.5rem;
  margin-top: 6rem;
}
@media screen and (max-width: 767px) {
  .notfound a {
    margin-top: 3rem;
    width: 20rem;
  }
}
.notfound a .arrow {
  border-radius: 100vmax;
  border: 0.1rem solid currentColor;
  width: 5rem;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
}
@media screen and (max-width: 767px) {
  .notfound a .arrow {
    width: 2.8rem;
    right: 1rem;
    bottom: 1.5rem;
  }
}
.notfound a .arrow .hoverArrow {
  font-size: 2.4rem;
}
@media screen and (max-width: 767px) {
  .notfound a .arrow .hoverArrow {
    font-size: 1.6rem;
  }
}
/*# sourceMappingURL=common.css.map */