@charset "UTF-8";
@import url(https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,400;0,700;1,400;1,700&display=swap);
/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
  box-sizing: border-box;
}

html {
  /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  line-height: 1.15; /* 1. Correct the line height in all browsers. */
  -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
}

/*
Sections
========
*/
body {
  margin: 0; /* Remove the margin in all browsers. */
}

/*
Text-level semantics
====================
*/
/**
Add the correct font weight in Chrome and Safari.
*/
b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/
/**
Correct table border color inheritance in Chrome and Safari. (https://issues.chromium.org/issues/40615503, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
  border-color: currentcolor;
}

/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}

/*! global > variables
------------------------------ */
/*! global > mixins > fluid-step
------------------------------ */
/*! global > font
------------------------------ */
/* -----------------------------------------------------------------
    1. Font Face
   ----------------------------------------------------------------- */
/* Noto Sans */
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: local("Noto Sans CJK JP"), local("Noto Sans JP"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format("opentype");
  font-display: swap;
}
/* Yaku Han JP for Noto */
@font-face {
  font-family: YakuHanJP;
  font-style: normal;
  font-weight: 400;
  src: local("YakuHanJP-Regular"), url(assets/fonts/YakuHanJP-Regular.woff2) format("woff2");
  font-display: swap;
  unicode-range: U+3001, U+3002, U+3008, U+3009, U+300a, U+300b, U+300c, U+300d, U+300e, U+300f, U+3010, U+3011, U+3014, U+3015, U+30fb, U+ff01, U+ff08, U+ff09, U+ff1a, U+ff1b, U+ff1f, U+ff3b, U+ff3d, U+ff5b, U+ff5d;
}
@font-face {
  font-family: YakuHanJP;
  font-style: normal;
  font-weight: 700;
  src: local("YakuHanJP-Bold"), url(assets/fonts/YakuHanJP-Bold.woff2) format("woff2");
  font-display: swap;
  unicode-range: U+3001, U+3002, U+3008, U+3009, U+300a, U+300b, U+300c, U+300d, U+300e, U+300f, U+3010, U+3011, U+3014, U+3015, U+30fb, U+ff01, U+ff08, U+ff09, U+ff1a, U+ff1b, U+ff1f, U+ff3b, U+ff3d, U+ff5b, U+ff5d;
}
/* LINE Seed JP */
@font-face {
  font-family: "LINE Seed JP";
  font-weight: 400;
  src: local("LINE Seed JP OTF Regular"), local("LINE Seed JP Regular"), local("LINE Seed JP"), url(assets/fonts/LINESeedJP_OTF_Rg.woff2) format("woff2"), url(assets/fonts/LINESeedJP_OTF_Rg.woff) format("woff");
  font-display: swap;
}
@font-face {
  font-family: "LINE Seed JP";
  font-weight: 700;
  src: local("LINE Seed JP OTF Bold"), local("LINE Seed JP Bold"), local("LINE Seed JP"), url(assets/fonts/LINESeedJP_OTF_Bd.woff2) format("woff2"), url(assets/fonts/LINESeedJP_OTF_Bd.woff) format("woff");
  font-display: swap;
}
@font-face {
  font-family: "LINE Seed JP";
  font-weight: 900;
  src: local("LINE Seed JP OTF ExtraBold"), local("LINE Seed JP ExtraBold"), local("LINE Seed JP"), url(assets/fonts/LINESeedJP_OTF_Eb.woff2) format("woff2"), url(assets/fonts/LINESeedJP_OTF_Eb.woff) format("woff");
  font-display: swap;
}
/* Chillax */
@font-face {
  font-family: Chillax;
  font-style: normal;
  font-weight: 600;
  src: url(assets/fonts/Chillax-Semibold.woff2) format("woff2"), url(assets/fonts/Chillax-Semibold.woff) format("woff"), url(assets/fonts/Chillax-Semibold.ttf) format("truetype");
  font-display: swap;
}
/* Roboto Condensed Bold Italic（見出し英語用）*/
@font-face {
  font-family: "Roboto Condensed";
  font-style: italic;
  font-weight: 700;
  src: url(https://fonts.gstatic.com/s/robotocondensed/v27/ieVl2ZhZI2eCN5jzbjEETS9weq8-19w.woff2) format("woff2");
  font-display: swap;
}
/* Roboto Condensed Normal */
@font-face {
  font-family: "Roboto Condensed";
  font-style: normal;
  font-weight: 700;
  src: url(https://fonts.gstatic.com/s/robotocondensed/v27/ieVi2ZhZI2eCN5jzbjEETS9weq8-33mZKC8.woff2) format("woff2");
  font-display: swap;
}
/* -----------------------------------------------------------------
    2. ベース指定
   ----------------------------------------------------------------- */
body {
  font-size: clamp(1rem, 0.8846rem + 0.3205vw, 1.125rem);
  font-family: "YakuHanJP", "Noto Sans JP", "Noto Sans CJK JP", hiragino sans, "ヒラギノ角ゴシック", meiryo, "メイリオ", sans-serif;
  font-weight: 400;
  line-height: 1.6;
  color: #333;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* -----------------------------------------------------------------
    3. 見出し／本文サイズ
   ----------------------------------------------------------------- */
h1 {
  font-size: clamp(0.625rem, 0.625rem + 0vw, 0.625rem);
  line-height: 1.15;
}

h2 {
  font-size: clamp(1.5rem, 0.8077rem + 1.9231vw, 2.25rem);
  line-height: 1.2;
}

h3 {
  font-size: clamp(1.25rem, 0.7885rem + 1.2821vw, 1.75rem);
  line-height: 1.2;
}

h4 {
  font-size: clamp(0.875rem, 0.6442rem + 0.641vw, 1.125rem);
  line-height: 1.2;
}

h5 {
  font-size: clamp(0.625rem, 0.625rem + 0vw, 0.625rem);
  line-height: 1.2;
}

p {
  font-size: clamp(0.875rem, 0.7596rem + 0.3205vw, 1rem);
  line-height: 1.6;
}

/*! foundation > base
------------------------------ */
html {
  min-height: 100%;
  scroll-behavior: smooth;
}

body {
  position: relative;
  min-height: 100vh;
  overflow-y: scroll;
}
body.is-active {
  inset: 0;
  width: 100%;
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
}
img.emoji {
  max-width: 1.2em;
  max-height: 1.2em;
  margin-bottom: 2px;
  vertical-align: middle;
}

input,
textarea,
select {
  font-family: "YakuHanJP", "Noto Sans JP", "Noto Sans CJK JP", hiragino sans, "ヒラギノ角ゴシック", meiryo, "メイリオ", sans-serif;
}

input,
textarea {
  border-radius: 0;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  color: #ccc;
}
input::placeholder,
textarea::placeholder {
  color: #ccc;
}

strong {
  font-weight: 600;
}

section {
  position: relative;
}
section.l-marginless {
  padding: 0;
}

p {
  margin-bottom: 1em;
}

p + p {
  margin-top: 1em;
}

/*! ==========================
global
============================== */
/*! global > mixins > flex
------------------------------ */
/*! global > mixins > breakpoints
------------------------------ */
/*!
global > link
------------------------------
*/
.p-article a:not([class]) {
  position: relative;
  color: #c8ebff;
  transition: 0.3s;
}
.p-article a:not([class])::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #c8ebff;
  transform: scaleX(0);
  transition: transform 0.3s;
}
.p-article a:not([class]):hover::after {
  transform: scaleX(1);
}
.p-article a:hover img {
  background: #fff;
  opacity: 0.7;
  transition: 0.3s;
}

.c-textlink {
  transition: 0.3s;
  position: relative;
  color: #c8ebff;
}
.c-textlink::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #c8ebff;
  transform: scaleX(0);
  transition: transform 0.3s;
}
.c-textlink:hover::after {
  transform: scaleX(1);
}
.c-textlink:hover img {
  background: #fff;
  opacity: 0.7;
  transition: 0.3s;
}

.hamburger-caret {
  display: none;
  padding: 0 4px;
  margin: 0;
  overflow: visible;
  font: inherit;
  color: inherit;
  text-transform: none;
  cursor: pointer;
  background-color: transparent;
  border: 0;
  transition-timing-function: linear;
  transition-duration: 0.15s;
  transition-property: opacity, filter;
}
.is-active .hamburger-caret .hamburger-caret-inner,
.is-active .hamburger-caret .hamburger-caret-inner::before,
.is-active .hamburger-caret .hamburger-caret-inner::after {
  background-color: #fff;
}

.hamburger-caret-box {
  position: relative;
  display: inline-block;
  width: 17px;
  height: 12px;
}

.hamburger-caret-inner {
  top: 50%;
  display: block;
  margin-top: -2px;
}
.hamburger-caret-inner, .hamburger-caret-inner::before, .hamburger-caret-inner::after {
  position: absolute;
  width: 17px;
  height: 2px;
  background-color: #004d9c;
  border-radius: 3px;
  transition-timing-function: ease;
  transition-duration: 0.15s;
  transition-property: transform;
}
.hamburger-caret-inner::before, .hamburger-caret-inner::after {
  display: block;
  content: "";
}
.hamburger-caret-inner::before {
  top: 6px;
}
.hamburger-caret-inner::after {
  top: initial;
  bottom: 13px;
}

.hamburger-caret .hamburger-caret-inner {
  width: 8.5px;
  transition-delay: 0;
  transition-timing-function: cubic-bezier(-0.55, 1.55, 0.265, 0.68);
  transform: translate3d(1px, 1px, 0) rotate(-135deg);
}
.hamburger-caret .hamburger-caret-inner::before {
  top: 6px;
  opacity: 0;
  transition: opacity 0.125s 0s ease;
}
.hamburger-caret .hamburger-caret-inner::after {
  top: 11px;
  width: 8.5px;
  transition: transform 0s cubic-bezier(-0.55, 1.55, 0.265, 0.68);
  transform: translate3d(-4px, -7px, 0) rotate(-270deg);
}
.is-active .hamburger-caret .hamburger-caret-inner {
  top: 2px;
  width: 17px;
  transition-delay: 0;
  transform: initial;
}
.is-active .hamburger-caret .hamburger-caret-inner::before {
  top: 5px;
  opacity: 1;
  transition-delay: 0s;
}
.is-active .hamburger-caret .hamburger-caret-inner::after {
  top: 11px;
  width: 17px;
  transition-delay: 0;
  transform: initial;
}

@keyframes floating {
  0% {
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.6));
    transform: translatey(0px);
  }
  50% {
    filter: drop-shadow(0 25px 15px rgba(0, 0, 0, 0.2));
    transform: translatey(-20px);
  }
  100% {
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.6));
    transform: translatey(0px);
  }
}
@keyframes bleed {
  from {
    filter: blur(12px);
    opacity: 0;
  }
  to {
    filter: blur(0);
    opacity: 1;
  }
}
@keyframes bounce {
  from, 20%, 53%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}
.animate__bounce {
  animation-name: bounce;
  transform-origin: center bottom;
}

.c-anime-bounce:hover {
  animation: bounce 0.75s ease forwards 0s;
  animation-fill-mode: both;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes falling {
  0% {
    height: 0;
    top: 0;
    opacity: 0;
  }
  30% {
    height: 30px;
    opacity: 1;
  }
  100% {
    height: 0;
    top: 50px;
    opacity: 0;
  }
}
@keyframes curtain {
  0% {
    left: 100%;
  }
  100% {
    left: -100%;
  }
}
.gridCanvas {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/*! タイピングで出現するテキスト
component > animation > anime-typing
------------------------------ */
/*!
component > title
------------------------------
*/
.c-title-level2 {
  font-size: 18px;
  font-weight: 700;
}

/*! 背景のトリムマーク
------------------------------ */
.c-trimmark {
  position: fixed;
  top: 0;
  z-index: 3;
  width: 100%;
  height: 100vh;
  pointer-events: none;
}
.c-trimmark__line {
  position: fixed;
  background-repeat: no-repeat;
  background-size: contain;
}
.c-trimmark__left-top, .c-trimmark__center-top, .c-trimmark__right-top, .c-trimmark__left-center, .c-trimmark__right-center, .c-trimmark__left-bottom, .c-trimmark__center-bottom, .c-trimmark__right-bottom {
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
}
.c-trimmark__left-top, .c-trimmark__right-top, .c-trimmark__left-bottom, .c-trimmark__right-bottom {
  width: 2.5vw;
  height: 2.5vw;
}
.c-trimmark__center-top, .c-trimmark__center-bottom {
  width: 4.4vw;
  height: 1.6vw;
}
.c-trimmark__left-center, .c-trimmark__right-center {
  width: 1.6vw;
  height: 4.4vw;
}
.c-trimmark__left-top {
  top: 0;
  left: 0;
  background-image: url(assets/img/common/bg_trim_left-top.svg);
  background-position: left top;
  background-size: contain;
}
.c-trimmark__center-top {
  top: 0;
  left: 50%;
  background-image: url(assets/img/common/bg_trim_center-top.svg);
  background-position: center top;
  background-size: contain;
  transform: translateX(-50%);
}
.c-trimmark__right-top {
  top: 0;
  right: 0;
  width: 2.5vw;
  height: 2.5vw;
  background-image: url(assets/img/common/bg_trim_right-top.svg);
  background-position: right top;
  background-size: contain;
}
.c-trimmark__left-center {
  top: 50%;
  left: 0;
  background-image: url(assets/img/common/bg_trim_left-center.svg);
  background-position: left center;
  background-size: contain;
  transform: translateY(-50%);
}
.c-trimmark__right-center {
  top: 50%;
  right: 0;
  background-image: url(assets/img/common/bg_trim_right-center.svg);
  background-position: right center;
  background-size: contain;
  transform: translateY(-50%);
}
.c-trimmark__left-bottom {
  bottom: 0;
  left: 0;
  background-image: url(assets/img/common/bg_trim_left-bottom.svg);
  background-position: left bottom;
  background-size: contain;
}
.c-trimmark__center-bottom {
  bottom: 0;
  left: 50%;
  background-image: url(assets/img/common/bg_trim_center-bottom.svg);
  background-position: center bottom;
  background-size: contain;
  transform: translateX(-50%);
}
.c-trimmark__right-bottom {
  right: 0;
  bottom: 0;
  background-image: url(assets/img/common/bg_trim_right-bottom.svg);
  background-position: right bottom;
  background-size: contain;
}

/*! component > loading
------------------------------ */
.c-loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: #fff;
  transition: all 0.5s;
  z-index: 999;
}
.c-loading.is-loaded {
  opacity: 0;
  visibility: hidden;
}

.c-loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
}
.c-loader div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-sizing: border-box;
  opacity: 0.8;
}
.c-loader__one {
  border-top: 1px solid #8fb259;
  animation: rotate-left 1s linear infinite;
}
.c-loader__two {
  border-right: 1px solid #cccc52;
  animation: rotate-right 1s linear infinite;
}
.c-loader__three {
  border-bottom: 1px solid #ffd933;
  animation: rotate-right 1s linear infinite;
}
.c-loader__four {
  border-left: 1px solid #ff7f00;
  animation: rotate-right 1s linear infinite;
}

@keyframes rotate-left {
  0% {
    transform: rotate(360deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes rotate-right {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*! component > caption
------------------------------ */
.c-caption {
  font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
  font-style: italic;
  font-size: 2.5rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #004d9c;
  text-align: center;
  margin-bottom: 40px;
}
@media (min-width: 48em) {
  .c-caption {
    font-size: 3.5rem;
    letter-spacing: 0.25em;
    margin-bottom: 60px;
  }
}
.c-caption__sub {
  font-family: YakuHanJP, "Noto Sans JP", "hiragino sans", "ヒラギノ角ゴシック", meiryo, "メイリオ", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  text-transform: none;
  color: #004d9c;
  margin-top: 8px;
}
@media (min-width: 48em) {
  .c-caption__sub {
    font-size: 1.4rem;
    margin-top: 12px;
  }
}
.c-caption__sub--left {
  text-align: left;
}
.c-caption__sub--center {
  text-align: center;
}
.c-caption--light {
  color: #fff;
}
.c-caption--light .c-caption__sub {
  color: #fff;
}
.c-caption--left {
  text-align: left;
}
.c-caption--small {
  font-size: 2rem;
  letter-spacing: 0.15em;
}
@media (min-width: 48em) {
  .c-caption--small {
    font-size: 2.5rem;
    letter-spacing: 0.2em;
  }
}
.c-caption--xl {
  font-size: clamp(3rem, 1.1538rem + 5.1282vw, 5rem);
  margin-bottom: 0.5em;
}
.c-caption--xl .c-caption__sub {
  font-size: clamp(1.125rem, 0.0865rem + 2.8846vw, 2.25rem);
  margin-top: 0.5em;
}

.c-steps {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-bottom: 60px;
}
@media (max-width: 47.99em) {
  .c-steps {
    gap: 20px;
    margin-bottom: 40px;
  }
}
.c-steps__item {
  text-align: center;
  position: relative;
  flex: 1;
  max-width: 200px;
  opacity: 0.3;
  transition: opacity 0.3s ease;
}
.c-steps__item.is-current {
  opacity: 1;
}
.c-steps__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 25px;
  right: -30px;
  width: 20px;
  height: 20px;
  border-top: 2px solid #004d9c;
  border-right: 2px solid #004d9c;
  transform: rotate(45deg);
}
@media (max-width: 47.99em) {
  .c-steps__item:not(:last-child)::after {
    right: -15px;
    width: 10px;
    height: 10px;
  }
}
.c-steps__number {
  font-size: 1.5em;
  font-weight: 700;
  color: #004d9c;
  margin-bottom: 8px;
}
.c-steps__number small {
  display: block;
  font-size: 0.5em;
}
.c-steps__label {
  font-size: 0.875rem;
  background: #eee;
  border-radius: 9999px;
  display: inline-block;
  padding: 0.25em 1em;
}

/*! component > columns
------------------------------ */
@layer components {
  .c-columns {
    /* モバイル：縦並び */
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: var(--c-columns-gap, 1rem);
    /* 修飾子 */
    /* md 以上：横並び */
  }
  .c-columns.is-center {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
  .c-columns.is-reverse {
    flex-direction: column-reverse;
  }
  .c-columns.is-nowrap {
    flex-wrap: nowrap;
  }
  .c-columns.is-gap-sm {
    --c-columns-gap: .5rem;
  }
  .c-columns.is-gap-lg {
    --c-columns-gap: 2rem;
  }
  @media (min-width: 48em) {
    .c-columns {
      flex-flow: row nowrap;
    }
    .c-columns.is-reverse {
      flex-direction: row-reverse;
    }
  }
}
/*! component > button
------------------------------- */
.c-button {
  display: inline-block;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s ease;
}
.c-button:disabled, .c-button.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.c-button--primary {
  background-color: #004d9c;
  color: #fff;
}
.c-button--primary:hover {
  background-color: #003469;
}
.c-button--secondary {
  background-color: transparent;
  color: #004d9c;
  border: 2px solid #004d9c;
}
.c-button--secondary:hover {
  background-color: #004d9c;
  color: #fff;
}
.c-button--drone {
  background-color: #004d9c;
  color: #fff;
}
.c-button--drone:hover {
  background-color: #003469;
}
.c-button--document, .c-button--contact {
  background-color: #6fb92c;
  color: #fff;
}
.c-button--document:hover, .c-button--contact:hover {
  background-color: #569022;
}
.c-button--gnav-cta {
  padding: 8px 16px;
  font-size: 0.875rem;
  border-radius: 6px;
  font-weight: 700;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  white-space: nowrap;
  line-height: 1.2;
}
.c-button--tel {
  background-color: transparent;
  padding: 8px;
}
.c-button--tel img {
  height: 36px;
  width: auto;
}
.c-button--tel:hover {
  opacity: 0.8;
}
.c-button--sm {
  padding: 8px 16px;
  font-size: 0.875rem;
}
.c-button--lg {
  padding: 16px 32px;
  font-size: 1.125rem;
}
.c-button--long {
  width: 100%;
  max-width: 280px;
}
.c-button--light {
  background-color: #fff;
  color: #0066cc;
  border: 2px solid #fff;
}
.c-button--light:hover {
  background-color: transparent;
  color: #fff;
  border-color: #fff;
}
.c-button--caret {
  position: relative;
  padding-right: 48px;
}
.c-button--caret::after {
  content: "";
  position: absolute;
  top: 0;
  right: 16px;
  bottom: 0;
  width: 16px;
  height: 16px;
  margin: auto;
  background: url(assets/img/common/icon_caret_white.svg) no-repeat center/contain;
  opacity: 0.8;
  transition: transform 0.3s ease;
}
.c-button--caret:hover::after {
  transform: translateX(4px);
}

.p-entry-button {
  width: 100%;
  background-color: #c8ebff;
  padding: 40px 0 80px;
}
.p-entry-button__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: center;
}
.p-entry-button__desc {
  display: flex;
  align-items: center;
  flex-flow: column nowrap;
  color: #004d9c;
  padding: 0 1em;
}
.p-entry-button__desc p {
  font-size: 1.1em;
  letter-spacing: 0.05em;
}
.p-entry-button .c-caption {
  color: #fff;
  margin: 0;
  line-height: 1;
}
.p-entry-button .c-caption__sub {
  color: #fff;
  margin-top: 0.1em;
}

.c-button-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 300px;
  max-width: 1000px;
  height: 166px;
  padding: 20px 40px;
  background-color: #1f82be;
  color: #fff;
  text-decoration: none;
  border-radius: 24px;
  font-size: 1.25rem;
  font-weight: 700;
  position: relative;
  overflow: hidden;
  transition: color 0.3s ease;
}
.c-button-entry .c-caption {
  z-index: 1;
}
.c-button-entry::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #005de1;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  z-index: 0;
}
.c-button-entry:hover::before {
  transform: translateX(0);
}
.c-button-entry__text {
  position: relative;
  z-index: 1;
}

/*! polyhedron
component > polyhedron
------------------------------ */
#polyhedron {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 300px;
  padding: 0;
  margin: 0 auto;
  background: transparent;
  opacity: 0;
  transform: translate(-50%, -50%);
}

/*! スクロールダウンアニメーション
------------------------------ */
.c-scrolldown--ballline {
  position: absolute;
  bottom: 0;
  left: 50%;
}
.c-scrolldown--ballline svg {
  inline-size: initial;
  width: 32px;
}
.c-scrolldown--ballline a {
  position: absolute;
  bottom: 87px;
  left: 10px;
  font-family: "Josefin Sans", sans-serif;
  font-size: 14px;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  writing-mode: vertical-lr;
}
.c-scrolldown--ballline::after {
  position: absolute;
  bottom: 0;
  left: 14px;
  width: 11px;
  height: 11px;
  content: "";
  background: #fff;
  border-radius: 50%;
  animation: circlemove 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
}
.c-scrolldown--ballline::before {
  position: absolute;
  bottom: 0;
  left: 20px;
  width: 2px;
  height: 100px;
  min-height: 100px;
  content: "";
  background: #eee;
}
@keyframes circlemove {
  0% {
    bottom: 100px;
  }
  100% {
    bottom: 0;
  }
}
@keyframes cirlemovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
.c-scrolldown--wheel {
  position: absolute;
  bottom: 0;
  animation: scroll-btn 1s ease-in-out alternate infinite;
}
.c-scrolldown--wheel svg {
  width: 32px;
  height: 50px;
  margin-bottom: 10px;
  fill: #f8f7f2;
}
.c-scrolldown--wheel svg .animated {
  animation: scroll-down 2s infinite linear;
}
.c-scrolldown--wheel svg .ball {
  animation: ball-move 2s infinite ease-in-out;
}
@keyframes scroll-down {
  0% {
    opacity: 1;
    stroke-dasharray: 0, 180px;
  }
  50% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
  60% {
    opacity: 0.8;
    stroke-dasharray: 215.7737px, 363.607px;
  }
  70% {
    opacity: 0;
  }
  80% {
    opacity: 0;
  }
  90% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes ball-move {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
    transform: translateY(16px);
  }
}

/*!
component > form
------------------------------
*/
input {
  margin: 0;
  padding: 0;
}
input + input {
  margin-top: 1em;
}

input[type=text],
input[type=email],
input[type=tel],
input[type=checkbox],
textarea {
  padding: 0.5em;
  background: #f8f8f8;
  border: 1px solid #ddd;
  border-radius: 8px;
}
input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=checkbox]::-moz-placeholder, textarea::-moz-placeholder {
  color: #aaaaaa;
}
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
input[type=checkbox]::placeholder,
textarea::placeholder {
  color: #aaaaaa;
}

input[type=submit] {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto 1em;
  padding: 0.5em;
}

textarea {
  width: 100%;
}

.c-form {
  width: 100%;
}
.c-form input {
  width: 100%;
}
.c-form table {
  width: 100%;
}
.c-form table tr:not(:last-of-type) td {
  border-bottom: 1px dashed #b4b4b4;
}
.c-form table tr th {
  padding: 1em 1em 0.5em;
}
.c-form table tr td {
  padding: 0.5em 1em 1em;
}
.c-form table tr th {
  text-align: left;
}
.c-form table tr th span {
  display: inline-block;
  padding: 1px 8px;
  margin-right: 6px;
  background: #333;
  border-radius: 20px;
  color: #fff;
  font-size: 0.8em;
  font-weight: 400;
  text-align: center;
}
@media (max-width: 47.99em) {
  .c-form th,
  .c-form td {
    display: block;
  }
}
@media (min-width: 48em) {
  .c-form table tr:not(:last-of-type) th {
    border-bottom: 1px dashed #b4b4b4;
  }
  .c-form table tr th,
  .c-form table tr td {
    padding: 3em 1em;
  }
  .c-form table tr th {
    width: 14em;
    vertical-align: top;
  }
}

.mwform-radio-field label input[type=radio] {
  margin-right: 0;
}

.mw_wp_form .horizontal-item + .horizontal-item {
  margin-left: 0 !important;
}
.mw_wp_form form .mwform-radio-field,
.mw_wp_form form .mwform-checkbox-field {
  display: inline-block;
  margin-right: 1em;
}
.mw_wp_form form .mwform-radio-field label,
.mw_wp_form form .mwform-checkbox-field label {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: baseline;
}
.mw_wp_form form .mwform-radio-field input[type=radio],
.mw_wp_form form .mwform-radio-field input[type=checkbox],
.mw_wp_form form .mwform-checkbox-field input[type=radio],
.mw_wp_form form .mwform-checkbox-field input[type=checkbox] {
  width: 1em;
}
.mw_wp_form h3 {
  margin: 0 0 1em;
  padding-left: 0;
}

.p-contact .mw_wp_form_complete {
  margin: 2em 0 4em;
}
.p-contact .mw_wp_form_complete h3 {
  margin: 0 0 1em;
  padding-left: 0;
}

.mwwpform__horizontal {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}
.mwwpform__agree {
  width: 100%;
  margin: 0 auto 2em;
  padding: 0.5em;
  text-align: center;
  background: #f8f8f8;
}
.mwwpform__last p {
  max-inline-size: -moz-max-content;
  max-inline-size: max-content;
  margin-inline: auto;
  font-size: 0.9em;
}
.mwwpform__send {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-around;
}

/*!
layout > container
------------------------------
*/
.l-container {
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
}
.l-container .swiper-container {
  width: auto !important;
  overflow: hidden;
}
.l-container .swiper-container .swiper-wrapper {
  margin: 0 auto;
}
@media screen and (max-width: 1177px) {
  .l-container {
    padding-right: 2%;
    padding-left: 2%;
  }
}
.l-container--fluid {
  max-width: 100%;
  padding-right: 0;
  padding-left: 0;
}
.l-container--sm {
  max-width: 800px;
}
.l-container--lg {
  max-width: 1366px;
}

/*! layout > header
------------------------------- */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9;
  display: flex;
  justify-content: space-between;
  transition: all 0.3s ease;
}
.l-header__logo--pc {
  position: relative;
  z-index: 997;
  display: none;
  padding: 16px;
}
@media (min-width: 62em) {
  .l-header__logo--pc {
    display: block;
  }
}
.l-header__logo--pc a {
  display: block;
  text-decoration: none;
}
.l-header__logo--pc img {
  width: 176px;
  height: auto;
}
.l-header__logo--pc .l-header__logo-recruit {
  margin-top: 0;
}
.l-header__logo--pc .l-header__logo-recruit img {
  height: auto;
}
.l-header__inner {
  position: relative;
  z-index: 8;
  flex: 1;
  display: flex;
  flex-direction: column;
  background-color: transparent;
}
@media (min-width: 62em) {
  .l-header__inner {
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
  }
}
.l-header__content-wrapper {
  background-color: transparent;
  display: flex;
  flex-direction: column;
  width: auto;
}
@media (min-width: 62em) {
  .l-header__content-wrapper {
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 0 20px;
    padding: 0;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
}
.l-header__logo--sp {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 997;
  display: flex;
  align-items: center;
  padding: 8px;
}
@media (min-width: 62em) {
  .l-header__logo--sp {
    display: none;
  }
}
.l-header__logo--sp a {
  display: block;
  text-decoration: none;
}
.l-header__logo--sp img {
  height: 44px;
  width: auto;
}
.l-header__tel {
  display: block;
  text-decoration: none;
}
.l-header__tel img {
  margin-top: 8px;
  height: 50px;
  width: auto;
}
@media (min-width: 62em) {
  .l-header__tel img {
    margin-right: 8px;
  }
}
@media (hover: hover) {
  .l-header__tel {
    pointer-events: none;
  }
}
.l-header__cta {
  display: flex;
  flex-wrap: wrap;
  padding: 16px;
  order: 3;
  border-radius: 0 0 0 20px;
}
@media (max-width: 61.99em) {
  .l-header__cta {
    display: none;
  }
}
@media (min-width: 62em) {
  .l-header__cta {
    display: flex;
    flex-wrap: nowrap;
    order: 1;
    gap: 4px;
    padding: 0 16px;
    margin-left: auto;
    height: 60px;
    align-items: center;
    border-radius: 0;
    width: 100%;
    justify-content: flex-end;
  }
  .l-header__cta .c-button {
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
  }
}
@media (max-width: 61.99em) {
  .l-header__cta .c-button {
    margin: 4px;
  }
  .l-header__cta .c-button--drone {
    width: 100%;
    order: 1;
  }
  .l-header__cta .c-button--document, .l-header__cta .c-button--contact {
    width: calc(50% - 8px);
    order: 2;
  }
  .l-header__cta .l-header__tel {
    width: 100%;
    order: 3;
    text-align: center;
  }
}
.l-header__nav {
  order: 2;
}
@media (max-width: 61.99em) {
  .l-header__nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    background-color: #fff;
    transform: translateX(20%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
    z-index: 9;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }
  .l-header__nav .p-global-nav__list {
    padding: 24px 16px;
    margin-top: 60px;
  }
  .l-header__nav .l-header__cta {
    display: flex;
    flex-direction: column;
    padding: 24px 16px;
    margin-top: auto;
    border-top: 1px solid #eee;
  }
  .l-header__nav .l-header__cta .c-button {
    width: 100%;
    margin: 4px 0;
    text-align: left;
    justify-content: flex-start;
  }
  .l-header__nav .l-header__cta .l-header__tel {
    order: 1;
    margin-bottom: 16px;
  }
  .l-header__nav .l-header__cta .l-header__tel img {
    width: initial;
    margin: 0;
  }
}
@media (max-width: 61.99em) and (min-width: 62em) {
  .l-header__nav .l-header__cta .l-header__tel img {
    height: 40px;
  }
}
@media (max-width: 61.99em) {
  .l-header__nav .l-header__cta .c-button--drone {
    order: 2;
  }
  .l-header__nav .l-header__cta .c-button--document {
    order: 3;
  }
  .l-header__nav .l-header__cta .c-button--contact {
    order: 4;
  }
  .l-header__nav.is-active {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
  }
}
@media (min-width: 62em) {
  .l-header__nav {
    display: block;
    order: 2;
    margin-right: 0;
    width: 100%;
    background-color: #fff;
    padding: 0 16px 8px;
  }
  .l-header__nav .p-global-nav__list {
    justify-content: flex-end;
  }
}
@media (min-width: 62em) {
  .l-header.is-scrolled .l-header__content-wrapper {
    background-color: rgba(255, 255, 255, 0.95);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
  }
}
@media (max-width: 61.99em) {
  .l-header.is-scrolled .l-header__cta {
    background-color: rgba(255, 255, 255, 0.95);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
  }
}
.l-header.is-hidden {
  transform: translateY(-100%);
}
@media (min-width: 62em) {
  .l-header--recruit .l-header__content-wrapper {
    background-color: transparent;
    box-shadow: none;
  }
  .l-header--recruit.is-at-top .l-header__content-wrapper {
    background-color: transparent;
  }
  .l-header--recruit.is-scrolled .l-header__content-wrapper {
    background-color: rgba(255, 255, 255, 0.95);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  }
}
@media (max-width: 61.99em) {
  .l-header--recruit .l-header__cta {
    background-color: transparent;
    box-shadow: none;
  }
}

.p-global-nav {
  background-color: transparent;
}
.p-global-nav.is-active {
  display: block;
  background-color: #fff;
}
.p-global-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 61.99em) {
  .p-global-nav__list {
    display: flex;
    flex-direction: column;
    margin-top: 40px;
  }
  .p-global-nav__list li {
    padding: 4px;
    margin-bottom: 4px;
  }
  .p-global-nav__list li:not(:last-of-type) {
    border-bottom: 1px solid #eee;
  }
  .p-global-nav__list li a {
    display: block;
  }
  .p-global-nav__list li:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 62em) {
  .p-global-nav__list {
    display: flex;
  }
  .p-global-nav__list li:not(:first-child) {
    border-left: 1px solid #eee;
  }
}
.p-global-nav__item a {
  display: block;
  color: #333;
  text-decoration: none;
  font-weight: 700;
  transition: color 0.3s ease;
  padding: 4px 12px;
  font-size: 1rem;
}
.p-global-nav__item a:hover {
  color: #004d9c;
}

.p-mobile-nav__toggle {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 999;
  background: #fff;
  border: 5px solid #0357a6;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  padding: 8px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@media (min-width: 62em) {
  .p-mobile-nav__toggle {
    display: none;
  }
}
.p-mobile-nav__line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: #0357a6;
  transition: all 0.3s ease;
  margin: 2px 0;
}
.p-mobile-nav__line:nth-child(1) {
  width: 16px;
}
.p-mobile-nav__line:nth-child(3) {
  width: 20px;
}
.p-mobile-nav__toggle.is-active {
  transform: rotate(360deg) translateX(0px);
}
.p-mobile-nav__toggle.is-active .p-mobile-nav__line {
  transition-delay: 0.2s;
}
.p-mobile-nav__toggle.is-active .p-mobile-nav__line:nth-child(1) {
  width: 24px;
  transform: rotate(45deg) translate(4px, 4px);
}
.p-mobile-nav__toggle.is-active .p-mobile-nav__line:nth-child(2) {
  opacity: 0;
}
.p-mobile-nav__toggle.is-active .p-mobile-nav__line:nth-child(3) {
  width: 24px;
  transform: rotate(-45deg) translate(4px, -4px);
}

/*! グローバルナビゲーション
------------------------------ */
.l-gnav {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 996;
  display: flex;
  align-items: flex-end;
  width: 0;
  height: 100%;
  padding: 0;
  margin: 0;
  background: rgba(255, 255, 255, 0.829);
}
.l-gnav__menu {
  position: relative;
  display: none;
  padding: 0 0 calc(24px + 3vh);
  font-size: 0.875rem;
}
.l-gnav__menu li {
  position: relative;
  width: 100%;
  writing-mode: vertical-rl;
}
.l-gnav__menu li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  min-height: 80px;
  overflow: hidden;
}
.l-gnav__trigger {
  position: relative;
  top: 185px;
  z-index: 999;
  display: none;
  width: 70px;
  height: 70px;
  overflow: hidden;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  transition: all 0.4s;
}
.l-gnav__trigger-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
.l-gnav__trigger button {
  text-indent: -9999px;
}
.l-gnav__trigger button::before, .l-gnav__trigger button::after,
.l-gnav__trigger button em::after {
  position: absolute;
  right: 25px;
  display: block;
  width: 20px;
  height: 2px;
  content: "";
  transition: all 0.3s;
}
.l-gnav__trigger button em::after {
  top: 24px;
}
.l-gnav__trigger button::before {
  top: 32px;
}
.l-gnav__trigger button::after {
  top: 40px;
}
@media (hover: hover) {
  .l-gnav__trigger:hover button::before, .l-gnav__trigger:hover button::after,
  .l-gnav__trigger:hover button em::after {
    transition: all 0.3s;
  }
  .l-gnav__trigger:hover button::before {
    width: 12px;
  }
  .l-gnav__trigger:hover button::after {
    width: 18px;
  }
}
.l-gnav__trigger[disabled] {
  pointer-events: none;
  background-color: #808080;
}
.l-gnav__trigger.is-active {
  overflow: hidden;
  background: transparent;
}
.l-gnav__trigger.is-active button::before, .l-gnav__trigger.is-active button::after,
.l-gnav__trigger.is-active button em::after {
  transition: all 0.3s;
}
.l-gnav__trigger.is-active button em::after {
  top: 32px;
  opacity: 0;
}
.l-gnav__trigger.is-active button::before {
  top: 32px;
  transform: rotate(45deg);
}
.l-gnav__trigger.is-active button::after {
  top: 32px;
  transform: rotate(-45deg);
}
.l-gnav__wrapper {
  position: relative;
  flex-grow: 1;
  width: 0;
  height: 0;
  transition: 0;
}
@media screen and (width < 1335px) {
  .l-gnav__trigger {
    position: fixed;
    top: 0;
    right: 0;
  }
}
@media screen and (width > 1336px) {
  .l-gnav {
    width: 70px;
  }
  .l-gnav__menu {
    display: flex;
    flex-flow: row wrap;
    align-self: flex-end;
  }
}

/*! layout > main
メイン
------------------------------ */
.l-main {
  position: relative;
  z-index: 5;
  min-height: 100vh;
}
.l-main--round-both {
  margin-top: -20px;
  margin-bottom: -20px;
  border-radius: 20px;
}
.l-main--round-top {
  margin-top: -20px;
  border-radius: 20px 20px 0 0;
}
.l-main--round-bottom {
  margin-bottom: -20px;
  border-radius: 0 0 20px 20px;
}

/*! layout > footer
------------------------------ */
.l-footer__inner {
  display: flex;
  flex-flow: column nowrap;
  background: #f1f6fa;
  padding: 20px 16px;
  max-width: 2000px;
  margin: 0 auto;
}
@media (min-width: 75em) {
  .l-footer__inner {
    padding: 36px 56px;
  }
}
.l-footer__primary, .l-footer__secondary {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  gap: 16px;
}
@media (min-width: 75em) {
  .l-footer__primary, .l-footer__secondary {
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: flex-end;
  }
}
.l-footer__primary {
  gap: 0 16px;
  flex-flow: column nowrap;
  align-items: flex-start;
}
.l-footer__inner {
  gap: 16px;
}
.l-footer__logo {
  display: inline-flex;
  flex-flow: column nowrap;
  align-items: flex-start;
}
.l-footer__logo p {
  font-size: 1.2rem;
  font-weight: bold;
  font-family: "Roboto Condensed", YakuHanJP, Noto Sans JP, Noto Sans CJK JP, hiragino sans, ヒラギノ角ゴシック, meiryo, メイリオ, sans-serif;
  margin: 0.5em 0;
  line-height: 1;
  color: #1f82be;
}
.l-footer__address {
  font-size: 0.7em;
  border-top: solid 1px #ddd;
  padding-top: 0.5em;
}
.l-footer__nav {
  display: flex;
  flex-flow: row wrap;
  gap: 0.5em;
  font-weight: bold;
  font-size: 1rem;
  max-width: 800px;
}
.l-footer__nav a {
  transition: all 0.3s ease;
}
.l-footer__nav a:hover {
  color: #005de1;
}
@media (min-width: 75em) {
  .l-footer__nav {
    flex-flow: row wrap;
    gap: 0.5em 2em;
  }
}
.l-footer__copyright {
  color: #999;
}

/*! サイトマップメニュー
layout > sitemap
------------------------------ */
.l-sitemap {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 995;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  visibility: hidden;
  background: rgba(0, 0, 0, 0.9);
  opacity: 0;
  transition: all 0.3s;
  transform: translateY(-100%);
}
.l-sitemap__menu {
  z-index: 2;
  height: 100%;
  padding-top: 182px;
  margin-left: 86px;
  text-align: left;
  list-style: none;
}
.l-sitemap__menu li a {
  display: block;
  padding: 1em;
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  background: #f00;
  transition: color 0.3s;
}
.l-sitemap__menu li a:hover {
  color: #2eb1fd;
}
.l-sitemap__bg {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: url(your-background.jpg) center/cover no-repeat;
}
.l-sitemap__bg div {
  flex: 1;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  transform: scaleY(0);
  transform-origin: bottom;
}
.l-sitemap.is-active {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
#contentsArea {
  position: relative;
}

@media (min-width: 48em) {
  #contentsArea {
    font-size: 30px;
  }
}
@media (min-width: 48em) {
  .classat {
    font-size: 50px;
  }
}
.class {
  display: flex;
  flex-direction: column;
  flex-wrap: center;
  justify-content: center;
  align-items: flex-start;
}

/*! project > recruit
------------------------------ */
.p-recruit .p-recruit-hero {
  position: relative;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: url(assets/img/recruit/fv_pc.jpg) no-repeat center;
  background-size: cover;
}
@media (max-width: 47.99em) {
  .p-recruit .p-recruit-hero {
    background-image: url(assets/img/recruit/fv_sp.jpg);
  }
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero {
    min-height: 700px;
  }
}
.p-recruit .p-recruit-hero__inner {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
  color: #fff;
  text-align: center;
}
.p-recruit .p-recruit-hero__logo {
  margin-bottom: 20px;
}
.p-recruit .p-recruit-hero__logo img {
  display: block;
  margin: 0 auto;
}
.p-recruit .p-recruit-hero__logo img.p-recruit-hero__logo-recruit {
  width: auto;
  height: auto;
  margin-top: 20px;
}
.p-recruit .p-recruit-hero__content {
  display: flex;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__content {
    flex-direction: row;
    gap: 20px;
    align-items: flex-start;
  }
}
.p-recruit .p-recruit-hero__left, .p-recruit .p-recruit-hero__right {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: none;
  width: 100%;
  max-width: 400px;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__left, .p-recruit .p-recruit-hero__right {
    flex: 1;
    width: auto;
    max-width: none;
  }
}
.p-recruit .p-recruit-hero__center {
  flex: none;
  order: -1;
  width: 100%;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__center {
    flex: 0 0 600px;
    order: initial;
    width: auto;
  }
}
.p-recruit .p-recruit-hero__text {
  max-width: 600px;
  padding: 8px;
  align-content: center;
  text-align: left;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__text {
    align-content: initial;
    text-align: center;
  }
}
.p-recruit .p-recruit-hero__quote {
  margin-bottom: 20px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #333;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__quote {
    margin-bottom: 30px;
    font-size: 2.2rem;
  }
}
.p-recruit .p-recruit-hero__desc {
  margin-bottom: 40px;
  font-size: 1.4rem;
  font-weight: 600;
  color: #06c;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__desc {
    margin-bottom: 50px;
    font-size: 1.6rem;
  }
}
.p-recruit .p-recruit-hero__body {
  margin-bottom: 50px;
}
.p-recruit .p-recruit-hero__body p {
  margin-bottom: 20px;
  font-size: 1.1rem;
  line-height: 1.8;
  color: #333;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__body p {
    margin-bottom: 24px;
    font-size: 1.2rem;
  }
}
.p-recruit .p-recruit-hero__body p:last-child {
  margin-bottom: 0;
}
.p-recruit .p-recruit-hero__lead-title {
  margin-bottom: 10px;
  font-size: 1.6rem;
  font-weight: 700;
  color: #06c;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__lead-title {
    font-size: 1.8rem;
  }
}
.p-recruit .p-recruit-hero__lead-subtitle {
  font-size: 1.4rem;
  font-weight: 700;
  color: #06c;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-hero__lead-subtitle {
    font-size: 1.6rem;
  }
}
.p-recruit .p-recruit-hero__image img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.p-recruit .p-recruit-hero__image--02 {
  margin-top: 200px;
}
@media (max-width: 47.99em) {
  .p-recruit .p-recruit-hero__image--02 {
    margin-top: 0;
  }
}
.p-recruit .p-recruit-hero__image--03 {
  max-width: 400px;
  margin-top: 60px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 47.99em) {
  .p-recruit .p-recruit-hero__image--03 {
    margin-top: 40px;
  }
}
.p-recruit .p-recruit-message {
  position: relative;
  padding: 80px 0 120px;
  overflow: hidden;
  background-image: url("assets/img/recruit/bg_message.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.p-recruit .p-recruit-message__content {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-direction: column;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__content {
    flex-direction: row;
    align-items: flex-start;
  }
}
.p-recruit .p-recruit-message__left, .p-recruit .p-recruit-message__right {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 20px;
}
@media (max-width: 61.99em) {
  .p-recruit .p-recruit-message__left, .p-recruit .p-recruit-message__right {
    width: 100%;
    max-width: 400px;
  }
}
.p-recruit .p-recruit-message__center {
  flex: 0 0 600px;
}
@media (max-width: 61.99em) {
  .p-recruit .p-recruit-message__center {
    flex: none;
    order: -1;
    width: 100%;
  }
}
.p-recruit .p-recruit-message__text {
  max-width: 600px;
  padding: 8px;
  align-content: center;
  text-align: left;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__text {
    text-align: center;
  }
}
.p-recruit .p-recruit-message__quote {
  margin-bottom: 20px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #333;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__quote {
    margin-bottom: 30px;
    font-size: 2.2rem;
  }
}
.p-recruit .p-recruit-message__desc {
  margin-bottom: 40px;
  font-size: 1.4rem;
  font-weight: 600;
  color: #06c;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__desc {
    margin-bottom: 50px;
    font-size: 1.6rem;
  }
}
.p-recruit .p-recruit-message__body {
  margin-bottom: 50px;
}
.p-recruit .p-recruit-message__body p {
  margin-bottom: 20px;
  font-size: 1.1rem;
  line-height: 1.8;
  color: #333;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__body p {
    margin-bottom: 24px;
    font-size: 1.2rem;
  }
}
.p-recruit .p-recruit-message__body p:last-child {
  margin-bottom: 0;
}
.p-recruit .p-recruit-message__lead-title {
  margin-bottom: 10px;
  font-size: 1.6rem;
  font-weight: 700;
  color: #06c;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__lead-title {
    font-size: 1.8rem;
  }
}
.p-recruit .p-recruit-message__lead-subtitle {
  font-size: 1.4rem;
  font-weight: 700;
  color: #06c;
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-message__lead-subtitle {
    font-size: 1.6rem;
  }
}
.p-recruit .p-recruit-message__image img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.p-recruit .p-recruit-message__image--02 {
  margin-top: 200px;
}
@media (max-width: 61.99em) {
  .p-recruit .p-recruit-message__image--02 {
    margin-top: 0;
  }
}
.p-recruit .p-recruit-message__image--03 {
  max-width: 400px;
  margin-top: 60px;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 61.99em) {
  .p-recruit .p-recruit-message__image--03 {
    margin-top: 40px;
  }
}
.p-recruit .p-recruit-positions {
  padding: 80px 0;
}
.p-recruit .p-recruit-positions__card {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  margin-top: 40px;
  padding: 40px;
  background-color: #fff;
  border-radius: 8px;
  filter: drop-shadow(0 0 12px rgba(0, 0, 0, 0.15));
}
.p-recruit .p-recruit-positions__explain {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 12px;
  text-align: left;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__explain {
    flex-direction: row;
    gap: 28px;
  }
}
.p-recruit .p-recruit-positions__card-content {
  flex: 1;
}
.p-recruit .p-recruit-positions__card-content-logo {
  width: 120px;
  margin-bottom: 20px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__card-content-logo {
    margin-left: 0;
    margin-right: 0;
  }
}
.p-recruit .p-recruit-positions__card-content-title {
  margin-bottom: 16px;
  font-size: clamp(1.25rem, 0.7885rem + 1.2821vw, 1.75rem);
  font-weight: bold;
  letter-spacing: 0.05em;
  text-align: center;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__card-content-title {
    text-align: left;
  }
}
.p-recruit .p-recruit-positions__card-content-lead {
  font-size: clamp(0.875rem, 0.7596rem + 0.3205vw, 1rem);
  line-height: 1.8;
  text-align: left;
}
.p-recruit .p-recruit-positions__card-image {
  flex: none;
  width: 100%;
  max-width: 234px;
  margin: 0 auto;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__card-image {
    flex: 0 0 234px;
    width: 234px;
    margin: 0;
  }
}
.p-recruit .p-recruit-positions__card-image img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-recruit .p-recruit-positions__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
  }
}
.p-recruit .p-recruit-positions__list li {
  width: 100%;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-positions__list li {
    width: calc(50% - 24px);
  }
}
.p-recruit .p-recruit-positions__list a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  min-width: unset;
  padding: 16px 24px;
  text-align: left;
  color: #fff;
  background-color: #005de1;
  border: none;
  border-radius: 8px;
  position: relative;
  padding-right: 48px;
}
.p-recruit .p-recruit-positions__list a .p-recruit-positions__employment {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: normal;
  opacity: 0.8;
}
.p-recruit .p-recruit-positions__list a .p-recruit-positions__position {
  font-size: 16px;
  font-weight: bold;
}
.p-recruit .p-recruit-positions__list a::after {
  content: "";
  position: absolute;
  top: 0;
  right: 16px;
  bottom: 0;
  width: 16px;
  height: 16px;
  margin: auto;
  background: url(assets/img/common/icon_caret_white.svg) no-repeat center/contain;
  opacity: 0.8;
  transition: transform 0.3s ease;
}
.p-recruit .p-recruit-positions__list a:hover {
  background-color: #0052c8;
}
.p-recruit .p-recruit-positions__list a:hover::after {
  transform: translateX(4px);
}
.p-recruit .p-recruit-positions__list {
  margin-top: 40px;
}
.p-recruit .p-recruit-positions__categories {
  padding: 0;
  margin: 0;
  list-style: none;
}
.p-recruit .p-recruit-positions__category {
  margin-bottom: 40px;
}
.p-recruit .p-recruit-positions__category:last-child {
  margin-bottom: 0;
}
.p-recruit .p-recruit-positions__category-name {
  padding-bottom: 8px;
  margin-bottom: 16px;
  font-size: 1.25rem;
  font-weight: 700;
  border-bottom: 2px solid #004d9c;
}
.p-recruit .p-recruit-positions__items {
  padding: 0;
  margin: 0 0 0 24px;
  list-style: none;
}
.p-recruit .p-recruit-positions__item {
  margin-bottom: 8px;
}
.p-recruit .p-recruit-positions__item:last-child {
  margin-bottom: 0;
}
.p-recruit .p-recruit-positions__link {
  position: relative;
  padding-left: 16px;
  color: inherit;
  text-decoration: none;
}
.p-recruit .p-recruit-positions__link::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 6px;
  height: 6px;
  content: "";
  border-top: 2px solid #004d9c;
  border-right: 2px solid #004d9c;
  transform: translateY(-50%) rotate(45deg);
}
.p-recruit .p-recruit-positions__link:hover {
  color: #004d9c;
}
.p-recruit .p-recruit-benefits {
  padding: 120px 0 100px;
  background-color: #f1f6fa;
}
.p-recruit .p-recruit-benefits__list {
  display: flex;
  flex-flow: column wrap;
  gap: 30px;
  margin-top: 60px;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-benefits__list {
    flex-flow: row wrap;
    gap: 20px;
    margin-top: 80px;
  }
}
.p-recruit .p-recruit-benefits__item {
  flex: 1 1 100%;
  padding: 30px 20px;
  text-align: center;
  background-color: #e2eef8;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-benefits__item {
    flex: 1 1 calc(33.333% - 14px);
    max-width: calc(33.333% - 14px);
    padding: 30px 12px;
  }
}
@media (min-width: 62em) {
  .p-recruit .p-recruit-benefits__item {
    flex: 1 1 calc(20% - 16px);
    max-width: calc(20% - 16px);
    min-width: 180px;
  }
}
.p-recruit .p-recruit-benefits__icon-circle {
  position: relative;
  width: 200px;
  height: 200px;
  margin: 0 auto;
  background: #c8ebff;
  border-radius: 50%;
}
.p-recruit .p-recruit-benefits__title {
  align-content: center;
  color: #06c;
  font-weight: 700;
  margin-bottom: 15px;
  font-size: 1.2em;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-benefits__title {
    margin: 1em 0;
    font-size: 1.4em;
    min-height: 2.5em;
  }
}
.p-recruit .p-recruit-benefits__text {
  margin-bottom: 0;
  color: #333;
  text-align: left;
  font-size: 1em;
  line-height: 1.7;
}
@media (min-width: 48em) {
  .p-recruit .p-recruit-benefits__text {
    font-size: 0.9em;
    line-height: 1.8;
  }
}
.p-recruit .p-recruit-interview {
  position: relative;
  width: 100%;
  padding: 0 0 80px;
  color: #333;
  background-color: #fff;
}
.p-recruit .p-recruit-interview .c-caption {
  position: relative;
  z-index: 10;
  padding-left: center;
  margin-left: 1em;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff; /* 右下 */
}
@media (min-width: 75em) {
  .p-recruit .p-recruit-interview .c-caption {
    text-align: left;
    position: absolute;
    top: 1em;
    left: 4%;
    margin-left: 10px;
  }
}
.p-recruit .p-recruit-interview__links {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  justify-content: flex-end;
  width: 100%;
  max-width: 1464px;
  padding: 0;
  margin-left: auto;
}
@media (min-width: 75em) {
  .p-recruit .p-recruit-interview__links {
    margin-top: 160px;
  }
}
@media (max-width: 61.99em) {
  .p-recruit .p-recruit-interview__links {
    flex-wrap: wrap;
    justify-content: center;
    max-width: none;
    padding: 0 20px;
    margin-left: 0;
  }
}
.p-recruit .p-recruit-interview__link {
  position: relative;
  display: block;
  width: min(480px, (100vw - 40px - 24px) / 3);
  min-width: 304px;
  height: min(760px, (100vw - 40px - 24px) / 3 * 1.583);
  min-height: 480px;
  overflow: hidden;
  transition: transform 0.4s ease;
}
@media (max-width: 47.99em) {
  .p-recruit .p-recruit-interview__link {
    width: min(304px, (100vw - 40px - 24px) / 2);
    min-width: 200px;
    height: min(480px, (100vw - 40px - 24px) / 2 * 1.579);
    min-height: 315px;
  }
}
@media (max-width: 35.99em) {
  .p-recruit .p-recruit-interview__link {
    width: calc(100vw - 40px);
    max-width: 304px;
    height: calc((100vw - 40px) * 1.579);
    max-height: 480px;
  }
}
.p-recruit .p-recruit-interview__link img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-recruit .p-recruit-interview__link::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(to right, #035dac 0%, #0357a6 100%);
  opacity: 0;
  transition: all 0.4s ease;
}
.p-recruit .p-recruit-interview__link:hover::before {
  opacity: 0.8;
}
.p-recruit .p-recruit-interview__link:hover .p-recruit-interview__label {
  text-shadow: none;
}
.p-recruit .p-recruit-interview__label {
  position: absolute;
  bottom: 13%;
  left: 50%;
  z-index: 3;
  max-width: 92%;
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  text-align: center;
  word-break: auto-phrase;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: all 0.4s ease;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.4);
}
.p-recruit .p-recruit-interview__label small {
  display: block;
  padding-bottom: 0.3em;
  margin-bottom: 0.1em;
  font-size: 0.5em;
  border-bottom: solid 1px #fff;
}
.p-recruit .p-recruit-process {
  padding: 80px 0;
  background: #f5f5f5;
}
.p-recruit .p-recruit-process__title {
  margin-bottom: 60px;
  font-size: 2.5rem;
  font-weight: 700;
  color: #333;
  text-align: center;
}
.p-recruit .p-recruit-entry-cta {
  padding: 80px 0;
  text-align: center;
}
.p-recruit .p-recruit-entry-cta__title {
  margin-bottom: 20px;
  font-size: 2.5rem;
  font-weight: 700;
  color: #333;
}
.p-recruit .p-recruit-entry-cta__desc {
  max-width: 600px;
  margin-right: auto;
  margin-bottom: 40px;
  margin-left: auto;
  font-size: 1.2rem;
  line-height: 1.6;
  color: #666;
}
.p-recruit .p-recruit-entry-cta__button .c-button, .p-recruit .p-recruit-entry-cta__button .p-recruit-positions__list a, .p-recruit .p-recruit-positions__list .p-recruit-entry-cta__button a {
  min-width: 240px;
  padding: 15px 40px;
  font-size: 1.2rem;
}

.p-recruit-scroll-btn {
  display: block;
  width: 100%;
  padding: 8px;
  font-family: inherit;
  color: #fff;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  background: #444;
  transition: background 0.2s;
}
.p-recruit-scroll-btn:hover {
  background: #222;
}
.p-recruit-scroll-btn__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.p-recruit-scroll-btn__main {
  margin-bottom: 4px;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media (min-width: 48em) {
  .p-recruit-scroll-btn__main {
    font-size: 2rem;
  }
}
.p-recruit-scroll-btn__num {
  margin: 0 2px;
  font-size: 1.8rem;
  font-weight: 700;
}
@media (min-width: 48em) {
  .p-recruit-scroll-btn__num {
    font-size: 2.2rem;
  }
}
.p-recruit-scroll-btn__desc {
  max-width: 90vw;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.9rem;
  font-weight: 400;
}
@media (min-width: 48em) {
  .p-recruit-scroll-btn__desc {
    max-width: 700px;
    font-size: 1rem;
  }
}
.p-recruit-scroll-btn__icon {
  margin-top: 4px;
  font-size: 1.5rem;
  line-height: 1;
  animation: scroll-btn-bounce 1.2s infinite;
}

@keyframes scroll-btn-bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
}
.p-recruit-company {
  position: relative;
  padding: 100px 0;
  overflow: hidden;
  color: #fff;
  background-color: #4a90e2;
}
.p-recruit-company__scroll {
  position: absolute;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 80px;
  overflow: hidden;
}
.p-recruit-company__scroll--top {
  top: 0;
}
.p-recruit-company__scroll--bottom {
  bottom: 0;
}
.p-recruit-company__scroll::before, .p-recruit-company__scroll::after {
  position: absolute;
  top: 0;
  height: 160px;
  content: "";
  background-image: url("assets/img/recruit/bg_tds_scroll.png");
  background-repeat: repeat-x;
  background-size: 1920px 160px;
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform;
}
.p-recruit-company__scroll--top::before, .p-recruit-company__scroll--top::after {
  background-position: 0 -80px;
  animation: scroll-left 20s linear infinite;
}
.p-recruit-company__scroll--bottom::before, .p-recruit-company__scroll--bottom::after {
  background-position: 0 0;
  animation: scroll-right 20s linear infinite;
}
.p-recruit-company__scroll::before {
  left: 0;
  width: 1920px;
}
.p-recruit-company__scroll::after {
  left: 1920px;
  width: 1920px;
}
.p-recruit-company .c-caption {
  margin-bottom: 80px;
}
.p-recruit-company .c-caption__sub {
  margin-top: 20px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #fff;
}
@media (max-width: 47.99em) {
  .p-recruit-company .c-caption__sub {
    font-size: 1.2rem;
  }
  .p-recruit-company .c-caption__sub br {
    display: none;
  }
}
.p-recruit-company__gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 80px;
}
@media (max-width: 61.99em) {
  .p-recruit-company__gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}
@media (max-width: 47.99em) {
  .p-recruit-company__gallery {
    grid-template-columns: 1fr;
    gap: 40px;
    margin-bottom: 60px;
  }
}
.p-recruit-company__item {
  text-align: center;
}
.p-recruit-company__item img {
  width: 100%;
  height: 200px;
  margin-bottom: 15px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}
@media (max-width: 47.99em) {
  .p-recruit-company__item img {
    height: 250px;
  }
}
.p-recruit-company__title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
}
@media (min-width: 48em) {
  .p-recruit-company__title {
    font-size: 1.3rem;
  }
}
.p-recruit-company__cta {
  margin-bottom: 24px;
  text-align: center;
}
.p-recruit-company__logo {
  margin-bottom: 16px;
}
.p-recruit-company__logo img {
  width: auto;
  height: 60px;
}
@media (max-width: 47.99em) {
  .p-recruit-company__logo img {
    height: 50px;
  }
}

@keyframes scroll-right {
  from {
    transform: translateX(-1920px);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-1920px);
  }
}
.p-recruit-single__header {
  padding: 80px 0;
  background: #e2eef8;
}
.p-recruit-single__header-inner {
  max-width: 1160px;
  padding: 0 20px;
  margin: 0 auto;
}
.p-recruit-single__title {
  font-size: 2rem;
  font-weight: 700;
  color: #004d9c;
  text-align: center;
}
.p-recruit-single__content {
  padding: 60px 0;
}
.p-recruit-single__content-inner {
  max-width: 800px;
  padding: 0 20px;
  margin: 0 auto;
}

.p-recruit-guideline__card {
  max-width: 960px;
  padding: 40px;
  margin: 100px auto;
  background-color: #fff;
  border-radius: 8px;
  filter: drop-shadow(0 0 12px rgba(0, 0, 0, 0.15));
}
@media (max-width: 47.99em) {
  .p-recruit-guideline__card {
    padding: 24px;
    margin: 50px 10px;
  }
}
.p-recruit-guideline__header {
  margin-bottom: 40px;
  text-align: left;
}
.p-recruit-guideline__department {
  margin-bottom: 16px;
  letter-spacing: 0.2em;
}
.p-recruit-guideline__department img {
  width: 300px;
  height: auto;
}
.p-recruit-guideline__description {
  margin-bottom: 40px;
  font-size: 0.875rem;
  line-height: 1.8;
}
.p-recruit-guideline__position {
  margin-bottom: 40px;
  font-size: 2rem;
  font-weight: 700;
  color: #8cc63f;
  text-align: center;
  letter-spacing: 0.25em;
  word-break: auto-phrase;
}
.p-recruit-guideline__table {
  width: 100%;
  border-collapse: collapse;
}
.p-recruit-guideline__row {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid #d1d1d1;
}
@media (max-width: 47.99em) {
  .p-recruit-guideline__row {
    display: block;
  }
}
.p-recruit-guideline__head {
  width: 200px;
  padding: 24px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #8cc63f;
  background-color: #fbfbfb;
}
@media (max-width: 47.99em) {
  .p-recruit-guideline__head {
    width: 100%;
    padding: 12px 16px;
  }
}
.p-recruit-guideline__data {
  flex: 1;
  padding: 24px;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.8;
  color: #3f3f3f;
}
@media (max-width: 47.99em) {
  .p-recruit-guideline__data {
    width: 100%;
    padding: 16px;
  }
}

.p-recruit-flow {
  padding: 80px 0;
  background-color: #e2eef8;
}
.p-recruit-flow__inner {
  max-width: 728px;
  padding: 0 20px;
  margin: 0 auto;
}
.p-recruit-flow__title {
  margin-bottom: 60px;
  font-size: 2rem;
  font-weight: 700;
  color: #035cab;
  text-align: center;
}
.p-recruit-flow__item {
  position: relative;
  display: flex;
  padding: 24px 32px;
  margin-bottom: 40px;
  background-color: #fff;
  border-radius: 8px;
}
@media (max-width: 47.99em) {
  .p-recruit-flow__item {
    flex-direction: column;
    padding: 20px;
    margin-bottom: 32px;
  }
}
.p-recruit-flow__item:not(:last-child)::after {
  position: absolute;
  bottom: -24px;
  left: 50%;
  width: 0;
  height: 0;
  content: "";
  border-color: #1f82be transparent transparent;
  border-style: solid;
  border-width: 12px 12px 0;
  transform: translateX(-50%);
}
@media (max-width: 47.99em) {
  .p-recruit-flow__item:not(:last-child)::after {
    bottom: -20px;
  }
}
.p-recruit-flow__step {
  display: flex;
  align-items: center;
  width: 50%;
  padding-right: 16px;
}
@media (max-width: 47.99em) {
  .p-recruit-flow__step {
    width: 100%;
    padding-right: 0;
    margin-bottom: 12px;
  }
}
.p-recruit-flow__step-number {
  margin-right: 16px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f82be;
}
.p-recruit-flow__step-title {
  font-size: 1.125rem;
  font-weight: 700;
}
.p-recruit-flow__content {
  display: flex;
  align-items: center;
  width: 50%;
  font-size: 0.875rem;
  line-height: 1.8;
}
@media (max-width: 47.99em) {
  .p-recruit-flow__content {
    width: 100%;
  }
}

.p-entry__header {
  padding: 80px 0;
  background: #e2eef8;
}
.p-entry__header-inner {
  max-width: 1160px;
  padding: 0 20px;
  margin: 0 auto;
}
.p-entry__content {
  padding: 80px 0;
}

.p-entry-form {
  font-size: clamp(1rem, 0.8846rem + 0.3205vw, 1.125rem);
  font-size: unset;
}
.p-entry-form__inner {
  max-width: 800px;
  margin: 0 auto;
}
.p-entry-form__items {
  margin-bottom: 60px;
}
.p-entry-form__item {
  display: flex;
  padding: 24px 0;
  border-bottom: 1px solid #e5e5e5;
}
@media (max-width: 47.99em) {
  .p-entry-form__item {
    flex-direction: column;
    padding: 16px 0;
  }
}
.p-entry-form__item--compact {
  display: inline-flex;
  width: 70%;
}
.p-entry-form__item--compact span.horizontal-item + span.horizontal-item {
  margin-left: 32px;
}
@media (max-width: 47.99em) {
  .p-entry-form__item--compact {
    width: 100%;
  }
}
.p-entry-form__item dt {
  width: 200px;
  padding-right: 24px;
  font-weight: 700;
}
@media (max-width: 47.99em) {
  .p-entry-form__item dt {
    width: 100%;
    padding-right: 0;
    margin-bottom: 12px;
  }
}
.p-entry-form__item dd {
  flex: 1;
  margin: 0;
}
.p-entry-form__required {
  display: inline-block;
  margin-left: 8px;
  font-size: 0.75em;
  color: #e83828;
}
.p-entry-form__input {
  width: 100%;
  padding: 12px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}
.p-entry-form__input:focus {
  outline: none;
  border-color: #004d9c;
}
.p-entry-form__input--short {
  width: 100px;
}
.p-entry-form__unit {
  margin-left: 8px;
}
.p-entry-form__select {
  width: 100%;
  padding: 12px;
  background-color: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}
.p-entry-form__select:focus {
  outline: none;
  border-color: #004d9c;
}
.p-entry-form__textarea {
  width: 100%;
  min-height: 120px;
  padding: 12px;
  resize: vertical;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}
.p-entry-form__textarea:focus {
  outline: none;
  border-color: #004d9c;
}
.p-entry-form__privacy {
  padding: 32px;
  margin-bottom: 60px;
  background-color: #f8f8f8;
  border-radius: 8px;
}
.p-entry-form__privacy-title {
  margin-bottom: 24px;
  font-size: 1.125em;
  font-weight: 700;
  text-align: center;
}
.p-entry-form__privacy-title small {
  display: block;
  font-size: 0.8em;
  color: #888;
}
.p-entry-form__privacy-content {
  max-height: 200px;
  padding: 24px;
  margin-bottom: 24px;
  overflow-y: auto;
  font-size: 0.875em;
  background-color: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}
.p-entry-form__privacy-content h3,
.p-entry-form__privacy-content h4 {
  font-size: 1.1em;
}
.p-entry-form__privacy-content h3:not(:first-child),
.p-entry-form__privacy-content h4:not(:first-child) {
  margin-top: 2em;
}
.p-entry-form__privacy-content * {
  font-size: 0.8rem;
}
.p-entry-form__privacy-accept {
  text-align: center;
}
.p-entry-form__buttons {
  text-align: center;
}
.p-entry-form__buttons .c-button, .p-entry-form__buttons .p-recruit .p-recruit-positions__list a, .p-recruit .p-recruit-positions__list .p-entry-form__buttons a {
  min-width: 200px;
  margin: 0 8px;
}
.p-entry-form__complete-inner {
  margin-bottom: 3em;
}
.p-entry-form .u-error {
  display: block;
  margin-top: 4px;
  font-size: 0.875em;
  color: #e83828;
}
.p-entry-form .mwform-radio-field {
  display: inline-block;
  margin-right: 1em;
}
.p-entry-form .mwform-radio-field label {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center !important;
  line-height: 1;
}
.p-entry-form .mwform-radio-field label input[type=radio] {
  width: 1em;
  height: 1em;
  margin-right: 0.25em;
}

.p-top {
  min-height: 100dvh;
}
.p-top-entrance {
  flex: 1;
  padding: 10px;
}
@media (min-width: 48em) {
  .p-top-entrance {
    padding: 20px 20px;
  }
}
.p-top-entrance__inner {
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media (min-width: 48em) {
  .p-top-entrance__inner {
    gap: 4px;
  }
}
.p-top-entrance__logos {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
  width: 80%;
  max-width: 400px;
}
@media (min-width: 48em) {
  .p-top-entrance__logos {
    width: auto;
    max-width: none;
  }
}
.p-top-entrance__logo {
  display: flex;
  justify-content: center;
}
.p-top-entrance__logo img {
  width: 100%;
  min-width: 320px;
  max-width: 400px;
  height: auto;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.2));
}
.p-top-entrance__select {
  pointer-events: none;
  color: #fff;
  font-weight: 700;
  text-align: center;
  z-index: 1;
  letter-spacing: 0.25em;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.5));
}
@media (min-width: 48em) {
  .p-top-entrance__select {
    letter-spacing: normal;
  }
}
.p-top-entrance__select--pc {
  display: none;
}
@media (min-width: 48em) {
  .p-top-entrance__select--pc {
    display: flex;
    justify-content: space-around;
    gap: 16px;
    letter-spacing: 0.25em;
    font-size: clamp(1.25rem, 0.7885rem + 1.2821vw, 1.75rem);
  }
}
.p-top-entrance__select--sp {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  padding: 2px 0.25em;
  border: 1px solid #fff;
  border-radius: 4px;
  font-size: 1.5em;
  filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.8));
}
@media (min-width: 48em) {
  .p-top-entrance__select--sp {
    display: none;
  }
}
.p-top-entrance__main {
  position: relative;
  display: flex;
  gap: 0;
  overflow: hidden;
  flex-direction: column;
  height: 90vh;
  height: 90dvh;
}
@media (min-width: 48em) {
  .p-top-entrance__main {
    flex-direction: row;
    height: auto;
  }
}
.p-top-entrance__sub {
  display: flex;
  gap: 0;
  overflow: hidden;
  margin-top: 0;
  flex-direction: column;
  margin-top: 0;
  gap: 16px;
}
.p-top-entrance__sub .p-top-entrance__button {
  position: relative;
  width: 100%;
  height: auto;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 120px;
}
.p-top-entrance__sub .p-top-entrance__button::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  display: block;
  transition: all 0.3s ease;
  background-color: #005de1;
  z-index: 1;
}
.p-top-entrance__sub .p-top-entrance__button img {
  position: relative;
  -o-object-fit: contain;
     object-fit: contain;
  max-width: 326px;
  z-index: 2;
  -o-object-position: center;
     object-position: center;
  left: initial;
  bottom: initial;
}
@media (min-width: 48em) {
  .p-top-entrance__sub .p-top-entrance__button img {
    -o-object-position: bottom;
       object-position: bottom;
    left: 16px;
    bottom: 16px;
  }
}
.p-top-entrance__sub .p-top-entrance__button:hover::before {
  background-color: rgba(0, 93, 225, 0);
}
.p-top-entrance__sub .p-top-entrance__button--drone {
  background-image: url(assets/img/top/top_entrance_drone.jpg);
}
.p-top-entrance__sub .p-top-entrance__button--machine {
  background-image: url(assets/img/top/top_entrance_machine.jpg);
}
.p-top-entrance__sub .p-top-entrance__button--tekisei {
  background-image: url(assets/img/top/top_entrance_tekisei.jpg);
}
@media (min-width: 48em) {
  .p-top-entrance__sub {
    flex-direction: row;
    gap: 0;
  }
}
.p-top-entrance__announce {
  position: absolute;
  right: 8px;
  bottom: 4px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.6));
}
@media (min-width: 48em) {
  .p-top-entrance__announce {
    font-size: 12px;
  }
}
.p-top-entrance__button {
  display: block;
  position: relative;
  overflow: hidden;
}
.p-top-entrance__button--large {
  flex: 1;
  aspect-ratio: 915/640;
  overflow: hidden;
  width: 100%;
}
.p-top-entrance__button--large:first-of-type {
  border-radius: 20px 20px 0 0;
}
@media (min-width: 48em) {
  .p-top-entrance__button--large:first-of-type {
    border-radius: 20px 0 0 0;
  }
}
.p-top-entrance__button--large:last-of-type {
  border-radius: 0 0 20px 20px;
}
@media (min-width: 48em) {
  .p-top-entrance__button--large:last-of-type {
    border-radius: 0 20px 0 0;
  }
}
@media (min-width: 48em) {
  .p-top-entrance__button--large {
    width: auto;
  }
}
.p-top-entrance__sub .p-top-entrance__button {
  border-radius: 16px;
  text-align: center;
}
@media (min-width: 48em) {
  .p-top-entrance__sub .p-top-entrance__button {
    text-align: initial;
    border-radius: 0;
  }
}
@media (min-width: 48em) {
  .p-top-entrance__sub .p-top-entrance__button--drone {
    border-radius: 0 0 0 20px;
  }
}
@media (min-width: 48em) {
  .p-top-entrance__sub .p-top-entrance__button--machine {
    border-radius: 0;
  }
}
@media (min-width: 48em) {
  .p-top-entrance__sub .p-top-entrance__button--tekisei {
    border-radius: 0 0 20px 0;
  }
}
.p-top-entrance__button img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
  vertical-align: middle;
}
.p-top-entrance__button::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  transform: skewX(-25deg);
  transition: none;
  pointer-events: none;
  z-index: 2;
}
@media (hover: hover) {
  .p-top-entrance__button:hover::after {
    left: 100%;
    transition: left 0.6s ease;
  }
}
.p-top-summary {
  padding: 4px 0;
  color: #999;
  font-size: 11px;
  text-align: left;
  line-height: 1.5;
}
.p-top-info {
  padding: 0 20px 10px;
}
.p-top-info__inner {
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  gap: 20px;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (min-width: 48em) {
  .p-top-info__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: initial;
  }
}
.p-top-info__logo img {
  height: 24px;
  width: auto;
}
.p-top-info__group {
  padding: 0 0.25em;
  color: #004d9c;
  font-size: clamp(0.875rem, 0.6442rem + 0.641vw, 1.125rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.25em;
  text-align: center;
}
@media (min-width: 48em) {
  .p-top-info__group {
    align-self: flex-start;
    flex-grow: 1;
    text-align: initial;
  }
}
.p-top-info__buttons {
  display: flex;
  flex-grow: 0;
  gap: 12px;
}
.p-top-info__buttons .c-button {
  min-width: 120px;
}
.p-top-footer {
  padding: 20px;
  border-top: 1px solid #e5e5e5;
}
.p-top-footer__inner {
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 48em) {
  .p-top-footer__inner {
    flex-direction: row;
    justify-content: space-between;
    gap: 20px;
  }
}
.p-top-footer__links {
  display: flex;
  gap: 12px;
  align-items: center;
}
@media (max-width: 35.99em) {
  .p-top-footer__links {
    flex-wrap: wrap;
    justify-content: center;
  }
}
.p-top-footer__link img {
  width: auto;
}
.p-top-footer__copyright {
  padding: 0 1em;
  color: #999;
  font-size: 0.75rem;
  text-align: right;
}

.p-interview-hero {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: auto;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}
@media (min-width: 48em) {
  .p-interview-hero {
    height: 720px;
    min-height: auto;
  }
}
.p-interview-hero__inner {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  line-height: 1;
}
@media (max-width: 47.99em) {
  .p-interview-hero__inner {
    flex-direction: column;
    padding-top: 40px;
    gap: 20px;
  }
}
.p-interview-hero__content {
  position: relative;
  flex: 1;
  flex-grow: 1;
  justify-content: center;
  display: flex;
  width: 100%;
  margin-inline: auto;
}
@media (min-width: 48em) {
  .p-interview-hero__content {
    width: auto;
    margin-inline: 0;
    min-height: 400px;
  }
}
.p-interview-hero__meta {
  margin: 0;
}
@media (max-width: 47.99em) {
  .p-interview-hero__meta {
    margin-top: 40px;
  }
  .p-interview-hero__meta .c-caption {
    margin: 0;
  }
}
@media (min-width: 48em) {
  .p-interview-hero__meta {
    margin-bottom: 60px;
  }
}
.p-interview-hero__year {
  font-size: clamp(1rem, 0.7692rem + 0.641vw, 1.25rem);
  display: inline-block;
  width: 100%;
  max-width: 200px;
  margin-bottom: 0.25em;
  padding-bottom: 0.25em;
  border-bottom: 1px solid #fff;
}
@media (max-width: 47.99em) {
  .p-interview-hero__year {
    font-size: 1.4rem;
    margin-bottom: 0.8em;
    padding-bottom: 0.8em;
  }
}
.p-interview-hero__heading {
  font-size: clamp(1.5rem, 0.3462rem + 3.2051vw, 2.75rem);
  margin: 0;
}
@media (min-width: 48em) {
  .p-interview-hero__heading {
    line-height: 1.4;
    margin: 16px 0 0;
  }
}
.p-interview-hero__image {
  display: flex;
  flex-shrink: 1;
  flex: 0 0 auto;
  width: 585px;
  max-width: 100%;
}
.p-interview-hero__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 585/695;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 47.99em) {
  .p-interview-hero__image {
    width: 100%;
    max-width: 585px;
    margin: -40px auto;
  }
}
.p-interview-hero__return {
  position: absolute;
  left: 0;
  bottom: 0;
  text-decoration: none;
  z-index: 2;
}
.p-interview-hero__return-box {
  width: 120px;
  height: 120px;
  background-color: #f1f6fa;
  border-radius: 0 20px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease;
}
@media (max-width: 47.99em) {
  .p-interview-hero__return-box {
    width: 40px;
    height: 40px;
    border-radius: 0 8px 0 0;
  }
}
.p-interview-hero__return-box:hover {
  opacity: 0.8;
}
.p-interview-hero__return-box img {
  width: auto;
  height: auto;
  max-width: 50%;
}
.p-interview-qa {
  position: relative;
  background: linear-gradient(180deg, #f1f6fa 0%, #f1f6fa calc(100% - 540px), #fff calc(100% - 540px), #fff 100%);
  padding: 80px 0 140px;
}
.p-interview-qa__inner {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  gap: 40px;
}
@media (max-width: 47.99em) {
  .p-interview-qa__inner {
    flex-direction: column;
    gap: 20px;
  }
}
.p-interview-qa__left {
  min-width: 280px;
  position: sticky;
  top: 80px;
  height: -moz-fit-content;
  height: fit-content;
}
@media (max-width: 47.99em) {
  .p-interview-qa__left {
    width: 100%;
    min-width: 100%;
    position: static;
  }
}
.p-interview-qa__right {
  max-width: 700px;
  flex-grow: 1;
}
@media (max-width: 47.99em) {
  .p-interview-qa__right {
    width: 100%;
    max-width: 100%;
  }
}
.p-interview-qa__image {
  width: 100%;
  max-width: 980px;
  margin-top: 80px;
  margin-bottom: 0;
  margin-inline: auto;
}
.p-interview-qa__image img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}
.p-interview-qa__profile {
  margin-bottom: 40px;
}
.p-interview-qa__title {
  width: 100%;
  font-size: 24px;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 16px;
  color: #1f82be;
  display: inline-block;
  position: relative;
  padding-bottom: 8px;
}
.p-interview-qa__title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #1f82be;
}
.p-interview-qa__meta {
  display: inline-flex;
  flex-flow: row wrap;
  gap: 8px;
}
@media (min-width: 48em) {
  .p-interview-qa__meta {
    display: flex;
    flex-flow: column wrap;
  }
}
.p-interview-qa__tag {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  align-items: center;
  padding: 4px 12px;
  background-color: #fff;
  border: 1px solid #1f82be;
  border-radius: 100vh;
  font-size: 14px;
  color: #1f82be;
  font-weight: 700;
}
.p-interview-qa__items {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.p-interview-qa__item {
  margin-bottom: 0;
}
.p-interview-qa__question {
  margin-bottom: 16px;
}
.p-interview-qa__question h3 {
  font-weight: 700;
  color: #1f82be;
  position: relative;
  padding-left: 80px;
}
.p-interview-qa__question h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 71px;
  height: 71px;
  background: url("assets/img/recruit/icon_question.png") no-repeat center/contain;
}
.p-interview-qa__answer {
  position: relative;
  padding-left: 80px;
}
.p-interview-qa__answer p {
  font-size: clamp(0.875rem, 0.7596rem + 0.3205vw, 1rem);
  margin-bottom: 16px;
  line-height: 1.6;
}
.p-interview-qa__answer p:last-child {
  margin-bottom: 0;
}
.p-interview-schedule {
  background-color: #f1f6fa;
  padding: 80px 0;
}
.p-interview-schedule__table {
  max-width: 800px;
  margin: 0 auto;
}
.p-interview-schedule__row {
  display: flex;
  margin-bottom: 24px;
  position: relative;
}
.p-interview-schedule__row:last-child {
  margin-bottom: 0;
}
.p-interview-schedule__row:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 40px;
  left: 16px;
  height: calc(100% + 24px);
  width: 2px;
  background-color: #ddd;
}
@media (min-width: 48em) {
  .p-interview-schedule__row:not(:last-child)::after {
    left: 60px;
  }
}
.p-interview-schedule__time {
  flex: 0 0 32px;
  font-weight: 700;
  color: #1f82be;
  position: relative;
  z-index: 2;
}
@media (min-width: 48em) {
  .p-interview-schedule__time {
    flex: 0 0 120px;
    font-size: 18px;
  }
}
.p-interview-schedule__content {
  flex: 1;
  padding-left: 16px;
}
@media (min-width: 48em) {
  .p-interview-schedule__content {
    padding-left: 0;
  }
}
.p-interview-schedule__title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
}
@media (min-width: 48em) {
  .p-interview-schedule__title {
    font-size: 18px;
  }
}
.p-interview-schedule__text {
  font-size: 14px;
}
@media (min-width: 48em) {
  .p-interview-schedule__text {
    font-size: 16px;
  }
}
.p-interview-others {
  padding: 80px 0;
}
.p-interview-others__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 48em) {
  .p-interview-others__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-interview-others__item {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}
.p-interview-others__item:hover {
  transform: translateY(-4px);
}
.p-interview-others__link {
  display: block;
  text-decoration: none;
  color: #3f3f3f;
}
.p-interview-others__image {
  height: 200px;
  overflow: hidden;
}
.p-interview-others__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-interview-others__info {
  padding: 16px;
}
.p-interview-others__name {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
}
.p-interview-others__position {
  font-size: 14px;
  color: #808080;
}

.p-entry-cta {
  background-color: #f1f6fa;
  padding: 80px 0;
  text-align: center;
}
.p-entry-cta__text {
  max-width: 600px;
  margin: 0 auto 32px;
  font-size: 16px;
  line-height: 1.6;
}
.p-entry-cta__button .c-button {
  display: inline-block;
  padding: 16px 32px;
  background-color: #1f82be;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 700;
  transition: background-color 0.3s ease;
}
.p-entry-cta__button .c-button:hover {
  background-color: #4c9adf;
}

/*!
utility > utility
------------------------------
*/
.u-ptb {
  padding: 64px 0 !important;
}

.u-disable {
  pointer-events: none;
}
.u-disable * {
  pointer-events: none;
}

.u-small {
  font-size: 0.8em !important;
}

.u-large {
  font-size: 1.4em !important;
}

.u-bold {
  font-weight: 700 !important;
}

.u-mb16 {
  margin-bottom: 16px !important;
}

.u-mb32 {
  margin-bottom: 32px !important;
}

.u-mt16 {
  margin-top: 16px !important;
}

.u-mt32 {
  margin-top: 32px !important;
}

.u-text-primary {
  color: #0066cc !important;
}

.u-text-accent {
  color: #ff9900 !important;
}

.u-text-dark {
  color: #333 !important;
}

.u-text-light {
  color: #fff !important;
}

@layer reset, base, layout, components, utilities;