:root {
  --color-primary: var(--wp--preset--color--primary, #1a712a);
  --color-secondary: var(--wp--preset--color--secondary, #2d953e);
  --color-accent: var(--wp--preset--color--accent, #fb4933);
  --color-contrast: var(--wp--preset--color--contrast, #111);
  --color-neutral-strong: var(--wp--preset--color--neutral-strong, #282828);
  --color-neutral-medium: var(--wp--preset--color--neutral-medium, #ccc);
  --color-neutral-soft: var(--wp--preset--color--neutral-soft, #eaeaea);
  --color-base-primary: var(--wp--preset--color--base-primary, #e3f3e5);
  --color-base-accent: var(--wp--preset--color--base-accent, #fdecea);
  --color-base-body: var(--wp--preset--color--base-body, #fff);
  --color-primary-active: #2d953e;
  --color-accent-active: #de3d2b;
  --color-line: #4cc764;
  --color-line-active: #3db254;
  --color-contrast-active: #464646;
  --gradient-primary: var(--wp--preset--gradient--primary, linear-gradient(180deg, #2d953e 0%, #0d531a 100%));
  --gradient-base-primary: var(--wp--preset--gradient--base-primary, linear-gradient(180deg, #a8deb200 0%, #a8deb266 100%));
  --font-family-ja: var(--wp--preset--font-family--noto-sans-jp, "Noto Sans JP", sans-serif);
  --font-family-en: var(--wp--preset--font-family--geist, "Geist", sans-serif);
  --font-size-xxs: 10px;
  --font-size-xs: 12px;
  --font-size-s: 14px;
  --font-size-m: 16px;
  --font-size-l: 20px;
  --font-size-xl: 24px;
  --font-size-2xl: 28px;
  --font-size-3xl: 32px;
  --font-size-4xl: 40px;
  --font-size-5xl: 48px;
  --font-size-6xl: 56px;
  --font-size-7xl: 64px;
  --border-radius-0: var(--wp--preset--border-radius--0, 0);
  --border-radius-4: var(--wp--preset--border-radius--4, 4px);
  --border-radius-8: var(--wp--preset--border-radius--8, 8px);
  --border-radius-16: var(--wp--preset--border-radius--16, 16px);
  --border-radius-full: var(--wp--preset--border-radius--full, 9999px);
  --spacing-0: 0;
  --spacing-4: 4px;
  --spacing-8: 8px;
  --spacing-12: 12px;
  --spacing-16: 16px;
  --spacing-20: 20px;
  --spacing-24: 24px;
  --spacing-32: 32px;
  --spacing-36: 36px;
  --spacing-40: 40px;
  --spacing-48: 48px;
  --spacing-56: 56px;
  --spacing-64: 64px;
  --spacing-80: 80px;
  --content-size: var(--wp--style--global--content-size, 1067px);
  --wide-size: var(--wp--style--global--wide-size, 1280px);
  --full-size: 1760px;
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-xxl: 1440px;
  --z-index-drawer: 110;
  --z-index-header: 100;
  --z-index-floating: 90;
  --clip-path-parallelogram: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  --fluid-min-viewport: 375;
  --fluid-max-viewport: 1440;
  --fluid-slope: calc((100vw - var(--fluid-min-viewport) * 1px) / (var(--fluid-max-viewport)  - var(--fluid-min-viewport)));
  --header-height-corporate-desktop: 120px;
  --header-height-corporate-mobile: 56px;
  --header-height-recruit-desktop: 114px;
  --header-height-recruit-mobile: 64px;
  --icon-hamburger-duration: .3s;
  --icon-hamburger-delay: 0s;
  --animation-duration-heading-cover: .5s;
  --animation-delay-heading-cover: 0s;
  --animation-duration-image-cover: .5s;
  --animation-delay-image-cover: 0s;
  --animation-timing-function-cover: ease-in-out;
  --animation-delay-char-up-in: .2s;
  --animation-delay-interval-char-up-in: .1s;
  --animation-duration-char-up-in: .4s;
  --animation-timing-function-char-up-in: ease-in-out;
  --animation-transform-y-fade-up-in: 24px;
  --animation-duration-fade-up-in: .5s;
  --animation-timing-function-fade-up-in: ease-in-out;
  --animation-duration-zoom-up-in: .6s;
  --animation-timing-function-zoom-up-in: ease-in-out;
  --animation-duration-fade-in: .5s;
  --animation-timing-function-fade-in: ease-in-out;
  --animation-delay-text1: 0s;
  --animation-duration-text2: .5s;
  --animation-delay-text2: .5s;
  --animation-timing-function-text2: ease-in-out;
}

@layer base {
  *, :before, :after {
    box-sizing: border-box;
  }

  body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
    margin: 0;
  }

  table {
    border-collapse: collapse;
  }

  img, video {
    block-size: auto;
    max-inline-size: 100%;
  }

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

  a {
    color: inherit;
  }
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height-corporate-desktop);
  -webkit-text-size-adjust: 100%;
}

@media (max-width: 640px) {
  html {
    scroll-padding-top: var(--header-height-corporate-mobile);
  }
}

body {
  min-block-size: 100vh;
  min-block-size: 100dvh;
  font-family: var(--font-family-ja);
  font-size: var(--font-size-m);
  background: #fcfcfc;
  line-height: 1.6;
  position: relative;
  overflow-x: hidden;
}

@media (max-width: 640px) {
  body {
    font-size: var(--font-size-s);
  }
}

body:has(.is-open) {
  overflow: hidden;
}

ul, ol {
  padding-inline-start: 1.5em;
}

h1 {
  font-size: var(--font-size-2xl);
}

h2 {
  font-size: var(--font-size-xl);
}

h3 {
  font-size: var(--font-size-l);
}

h4 {
  font-size: var(--font-size-xl);
}

h5, h6 {
  font-size: var(--font-size-m);
}

strong {
  font-weight: 700;
}

::placeholder {
  color: #a5a5a5;
}

[type="text"], [type="email"], [type="tel"], [type="url"], [type="number"], [type="date"] {
  width: 100%;
  padding: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  box-shadow: none;
  color: var(--color-contrast);
  font-size: var(--font-size-m);
  background: #f1f1f1;
  border: 1px solid #0000;
  border-radius: 0;
  line-height: normal;
}

:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="number"], [type="date"]):focus {
  border-color: var(--color-primary);
  outline: none;
}

textarea {
  width: 100%;
  height: clamp(200px, calc(200px + var(--fluid-slope) * 80), 280px);
  field-sizing: content;
  padding: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  box-shadow: none;
  color: var(--color-contrast);
  font-family: inherit;
  font-size: var(--font-size-m);
  background: #f1f1f1;
  border: 1px solid #0000;
  border-radius: 0;
  line-height: normal;
}

textarea:focus {
  border-color: var(--color-primary);
  outline: none;
}

select {
  box-shadow: none;
  background: #f1f1f1 url("../../assets/images/common/icon-select-arrow.svg") no-repeat right var(--spacing-20) center / 10px auto;
  color: var(--color-contrast);
  font-family: inherit;
  font-size: var(--font-size-m);
  appearance: none;
  border: 1px solid #0000;
  border-radius: 0;
  padding-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-block-end: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-inline-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-inline-end: 52px;
  line-height: normal;
}

select:focus {
  border-color: var(--color-primary);
  outline: none;
}

[type="submit"] {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-16);
  padding: var(--spacing-24) var(--spacing-64);
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-primary);
  background: var(--color-primary) url("../../assets/images/common/icon-submit-arrow.svg") no-repeat right var(--spacing-20) center / var(--spacing-24) auto;
  color: var(--color-base-body);
  font-family: inherit;
  font-size: var(--font-size-m);
  cursor: pointer;
  font-weight: 700;
  line-height: normal;
  transition: background-color .3s;
  display: inline-flex;
}

@media (any-hover: hover) {
  [type="submit"]:hover {
    background-color: var(--color-primary-active);
  }
}

[type="checkbox"] {
  aspect-ratio: 1;
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-body-base);
  appearance: none;
  cursor: pointer;
  border-radius: 4px;
  width: 24px;
  margin: 0;
  display: block;
  position: relative;
}

[type="checkbox"]:after {
  content: "";
  background: none;
  position: absolute;
  inset: 0;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

[type="checkbox"]:checked:after {
  background: var(--color-primary);
}

[type="checkbox"]:focus {
  border-color: var(--color-primary);
  outline: none;
}

[type="radio"] {
  aspect-ratio: 1;
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-body-base);
  appearance: none;
  cursor: pointer;
  border-radius: 50%;
  width: 20px;
  margin: 0;
  display: block;
  position: relative;
}

[type="radio"]:after {
  content: "";
  aspect-ratio: 1;
  background: none;
  border-radius: 50%;
  width: 10px;
  margin: auto;
  position: absolute;
  inset: 0;
}

[type="radio"]:checked:after {
  background-color: var(--color-primary);
}

[type="radio"]:focus {
  border-color: var(--color-primary);
  outline: none;
}

label:has([type="checkbox"], [type="radio"]) {
  align-items: center;
  gap: var(--spacing-16);
  display: flex;
}

table {
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid var(--color-neutral-medium);
  inline-size: 100%;
}

th {
  padding: var(--spacing-36) var(--spacing-16);
  border: 1px solid var(--color-neutral-medium);
  text-align: left;
  background: #f1f1f1;
  font-weight: 700;
  line-height: 1.5;
}

@media (max-width: 768px) {
  th {
    padding: var(--spacing-8) var(--spacing-16);
  }
}

td {
  padding: var(--spacing-36) var(--spacing-16);
  border: 1px solid var(--color-neutral-medium);
  line-height: 2;
}

@media (max-width: 768px) {
  td {
    padding: var(--spacing-16);
  }
}

@keyframes infinity-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@keyframes scroll-loop {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@keyframes cover {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(101%);
  }
}

@keyframes side-in {
  from {
    transform: translateX(-101%);
  }

  to {
    transform: translateX(0);
  }
}

@keyframes charUpIn {
  0% {
    transform: translateY(100%);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes fadeUpIn {
  0% {
    opacity: 0;
    translate: 0 var(--animation-transform-y-fade-up-in);
  }

  100% {
    opacity: 1;
    translate: 0;
  }
}

@keyframes zoomUpIn {
  0% {
    opacity: 0;
    scale: 0;
  }

  100% {
    opacity: 1;
    scale: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.a-text-split {
  visibility: hidden;
}

.a-text-split .is-char-clip {
  vertical-align: bottom;
  display: inline-block;
  overflow: hidden;
}

.a-text-split .is-char {
  vertical-align: bottom;
  display: inline-block;
  transform: translateY(100%);
}

.a-text-split.is-ready {
  visibility: visible;
}

.a-fade-up-in {
  opacity: 0;
  translate: 0 var(--animation-transform-y-fade-up-in);
}

.a-fade-up-in.is-in-view {
  animation-name: fadeUpIn;
  animation-duration: var(--animation-duration-fade-up-in);
  animation-timing-function: var(--animation-timing-function-fade-up-in);
  animation-fill-mode: both;
}

.a-fade-in {
  opacity: 0;
}

.a-fade-in.is-in-view {
  animation-name: fadeIn;
  animation-duration: var(--animation-duration-fade-in);
  animation-timing-function: var(--animation-timing-function-fade-in);
  animation-fill-mode: both;
}

.l-container-full {
  inline-size: 100%;
  max-inline-size: calc(var(--full-size)  + 80px * 2);
  margin-inline: auto;
  padding-inline: 80px;
}

@media (max-width: 1440px) {
  .l-container-full {
    max-inline-size: calc(var(--wide-size)  + var(--spacing-20) * 2);
    padding-inline: var(--spacing-20);
  }
}

.l-container-wide {
  inline-size: 100%;
  max-inline-size: calc(var(--wide-size)  + var(--spacing-20) * 2);
  padding-inline: var(--spacing-20);
  margin-inline: auto;
}

.l-container-content {
  inline-size: 100%;
  max-inline-size: calc(var(--content-size)  + var(--spacing-20) * 2);
  padding-inline: var(--spacing-20);
  margin-inline: auto;
}

.l-under-page {
  padding-block-start: 117px;
  overflow: clip;
}

@media (max-width: 1024px) {
  .l-under-page {
    padding-block-start: 56px;
  }
}

.c-pagination {
  gap: var(--spacing-16);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.c-pagination__item .page-numbers {
  min-inline-size: clamp(40px, calc(40px + var(--fluid-slope) * 24), 64px);
  block-size: clamp(40px, calc(40px + var(--fluid-slope) * 24), 64px);
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-white);
  color: var(--color-primary);
  text-align: center;
  font-family: var(--font-family-en);
  font-size: var(--font-size-m);
  place-items: center;
  line-height: 1;
  text-decoration: none;
  transition: background-color .3s, border-color .3s;
  display: grid;
}

.c-pagination__item .page-numbers.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-base-body);
  font-weight: 700;
}

@media (any-hover: hover) {
  .c-pagination__item .page-numbers:not(.current):hover {
    background: var(--color-base-primary);
    border-color: var(--color-primary);
  }
}

.c-heading-level1 {
  column-gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  row-gap: var(--spacing-12);
  font-size: clamp(36px, calc(36px + var(--fluid-slope) * 12), 48px);
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "icon title";
  align-items: start;
  display: grid;
}

.c-heading-level1:has(.c-heading-level1__sub) {
  grid-template-areas: "icon title"
                       ". sub";
}

.c-heading-level1:before {
  content: "";
  inline-size: clamp(38px, calc(38px + var(--fluid-slope) * 17), 55px);
  aspect-ratio: 55 / 58;
  background: var(--gradient-primary);
  clip-path: polygon(66% 0, 100% 0%, 34% 100%, 0% 100%);
  grid-area: icon;
  margin-block-start: .08em;
  display: block;
}

.c-heading-level1:has(.c-heading-level1__main[lang="en"]) {
  font-size: clamp(48px, calc(48px + var(--fluid-slope) * 38), 84px);
}

.c-heading-level1:has(.c-heading-level1__main[lang="en"]):before {
  margin-block-start: .14em;
}

.c-heading-level1__main {
  inline-size: fit-content;
  color: var(--color-contrast);
  font-size: clamp(36px, calc(36px + var(--fluid-slope) * 12), 48px);
  grid-area: title;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  overflow: hidden;
}

.c-heading-level1__main[lang="en"] {
  font-family: var(--font-family-en);
  font-size: clamp(48px, calc(48px + var(--fluid-slope) * 38), 84px);
  -webkit-hyphens: manual;
  hyphens: manual;
  line-height: 1;
}

.c-heading-level1__main:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-heading-level1__sub {
  inline-size: fit-content;
  font-size: var(--font-size-m);
  grid-area: sub;
  padding-inline-start: clamp(0px, calc(0px + var(--fluid-slope) * 4), 4px);
  font-weight: 700;
  line-height: normal;
  position: relative;
  overflow: hidden;
}

.c-heading-level1__sub:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-heading-level1.is-in-view .c-heading-level1__main:after, .c-heading-level1.is-in-view .c-heading-level1__sub:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-heading-cover);
  animation-delay: var(--animation-delay-heading-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-news-card {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: 106px minmax(0, 1fr) var(--icon-size-fluid);
  gap: var(--spacing-16) var(--spacing-24);
  padding-block: var(--spacing-24);
  padding-inline: var(--spacing-16);
  grid-template-areas: "image meta icon"
                       "image title icon";
  align-items: center;
  text-decoration: none;
  transition: background-color .3s;
  display: grid;
}

@media (max-width: 640px) {
  .c-news-card {
    grid-template-columns: auto minmax(0, 1fr) var(--icon-size-fluid);
    gap: var(--spacing-16);
    grid-template-areas: "image image image"
                         "meta meta meta"
                         "title title icon";
    padding-inline: 0;
  }
}

.c-news-card:before, .c-news-card:after {
  content: "";
  grid-area: icon;
  justify-self: center;
}

.c-news-card:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-news-card:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

.c-news-card__image {
  border: 1px solid var(--color-neutral-medium);
  grid-area: image;
}

.c-news-card__thumbnail {
  aspect-ratio: 106 / 71;
  background: var(--color-neutral-soft);
  display: block;
  position: relative;
}

.c-news-card__thumbnail img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
  position: absolute;
}

.c-news-card__meta {
  align-items: center;
  gap: var(--spacing-16);
  flex-wrap: wrap;
  grid-area: meta;
  display: flex;
}

.c-news-card__date {
  color: var(--color-contrast);
  font-family: var(--font-family-en);
  font-size: var(--font-size-s);
  align-self: center;
  line-height: normal;
}

.c-news-card__categories {
  align-self: center;
}

.c-news-card__categories ul {
  align-items: center;
  gap: var(--spacing-8);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.c-news-card__categories span, .c-news-card__categories a {
  padding: var(--spacing-4) var(--spacing-8);
  border: 1px solid var(--color-primary);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-10);
  color: var(--color-primary);
  font-size: var(--font-size-xs);
  line-height: 1.16667;
  display: flex;
}

.c-news-card__categories a {
  text-decoration: none;
  transition: color .3s, background-color .3s;
}

.c-news-card__categories a:hover {
  background: var(--color-base-primary);
}

.c-news-card__title {
  grid-area: title;
}

.c-news-card__link {
  align-items: center;
  gap: var(--spacing-16);
  color: var(--color-primary);
  line-height: 1.4;
}

@media (any-hover: hover) {
  .c-news-card:hover {
    background-color: var(--color-base-primary);
  }
}

.c-button-accent {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 24px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  align-items: center;
  gap: var(--spacing-24);
  padding: var(--spacing-24) var(--spacing-20) var(--spacing-24) 52px;
  border-radius: var(--border-radius-8);
  border: 2px solid var(--color-accent);
  background: var(--color-accent);
  color: var(--color-base-body);
  text-align: center;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s, border-color .3s;
  display: inline-grid;
  position: relative;
}

.c-button-accent:before, .c-button-accent:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
  transition: background-color .3s;
}

.c-button-accent:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-base-body);
}

.c-button-accent:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-accent);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-button-accent:hover {
    background-color: var(--color-accent-active);
    border-color: var(--color-accent-active);
  }
}

.c-button-secondary {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 24px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  align-items: center;
  gap: var(--spacing-16);
  padding: var(--spacing-24) var(--spacing-20) var(--spacing-24) 52px;
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  color: var(--color-contrast);
  font-size: var(--font-size-m);
  text-align: center;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: border-color .3s, background-color .3s, color .3s;
  display: inline-grid;
  position: relative;
}

.c-button-secondary:before, .c-button-secondary:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.c-button-secondary:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-button-secondary:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-button-secondary:hover {
    border-color: var(--color-primary);
    background-color: var(--color-base-primary);
    color: var(--color-primary);
  }
}

.c-button-external {
  padding: var(--spacing-16) var(--spacing-64);
  border-radius: var(--border-radius-8);
  background: var(--color-accent);
  color: var(--color-base-body);
  text-align: center;
  align-items: center;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s;
  display: inline-flex;
  position: relative;
}

.c-button-external:after {
  content: "";
  block-size: 16px;
  inline-size: 16px;
  background-color: var(--color-base-body);
  margin-block: auto;
  transition: background-color .3s, transform .3s;
  position: absolute;
  inset-block: 0;
  inset-inline-end: var(--spacing-20);
  -webkit-mask: url("../../assets/images/common/icon-arrow-up-reverse.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow-up-reverse.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-button-external:hover {
    background-color: var(--color-contrast);
  }
}

.c-button-back {
  padding: var(--spacing-24) var(--spacing-64);
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  color: var(--color-contrast);
  text-align: center;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: border-color .3s, background-color .3s, color .3s;
  display: inline-flex;
  position: relative;
}

.c-button-back:before {
  content: "";
  block-size: 24px;
  inline-size: 24px;
  background: url("../../assets/images/common/icon-primary-arrow.svg") center / contain no-repeat;
  margin-block: auto;
  position: absolute;
  inset-block: 0;
  inset-inline-start: var(--spacing-20);
  transform: rotate(180deg);
}

@media (any-hover: hover) {
  .c-button-back:hover {
    border-color: var(--color-primary);
    background-color: var(--color-base-primary);
    color: var(--color-primary);
  }
}

.c-button-more {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  padding: var(--spacing-24) var(--spacing-64);
  border-radius: var(--spacing-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  cursor: pointer;
  font-weight: 700;
  line-height: normal;
  transition: background-color .3s;
  display: flex;
}

.c-button-more:after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-plus.svg") center / contain no-repeat;
  inline-size: 24px;
}

@media (any-hover: hover) {
  .c-button-more:hover {
    background-color: var(--color-base-primary);
  }
}

.c-heading-level2 {
  border-block-start: 2px solid var(--color-neutral-medium);
  padding-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 24), var(--spacing-48));
  position: relative;
}

.c-heading-level2:before {
  content: "";
  background: var(--color-primary);
  block-size: 2px;
  inline-size: 25%;
  position: absolute;
  inset-block-end: 100%;
  inset-inline-start: 0;
}

@media (max-width: 640px) {
  .c-heading-level2:before {
    inline-size: 38%;
  }
}

.c-heading-level2__ja {
  inline-size: fit-content;
  font-size: clamp(var(--font-size-3xl), calc(var(--font-size-3xl)  + var(--fluid-slope) * 16), var(--font-size-5xl));
  font-weight: 700;
  line-height: 1.1;
  display: grid;
  position: relative;
  overflow: hidden;
}

.c-heading-level2__en {
  inline-size: fit-content;
  font-family: var(--font-family-en);
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 4), var(--font-size-m));
  margin-block-start: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  font-weight: 700;
  line-height: normal;
  display: grid;
  position: relative;
  overflow: hidden;
}

:is(.c-heading-level2__ja, .c-heading-level2__en):after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.c-heading-level2.is-in-view .c-heading-level2__ja, .c-heading-level2.is-in-view .c-heading-level2__en):after {
  animation-name: cover;
  animation-duration: var(--animation-duration-heading-cover);
  animation-delay: var(--animation-delay-heading-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-heading-level3 {
  align-items: center;
  gap: var(--spacing-16);
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 1.8;
  display: flex;
}

.c-heading-level3:before {
  content: "";
  background: var(--gradient-primary);
  block-size: 1.3em;
  inline-size: 6px;
  transform: translateY(-.08em);
}

.c-link-list {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  align-items: center;
  gap: var(--spacing-16);
  padding-block: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-inline: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 16), var(--spacing-32));
  font-size: clamp(var(--font-size-m), calc(var(--font-size-m)  + var(--fluid-slope) * 4), var(--font-size-l));
  background: none;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s, color .3s;
  display: grid;
}

.c-link-list:before, .c-link-list:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
  transition: background-color .3s;
}

.c-link-list:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-link-list:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-link-list:hover {
    background-color: var(--color-base-primary);
    color: var(--color-primary);
  }
}

.c-link-service {
  padding-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 16), var(--spacing-48));
  padding-block-end: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 16), var(--spacing-48));
  padding-inline: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 16), var(--spacing-32));
  text-decoration: none;
  transition: background-color .3s;
  display: block;
}

.c-link-service__title {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: var(--icon-size-fluid) minmax(0, 1fr);
  font-size: clamp(var(--font-size-xl), calc(var(--font-size-xl)  + var(--fluid-slope) * 8), var(--font-size-3xl));
  align-items: center;
  gap: 12px;
  font-weight: 700;
  line-height: 1.5;
  transition: color .3s;
  display: grid;
}

.c-link-service__title:before, .c-link-service__title:after {
  content: "";
  grid-area: 1 / 1 / 2 / 2;
  justify-self: center;
  transition: background-color .3s;
}

.c-link-service__title:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-link-service__title:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

.c-link-service__description {
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  margin-block-start: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 8), var(--spacing-24));
  font-weight: 400;
  line-height: 2;
}

@media (any-hover: hover) {
  .c-link-service:hover {
    background: var(--color-base-primary);
  }

  .c-link-service:hover .c-link-service__title {
    color: var(--color-primary);
  }
}

.c-link-box {
  grid-template-columns: clamp(60px, calc(60px + var(--fluid-slope) * 60), 120px) minmax(0, 1fr);
  gap: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 8), var(--spacing-24));
  padding: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 8), var(--spacing-24)) clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 16), var(--spacing-36));
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  text-decoration: none;
  transition: background-color .3s, border-color .3s;
  display: grid;
}

.c-link-box__image {
  inline-size: clamp(60px, calc(60px + var(--fluid-slope) * 60), 120px);
  aspect-ratio: 1;
  object-fit: cover;
}

.c-link-box__text {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  align-items: center;
  gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  font-size: clamp(var(--font-size-m), calc(var(--font-size-m)  + var(--fluid-slope) * 4), var(--font-size-l));
  font-weight: 700;
  line-height: 1.2;
  transition: color .3s;
  display: grid;
}

.c-link-box__text:before, .c-link-box__text:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.c-link-box__text:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-link-box__text:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-link-box:hover {
    background-color: var(--color-base-primary);
    border-color: var(--color-primary);
  }

  .c-link-box:hover .c-link-box__text {
    color: var(--color-primary);
  }
}

.c-news-item {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  gap: var(--spacing-8);
  padding-block: clamp(var(--spacing-16), var(--spacing-16)  + var(--fluid-slope) * 16, var(--spacing-32));
  padding-inline: var(--spacing-32) var(--spacing-24);
  grid-template-columns: 108px minmax(0, 1fr);
  align-items: center;
  text-decoration: none;
  transition: background-color .3s;
  display: grid;
}

@media (max-width: 640px) {
  .c-news-item {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: 0;
  }
}

@media (any-hover: hover) {
  .c-news-item:hover {
    background-color: var(--color-base-primary);
  }
}

.c-news-item__time {
  border-inline-end: 1px solid var(--color-neutral-medium);
  font-family: var(--font-family-en);
  line-height: normal;
}

@media (max-width: 640px) {
  .c-news-item__time {
    inline-size: 96px;
    font-size: var(--font-size-s);
    border-inline-end: none;
  }
}

.c-news-item__title {
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  align-items: center;
  gap: var(--spacing-16);
  padding-inline: var(--spacing-8);
  color: var(--color-primary);
  font-size: clamp(var(--font-size-s), var(--font-size-s)  + var(--fluid-slope) * 2, var(--font-size-m));
  line-height: normal;
  text-decoration: none;
  display: grid;
}

.c-news-item__title:before, .c-news-item__title:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.c-news-item__title:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-news-item__title:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (max-width: 640px) {
  .c-news-item__title {
    padding-inline: 0;
  }
}

.c-latest-news-item {
  justify-content: start;
  align-items: center;
  gap: var(--spacing-16);
  grid-template-columns: auto minmax(0, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .c-latest-news-item {
    gap: var(--spacing-16) var(--spacing-8);
    grid-template-columns: auto auto;
  }
}

.c-latest-news-item__head {
  font-family: var(--font-family-en);
  font-weight: 700;
  line-height: normal;
}

@media (max-width: 640px) {
  .c-latest-news-item__head {
    font-size: var(--font-size-s);
    grid-column: span 2;
  }
}

.c-latest-news-item__body {
  align-items: center;
  gap: var(--spacing-16);
  border-inline-start: 1px solid var(--color-neutral-medium);
  flex-wrap: wrap;
  padding-inline-start: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  display: flex;
}

@media (max-width: 640px) {
  .c-latest-news-item__body {
    gap: var(--spacing-8);
    border-inline-start: none;
    padding-inline-start: 0;
  }
}

.c-latest-news-item__meta {
  align-items: center;
  gap: var(--spacing-16);
  flex-wrap: wrap;
  display: flex;
}

@media (max-width: 640px) {
  .c-latest-news-item__meta {
    gap: var(--spacing-8);
  }
}

.c-latest-news-item__time {
  border-inline-end: 1px solid var(--color-neutral-medium);
  font-family: var(--font-family-en);
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  text-align: center;
  padding-inline-end: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  font-weight: 400;
  line-height: normal;
}

@media (max-width: 640px) {
  .c-latest-news-item__time {
    text-align: left;
  }
}

.c-latest-news-item__category ul {
  align-items: center;
  gap: var(--spacing-8);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.c-latest-news-item__category span, .c-latest-news-item__category a {
  padding: var(--spacing-4) var(--spacing-8);
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-size: var(--font-size-xs);
  place-items: center;
  gap: 10px;
  font-weight: 400;
  line-height: 1.16667;
  text-decoration: none;
  display: grid;
}

.c-latest-news-item__category a {
  transition: background-color .3s;
}

@media (any-hover: hover) {
  .c-latest-news-item__category a:hover {
    background-color: var(--color-base-primary);
  }
}

.c-latest-news-item__title {
  color: var(--color-primary);
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  font-weight: 400;
  line-height: normal;
  text-decoration: underline;
  transition: -webkit-text-decoration .3s, text-decoration .3s;
  display: inline-block;
}

@media (any-hover: hover) {
  .c-latest-news-item__title:hover {
    text-decoration: none;
  }
}

.c-icon-hamburger {
  justify-content: center;
  gap: var(--spacing-8);
  box-shadow: none;
  cursor: pointer;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
  display: grid;
}

.c-icon-hamburger__text {
  color: var(--color-base-body);
  font-family: var(--font-family-en);
  font-size: var(--font-size-xxs);
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1;
}

.c-icon-hamburger__bars {
  justify-self: center;
  block-size: 18px;
  inline-size: 36px;
  display: block;
  position: relative;
}

.c-icon-hamburger__bar1, .c-icon-hamburger__bar2, .c-icon-hamburger__bar3 {
  background: var(--color-base-body);
  block-size: 2px;
  inline-size: 36px;
  transition: translate var(--icon-hamburger-duration) ease-in-out var(--icon-hamburger-delay), rotate var(--icon-hamburger-duration) ease-in-out var(--icon-hamburger-delay), opacity var(--icon-hamburger-duration) ease-in-out var(--icon-hamburger-delay);
  display: block;
  position: absolute;
}

.c-icon-hamburger__bar1 {
  inset-block-start: 0;
}

.c-icon-hamburger__bar2 {
  inset-block-start: var(--spacing-8);
}

.c-icon-hamburger__bar3 {
  inset-block-start: var(--spacing-16);
}

.is-close .c-icon-hamburger__bar1 {
  translate: 0 var(--spacing-8);
  rotate: 24deg;
}

.is-close .c-icon-hamburger__bar2 {
  opacity: 0;
}

.is-close .c-icon-hamburger__bar3 {
  translate: 0 calc(var(--spacing-8) * -1);
  rotate: -24deg;
}

.c-case-card {
  background: var(--color-base-body);
  text-decoration: none;
  transition: background-color .3s;
  display: inline-block;
}

.c-case-card__image {
  text-align: center;
  block-size: 198px;
  display: block;
  overflow: hidden;
}

.c-case-card__image img {
  object-fit: cover;
  filter: grayscale();
  block-size: 100%;
  inline-size: 100%;
  transition: filter .3s;
  display: block;
}

@media (max-width: 768px) {
  .c-case-card__image {
    block-size: 148px;
  }
}

.c-case-card__body {
  padding: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 8), var(--spacing-24));
}

.c-case-card__category ul {
  align-items: center;
  gap: var(--spacing-12);
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.c-case-card__category span, .c-case-card__category a {
  padding: 2px var(--spacing-8);
  border: 1px solid var(--color-primary);
  width: fit-content;
  color: var(--color-primary);
  font-size: var(--font-size-xs);
  line-height: 1.16;
  display: block;
}

.c-case-card__category a {
  text-decoration: none;
  transition: background-color .3s;
}

@media (any-hover: hover) {
  .c-case-card__category a:hover {
    background-color: var(--color-base-primary);
  }
}

.c-case-card__title {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: var(--icon-size-fluid) minmax(0, 1fr);
  align-items: center;
  gap: var(--spacing-8);
  margin-top: var(--spacing-24);
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 4), var(--font-size-m));
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: color .3s;
  display: grid;
}

.c-case-card__title:before, .c-case-card__title:after {
  content: "";
  grid-area: 1 / 1 / 2 / 2;
  justify-self: center;
  transition: background-color .3s;
}

.c-case-card__title:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-case-card__title:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

.c-case-card__description {
  margin-top: var(--spacing-16);
  -webkit-line-clamp: 4;
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  -webkit-box-orient: vertical;
  line-height: 2;
  display: -webkit-box;
  overflow: hidden;
}

@media (any-hover: hover) {
  .c-case-card:hover {
    background-color: var(--color-base-primary);
  }

  .c-case-card:hover .c-case-card__title {
    color: var(--color-primary);
  }

  .c-case-card:hover .c-case-card__image img {
    filter: grayscale(0%);
  }
}

.c-menu-link {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 24px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  padding-block: var(--spacing-16);
  color: var(--color-base-body);
  align-items: center;
  text-decoration: none;
  display: inline-grid;
  position: relative;
}

.c-menu-link:before, .c-menu-link:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.c-menu-link:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-base-body);
}

.c-menu-link:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-primary);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

.c-menu-link__ja {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 1.3;
  display: block;
}

.c-menu-link__en {
  margin-top: var(--spacing-8);
  font-family: var(--font-family-en);
  font-size: var(--font-size-s);
  font-weight: 400;
  line-height: 1.14;
  display: block;
}

.c-icon-link-white {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop)) minmax(0, 1fr);
  place-items: center start;
  gap: var(--spacing-8);
  color: var(--color-base-body);
  font-family: var(--font-family-en);
  font-size: clamp(var(--font-size-s), var(--font-size-s)  + var(--fluid-slope) * 2, var(--font-size-m));
  line-height: normal;
  text-decoration: none;
  transition: -webkit-text-decoration .3s, text-decoration .3s;
  display: inline-grid;
}

@media (any-hover: hover) {
  .c-icon-link-white:hover {
    text-decoration: underline;
  }
}

.c-icon-link-white:before, .c-icon-link-white:after {
  content: "";
  grid-area: 1 / 1 / 2 / 2;
  justify-self: center;
}

.c-icon-link-white:before {
  inline-size: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop));
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-base-body);
}

.c-icon-link-white:after {
  inline-size: calc(clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 8, var(--icon-size-desktop)) / 2);
  aspect-ratio: 1;
  background: var(--color-primary);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (max-width: 640px) {
  .c-icon-link-white.is-responsive-reverse {
    color: var(--color-primary);
  }

  .c-icon-link-white.is-responsive-reverse:before {
    background-color: var(--color-primary);
  }

  .c-icon-link-white.is-responsive-reverse:after {
    background-color: var(--color-base-body);
  }
}

.c-icon-link-primary {
  --icon-size-desktop: 16px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: var(--icon-size-fluid) minmax(0, 1fr);
  place-items: center start;
  gap: var(--spacing-8);
  color: var(--color-primary);
  line-height: normal;
  font-size: clamp(var(--font-size-s), var(--font-size-s)  + var(--fluid-slope) * 2, var(--font-size-m));
  border-block-end: 1px solid #0000;
  text-decoration: none;
  transition: border-color .3s;
  display: inline-grid;
}

@media (any-hover: hover) {
  .c-icon-link-primary:hover {
    border-block-end-color: var(--color-primary);
  }
}

.c-icon-link-primary:before, .c-icon-link-primary:after {
  content: "";
  grid-area: 1 / 1 / 2 / 2;
  justify-self: center;
}

.c-icon-link-primary:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-icon-link-primary:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

.c-service-card {
  gap: var(--wp--preset--spacing--32) 0;
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "image . heading"
                       "image . description"
                       "image . button";
  align-items: start;
  display: grid;
}

@media (max-width: 640px) {
  .c-service-card {
    gap: var(--wp--preset--spacing--32);
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "image"
                         "heading"
                         "description"
                         "button";
  }
}

.c-service-card__image {
  aspect-ratio: 533 / 360;
  background: var(--color-neutral-medium);
  grid-area: image;
}

.c-service-card__image img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.c-service-card__image-frame {
  position: relative;
  overflow: hidden;
}

.c-service-card__image-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-service-card__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-service-card__heading {
  border-block-start: 2px solid var(--color-neutral-medium);
  font-size: clamp(var(--font-size-3xl), calc(var(--font-size-3xl)  + var(--fluid-slope) * 12), var(--font-size-4xl));
  grid-area: heading;
  padding-block-start: 1.2em;
  position: relative;
}

.c-service-card__heading:before {
  content: "";
  background: var(--color-primary);
  block-size: 2px;
  inline-size: 50%;
  position: absolute;
  inset-block-end: 100%;
  inset-inline-start: 0;
}

.c-service-card__title {
  inline-size: fit-content;
  font-size: inherit;
  font-weight: 700;
  line-height: 1.2;
  display: grid;
  position: relative;
  overflow: hidden;
}

.c-service-card__title:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-service-card__sub {
  inline-size: fit-content;
  font-size: var(--font-size-m);
  font-family: var(--font-family-en);
  margin-block-start: 1em;
  font-weight: 700;
  line-height: normal;
  display: grid;
  position: relative;
  overflow: hidden;
}

.c-service-card__sub:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.c-service-card__heading.is-in-view .c-service-card__title, .c-service-card__heading.is-in-view .c-service-card__sub):after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-service-card__description {
  grid-area: description;
  line-height: 2;
}

.c-service-card__button {
  grid-area: button;
  inline-size: 50%;
  margin-inline-start: auto;
  display: grid;
}

@media (max-width: 640px) {
  .c-service-card__button {
    inline-size: 100%;
    margin-inline-start: 0;
  }
}

.c-technology-card {
  align-items: start;
  row-gap: clamp(32px, calc(32px + var(--fluid-slope) * 32), 64px);
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "image . heading"
                       "image . description"
                       "image . button";
  display: grid;
}

.c-technology-card:where(.is-reverse) {
  grid-template-columns: minmax(0, 6fr) minmax(0, 1fr) minmax(0, 5fr);
  grid-template-areas: "heading . image"
                       "description . image"
                       "button . image";
}

@media (max-width: 640px) {
  .c-technology-card {
    gap: var(--wp--preset--spacing--32);
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "image"
                         "heading"
                         "description"
                         "button";
  }
}

.c-technology-card__image {
  grid-area: image;
}

.c-technology-card__image-frame {
  position: relative;
  overflow: hidden;
}

.c-technology-card__image-frame img {
  inline-size: 100%;
  display: block;
}

.c-technology-card__image-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-technology-card__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-technology-card__heading {
  column-gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  row-gap: var(--spacing-16);
  inline-size: fit-content;
  color: var(--color-contrast);
  font-size: clamp(var(--font-size-3xl), calc(var(--font-size-3xl)  + var(--fluid-slope) * 12), var(--font-size-4xl));
  grid-area: heading;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "icon title";
  align-items: start;
  font-weight: 700;
  line-height: 1.5;
  display: grid;
  position: relative;
  overflow: hidden;
}

.c-technology-card__heading:before {
  content: "";
  aspect-ratio: 41 / 40;
  background: var(--gradient-primary);
  clip-path: polygon(66% 0, 100% 0%, 34% 100%, 0% 100%);
  grid-area: icon;
  inline-size: 1em;
  margin-block-start: .24em;
  display: block;
}

.c-technology-card__heading-text {
  inline-size: fit-content;
  display: grid;
  position: relative;
  overflow: hidden;
}

.c-technology-card__heading-text:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.c-technology-card__heading.is-in-view .c-technology-card__heading-text:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.c-technology-card__description {
  grid-area: description;
  line-height: 2;
}

.c-technology-card__button {
  grid-area: button;
  inline-size: 50%;
  margin-inline-start: auto;
  display: grid;
}

@media (max-width: 1024px) {
  .c-technology-card__button {
    inline-size: 66.6667%;
  }
}

@media (max-width: 768px) {
  .c-technology-card__button {
    inline-size: 83.3333%;
  }
}

@media (max-width: 640px) {
  .c-technology-card__button {
    inline-size: 100%;
    margin-inline-start: 0;
  }
}

.c-pdf-download-link {
  grid-template-columns: clamp(16px, calc(16px + var(--fluid-slope) * 4), 20px) minmax(0, 1fr) clamp(16px, calc(16px + var(--fluid-slope) * 8), 24px);
  align-items: center;
  gap: var(--spacing-16);
  padding: var(--spacing-24) clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 16), var(--spacing-32));
  text-decoration: none;
  transition: background-color .3s;
  display: grid;
}

.c-pdf-download-link:before {
  content: "";
  inline-size: clamp(16px, calc(16px + var(--fluid-slope) * 4), 20px);
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-pdf.svg") center / contain no-repeat;
}

.c-pdf-download-link:after {
  content: "";
  inline-size: clamp(16px, calc(16px + var(--fluid-slope) * 8), 24px);
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-download.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .c-pdf-download-link:hover {
    background-color: var(--color-base-primary);
  }
}

.c-contact-box {
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  justify-content: space-between;
  align-items: center;
  padding: 120px 64px;
  text-decoration: none;
  transition: background-color .3s, border-color .3s;
  display: flex;
}

@media (max-width: 1280px) {
  .c-contact-box {
    flex-direction: column;
    padding-block: 64px;
  }
}

@media (max-width: 640px) {
  .c-contact-box {
    padding: 28px 32px;
  }
}

.c-contact-box__body {
  align-items: center;
  gap: var(--spacing-32);
  padding-block: var(--spacing-8);
  display: flex;
}

@media (max-width: 1280px) {
  .c-contact-box__body {
    flex-direction: column;
    padding-block: 0;
  }
}

@media (max-width: 640px) {
  .c-contact-box__body {
    gap: 12px;
  }
}

.c-contact-box__title {
  font-family: var(--font-family-en);
  font-size: var(--font-size-6xl);
  text-align: center;
  font-weight: 700;
  line-height: normal;
}

@media (max-width: 640px) {
  .c-contact-box__title {
    font-size: var(--font-size-3xl);
  }
}

.c-contact-box__description {
  line-height: 2;
}

@media (max-width: 640px) {
  .c-contact-box__description {
    font-size: var(--font-size-s);
  }
}

.c-contact-box__separate {
  background: var(--color-neutral-medium);
  align-self: stretch;
  inline-size: 1px;
  margin-inline: 28px;
}

@media (max-width: 1280px) {
  .c-contact-box__separate {
    block-size: 1px;
    inline-size: 100%;
    margin-block: 24px;
    margin-inline: 0;
  }
}

.c-contact-box__footer {
  align-items: center;
  display: flex;
}

@media (max-width: 1280px) {
  .c-contact-box__footer {
    text-align: center;
  }
}

.c-contact-box__link {
  --icon-size-desktop: 64px;
  --icon-size-mobile: 16px;
  grid-template-columns: minmax(0, 1fr) var(--icon-size-desktop);
  align-items: center;
  gap: var(--spacing-24);
  width: max-content;
  font-size: var(--font-size-3xl);
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: color .3s;
  display: inline-grid;
}

@media (max-width: 640px) {
  .c-contact-box__link {
    gap: var(--spacing-8);
    font-size: var(--font-size-l);
  }
}

.c-contact-box__link:before, .c-contact-box__link:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.c-contact-box__link:before {
  inline-size: var(--icon-size-desktop);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.c-contact-box__link:after {
  aspect-ratio: 1;
  background: var(--color-base-body);
  inline-size: 16px;
  -webkit-mask: url("../../assets/images/common/icon-contact-arrow-desktop.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-contact-arrow-desktop.svg") center / contain no-repeat;
}

@media (max-width: 640px) {
  .c-contact-box__link {
    grid-template-columns: minmax(0, 1fr) var(--icon-size-mobile);
  }

  .c-contact-box__link:before {
    inline-size: var(--icon-size-mobile);
  }

  .c-contact-box__link:after {
    inline-size: 4.64px;
    -webkit-mask-image: url("../../assets/images/common/icon-arrow.svg");
    mask-image: url("../../assets/images/common/icon-arrow.svg");
  }
}

@media (any-hover: hover) {
  .c-contact-box:hover {
    background-color: var(--color-base-primary);
    border-color: var(--color-primary);
  }

  .c-contact-box:hover .c-contact-box__link {
    color: var(--color-primary);
  }
}

.c-table-address {
  table-layout: fixed;
  border-collapse: collapse;
  background: var(--color-base-body);
  width: 100%;
}

.c-table-address th {
  padding: 12px 10px;
}

.c-table-address td {
  padding: 16px 10px;
}

.c-table-address img {
  margin-inline: auto;
  display: block;
}

.c-table-address .is-vertical {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  vertical-align: middle;
  text-align: center;
  align-items: center;
}

.s-main-visual-blank__container {
  block-size: clamp(80px, calc(80px + var(--fluid-slope) * 80), 124px);
  position: relative;
}

.s-main-visual-blank__container:before {
  content: "";
  aspect-ratio: 1642 / 1080;
  background: var(--gradient-primary);
  inline-size: 1642px;
  clip-path: var(--clip-path-parallelogram);
  z-index: 1;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 66.6667%;
}

@media (max-width: 640px) {
  .s-main-visual-blank__container:before {
    inset-inline-start: 80%;
  }
}

.s-main-visual-simple__container {
  gap: var(--spacing-16);
  padding-block: clamp(64px, calc(64px + var(--fluid-slope) * 36), 100px) clamp(120px, calc(120px + var(--fluid-slope) * 40), 160px);
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  align-items: center;
  display: grid;
  position: relative;
}

.s-main-visual-simple__container.is-ja {
  padding-block-start: 80px;
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 128px);
}

@media (max-width: 640px) {
  .s-main-visual-simple__container {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .s-main-visual-simple__heading {
    inline-size: 80%;
  }
}

.s-main-visual-simple__image {
  aspect-ratio: 426 / 292;
  object-fit: cover;
  inline-size: 33.3333%;
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 0;
  transform: translateY(-66%);
}

@media (min-width: 1440px) {
  .s-main-visual-simple__image {
    inline-size: 29.5833vw;
  }
}

.s-main-visual-simple__image:before {
  content: "";
  aspect-ratio: 1642 / 1080;
  background: var(--gradient-primary);
  clip-path: polygon(40% 0%, 100% 0%, 60% 100%, 0% 100%);
  z-index: 1;
  inline-size: 385.446%;
  position: absolute;
  inset-block-end: calc(50% - 12px);
  inset-inline-start: 0;
}

@media (max-width: 640px) {
  .s-main-visual-simple__image {
    inline-size: 40%;
    inset-block: auto 12px;
    transform: none;
  }

  .s-main-visual-simple__image:before {
    inset-block-end: 12px;
    inset-inline-start: 50%;
  }
}

.s-main-visual-simple__container.is-ja .s-main-visual-simple__image {
  inset-block-end: -3px;
}

.s-main-visual-simple__image-frame {
  z-index: 2;
  block-size: 100%;
  inline-size: 100%;
  position: relative;
  overflow: hidden;
}

.s-main-visual-simple__image-frame img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-main-visual-simple__image-frame:has(img):after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-main-visual-simple__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-header {
  max-inline-size: var(--wide-size);
  padding-inline: var(--spacing-24);
  background: var(--color-base-body);
  z-index: var(--z-index-header);
  border-radius: 4px;
  align-items: center;
  margin-inline: auto;
  display: flex;
  position: fixed;
  inset-block-start: var(--spacing-32);
  inset-inline: 0;
}

@media (min-width: 1440px) {
  .s-header {
    inline-size: calc(100% - 160px);
    max-inline-size: var(--full-size);
  }
}

@media (max-width: 1280px) {
  .s-header {
    max-inline-size: var(--wide-size);
    border-radius: 0;
    inset-block-start: 0;
  }
}

@media (max-width: 1024px) {
  .s-header {
    padding-inline: var(--spacing-24) 0;
  }
}

@media (max-width: 640px) {
  .s-header {
    padding-inline: var(--spacing-24) 0;
  }
}

.s-header__logo {
  flex-shrink: 0;
  inline-size: 102px;
}

@media (max-width: 640px) {
  .s-header__logo {
    inline-size: 62px;
  }
}

.s-header__logo img {
  display: block;
}

.s-header__nav {
  margin-inline: var(--spacing-64) var(--spacing-24);
}

@media (max-width: 1280px) {
  .s-header__nav {
    margin-inline-start: var(--spacing-32);
  }
}

@media (max-width: 1024px) {
  .s-header__nav {
    display: none;
  }
}

.s-header__lists {
  align-items: center;
  gap: var(--spacing-32);
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.s-header__list {
  font-size: var(--font-size-m);
  font-weight: 700;
  line-height: normal;
}

.s-header__link {
  padding-block: var(--spacing-32);
  text-decoration: none;
  display: block;
  position: relative;
}

@media (max-width: 1280px) {
  .s-header__link {
    font-size: var(--font-size-s);
  }
}

.s-header__link:after {
  content: "";
  background: none;
  block-size: 4px;
  transition: background-color .3s;
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
}

:is(.s-header__link:hover, .s-header__link.is-current):after {
  background: var(--color-primary);
}

.s-header__button {
  min-inline-size: 200px;
  margin-inline-start: auto;
  display: grid;
}

@media (max-width: 1280px) {
  .s-header__button {
    font-size: var(--font-size-s);
  }
}

@media (max-width: 1024px) {
  .s-header__button {
    display: none;
  }
}

.s-header__hamburger {
  margin-inline-start: auto;
  display: none;
}

@media (max-width: 1024px) {
  .s-header__hamburger {
    display: block;
  }
}

.s-header__icon {
  background: var(--gradient-primary);
  clip-path: polygon(34% 0%, 100% 0%, 100% 100%, 0% 100%);
  padding: 10px 16px 10px 42px;
}

@keyframes menu-slide-in {
  from {
    opacity: 0;
    transform: translateX(100%);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes menu-slide-out {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    transform: translateX(100%);
  }
}

@keyframes menu-fade-in {
  from {
    opacity: 0;
    transform: translateX(32px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes menu-fade-out {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    transform: translateX(32px);
  }
}

.s-menu {
  block-size: 100vh;
  inline-size: 100%;
  block-size: 100dvh;
  max-width: initial;
  max-height: initial;
  background: var(--gradient-primary);
  z-index: var(--z-index-drawer);
  opacity: 0;
  border: none;
  padding: 0;
  position: fixed;
  inset: 0;
  overflow: auto;
  transform: translateX(100%);
}

.s-menu__header {
  padding: 10px var(--spacing-16) 10px var(--spacing-24);
  justify-content: space-between;
  align-items: center;
  display: flex;
  position: sticky;
  inset-block-start: 0;
}

.s-menu__logo {
  opacity: 0;
  inline-size: 64px;
  transform: translateX(32px);
}

.s-menu__hamburger {
  opacity: 0;
  transform: translateX(32px);
}

.s-menu__content {
  padding: var(--spacing-20) var(--spacing-16) 40px var(--spacing-24);
}

.s-menu__lists {
  gap: var(--spacing-16);
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.s-menu__list {
  opacity: 0;
  border-bottom: 1px solid #0d531a;
  display: grid;
  transform: translateX(32px);
}

.s-menu__button {
  min-height: 70px;
  opacity: 0;
  margin-block-start: var(--spacing-32);
  display: grid;
  transform: translateX(32px);
}

.s-menu__footer-logo {
  opacity: .1;
  margin-block-start: 30px;
  margin-inline: auto;
  display: block;
}

.s-menu.is-open {
  --animation-menu-duration: .6s;
  --animation-menu-first-content-delay: .3s;
  animation: menu-slide-in var(--animation-menu-duration) cubic-bezier(.33, 1, .68, 1) both;
}

.s-menu.is-open .s-menu__logo, .s-menu.is-open .s-menu__hamburger {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) var(--animation-menu-first-content-delay) both;
}

.s-menu.is-open .s-menu__list:first-child {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .1s) both;
}

.s-menu.is-open .s-menu__list:nth-child(2) {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .2s) both;
}

.s-menu.is-open .s-menu__list:nth-child(3) {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .3s) both;
}

.s-menu.is-open .s-menu__list:nth-child(4) {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .4s) both;
}

.s-menu.is-open .s-menu__list:nth-child(5) {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .5s) both;
}

.s-menu.is-open .s-menu__list:nth-child(n+6) {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .6s) both;
}

.s-menu.is-open .s-menu__button {
  animation: menu-fade-in .5s cubic-bezier(.33, 1, .68, 1) calc(var(--animation-menu-first-content-delay)  + .7s) both;
}

.s-menu.is-close {
  --animation-menu-duration: .6s;
  --animation-menu-delay: .3s;
  animation: menu-slide-out var(--animation-menu-duration) cubic-bezier(.68, 0, .33, 0) var(--animation-menu-delay) both;
}

.s-menu.is-close .s-menu__logo, .s-menu.is-close .s-menu__hamburger {
  animation: .5s cubic-bezier(.68, 0, .33, 0) both menu-fade-out;
}

.s-menu.is-close .s-menu__list:first-child {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .1s both menu-fade-out;
}

.s-menu.is-close .s-menu__list:nth-child(2) {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .2s both menu-fade-out;
}

.s-menu.is-close .s-menu__list:nth-child(3) {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .3s both menu-fade-out;
}

.s-menu.is-close .s-menu__list:nth-child(4) {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .4s both menu-fade-out;
}

.s-menu.is-close .s-menu__list:nth-child(5) {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .5s both menu-fade-out;
}

.s-menu.is-close .s-menu__list:nth-child(n+6) {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .6s both menu-fade-out;
}

.s-menu.is-close .s-menu__button {
  animation: .5s cubic-bezier(.68, 0, .33, 0) .7s both menu-fade-out;
}

.s-footer {
  overflow: hidden;
}

.s-footer__container {
  padding-block-start: 68px;
  position: relative;
}

.s-footer__container:before {
  content: "";
  aspect-ratio: 1429 / 1198;
  background: var(--gradient-primary);
  clip-path: polygon(50% 0%, 100% 0%, 50% 100%, 0% 100%);
  z-index: 1;
  inline-size: 1429px;
  display: block;
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 75%;
}

@media (min-width: 1440px) {
  .s-footer__container:before {
    inline-size: 99.2361vw;
  }
}

@media (max-width: 640px) {
  .s-footer__container:before {
    inset-inline-end: 40%;
  }
}

.s-footer.is-hide-contact-box .s-footer__container {
  padding-block-start: 0;
}

.s-footer.is-hide-contact-box .s-footer__container:before {
  block-size: 1198px;
  inline-size: 1429px;
  inset-block-start: -228px;
}

.s-footer.is-hide-background {
  background: var(--color-base-body);
}

.s-footer.is-hide-background .s-footer__container {
  padding-block-start: 0;
}

.s-footer.is-hide-background .s-footer__container:before {
  display: none;
}

.s-footer__contact-box {
  z-index: 3;
  position: relative;
}

.s-footer.is-hide-contact-box .s-footer__contact-box {
  display: none;
}

.s-footer__main {
  z-index: 2;
  background: var(--color-neutral-strong);
  margin-top: -160px;
  padding-block: 256px 48px;
  position: relative;
}

@media (max-width: 640px) {
  .s-footer__main {
    margin-top: -134px;
    padding-block-start: 200px;
  }
}

.s-footer.is-hide-contact-box .s-footer__main {
  margin-top: 0;
}

@media (max-width: 640px) {
  .s-footer.is-hide-contact-box .s-footer__main {
    margin-top: 0;
  }
}

.s-footer__logo {
  inline-size: clamp(106px, calc(106px + var(--fluid-slope) * 22), 148px);
  margin-inline: auto;
  display: block;
}

.s-footer__logo img {
  display: block;
}

.s-footer__catch {
  margin-top: var(--spacing-32);
  color: var(--color-base-body);
  font-size: clamp(var(--font-size-m), calc(var(--font-size-m)  + var(--fluid-slope) * 4), var(--font-size-l));
  text-align: center;
  font-weight: 700;
  line-height: normal;
}

@media (max-width: 640px) {
  .s-footer__catch {
    margin-top: var(--spacing-24);
  }
}

.s-footer__nav {
  place-items: start center;
  gap: var(--spacing-64);
  max-inline-size: 1056px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  margin-block-start: clamp(80px, calc(80px + var(--fluid-slope) * 48), 128px);
  margin-inline: auto;
  display: grid;
}

@media (max-width: 640px) {
  .s-footer__nav {
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
    gap: 36px;
  }
}

.s-footer__widget {
  gap: var(--spacing-32);
  display: grid;
}

@media (max-width: 640px) {
  .s-footer__widget {
    gap: var(--spacing-16);
  }
}

.s-footer__head {
  inline-size: fit-content;
  color: var(--color-neutral-medium);
  border-block-end: 1px solid #0000;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: border-color .3s;
}

@media (max-width: 640px) {
  .s-footer__head {
    font-size: var(--font-size-s);
  }
}

@media (any-hover: hover) {
  .s-footer__head:hover {
    border-block-end-color: var(--color-base-body);
  }
}

.s-footer__lists {
  gap: var(--spacing-16);
  flex-flow: column wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

@media (max-width: 640px) {
  .s-footer__lists {
    gap: var(--spacing-16) var(--spacing-24);
    flex-direction: row;
    flex-basis: auto;
  }
}

.s-footer__list {
  color: var(--color-base-body);
  font-size: var(--font-size-s);
  font-weight: 400;
  line-height: normal;
}

@media (max-width: 640px) {
  .s-footer__list {
    font-size: var(--font-size-xs);
  }
}

.s-footer__link {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  border-block-end: 1px solid #0000;
  text-decoration: none;
  transition: border-color .3s;
  display: inline-flex;
}

.s-footer__link.is-external:after {
  content: "";
  aspect-ratio: 1;
  inline-size: 16px;
  background: url("../../assets/images/common/icon-arrow-up-reverse.svg") center / contain no-repeat;
  margin-inline-start: var(--spacing-8);
}

@media (max-width: 640px) {
  .s-footer__link.is-external:after {
    inline-size: 10px;
  }
}

@media (any-hover: hover) {
  .s-footer__link:hover {
    border-block-end-color: var(--color-base-body);
  }
}

.s-footer__utility {
  justify-content: center;
  align-items: center;
  column-gap: var(--spacing-64);
  row-gap: var(--spacing-32);
  margin: clamp(36px, calc(36px + var(--fluid-slope) * 28), var(--spacing-64)) 0 0;
  padding-block: clamp(36px, calc(36px + var(--fluid-slope) * 28), var(--spacing-64));
  border-block: 1px solid #464646;
  flex-wrap: wrap;
  padding-inline: 0;
  list-style: none;
  display: flex;
}

@media (max-width: 640px) {
  .s-footer__utility {
    justify-content: flex-start;
    gap: var(--spacing-16) var(--spacing-32);
  }
}

.s-footer__copyright {
  color: var(--color-base-body);
  font-size: var(--font-size-s);
  text-align: center;
  margin-block-start: clamp(36px, calc(36px + var(--fluid-slope) * 28), var(--spacing-64));
  line-height: normal;
  display: block;
}

.s-footer__totop {
  inline-size: clamp(64px, calc(64px + var(--fluid-slope) * 16), 80px);
  display: block;
  position: absolute;
  inset-block-end: 172px;
  inset-inline-end: var(--spacing-20);
}

@media (max-width: 1280px) {
  .s-footer__totop {
    inset-block-end: 24px;
    inset-inline-end: var(--spacing-16);
  }
}

.s-footer__totop img {
  display: block;
}

.s-main-visual-large__container {
  padding-block-start: 96px;
  padding-block-end: clamp(64px, calc(64px + var(--fluid-slope) * 96), 160px);
  position: relative;
}

@media (max-width: 1024px) {
  .s-main-visual-large__container {
    padding-block: 80px 100px;
  }
}

.s-main-visual-large__content {
  z-index: 2;
  max-inline-size: 41.6667%;
  position: relative;
}

@media (max-width: 1280px) {
  .s-main-visual-large__content {
    max-inline-size: 50%;
  }
}

@media (max-width: 640px) {
  .s-main-visual-large__content {
    max-inline-size: 100%;
  }
}

.s-main-visual-large__lead {
  font-size: clamp(var(--font-size-2xl), calc(var(--font-size-2xl)  + var(--fluid-slope) * 28), var(--font-size-6xl));
  white-space: nowrap;
  margin-block-start: 128px;
  font-weight: 700;
  line-height: 1.57;
}

.s-main-visual-large__lead strong {
  color: var(--color-primary);
  font-style: normal;
}

@media (max-width: 1024px) {
  .s-main-visual-large__lead {
    margin-block-start: clamp(40px, calc(40px + var(--fluid-slope) * 88), 128px);
  }
}

.s-main-visual-large__text {
  font-size: var(--font-size-m);
  margin-block-start: 64px;
  font-weight: 400;
  line-height: 2;
}

@media (max-width: 768px) {
  .s-main-visual-large__text {
    margin-block-start: clamp(16px, calc(24px + var(--fluid-slope) * 40), 32px);
  }
}

.s-main-visual-large__image {
  box-sizing: content-box;
  aspect-ratio: 900 / 590;
  inline-size: min(70%, 1004px);
  z-index: 1;
  padding-block-end: clamp(20px, calc(20px + var(--fluid-slope) * 44), 64px);
  position: absolute;
  inset-block-start: 30px;
  inset-inline-start: 50%;
}

@media (max-width: 640px) {
  .s-main-visual-large__image {
    inline-size: 60%;
    inset-block-start: 150px;
    inset-inline-start: 60%;
  }
}

.s-main-visual-large__image:before {
  content: "";
  aspect-ratio: 1642 / 1080;
  background: var(--gradient-primary);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  z-index: 1;
  inline-size: 182.444%;
  position: absolute;
  inset-block-end: 86.2222%;
  inset-inline-start: 23.6667%;
}

@media (min-width: 1440px) {
  .s-main-visual-large__image:before {
    inline-size: 114.028vw;
  }
}

.s-main-visual-large__image:after {
  content: "";
  aspect-ratio: 212 / 140;
  background: var(--gradient-primary);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  z-index: 1;
  inline-size: 23.5556%;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 47.1111%;
}

.s-main-visual-large__image-frame {
  background: var(--color-neutral-soft);
  object-fit: cover;
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  z-index: 2;
  block-size: 100%;
  inline-size: 100%;
  position: relative;
  overflow: hidden;
}

.s-main-visual-large__image-frame img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-main-visual-large__image-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-main-visual-large__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-breadcrumb {
  padding-block: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 16), var(--spacing-32));
  z-index: 2;
  position: relative;
}

.s-breadcrumb a {
  transition: -webkit-text-decoration .3s, text-decoration .3s;
}

@media (any-hover: hover) {
  .s-breadcrumb a:hover {
    text-decoration: none;
  }
}

.s-breadcrumb__container {
  align-items: center;
  gap: var(--spacing-16);
  font-size: var(--font-size-xs);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex-wrap: nowrap;
  line-height: 1.17;
  display: flex;
  overflow-x: auto;
}

.s-breadcrumb__container > * {
  white-space: nowrap;
  flex-shrink: 0;
}

.s-breadcrumb__container::-webkit-scrollbar {
  display: none;
}

.s-breadcrumb__container .current-item {
  font-weight: 700;
}

.s-top-mv__image {
  block-size: 900px;
  inline-size: 100%;
  position: relative;
}

.s-top-mv__image img {
  object-fit: cover;
  object-position: center;
  block-size: 100%;
  inline-size: 100%;
  display: block;
  position: absolute;
  inset: 0;
}

@media (max-width: 1440px) {
  .s-top-mv__image {
    block-size: 62.5vw;
  }
}

@media (max-width: 640px) {
  .s-top-mv__image {
    block-size: 600px;
  }
}

.s-top-mv__image:after {
  content: "";
  z-index: 1;
  background: #0003;
  position: absolute;
  inset: 0;
}

.s-top-mv__copy {
  color: var(--color-base-body);
  font-size: clamp(44px, calc(44px + var(--fluid-slope) * 52), 96px);
  z-index: 3;
  font-weight: 600;
  line-height: 1.3;
  position: absolute;
  inset-block-end: var(--spacing-20);
  inset-inline: 0;
}

@media (max-width: 640px) {
  .s-top-mv__copy {
    padding-inline: var(--spacing-20) 0;
    inset-block-end: var(--spacing-32);
  }
}

.s-top-mv__copy-line1, .s-top-mv__copy-line2 {
  inline-size: fit-content;
  display: block;
  position: relative;
  overflow: hidden;
}

:is(.s-top-mv__copy-line1, .s-top-mv__copy-line2):after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

@media (max-width: 640px) {
  .s-top-mv__copy-line2:after {
    display: none;
  }
}

.s-top-mv__copy-line2-1, .s-top-mv__copy-line2-2 {
  inline-size: fit-content;
  position: relative;
  overflow: hidden;
}

@media (max-width: 640px) {
  .s-top-mv__copy-line2-1, .s-top-mv__copy-line2-2 {
    display: block;
  }

  :is(.s-top-mv__copy-line2-1, .s-top-mv__copy-line2-2):after {
    content: "";
    background: var(--color-primary);
    position: absolute;
    inset: 0;
    transform: translateX(0%);
  }
}

:is(.s-top-mv__copy.is-in-view .s-top-mv__copy-line1, .s-top-mv__copy.is-in-view .s-top-mv__copy-line2):after {
  animation-name: cover;
  animation-duration: var(--animation-duration-heading-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-top-mv__copy.is-in-view .s-top-mv__copy-line1:after {
  animation-delay: .5s;
}

.s-top-mv__copy.is-in-view .s-top-mv__copy-line2:after {
  animation-delay: .7s;
}

@media (max-width: 640px) {
  .s-top-mv__copy.is-in-view .s-top-mv__copy-line2:after {
    animation: none;
  }

  :is(.s-top-mv__copy.is-in-view .s-top-mv__copy-line2-1, .s-top-mv__copy.is-in-view .s-top-mv__copy-line2-2):after {
    animation-name: cover;
    animation-duration: var(--animation-duration-heading-cover);
    animation-fill-mode: both;
    animation-timing-function: var(--animation-timing-function-cover);
  }

  .s-top-mv__copy.is-in-view .s-top-mv__copy-line2-1:after {
    animation-delay: .7s;
  }

  .s-top-mv__copy.is-in-view .s-top-mv__copy-line2-2:after {
    animation-delay: .9s;
  }
}

.s-top-mv__picture {
  block-size: 100%;
  display: block;
}

.s-top-mv__news {
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-20);
  border-block-end: 1px solid var(--color-neutral-medium);
  z-index: 2;
  padding-block: 36px;
  display: flex;
  position: relative;
}

@media (max-width: 640px) {
  .s-top-mv__news {
    align-items: stretch;
    gap: var(--spacing-16);
    flex-direction: column;
    padding-block: 24px 16px;
  }
}

.s-top-mv__news:after {
  content: "";
  aspect-ratio: 1018 / 668;
  background: var(--gradient-primary);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  z-index: 1;
  inline-size: 1018px;
  position: absolute;
  inset-block-end: -1px;
  inset-inline-start: 83.3333%;
}

@media (min-width: 1920px) {
  .s-top-mv__news:after {
    inline-size: calc(136.351vw - 1599.86px);
  }
}

@media (max-width: 1024px) {
  .s-top-mv__news:after {
    inset-inline-start: 75%;
  }
}

@media (max-width: 640px) {
  .s-top-mv__news:after {
    inline-size: 687px;
    inset-block-end: calc(100% - 40px);
    inset-inline-start: 60%;
  }
}

.s-top-mv__latest {
  flex-grow: 1;
  max-inline-size: 83.3333%;
}

@media (max-width: 640px) {
  .s-top-mv__latest {
    max-inline-size: 100%;
  }
}

.s-top-mv__more {
  z-index: 2;
  justify-content: flex-start;
  display: flex;
  position: relative;
}

@media (max-width: 640px) {
  .s-top-mv__more {
    justify-content: flex-end;
  }
}

.s-top-about {
  padding-block: clamp(80px, calc(80px + var(--fluid-slope) * 64), 144px) clamp(160px, calc(160px + var(--fluid-slope) * 100), 260px);
}

.s-top-about__container {
  position: relative;
}

.s-top-about__content {
  z-index: 2;
  padding-block-end: 60px;
  position: relative;
}

@media (max-width: 640px) {
  .s-top-about__content {
    padding-block-end: 0;
  }
}

.s-top-about__catch {
  margin-top: clamp(64px, calc(64px + var(--fluid-slope) * 76), 140px);
  font-family: var(--font-family-ja);
  font-size: clamp(var(--font-size-3xl), calc(var(--font-size-3xl)  + var(--fluid-slope) * 32), var(--font-size-7xl));
  z-index: 2;
  font-weight: 700;
  line-height: 1.6;
  position: relative;
}

.s-top-about__catch .is-em {
  color: var(--color-primary);
  font-style: normal;
}

.s-top-about__catch .is-palt {
  font-feature-settings: "palt";
}

.s-top-about__lead {
  margin-top: clamp(64px, calc(64px + var(--fluid-slope) * 76), 140px);
  font-size: clamp(var(--font-size-l), calc(var(--font-size-l)  + var(--fluid-slope) * 12), var(--font-size-3xl));
  z-index: 2;
  font-weight: 700;
  line-height: 2;
  position: relative;
}

@media (max-width: 640px) {
  .s-top-about__images {
    margin-block-start: 64px;
    position: relative;
  }
}

.s-top-about__image1 {
  inline-size: clamp(424px, calc(424px + var(--fluid-slope) * 356), 778px);
  max-inline-size: initial;
  z-index: 1;
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 58.3333%;
}

.s-top-about__image1:after {
  content: "";
  aspect-ratio: 214 / 140;
  background: var(--gradient-primary);
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
  z-index: 1;
  inline-size: 27.5064%;
  position: absolute;
  inset-block-end: -88px;
  inset-inline-start: 41.1311%;
}

@media (max-width: 1280px) {
  .s-top-about__image1 {
    inset-inline-start: 50%;
  }
}

@media (max-width: 640px) {
  .s-top-about__image1 {
    margin-inline-start: 20%;
    position: relative;
    inset-inline-start: 0;
  }

  .s-top-about__image1:after {
    inline-size: 25.4717%;
    inset-block-end: -20px;
    inset-inline-start: 200px;
  }
}

.s-top-about__image1-frame {
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
  z-index: 2;
  position: relative;
  overflow: hidden;
}

.s-top-about__image1-frame img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-top-about__image1-frame:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-top-about__image2 {
  z-index: 1;
  inline-size: 16.6667%;
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 0;
}

@media (max-width: 640px) {
  .s-top-about__image2 {
    inline-size: 40%;
    inset-block-start: 30px;
    inset-inline: 0 auto;
  }
}

.s-top-about__image2-frame {
  position: relative;
  overflow: hidden;
}

.s-top-about__image2-frame img {
  inline-size: 100%;
  display: block;
}

.s-top-about__image2-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-top-about__content2 {
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "image . description"
                       "image . button";
  align-items: start;
  gap: 64px 0;
  margin-block-start: 160px;
  display: grid;
}

@media (max-width: 640px) {
  .s-top-about__content2 {
    grid-template-columns: 1fr;
    grid-template-areas: "description"
                         "image"
                         "button";
    gap: 0;
    margin-block-start: 84px;
  }
}

.s-top-about__description {
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  z-index: 2;
  grid-area: description;
  font-weight: 400;
  line-height: 2;
}

.s-top-about__description > .s-top-about__text + .s-top-about__text {
  margin-block-start: clamp(var(--spacing-48), calc(var(--spacing-48)  + var(--fluid-slope) * 16), var(--spacing-64));
}

.s-top-about__button {
  z-index: 2;
  grid-area: button;
  inline-size: 50%;
  max-inline-size: 100%;
  margin-inline-start: auto;
  display: grid;
  position: relative;
}

@media (max-width: 1280px) {
  .s-top-about__button {
    inline-size: 66.6667%;
  }
}

@media (max-width: 1024px) {
  .s-top-about__button {
    inline-size: 83.3333%;
  }
}

@media (max-width: 768px) {
  .s-top-about__button {
    inline-size: 100%;
  }
}

@media (max-width: 640px) {
  .s-top-about__button {
    inline-size: 100%;
    margin-block-start: 64px;
  }
}

.s-top-about__image3 {
  z-index: 1;
  grid-area: image;
  padding-block-start: 52px;
  position: relative;
}

@media (max-width: 640px) {
  .s-top-about__image3 {
    margin-block-start: 54px;
    padding-block-start: 64px;
  }
}

.s-top-about__image3:before {
  content: "";
  inline-size: clamp(641px, calc(641px + var(--fluid-slope) * 334), 975px);
  aspect-ratio: 975 / 641;
  background: var(--gradient-primary);
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
  z-index: 1;
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 40%;
}

@media (min-width: 1440px) {
  .s-top-about__image3:before {
    inline-size: 67.7083vw;
  }
}

@media (max-width: 640px) {
  .s-top-about__image3:before {
    inset-inline-end: 20%;
  }
}

.s-top-about__image3:after {
  content: "";
  aspect-ratio: 214 / 140;
  background: var(--gradient-primary);
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
  z-index: 1;
  inline-size: 40%;
  position: absolute;
  inset-block-start: 80%;
  inset-inline-start: 80%;
}

@media (max-width: 640px) {
  .s-top-about__image3:after {
    inline-size: clamp(87px, calc(87px + var(--fluid-slope) * 127), 214px);
    inset-block-start: 90%;
  }
}

.s-top-about__image3-frame {
  z-index: 2;
  position: relative;
  overflow: hidden;
}

.s-top-about__image3-frame img {
  inline-size: 100%;
  display: block;
}

.s-top-about__image3-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.s-top-about__image1-frame.is-in-view, .s-top-about__image2-frame.is-in-view, .s-top-about__image3-frame.is-in-view):after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-top-service {
  padding-block: 0;
}

.s-top-service__container {
  z-index: 2;
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: ". . heading"
                       "image . lists"
                       ". . button";
  gap: 64px 0;
  display: grid;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-service__container {
    grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 7fr);
  }
}

@media (max-width: 1024px) {
  .s-top-service__container {
    grid-template-columns: minmax(0, 5.5fr) minmax(0, .5fr) minmax(0, 6fr);
  }
}

@media (max-width: 768px) {
  .s-top-service__container {
    grid-template-columns: 1fr;
    grid-template-areas: "heading"
                         "lists"
                         "button";
  }
}

.s-top-service__heading {
  grid-area: heading;
}

.s-top-service__image {
  background: var(--color-neutral-soft);
  grid-area: image;
  margin-block-start: 64px;
  position: relative;
  overflow: hidden;
}

.s-top-service__image:after {
  content: "";
  background: var(--gradient-primary);
  z-index: 2;
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-top-service__image.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

@media (max-width: 768px) {
  .s-top-service__image {
    aspect-ratio: 336 / 220;
    grid-area: unset;
    margin-block-start: 0;
    display: none;
  }
}

.s-top-service__picture {
  z-index: 0;
  block-size: 100%;
  inline-size: 100%;
  display: block;
  position: absolute;
  inset: 0;
  transform: translateX(-101%);
}

.s-top-service__picture.is-current {
  z-index: 1;
  transform: translateX(0);
}

.s-top-service__picture.is-mouseenter {
  z-index: 2;
  animation: .3s both side-in;
}

.s-top-service__picture img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-top-service__lists {
  grid-area: lists;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 768px) {
  .s-top-service__lists {
    gap: var(--spacing-24);
    display: grid;
  }
}

.s-top-service__list {
  border-block-end: 1px solid #d1d5dc;
}

@media (max-width: 768px) {
  .s-top-service__list {
    display: grid;
  }
}

.s-top-service__mobile-image {
  display: none;
}

.s-top-service__mobile-image img {
  inline-size: 100%;
  display: block;
}

@media (max-width: 768px) {
  .s-top-service__mobile-image {
    display: block;
  }
}

.s-top-service__button {
  grid-area: button;
  inline-size: 50%;
  max-inline-size: 100%;
  margin-inline-start: auto;
  display: grid;
}

@media (max-width: 1280px) {
  .s-top-service__button {
    inline-size: 66.6667%;
  }
}

@media (max-width: 1024px) {
  .s-top-service__button {
    inline-size: 83.3333%;
  }
}

@media (max-width: 768px) {
  .s-top-service__button {
    inline-size: 100%;
  }
}

@media (max-width: 640px) {
  .s-top-service__button {
    inline-size: 100%;
  }
}

.s-top-case {
  padding-block-start: clamp(160px, calc(160px + var(--fluid-slope) * 40), 200px);
}

.s-top-case__container {
  padding-block-end: clamp(72px, calc(72px + var(--fluid-slope) * 52), 124px);
  position: relative;
}

.s-top-case__container:after {
  content: "";
  inline-size: clamp(1102px, calc(1102px + var(--fluid-slope) * 704), 1806px);
  aspect-ratio: 1806 / 1189;
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  background: var(--gradient-primary);
  z-index: 1;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
}

@media (min-width: 1440px) {
  .s-top-case__container:after {
    inline-size: 125.417vw;
  }
}

@media (max-width: 640px) {
  .s-top-case__container:after {
    inset-inline-start: 20%;
  }
}

.s-top-case__slider {
  box-sizing: content-box;
  inline-size: calc(50vw + 50%);
  z-index: 2;
  margin-block-start: clamp(64px, calc(64px + var(--fluid-slope) * 64), 128px);
  position: relative;
}

.s-top-case__button {
  z-index: 2;
  inline-size: 25%;
  max-inline-size: 100%;
  display: grid;
  position: relative;
}

@media (max-width: 1280px) {
  .s-top-case__button {
    inline-size: 33.3333%;
  }
}

@media (max-width: 1024px) {
  .s-top-case__button {
    inline-size: 41.6667%;
  }
}

@media (max-width: 768px) {
  .s-top-case__button {
    inline-size: 50%;
  }
}

@media (max-width: 640px) {
  .s-top-case__button {
    inline-size: 100%;
    margin-block-start: 48px;
  }
}

.s-top-case__bottom {
  max-inline-size: var(--wide-size);
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-16);
  margin-block-start: clamp(var(--spacing-16), calc(var(--spacing-16)  + var(--fluid-slope) * 48), var(--spacing-64));
  display: flex;
}

@media (min-width: 1440px) {
  .s-top-case__bottom {
    max-inline-size: calc(100% - 80px);
  }
}

@media (max-width: 1280px) {
  .s-top-case__bottom {
    padding-inline-end: var(--spacing-24);
  }
}

@media (max-width: 640px) {
  .s-top-case__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

.s-top-case__arrows {
  align-items: center;
  gap: var(--spacing-16);
  display: flex;
}

.s-top-case__arrows .splide__arrow--prev, .s-top-case__arrows .splide__arrow--next {
  background: var(--color-base-body);
  border: 1px solid var(--color-neutral-medium);
  opacity: 1;
  border-radius: 4px;
  width: 48px;
  height: 48px;
  transition: background-color .3s, border-color .3s;
  position: static;
  transform: none;
}

@media (any-hover: hover) {
  :is(.s-top-case__arrows .splide__arrow--prev, .s-top-case__arrows .splide__arrow--next):hover {
    background-color: var(--color-base-primary);
    border-color: var(--color-primary);
  }
}

:is(.s-top-case__arrows .splide__arrow--prev, .s-top-case__arrows .splide__arrow--next) svg {
  fill: var(--color-primary);
  width: 16px;
  height: 16px;
}

.s-top-case__no-posts {
  max-inline-size: calc(var(--wide-size)  + var(--spacing-20));
  block-size: clamp(320px, calc(320px + var(--fluid-slope) * 300), 520px);
  background: var(--color-base-primary);
  place-items: center;
  margin-inline-end: var(--spacing-20);
  display: grid;
}

.s-top-technology__container {
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "images . content";
  align-items: start;
  gap: 0;
  padding-block-start: clamp(160px, calc(160px + var(--fluid-slope) * 100), 200px);
  display: grid;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-technology__container {
    grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) minmax(0, 6fr);
  }
}

@media (max-width: 768px) {
  .s-top-technology__container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading"
                         "lead"
                         "images"
                         "description"
                         "lists"
                         "button";
  }
}

.s-top-technology__container:after {
  content: "";
  aspect-ratio: 2332 / 1536;
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  background: var(--gradient-primary);
  z-index: 1;
  inline-size: 2332px;
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 50%;
}

@media (min-width: 1440px) {
  .s-top-technology__container:after {
    inline-size: 161.944vw;
  }
}

@media (max-width: 640px) {
  .s-top-technology__container:after {
    inset-inline-end: 80%;
  }
}

.s-top-technology__content {
  z-index: 2;
  grid-area: content;
  position: relative;
}

@media (max-width: 768px) {
  .s-top-technology__content {
    display: contents;
  }
}

.s-top-technology__heading {
  z-index: 2;
  grid-area: heading;
  position: relative;
}

.s-top-technology__lead {
  font-size: clamp(var(--font-size-xl), calc(var(--font-size-xl)  + var(--fluid-slope) * 8), var(--font-size-3xl));
  z-index: 2;
  grid-area: lead;
  margin-block-start: clamp(64px, calc(64px + var(--fluid-slope) * 60), 124px);
  font-weight: 700;
  line-height: 2;
  position: relative;
}

.s-top-technology__images {
  z-index: 2;
  flex-direction: column;
  grid-area: images;
  align-items: flex-end;
  padding-block-start: 120px;
  display: flex;
  position: relative;
}

.s-top-technology__images img {
  display: block;
}

@media (max-width: 768px) {
  .s-top-technology__images {
    aspect-ratio: 613 / 303;
    inline-size: 613px;
    margin-block-start: 64px;
    margin-inline: auto;
    padding-block-start: 0;
    position: relative;
  }
}

@media (max-width: 613px) {
  .s-top-technology__images {
    margin-inline: calc(50vw - 326.5px);
  }
}

.s-top-technology__image1 {
  inline-size: clamp(460px, calc(460px + var(--fluid-slope) * 153), 613px);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
}

@media (max-width: 768px) {
  .s-top-technology__image1 {
    inline-size: 459px;
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
  }
}

.s-top-technology__image2 {
  inline-size: clamp(224px, calc(224px + var(--fluid-slope) * 96), 320px);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  margin-block-start: 24px;
}

@media (max-width: 768px) {
  .s-top-technology__image2 {
    inline-size: 224px;
    margin-block-start: 0;
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
  }
}

.s-top-technology__image3 {
  inline-size: clamp(215px, calc(215px + var(--fluid-slope) * 318), 533px);
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  margin-block-start: 64px;
}

@media (max-width: 768px) {
  .s-top-technology__image3 {
    inline-size: 216px;
    margin-block-start: 0;
    position: absolute;
    inset-block-end: 0;
    inset-inline-start: calc(50% - 12px);
  }
}

.s-top-technology__description {
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  grid-area: description;
  margin-block-start: var(--spacing-64);
  line-height: 2;
}

.s-top-technology__lists {
  grid-area: lists;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 768px) {
  .s-top-technology__lists {
    margin-block-start: 40px;
  }
}

.s-top-technology__list {
  border-block-end: 1px solid #d1d5dc;
}

.s-top-technology__button {
  grid-area: button;
  inline-size: 50%;
  max-inline-size: 100%;
  margin-block-start: 62px;
  margin-inline-start: auto;
  display: grid;
}

@media (max-width: 1280px) {
  .s-top-technology__button {
    inline-size: 66.6667%;
  }
}

@media (max-width: 1024px) {
  .s-top-technology__button {
    inline-size: 83.3333%;
  }
}

@media (max-width: 768px) {
  .s-top-technology__button {
    inline-size: 50%;
    margin-block-start: var(--spacing-64);
  }
}

@media (max-width: 640px) {
  .s-top-technology__button {
    inline-size: 100%;
  }
}

.s-top-technology__image1-frame, .s-top-technology__image2-frame, .s-top-technology__image3-frame {
  position: relative;
  overflow: hidden;
}

:is(.s-top-technology__image1-frame, .s-top-technology__image2-frame, .s-top-technology__image3-frame):after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.s-top-technology__image1-frame, .s-top-technology__image2-frame, .s-top-technology__image3-frame).is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
}

.s-top-company {
  padding-block-start: clamp(160px, calc(160px + var(--fluid-slope) * 40), 200px);
}

.s-top-company__container {
  padding-block-end: 64px;
  position: relative;
}

.s-top-company__container:after {
  content: "";
  inline-size: clamp(812px, calc(812px + var(--fluid-slope) * 1007), 1807px);
  aspect-ratio: 1807 / 1189;
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  background: var(--gradient-primary);
  z-index: 1;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 68.3333%;
}

@media (min-width: 1600px) {
  .s-top-company__container:after {
    inset-inline-start: 73.3333%;
  }
}

@media (min-width: 1440px) {
  .s-top-company__container:after {
    inline-size: 125.486vw;
  }
}

@media (max-width: 640px) {
  .s-top-company__container:after {
    inset-inline-start: 60%;
  }
}

.s-top-company__content {
  z-index: 2;
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "lists . image";
  align-items: start;
  gap: 0;
  margin-block-start: 62px;
  display: grid;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-company__content {
    grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 5fr);
  }
}

@media (max-width: 640px) {
  .s-top-company__content {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "lists"
                         "image";
    gap: 64px;
    margin-block-start: 44px;
  }
}

.s-top-company__lists {
  grid-area: lists;
  margin: 0;
  padding: 32px 0 0;
  list-style: none;
}

@media (max-width: 640px) {
  .s-top-company__lists {
    padding-block-start: 0;
  }
}

.s-top-company__list {
  border-block-end: 1px solid #d1d5dc;
}

.s-top-company__image {
  grid-area: image;
}

.s-top-company__image img {
  display: block;
}

.s-top-company__image-frame {
  position: relative;
  overflow: hidden;
}

.s-top-company__image-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-top-company__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
}

.s-top-news {
  padding-block-start: 160px;
}

.s-top-news__container {
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 8fr);
  grid-template-areas: "heading . lists"
                       "heading . button";
  align-items: start;
  gap: 0;
  padding-block-end: clamp(64px, calc(64px + var(--fluid-slope) * 136), 200px);
  display: grid;
  position: relative;
}

@media (max-width: 768px) {
  .s-top-news__container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading"
                         "lists"
                         "button";
    gap: 48px;
  }
}

.s-top-news__container:after {
  content: "";
  inline-size: clamp(812px, calc(812px + var(--fluid-slope) * 1007), 1807px);
  aspect-ratio: 1807 / 1189;
  clip-path: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  background: var(--gradient-primary);
  z-index: 1;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 90%;
}

@media (min-width: 1600px) {
  .s-top-news__container:after {
    inset-inline-start: 86.6667%;
  }
}

@media (max-width: 640px) {
  .s-top-news__container:after {
    inset-inline-start: 80%;
  }
}

.s-top-news__heading {
  grid-area: heading;
  margin-block-start: 28px;
}

.s-top-news__lists {
  z-index: 2;
  grid-area: lists;
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
}

.s-top-news__list {
  border-block-end: 1px solid #d1d5dc;
}

.s-top-news__button {
  inline-size: 37.5%;
  max-inline-size: 100%;
  z-index: 2;
  grid-area: button;
  margin-block-start: var(--spacing-64);
  margin-inline-start: auto;
  display: grid;
  position: relative;
}

@media (max-width: 1280px) {
  .s-top-news__button {
    inline-size: 50%;
  }
}

@media (max-width: 1024px) {
  .s-top-news__button {
    inline-size: 62.5%;
  }
}

@media (max-width: 768px) {
  .s-top-news__button {
    inline-size: 50%;
    margin-block-start: 0;
  }
}

@media (max-width: 640px) {
  .s-top-news__button {
    inline-size: 100%;
  }
}

.s-top-recruit {
  padding-block: clamp(120px, calc(120px + var(--fluid-slope) * 80), 200px) 0;
  background: #fff;
  overflow: hidden;
}

@media (max-width: 768px) {
  .s-top-recruit {
    padding-block-end: 100px;
  }
}

.s-top-recruit__head {
  gap: var(--spacing-16);
  grid-template-columns: 204px minmax(0, 1fr) 204px;
  grid-template-areas: "image1 heading image2";
  align-items: start;
  max-inline-size: 1165px;
  margin-inline: auto;
  display: grid;
}

@media (min-width: 1600px) {
  .s-top-recruit__head {
    max-inline-size: 1600px;
  }
}

@media (max-width: 640px) {
  .s-top-recruit__head {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "heading heading"
                         "image1 image2";
    justify-items: center;
    gap: 48px 16px;
  }
}

.s-top-recruit__heading {
  place-items: center;
  gap: var(--spacing-16);
  text-align: center;
  grid-area: heading;
  display: grid;
}

.s-top-recruit__heading-main {
  inline-size: fit-content;
  font-family: var(--font-family-en);
  font-size: clamp(var(--font-size-5xl), calc(var(--font-size-5xl)  + var(--fluid-slope) * 36), 84px);
  font-weight: 700;
  line-height: 1;
  position: relative;
  overflow: hidden;
}

.s-top-recruit__heading-main:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-top-recruit__heading-sub {
  inline-size: fit-content;
  font-weight: 700;
  line-height: normal;
  font-size: var(--font-size-m);
  position: relative;
  overflow: hidden;
}

.s-top-recruit__heading-sub:after {
  content: "";
  background: var(--color-primary);
  position: absolute;
  inset: 0;
  transform: translateX(-101%);
}

.s-top-recruit__heading.is-in-view .s-top-recruit__heading-main:after, .s-top-recruit__heading.is-in-view .s-top-recruit__heading-sub:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-heading-cover);
  animation-delay: var(--animation-delay-heading-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-top-recruit__head-image1, .s-top-recruit__head-image2 {
  inline-size: clamp(162px, calc(162px + var(--fluid-slope) * 102), 204px);
  max-inline-size: 100%;
  display: block;
}

.s-top-recruit__head-image1 {
  grid-area: image1;
}

.s-top-recruit__head-image2 {
  grid-area: image2;
}

.s-top-recruit__lead {
  text-align: center;
  font-size: clamp(var(--font-size-3xl), calc(var(--font-size-3xl)  + var(--fluid-slope) * 16), var(--font-size-5xl));
  z-index: 2;
  margin-block-start: clamp(64px, calc(64px + var(--fluid-slope) * 16), 80px);
  font-weight: 700;
  line-height: 1.5;
  position: relative;
}

.s-top-recruit__lead .is-em {
  color: var(--color-primary);
  font-style: normal;
}

@media (max-width: 640px) {
  .s-top-recruit__lead {
    line-height: 1.7;
  }
}

.s-top-recruit__content {
  margin-block-start: clamp(48px, calc(48px + var(--fluid-slope) * 48), 96px);
  padding-block-end: 162px;
  position: relative;
}

@media (max-width: 768px) {
  .s-top-recruit__content {
    padding-block-end: 0;
  }
}

.s-top-recruit__description {
  max-inline-size: 640px;
  font-size: clamp(var(--font-size-s), calc(var(--font-size-s)  + var(--fluid-slope) * 2), var(--font-size-m));
  z-index: 2;
  margin-inline: auto;
  line-height: 2;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-recruit__description {
    max-inline-size: 877px;
  }
}

@media (max-width: 1440px) {
  .s-top-recruit__description {
    max-inline-size: 44.4444vw;
  }
}

@media (max-width: 768px) {
  .s-top-recruit__description {
    max-inline-size: 100%;
  }
}

@media (max-width: 768px) {
  .s-top-recruit__content-images {
    block-size: 500px;
    inline-size: 100vw;
    margin-block-start: 36px;
    margin-inline: calc(50% - 50vw);
    position: relative;
    overflow: hidden;
  }
}

@media (max-width: 640px) {
  .s-top-recruit__content-images {
    block-size: 383px;
    inline-size: 100vw;
    margin-block-start: 36px;
    margin-inline: calc(50% - 50vw);
    position: relative;
    overflow: hidden;
  }
}

.s-top-recruit__content-image1 {
  inline-size: 529px;
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: calc(50% + 235px);
}

.s-top-recruit__content-image1 img {
  z-index: 3;
  inline-size: 100%;
  margin-block-start: auto;
  display: block;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-recruit__content-image1 {
    inset-inline-end: calc(50% + 432px);
  }
}

@media (max-width: 1440px) {
  .s-top-recruit__content-image1 {
    inline-size: 36.7361vw;
    inset-inline-end: calc(50% + 16.3194vw);
  }
}

@media (max-width: 768px) {
  .s-top-recruit__content-image1 {
    inline-size: 56.5104vw;
    inset-block-end: 0;
    inset-inline-end: calc(50% - 70px);
  }
}

@media (max-width: 640px) {
  .s-top-recruit__content-image1 {
    inline-size: 317px;
    inset-block-end: 0;
    inset-inline-end: calc(50% - 70px);
  }
}

.s-top-recruit__content-image1:before {
  content: "";
  aspect-ratio: 841 / 554;
  background: var(--gradient-primary);
  inline-size: 841px;
  clip-path: var(--clip-path-parallelogram);
  z-index: 1;
  position: absolute;
  inset-block-end: -24px;
  inset-inline-end: 100px;
}

@media (max-width: 1440px) {
  .s-top-recruit__content-image1:before {
    inline-size: 58.4028vw;
  }
}

@media (max-width: 768px) {
  .s-top-recruit__content-image1:before {
    inline-size: 634px;
    inset-block: 13.0208vw auto;
    inset-inline-end: -10px;
  }
}

@media (max-width: 640px) {
  .s-top-recruit__content-image1:before {
    inline-size: 634px;
    inset-block: 62px auto;
    inset-inline-end: -10px;
  }
}

.s-top-recruit__content-image2 {
  inline-size: 417px;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: calc(50% + 332px);
}

.s-top-recruit__content-image2 img {
  z-index: 4;
  inline-size: 100%;
  margin-block-start: auto;
  display: block;
  position: relative;
}

@media (min-width: 1600px) {
  .s-top-recruit__content-image2 {
    inset-inline-start: calc(50% + 500px);
  }
}

@media (max-width: 1440px) {
  .s-top-recruit__content-image2 {
    inline-size: 28.9583vw;
    inset-inline-start: calc(50% + 23.0556vw);
  }
}

@media (max-width: 768px) {
  .s-top-recruit__content-image2 {
    inline-size: 58.0729vw;
    inset-inline-start: calc(50% - 46px);
  }
}

@media (max-width: 640px) {
  .s-top-recruit__content-image2 {
    inline-size: 350px;
    inset-inline-start: calc(50% - 46px);
  }
}

.s-top-recruit__content-image2:before {
  content: "";
  aspect-ratio: 842 / 554;
  background: var(--gradient-primary);
  inline-size: 842px;
  clip-path: var(--clip-path-parallelogram);
  z-index: 2;
  position: absolute;
  inset-block-end: -24px;
  inset-inline-start: 16px;
}

@media (max-width: 1440px) {
  .s-top-recruit__content-image2:before {
    inline-size: 58.4722vw;
  }
}

@media (max-width: 768px) {
  .s-top-recruit__content-image2:before {
    inline-size: 634px;
    inset-block: 114px auto;
    inset-inline: auto -52px;
  }
}

.s-top-recruit__button {
  inline-size: 320px;
  max-inline-size: 100%;
  margin-block-start: 80px;
  margin-inline: auto;
  display: grid;
}

@media (min-width: 1600px) {
  .s-top-recruit__button {
    inline-size: 440px;
  }
}

@media (max-width: 768px) {
  .s-top-recruit__button {
    margin-block-start: 64px;
  }
}

@media (max-width: 640px) {
  .s-top-recruit__button {
    inline-size: 100%;
  }
}

.s-top-recruit__head-image1-frame, .s-top-recruit__head-image2-frame {
  position: relative;
  overflow: hidden;
}

:is(.s-top-recruit__head-image1-frame, .s-top-recruit__head-image2-frame):after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.s-top-recruit__head-image1-frame, .s-top-recruit__head-image2-frame).is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-about-content {
  padding-block-start: 80px;
}

@media (max-width: 1024px) {
  .s-about-content {
    padding-block-start: 60px;
  }
}

@media (max-width: 640px) {
  .s-about-content {
    margin-block-start: -46px;
    padding-block-start: 0;
  }
}

.s-about-content__container {
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  grid-template-areas: "images . body";
  align-items: start;
  display: grid;
}

@media (max-width: 640px) {
  .s-about-content__container {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    grid-template-areas: "body";
    position: relative;
  }
}

.s-about-content__images {
  flex-direction: column;
  grid-area: images;
  align-items: flex-end;
  display: flex;
  position: relative;
}

@media (max-width: 640px) {
  .s-about-content__images {
    grid-area: unset;
    display: none;
  }
}

.s-about-content__image1 {
  z-index: 1;
  inline-size: 276.187%;
  position: relative;
}

@media (min-width: 1440px) {
  .s-about-content__image1 {
    inline-size: 102.292vw;
  }
}

.s-about-content__image1:before {
  content: "";
  aspect-ratio: 2057 / 1350;
  background: var(--gradient-primary);
  z-index: 1;
  clip-path: polygon(43% 0%, 100% 0%, 57% 100%, 0% 100%);
  inline-size: 139.742%;
  position: absolute;
  inset-block-start: 48.1903%;
  inset-inline-end: 6.92464%;
}

@media (min-width: 1440px) {
  .s-about-content__image1:before {
    inline-size: 142.847vw;
  }
}

.s-about-content__image2 {
  z-index: 2;
  inline-size: 80%;
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 20%;
}

.s-about-content__body {
  gap: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  grid-area: body;
  display: grid;
}

.s-about-content__description {
  line-height: 2;
}

.s-about-content__description > .s-about-content__text + .s-about-content__text {
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
}

.s-about-content__buttons {
  gap: var(--spacing-16);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid;
}

@media (max-width: 1024px) {
  .s-about-content__buttons {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

.s-about-content__images2 {
  gap: var(--spacing-16);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  display: grid;
}

.s-about-content__images2 img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

@media (max-width: 640px) {
  .s-about-content__images2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.s-about-content__images3 {
  margin-block-start: clamp(64px, calc(64px + var(--fluid-slope) * 52), 116px);
  transform: translateX(-16.6667%);
}

.s-about-content__images3 img {
  inline-size: 100%;
  display: block;
}

@media (max-width: 640px) {
  .s-about-content__images3 {
    display: none;
  }
}

.s-about-content__image1-frame {
  z-index: 2;
  clip-path: polygon(43% 0%, 100% 0%, 57% 100%, 0% 100%);
  block-size: 100%;
  inline-size: 100%;
}

.s-about-content__image1-frame img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-about-content__image2-frame {
  z-index: 2;
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
  block-size: 100%;
  inline-size: 100%;
}

.s-about-content__image2-frame img {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.s-about-content__image1-frame, .s-about-content__image2-frame {
  position: relative;
  overflow: hidden;
}

:is(.s-about-content__image1-frame, .s-about-content__image2-frame):after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.s-about-content__image1-frame, .s-about-content__image2-frame).is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-about-content__image6-frame {
  clip-path: polygon(42% 0%, 100% 0%, 58% 100%, 0% 100%);
}

@media (max-width: 640px) {
  .s-about-content__image6-frame {
    clip-path: none;
  }
}

.s-about-content__image3-frame, .s-about-content__image4-frame, .s-about-content__image5-frame, .s-about-content__image6-frame {
  position: relative;
  overflow: hidden;
}

:is(.s-about-content__image3-frame, .s-about-content__image4-frame, .s-about-content__image5-frame, .s-about-content__image6-frame):after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

:is(.s-about-content__image3-frame, .s-about-content__image4-frame, .s-about-content__image5-frame, .s-about-content__image6-frame).is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

@media (max-width: 640px) {
  .s-about-content__image3-frame, .s-about-content__image4-frame, .s-about-content__image5-frame, .s-about-content__image6-frame {
    aspect-ratio: 286 / 176;
  }

  :is(.s-about-content__image3-frame, .s-about-content__image4-frame, .s-about-content__image5-frame, .s-about-content__image6-frame) img {
    object-fit: cover;
    block-size: 100%;
    inline-size: 100%;
  }
}

.s-about-infinity-slide {
  z-index: 2;
  padding-block-start: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
  position: relative;
  overflow: hidden;
}

.s-about-infinity-slide__images {
  --infinity-slide-duration: 32s;
}

@media (max-width: 768px) {
  .s-about-infinity-slide__images {
    --infinity-slide-duration: 40s;
  }
}

.s-about-infinity-slide__images {
  inline-size: max-content;
  animation: scroll-loop var(--infinity-slide-duration) linear infinite;
  gap: 20px;
  display: flex;
}

.s-about-infinity-slide__image {
  flex-shrink: 0;
  flex-basis: 280px;
}

@media (max-width: 640px) {
  .s-about-infinity-slide__image {
    flex-basis: 200px;
  }
}

.s-about-philosophy {
  padding-block-start: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.s-about-philosophy__container {
  gap: clamp(68px, calc(68px + var(--fluid-slope) * 92), 160px);
  display: grid;
  position: relative;
}

.s-about-philosophy__lead {
  font-size: clamp(var(--font-size-2xl), calc(var(--font-size-2xl)  + var(--fluid-slope) * 36), var(--font-size-6xl));
  z-index: 2;
  font-weight: 700;
  line-height: 1.14;
  position: relative;
}

.s-about-philosophy__image {
  z-index: 1;
  inline-size: 41.6667%;
  position: absolute;
  inset-block-start: 196px;
  inset-inline-end: 0;
}

.s-about-philosophy__text {
  line-height: 2;
}

.s-about-philosophy__content {
  grid-template-columns: minmax(0, 2fr) minmax(0, 10fr);
  display: grid;
}

@media (max-width: 1024px) {
  .s-about-philosophy__content {
    gap: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-about-philosophy__intro {
  font-size: clamp(var(--font-size-l), calc(var(--font-size-l)  + var(--fluid-slope) * 4), var(--font-size-xl));
  padding-inline-end: var(--spacing-16);
  font-weight: 700;
  line-height: 1;
}

.s-about-philosophy__items {
  margin: 0;
  padding: 0;
  list-style: none;
}

.s-about-philosophy__item {
  gap: var(--spacing-8);
  border-block-end: 1px dashed var(--color-neutral-medium);
  font-size: clamp(var(--font-size-l), calc(var(--font-size-l)  + var(--fluid-slope) * 4), var(--font-size-xl));
  grid-template-columns: auto minmax(0, 1fr);
  padding-block-end: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 24), var(--spacing-48));
  font-weight: 700;
  line-height: 1.4;
  display: grid;
}

.s-about-philosophy__item:before {
  content: "";
  aspect-ratio: 1;
  background: var(--gradient-primary);
  clip-path: polygon(66% 0, 100% 0%, 34% 100%, 0% 100%);
  inline-size: 24px;
  margin-block-start: 2px;
}

.s-about-philosophy__items > .s-about-philosophy__item + .s-about-philosophy__item {
  padding-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 24), var(--spacing-48));
}

.s-about-message__container {
  row-gap: clamp(var(--spacing-64), calc(var(--spacing-64)  + var(--fluid-slope) * 64), 128px);
  grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 7fr);
  grid-template-areas: "heading heading heading"
                       "content . image";
  align-items: center;
  padding-block-end: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  display: grid;
  position: relative;
}

.s-about-message__container:before {
  content: "";
  aspect-ratio: 1622 / 1066;
  background: var(--gradient-primary);
  inline-size: 1622px;
  clip-path: var(--clip-path-parallelogram);
  z-index: 1;
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 66.6667%;
}

@media (min-width: 1440px) {
  .s-about-message__container:before {
    inline-size: 112.639vw;
  }
}

@media (max-width: 1280px) {
  .s-about-message__container {
    grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  }
}

@media (max-width: 768px) {
  .s-about-message__container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading"
                         "content"
                         "image";
  }
}

.s-about-message__heading {
  grid-area: heading;
}

.s-about-message__content {
  grid-area: content;
}

.s-about-message__lead {
  font-size: clamp(var(--font-size-2xl), calc(var(--font-size-2xl)  + var(--fluid-slope) * 20), var(--font-size-5xl));
  font-weight: 700;
  line-height: 1.5;
}

.s-about-message__lead .is-strong {
  color: var(--color-primary);
  font-weight: 700;
}

.s-about-message__text {
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  line-height: 2;
}

.s-about-message__text p + p {
  margin-block-start: 1em;
}

.s-about-message__name {
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  line-height: 2;
}

.s-about-message__image {
  z-index: 2;
  grid-area: image;
  position: relative;
}

.s-about-message__image img {
  inline-size: 100%;
  display: block;
}

.s-about-message__image-frame {
  position: relative;
  overflow: hidden;
}

.s-about-message__image-frame:after {
  content: "";
  background: var(--gradient-primary);
  position: absolute;
  inset: 0;
  transform: translateX(0%);
}

.s-about-message__image-frame.is-in-view:after {
  animation-name: cover;
  animation-duration: var(--animation-duration-image-cover);
  animation-delay: var(--animation-delay-image-cover);
  animation-fill-mode: both;
  animation-timing-function: var(--animation-timing-function-cover);
}

.s-about-links {
  padding-block: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
}

.s-about-links__container {
  gap: var(--spacing-16);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid;
}

@media (max-width: 768px) {
  .s-about-links__container {
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-company-summary {
  padding-bottom: clamp(50px, calc(50px + var(--fluid-slope) * 30), 80px);
}

@media (max-width: 640px) {
  .s-company-summary {
    padding-top: 36px;
  }
}

.s-company-summary__table {
  background: var(--color-base-body);
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
}

.s-company-summary__table th:first-child {
  inline-size: 16.6667%;
}

.s-company-summary__table td.has-qualification-table {
  padding: 0;
  overflow-x: auto;
}

@media (max-width: 768px) {
  .s-company-summary__table th:not(.s-company-summary__qualification th), .s-company-summary__table td:not(.s-company-summary__qualification td) {
    border-block-end: none;
    border-inline: none;
    display: block;
  }

  .s-company-summary__table th:not(.s-company-summary__qualification th):first-child {
    inline-size: 100%;
  }

  .s-company-summary__table tr:first-child th:not(.s-company-summary__qualification th):first-child, .s-company-summary__table tr:first-child td:not(.s-company-summary__qualification td):first-child {
    border-block-start: none;
  }
}

.s-company-summary__table .is-small {
  font-size: var(--font-size-s);
  line-height: 1.42;
}

.s-company-summary__table dl {
  gap: var(--spacing-32);
  display: grid;
}

@media (max-width: 640px) {
  .s-company-summary__table dl {
    gap: var(--spacing-16);
  }
}

.s-company-summary__table dl dt {
  font-weight: 700;
  line-height: var(--font-size-xl, 24px);
}

.s-company-summary__table dl dd {
  margin-block-start: var(--spacing-16);
  line-height: 2;
}

@media (max-width: 640px) {
  .s-company-summary__table dl dd {
    margin-block-start: var(--spacing-8);
  }
}

.s-company-summary__table ul {
  padding-inline-start: 0;
  list-style: none;
}

.s-company-summary__table ul li {
  padding-inline-start: var(--spacing-16);
  position: relative;
}

.s-company-summary__table ul li:before {
  content: "";
  background: var(--color-primary);
  block-size: 8px;
  inline-size: 8px;
  position: absolute;
  inset-block-start: calc(.5lh - 4px);
  inset-inline-start: 0;
}

.s-company-summary__table ul li + li {
  margin-block-start: var(--spacing-16);
}

.s-company-summary__table ul.is-horizon {
  gap: var(--spacing-16);
  flex-wrap: wrap;
  display: flex;
}

.s-company-summary__table ul.is-horizon li + li {
  margin-block-start: 0;
}

@media (max-width: 640px) {
  .s-company-summary__table ul.is-horizon {
    gap: var(--spacing-8);
    flex-direction: column;
  }
}

.s-company-summary__qualification tr th:first-child, .s-company-summary__qualification tr th:nth-child(2) {
  inline-size: 20%;
}

@media (max-width: 640px) {
  .s-company-summary__qualification tr th:first-child, .s-company-summary__qualification tr th:nth-child(2) {
    inline-size: 120px;
  }
}

@media (max-width: 1024px) {
  .s-company-summary__qualification {
    inline-size: 1044px;
  }
}

@media (max-width: 640px) {
  .s-company-summary__qualification {
    inline-size: 760px;
  }
}

.s-company-summary__links {
  justify-items: start;
  gap: var(--spacing-32);
  flex-wrap: wrap;
  display: flex;
}

.s-company-summary__link {
  align-items: center;
  gap: var(--spacing-32);
  flex-wrap: wrap;
  display: flex;
}

.s-company-summary__image {
  inline-size: 50px;
}

.s-company-links {
  padding-block: clamp(50px, calc(50px + var(--fluid-slope) * 30), 80px);
}

.s-company-links__container {
  gap: var(--spacing-16);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid;
}

@media (max-width: 768px) {
  .s-company-links__container {
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-company-download {
  padding-block: clamp(50px, calc(50px + var(--fluid-slope) * 30), 80px);
}

.s-company-download__box {
  padding: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32)) clamp(var(--spacing-20), calc(var(--spacing-20)  + var(--fluid-slope) * 28), var(--spacing-48));
  background: var(--color-base-body);
  display: grid;
}

.s-company-download__content {
  grid-template-columns: 42% 52%;
  align-items: start;
  gap: 6%;
  margin-block-start: var(--spacing-32);
  display: grid;
}

@media (max-width: 768px) {
  .s-company-download__content {
    gap: var(--spacing-32);
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-company-download__title {
  font-size: clamp(var(--font-size-l), calc(var(--font-size-l)  + var(--fluid-slope) * 4), var(--font-size-xl));
  line-height: 2;
}

.s-company-download__image img {
  inline-size: 100%;
  display: block;
}

.s-company-download__lists {
  margin: 0;
  padding: 0;
  list-style: none;
}

.s-company-download__lists > .s-company-download__list + .s-company-download__list {
  border-block-start: 1px dashed var(--color-neutral-medium);
}

.s-company-history {
  padding-block: clamp(50px, calc(50px + var(--fluid-slope) * 30), 80px) clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.s-company-history__title {
  font-size: clamp(var(--font-size-l), calc(var(--font-size-l)  + var(--fluid-slope) * 4), var(--font-size-xl));
  line-height: 2;
}

.s-company-history__content {
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
}

.s-company-history__lists {
  margin: 0;
  padding: 0;
  list-style: none;
}

.s-company-history__list {
  border-bottom: 1px solid var(--color-neutral-medium);
  grid-template-columns: 2fr 10fr;
  padding-block-start: var(--spacing-8);
  padding-block-end: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 16), var(--spacing-48));
  display: grid;
}

.s-company-history__list:not(:first-child) {
  padding-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 16), var(--spacing-40));
}

@media (max-width: 640px) {
  .s-company-history__list {
    gap: var(--spacing-4);
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-company-history__year {
  font-size: var(--font-size-m);
  line-height: 2;
}

.s-company-history__description {
  line-height: 2;
}

.s-company-history__details {
  interpolate-size: allow-keywords;
  display: grid;
}

.s-company-history__button {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  inline-size: 366px;
  max-inline-size: 100%;
  padding: var(--spacing-24) var(--spacing-64);
  border-radius: var(--spacing-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  cursor: pointer;
  order: 2;
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  margin-inline: auto;
  font-weight: 700;
  line-height: normal;
  transition: background-color .3s, border-color .3s;
  display: flex;
}

.s-company-history__button:after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-plus.svg") center / contain no-repeat;
  inline-size: 24px;
}

@media (any-hover: hover) {
  .s-company-history__button:hover {
    background-color: var(--color-base-primary);
    border-color: var(--color-primary);
  }
}

.s-company-history__button::-webkit-details-marker {
  display: none;
}

@media (max-width: 640px) {
  .s-company-history__button {
    inline-size: 100%;
  }
}

.s-company-history__details-more {
  order: 1;
  height: auto;
  margin-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  transition: height 1s;
}

.s-company-history__details[open] .s-company-history__button {
  display: none;
}

.s-company-history__details:not([open]) .s-company-history__details-more {
  height: 0;
}

.s-contact {
  max-inline-size: var(--content-size);
  padding: clamp(var(--spacing-20), calc(var(--spacing-20)  + var(--fluid-slope) * 44), var(--spacing-64));
  background: var(--color-base-body);
  margin-inline: auto;
}

.s-contact__items {
  gap: 0 var(--spacing-32);
  grid-template-columns: auto minmax(0, 1fr);
  display: grid;
}

@media (max-width: 768px) {
  .s-contact__items {
    grid-template-columns: minmax(0, 1fr);
  }
}

.s-contact__item {
  grid-template-columns: subgrid;
  border-block-end: 1px solid var(--color-neutral-medium);
  grid-column: 1 / -1;
  align-items: start;
  margin-block-start: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-block-end: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  display: grid;
}

@media (max-width: 768px) {
  .s-contact__item {
    gap: var(--spacing-16);
  }
}

.s-contact-table__label {
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-32);
  font-family: var(--font-family-en);
  grid-column: 1;
  margin-block-start: var(--spacing-24);
  line-height: normal;
  display: flex;
}

@media (max-width: 768px) {
  .s-contact-table__label {
    justify-content: flex-start;
    gap: var(--spacing-24);
    margin-block-start: 0;
  }
}

.s-contact-table__label:before {
  content: "";
}

.s-contact-table__label.is-required:before {
  content: "必須";
  padding: var(--spacing-4) var(--spacing-8);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  border: 1px solid var(--color-accent);
  color: var(--color-accent);
  font-size: var(--font-size-xs);
  font-weight: 700;
  line-height: var(--font-size-l);
  display: flex;
}

.s-contact-table__control {
  grid-column: 2;
}

.s-contact-table__control .wpcf7-not-valid-tip {
  color: var(--color-accent);
  margin-block-start: var(--spacing-8);
  font-weight: 500;
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="text"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="email"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="tel"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="url"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="number"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) [type="date"] {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) select {
  border-color: var(--color-accent);
}

.s-contact-table__control:has(.wpcf7-not-valid-tip) textarea {
  border-color: var(--color-accent);
}

.s-contact__check {
  text-align: center;
  margin-block-start: var(--spacing-32);
}

.s-contact__check a {
  color: var(--color-primary);
}

.s-contact__check .wpcf7-list-item:has([name="your-acceptance"]) {
  margin-inline-start: 0;
}

.s-contact__check label {
  cursor: pointer;
  transition: color .3s;
}

@media (any-hover: hover) {
  .s-contact__check label:hover {
    color: var(--color-primary);
  }
}

.s-contact__button {
  inline-size: 366px;
  max-inline-size: 100%;
  text-align: center;
  margin-block-start: var(--spacing-64);
  margin-inline: auto;
  display: grid;
}

.s-contact__attention {
  align-items: center;
  gap: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  padding-block: var(--spacing-24);
  padding-inline: clamp(var(--spacing-24), calc(var(--spacing-24)  + var(--fluid-slope) * 8), var(--spacing-32));
  background: #f1f1f1;
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  display: flex;
}

@media (max-width: 768px) {
  .s-contact__attention {
    flex-direction: column;
  }
}

.s-contact__attention-head {
  font-size: var(--font-size-s);
  flex-shrink: 0;
  font-weight: 700;
  line-height: normal;
}

.s-contact__attention-body {
  font-size: var(--font-size-s);
  line-height: 1.6;
}

.p-single__body {
  padding-block-start: 12px;
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-single__meta {
  align-items: center;
  gap: var(--spacing-16);
  flex-wrap: wrap;
  display: flex;
}

.p-single__date {
  color: var(--color-contrast);
  font-family: var(--font-family-en);
  line-height: 1.25;
}

.p-single__categories ul {
  align-items: center;
  gap: var(--spacing-8);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.p-single__categories span, .p-single__categories a {
  padding: var(--spacing-4) var(--spacing-8);
  border: 1px solid var(--color-primary);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-10);
  color: var(--color-primary);
  font-size: var(--font-size-xs);
  line-height: 1.16667;
  display: flex;
}

.p-single__categories a {
  text-decoration: none;
  transition: color .3s, background-color .3s;
}

@media (any-hover: hover) {
  .p-single__categories a:hover {
    background: var(--color-base-primary);
  }
}

.p-single__title {
  border-block-end: 2px solid var(--color-neutral-medium);
  font-size: clamp(var(--font-size-xl), calc(var(--font-size-xl)  + var(--fluid-slope) * 8), var(--font-size-3xl));
  margin-block-start: var(--spacing-24);
  padding-block-end: .75em;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
}

.p-single__title:before {
  content: "";
  background: var(--color-primary);
  block-size: 2px;
  inline-size: 25%;
  position: absolute;
  inset-block-start: 100%;
  inset-inline-start: 0;
}

.p-single__content {
  margin-block-start: clamp(var(--spacing-40), calc(var(--spacing-40)  + var(--fluid-slope) * 40), 80px);
}

.p-single__button {
  inline-size: 366px;
  margin-block-start: clamp(80px, calc(80px + var(--fluid-slope) * 48), 128px);
  margin-inline: auto;
  display: grid;
}

@media (max-width: 640px) {
  .p-single__button {
    inline-size: 100%;
  }
}

.p-single.is-recruit-single .p-single__body {
  padding-block-end: clamp(116px, calc(116px + var(--fluid-slope) * 184), 310px);
}

.p-archive__body {
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-archive__container.is-tow-column {
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 8fr);
  grid-template-areas: "sidebar . content";
  display: grid;
}

@media (max-width: 768px) {
  .p-archive__container.is-tow-column {
    gap: var(--spacing-64);
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "content"
                         "sidebar";
  }
}

.p-archive__sidebar {
  grid-area: sidebar;
}

.p-archive__lists {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-archive__lists li {
  border-bottom: 1px dashed var(--color-neutral-medium);
}

.p-archive__lists a {
  --icon-size-desktop: 16px;
  --icon-size-mobile: 16px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  padding: var(--spacing-24) var(--spacing-16);
  align-items: center;
  gap: var(--spacing-24);
  background: var(--color-base-body);
  font-size: var(--font-size-s);
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s, color .3s;
  display: grid;
}

.p-archive__lists a:not(.is-current):before, .p-archive__lists a:not(.is-current):after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.p-archive__lists a:not(.is-current):before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.p-archive__lists a:not(.is-current):after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .p-archive__lists a:not(.is-current):hover {
    background: var(--color-base-primary);
    color: var(--color-primary);
  }
}

.p-archive__lists a.is-current {
  pointer-events: none;
  font-weight: 700;
}

.p-archive__lists.is-sticky {
  --toc-margin-block: 16px;
  max-block-size: calc(100vh - var(--header-height-corporate-desktop)  - var(--toc-margin-block) * 2);
  position: sticky;
  inset-block-start: calc(var(--header-height-corporate-desktop)  + var(--toc-margin-block));
  overflow: auto;
}

.p-archive__content {
  grid-area: content;
}

.p-archive__cards {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.p-archive__card {
  border-bottom: 1px solid var(--color-neutral-medium);
}

.p-archive__pagination {
  justify-content: flex-end;
  margin-block-start: clamp(var(--spacing-32), calc(var(--spacing-32)  + var(--fluid-slope) * 32), var(--spacing-64));
  display: flex;
}

.p-archive__no-posts {
  line-height: 2;
}

.p-archive.is-recruit-archive .p-archive__body {
  padding-block-end: clamp(116px, calc(116px + var(--fluid-slope) * 184), 310px);
}

.p-front-page {
  overflow-x: hidden;
}

@media (max-width: 640px) {
  .p-front-page__mv {
    padding-block-start: var(--header-height-corporate-mobile);
  }
}

.p-service-page {
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-service-page__cards {
  gap: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
  display: grid;
}

.p-technology-page {
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-technology-page__cards {
  gap: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
  display: grid;
}

.p-technology-page__links {
  padding-block-start: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
}

.p-technology-page__boxes {
  gap: var(--wp--preset--spacing--16);
  grid-template-columns: repeat(2, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .p-technology-page__boxes {
    grid-template-columns: minmax(0, 1fr);
  }
}

.p-default-page__body {
  padding-block-start: 8px;
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-default-page__container.is-tow-column {
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 8fr);
  grid-template-areas: "sidebar . content";
  display: grid;
}

@media (max-width: 1024px) {
  .p-default-page__container.is-tow-column {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "content";
  }
}

.p-default-page__sidebar {
  grid-area: sidebar;
}

@media (max-width: 1024px) {
  .p-default-page__sidebar {
    grid-area: unset;
    display: none;
  }
}

.p-default-page__lists {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-default-page__lists li {
  border-bottom: 1px dashed var(--color-neutral-medium);
}

.p-default-page__lists a {
  padding: var(--spacing-24) var(--spacing-16);
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-24);
  background: var(--color-base-body);
  font-size: var(--font-size-s);
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s, color .3s;
  display: flex;
}

.p-default-page__lists a.is-current {
  font-weight: 700;
}

.p-default-page__lists a:not(.is-current):after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-primary-arrow.svg") center / contain no-repeat;
  flex-shrink: 0;
  inline-size: 16px;
}

.p-default-page__lists a:hover {
  background: var(--color-base-primary);
  color: var(--color-primary);
}

.p-default-page__lists.is-sticky {
  --toc-margin-block: 16px;
  max-block-size: calc(100vh - var(--header-height-corporate-desktop)  - var(--toc-margin-block) * 2);
  position: sticky;
  inset-block-start: calc(var(--header-height-corporate-desktop)  + var(--toc-margin-block));
  overflow: auto;
}

.p-default-page__article {
  z-index: 2;
  grid-area: content;
  position: relative;
}

.p-default-page__button {
  inline-size: 360px;
  max-inline-size: 100%;
  margin-block-start: clamp(64px, calc(64px + var(--fluid-slope) * 64), 128px);
  margin-inline: auto;
  display: grid;
}

.p-default-page__more {
  z-index: 10;
  inline-size: calc(100% - var(--spacing-16) * 2);
  margin-inline: auto;
  position: fixed;
  inset-block-end: var(--spacing-16);
  inset-inline: 0;
}

.p-company-address__map {
  aspect-ratio: 1294 / 465;
  block-size: auto;
  inline-size: 100%;
}

.p-company-address__map iframe {
  object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

@media (max-width: 1280px) {
  .p-company-address__map {
    aspect-ratio: 1280 / 620;
  }
}

@media (max-width: 768px) {
  .p-company-address__map {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 640px) {
  .p-company-address__map {
    aspect-ratio: 1;
  }
}

.p-company-address__table {
  margin-block-start: clamp(80px, calc(80px + var(--fluid-slope) * 48), 128px);
  overflow-x: auto;
}

.p-case__section {
  padding-block-end: clamp(100px, calc(100px + var(--fluid-slope) * 100), 200px);
}

.p-case__lists {
  grid-template-columns: repeat(auto-fit, 212px);
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

@media (max-width: 1024px) {
  .p-case__lists {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .p-case__lists {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.p-case__link {
  padding: var(--spacing-16);
  background: var(--color-base-body);
  color: var(--color-contrast);
  text-align: center;
  font-size: clamp(14px, calc(14px + var(--fluid-slope) * 2), var(--font-size-m));
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color .3s, color .3s;
  display: block;
  position: relative;
}

.p-case__link:after {
  content: "";
  aspect-ratio: 16 / 13;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  z-index: 2;
  background: none;
  inline-size: 16px;
  margin-inline: auto;
  transition: background-color .3s;
  display: block;
  position: absolute;
  inset-block-start: calc(100% - 1px);
  inset-inline: 0;
}

.p-case__link.is-current {
  background-color: var(--color-primary);
  color: var(--color-base-body);
}

.p-case__link.is-current:after {
  background-color: var(--color-primary);
}

.p-case__link:hover {
  background-color: var(--color-base-primary);
  color: var(--color-primary);
}

@media (max-width: 768px) {
  .p-case__link {
    padding-block: var(--spacing-24);
  }
}

.p-case__cards {
  column-gap: 1px;
  row-gap: clamp(24px, calc(24px + var(--fluid-slope) * 56), 80px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block-start: clamp(40px, calc(40px + var(--fluid-slope) * 40), 80px);
  display: grid;
}

@media (max-width: 768px) {
  .p-case__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .p-case__cards {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

.p-case__button {
  inline-size: 336px;
  max-inline-size: 100%;
  justify-items: stretch;
  margin-block-start: clamp(40px, calc(40px + var(--fluid-slope) * 40), 80px);
  margin-inline: auto;
  display: grid;
}

@media (max-width: 640px) {
  .u-hidden-max-sm {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .u-hidden-max-md {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  .u-hidden-max-lg {
    display: none !important;
  }
}

@media (max-width: 1280px) {
  .u-hidden-max-xl {
    display: none !important;
  }
}

@media not (max-width: 640px) {
  .u-hidden-min-sm {
    display: none !important;
  }
}

@media not (max-width: 768px) {
  .u-hidden-min-md {
    display: none !important;
  }
}

@media not (max-width: 1024px) {
  .u-hidden-min-lg {
    display: none !important;
  }
}

@media not (max-width: 1280px) {
  .u-hidden-min-xl {
    display: none !important;
  }
}

.u-hidden-all {
  display: none !important;
}

.u-border-b-none {
  border-block-end: none;
}

.u-border-r-none {
  border-inline-end: none;
}

.u-border-l-none {
  border-inline-start: none;
}

.u-border-t-none {
  border-block-start: none;
}
