@charset "UTF-8";
/* Break point
---------------------------------------------------------- */
/* ==========================================================================//
//
//　変数
//
// ========================================================================== */
/* Placeholder
---------------------------------------------------------- */
.l-breadcrumb a, .l-list__news__item a, .l-article__block a:not([class]), .c-link {
  text-decoration: underline;
}
@media (hover: hover) {
  .l-breadcrumb a:hover, .l-list__news__item a:hover, .l-article__block a:hover:not([class]), .c-link:hover {
    text-decoration: none;
  }
  .l-breadcrumb a:focus-visible, .l-list__news__item a:focus-visible, .l-article__block a:focus-visible:not([class]), .c-link:focus-visible {
    text-decoration: none;
  }
}

.l-list__news__item a[target=_blank]:not([href$=".pdf"])::after, .l-article__block a[target=_blank]:not([href$=".pdf"]):not([class])::after {
  content: "";
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  background-image: url("/recruit/assets/images/icon_external.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  margin-left: 0.25em;
}

.l-list__news__item a[href$=".pdf"]::after, .l-article__block a[href$=".pdf"]:not([class])::after {
  content: "";
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  background-image: url("/recruit/assets/images/icon_document.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  margin-left: 0.25em;
}

.c-button--01 .arrow, .c-button--02 .arrow {
  padding: 0.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  justify-self: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.c-button--01 .arrow svg, .c-button--02 .arrow svg {
  width: 0.8em;
  height: 0.8rem;
}

@media (hover: hover) {
  .pagination .page-item .page-link:hover {
    opacity: 0.8;
  }
  .pagination .page-item .page-link:focus-visible {
    opacity: 0.8;
  }
}

.l-article__block .title_article {
  padding: 0.5em 1em;
  font-size: clamp(1.125rem, 0.975rem + 0.67vw, 1.375rem);
  font-weight: 500;
  background-color: var(--color-sub4);
  border-top: 2px solid #A2D3EF;
  position: relative;
  color: var(--color-main);
}
.l-article__block .title_article::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 3em;
  height: 2px;
  background-color: var(--color-main);
}

.l-article__block h1, .l-article__block h2 {
  font-size: clamp(1rem, 0.85rem + 0.67vw, 1.25rem);
  font-weight: 500;
  position: relative;
  color: var(--color-main);
}
.l-article__block h1::before, .l-article__block h2::before {
  content: "";
  display: inline-block;
  background-color: var(--color-main);
  width: 0.8em;
  height: 3px;
  border-radius: 0 999px 999px 0;
  margin-right: 0.4em;
  vertical-align: 0.3em;
}

.l-article__block h3 {
  font-size: clamp(0.875rem, 0.725rem + 0.67vw, 1.125rem);
  font-weight: 500;
  color: var(--color-main);
}

:root {
  /* Color
  ---------------------------------------------------------- */
  --color-font: #202020;
  --color-main: #002A74;
  --color-sub: #D4ECFA;
  --color-sub2:#0998FF;
  --color-sub3: #50BCFF;
  --color-sub4: #EBF8FF;
  --color-point: #FF96AE;
  --gradient: linear-gradient(145deg,rgba(175, 238, 255, 1) 0%, rgba(255, 185, 201, 1) 50%, rgba(0, 81, 255, 1) 100%);
  --gradient2: linear-gradient(45deg,rgba(63, 139, 249, 1) 0%, rgba(95, 177, 244, 1) 50%, rgba(142, 247, 255, 1) 100%);
  --gradient3: linear-gradient(-45deg,rgba(255, 189, 189, 1) 0%, rgba(118, 204, 255, 1) 100%);
  --gradient4: linear-gradient(120deg,rgba(179, 227, 255, 1) 0%, rgba(255, 238, 238, 1) 50%);
  /* Font
  ---------------------------------------------------------- */
  --font-jp: "Noto Sans JP", sans-serif;
  --font-zen: "Zen Kaku Gothic New", sans-serif;
  --font-roboto: "Roboto", sans-serif;
  --font-kulim: "Kulim Park", sans-serif;
  --font11: 0.7rem;
  --font12: 0.79rem;
  --font13: 0.81rem;
  --font14: 0.88rem;
  --font16: 1rem;
  --font17: 1.06rem;
  --font18: 1.12rem;
  --font19: 1.19rem;
  --font20: 1.25rem;
  --font22: 1.42rem;
  --font24: 1.5rem;
  --font25: 1.6rem;
  --font28: 1.8rem;
  --font30: 1.875rem;
  --font32: 2rem;
  --font35: 2.18rem;
  --font36: 2.28rem;
  --font40: 2.5rem;
  --font42: 2.625rem;
  --font44: 2.75rem;
  --font45: 2.81rem;
  --font46: 2.88rem;
  --font48: 3rem;
  --font55: 3.44rem;
  --font60: 3.75rem;
  --font63: 3.94rem;
  --font85: 5.31rem;
  /* Radius
  ---------------------------------------------------------- */
  --radius: 2px;
  --radiusM: 30px;
  --contentW: 1040px;
  --bezier: cubic-bezier(.4,0,.2,1);
}
@media screen and (min-width: 768px) {
  :root {
    --radiusM: 80px;
  }
}

/* ==================================================================

Base

================================================================== */
*,
::before,
::after {
  word-break: break-word;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--color-font);
  font-family: var(--font-jp);
  font-optical-sizing: auto;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

video {
  width: 100%;
}

ol:not(.decimal),
ul {
  list-style-type: none;
}

ol.decimal {
  list-style-type: decimal;
  -webkit-padding-start: 1em;
          padding-inline-start: 1em;
}

img {
  width: 100%;
}

p {
  line-height: 1.75;
}

em,
strong {
  font-style: normal;
}

p,
li,
em,
strong,
span,
a {
  -webkit-transform: rotateZ(0.03deg);
          transform: rotateZ(0.03deg);
}

select {
  border: 1px solid var(--color-line);
}

address {
  font-style: normal;
}

/* Title
---------------------------------------------------------- */
.c-title--01 {
  font-family: var(--font-kulim);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(2.625rem, 1.904rem + 3.21vw, 5.75rem);
}
.c-title--01--mini {
  font-family: var(--font-kulim);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(2rem, 1.567rem + 1.92vw, 3.875rem);
}
.c-title--01__sub {
  font-size: clamp(0.875rem, 0.76rem + 0.51vw, 1.375rem);
}

.c-underline_title--01 {
  position: relative;
  font-size: clamp(2.625rem, 1.904rem + 3.21vw, 5.75rem);
}
.c-underline_title--01::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 0.22em;
  background-color: var(--color-sub3);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
}

.c-point--01::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 8px;
  background-color: var(--color-sub2);
  border-radius: 0 3rem 3rem 0;
  margin-right: 0.35em;
}
.c-point--01--mini::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 8px;
  background-color: var(--color-sub2);
  border-radius: 0 3rem 3rem 0;
  margin-right: 0.35em;
}

.c-title--02 {
  font-size: clamp(1.25rem, 0.95rem + 1.33vw, 1.75rem);
  font-weight: bold;
  color: var(--color-main);
}

/* Text
---------------------------------------------------------- */
.c-text--base {
  font-size: var(--font14);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .c-text--base {
    font-size: 1rem;
  }
}

.c-disc {
  padding-left: 1em;
  position: relative;
}
.c-disc::before {
  content: "●";
  display: inline-block;
  width: 1em;
  text-align: center;
  margin-right: 0.5em;
  font-size: 40%;
  position: absolute;
  left: 0;
  top: 0.85em;
}

.c-color-main {
  color: var(--color-main);
}

/* Button
---------------------------------------------------------- */
.c-button--01 {
  padding-right: 2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  font-size: clamp(1rem, 0.769rem + 1.03vw, 2rem);
  color: var(--color-main);
}
@media (hover: hover) {
  .c-button--01:hover::after {
    opacity: 0.8;
  }
  .c-button--01:hover .arrow {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  .c-button--01:focus-visible::after {
    opacity: 0.8;
  }
  .c-button--01:focus-visible .arrow {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
}
.c-button--01::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--gradient);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
  border-radius: 0 30px;
}
.c-button--01::after {
  content: "";
  height: calc(100% - 10px);
  width: calc(100% - 10px);
  background-color: #fff;
  position: absolute;
  top: 5px;
  left: 5px;
  z-index: -1;
  border-radius: 0 30px;
  -webkit-transition: opacity 0.3s var(--bezier);
  transition: opacity 0.3s var(--bezier);
}
.c-button--01 .inner {
  position: absolute;
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  top: 0;
  left: 0;
}
.c-button--01 .arrow {
  background-color: var(--color-main);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition: -webkit-transform 0.3s var(--bezier);
  transition: -webkit-transform 0.3s var(--bezier);
  transition: transform 0.3s var(--bezier);
  transition: transform 0.3s var(--bezier), -webkit-transform 0.3s var(--bezier);
}
.c-button--01 .arrow svg {
  fill: #fff;
}

.c-button--02 {
  padding: 1em 2em;
  color: var(--color-main);
  background-color: var(--color-sub);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2em;
  border-radius: 0 1em;
  -webkit-transition: background-color 0.1s;
  transition: background-color 0.1s;
}
@media (hover: hover) {
  .c-button--02:hover {
    background-color: var(--color-sub3);
  }
  .c-button--02:hover .arrow {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  .c-button--02:focus-visible {
    background-color: var(--color-sub3);
  }
  .c-button--02:focus-visible .arrow {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
}
.c-button--02 .arrow {
  background-color: var(--color-main);
  right: 1.5rem;
  -webkit-transition: -webkit-transform 0.3s var(--bezier);
  transition: -webkit-transform 0.3s var(--bezier);
  transition: transform 0.3s var(--bezier);
  transition: transform 0.3s var(--bezier), -webkit-transform 0.3s var(--bezier);
}
.c-button--02 .arrow svg {
  fill: #fff;
}

.c-button--03 {
  padding: 0.5em 1em;
  background-color: var(--color-main);
  color: #fff;
  border-radius: 0 10px 0 10px;
  -webkit-transition: background-color 0.1s;
  transition: background-color 0.1s;
}
@media (hover: hover) {
  .c-button--03:hover {
    background-color: var(--color-sub2);
  }
  .c-button--03:focus-visible {
    background-color: var(--color-sub2);
  }
}

.c-button {
  padding: 1em 4em 1em 2em;
  color: var(--color-main);
  background-color: var(--color-sub);
  border-radius: 0 1em;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 500;
  -webkit-transition: background-color 0.1s, color 0.1s;
  transition: background-color 0.1s, color 0.1s;
}
@media (hover: hover) {
  .c-button:hover {
    background-color: var(--color-main);
    color: #fff;
  }
  .c-button:focus-visible {
    background-color: var(--color-main);
    color: #fff;
  }
}
.c-button::after {
  content: "";
  padding: 0.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  background: url("/recruit/assets/images/icon_circleArrow.svg") center/contain no-repeat;
  position: absolute;
  right: 1em;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

/* Link
---------------------------------------------------------- */
.c-link_arrow--01 {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-decoration: none;
  -webkit-transition: color 0.1s;
  transition: color 0.1s;
}
.c-link_arrow--01::after {
  margin-top: 0.2em;
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  -webkit-mask: url("/recruit/assets/images/icon_arrow.svg") no-repeat center;
          mask: url("/recruit/assets/images/icon_arrow.svg") no-repeat center;
  -webkit-transition: background-color 0.1s;
  transition: background-color 0.1s;
}
@media (hover: hover) {
  .c-link_arrow--01:hover {
    color: var(--color-sub3);
  }
  .c-link_arrow--01:hover::after {
    background-color: var(--color-sub3);
  }
  .c-link_arrow--01:focus-visible {
    color: var(--color-sub3);
  }
  .c-link_arrow--01:focus-visible::after {
    background-color: var(--color-sub3);
  }
}

@media (hover: hover) {
  .c-hover:hover {
    opacity: 0.8;
    -webkit-transition: opacity 0.1s;
    transition: opacity 0.1s;
  }
  .c-hover:focus-visible {
    opacity: 0.8;
    -webkit-transition: opacity 0.1s;
    transition: opacity 0.1s;
  }
}

/* Table
---------------------------------------------------------- */
.c-table--01 tr {
  display: grid;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .c-table--01 tr {
    display: revert;
  }
}
.c-table--01 th, .c-table--01 td {
  padding: 2em 1em;
}
@media screen and (min-width: 768px) {
  .c-table--01 th, .c-table--01 td {
    padding: 3em;
  }
}
.c-table--01 th {
  font-weight: 500;
  border-bottom: 2px solid var(--color-main);
}
@media screen and (min-width: 768px) {
  .c-table--01 th {
    border-top: 2px solid var(--color-main);
    text-align: left;
  }
}
@media screen and (min-width: 960px) {
  .c-table--01 th {
    padding-right: 5em;
  }
}
.c-table--01 td {
  font-size: var(--font14);
}
@media screen and (min-width: 768px) {
  .c-table--01 td {
    border-top: 2px solid var(--color-sub);
    border-bottom: 2px solid var(--color-sub);
    font-size: 1rem;
  }
}

/* Others
---------------------------------------------------------- */
.c-content-width {
  max-width: var(--contentW);
  margin-right: auto;
  margin-left: auto;
}

/* ==========================================================================//
//
//　Layout
//
// ========================================================================== */
.l-inner {
  width: 88%;
  margin-right: auto;
  margin-left: auto;
  max-width: var(--contentW);
}

.l-title-block {
  margin-bottom: -1em;
}

.l-section {
  padding: 2rem 0 4rem 0;
}
@media screen and (min-width: 960px) {
  .l-section {
    padding: 4rem 0 8rem 0;
  }
}

/* Breadcrumb
---------------------------------------------------------- */
.l-breadcrumb {
  font-size: var(--font14);
  color: #516892;
}
.l-breadcrumb__item {
  display: inline-block;
  position: relative;
}
.l-breadcrumb__item:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin: 0 0.2em;
  color: var(--color-sub);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='7' height='12' viewBox='0 0 7 12' fill='none'><path d='M1 1L6 6L1 11' stroke='%23516892'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
/* Page Header
---------------------------------------------------------- */
.l-pageheader {
  padding-top: 4rem;
  background-color: var(--color-sub);
}
@media screen and (min-width: 960px) {
  .l-pageheader {
    padding-top: 7rem;
  }
}
.l-pageheader > * {
  position: relative;
  z-index: 1;
}

/* News list
---------------------------------------------------------- */
.l-list__news {
  display: grid;
}
.l-list__news__item {
  padding: 1em;
}
@media screen and (min-width: 768px) {
  .l-list__news__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 2em;
  }
}
@media screen and (min-width: 960px) {
  .l-list__news__item {
    padding: 2em;
    gap: 3em;
  }
}
.l-list__news__item:nth-of-type(odd) {
  background-color: var(--color-sub4);
}
.l-list__news__item .date {
  display: block;
  color: var(--color-main);
}
.l-list__news__title {
  font-weight: 500;
}

.pagination .page-item.active .page-link {
  background-color: var(--color-sub2);
  border-radius: 50%;
  color: #fff;
}
.pagination .page-item .page-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 2em;
  height: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  aspect-ratio: 1/1;
}

/* Article
---------------------------------------------------------- */
.l-article__body {
  padding-bottom: 2rem;
}
.l-article__block {
  margin-top: 2rem;
}
.l-article__block:not(:first-of-type) {
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .l-article__block:not(:first-of-type) {
    margin-top: 5rem;
  }
}
.l-article__block p {
  margin-top: 1rem;
}
.l-article__block em {
  font-style: revert;
}
.l-article__block :where(h1, h2, h3, h4, h5, h6, ol, ul, dl, dt, dd) {
  all: revert;
}
.l-article__block .title_article {
  margin-bottom: 1.5em;
}
.l-article__block .caption {
  font-size: var(--font13);
  text-align: center;
  margin-top: 1em;
}
.l-article__block table th, .l-article__block table td {
  border: 1px solid #b1b1b1;
  padding: 1em;
}
.l-article__block table th {
  background-color: var(--color-sub4);
}
.l-article__block:not(:has(.l-article__title)) {
  margin-top: 2em;
}
.l-article__block:not(:has(.l-article__title)):not(:first-of-type) {
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .l-article__block:not(:has(.l-article__title)):not(:first-of-type) {
    margin-top: 5rem;
  }
}
.l-article__image img {
  margin: 2rem auto auto auto;
  width: auto;
}
@media screen and (min-width: 768px) {
  .l-article__image.grid-image {
    display: grid;
    grid-template-columns: repeat(2, auto);
    -webkit-column-gap: 1rem;
       -moz-column-gap: 1rem;
            column-gap: 1rem;
  }
}
@media screen and (min-width: 768px) {
  .l-article__grid {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 2rem;
  }
}

/* Loading
---------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .l-loading {
    --bezier02:cubic-bezier(.175,.885,.32,1.275);
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    width: 200vw;
    height: 200vh;
    background: linear-gradient(-135deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%);
    -webkit-transition: visibility 1s var(--bezier02), opacity 1s var(--bezier02), -webkit-transform 2s var(--bezier02);
    transition: visibility 1s var(--bezier02), opacity 1s var(--bezier02), -webkit-transform 2s var(--bezier02);
    transition: transform 2s var(--bezier02), visibility 1s var(--bezier02), opacity 1s var(--bezier02);
    transition: transform 2s var(--bezier02), visibility 1s var(--bezier02), opacity 1s var(--bezier02), -webkit-transform 2s var(--bezier02);
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    opacity: 1;
  }
  .l-loading.is-end {
    -webkit-transform: translate(100%, -100%);
            transform: translate(100%, -100%);
    opacity: 0;
    visibility: hidden;
  }
}
/* ==========================================================================//
//
//　Header
//
// ========================================================================== */
.l-header {
  --buttonH: 50px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .l-header {
    --buttonH: 60px;
  }
}
.l-header__logo {
  padding: 10px 0 0 10px;
  display: block;
  width: 30%;
  min-width: 8rem;
  max-width: 12rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-header__logo {
    padding: 20px 0 0 20px;
  }
}
.l-header__logo__text {
  font-size: clamp(0.75rem, 0.6rem + 0.67vw, 1rem);
  color: var(--color-main);
}
.l-header__button_menu {
  width: 50px;
  height: var(--buttonH);
  background-color: var(--color-sub2);
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10;
  border-radius: 0 0 0 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .l-header__button_menu {
    width: 60px;
    top: 30px;
    right: 30px;
    border-radius: 0 10px;
  }
}
@media (hover: hover) {
  .l-header__button_menu:hover .line::before {
    top: -10px;
  }
  .l-header__button_menu:hover .line::after {
    top: 10px;
  }
  .l-header__button_menu:focus-visible .line::before {
    top: -10px;
  }
  .l-header__button_menu:focus-visible .line::after {
    top: 10px;
  }
}
.l-header__button_menu .line {
  display: block;
  position: relative;
  width: 25px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
  -webkit-transition: all 0.3s var(--bezier);
  transition: all 0.3s var(--bezier);
}
@media screen and (min-width: 768px) {
  .l-header__button_menu .line {
    width: 30px;
  }
}
.l-header__button_menu .line::before, .l-header__button_menu .line::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 1px;
  -webkit-transition: all 0.3s var(--bezier);
  transition: all 0.3s var(--bezier);
  left: 0;
}
.l-header__button_menu .line::before {
  top: -8px;
}
.l-header__button_menu .line::after {
  top: 8px;
}
.l-header__button_menu[aria-expanded=true] .line {
  background: transparent;
}
.l-header__button_menu[aria-expanded=true] .line::before {
  top: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.l-header__button_menu[aria-expanded=true] .line::after {
  top: 0;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.l-header__button_entry {
  padding: 0 1.2em;
  font-family: var(--font-kulim);
  font-weight: bold;
  font-style: italic;
  font-size: clamp(1.125rem, 0.923rem + 0.9vw, 2rem);
  background: var(--gradient2);
  color: #fff;
  height: var(--buttonH);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: fixed;
  top: 0;
  right: 60px;
  border-radius: 0 0 10px 10px;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .l-header__button_entry {
    top: 30px;
    right: 105px;
    border-radius: 0 10px;
  }
}
@media (hover: hover) {
  .l-header__button_entry:hover::before {
    -webkit-animation: shine 0.5s;
            animation: shine 0.5s;
  }
  .l-header__button_entry:focus-visible::before {
    -webkit-animation: shine 0.5s;
            animation: shine 0.5s;
  }
}
.l-header__button_entry::before {
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 2;
  display: block;
  content: "";
  width: 50%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.3)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  -webkit-transform: skewX(35deg);
          transform: skewX(35deg);
}
.l-header__nav {
  color: var(--color-main);
  position: fixed;
  top: 0;
  right: 0;
  z-index: 5;
  font-size: var(--font14);
  max-width: 19em;
  max-height: 100vh;
  background: var(--gradient);
  border-radius: 0 0 0 30px;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.2s var(--bezier);
  transition: -webkit-transform 0.2s var(--bezier);
  transition: transform 0.2s var(--bezier);
  transition: transform 0.2s var(--bezier), -webkit-transform 0.2s var(--bezier);
  /* ----- 開閉 ----- */
}
@media screen and (min-width: 768px) {
  .l-header__nav {
    font-size: var(--font18);
    max-width: 24em;
  }
}
.l-header__nav::after {
  content: "";
  height: calc(100% - 10px);
  width: calc(100% - 10px);
  background-color: #fff;
  position: absolute;
  top: 0;
  right: 0;
  border-radius: 0 0 0 20px;
}
.l-header__nav__inner {
  padding: calc(var(--buttonH) + 1.5em) 0 2em 0;
  position: relative;
  z-index: 1;
}
.l-header__nav__list {
  padding: 0 2em;
  display: grid;
  height: calc(100vh - (var(--buttonH) + 1.5em) - 10px);
  overflow-y: auto;
}
@media screen and (min-width: 768px) {
  .l-header__nav__list {
    padding: 0 4em;
  }
}
.l-header__nav__item:not(:last-child) {
  border-bottom: 1px solid #D8E7EF;
}
.l-header__nav__item .arrow {
  width: 1em;
  fill: var(--color-main);
}
.l-header__nav__link {
  padding: 1.2rem 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  font-weight: 500;
  -webkit-transition: color 0.1s;
  transition: color 0.1s;
}
@media (hover: hover) {
  .l-header__nav__link:hover {
    color: var(--color-sub2);
  }
  .l-header__nav__link:hover .arrow {
    fill: var(--color-sub2);
  }
  .l-header__nav__link:focus-visible {
    color: var(--color-sub2);
  }
  .l-header__nav__link:focus-visible .arrow {
    fill: var(--color-sub2);
  }
}
.l-header__nav__sub {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0 1em;
  font-size: var(--font14);
  font-weight: normal;
}
.l-header__nav__sub > a {
  display: inline-block;
  padding-bottom: 1em;
  -webkit-transition: color 0.1s;
  transition: color 0.1s;
}
@media (hover: hover) {
  .l-header__nav__sub > a:hover {
    color: var(--color-sub2);
  }
  .l-header__nav__sub > a:focus-visible {
    color: var(--color-sub2);
  }
}
.l-header__nav.is-open {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

/* ==========================================================================//
//
//　Footer
//
// ========================================================================== */
.l-footer__inner {
  color: #fff;
  font-size: var(--font12);
  overflow: hidden;
  background-color: #001C4D;
  position: relative;
}
@media screen and (min-width: 768px) {
  .l-footer__inner {
    font-size: var(--font14);
  }
}
.l-footer__logo {
  max-width: 21em;
  margin-left: auto;
  margin-right: auto;
  justify-self: start;
}
@media screen and (min-width: 768px) {
  .l-footer__logo {
    margin: 0;
  }
}
.l-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 3rem 0 0.5rem;
  position: relative;
  z-index: 1;
}
.l-footer__list {
  margin: 3em 0 3.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em 1em;
  justify-self: end;
}
@media screen and (min-width: 768px) {
  .l-footer__block {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
.l-footer__line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.4;
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
  -o-object-position: bottom;
     object-position: bottom;
}
.l-footer .copyright {
  font-size: 0.56rem;
  text-align: center;
  margin-top: 1em;
}
@media screen and (min-width: 768px) {
  .l-footer .copyright {
    font-size: var(--font11);
  }
}

.l-entry__block {
  padding: 2rem 0 4rem 0;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .l-entry__block {
    padding: 4rem 0 6rem 0;
  }
}
.l-entry__button {
  padding-right: 2em;
  font-weight: bold;
  height: 7em;
}
.l-entry__button--02 {
  padding: 1.5em 2em 1.5em 2em;
  font-size: clamp(1rem, 0.827rem + 0.77vw, 1.75rem);
  font-weight: bold;
  width: 80%;
  max-width: 20em;
}
.l-entry__button .banner {
  margin-top: 0.5em;
  width: 7em;
  border: 2px solid #0aaaeb;
}
.l-entry__block_button {
  display: grid;
  gap: 1.25rem;
}
@media screen and (min-width: 768px) {
  .l-entry__block_button {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 960px) {
  .l-entry__block_button {
    gap: 4rem;
  }
}
.l-entry__motakun {
  display: none;
  position: absolute;
  width: 8rem;
  right: -4%;
  bottom: 0;
}
@media screen and (min-width: 768px) {
  .l-entry__motakun {
    display: block;
  }
}

/* ==========================================================================//
//
//　Animation
//
// ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .a-fadeUp {
    opacity: 0;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
    -webkit-transition: opacity 0.3s var(--bezier), -webkit-transform 0.3s var(--bezier);
    transition: opacity 0.3s var(--bezier), -webkit-transform 0.3s var(--bezier);
    transition: opacity 0.3s var(--bezier), transform 0.3s var(--bezier);
    transition: opacity 0.3s var(--bezier), transform 0.3s var(--bezier), -webkit-transform 0.3s var(--bezier);
  }
  .a-fadeUp.is-visible {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  .a-lineAppear--left {
    visibility: hidden;
  }
  .a-lineAppear--left.is-visible {
    -webkit-animation: lineAppearLeft 0.5s var(--bezier) forwards;
            animation: lineAppearLeft 0.5s var(--bezier) forwards;
  }
}
.a-lineAppear--right {
  visibility: hidden;
}
.a-lineAppear--right.is-visible {
  -webkit-animation: lineAppearRight 0.5s var(--bezier) forwards;
          animation: lineAppearRight 0.5s var(--bezier) forwards;
}

@-webkit-keyframes lineAppearLeft {
  0% {
    visibility: hidden;
  }
  1% {
    visibility: hidden;
    -webkit-clip-path: polygon(0 100%, 0 100%, 0 100%, 0% 100%);
            clip-path: polygon(0 100%, 0 100%, 0 100%, 0% 100%);
  }
  100% {
    visibility: visible;
    -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
}

@keyframes lineAppearLeft {
  0% {
    visibility: hidden;
  }
  1% {
    visibility: hidden;
    -webkit-clip-path: polygon(0 100%, 0 100%, 0 100%, 0% 100%);
            clip-path: polygon(0 100%, 0 100%, 0 100%, 0% 100%);
  }
  100% {
    visibility: visible;
    -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
}
@-webkit-keyframes lineAppearRight {
  0% {
    visibility: hidden;
  }
  1% {
    visibility: hidden;
    -webkit-clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
            clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
  }
  100% {
    visibility: visible;
    -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
}
@keyframes lineAppearRight {
  0% {
    visibility: hidden;
  }
  1% {
    visibility: hidden;
    -webkit-clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
            clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
  }
  100% {
    visibility: visible;
    -webkit-clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%);
  }
}
@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}
@keyframes shine {
  100% {
    left: 125%;
  }
}
/* ==========================================================================//
//
//　個別ページ
//
// ========================================================================== */
@media screen and (min-width: 768px) {
  .l-page__block_title {
    margin-bottom: 3rem;
  }
}
@media screen and (min-width: 960px) {
  .l-page__block_title {
    margin-bottom: 5rem;
  }
}

.p-recruitment__block_title {
  position: relative;
}
.p-recruitment__block_button {
  margin-top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (min-width: 768px) {
  .p-recruitment__block_button {
    margin: 0;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 16rem;
  }
}

/* ==========================================================================//
//
//　微調整
//
// ========================================================================== */
.pc-only {
  display: none !important;
}
@media screen and (min-width: 960px) {
  .pc-only {
    display: revert !important;
  }
}

@media screen and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.visually-hidden {
  position: fixed !important;
  /* keep it on viewport */
  top: 0px !important;
  left: 0px !important;
  /* give it non-zero size, VoiceOver on Safari requires at least 2 pixels
   before allowing buttons to be activated. */
  width: 4px !important;
  height: 4px !important;
  /* visually hide it with overflow and opacity */
  opacity: 0 !important;
  overflow: hidden !important;
  /* remove any margin or padding */
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  /* ensure no other style sets display to none */
  display: block !important;
  visibility: visible !important;
}