@charset "UTF-8";

/* GoogleFonts読み込み 下記のライセンス記述は削除禁止 */
/*
* "Noto Sans JP" licensed under the SIL Open Font License 1.1
* by https://fonts.google.com/specimen/Noto+Sans+JP
*/
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/NS-400.woff2") format("woff2"), url("fonts/NS-400.woff") format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("fonts/NS-700.woff2") format("woff2"), url("fonts/NS-700.woff") format("woff");
  font-display: swap;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

/*
---------------------------------------------

    base settings

*/
:root {
  font-size: 62.5%;
  --s-2: calc(var(--s1) / 2);
  --s1: 0.8rem;
  --s2: calc(var(--s1) * 2);
  --s3: calc(var(--s1) * 3);
  --s4: calc(var(--s1) * 4);
  --s5: calc(var(--s1) * 5);
  --s6: calc(var(--s1) * 6);
  --s7: calc(var(--s1) * 7);
  --s8: calc(var(--s1) * 8);
  --s9: calc(var(--s1) * 9);
  --s10: calc(var(--s1) * 10);
  --s11: calc(var(--s1) * 11);
  --s12: calc(var(--s1) * 12);
}

@media screen and (max-width: 1100px) {
  :root {
    font-size: 0.9090909091vw;
  }
}

body {
  margin: 0;
  padding: 0;
  color: #101010;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.7;
  -webkit-text-size-adjust: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-weight: normal;
  clear: both;
}

ul,
ol,
dl,
p,
img,
form,
dt,
dd,
figure {
  margin: 0;
  padding: 0;
  border: 0;
}

li {
  list-style: none;
}

input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  font-size: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

img.img-height {
  width: auto;
  max-width: inherit;
  height: 100%;
}

a {
  color: #101010;
  transition: opacity 0.3s ease, color 0.3s ease;
  outline: none;
}

a:active {
  color: #101010;
  text-decoration: none;
}

@media (hover: hover) {
  a:hover {
    color: #101010;
    text-decoration: none;
  }
}

p {
  line-height: 1.7;
}

p+p {
  margin-top: 1em;
}

strong {
  font-weight: 700;
}

em {
  font-style: italic;
  font-weight: normal;
}

small {
  font-size: 80%;
}

* {
  box-sizing: border-box;
}

.sp_br {
  display: none;
}

.pc_br {
  display: inline;
}

@media screen and (min-width: 768px) {
  .for-sp {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .for-pc {
    display: none;
  }
}

@media screen and (max-width: 767px) {

  :root {
    --sp-decoration-line-width: 1.5px;
    font-size: 2.6666666667vw;
  }

  html {
    overflow-x: clip;
  }

  body {
    font-size: 1.5rem;
    padding-bottom: 6.2rem;
    overflow-x: clip;
  }

  .sp_br {
    display: inline;
  }

  .pc_br {
    display: none;
  }
}


/*
---------------------------------------------

    layout center

*/
.l-center {
  max-width: 110rem;
  margin-right: auto;
  margin-left: auto;
  r box-sizing: content-box;
}

@media screen and (max-width: 767px) {

  .l-center {
    padding-right: var(--s2);
    padding-left: var(--s2);
    box-sizing: border-box;
  }

}

/*
---------------------------------------------

    layout grid

*/
.l-grid {
  --minmum: calc((100% - var(--s5)) / 2);
  display: grid;
  grid-gap: var(--s4) var(--s5);
}


.l-grid-three {
  --minmum: calc((100% - var(--s4) * 2) / 3);
  display: grid;
  grid-gap: var(--s4);
}


.l-grid-four {
  --minmum: calc((100% - var(--s2) * 3) / 4);
  display: grid;
  grid-gap: var(--s4) var(--s2);
}

@supports (width: min(var(--minmum), 100%)) {

  .l-grid,
  .l-grid-three,
  .l-grid-four {
    grid-template-columns: repeat(auto-fill, minmax(min(var(--minmum), 100%), 1fr));
  }
}

@media screen and (max-width: 767px) {
  .l-grid {
    grid-gap: var(--s4);
    grid-template-columns: 100%;
  }

  .l-grid-three {
    grid-gap: var(--s2);
    grid-template-columns: 100%;
  }

  .l-grid-four {
    grid-gap: var(--s3);
    grid-template-columns: 100%;
  }
}

/*
---------------------------------------------

    layout column

*/
.l-column {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s6);
}

.l-column__side {
  width: 30rem;
}

.l-column__main {
  flex: 1;
}

.l-column--row-reverse {
  flex-direction: row-reverse;
}

.l-column--align-center {
  align-items: center;
}

@media screen and (max-width: 767px) {
  .l-column {
    gap: var(--s2);
  }

  .l-column__side {
    width: 100%;
  }

  .l-column__main {
    width: 100%;
  }
}

/*
---------------------------------------------

    titles

*/
.pr-text {
  font-size: 1.1rem;
}

.main-area h1,
.main-area h2,
.main-area h3,
.main-area h4,
.main-area h5,
.main-area h6 {
  word-wrap: break-word;
}


@media (hover: hover) {

  .main-area h2:not([class]) a:hover,
  .main-area h3:not([class]) a:hover,
  .main-area h4:not([class]) a:hover,
  .main-area h5:not([class]) a:hover,
  .main-area h6:not([class]) a:hover {
    opacity: 0.6;
  }
}

h1:not([class]) {
  max-width: 86rem;
  min-height: 14.5rem;
  margin: 0 auto;
  font-size: 4.8rem;
  font-weight: 900;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}


/*
---------------------------------------------

	text

*/
.marker {
  font-weight: 700;
  background: linear-gradient(transparent 60%, #fffeb8 60%);
}

.txt_bold {
  font-weight: 700;
  color: var(--color-main-blue)
}


/*
---------------------------------------------

    リスト

*/
ul:not([class]),
ol:not([class]) {
  margin: var(--s5) 0;
}

ul:not([class]) li,
ol:not([class]) li {
  margin: var(--s1) 0;
  position: relative;
  padding-left: 1.2em;
  counter-increment: number;
}

ol:not([class]) {
  counter-reset: number;
}

ul:not([class]) li::before {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 10px;
  background: var(--color-red);
  top: 6px;
  left: 0;
}

ol:not([class]) li {
  padding-left: 2.3em;
}

ol:not([class]) li::before {
  content: counter(number);
  width: 1.6em;
  height: 1.6em;
  background: #2A63B7;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: 700;
  position: absolute;
  top: 0;
  left: 0;
  color: #fff;
}

/*
---------------------------------------------

    caption

*/
.caption {
  margin-top: 2rem;
  display: block;
  color: #999;
  font-size: 1rem;
  line-height: 1.5;
  text-align: left;
  word-break: break-all;
}

.caption a {
  color: #999;
}

@media screen and (max-width: 767px) {

  .caption {
    font-size: 0.9rem;
  }

  .caption-scroll {
    font-size: 0.9rem;
  }

  .caption-scroll::-webkit-scrollbar {
    height: 0.4rem;
  }

  .caption-scroll::-webkit-scrollbar-track {
    border-radius: 0.2rem;
  }

  .caption-scroll::-webkit-scrollbar-thumb {
    border-radius: 0.2rem;
  }
}


/*
---------------------------------------------

    float wrap

*/
.float-wrap {
  display: flow-root;
  margin: var(--s4) 0;
}

.float-wrap .float-img.fr {
  width: 37rem;
  margin-left: var(--s5);
  margin-bottom: var(--s2);
  float: right;
}

.float-wrap .float-img.fl {
  width: 37rem;
  margin-right: var(--s5);
  margin-bottom: var(--s2);
  float: left;
}

.float-wrap .float-img.ct {
  width: 48rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--s2);
}

.float-wrap .catch-01 {
  font-size: 2.0rem;
  font-weight: 900;
  color: #2A63B7;
}

@media screen and (max-width: 767px) {

  .float-wrap .float-img.fr {
    width: 100%;
    margin-left: 0;
    float: none;
  }

  .float-wrap .float-img.fl {
    width: 100%;
    margin-right: 0;
    float: none;
  }

  .float-wrap .float-img.ct {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

/*
---------------------------------------------

    table

*/
table {
  width: 100%;
  margin: var(--s5) 0;
  border-collapse: collapse;
  border-top: 1px solid #c7c7c7;
  border-left: 1px solid #c7c7c7;
}

table th,
table td {
  padding: var(--s2);
  border-right: solid 1px #c7c7c7;
  border-bottom: solid 1px #c7c7c7;
  line-height: 1.5;
  word-break: break-all;
}

table th {
  background: #f3f3f3;
}

table td {
  background: #fff;
}

table tbody th {
  background: #f3f3f3;
}

.l-scroll-x table {
  width: inherit;
}

.l-scroll-x table th,
.l-scroll-x table td {
  min-width: 20rem;
}

@media screen and (max-width: 767px) {

  .sp-table thead,
  .sp-table tbody,
  .sp-table tr {
    display: block;
  }

  .sp-table th,
  .sp-table td {
    width: 100%;
    display: block;
  }

  .sp-table th.for-pc,
  .sp-table td.for-pc {
    display: none;
  }

  .table-label thead {
    display: none;
  }

  .table-label tbody th {
    background: #f3f3f3;
  }

  .table-label td {
    padding: 0;
    display: flex;
    position: relative;
  }

  .table-label td::before {
    content: attr(data-label);
    width: 7em;
    background: #f3f3f3;
    border-right: solid 1px #c7c7c7;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 700;
    text-align: center;
  }

  .table-label__cell {
    padding: var(--s1) var(--s2);
  }
}

@media screen and (max-width: 767px) {

  /*
  ---------------------------------------------

      sp layout scroll

  */
  .l-scroll-x-sp {
    width: 100%;
    margin: var(--s2) 0 var(--s4);
    padding-bottom: 0.6rem;
    overflow-x: scroll;
    overflow-y: hidden;
  }

  .l-scroll-x-sp::-webkit-scrollbar {
    height: 0.6rem;
  }

  .l-scroll-x-sp::-webkit-scrollbar-track {
    border-radius: 0.3rem;
    background: #eee;
  }

  .l-scroll-x-sp::-webkit-scrollbar-thumb {
    border-radius: 0.3rem;
    background: #ddd;
  }

  .l-scroll-x-sp table,
  .l-scroll-x-sp img {
    max-width: initial;
  }

  .l-scroll-x-sp table {
    margin: 0;
    max-width: initial;
    width: 70rem;
  }
}


/*
---------------------------------------------

    btn

*/
.btn-internal {
  margin: var(--s5) auto;
  position: relative;
}

.btn-internal a {
  width: 40rem;
  height: 100%;
  min-height: var(--s9);
  margin: 0 auto;
  padding: var(--s1) var(--s7);
  background: var(--color-red) url(img/arrow-wh.svg) no-repeat center right 3rem/1.5rem auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  position: relative;
  z-index: 1;
  transform: translate(0, 0);
  transition: transform 0.3s;
  border-radius: 4px;
}

.btn-web {
  margin: var(--s5) auto;
  position: relative;
}

.btn-web a {
  width: 40rem;
  height: 100%;
  min-height: var(--s9);
  margin: 0 auto;
  padding: var(--s1) var(--s7);
  background: var(--color-red) url(img/arrow-wh.svg) no-repeat center right 3rem/2rem auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  position: relative;
  z-index: 1;
  transform: translate(0, 0);
  transition: transform 0.3s;
  border-radius: 4px;
}


@media (hover: hover) {

  .btn-internal a:hover,
  .btn-web a:hover {}
}

.btn-link {
  margin: var(--s2) auto;
  text-align: right;
}

.btn-link a {
  margin: 0;
  padding: var(--s1) var(--s4) var(--s1) 0;
  background: url("img/arrow-wh.svg") no-repeat center right/2.2rem auto;
  display: inline-block;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: underline;
}

@media (hover: hover) {
  .btn-link a:hover {
    text-decoration: none;
    opacity: 0.6;
  }
}

.btn-tel {
  display: none;
}

.btn-column {
  margin: var(--s5) 0;
  display: flex;
  justify-content: center;
  gap: var(--s5);
}

.btn-column .btn-web,
.btn-column .btn-internal {
  margin: 0;
}

@media screen and (max-width: 767px) {
  .btn-tel {
    margin: var(--s3) auto;
    display: block;
    position: relative;
  }

  .btn-tel a {
    width: 84%;
    min-height: var(--s7);
    margin: 0 auto;
    padding: var(--s1) var(--s6);
    background: #CA6908 url("img/icon-tel.svg") no-repeat center left var(--s3)/2.2rem auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    line-height: 1.5;
    color: #fff;
    text-align: center;
    text-decoration: none;
    position: relative;
    border-radius: 4px;
  }

  .btn-internal,
  .btn-web {
    margin: var(--s3) auto;
  }

  .btn-internal a,
  .btn-web a {
    width: 84%;
    min-height: var(--s7);
    background-position: right 2rem center;
  }

  .btn-link {
    margin: var(--s1) auto;
  }

  .btn-column {
    flex-direction: column;
    gap: var(--s3);
  }

}




/*
---------------------------------------------

    gnavi

*/
.sp-fixed-bar {
  display: none;
}

.gnavi-btn {
  display: none;
}

.gnavi-area {
  display: none;
}

@media screen and (max-width: 767px) {

  body.is-gnavi-open {
    overflow: hidden;
  }

  .sp-fixed-bar {
    width: 100%;
    height: 6.2rem;
    padding: 0.9rem 1.4rem;
    background: #fff;
    display: block;
    position: fixed;
    bottom: -7.2rem;
    left: 0;
    z-index: 200;
    border-radius: 1rem 1rem 0 0;
    box-shadow: 0 -4px 4px 0 rgba(156, 156, 156, 0.3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      bottom 0.35s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.2s ease,
      visibility 0s linear 0.35s;
    will-change: bottom;
  }

  .sp-fixed-bar.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    bottom: 0;
    transition-delay: 0s;
  }

  body.is-gnavi-open .sp-fixed-bar {
    border-radius: 0;
  }

  .sp-fixed-bar__inner {
    width: 100%;
    height: 4.4rem;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    position: relative;
    z-index: 2;
  }

  .sp-fixed-bar__button {
    height: 4.2rem;
    border: 1px solid #fff;
    border-radius: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
  }

  .sp-fixed-bar__button--requirements {
    background: linear-gradient(65.8deg, #016ed8 47.1%, #51ccf0 107.5%);
  }

  .sp-fixed-bar__button--entry {
    background: linear-gradient(65.8deg, #ed533e 47.1%, #fddf42 107.5%);
  }

  .sp-fixed-bar__button:active {
    color: #fff;
  }

  .gnavi-btn {
    width: 4.4rem;
    height: 4.4rem;
    border-radius: 50%;
    background: #f0f0f0;
    display: block;
    flex: 0 0 auto;
    position: relative;
    cursor: pointer;
  }

  .gnavi-btn span {
    width: 1.6rem;
    height: 1px;
    background: #444557;
    display: block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition:
      transform 0.3s ease,
      opacity 0.2s ease;
  }

  .gnavi-btn span:nth-of-type(1) {
    top: 1.6rem;
  }

  .gnavi-btn span:nth-of-type(2) {
    top: 2.2rem;
  }

  .gnavi-btn span:nth-of-type(3) {
    top: 2.8rem;
  }

  .gnavi-btn.is-active span:nth-of-type(1) {
    transform: translate(-50%, 0.6rem) rotate(45deg);
  }

  .gnavi-btn.is-active span:nth-of-type(2) {
    opacity: 0;
  }

  .gnavi-btn.is-active span:nth-of-type(3) {
    transform: translate(-50%, -0.6rem) rotate(-45deg);
  }

  .gnavi-area {
    width: 100%;
    height: calc(100vh - 6.2rem);
    height: calc(100dvh - 6.2rem);
    padding: 0;
    background: rgb(255 255 255 / 40%);
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      opacity 0.3s ease,
      visibility 0s linear 0.3s;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
  }

  .gnavi-area__panel {
    width: 100%;
    padding: 2.1rem 1.4rem 3.6rem;
    border-radius: 1rem 1rem 0 0;
    background: #fff;
    box-shadow: 0 -0.4rem 0.4rem rgb(156 156 156 / 25%);
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    transition: transform 0.4s cubic-bezier(0.2, 1, 0.4, 1);
  }

  .gnavi-menu__item {
    border-bottom: 1px solid #d3d3d3;
  }

  .gnavi-menu__link {
    height: 4.4rem;
    padding: 0 2rem;
    background: url("img/icon-sp-menu-arrow.svg") no-repeat right 1.7rem center / 0.6rem 1rem;
    display: flex;
    align-items: center;
    color: #333;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
  }

  .is-gnavi-open .gnavi-area {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }

  .is-gnavi-open .gnavi-area__panel {
    transform: translateY(0);
  }

}

@media screen and (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .sp-fixed-bar {
    transition: none;
  }
}


/*
---------------------------------------------

    toggle

*/
.toggle-btn {
  line-height: 1.5;
  position: relative;
  transition: opacity 0.3s;
  cursor: pointer;
}

.toggle-btn::before {
  content: "";
  width: 3rem;
  height: 0.2rem;
  background: #101010;
  position: absolute;
  top: 50%;
  right: var(--s3);
  transform: translate(0, -50%);
}

.toggle-btn::after {
  content: "";
  width: 0.2rem;
  height: 3rem;
  background: #101010;
  position: absolute;
  top: 50%;
  right: 3.8rem;
  transform: translate(0, -50%);
  transition: transform 0.3s;
}

.toggle-btn.is-open::after {
  transform: translate(0, -50%) rotate(270deg);
}

.toggle-content {
  display: none;
}

/*
---------------------------------------------

    toggle sp

*/
.toggle-sp-content {
  display: block;
}

@media screen and (max-width: 767px) {
  .toggle-sp-content {
    display: none;
  }

  .toggle-btn:after {
    height: var(--s3);
    right: 3.5rem;
  }

  .toggle-btn:before {
    width: var(--s3);
  }

  .more__btn {
    margin-right: 0;
  }

}


/*
---------------------------------------------

    footer

*/
.footer-copyright {
  padding: 0.8rem 2rem;
  background: var(--color-main-darkblue);
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.6rem;
  text-align: center;
}

.page-top {
  width: 7.2rem;
  height: 7.2rem;
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 10;
  transition: opacity 0.3s;
}

@media (hover: hover) {
  .page-top__link:hover {
    opacity: 0.6;
  }
}

@media screen and (max-width: 767px) {
  .page-top {
    width: 4.5rem;
    height: 4.5rem;
    bottom: 7.2rem;
    right: 1.5rem
  }
}

/*
---------------------------------------------

    lp

*/
:root {
  --scale: 1;
  --bgcolor-gray: :#EDEDED;
  --bgcolor-skyblue: #ECFDFF;
  --color-main-blue: #016ED8;
  --color-main-darkblue: #003177;
  --color-main-skyblue: #51CCF0;
  --color-main-yellow: #FDDF42;
  --color-point-yellow: #FCFA65;
  --color-point-red: #ED533E;
  --gradient-main-darkblue: linear-gradient(90deg, var(--color-main-blue) 0%, var(--color-main-darkblue) 100%);
  --gradient-main-blue: var(---gradient_blue, linear-gradient(90deg, #51CCF0 17.9%, #2AA1E2 45.9%, #006DD8 83.6%));
  --gradient-gnb-blue: linear-gradient(to right, var(--color-main-blue) 0%, var(--color-main-skyblue) 50%, var(--color-main-blue) 100%);
  --gradient-gnb-entry: linear-gradient(to right, var(--color-point-red) 0%, var(--color-main-yellow) 50%, var(--color-point-red) 100%);
}

/* yellow text inview animation */
.anime-lead .bg {
  clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
  transition: clip-path 1s cubic-bezier(0.09, 0.89, 0.57, 0.98);
}

.anime-lead.slideLeft.is-inview .bg {
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.anime-lead .bg:nth-of-type(2) {
  transition-delay: 0.3s;
}

.anime-lead .bg:nth-of-type(3) {
  transition-delay: 0.6s;
}

@media (prefers-reduced-motion: reduce) {
  .anime-lead .bg {
    clip-path: none;
    transition: none;
  }
}

/* slanted rectangle decoration parallax */
.js-particle-parallax,
.js-particle-parallax-host::before,
.js-particle-parallax-host::after {
  transform: translate3d(0, var(--particle-parallax-y, 0), 0);
  transition: transform 0.3s ease-out;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {

  .js-particle-parallax,
  .js-particle-parallax-host::before,
  .js-particle-parallax-host::after {
    transform: none;
    transition: none;
  }
}

/*
---------------------------------------------

    ヘッダー

*/
.site-header {
  width: 100%;
  height: 62px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  pointer-events: none;
}

.site-header__gnb {
  width: 100%;
  height: 62px;
  background: rgb(255 255 255 / 65%);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
  transition:
    opacity 0.5s ease,
    visibility 0s linear 0.6s,
    transform 0.6s cubic-bezier(0.2, 1, 0.4, 1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.site-header.is-fixed .site-header__gnb {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
  pointer-events: auto;
}

.site-header__nav {
  --gnb-scale: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  height: 62px;
  margin-left: auto;
  position: relative;
  opacity: 0;
  transform: translateY(-12px) scale(var(--gnb-scale));
  transform-origin: center right;
  transition:
    opacity 0.4s ease 0s,
    transform 0.5s cubic-bezier(0.2, 1, 0.4, 1) 0s;
  margin-right: 2rem;
}

.site-header.is-fixed .site-header__nav {
  opacity: 1;
  transform: translateY(0) scale(var(--gnb-scale));
  transition-delay: 0.1s;
}

.site-header__nav-list {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 62px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header__nav-item {
  height: 54px;
  display: flex;
  align-items: center;
  margin: 0 3rem;
}

.site-header__nav-link {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.3s ease;
}

.site-header__nav-link p {
  margin: 0;
  line-height: 1.3;
}

.site-header__button {
  width: 200px;
  height: 54px;
  padding: 0 13px;
  box-sizing: border-box;
  border: 1px solid #fff;
  border-radius: 45px;
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) 20px;
  align-items: center;
  align-self: center;
  flex: 0 0 auto;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  background-position: left center;
  background-size: 200% auto;
  transition: background-position 0.3s ease-out;
}

.site-header__button .small {
  font-size: 1.2rem;
}

.site-header__button>span {
  grid-column: 2;
  text-align: center;
  transform: translateY(-1px);
}

.site-header__button::after {
  content: "";
  width: 30px;
  height: 30px;
  background: url("img/arrow-wh.svg") no-repeat right -0.8rem;
  grid-column: 3;
  justify-self: end;
  transform: rotate(90deg);
  transition: transform 0.3s ease-out;
}

.site-header__button--requirements {
  background-image: var(--gradient-gnb-blue);
}

.site-header__button--entry {
  background-image: var(--gradient-gnb-entry);
}

.site-header__logo {
  width: 318px;
  height: 37.5px;
  position: absolute;
  top: 41px;
  left: 50px;
  z-index: 1;
  transform-origin: top left;
  transition:
    top 0.6s cubic-bezier(0.2, 1, 0.4, 1),
    left 0.6s cubic-bezier(0.2, 1, 0.4, 1),
    transform 0.6s cubic-bezier(0.2, 1, 0.4, 1);
}

.site-header__logo-image {
  width: 100%;
  height: 100%;
  display: block;
  max-width: none;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: contain;
  transition: opacity 0.4s ease;
}

.site-header__logo-image--light {
  opacity: 1;
}

.site-header__logo-image--dark {
  opacity: 0;
}

.site-header.is-fixed .site-header__logo {
  top: 19px;
  left: 25px;
  transform: scale(0.6);
}

.site-header.is-fixed .site-header__logo-image--light {
  opacity: 0;
}

.site-header.is-fixed .site-header__logo-image--dark {
  opacity: 1;
}

@media (hover: hover) {
  .site-header__nav-link:hover {
    color: var(--color-main-blue);
  }

  .site-header__button:hover {
    color: #fff;
    background-position: right center;
  }

  .site-header__button:hover::after {
    transform: translateY(5px) rotate(90deg);
  }
}

.site-header__button:active {
  color: #fff;
}

@media (prefers-reduced-motion: reduce) {

  .site-header__gnb,
  .site-header__nav,
  .site-header__logo,
  .site-header__logo-image,
  .site-header__nav-link,
  .site-header__button,
  .site-header__button::after {
    transition-duration: 0ms;
    transition-delay: 0s;
  }
}

@media screen and (max-width: 1280px) and (min-width: 768px) {
  .site-header__nav {
    --gnb-scale: calc(100vw / 1680px);
  }

  .site-header:not(.is-fixed) .site-header__logo {
    top: 2.4vw;
    left: 3vw;
    transform: scale(calc(100vw / 1680px));
    transform-origin: top left;
  }
}

@media screen and (max-width: 767px) {
  .site-header__gnb {
    display: none;
  }

  .site-header__logo,
  .site-header.is-fixed .site-header__logo {
    width: 160px;
    height: 27px;
    background: rgb(255 255 255 / 65%);
    top: 12px;
    left: 11px;
    transform: none;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .site-header__logo-image--light {
    display: none;
  }

  .site-header__logo-image--dark {
    width: 152px;
    height: 19px;
    display: block;
    top: 4px;
    left: 4px;
    object-fit: contain;
    opacity: 1;
  }

  .site-header.is-fixed .site-header__logo {
    opacity: 0;
    visibility: hidden;
  }
}

/*
---------------------------------------------

    メインビジュアル

*/
.mv {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  position: relative;
}

.mv__visual {
  width: 100%;
  height: 100%;
  grid-area: 1 / 1;
  position: relative;
  overflow-x: clip;
  overflow-y: visible;
  pointer-events: none;
}

.mv__visual-canvas {
  width: 100%;
  height: 100%;
  position: relative;
}

.mv__photo-clip {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.mv__photo-clip--background {
  z-index: 1;
}

.mv__photo-clip--people {
  z-index: 3;
}

@media screen and (min-width: 768px) {
  .mv__photo-clip {
    height: 800px;
    overflow: hidden;
    clip-path: polygon(-37px 0, 100% 0, 100% 100%, 209px 100%);
  }

  .mv__photo-clip--background {
    background: var(--gradient-main-darkblue);
  }
}

.mv__photo {
  width: 1497px;
  height: 998px;
  max-width: none;
  position: absolute;
  top: -198px;
  left: calc(50% - 574px);
  object-fit: fill;
}

.mv__photo--background {
  z-index: 1;
}

.mv__photo--people {
  z-index: 3;
}

@media (prefers-reduced-motion: no-preference) {
  .mv-scale-out .mv__photo {
    opacity: 0;
    transform: scale(1.2);
    transform-origin: center center;
    transition: opacity 0.5s linear, transform 0.8s cubic-bezier(0.09, 0.89, 0.57, 0.98) 0.2s;
    will-change: opacity, transform;
  }

  .mv.is-mv-ready .mv__photo {
    opacity: 1;
    transform: scale(1);
  }
}

.mv__blue-panel {
  background: var(--gradient-main-darkblue);
  position: absolute;
  top: 0;
  z-index: 2;
}

.mv__blue-panel--left {
  width: 862.7px;
  height: 800px;
  left: -37px;
  clip-path: polygon(0 0, 62% 0, 90.4% 100%, 28.5% 100%);
}

.mv__blue-panel--right {
  width: 645.6px;
  height: 800px;
  left: calc(50% + 597.8px);
  clip-path: polygon(0 0, 62% 0, 100% 100%, 38.1% 100%);
}

.mv__shape {
  display: block;
  position: absolute;
  pointer-events: none;
}

.mv__shape--triangle {
  width: 124px;
  height: 406px;
  background: var(--color-main-blue);
  opacity: 0.5;
  top: 594px;
  left: 0;
  z-index: 0;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
}

.mv__shape--line-white,
.mv__shape--line-blue,
.mv__shape--line-yellow {
  width: 2px;
  transform-origin: top center;
  transform: rotate(-17.2deg);
  z-index: 6;
}

.mv__shape--line-white {
  height: 358px;
  background: #fff;
  top: -200px;
  left: 388px;
}

.mv__shape--line-blue {
  height: 560px;
  background: var(--color-main-darkblue);
  top: 98px;
  left: -67px;
}

.mv__shape--line-yellow {
  height: 375px;
  background: var(--color-main-yellow);
  top: 679px;
  left: 233px;
}

.mv__outline {
  width: 478px;
  height: 425px;
  max-width: none;
  position: absolute;
  top: 710px;
  left: calc(50% + 382px);
  z-index: 6;
}

.mv__outline--sp {
  display: none;
}

.mv__heading {
  width: 100%;
  height: 100%;
  grid-area: 1 / 1;
  position: relative;
  z-index: 5;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1;
  overflow-x: clip;
  overflow-y: visible;
  pointer-events: none;
}

@keyframes mv-heading-reveal {

  from {
    clip-path: inset(-100% 100% -100% 0);
  }

  to {
    clip-path: inset(-100% 0 -100% 0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .mv__heading-line {
    clip-path: inset(-100% 100% -100% 0);
  }

  .mv.is-mv-ready .mv__heading-line {
    animation: mv-heading-reveal 4s cubic-bezier(0.09, 0.89, 0.57, 0.98) both;
  }

  .mv.is-mv-ready .mv__heading-line--first {
    animation-delay: 0.2s;
  }

  .mv.is-mv-ready .mv__heading-line--second {
    animation-delay: 0.6s;
  }

  .mv.is-mv-ready .mv__heading-line--third {
    animation-delay: 1.5s;
  }
}

@media screen and (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  .mv.is-mv-ready .mv__heading-line {
    animation-duration: 2s;
  }

  .mv.is-mv-ready .mv__heading-line--first {
    animation-delay: 0.1s;
  }

  .mv.is-mv-ready .mv__heading-line--second {
    animation-delay: 0.5s;
  }

  .mv.is-mv-ready .mv__heading-line--third {
    animation-delay: 1s;
  }
}

.mv__heading-canvas {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}

.mv__heading-line {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.mv__heading-line>span {
  display: block;
  position: absolute;
  white-space: nowrap;
}

.mv__lead {
  top: 262px;
  left: 144px;
  font-size: 50px;
  line-height: 1.5;
}

.mv__keyword {
  width: 160px;
  height: 96px;
  top: 370px;
  font-size: 80px;
  font-weight: 900;
  line-height: 1.2;
  z-index: 1;
}

.mv__keyword-text {
  background: var(--gradient-main-darkblue);
  -webkit-background-clip: text;
  background-clip: text;
  display: block;
  color: transparent;
  position: relative;
  z-index: 2;
}

.mv__keyword::before,
.mv__keyword::after {
  content: "";
  width: 231.1px;
  height: 97.5px;
  position: absolute;
  pointer-events: none;
}

.mv__keyword::before {
  background: #fff;
  top: 3px;
  left: var(--keyword-panel-left);
  z-index: 1;
  clip-path: polygon(0 0, 87.1% 0, 100% 100%, 13% 100%);
}

.mv__keyword::after {
  background: var(--keyword-line-image) no-repeat center / 100% 100%;
  top: 9px;
  left: calc(var(--keyword-panel-left) + 8px);
  z-index: 0;
}

.mv__keyword--technology {
  --keyword-panel-left: -37px;
  --keyword-line-image: url("img/mv-keyword-line.svg");
  left: 200px;
}

.mv__keyword--evaluation {
  --keyword-panel-left: -35.6px;
  --keyword-line-image: url("img/mv-keyword-line.svg");
  left: 493px;
}

.mv__keyword--income {
  --keyword-panel-left: -40.7px;
  --keyword-line-image: url("img/mv-keyword-line-income.svg");
  left: 790px;
}

.mv__join {
  top: 408px;
  font-size: 50px;
  line-height: 1.2;
  text-shadow: 0 0 10px rgb(0 49 119 / 50%);
  z-index: 2;
}

.mv__join--first {
  left: 399px;
}

.mv__join--second {
  left: 694px;
}

.mv__join--third {
  left: 986px;
}

.mv__closing {
  top: 507px;
  left: 232px;
  font-size: 50px;
  line-height: 1.5;
}

.mv__description {
  width: calc(100% - 280px);
  margin: 0;
  margin-top: 674px;
  margin-left: 280px;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  grid-area: 1 / 1;
  align-self: start;
  justify-self: start;
  position: relative;
  z-index: 5;
  overflow-x: clip;
}

@media screen and (min-width: 1271px) and (max-width: 1580px) {
  .mv__photo--background {
    clip-path: inset(0 0 0 calc(840px - 50vw));
  }
}

@media screen and (max-width: 1270px) and (min-width: 768px) {


  .mv__visual-canvas,
  .mv__heading-canvas {
    width: 1680px;
    transform: scale(calc(100vw / 1680px));
    transform-origin: top left;
  }

  .mv__description {
    width: calc(100% - 16.7vw);
    margin-top: 40.1vw;
    margin-left: 16.7vw;
    transform: scale(calc(100vw / 1680px));
    transform-origin: top left;
  }
}

@media screen and (min-width: 1681px) {
  .mv {
    margin-bottom: 25rem;
  }

  .mv__heading {
    transform: translateY(4rem);
  }

  .mv__photo {
    width: 89.1vw;
    height: 59.4vw;
    top: -11.8vw;
    left: 15.8vw;
  }

  .mv__photo-clip {
    height: 47.6vw;
    clip-path: polygon(-2.2vw 0, 100% 0, 100% 100%, 12.5vw 100%);
  }

  .mv__blue-panel--left {
    width: 51.4vw;
    height: 47.6vw;
    left: -2.2vw;
  }

  .mv__blue-panel--right {
    width: 38.4vw;
    height: 47.6vw;
    left: 85.6vw;
  }

  .mv__outline {
    width: 28.5vw;
    height: 25.3vw;
    top: 42.3vw;
    left: 72.7vw;
  }

  .mv__description {
    transform: translateY(4rem);
  }
}

@media screen and (max-width: 767px) {
  .mv {
    height: 77.8rem;
  }

  .mv__visual::before,
  .mv__visual-canvas::before,
  .mv__visual-canvas::after {
    content: "";
    display: block;
    position: absolute;
    pointer-events: none;
  }

  .mv__visual::before {
    width: var(--sp-decoration-line-width);
    height: 13.2rem;
    background: var(--color-main-yellow);
    top: 59rem;
    left: 7.6rem;
    transform: rotate(-17.4deg);
    transform-origin: top center;
    z-index: 6;
  }

  .mv__visual-canvas::before,
  .mv__visual-canvas::after {
    width: 22.4rem;
    height: 33.4rem;
    background: var(--gradient-main-darkblue);
    clip-path: polygon(0 0, 54.3% 0, 100% 100%, 45.7% 100%);
    top: 0;
    z-index: 2;
  }

  .mv__visual-canvas::before {
    left: -6.8rem;
  }

  .mv__visual-canvas::after {
    left: 32rem;
  }

  .mv__photo {
    width: 52.2rem;
    height: 34.8rem;
    top: -4rem;
    left: -8.5rem;
    object-fit: cover;
    object-position: center top;
  }

  .mv__photo--background {
    clip-path: none;
  }

  .mv__blue-panel--left {
    width: 41.4rem;
    height: 38.8rem;
    top: 27.1rem;
    left: -3.4rem;
    background: linear-gradient(to bottom, var(--color-main-blue) 0%, var(--color-main-darkblue) 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 28.7% 100%);
    z-index: 4;
  }

  .mv__blue-panel--right {
    width: 37.5rem;
    height: 9.6rem;
    background: linear-gradient(to bottom, rgb(1 110 216 / 0%) 9.5%, #016ed8 100%);
    top: 17.5rem;
    left: 0;
    clip-path: none;
    z-index: 4;
  }

  .mv__outline--pc {
    display: none;
  }

  .mv__outline--sp {
    display: block;
    width: 16.3rem;
    height: 14.1rem;
    top: 64.1rem;
    left: 24.3rem;
  }

  .mv__shape--triangle {
    width: 7.7rem;
    height: 25.1rem;
    top: 59rem;
    z-index: 6;
  }

  .mv__shape--line-white {
    width: var(--sp-decoration-line-width);
    height: 16.8rem;
    background: var(--color-main-blue);
    top: 21rem;
    left: 28.3rem;
    transform: rotate(-16.9deg);
  }

  .mv__shape--line-blue {
    width: var(--sp-decoration-line-width);
    height: 13.8rem;
    background: var(--color-main-blue);
    top: 39.3rem;
    left: -2rem;
    transform: rotate(-16.9deg);
  }

  .mv__shape--line-yellow {
    width: var(--sp-decoration-line-width);
    height: 13.5rem;
    top: 29.2rem;
    left: 32.9rem;
    transform: rotate(-16.9deg);
  }

  .mv__lead {
    top: 25.9rem;
    left: 2.8rem;
    font-size: 2.44rem;
  }

  .mv__keyword {
    width: 9.2rem;
    height: 4.8rem;
    font-size: 4.36rem;
  }

  .mv__keyword::before,
  .mv__keyword::after {
    width: 14.2rem;
    height: 6rem;
  }

  .mv__keyword::before {
    top: -0.2rem;
  }

  .mv__keyword::after {
    top: 0.2rem;
    left: calc(var(--keyword-panel-left) + 0.5rem);
  }

  .mv__keyword--technology {
    --keyword-panel-left: -2.9rem;
    top: 31.1rem;
    left: 9.1rem;
  }

  .mv__keyword--evaluation {
    --keyword-panel-left: -2.9rem;
    top: 38rem;
    left: 12.3rem;
  }

  .mv__keyword--income {
    --keyword-panel-left: -2.9rem;
    top: 44.9rem;
    left: 15.8rem;
  }

  .mv__join {
    font-size: 2.09rem;
  }

  .mv__join--first {
    top: 33.9rem;
    left: 20.6rem;
  }

  .mv__join--second {
    top: 40.8rem;
    left: 23.8rem;
  }

  .mv__join--third {
    top: 47.7rem;
    left: 27.2rem;
  }

  .mv__closing {
    top: 52.4rem;
    left: 12rem;
    font-size: 2.44rem;
  }

  .mv__description {
    width: 15.4rem;
    margin-top: 59rem;
    margin-left: 10.5rem;
    font-size: 1.4rem;
    white-space: normal;
  }
}

/*
---------------------------------------------

    リクリートメッセージ

*/
.rm {
  margin: 17.1rem 0 15rem;
  position: relative;
}

.rm__inner {
  width: 110rem;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  position: relative;
}

.rm__decoration,
.rm__photo,
.rm__title,
.rm__copy {
  grid-area: 1 / 1;
  align-self: start;
  justify-self: start;
}

.rm__decoration {
  width: 100%;
  height: 100%;
  position: relative;
}

.rm__decoration-item {
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.rm__decoration-item--top-main {
  width: 25.2rem;
  aspect-ratio: 148 / 114;
  background-image: url("img/deco-blue.svg");
  top: 0;
  left: 56.6rem;
}

.rm__decoration-item--top-yellow {
  width: 12.7rem;
  aspect-ratio: 76 / 56;
  background-image: url("img/deco-yellow.svg");
  top: 16.2rem;
  left: 70.5rem;
}

.rm__decoration-item--bottom-main {
  width: 14.8rem;
  aspect-ratio: 148 / 114;
  background-image: url("img/deco-blue.svg");
  top: 84.7rem;
  left: -17.2rem;
}

.rm__decoration-item--bottom-yellow {
  width: 7.6rem;
  aspect-ratio: 76 / 56;
  background-image: url("img/deco-yellow.svg");
  top: 94.3rem;
  left: -9.3rem;
}

.rm__photo {
  width: 100rem;
  height: 63rem;
  margin-top: 11.6rem;
  position: relative;
  right: 29rem;
  z-index: 1;
}

.rm__photo::before {
  content: "";
  width: 100%;
  height: 100%;
  border: 1px solid var(--color-main-blue);
  position: absolute;
  top: 1.8rem;
  left: -1.8rem;
  z-index: 1;
}

.rm__photo img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  position: relative;
  z-index: 0;
}

.rm__title {
  width: 46.8rem;
  height: 6.3rem;
  margin-top: 30.6rem;
  margin-left: 70.5rem;
  position: relative;
  z-index: 3;
}

.rm__title img {
  width: 100%;
  height: 100%;
  max-width: none;
}

.rm__copy {
  width: 71.3rem;
  padding: 6.5rem 5.5rem 5.1rem;
  background: #f9f9f9;
  color: #333;
  margin-top: 35.6rem;
  margin-left: 38.7rem;
  position: relative;
  z-index: 2;
}

.rm__copy p {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.7;
  white-space: nowrap;
}

.rm__copy p+p {
  margin-top: 3.4rem;
}

@media screen and (max-width: 767px) {
  .rm {
    margin: 0;
    padding: 1.5rem 0 6.6rem;
  }

  .rm__inner {
    width: auto;
    padding-right: 0;
    padding-left: 0;
    display: flex;
    flex-direction: column;
  }

  .rm__photo,
  .rm__title,
  .rm__copy {
    align-self: auto;
    justify-self: auto;
  }

  .rm__title {
    width: auto;
    height: auto;
    margin: 0 3rem 0 10.5rem;
    aspect-ratio: 468 / 63;
    z-index: 5;
    order: 1;
  }

  .rm__photo {
    width: auto;
    height: auto;
    margin: 1.1rem 3.5rem 0 -2.8rem;
    aspect-ratio: 422 / 266;
    right: auto;
    transform: none;
    order: 2;
  }

  .rm__photo::before {
    top: 0.9rem;
    left: -0.9rem;
  }

  .rm__copy {
    width: auto;
    margin: 0 1.4rem;
    padding: 2rem 1.5rem;
    transform: translateY(-3.4rem);
    order: 3;
  }

  .rm__copy p {
    font-size: 1.5rem;
    white-space: normal;
  }

  .rm__copy p+p {
    margin-top: 2.4rem;
  }

  .rm__decoration {
    position: absolute;
    top: -1.9rem;
    right: 0;
    bottom: -6.6rem;
    left: 0;
    z-index: 4;
  }

  .rm__decoration::before,
  .rm__decoration::after {
    content: "";
    width: var(--sp-decoration-line-width);
    background: var(--color-main-darkblue);
    position: absolute;
    transform: rotate(16.9deg);
    transform-origin: top center;
    pointer-events: none;
  }

  .rm__decoration::before {
    height: 5.6rem;
    top: 44.5rem;
    left: 36.6rem;
  }

  .rm__decoration::after {
    height: 12rem;
    top: 47.7rem;
    left: 37.1rem;
  }

  .rm__decoration-item {
    aspect-ratio: auto;
    background-size: 100% 100%;
  }

  .rm__decoration-item--top-main {
    width: 8.3rem;
    height: 6.3rem;
    top: 2.4rem;
    right: 0.1rem;
    left: auto;
  }

  .rm__decoration-item--top-yellow {
    width: 4.3rem;
    height: 3.2rem;
    top: 7.9rem;
    right: -0.4rem;
    left: auto;
  }

  .rm__decoration-item--bottom-main {
    width: 6.5rem;
    height: 5rem;
    top: 50.8rem;
    bottom: auto;
    left: -0.9rem;
  }

  .rm__decoration-item--bottom-yellow {
    width: 3.3rem;
    height: 2.4rem;
    top: 55rem;
    bottom: auto;
    left: 2.5rem;
  }
}

/*
---------------------------------------------

    収入もスキルも伸ばせる理由

*/
.res {
  position: relative;
  z-index: 2;
  margin: 10rem 0;
}

.res::before,
.res::after {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.res::before {
  width: 13.9rem;
  height: 57.1rem;
  background-image: url("img/res-deco-lines.svg");
  top: -43rem;
  right: calc(6% - 0.8rem);
}

.res::after {
  width: 60.5rem;
  height: 202.6rem;
  background-image: url("img/res-bg.svg");
  background-position: left top;
  background-size: 133.2rem 202.6rem;
  bottom: -12rem;
  left: calc(100% - 60.5rem);
}

.res__inner {
  width: 110rem;
  position: relative;
  z-index: 1;
}

.res__word {
  margin: 0;
  width: 11.5rem;
  height: 64.4rem;
  position: absolute;
  top: 20rem;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.res__word img {
  display: block;
  width: 100%;
  height: 100%;
}

.res__title {
  margin: 0 auto;
  padding-bottom: 0.2rem;
  font-weight: 700;
  text-align: center;
}

.res__title span {
  display: block;
}

.res__title-sub {
  color: #333;
  font-size: 3.2rem;
  letter-spacing: 0.2rem;
}

.res__title-main {
  width: fit-content;
  margin: 1.2rem auto 0;
  padding: 0 1.9rem 0.3rem;
  background: var(--color-main-darkblue);
  color: #fff;
  font-size: 4.2rem;
  letter-spacing: 0.2rem;
  line-height: 1.4;
  white-space: nowrap;
  position: relative;
}

.res__title-main::before,
.res__title-main::after {
  content: "";
  width: 1.9rem;
  height: 100%;
  background: var(--color-main-darkblue);
  position: absolute;
  top: 0;
}

.res__title-main::before {
  left: -1.85rem;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.res__title-main::after {
  right: -1.85rem;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.res__list {
  margin-top: 10.2rem;
  display: flex;
  flex-direction: column;
  gap: 6.6rem;
}

.res__item {
  width: 110rem;
  height: 42.9rem;
  position: relative;
}

.res__panel {
  width: 68.2rem;
  padding: 5.9rem 0 4.2rem 6.1rem;
  background: #fff;
  border: 1px solid var(--color-main-blue);
  box-sizing: border-box;
  position: absolute;
  top: 6.8rem;
  left: 0;
  z-index: 1;
}

.res__content {
  width: 37.3rem;
}

.res__item--reverse .res__panel {
  padding-left: 24.6rem;
}

.res__item-title {
  margin: 0;
  color: #000;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.1rem;
}

.res__item-title span {
  width: fit-content;
  padding: 0 0.5rem 0.4rem;
  background: var(--color-point-yellow);
  line-height: 1.2;
  display: block;
  white-space: nowrap;
  margin-bottom: 1rem;
}

.res__lead {
  margin: 2rem 0 0;
  color: var(--color-main-blue);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}

.res__text {
  width: 37.3rem;
  margin: 1.9rem 0 0;
  color: #333;
  font-size: 1.5rem;
  font-weight: 400;
}

.res__photo {
  width: 59.7rem;
  height: 36.6rem;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
}

.res__item--reverse .res__photo {
  right: auto;
  left: 0;
}

.res__item--reverse .res__panel {
  right: 0;
  left: auto;
}

.res__photo::before {
  content: "";
  width: 100%;
  height: 100%;
  border: 1px solid var(--color-main-blue);
  box-sizing: border-box;
  position: absolute;
  top: 1rem;
  left: -1rem;
  z-index: 1;
  pointer-events: none;
}

.res__item--reverse .res__photo::before {
  left: 1rem;
}

.res__photo img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.res__number {
  margin: 0;
  background: var(--gradient-main-blue);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-family: "Poppins", sans-serif;
  font-size: 8rem;
  font-weight: 800;
  white-space: nowrap;
  position: absolute;
  top: 0;
  left: 6.2rem;
  z-index: 3;
}

.res__item--reverse .res__number {
  right: 4.7rem;
  left: auto;
}

@media screen and (max-width: 767px) {
  .res {
    margin: 0;
    padding: 0;
  }

  .res::before {
    display: none;
  }

  .res::after {
    width: 57.6rem;
    height: 87.4rem;
    background-size: 100% 100%;
    top: auto;
    bottom: -6.4rem;
    left: calc(50% + 1.1rem);
  }

  .res__inner {
    width: auto;
    padding-right: 0;
    padding-left: 0;
  }

  .res__word {
    display: none;
  }

  .res__title-sub {
    font-size: 2.0rem;
    letter-spacing: 0.1rem;
  }

  .res__title-main {
    margin-top: 0.4rem;
    padding: 0.2rem 1rem 0.4rem;
    font-size: 2.4rem;
    letter-spacing: 0.1rem;
    line-height: 1.2;
  }

  .res__title-main::before,
  .res__title-main::after {
    width: 1rem;
  }

  .res__title-main::before {
    left: -0.97rem;
  }

  .res__title-main::after {
    right: -0.97rem;
  }

  .res__list {
    margin-top: 5rem;
    gap: 2.7rem;
  }

  .res__item {
    width: auto;
    height: auto;
    display: flex;
    flex-direction: column;
    padding: 0 1.4rem;
  }

  .res__panel,
  .res__item--reverse .res__panel {
    width: auto;
    margin: 0;
    padding: 3.6rem 1.4rem 5.3rem;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    order: 1;
  }

  .res__content,
  .res__text {
    width: auto;
  }

  .res__item-title {
    font-size: 2.2rem;
  }

  .res__item-title span {
    padding: 0 0.4rem 0.2rem;
    margin-bottom: 0.8rem;
    white-space: normal;
  }

  .res__lead {
    margin-top: 1.5rem;
    font-size: 1.5rem;
    white-space: normal;
  }

  .res__text {
    margin-top: 1.5rem;
  }

  .res__photo,
  .res__item--reverse .res__photo {
    width: auto;
    height: auto;
    margin: 0 -1.4rem 0 5rem;
    aspect-ratio: 357 / 219;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    transform: translateY(-3.8rem);
    order: 2;
  }

  .res__item--reverse .res__photo {
    margin-right: 5rem;
    margin-left: -1.4rem;
  }

  .res__photo::before,
  .res__item--reverse .res__photo::before {
    top: 0.6rem;
    left: -0.6rem;
  }

  .res__item--reverse .res__photo::before {
    left: 0.6rem;
  }

  .res__number,
  .res__item--reverse .res__number {
    top: -3.8rem;
    right: auto;
    left: 2.4rem;
    font-size: 5rem;
  }

  .res .banner {
    margin: 4rem 0;
  }

}

/*
---------------------------------------------

    banner

*/
.banner {
  margin: 12rem 0;
}

.banner__inner {
  container-type: inline-size;
}

.banner__link {
  --banner-transition: 0.3s ease;
  width: 80rem;
  padding: 5rem 0;
  margin: 0 auto;
  background:
    url("img/banner-decoration.svg") no-repeat left center / 37% 100%,
    var(--color-point-red);
  color: #fff;
  display: flex;
  align-items: center;
  position: relative;
  text-decoration: none;
}

.banner__link:visited,
.banner__link:active,
.banner__link:focus-visible {
  color: #fff;
}

.banner__link::before {
  content: "";
  width: 32.5rem;
  aspect-ratio: 597 / 366;
  background: url("img/banner-people.png") no-repeat 0% 0 / 100.1% 104.9%;
  position: absolute;
  top: -5.8rem;
  left: -2rem;
  z-index: 2;
  clip-path: inset(0);
}

.banner__content {
  width: 100%;
  padding-left: 25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 3;
}

.banner__title {
  font-size: 0;
  font-weight: 700;
  line-height: 1.7;
  white-space: nowrap;
  display: flex;
  align-items: center;
}

.banner__highlight {
  padding: 0.5rem 0;
  background: #fff;
  color: var(--color-point-red);
  font-size: 3.2rem;
  line-height: 1;
  text-align: center;
  display: inline-block;
  transition: color var(--banner-transition);
}

.banner__highlight--company {
  width: 13.3rem;
}

.banner__highlight--requirements {
  width: 13.5rem;
}

.banner__title-small {
  font-size: 2.4rem;
  line-height: 1.7;
  display: inline-block;
}

.banner__title-small--particle {
  margin: 0 0.6rem;
}

.banner__title-small--detail {
  margin-left: 0.7rem;
}

.banner__description {
  margin-top: 1.2rem;
  padding-left: 0.2rem;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.7;
  white-space: nowrap;
  display: block;
}

.banner__link::after {
  content: "";
  background:
    url("img/banner-decoration.svg") no-repeat left center / 37% 100%,
    var(--gradient-main-blue);
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  transition: opacity var(--banner-transition);
  pointer-events: none;
}

.banner__content::after {
  content: "";
  width: 3.9rem;
  height: 3.9rem;
  background: #fff url("img/banner-arrow-red.svg") no-repeat center / 3rem 3rem;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 4.1%;
  z-index: 3;
  transform: translateY(-50%) rotate(90deg);
}

@media (hover: hover) {
  .banner__link:hover {
    color: #fff;
  }

  .banner__link:hover::after,
  .banner__link:focus-visible::after {
    opacity: 1;
  }

  .banner__link:hover .banner__highlight,
  .banner__link:focus-visible .banner__highlight {
    color: var(--color-main-blue);
  }

  .banner__link:hover .banner__content::after,
  .banner__link:focus-visible .banner__content::after {
    background-image: url("img/banner-arrow-blue.svg");
  }
}

@media screen and (max-width: 767px) {
  .banner {
    margin: 6.5rem 0;
  }

  .banner__inner {
    padding-right: 0;
    padding-left: 0;
  }

  .banner__link {
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0 4rem;
    padding: 0;
    background:
      url("img/banner-decoration.svg") no-repeat 0rem 0rem / 15.9rem 9.3rem,
      var(--color-point-red);
    align-items: flex-end;
  }

  .banner__link::before {
    width: 16rem;
    top: -0.5rem;
    left: -2rem;
  }

  .banner__content {
    height: 9.3rem;
    margin-top: 0;
    padding-right: 2rem;
    padding-left: 8rem;
    align-items: flex-start;
  }

  .banner__title {
    line-height: 1;
    display: grid;
    grid-template-columns: max-content max-content;
    grid-auto-rows: 3.1rem;
  }

  .banner__highlight--company,
  .banner__title-small--particle {
    transform: translateX(3.8rem);
  }

  .banner__highlight {
    width: auto;
    padding: 0 0.2rem 0.1rem;
    font-size: 1.92rem;
    line-height: 1.2;
  }

  .banner__title-small {
    font-size: 1.4rem;
    line-height: 1.6;
  }

  .banner__title-small--particle {
    margin-right: 0;
    margin-left: 0.3rem;
  }

  .banner__title-small--detail {
    margin-left: 0.3rem;
    font-size: 1.57rem;
  }

  .banner__description {
    margin-top: 0.8rem;
    padding-left: 0;
    font-size: 1.1rem;
    line-height: 1.6;
    white-space: normal;
  }

  .banner__content::after {
    width: 2.2rem;
    height: 2.2rem;
    right: 0.8rem;
    background-size: 1.7rem 1.7rem;
  }

  .banner__link::after {
    background:
      url("img/banner-decoration.svg") no-repeat 5.5rem 2.7rem / 15.9rem 9.3rem,
      linear-gradient(var(--color-main-blue), var(--color-main-blue)) no-repeat 5.5rem 2.7rem / 29.4rem 9.3rem;
  }
}


/*
---------------------------------------------

    step

*/
.stp {
  position: relative;
  isolation: isolate;
  margin: 10rem 0;
}

.stp::before,
.stp::after {
  content: "";
  width: 0.2rem;
  position: absolute;
  z-index: 0;
  transform: rotate(-16deg);
  transform-origin: top center;
  pointer-events: none;
}

.stp::before {
  height: 30rem;
  top: -28.5rem;
  left: 1.5rem;
  background: var(--color-main-blue);
}

.stp::after {
  height: 42rem;
  top: -23.8rem;
  left: 9rem;
  background: var(--color-main-yellow);
}

.stp__heading {
  padding: 7.1rem 0;
  margin-left: max(0px, calc((100vw - 128.6rem) / 2));
  background:
    url("img/stp-step.svg") no-repeat right top / 39rem 11.2rem,
    var(--gradient-main-darkblue);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 8.7rem 100%);
  color: #fff;
  position: relative;
  z-index: 1;
}

.stp__heading-inner {
  width: min(110rem, calc(100% - 18rem));
  margin-left: 14.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 39rem;
  column-gap: 4rem;
  align-items: center;
}

.stp__title {
  align-self: center;
  color: #fff;
  font-weight: 700;
}

.stp__title-sub,
.stp__title-main {
  display: block;
}

.stp__title-sub {
  font-size: 3.2rem;
  line-height: 1.5;
}

.stp__title-main {
  margin-top: 0.5rem;
  font-size: 4.2rem;
  line-height: 1.5;
}

.stp__controls {
  margin-top: 9.6rem;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.5rem;
}

.stp__progress {
  width: 24.3rem;
  height: 0.3rem;
  margin-right: 0.5rem;
  background: #fff;
  overflow: clip;
}

.stp__progress-bar {
  width: 25%;
  height: 100%;
  background: var(--color-main-blue);
  display: block;
  transition: width 0.6s cubic-bezier(0.2, 1, 0.4, 1);
}

.stp__arrow {
  width: 3.9rem;
  height: 3.9rem;
  background: #fff;
  border: 1px solid #fff;
  border-radius: 50%;
  flex: 0 0 auto;
  position: relative;
  cursor: pointer;
  transition: background-color 0.3s ease, opacity 0.3s ease;
}

.stp__arrow::before {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-top: 0.2rem solid var(--color-main-blue);
  border-right: 0.2rem solid var(--color-main-blue);
  position: absolute;
  top: 50%;
  left: 50%;
}

.stp__arrow--prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.stp__arrow--next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.stp__arrow:disabled {
  opacity: 0.5;
  cursor: default;
}

.stp__viewport {
  margin-top: 5.9rem;
  padding-top: 2.7rem;
  padding-bottom: 1.2rem;
  overflow: clip;
  position: relative;
  z-index: 1;
  cursor: grab;
  touch-action: pan-y;
}

.stp.is-dragging .stp__viewport {
  cursor: grabbing;
}

.stp__track {
  width: max-content;
  padding-left: max(7.6rem, calc((100vw - 110rem) / 2 + 7.6rem));
  counter-reset: stp-card;
  display: flex;
  align-items: stretch;
  gap: 5rem;
  transform: translate3d(0, 0, 0);
  transition: transform 0.6s cubic-bezier(0.2, 1, 0.4, 1);
  will-change: transform;
}

.stp__track.is-dragging {
  transition: none;
}

.stp__card {
  width: 45.1rem;
  background: #fff;
  border: 1px solid var(--color-main-blue);
  box-shadow:
    1rem 1rem 0 -0.1rem #fff,
    1rem 1rem 0 var(--color-main-blue);
  counter-increment: stp-card;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

.stp__card::before {
  content: counter(stp-card);
  width: 6.6rem;
  height: 6.6rem;
  background: var(--color-main-blue);
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 4rem;
  font-weight: 800;
  line-height: 1;
  display: grid;
  place-items: center;
  position: absolute;
  top: -2.7rem;
  left: 2.8rem;
  z-index: 2;
}

.stp__card-content {
  padding: 6rem 3rem 2rem;
  background: url("img/stp-card-wedge.svg") no-repeat left top / 7.9rem 25.4rem;
  flex: 1 1 auto;
}

.stp__card-title {
  color: #333;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
}

.stp__card-text {
  margin-top: 2rem;
  color: #333;
  font-size: 1.5rem;
}

.stp__card-photo {
  height: 28rem;
  flex: 0 0 28rem;
  overflow: clip;
}

.stp__card-photo img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 52% center;
  pointer-events: none;
  user-select: none;
}

.stp__card:nth-child(2) .stp__card-photo img {
  object-position: 62% center;
}

.stp__card:nth-child(3) .stp__card-photo img {
  object-position: 61% center;
}

.stp__card-photo--step4 img {
  object-position: 67% center;
}

.stp__card-photo--step5 img {
  object-position: 88% center;
}

.stp__footer {
  margin-top: 9.8rem;
  position: relative;
  z-index: 1;
}

.stp__note {
  padding: 6.7rem 7rem;
  background: #ecfdff;
  color: #333;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.7;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.stp__decorations {
  width: 14.8rem;
  height: 11.4rem;
  position: absolute;
  top: -6.1rem;
  left: max(2rem, calc((100vw - 110rem) / 2 - 22.9rem));
  z-index: 1;
  pointer-events: none;
}

.stp__decoration {
  position: absolute;
}

.stp__decoration--blue {
  width: 14.8rem;
  top: 0;
  left: 0;
}

.stp__decoration--yellow {
  width: 7.6rem;
  top: 9.6rem;
  left: 7.9rem;
}

@media (hover: hover) {

  .stp__arrow:not(:disabled):hover,
  .stp__arrow:not(:disabled):focus-visible {
    opacity: 0.5;
  }
}

@media screen and (max-width: 767px) {
  .stp {
    margin: 3rem 0 0;
    padding-top: 2.4rem;
    padding-bottom: 7.2rem;
  }

  .stp::before,
  .stp::after {
    display: none;
  }

  .stp::before {
    width: 15rem;
    height: auto;
    aspect-ratio: 390 / 112;
    background: url("img/stp-step.svg") no-repeat center / 100% 100%;
    display: block;
    top: 2.4rem;
    right: 0;
    left: auto;
    z-index: 2;
    transform: none;
  }

  .stp__heading {
    padding: 5.1rem 0 3.5rem;
    margin-left: 0;
    background: none;
    clip-path: none;
  }

  .stp__heading::before {
    display: none;
  }

  .stp__heading::after {
    content: "";
    background: var(--gradient-main-darkblue);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 4.6rem 100%);
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
  }

  .stp__heading-inner {
    width: auto;
    margin-left: 0;
    padding: 0 2rem 0 5rem;
    grid-template-columns: 1fr;
  }

  .stp__title-sub {
    font-size: 1.8rem;
    letter-spacing: 0.1rem;
    white-space: nowrap;
  }

  .stp__title-main {
    margin-top: 0;
    font-size: 2.6rem;
    letter-spacing: 0.1rem;
    white-space: nowrap;
  }

  .stp__controls {
    margin: 1.7rem 3.8rem 0;
    gap: 1rem;
    position: static;
    z-index: 3;
  }

  .stp:not(.is-controls-ready) .stp__controls {
    visibility: hidden;
  }

  .stp__progress {
    width: auto;
    margin-right: 0;
    background: #ededed;
    flex: 1 1 auto;
    order: 2;
  }

  .stp__arrow {
    width: 3.4rem;
    height: 3.4rem;
    background: url("img/stp-arrow-next-sp.svg") no-repeat center / 100% 100%;
    border: 0;
  }

  .stp__arrow:disabled {
    opacity: 1;
  }

  .stp__arrow::before {
    display: none;
  }

  .stp__arrow--prev {
    order: 1;
    transform: rotate(180deg);
  }

  .stp__arrow--next {
    order: 3;
  }

  .stp__viewport {
    margin-top: 2.9rem;
    padding-top: 2.4rem;
  }

  .stp__track {
    padding-left: 1.8rem;
    gap: 2.5rem;
  }

  .stp__card {
    width: auto;
    flex-basis: calc(100vw - 3.6rem);
    box-shadow:
      0.6rem 0.6rem 0 -0.1rem #fff,
      0.6rem 0.6rem 0 var(--color-main-blue);
  }

  .stp__card::before {
    width: 4rem;
    height: 4rem;
    top: -1.5rem;
    left: 2.5rem;
    font-size: 2.8rem;
  }

  .stp__card-content {
    padding: 3.8rem var(--s3) 1.8rem;
    background-size: 6.1rem 22.1rem;
  }

  .stp__card-title {
    font-size: 2.0rem;
  }

  .stp__card-text {
    margin-top: 1.2rem;
  }

  .stp__card-photo {
    height: 18.5rem;
    flex-basis: 18.5rem;
  }

  .stp__footer {
    width: auto;
    margin-top: 2.0rem;
    top: auto;
    left: auto;
    padding: 0 3.5rem;
  }

  .stp__note {
    margin: 0 auto;
    padding: 2.4rem 1.5rem;
    font-size: 1.5rem;
  }

  .stp__decorations {
    width: 5.3rem;
    height: 5.2rem;
    top: 12.2rem;
    left: 0.5rem;
  }

  .stp__decoration--blue {
    width: 5.3rem;
  }

  .stp__decoration--yellow {
    width: 2.8rem;
    top: 3.9rem;
    left: 2.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {

  .stp__track,
  .stp__progress-bar {
    transition-duration: 0ms;
  }
}


/*
---------------------------------------------

    働く魅力

*/
.apl {
  margin: 10rem 0;
  background: linear-gradient(to bottom,
      transparent 0 27.5rem,
      #ededed 27.5rem 72.7rem,
      transparent 72.7rem);
}

.apl__heading {
  width: min(168rem, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 11.3% 77.4% 11.3%;
  align-items: start;
}

.apl__heading::before,
.apl__heading::after {
  content: "";
  width: 0.2rem;
  padding-block: 17.1rem;
  background: var(--color-main-blue);
  display: block;
  grid-column: 3;
  grid-row: 1;
  transform: skewX(-17.2deg);
  transform-origin: center;
  pointer-events: none;
}

.apl__heading::before {
  margin-left: calc(100% - 5.5rem);
  translate: 0 -15rem;
}

.apl__heading::after {
  margin-left: 5.2rem;
  translate: 0 -4.8rem;
}

.apl__decoration {
  width: 0.1rem;
  margin-left: 18.5rem;
  padding-block: 17.1rem;
  background: var(--color-main-yellow);
  display: block;
  grid-column: 1;
  grid-row: 1;
  transform: skewX(-17.2deg);
  transform-origin: center;
}

.apl__title-box {
  margin-top: 11.6rem;
  padding: 6.7rem 2rem 5rem;
  background:
    linear-gradient(rgb(1 110 216 / 80%), rgb(1 110 216 / 80%)),
    url("img/apl-bg.jpg") no-repeat center 77% / cover;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
  grid-column: 2;
  grid-row: 1;
}

.apl__english {
  width: 53.8rem;
}

.apl__title {
  color: #fff;
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.apl__content {
  margin-top: 5.1rem;
}

.apl__intro {
  width: 101.2rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 48rem);
  column-gap: 5.2rem;
  align-items: start;
}

.apl__catch {
  color: #101010;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.7;
}

.apl__catch span {
  width: fit-content;
  padding-inline: 0.3rem;
  background: var(--color-point-yellow);
  line-height: 1.2;
  margin-bottom: 1rem;
  display: block;
}

.apl__description {
  margin-top: 1rem;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.7;
}

.apl__flow {
  width: 95rem;
  margin: 8.6rem auto 0;
  display: grid;
  grid-template-columns: repeat(950, minmax(0, 1fr));
  align-items: stretch;
}

.apl__flow-item {
  margin: 0;
  padding: 2.9rem 2rem;
  background: url("img/apl-flow-box.svg") no-repeat center / 100% 100%;
  color: var(--color-main-blue);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  grid-row: 1;
  z-index: 1;
}

.apl__flow-item:nth-of-type(1) {
  grid-column: 1 / 317;
}

.apl__flow-item:nth-of-type(2) {
  grid-column: 318 / 634;
}

.apl__flow-item:nth-of-type(3) {
  grid-column: 635 / 951;
}

.apl__flow-arrow {
  width: 100%;
  aspect-ratio: 21 / 28;
  background: url("img/apl-flow-arrow.svg") no-repeat center / 100% 100%;
  display: block;
  align-self: center;
  grid-row: 1;
  z-index: 2;
}

.apl__flow-arrow--first {
  grid-column: 306 / 327;
}

.apl__flow-arrow--second {
  grid-column: 623 / 644;
}

.apl-bottom {
  width: min(168rem, 100%);
  margin: 14.4rem auto 0;
  background: url("img/apl-bottom-deco.svg") no-repeat 3.2% 43.3rem / 17.9rem auto;
}

.apl-bottom__row {
  display: grid;
  align-items: start;
}

.apl-bottom__row--environment {
  grid-template-columns: 55.8% 1.1% 25.8% 17.3%;
}

.apl-bottom__row--communication {
  margin-top: 8.9rem;
  grid-template-columns: 17.3% 25% 1.5% 55.8% 0.4%;
}

.apl-bottom__slider {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.8rem;
  align-items: stretch;
  grid-column: 1;
}

.apl-bottom__slider--communication {
  grid-template-columns: 1.8rem minmax(0, 1fr);
  grid-column: 4 / 6;
}

.apl-bottom__slider .slick-list {
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
}

.apl-bottom__slider--communication .slick-list {
  grid-column: 2;
}

.apl-bottom__slide img {
  width: 100%;
  aspect-ratio: 46 / 42;
  object-fit: cover;
  clip-path: inset(0 1rem 0 0);
}

.apl-bottom__slider--communication .apl-bottom__slide img {
  clip-path: inset(0 0 0 1rem);
}

.apl-bottom__slider .slick-dots {
  margin: 0 0 0.6rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 0.4rem;
  align-self: end;
  grid-column: 2;
  grid-row: 1;
}

.apl-bottom__slider--communication .slick-dots {
  align-items: flex-start;
  grid-column: 1;
}

.apl-bottom__slider .slick-dots li {
  width: 0.3rem;
  height: 0.6rem;
  background: #d7d7d7;
  display: block;
  transition: height 0.6s cubic-bezier(0.7, 0, 0.8, 0), background-color 0.6s cubic-bezier(0.7, 0, 0.8, 0);
}

.apl-bottom__slider .slick-dots li.slick-active {
  height: 5.5rem;
  background: var(--color-main-blue);
}

.apl-bottom__slider .slick-dots button {
  width: 100%;
  height: 100%;
  padding: 0;
  color: transparent;
  font-size: 0;
  display: block;
}

.apl-bottom__text--environment {
  padding-top: 10.3rem;
  grid-column: 3;
}

.apl-bottom__text--communication {
  padding-top: 2.7rem;
  grid-column: 2;
}

.apl-bottom__title {
  color: #101010;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.7;
}

.apl-bottom__title span {
  width: fit-content;
  padding-inline: 0.3rem;
  background: var(--color-point-yellow);
  line-height: 1.2;
  margin-bottom: 1rem;
  display: block;
}

.apl-bottom__description {
  margin-top: 1rem;
  color: #333;
}

.apl-bottom__description+.apl-bottom__description {
  margin-top: 2.6rem;
}

@media screen and (max-width: 767px) {
  .apl {
    margin: 0;
    padding-top: 3.9rem;
    background: linear-gradient(to bottom,
        transparent 0 12.3rem,
        #ededed 12.3rem 48rem,
        transparent 48rem);
  }

  .apl__heading {
    width: auto;
    grid-template-columns: 1.4rem minmax(0, 1fr) 1.4rem;
    position: relative;
  }

  .apl__heading::before,
  .apl__heading::after {
    width: var(--sp-decoration-line-width);
    height: 13.4rem;
    padding-block: 0;
    position: absolute;
    margin-left: 0;
    translate: none;
  }

  .apl__heading::before {
    top: -15.3rem;
    right: -0.1rem;
  }

  .apl__heading::after {
    top: -9.5rem;
    right: 3.3rem;
  }

  .apl__decoration {
    width: var(--sp-decoration-line-width);
    margin-left: 2.1rem;
    padding-block: 3.8rem;
  }

  .apl__title-box {
    margin-top: 2.3rem;
    padding: 2.7rem 1.5rem 1.4rem;
    gap: 0.5rem;
  }

  .apl__english {
    width: 20.2rem;
    max-width: none;
    margin-left: 5.2rem;
    align-self: flex-start;
    flex: none;
  }

  .apl__title {
    font-size: 2.6rem;
    letter-spacing: 0.1rem;
  }

  .apl__content {
    margin-top: 3.1rem;
  }

  .apl__intro {
    grid-template-columns: 1fr;
    row-gap: 1.9rem;
    width: auto;
    padding: 0;
  }

  .apl__catch {
    font-size: 2.0rem;
  }

  .apl__description {
    margin-top: 0;
  }

  .apl__flow {
    width: auto;
    margin: 2.9rem 6.1rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }

  .apl__flow-item {
    width: auto;
    min-height: 9.3rem;
    padding: 1.5rem;
    font-size: 1.6rem;
    align-self: stretch;
  }

  .apl__flow-arrow {
    width: 1.8rem;
    transform: rotate(90deg);
  }

  .apl-bottom {
    width: auto;
    margin-top: 5.1rem;
    background-image: none;
  }

  .apl-bottom__row,
  .apl-bottom__row--environment,
  .apl-bottom__row--communication {
    display: flex;
    flex-direction: column;
  }

  .apl-bottom__row--communication {
    margin-top: 5.1rem;
  }

  .apl-bottom__slider {
    width: auto;
    column-gap: 1rem;
    justify-content: space-between;
    order: 1;
  }

  .apl-bottom__slider .slick-list {
    height: 27.7rem;
  }

  .apl-bottom__slider .slick-track {
    position: relative;
    left: 4.3rem;
  }

  .apl-bottom__slider--communication .slick-track {
    left: 0;
  }

  .apl-bottom__slide {
    width: 30.8rem !important;
  }

  .apl-bottom__row--environment .apl-bottom__slide {
    width: 31.4rem !important;
  }

  .apl-bottom__slide img {
    width: 30.4rem;
    height: 27.7rem;
    aspect-ratio: auto;
    clip-path: none;
  }

  .apl-bottom__slider--communication .apl-bottom__slide img {
    margin-left: 0;
    clip-path: none;
  }

  .apl-bottom__slider .slick-dots {
    align-items: flex-start;
  }

  .apl-bottom__slider--communication .slick-dots {
    align-items: flex-end;
  }

  .apl-bottom__slider .slick-dots li {
    width: 0.2rem;
    height: 2rem;
  }

  .apl-bottom__slider .slick-dots li.slick-active {
    height: 3.6rem;
  }

  .apl-bottom__text--environment,
  .apl-bottom__text--communication {
    width: auto;
    margin: 2.8rem 1.4rem 0;
    padding-top: 0;
    order: 2;
  }

  .apl-bottom__title {
    font-size: 2.0rem;
  }

  .apl-bottom__description {
    margin-top: 1.5rem;
  }

  .apl-bottom__description+.apl-bottom__description {
    margin-top: 1.1rem;
  }

  .apl>.banner {
    margin-bottom: 6.5rem;
  }
}

@media screen and (min-width: 1681px) {
  .apl-bottom {
    width: 100%;
    background-position: calc((100% - 168rem) / 2 + 5.3rem) 43.3rem;
  }

  .apl-bottom__row--environment {
    grid-template-columns: minmax(0, 1fr) 93.8rem 1.9rem 43.3rem 29rem minmax(0, 1fr);
  }

  .apl-bottom__row--communication {
    grid-template-columns: minmax(0, 1fr) 29rem 42rem 2.6rem 94.4rem minmax(0, 1fr);
  }

  .apl-bottom__row--environment .apl-bottom__slider {
    grid-column: 1 / 3;
  }

  .apl-bottom__slider--communication {
    grid-column: 5 / 7;
  }

  .apl-bottom__text--environment {
    grid-column: 4;
  }

  .apl-bottom__text--communication {
    grid-column: 3;
  }

  .apl-bottom__slide img {
    height: 42rem;
    aspect-ratio: auto;
  }
}

@media (prefers-reduced-motion: reduce) {

  .apl-bottom__slider .slick-track,
  .apl-bottom__slider .slick-dots li {
    transition-duration: 0ms !important;
  }
}

/*
---------------------------------------------

    知りたい

*/
.know {
  padding: 5.8rem 0 8.5rem;
  background: var(--gradient-main-darkblue);
  color: #fff;
  position: relative;
  isolation: isolate;
  margin: 10rem 0 0;
}

.know::after {
  content: "";
  width: min(80.8rem, 48.1%);
  background: url("img/know-bg-decoration.svg") no-repeat center / 100% 100%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  transform: scaleX(-1);
  pointer-events: none;
}

.know__inner {
  position: relative;
}

.know__title {
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.7;
  text-align: center;
}

.know__title-main,
.know__title-sub {
  display: block;
}

.know__title-main {
  font-size: 4.2rem;
}

.know__title-sub {
  font-size: 3.2rem;
}

.know__cards {
  width: 96.8rem;
  margin: 2.9rem auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 47rem));
  gap: 2.8rem;
}

.know__card {
  margin-top: 1.6rem;
  padding: 1.9rem 2.8rem 4rem;
  color: #333;
  position: relative;
}

.know__card::before {
  content: "";
  width: 0.2rem;
  padding-block: 4.7rem;
  background: currentColor;
  position: absolute;
  top: -1.6rem;
  left: -0.7rem;
  transform: rotate(17.7deg);
  transform-origin: bottom center;
  pointer-events: none;
}

.know__card--match {
  background: #fff;
  border: 0.4rem solid var(--color-main-yellow);
}

.know__card--match::before {
  color: var(--color-main-yellow);
}

.know__card--gap {
  background: #dbeaf9;
  border: 0.4rem solid #055aad;
}

.know__card--gap::before {
  color: #055aad;
}

.know__card-heading {
  padding-bottom: 0.6rem;
  border-bottom: 0.2rem solid #d9d9d9;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
}

.know__card--gap .know__card-heading {
  border-bottom-color: #c7c7c7;
}

.know__card-title {
  color: inherit;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.7;
  white-space: nowrap;
}

.know__card-title strong {
  color: inherit;
  font-size: 3.6rem;
}

.know__card--match .know__card-title {
  color: var(--color-main-blue);
}

.know__face-icon {
  width: 4rem;
  flex: 0 0 4rem;
  aspect-ratio: 1;
  background: no-repeat center / contain;
}

.know__card--match .know__face-icon {
  background-image: url("img/know-face-smile.svg");
}

.know__card--gap .know__face-icon {
  background-image: url("img/know-face-gap.svg");
}

.know__list {
  margin-top: 3rem;
  display: grid;
  gap: 1.8rem;
}

.know__list li {
  padding-left: 4rem;
  color: #333;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.7;
  position: relative;
}

.know__list li::before {
  content: "";
  width: 2.6rem;
  aspect-ratio: 1;
  background: no-repeat center / contain;
  position: absolute;
  top: 0.3rem;
  left: 0;
}

.know__card--match .know__list li::before {
  background-image: url("img/know-check-blue.svg");
}

.know__card--gap .know__list li::before {
  background-image: url("img/know-check-gray.svg");
}

@media screen and (max-width: 767px) {
  .know {
    margin-top: 0;
    padding: 3.8rem 0 5.7rem;
  }

  .know::after {
    width: 65.1%;
    background-image: url("img/know-bg-decoration-sp.svg");
  }

  .know__title-main {
    font-size: 2.6rem;
    letter-spacing: 0.1rem;
  }

  .know__title-sub {
    margin-top: 0.7rem;
    font-size: 1.8rem;
    letter-spacing: 0.1rem;
  }

  .know__cards {
    width: auto;
    margin: 3rem 2rem 0;
    grid-template-columns: 1fr;
    gap: 1.9rem;
  }

  .know__card {
    margin-top: 1.4rem;
    padding: 1.6rem 2rem 2rem;
  }

  .know__card::before {
    width: var(--sp-decoration-line-width);
    padding-block: 3.8rem;
  }

  .know__card-heading {
    padding-bottom: 1rem;
    gap: 0.8rem;
  }

  .know__card-title {
    font-size: 1.6rem;
  }

  .know__card-title strong {
    font-size: 2.4rem;
  }

  .know__face-icon {
    width: 3.5rem;
    flex-basis: 3.5rem;
  }

  .know__list {
    margin-top: 1.3rem;
    gap: 1.2rem;
  }

  .know__list li {
    padding-left: 2.8rem;
    font-size: 1.5rem;
  }

  .know__list li::before {
    width: 2rem;
    top: 50%;
    transform: translateY(-50%);
  }
}

/*
---------------------------------------------

    interview

*/
.int {
  padding: 24.4rem 0 0;
  position: relative;
  margin: 0 0 10rem;
}

.int::before {
  content: "";
  width: 45.8rem;
  height: 152.7rem;
  background: url("img/int-bg-decoration.svg") no-repeat right top / 100.4rem 152.7rem;
  position: absolute;
  top: 0rem;
  left: 0;
  pointer-events: none;
}

.int__english {
  width: min(90.7rem, 54vw);
  aspect-ratio: 907 / 110;
  background: url("img/int-interview.svg") no-repeat left top / 100% 100%;
  position: absolute;
  top: 5rem;
  right: 0;
  pointer-events: none;
}

.int__inner {
  position: relative;
  z-index: 1;
}

.int__title {
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
}

.int__title-sub,
.int__title-main {
  display: block;
}

.int__title-sub {
  padding-left: 1rem;
  color: #333;
  font-size: 3.6rem;
  white-space: nowrap;
}

.int__title-main {
  width: fit-content;
  padding: 0.3rem 1rem 0.5rem;
  background: var(--color-main-darkblue);
  color: #fff;
  font-size: 5.2rem;
  letter-spacing: 0.3rem;
  line-height: 1.2;
  white-space: nowrap;
  position: relative;
}

.int__title-main::before,
.int__title-main::after {
  content: "";
  width: 2.2rem;
  height: 100%;
  background: var(--color-main-darkblue);
  position: absolute;
  top: 0;
}

.int__title-main::before {
  left: -2.15rem;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.int__title-main::after {
  right: -2.15rem;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.int__cards {
  margin: 9.1rem 0 0 0.1rem;
  display: grid;
  grid-template-columns: repeat(3, 34rem);
  gap: 4.5rem;
}

.int__card {
  width: 34rem;
  padding: 0 1rem 1rem 0;
  color: #333;
  text-align: left;
  position: relative;
  cursor: pointer;
}

.int__card::before {
  content: "";
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
  position: absolute;
  top: 1rem;
  right: 0;
  bottom: 0;
  left: 1rem;
}

.int__card-front {
  width: 33rem;
  padding-bottom: 4.3rem;
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
  display: block;
  position: relative;
  z-index: 1;
  transition: transform 0.4s ease;
}

.int__card-photo {
  width: 32.8rem;
  aspect-ratio: 328 / 372;
  display: block;
  position: relative;
  overflow: hidden;
}

.int__card-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.int__card-comment {
  display: grid;
  justify-items: start;
  gap: 0.5rem;
  position: absolute;
  top: 29.3rem;
  left: 2.3rem;
}

.int__card-comment mark {
  padding: 0 0.5rem;
  background: var(--color-point-yellow);
  color: #333;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1rem;
  line-height: 1.7;
  white-space: nowrap;
}

.int__card-name {
  margin: 2.6rem 2.8rem 0;
  color: #333;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.1rem;
  line-height: 1.7;
  display: block;
}

.int__card-name strong {
  font-size: 2.4rem;
}

.int__card-tags {
  margin: 1.4rem 2.2rem 0;
  padding-right: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 0.4rem;
}

.int__card-tags span {
  padding: 0.2rem 1rem 0.5rem;
  background: #ededed;
  border-radius: 3rem;
  color: #333;
  font-size: 1.2rem;
  line-height: 1.4;
  white-space: nowrap;
}

.int__card-tags b {
  margin-right: 0.3rem;
  color: var(--color-main-blue);
  font-size: 1.4rem;
}

.int__card-arrow {
  width: 5rem;
  aspect-ratio: 1;
  background: var(--color-main-blue) url("img/int-arrow.svg") no-repeat center / 3rem;
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  transform: rotate(90deg);
}

@media (hover: hover) {

  .int__card:hover .int__card-front {
    transform: translate(1rem, 1rem);
  }
}

.int__card:focus-visible,
.int__tab-nav-button:focus-visible {
  outline: 0.3rem solid var(--color-main-yellow);
  outline-offset: 0.4rem;
}

.int__tabbox {
  width: 110rem;
  margin-top: 7.6rem;
  display: grid;
  grid-template-columns: 17.5rem minmax(0, 92.5rem);
  align-items: start;
  scroll-margin-top: 9rem;
}

.int__tab-nav {
  padding-top: 2.8rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.9rem;
  position: sticky;
  top: 9rem;
  z-index: 2;
}

.int__tab-nav--bottom {
  display: none;
}

.int__tab-nav-button {
  width: 12.8rem;
  color: #333;
  display: grid;
  justify-items: center;
  position: relative;
  cursor: pointer;
}

.int__tab-nav-button::after {
  content: "";
  width: 4.9rem;
  border-top: 0.1rem dashed var(--color-main-blue);
  position: absolute;
  top: 50%;
  left: 12.7rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.int__tab-nav-button.is-active::after {
  opacity: 1;
}

.int__tab-nav-photo {
  width: 7.6rem;
  aspect-ratio: 1;
  background: #d9d9d9;
  border: 0.1rem solid transparent;
  border-radius: 50%;
  display: block;
  position: relative;
  overflow: hidden;
  transition: width 0.4s ease, border-color 0.4s ease;
}

.int__tab-nav-photo::after {
  content: "";
  background: rgb(1 110 216 / 60%);
  position: absolute;
  inset: 0;
  transition: opacity 0.4s ease;
}

.int__tab-nav-button.is-active .int__tab-nav-photo {
  width: 12.8rem;
  border-color: var(--color-main-blue);
}

.int__tab-nav-button.is-active .int__tab-nav-photo::after {
  opacity: 0;
}

.int__tab-nav-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.int__tab-nav-name {
  min-width: 10.8rem;
  max-height: 0;
  margin-top: -2.3rem;
  padding: 0 2rem;
  background: var(--color-main-blue);
  border-radius: 5rem;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.1rem;
  line-height: 1.7;
  text-align: center;
  white-space: nowrap;
  position: relative;
  opacity: 0;
  overflow: hidden;
  transition: opacity 0.3s ease, max-height 0.3s ease;
}

.int__tab-nav-button.is-active .int__tab-nav-name {
  max-height: 2.6rem;
  opacity: 1;
}

.int__panels {
  min-width: 0;
}

.int__panel {
  padding: 4.9rem 4.3rem 8.3rem;
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
}

.int__panel.is-active {
  animation: int-panel-in 0.2s ease-out both;
}

.int__panel[hidden] {
  display: none;
}

.int__qa+.int__qa {
  margin-top: 5rem;
}

.int__question {
  padding: 1.2rem 2.1rem 1.1rem;
  background: url("img/int-question.svg") no-repeat center / 100% 100%;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.7;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.int__question-icon {
  width: 3.2rem;
  height: 2.7rem;
  flex: 0 0 auto;
}

.int__answer {
  margin-top: 2.5rem;
  /*padding-left: 3rem;*/
  color: #333;
  position: relative;
}

.int__answer .int-a::before {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  background: url(img/int-answer-icon.svg) no-repeat center center;
  position: absolute;
  top: 50%;
  left: 0.5rem;
  transform: translateY(-50%);
}

/*.int__answer .int-a::after {
  content: "”";
  color: var(--color-main-blue);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.7;
  position: absolute;
  top: -0.8rem;
  right: 0;
}*/

.int__answer .int-a {
  color: var(--color-main-blue);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.7;
  padding: 0 0 0 3.5rem;
  position: relative;
  /*display: inline-block;*/
}

.int__answer p {
  margin-top: 2.5rem;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.7;
}

.int__answer p+p {
  margin-top: 1.5rem;
}

@keyframes int-panel-in {

  from {
    opacity: 0.9;
  }

  to {
    opacity: 1;
  }
}

@media screen and (min-width: 768px) {

  .int__tab-nav-photo,
  .int__tab-nav-name,
  .int__tab-nav-button::after {
    transition: none;
  }

  .int__tab-nav-name {
    min-width: 7.6rem;
    max-height: 2.6rem;
    margin-top: -1rem;
    padding: 0 0.9rem;
    font-size: 1.2rem;
    opacity: 1;
    overflow: visible;
  }

  .int__tab-nav-button.is-active .int__tab-nav-name {
    min-width: 10.8rem;
    max-height: 2.6rem;
    margin-top: -2.3rem;
    padding: 0 2rem;
    font-size: 1.5rem;
  }

}

@media (prefers-reduced-motion: reduce) {

  .int__card-front,
  .int__tab-nav-photo,
  .int__tab-nav-name,
  .int__tab-nav-button::after {
    transition-duration: 0ms;
  }

  .int__panel.is-active {
    animation-duration: 0ms;
  }
}

@media screen and (max-width: 767px) {
  .int {
    margin-bottom: 10.4rem;
    padding: 11.1rem 0 0;
  }

  .int__inner {
    padding-right: 1.4rem;
    padding-left: 1.4rem;
  }

  .int::before {
    width: 29.1rem;
    height: 44.3rem;
    background-image: url("img/int-bg-decoration-sp.svg");
    background-position: left top;
    background-size: 100% 100%;
    left: -20.8rem;
  }

  .int__english {
    width: 29rem;
    top: 1.6rem;
    right: 0rem;
  }

  .int__title {
    width: auto;
  }

  .int__title-sub {
    padding-left: 0;
    font-size: 1.8rem;
    white-space: normal;
    text-align: center;
    letter-spacing: 0.1rem;
  }

  .int__title-main {
    margin: 0.6rem auto 0;
    padding: 0.4rem 0.8rem 0.5rem;
    font-size: 2.6rem;
    letter-spacing: 0.1rem;
  }

  .int__title-main::before,
  .int__title-main::after {
    width: 1.2rem;
  }

  .int__title-main::before {
    left: -1.17rem;
  }

  .int__title-main::after {
    right: -1.17rem;
  }

  .int__cards {
    width: auto;
    margin: 3.4rem -2rem 0 0;
    grid-template-columns: 1fr;
    gap: 2.3rem;
    position: relative;
    left: auto;
  }

  .int__card {
    width: auto;
    padding: 0 2rem 0.6rem 0;
  }

  .int__card::before {
    top: 0.6rem;
    right: 1.4rem;
    left: 0.7rem;
  }

  .int__card-front {
    width: auto;
    min-height: 23.5rem;
    padding-bottom: 0;
    display: grid;
    grid-template-columns: 10.5rem minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
  }

  .int__card-photo {
    width: auto;
    height: 23.3rem;
    aspect-ratio: auto;
    grid-column: 1;
    grid-row: 1 / 4;
  }

  .int__card-photo img {
    object-position: center bottom;
  }

  .int__card-comment {
    margin: 1.4rem 1.4rem 0;
    gap: 0.4rem;
    position: static;
    grid-column: 2;
    grid-row: 1;
  }

  .int__card-comment mark {
    padding: 0 0.4rem;
    font-size: 1.5rem;
  }

  .int__card-name {
    margin: 0.8rem 1.4rem 0;
    font-size: 1.5rem;
    grid-column: 2;
    grid-row: 2;
  }

  .int__card-name strong {
    font-size: 2.0rem;
  }

  .int__card-tags {
    margin: 0.9rem 4rem 1rem 1.4rem;
    padding-right: 0;
    gap: 0.7rem 0.4rem;
    align-content: start;
    grid-column: 2;
    grid-row: 3;
  }

  .int__card-tags span {
    padding: 0.2rem 0.8rem;
    font-size: 1.2rem;
    line-height: 1.2;
  }

  .int__card-tags b {
    font-size: 1.2rem;
  }

  .int__card-arrow {
    width: 3.0rem;
    background-size: 2.5rem;
  }

  .int__tabbox {
    width: auto;
    margin-top: 3.4rem;
    display: block;
    scroll-margin-top: 1rem;
  }

  .int__tab-nav {
    width: auto;
    margin-inline: 1.4rem;
    padding: 0;
    background: none;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2.1rem;
    position: static;
    top: auto;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .int__tab-nav--top {
    height: 11.5rem;
    align-items: center;
  }

  .int__tab-nav--top .int__tab-nav-button {
    height: 11.5rem;
    align-content: center;
  }

  .int__tab-nav-button {
    width: auto;
    min-width: 0;
  }

  .int__tab-nav-button::after {
    display: none;
  }

  .int__tab-nav-photo {
    width: 6.6rem;
  }

  .int__tab-nav-button.is-active .int__tab-nav-photo {
    width: 11.2rem;
  }

  .int__tab-nav-name {
    min-width: 6.6rem;
    max-height: 2.3rem;
    margin-top: -1rem;
    padding: 0 0.9rem;
    font-size: 1.05rem;
    opacity: 1;
    overflow: visible;
  }

  .int__tab-nav-button.is-active .int__tab-nav-name {
    min-width: 8.2rem;
    max-height: 2.3rem;
    margin-top: -2rem;
    padding: 0 1rem;
    font-size: 1.3rem;
  }

  .int__tab-nav--top .int__tab-nav-button.is-active::after {
    width: 0;
    height: 3.4rem;
    border: 0;
    border-left: 0.1rem dashed var(--color-main-blue);
    display: block;
    top: 100%;
    left: 50%;
    opacity: 1;
  }

  .int__panels {
    width: auto;
    margin: 3.4rem 0 0;
    position: relative;
    left: auto;
  }

  .int__panel {
    width: auto;
    padding: 1.8rem 1.3rem 3.2rem;
  }

  .int__qa+.int__qa {
    margin-top: 3.8rem;
  }

  .int__question {
    padding: 0.6rem 1.2rem;
    font-size: 1.8rem;
    line-height: 1.5;
    gap: 1rem;
  }

  .int__question-icon {
    width: 2.8rem;
    height: auto;
  }

  .int__answer {
    margin-top: 2rem;
    padding: 0;
  }

  .int__answer::before {
    top: -1.6rem;
    left: 0rem;
  }

  .int__answer .int-a {
    font-size: 1.6rem;
    line-height: 1.5;
    padding: 0 0 0 2.8rem;
  }

  .int__answer .int-a::before,
  .int__answer .int-a::after {
  width: 2rem;
  height: 2rem;
  background-size: contain;
  top: 0.3rem;
  left: 0.5rem;
  transform: none;

  }

  .int__answer p {
    margin-top: 2rem;
  }

  .int__tab-nav--bottom {
    margin-top: 3.4rem;
    display: flex;
    position: relative;
  }

  .int__tab-nav--bottom .int__tab-nav-button.is-active::after {
    width: 0;
    height: 3.4rem;
    border: 0;
    border-left: 0.1rem dashed var(--color-main-blue);
    display: block;
    position: absolute;
    top: auto;
    bottom: 100%;
    left: 50%;
    opacity: 1;
  }
}

/*
---------------------------------------------

    拠点

*/
.val {
  margin: 10rem 0;
  padding: 9.1rem 0 12.6rem;
  background: var(--color-main-darkblue);
  color: #fff;
  position: relative;
  isolation: isolate;
}

.val::before,
.val::after {
  content: "";
  background: no-repeat center / contain;
  position: absolute;
  z-index: 3;
  pointer-events: none;
}

.val::before {
  width: 21.1rem;
  aspect-ratio: 210.9 / 536.6;
  background-image: url("img/val-deco-left.svg");
  top: -30rem;
  left: 0;
}

.val::after {
  width: 13.9rem;
  aspect-ratio: 138.9 / 570.6;
  background-image: url("img/val-deco-right.svg");
  top: 78.4rem;
  right: max(calc((100% - 168rem) / 2 + 6.3rem), 0rem);
}

.val__decoration-line {
  display: none;
}

.val__map-view::after {
  content: "";
  width: 72.4rem;
  background: linear-gradient(90deg, var(--color-main-darkblue) 0 38%, rgb(0 49 119 / 0%) 100%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(50% - 55rem);
  z-index: 1;
  pointer-events: none;
}

.val__map-view {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: clip;
  pointer-events: none;
}

.val__map-stage {
  width: 168rem;
  height: 100%;
  margin: 0;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.val__map {
  width: 64.3%;
  aspect-ratio: 1079.3 / 1419.4;
  background: url("img/val-map.svg") no-repeat center / 100% 100%;
  position: absolute;
  top: -18.1rem;
  left: 32%;
}

.val__map-pin {
  width: 4.3rem;
  height: 5.4rem;
  background: url("img/val-map-pin.svg") no-repeat center / contain;
  position: absolute;
}

.val__map-pin--yoshima {
  top: 53rem;
  left: 77%;
}

.val__map-pin--yotsukura {
  top: 51.6rem;
  left: 74.5%;
}

.val__map-pin--matsumoto {
  top: 65rem;
  left: 67.1%;
}

.val__map-pin--yokohama {
  top: 69.6rem;
  left: 74.6%;
}

.val__map-label {
  color: #fff;
  font-size: 1.8rem;
  line-height: 1.5;
  white-space: nowrap;
  position: absolute;
}

.val__map-label--yoshima {
  top: 48.2rem;
  left: 62.5%;
}

.val__map-label--yotsukura {
  top: 61.4rem;
  left: 86.3%;
}

.val__map-label--matsumoto {
  width: 9.7rem;
  top: 61.6rem;
  left: 54.2%;
  text-align: right;
}

.val__map-label--yokohama {
  top: 78.1rem;
  left: 83.8%;
}

.val__map-line {
  width: 11.7rem;
  height: 2.1rem;
  background: url("img/val-map-line.svg") no-repeat center / 100% 100%;
  position: absolute;
}

.val__map-line--yoshima {
  width: 12.9rem;
  background-image: url("img/val-map-line-long.svg");
  top: 49.3rem;
  left: 67.4%;
  transform: rotate(180deg);
}

.val__map-line--yotsukura {
  top: 60.5rem;
  left: 78.6%;
}

.val__map-line--matsumoto {
  top: 62.7rem;
  left: 60.6%;
  transform: rotate(180deg);
}

.val__map-line--yokohama {
  top: 77.1rem;
  left: 76.2%;
}

@media screen and (max-width: 1280px) and (min-width: 768px) {
  .val__map-stage {
    left: calc(100% - 75.2rem);
  }
}

.val__inner {
  position: relative;
  z-index: 2;
}

.val__title {
  margin-left: 0.7rem;
  color: #fff;
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
}

.val__office-list {
  width: 52.1rem;
  margin: 8.5rem 0 0 0.7rem;
  display: grid;
  gap: 3.6rem;
}

.val__office-item {
  display: grid;
  grid-template-columns: 20rem minmax(0, 1fr);
  align-items: center;
  gap: 2.8rem;
}

.val__office-photo {
  width: 20rem;
  aspect-ratio: 5 / 3;
  position: relative;
}

.val__office-photo::after {
  content: "";
  border: 0.1rem solid var(--color-point-yellow);
  position: absolute;
  top: 0.5rem;
  right: -0.5rem;
  bottom: -0.5rem;
  left: 0.5rem;
  pointer-events: none;
}

.val__office-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.val__office-info {
  min-width: 0;
}

.val__office-name {
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.7;
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.val__office-pin {
  width: 2.1rem;
  height: 2.7rem;
  background: url("img/val-list-pin.svg") no-repeat center / contain;
  flex: 0 0 auto;
}

.val__office-address {
  margin-top: 0.7rem;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.7;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .val {
    margin: 0;
    min-height: 85.5rem;
    padding: 3.8rem 0 0;
  }

  .val__inner {
    padding-right: 1.4rem;
    padding-left: 1.4rem;
  }

  .val::before,
  .val::after {
    display: none;
  }

  .val__decoration-line {
    display: block;
    width: var(--sp-decoration-line-width);
    background: var(--color-main-blue);
    position: absolute;
    z-index: 3;
    transform: rotate(16.9deg);
    transform-origin: top center;
    pointer-events: none;
  }

  .val__decoration-line--left-blue,
  .val__decoration-line--left-yellow {
    height: 10.4rem;
  }

  .val__decoration-line--left-blue {
    top: -5.6rem;
    left: 4.4rem;
  }

  .val__decoration-line--left-yellow {
    top: -1.3rem;
    left: 1.9rem;
    background: var(--color-main-yellow);
  }

  .val__decoration-line--right-long {
    height: 10.8rem;
    top: 79.7rem;
    right: 0.6rem;
  }

  .val__decoration-line--right-short {
    height: 5rem;
    top: 76.9rem;
    right: 1.2rem;
  }

  .val__title {
    margin-left: 0;
    font-size: 2.6rem;
    text-align: center;
  }

  .val__office-list {
    width: auto;
    margin: 4.2rem 0.2rem 0 0;
    gap: 1.7rem;
  }

  .val__office-item {
    min-height: 8.6rem;
    grid-template-columns: 12.4rem minmax(0, 1fr);
    gap: 1.6rem;
  }

  .val__office-photo {
    width: auto;
    aspect-ratio: 142 / 94;
  }

  .val__office-photo::after {
    top: 0.4rem;
    right: -0.4rem;
    bottom: -0.4rem;
    left: 0.4rem;
  }

  .val__office-name {
    font-size: 1.7rem;
    gap: 0.8rem;
  }

  .val__office-pin {
    width: 1.4rem;
    height: 1.8rem;
  }

  .val__office-address {
    margin-top: 0;
    font-size: 1.5rem;
    line-height: 1.5;
    white-space: normal;
  }

  .val__map-view {
    height: auto;
  }

  .val__map-view::after {
    width: 100%;
    height: 47.2rem;
    background: linear-gradient(to bottom, var(--color-main-darkblue) 0%, rgb(0 49 119 / 0%) 100%);
    top: 17.7rem;
    bottom: auto;
    left: 0;
  }

  .val__map-stage {
    width: 100%;
    left: 0;
    transform: none;
  }

  .val__map {
    width: 61.9rem;
    top: 18.8rem;
    left: -19.5rem;
  }

  .val__map-pin {
    width: 2.1rem;
    height: 2.6rem;
  }

  .val__map-pin--yoshima {
    top: 59.2rem;
    left: 21.7rem;
  }

  .val__map-pin--yotsukura {
    top: 60rem;
    left: 24.1rem;
  }

  .val__map-pin--matsumoto {
    top: 66.9rem;
    left: 14.5rem;
  }

  .val__map-pin--yokohama {
    top: 69.7rem;
    left: 21.8rem;
  }

  .val__map-label {
    font-size: 1.31rem;
  }

  .val__map-label--yoshima {
    top: 56.6rem;
    left: 8rem;
  }

  .val__map-label--yotsukura {
    top: 64.5rem;
    left: 27rem;
  }

  .val__map-label--matsumoto {
    width: auto;
    top: 62.9rem;
    left: 1.4rem;
  }

  .val__map-label--yokohama {
    top: 74.2rem;
    left: 26.5rem;
  }

  .val__map-line {
    width: 6.9rem;
    height: 1.7rem;
  }

  .val__map-line--yoshima {
    width: 6.9rem;
    top: 57.5rem;
    left: 14.8rem;
  }

  .val__map-line--yotsukura {
    width: 1.2rem;
    top: 63.9rem;
    left: 25.3rem;
  }

  .val__map-line--matsumoto {
    top: 63.9rem;
    left: 7.9rem;
  }

  .val__map-line--yokohama {
    width: 2.9rem;
    top: 73.7rem;
    left: 23rem;
  }
}

/*
---------------------------------------------

    めっき加工ってどんな仕事？

*/
.p-about {
  margin-bottom: 13.4rem;
  padding-top: 1.1rem;
  position: relative;
}

.p-about::before,
.p-about::after {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  pointer-events: none;
}

.p-about::before {
  width: 14.8rem;
  aspect-ratio: 148 / 114;
  background-image: url("img/deco-blue.svg");
  top: 0;
  left: max(calc((100% - 168rem) / 2 + 4.8rem), 0rem);
}

.p-about::after {
  width: 7.6rem;
  aspect-ratio: 76 / 56;
  background-image: url("img/deco-yellow.svg");
  top: 9.6rem;
  left: max(calc((100% - 168rem) / 2 + 12.7rem), 0rem);
}

.p-about__inner {
  position: relative;
  z-index: 1;
}

.p-about__title {
  text-align: center;
}

.p-about__title-sub {
  display: block;
  color: #333;
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.7;
}

.p-about__title-main {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 1.2rem auto 0;
  padding: 0 1.9rem 0.3rem;
  background: var(--color-main-darkblue);
  color: #fff;
  font-size: 4.2rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.4;
  white-space: nowrap;
  position: relative;
}

.p-about__title-main::before,
.p-about__title-main::after {
  content: "";
  width: 1.9rem;
  height: 100%;
  background: var(--color-main-darkblue);
  position: absolute;
  top: 0;
}

.p-about__title-main::before {
  left: -1.85rem;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.p-about__title-main::after {
  right: -1.85rem;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.p-about__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.8rem;
  margin-top: 6.3rem;
}

.p-about__card {
  display: flex;
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
  box-shadow:
    1rem 1rem 0 -0.1rem #fff,
    1rem 1rem 0 var(--color-main-blue);
  flex-direction: column;
  position: relative;
  z-index: 0;
}

.p-about__card-body {
  padding: 2.9rem 2.3rem 4rem;
  flex: 1;
  overflow: hidden;
  position: relative;
}

.p-about__card-body::before {
  content: "";
  width: 6.4rem;
  height: 18.5rem;
  background: #ededed;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.p-about__card-title,
.p-about__card-description {
  position: relative;
  z-index: 1;
}

.p-about__card-title {
  padding-bottom: 1.3rem;
  color: var(--color-main-blue);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0rem;
  line-height: 1.7;
  text-align: center;
}

.p-about__card-description {
  margin-top: 2rem;
  color: #000;
  font-size: 1.5rem;
  line-height: 1.7;
}

.p-about__card-visual {
  width: 100%;
  aspect-ratio: 346 / 210;
  flex: 0 0 auto;
}

.p-about__card-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  .p-about {
    margin-bottom: 7.3rem;
    padding-top: 0;
  }

  .p-about::before {
    width: 5.1rem;
    left: -0.8rem;
  }

  .p-about::after {
    width: 2.6rem;
    top: 3.3rem;
    left: 1.9rem;
  }

  .p-about__title-sub {
    font-size: 2.0rem;
  }

  .p-about__title {
    transform: translateY(3.5rem);
  }

  .p-about__title-main {
    margin-top: 0.4rem;
    padding: 0.2rem 1rem 0.4rem;
    font-size: 2.4rem;
    letter-spacing: 0.1rem;
    line-height: 1.2;
  }

  .p-about__title-main::before,
  .p-about__title-main::after {
    width: 1rem;
  }

  .p-about__title-main::before {
    left: -0.97rem;
  }

  .p-about__title-main::after {
    right: -0.97rem;
  }

  .p-about__cards {
    width: auto;
    margin-right: 2.2rem;
    margin-left: 2.2rem;
    grid-template-columns: 1fr;
    gap: 2.6rem;
    margin-top: 6.8rem;
  }

  .p-about__card {
    box-shadow:
      0.6rem 0.6rem 0 -0.1rem #fff,
      0.6rem 0.6rem 0 var(--color-main-blue);
  }

  .p-about__card-body {
    min-height: 18.3rem;
    padding: 1.9rem 1.4rem 1.4rem;
    box-sizing: border-box;
  }

  .p-about__card-body::before {
    width: 5.2rem;
    height: 15.5rem;
  }

  .p-about__card-title {
    padding-bottom: 0;
    font-size: 1.8rem;
  }

  .p-about__card-description {
    margin-top: 1.5rem;
  }

  .p-about__card-visual {
    height: 18rem;
    aspect-ratio: auto;
  }
}

/*
---------------------------------------------

    Q&A

*/
.qa {
  margin-bottom: 9.3rem;
  position: relative;
}

.qa__inner {
  display: grid;
  width: min(168rem, 100%);
  margin: 0 auto;
  padding-right: 7.8rem;
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1fr) 69.7rem;
  align-items: start;
  position: relative;
}

.qa__en {
  margin: 0;
  width: 11.6rem;
  height: 37.1rem;
  position: absolute;
  top: 20rem;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.qa__en img {
  display: block;
  width: 100%;
  height: 100%;
}

.qa__content {
  width: 56.9rem;
  margin-left: max(2rem, calc((min(100vw, 168rem) - 110rem) / 2));
  padding-top: 8.6rem;
}

.qa__title {
  color: #333;
  font-size: 5.2rem;
  font-weight: 700;
  letter-spacing: 0.3rem;
  line-height: 1.5;
}

.qa__list {
  display: flex;
  margin-top: 9.4rem;
  flex-direction: column;
  gap: 2.7rem;
}

.qa__item {
  padding: 0 2rem 2.8rem;
  border-bottom: 0.1rem solid var(--color-main-blue);
}

.qa__question-heading {
  margin: 0;
}

.qa__question {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  color: var(--color-main-blue);
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.qa__question-text {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.7;
}

.qa__toggle-icon {
  width: 1.8rem;
  height: 1.8rem;
  flex: 0 0 auto;
  position: relative;
}

.qa__toggle-icon::before,
.qa__toggle-icon::after {
  content: "";
  width: 1.8rem;
  height: 0.2rem;
  background: var(--color-main-blue);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}

.qa__toggle-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.qa__item.is-open .qa__toggle-icon::after {
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

.qa__answer {
  margin-top: 1.9rem;
}

.qa__item:not(.is-open):not(.is-closing) .qa__answer {
  display: none;
}

.qa__answer-inner {
  width: 44.7rem;
  max-width: 100%;
  color: #000;
  font-size: 1.5rem;
  line-height: 1.7;
}

.qa__visual {
  width: 69.7rem;
  aspect-ratio: 697 / 798;
  margin: 0;
  position: relative;
}

.qa__visual::before,
.qa__visual::after {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.qa__visual::before {
  width: 33%;
  height: 23.8%;
  background-image: url("img/deco-blue.svg");
  background-size: contain;
  top: -2.3%;
  left: 3.2%;
}

.qa__visual::after {
  width: 20%;
  height: 13.7%;
  background-image: url("img/deco-yellow.svg");
  background-size: contain;
  right: 9.6%;
  bottom: 10.4%;
}

.qa__visual-people {
  display: block;
  width: 100%;
  height: auto;
}

@media screen and (max-width: 1280px) and (min-width: 768px) {
  .qa__inner {
    padding-right: 0;
    grid-template-columns: minmax(0, 1fr) 53.7rem;
  }

  .qa__visual {
    width: 53.7rem;
    margin-top: 10rem;
  }
}

@media screen and (max-width: 767px) {
  .qa {
    margin-bottom: 7.1rem;
    padding-bottom: 0;
  }

  .qa__inner {
    width: 100%;
    padding-right: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .qa__en {
    display: none;
  }

  .qa__visual {
    width: auto;
    min-width: 0;
    margin: 0 1.4rem;
    order: 1;
  }

  .qa__visual::before {
    width: 11.8rem;
    height: 9.9rem;
    background-image: url("img/qa-deco-blue-sp.svg");
    top: 0;
    left: 1.5rem;
  }

  .qa__visual::after {
    width: 7.5rem;
    height: 6.3rem;
    background-image: url("img/qa-deco-yellow-sp.svg");
    top: 30.8rem;
    right: auto;
    bottom: auto;
    left: 23.6rem;
  }

  .qa__content {
    width: auto;
    min-width: 0;
    margin: 3.3rem 2.8rem 0;
    padding-top: 0;
    order: 2;
  }

  .qa__title {
    font-size: 2.4rem;
    text-align: center;
    letter-spacing: 0.1rem;
  }

  .qa__list {
    margin-top: 3.1rem;
    gap: 2.4rem;
  }

  .qa__item {
    padding: 0 0 2.4rem;
  }

  .qa__question {
    gap: 1.4rem;
  }

  .qa__question-text {
    min-width: 0;
    font-size: 1.6rem;
    overflow-wrap: anywhere;
  }

  .qa__toggle-icon,
  .qa__toggle-icon::before,
  .qa__toggle-icon::after {
    width: 1.5rem;
  }

  .qa__toggle-icon {
    height: 1.5rem;
  }

  .qa__answer {
    margin-top: 1.6rem;
  }

  .qa__answer-inner {
    width: 100%;
    max-width: none;
    font-size: 1.5rem;
    overflow-wrap: anywhere;
  }
}

/*
---------------------------------------------

    募集要項

*/
.requirements {
  padding: 8rem 0 9.6rem;
  background: var(--bgcolor-skyblue);
  scroll-margin-top: 9rem;
}

.requirements__title {
  color: #333;
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  text-align: center;
}

.requirements__table-frame {
  width: 90.6rem;
  max-width: 100%;
  margin: 3.4rem auto 0;
  padding: 3.7rem 3.8rem 6rem;
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
  box-shadow:
    1rem 1rem 0 -0.1rem var(--bgcolor-skyblue),
    1rem 1rem 0 var(--color-main-blue);
}

.requirements__table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  color: #333;
  font-size: 1.6rem;
  line-height: 1.7;
}

.requirements__table th,
.requirements__table td {
  padding-top: 0;
  padding-bottom: 1rem;
  background: transparent;
  border-right: 0;
  border-bottom: 0.1rem solid #d9d9d9;
  line-height: 1.7;
  vertical-align: middle;
  word-break: normal;
}

.requirements__table tr+tr th,
.requirements__table tr+tr td {
  padding-top: 1.1rem;
}

.requirements__table th {
  width: 12rem;
  padding-right: 1.1rem;
  padding-left: 2rem;
  color: var(--color-main-blue);
  font-weight: 700;
  text-align: center;
}

.requirements__table td {
  padding-right: 2rem;
  font-weight: 400;
  overflow-wrap: anywhere;
}

.requirements__table td p+p {
  margin-top: 0;
}

.requirements__list li {
  padding-left: 1em;
  text-indent: -1em;
}

.requirements__list li::before {
  content: "・";
}

.requirements__nowrap {
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .requirements {
    padding: 4rem 0 4rem;
    scroll-margin-top: 1rem;
  }

  .requirements__inner {
    padding-right: 1.4rem;
    padding-left: 1.4rem;
  }

  .requirements__title {
    font-size: 2.4rem;
    letter-spacing: 0.1rem;
  }

  .requirements__table-frame {
    width: auto;
    margin-top: 3.5rem;
    padding: 2.7rem 1.4rem 3.5rem;
    box-shadow:
      0.6rem 0.6rem 0 -0.1rem #fff,
      0.6rem 0.6rem 0 var(--color-main-blue);
  }

  .requirements__table {
    font-size: 1.5rem;
  }

  .requirements__table th,
  .requirements__table td {
    padding-bottom: 0.9rem;
  }

  .requirements__table tr+tr th,
  .requirements__table tr+tr td {
    padding-top: 1rem;
  }

  .requirements__table th {
    width: 7.8rem;
    padding-right: 0;
    padding-left: 0;
  }

  .requirements__table td {
    padding-right: 0;
    padding-left: 0.9rem;
  }

  .requirements__nowrap {
    white-space: normal;
  }
}

/*
---------------------------------------------

    選考の流れ

*/
.flow {
  padding: 9.3rem 0 12.3rem;
}

.flow__title {
  color: #333;
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  text-align: center;
}

.flow__list {
  display: grid;
  grid-template-columns: repeat(4, 18.8rem);
  justify-content: center;
  gap: 4rem;
  width: 87.2rem;
  max-width: 100%;
  margin: 3.5rem auto 0;
}

.flow__item {
  position: relative;
  display: grid;
  grid-template-rows: 11.2rem 6rem;
  justify-items: center;
  align-content: start;
  row-gap: 1.9rem;
  padding: 4.1rem 1rem 1.6rem;
  background: #fff;
  border: 0.1rem solid var(--color-main-blue);
}

.flow__item+.flow__item::before {
  position: absolute;
  top: 11rem;
  left: -3.1rem;
  width: 2.1rem;
  height: 2.8rem;
  background: url("img/flow-arrow.svg") no-repeat center / 100% 100%;
  content: "";
}

.flow__step {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  width: 8.5rem;
  height: 2.7rem;
  padding-left: 1.2rem;
  background: var(--color-main-blue);
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1;
}

.flow__step::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 0.9rem;
  height: 2.7rem;
  background: url("img/flow-step-tab.svg") no-repeat center / 100% 100%;
  content: "";
}

.flow__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 11.2rem;
  height: 11.2rem;
  background: url("img/flow-icon-bg.svg") no-repeat center / 100% 100%;
}

.flow__icon--entry img {
  width: 6.6rem;
}

.flow__icon--interview img {
  width: 8.9rem;
}

.flow__icon--factory img {
  width: 8.5rem;
}

.flow__icon--offer img {
  width: 9.6rem;
}

.flow__item-title {
  align-self: center;
  color: #333;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .flow {
    margin-top: 7.1rem;
    padding: 0;
  }

  .flow__title {
    font-size: 2.4rem;
    letter-spacing: 0.1rem;
  }

  .flow .l-center {
    padding-right: 1.4rem;
    padding-left: 1.4rem;
  }

  .flow__scroll {
    margin: 3.1rem 0 0;
    padding-bottom: 1rem;
    overflow-x: scroll;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .flow__list {
    grid-template-columns: repeat(4, 16.4rem);
    width: max-content;
    max-width: none;
    margin: 0;
    justify-content: start;
    gap: 3.6rem;
  }

  .flow__item {
    width: auto;
    grid-template-rows: 9.8rem 2.9rem;
    row-gap: 1.1rem;
    padding: 3.7rem 0.9rem 1rem;
  }

  .flow__item+.flow__item::before {
    width: 1.8rem;
    height: 2.4rem;
    top: 8.7rem;
    left: -2.7rem;
  }

  .flow__step {
    width: 7.4rem;
    height: 2.4rem;
    padding-left: 1rem;
    font-size: 1.2rem;
  }

  .flow__step::after {
    width: 0.8rem;
    height: 2.4rem;
  }

  .flow__icon {
    width: 9.8rem;
    height: 9.8rem;
  }

  .flow__icon--entry img {
    width: 5.8rem;
  }

  .flow__icon--interview img {
    width: 7.8rem;
  }

  .flow__icon--factory img {
    width: 7.4rem;
  }

  .flow__icon--offer img {
    width: 8.4rem;
  }

  .flow__item-title {
    font-size: 1.5rem;
    white-space: nowrap;
  }

  .flow__item:last-child .flow__item-title {
    font-size: 1.5rem;
  }
}


/*
---------------------------------------------

    エントリー

*/
.entry {
  position: relative;
  padding: 0.6rem 0 6.8rem;
  background: var(--color-main-darkblue);
}

.entry::before {
  position: absolute;
  top: -37.1rem;
  right: 3.1rem;
  width: 17.9rem;
  height: 42.6rem;
  background: url("img/entry-decoration.svg") no-repeat center / 100% 100%;
  content: "";
  pointer-events: none;
  transform: scaleX(-1);
}

.entry__decoration-line {
  display: none;
}

.entry__inner {
  position: relative;
  z-index: 1;
}

.entry__heading {
  display: grid;
  justify-items: center;
}

.entry__title-en,
.entry__title {
  grid-area: 1 / 1;
}

.entry__title-en {
  display: flex;
  width: 47.8rem;
  height: 23.8rem;
  align-items: center;
  justify-content: center;
}

.entry__title-en img {
  display: block;
  width: 100%;
  height: auto;
}

.entry__title {
  align-self: start;
  margin-top: 17rem;
  color: #fff;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.entry__heading>p:not(.entry__title-en) {
  color: #fff;
  text-align: center;
  width: 80rem;
}

.entry__form-placeholder {
  width: 100%;
  margin-top: 7rem;
  padding: 4rem;
  background: #fff;
  color: #333;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.7;
  text-align: center;
}

.entry__form-frame {
  display: block;
  width: 100%;
  aspect-ratio: 1020 / 1257;
  background: #fff;
  border: 0;
}

@media screen and (max-width: 767px) {
  .entry {
    margin-top: 10rem;
    padding: 2.3rem 0 6.6rem;
  }

  .entry::before {
    display: none;
  }

  .entry__decoration-line {
    display: block;
    width: var(--sp-decoration-line-width);
    background: var(--color-main-blue);
    position: absolute;
    z-index: 0;
    transform: rotate(16.9deg);
    transform-origin: top center;
    pointer-events: none;
  }

  .entry__decoration-line--blue {
    height: 10.3rem;
    top: -8rem;
    right: 0;
  }

  .entry__decoration-line--yellow {
    height: 6.9rem;
    top: -2.5rem;
    right: 3rem;
    background: var(--color-main-yellow);
  }

  .entry__title-en {
    width: 17.9rem;
    height: 8.9rem;
  }

  .entry__title {
    margin-top: 6.7rem;
    font-size: 2.4rem;
  }

  .entry__heading>p:not(.entry__title-en) {
    width: auto;
    margin: 1.6rem 1.4rem 0;
  }

  .entry__form-placeholder {
    margin-top: 2.1rem;
    padding: 0;
  }

  .entry__form-frame {
    aspect-ratio: 393 / 1384;
  }

  .footer-copyright {
    padding: 1rem 2rem;
    font-size: 1.1rem;
  }
}

/*
---------------------------------------------

    thanks

*/
.thanks {
  min-height: 100vh;
  min-height: 100dvh;
  background: #fff;
  color: #1E2744;
}

.thanks__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 18.9rem;
}

.thanks__title {
  min-height: 7rem;
  padding: 1rem;
  border-bottom: 0.1rem solid var(--color-main-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.7rem;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  white-space: nowrap;
}

.thanks__message {
  margin-top: 5rem;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.8;
  text-align: center;
}

.thanks__message p+p {
  margin-top: 0;
}

.thanks__button {
  width: 29.6rem;
  height: 8.3rem;
  margin-top: 4.2rem;
  padding: 1.5rem 1.5rem 1.5rem 4.6rem;
  border: 0.1rem solid #fff;
  border-radius: 4.5rem;
  background:
    url("img/arrow-wh.svg") no-repeat right 1.5rem center / 3rem 3rem,
    linear-gradient(64.5deg, var(--color-main-blue) 47%, var(--color-main-skyblue) 107.5%);
  display: flex;
  align-items: center;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.thanks__button span {
  flex: 0 0 19.5rem;
}

.page-thanks .page-top {
  display: none !important;
}

@media (hover: hover) {
  .thanks__button:hover {
    color: #fff;
    opacity: 0.75;
  }
}

@media screen and (max-width: 767px) {
  .thanks {
    padding: 10rem 1.4rem 8rem;
  }

  .thanks__inner {
    padding-top: 0;
  }

  .thanks__title {
    width: 100%;
    min-height: 6.4rem;
    padding: 0.8rem 0;
    font-size: 2.4rem;
    white-space: normal;
  }

  .thanks__message {
    margin-top: 4rem;
    font-size: 1.5rem;
  }

  .thanks__message p {
    display: inline;
  }

  .thanks__button {
    max-width: 100%;
    margin-top: 4rem;
  }
}