@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;700&display=swap");
/*
 * Easing
 * https://easings.net/
 */
:root {
  --ja: "IBM Plex Sans JP", sans-serif;
  --en: "Akshar", sans-serif;
  --normal: 400;
  --medium: 500;
  --semibold: 600;
  --bold: 700;
  --base: #101a22;
  --white: #fff;
  --black: #000;
  --gray: #555;
  --blackop2: rgba(0, 0, 0, 0.2);
  --pink: #c94e97;
  --green: #25b1a8;
  --red: #be1e31;
  --ease: 0.8s cubic-bezier(0.09, 0.43, 0.1, 0.79);
  --opacity: 0.75;
  --scale: 1.03;
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  --bdrs: 0.8rem;
  --contents-width: 134rem;
  --solid: 1px solid rgba(0, 0, 0, 0.2);
  --solidbase: 1px solid var(--base);
  --space-section-md: ;
}

a {
  color: var(--base);
  text-decoration: none;
}

html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
figure,
textarea,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

ul {
  list-style: none;
}

button,
input,
select {
  margin: 0;
}

html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

img,
video {
  max-width: 100%;
  vertical-align: bottom;
}

iframe {
  border: 0;
}

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

td,
th {
  padding: 0;
}

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

fieldset {
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}

html {
  width: 100%;
  min-height: 100vh;
  font-size: 62.5%;
}

body {
  opacity: 0;
  transition: opacity 2s ease;
  font-family: var(--ja);
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  min-height: 100%;
  line-height: 1.75;
}

.container {
  margin-top: 10vw;
  padding: 0 calc(min(var(--vw, 1vw), var(--svh, 1vh)) * 32 / 384 * 100);
}

.container__inner {
  width: 100%;
}

@media screen and (min-width: 960px) {
  .container {
    padding: 0 calc(var(--vw, 1vw) * 128 / 1280 * 100);
  }
  .container__inner {
    max-width: 1280px;
  }
}
@media screen and (min-width: 1025px) {
  .lg-hide {
    display: none !important;
  }
  .lg-visible {
    display: inherit !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .md-hide {
    display: none !important;
  }
  .md-visible {
    display: inherit !important;
  }
}
@media screen and (max-width: 767px) {
  .sm-hide {
    display: none !important;
  }
  .sm-visible {
    display: inherit !important;
  }
}
.js-text span {
  opacity: 0;
  display: inline-block;
  -webkit-transform: translateY(60%);
  transform: translateY(60%);
}

.dummy {
  color: var(--red);
}

.wpcf7 .screen-reader-response {
  padding-bottom: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}

.wpcf7 .wpcf7-response-output,
.wpcf7 .screen-reader-response ul {
  display: none;
}

.wpcf7-not-valid-tip,
.wpcf7 .screen-reader-response {
  color: var(--red);
}

.form-btn input,
.js-confirm-btn,
.wpcf7-submit {
  cursor: pointer;
}

.js-confirm-btn:disabled,
.wpcf7-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  accent-color: var(--base);
}
.wpcf7-radio label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.wpcf7-spinner {
  display: none !important;
}

.wpcf7-list-item {
  margin-left: 0 !important;
}

.wpcf7-previous {
  display: inline-block !important;
}

.header {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1001;
  width: 100%;
  padding-left: 2rem;
  transition-duration: 0.3s;
  transition-property: height, border-bottom-color, background-color;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media screen and (max-width: 767px) {
  .header {
    height: 6rem;
  }
}
@media screen and (max-width: 1024px) {
  .header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .header {
    height: 8rem;
    padding-left: 3rem;
    padding-right: 3rem;
  }
}
@media screen and (min-width: 1025px) {
  .header {
    height: 9.4rem;
    padding-left: 5rem;
    padding-right: 5rem;
  }
}
.header-logo a {
  width: 15.496rem;
  height: 1.8rem;
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
  text-align: left top;
  background-color: var(--white);
  mask-position: left;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='198' height='23'%3E%3Cpath d='M18.918 8.018c-.791-1.962-2.007-2.943-4.385-3.659s-4.438.294-7.009 1.9-3.611.656-4.135-.307a4.707 4.707 0 0 1-.1-3.3c.278-.387 2.2-2.021.474-2.554s-2.256 1.16-2.502 1.841a6.449 6.449 0 0 0 1.148 6.242c.381.36.632.736.218 1.128-1.503 1.425-2.58 4.73-2.627 6.93a6.239 6.239 0 0 0 4.33 6.416c3.515 1.138 6.244-.737 8.061-2.747a12.678 12.678 0 0 0 2.413-5.44c-.043.444.229 1.747.94 1.39a15.962 15.962 0 0 0 3.276-3.286 6.052 6.052 0 0 0-.1-4.554m-7.574 8.521c-1.117 3.564-4.578 4.5-6.011 4.1s-3.6-1.791-3.271-5.6A6.2 6.2 0 0 1 5.736 9.67a6.514 6.514 0 0 1 2.955-.291c3.469.249 3.772 3.591 2.656 7.157m4.391-4.095c-.638.454-.965.482-1.118-.43a7.015 7.015 0 0 0-1.279-2.767c-.536-.675-1.365-.982-1.438-1.267-.15-.577-.1-.911.249-1.193a3.029 3.029 0 0 1 2.407-.788C16 6.086 16.852 7.35 17.3 9.339s-.921 2.652-1.559 3.106'/%3E%3Cpath d='M8.224 13.061a2.035 2.035 0 0 0 1.745-.055c.3-.33.936.6-.171.989a1.846 1.846 0 0 1-2.171-.439c-.213-.385.128-.935.6-.495M7.181 18.565a1.508 1.508 0 0 0 1.227-.4c.144-.3.79.235.084.737a1.364 1.364 0 0 1-1.632.136c-.23-.229-.1-.689.321-.474M4.083 12.675a1.37 1.37 0 0 0 1.295.11c.28-.192.687.44-.131.824a1.151 1.151 0 0 1-1.6-.439c-.157-.385.094-.934.44-.495M40.398 21.278V14.6a23.189 23.189 0 0 1-2.194 2.72 20.706 20.706 0 0 1-2.615 2.362 4.118 4.118 0 0 0-.336-.441q-.232-.275-.483-.525a3.054 3.054 0 0 0-.441-.378 16.636 16.636 0 0 0 2.092-1.701 22.347 22.347 0 0 0 1.953-2.11 20.845 20.845 0 0 0 1.585-2.216h-4.138v-1.68h4.578V7.922h-2.416a14.353 14.353 0 0 1-1.218 2.244 6.863 6.863 0 0 0-.8-.451 5.192 5.192 0 0 0-.819-.347 9.676 9.676 0 0 0 1-1.659 18.628 18.628 0 0 0 .872-2.1 10.775 10.775 0 0 0 .5-1.974l1.743.441q-.1.5-.273 1.061t-.357 1.144h1.764V2.186h1.806v4.095h4.053v1.638h-4.05v2.709h4.851v1.68h-4.452a19.19 19.19 0 0 0 1.386 1.984 20.673 20.673 0 0 0 1.785 1.985 13.71 13.71 0 0 0 1.974 1.617 4.836 4.836 0 0 0-.7.735 7.593 7.593 0 0 0-.6.819 19.913 19.913 0 0 1-2.333-2.282 19.446 19.446 0 0 1-1.911-2.583v6.7Zm-9.156.021v-8.988q-.521 1.092-1.121 2.079a16.251 16.251 0 0 1-1.189 1.722q-.147-.126-.431-.326t-.588-.378a4 4 0 0 0-.514-.262 14.444 14.444 0 0 0 1.176-1.565q.588-.892 1.113-1.879t.933-1.922a12.834 12.834 0 0 0 .619-1.691v-.123h-3.232v-1.68h3.234V2.275h1.827v4.011h2.646v1.68h-2.646v1.617q.357.5.945 1.218t1.218 1.384a11.891 11.891 0 0 0 1.089 1.05 4.246 4.246 0 0 0-.42.368q-.273.262-.536.525a3.669 3.669 0 0 0-.367.41q-.378-.4-.9-1.039t-1.029-1.314v9.114Zm34.4-.294a7.245 7.245 0 0 1-2.375-2.069 14.3 14.3 0 0 1-2.1-4.064 30.048 30.048 0 0 1-1.386-6.468h-9.849V6.577h9.681q-.084-1.008-.115-2.11t-.032-2.278h1.955q-.021 1.176 0 2.278t.1 2.11h3.885a15.8 15.8 0 0 0-1.354-1.481 10.862 10.862 0 0 0-1.431-1.206l1.26-1.239a9.739 9.739 0 0 1 1.061.819q.577.5 1.092 1.019a8.336 8.336 0 0 1 .809.913 3.18 3.18 0 0 0-.42.315q-.273.231-.525.472t-.4.389h2.877v1.827h-6.683a26.323 26.323 0 0 0 1.06 5.1 13.9 13.9 0 0 0 1.606 3.444 6.832 6.832 0 0 0 1.849 1.935q.294-.693.588-1.544a13.421 13.421 0 0 0 .42-1.418 3.716 3.716 0 0 0 .493.273q.346.168.7.315t.546.21a12.551 12.551 0 0 1-.41 1.428q-.262.756-.556 1.418a10.2 10.2 0 0 1-.542 1.082q-.588.987-1.806.357Zm-15.33-.5-.4-1.806q.672-.063 1.764-.22t2.331-.367v-5.024h-3.655v-1.743h8.969v1.743h-3.257v4.662q1.3-.231 2.436-.473t1.806-.41v1.764q-.756.189-1.785.42t-2.184.452q-1.155.221-2.289.42t-2.11.357q-.977.158-1.628.221Zm37.023.987a10.18 10.18 0 0 0-.726-1.126q-.452-.62-.977-1.25-.945.189-2.184.4t-2.6.4q-1.365.189-2.73.347t-2.576.28q-1.208.123-2.111.189l-.378-1.932q.483 0 1.145-.042t1.438-.105q.357-.546.767-1.281t.808-1.533q.4-.8.693-1.47h-5.691v-1.743h17.136v1.74h-9.2q-.441.966-1.029 2.068t-1.132 2.009q1.7-.168 3.4-.378t2.961-.42a15.377 15.377 0 0 0-1.806-1.743l1.449-1.155a13.1 13.1 0 0 1 1.218 1.081q.693.683 1.417 1.481t1.346 1.565q.619.767 1 1.334-.168.1-.514.357t-.661.5a3.759 3.759 0 0 0-.465.423Zm-15.5-10.567a3.867 3.867 0 0 0-.336-.525q-.231-.315-.483-.62a4.388 4.388 0 0 0-.441-.472 17.138 17.138 0 0 0 2.72-1.344 27.738 27.738 0 0 0 2.709-1.859 21.493 21.493 0 0 0 2.331-2.079A11.117 11.117 0 0 0 79.921 2l1.785.252a13.359 13.359 0 0 0 1.7 1.922 23.556 23.556 0 0 0 2.289 1.9 26.425 26.425 0 0 0 2.614 1.692 20.256 20.256 0 0 0 2.657 1.27q-.252.315-.609.83t-.63 1a25.859 25.859 0 0 1-3.3-1.8 26.278 26.278 0 0 1-3.182-2.373 17 17 0 0 1-2.467-2.615 13.165 13.165 0 0 1-1.722 1.932 25.856 25.856 0 0 1-2.31 1.922q-1.26.935-2.53 1.712a22.033 22.033 0 0 1-2.381 1.281Zm3.99-.378V8.783h9.954v1.764Zm24.822 9.912v-1.848h4.893v-8.022h-3.843V8.741h3.843V2.273h1.953v6.468h3.843v1.848h-3.843v8.022h4.494v1.848Zm-3.926.735v-7.728q-.714.693-1.5 1.323t-1.607 1.2a2.272 2.272 0 0 0-.367-.493q-.263-.283-.536-.546t-.441-.409a12.72 12.72 0 0 0 1.942-1.3 23.45 23.45 0 0 0 1.932-1.732 24.419 24.419 0 0 0 1.7-1.88 11 11 0 0 0 1.207-1.785h-5.649V6.101h3.255V2.279h1.864v3.822h2.226l.84.756a21.752 21.752 0 0 1-2.436 3.927q.546.357 1.2.777t1.26.777q.609.357.987.567a4.569 4.569 0 0 0-.357.431q-.231.3-.441.62t-.315.5q-.588-.4-1.376-.913t-1.52-1.043v8.694Zm18.816.147a5.562 5.562 0 0 0-.326-.588q-.221-.357-.473-.693a3.306 3.306 0 0 0-.42-.483 13.713 13.713 0 0 0 3.244-1.638 13.771 13.771 0 0 0 2.646-2.352 12.088 12.088 0 0 0 1.848-2.845 10.281 10.281 0 0 0 .892-3.119h-8.105V7.754h8.169v-5.46h2.016v5.46h8.19v1.869h-8.127a9.649 9.649 0 0 0 .924 3.066 12.832 12.832 0 0 0 1.89 2.835 14.675 14.675 0 0 0 2.636 2.362 13.333 13.333 0 0 0 3.18 1.649q-.168.189-.431.536t-.492.695a4.333 4.333 0 0 0-.336.577 19.477 19.477 0 0 1-3.5-2.132 16.408 16.408 0 0 1-2.961-2.909 12.609 12.609 0 0 1-1.98-3.571 12.327 12.327 0 0 1-2 3.612 16.241 16.241 0 0 1-2.982 2.9 19.22 19.22 0 0 1-3.503 2.098Zm24.884-.231v-7.959h10.689v7.959Zm-3.528-6.2a4.3 4.3 0 0 0-.346-.546q-.242-.336-.493-.651a1.931 1.931 0 0 0-.42-.42 19.644 19.644 0 0 0 2.951-1.47 21.494 21.494 0 0 0 2.636-1.88 17.5 17.5 0 0 0 2.142-2.11 11.229 11.229 0 0 0 1.449-2.121l1.722.315a12.906 12.906 0 0 0 2.394 2.846 19.984 19.984 0 0 0 3.286 2.415 19.317 19.317 0 0 0 3.581 1.67 3.14 3.14 0 0 0-.42.493q-.252.347-.472.7a5.081 5.081 0 0 0-.3.546 23.955 23.955 0 0 1-3.318-1.69 23.2 23.2 0 0 1-3.15-2.289 15.453 15.453 0 0 1-2.478-2.677 15.032 15.032 0 0 1-2.215 2.52 24.567 24.567 0 0 1-3.066 2.415 23.32 23.32 0 0 1-3.483 1.939Zm5.523 4.389h6.678v-4.342h-6.678Zm10.983-11.55a22.267 22.267 0 0 1-2.005-1.1q-1.082-.661-2.132-1.428a21.115 21.115 0 0 1-1.89-1.543l1.365-1.281a22.473 22.473 0 0 0 1.816 1.417q1 .7 2.048 1.3a20.993 20.993 0 0 0 2.016 1.019 4.019 4.019 0 0 0-.441.483q-.252.315-.462.63t-.315.508Zm-15.246.126a5.473 5.473 0 0 0-.535-.8 5.185 5.185 0 0 0-.661-.714 15.576 15.576 0 0 0 1.974-1.092 15.932 15.932 0 0 0 1.9-1.438 11.2 11.2 0 0 0 1.5-1.586l1.491 1.176a18.534 18.534 0 0 1-2.677 2.531 18 18 0 0 1-2.992 1.928Zm28.917 13.4v-9.87h8.463v8.025a1.816 1.816 0 0 1-.493 1.376 2.236 2.236 0 0 1-1.585.472h-1.428a8.378 8.378 0 0 0-.116-.9 3.932 3.932 0 0 0-.22-.84h1.386a.727.727 0 0 0 .546-.147.78.78 0 0 0 .126-.5v-1.162h-4.914v3.549Zm-5.964-.021v-7.62q-.63 1.218-1.312 2.289a16.7 16.7 0 0 1-1.228 1.722 2.5 2.5 0 0 0-.368-.378q-.263-.231-.546-.452a3.91 3.91 0 0 0-.472-.325 11.128 11.128 0 0 0 1.27-1.575q.661-.966 1.271-2.079a16.728 16.728 0 0 0 1.008-2.184h-2.73v-1.68h3.108V2.294h1.743v6.678h2.73v1.68h-2.73v.525q.315.567.84 1.323t1.1 1.459q.577.7 1 1.145-.147.105-.42.336t-.514.462a2.935 2.935 0 0 0-.346.378 21.868 21.868 0 0 1-1.659-2.373v7.35Zm4.915-10.833V8.909h4.263V7.775h-3.381V6.347h3.381V5.255h-3.843v-1.47h3.843V2.294h1.869v1.491h3.99v1.47h-3.99v1.092h3.381v1.428h-3.381v1.134h4.557v1.512Zm-1.512-2.1q-.147-.084-.43-.22t-.577-.262a1.862 1.862 0 0 0-.462-.147 10.2 10.2 0 0 0 .557-1.113q.3-.693.577-1.438a8.878 8.878 0 0 0 .378-1.271l1.575.462q-.147.5-.441 1.3t-.619 1.543a11.943 11.943 0 0 1-.559 1.146Zm-5.208-.084a11 11 0 0 0-.388-1.2q-.263-.693-.557-1.355a9.3 9.3 0 0 0-.567-1.1l1.491-.63a11.769 11.769 0 0 1 .577 1.134q.325.714.609 1.418t.41 1.144a4.682 4.682 0 0 0-.515.158q-.325.116-.619.231a3.594 3.594 0 0 0-.442.2Zm9.534 8.148h4.914v-1.113h-4.914Zm0-2.457h4.914v-1.092h-4.914Zm10.772 5.544v-1.869h8.3V6.557h-7.1V4.688h16.254v1.869h-7.08v11.046h8.295v1.869Z'/%3E%3C/svg%3E");
}
@media screen and (min-width: 768px) {
  .header-logo a {
    width: 17.217rem;
    height: 2rem;
  }
}
@media screen and (min-width: 1025px) {
  .header-logo a {
    width: 19.8rem;
    height: 2.3rem;
  }
}
.header-logo a.is-hover:hover {
  opacity: 0.7;
}
.header-content {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
@media screen and (max-width: 767px) {
  .header-nav {
    display: none;
  }
}
@media screen and (min-width: 1025px) {
  .header-nav {
    display: flex;
    align-items: center;
  }
}
.header-nav-main {
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .header-nav-main li:not(:last-of-type) {
    margin-right: 3rem;
  }
}
@media screen and (min-width: 1025px) {
  .header-nav-main li:not(:last-of-type) {
    margin-right: 4rem;
  }
}
.header-nav-main li:last-of-type a {
  padding: 0.7rem 1.7rem;
  border: 1px solid var(--white);
  border-radius: 9999rem;
  color: #fff;
}
@media (any-hover: hover) {
  .header-nav-main li:last-of-type a {
    transition: color 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  }
  .header-nav-main li:last-of-type a:hover {
    color: var(--base);
  }
  .header-nav-main li:last-of-type a:hover .header-nav-btn-bg {
    scale: 1;
  }
}
.header-nav-main a {
  position: relative;
  display: inline-block;
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  font-weight: var(--medium);
  color: var(--white);
  text-decoration: none;
  letter-spacing: 0.1rem;
  line-height: 1;
  z-index: 10;
  overflow: hidden;
}
@media (any-hover: hover) {
  .header-nav-main a:hover span {
    translate: 0 -1em;
  }
}
.header-nav-main a span {
  display: inline-block;
  translate: 0 0;
  text-shadow: 0 1em 0 currentColor;
}
.header-nav-main a span:nth-child(1) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0s;
}
.header-nav-main a span:nth-child(2) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.1s;
}
.header-nav-main a span:nth-child(3) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.2s;
}
.header-nav-main a span:nth-child(4) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.3s;
}
.header-nav-main a span:nth-child(5) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
}
.header-nav-main a span:nth-child(6) {
  transition: translate 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.5s;
}
.header.headerColorScroll {
  background-color: var(--white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.header.headerColorScroll .header-logo a {
  transition: color 0.4s ease-out;
  background-color: var(--base);
}
.header.headerColorScroll .header-nav-main a {
  color: var(--black);
  transition: background-image 0.4s ease-out;
}
.header.headerColorScroll .header-nav-main li:last-of-type a {
  background-color: var(--white);
  border-color: var(--base);
  color: var(--base);
}
.header.headerColorScroll .header-nav-main li:last-of-type a .header-nav-btn-bg {
  background-color: var(--base);
}
.header.headerColorScroll .header-nav-main li:last-of-type a:hover {
  color: var(--white);
}

.header-nav-btn-bg {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 300px;
  height: auto;
  aspect-ratio: 1;
  background-color: var(--white);
  border-radius: 50%;
  scale: 0;
  transform-origin: center center;
  margin-top: -150px;
  margin-left: -150px;
  transition: scale 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

.nav {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  background-color: var(--base);
  -webkit-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  transition: -webkit-transform 460ms cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 460ms cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 460ms cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 460ms cubic-bezier(0.165, 0.84, 0.44, 1);
  overflow: auto;
  padding: 10rem 10vw;
}
.nav a {
  color: var(--white);
}
.nav a.is-hover:hover {
  opacity: 0.5;
}
.nav.is-open {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.nav.is-open .nav-main li:nth-of-type(1) a::after {
  transition-delay: 310ms;
}
.nav.is-open .nav-main li:nth-of-type(2) a::after {
  transition-delay: 340ms;
}
.nav.is-open .nav-main li:nth-of-type(3) a::after {
  transition-delay: 370ms;
}
.nav.is-open .nav-main li:nth-of-type(4) a::after {
  transition-delay: 400ms;
}
.nav.is-open .nav-main li:nth-of-type(5) a::after {
  transition-delay: 430ms;
}
.nav.is-open .nav-main a::after {
  width: 0;
  right: 0;
  left: auto;
}
.nav.is-open .nav-sub::before, .nav.is-open .nav-sub::after {
  width: 100%;
  right: auto;
  left: 0;
  transition-delay: 310ms;
}
.nav.is-open .nav-sub li {
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.nav.is-open .nav-sub li:nth-of-type(1) {
  transition-delay: 310ms;
}
.nav.is-open .nav-sub li:nth-of-type(2) {
  transition-delay: 350ms;
}
.nav.is-open .nav-sub li:nth-of-type(3) {
  transition-delay: 390ms;
}
.nav-btn {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1001;
  width: 6rem;
  height: 6rem;
}
@media screen and (min-width: 768px) {
  .nav-btn {
    display: none;
  }
}
.nav-btn a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: var(--black);
  cursor: pointer;
  transition: background-color 370ms cubic-bezier(0.165, 0.84, 0.44, 1);
}
.nav-btn a.is-hover:hover {
  opacity: 0.8;
}
.nav-btn a.is-open {
  background-color: var(--base);
}
.nav-btn a.is-open span:nth-of-type(1) {
  -webkit-transform: translate3d(0, 4px, 0) rotate(45deg);
  transform: translate3d(0, 4px, 0) rotate(45deg);
}
.nav-btn a.is-open span:nth-of-type(2) {
  -webkit-transform: translate3d(0, -4px, 0) rotate(-45deg);
  transform: translate3d(0, -4px, 0) rotate(-45deg);
}
.nav-btn span {
  display: block;
  background-color: var(--white);
  transition: var(--ease);
  width: 2.5rem;
  height: 0.125rem;
  margin: 0.3rem 0;
}
.nav-main {
  margin-bottom: 60px;
}
.nav-main > li:not(:last-of-type) {
  margin-bottom: 15px;
}
.nav-main a {
  position: relative;
  display: inline-block;
  line-height: 1;
  font-size: 2.5rem;
  padding: 0.4em 0;
}
.nav-main a::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--base);
  position: absolute;
  top: 0;
  right: auto;
  left: 0;
  transition: width 360ms cubic-bezier(0.165, 0.84, 0.44, 1);
}
.nav-main a span {
  vertical-align: middle;
}
.nav-main-ja {
  font-weight: var(--medium);
  font-size: 2.2rem;
  letter-spacing: 0.025em;
}
.nav-main-en {
  font-family: var(--en);
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.05em;
}
.nav-sub {
  position: relative;
  display: flex;
  align-items: center;
  padding: 3rem 0;
  margin-bottom: 6rem;
}
.nav-sub::before, .nav-sub::after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.4);
  position: absolute;
  right: 0;
  left: auto;
  transition: width 360ms cubic-bezier(0.165, 0.84, 0.44, 1);
}
.nav-sub::before {
  top: 0;
}
.nav-sub::after {
  bottom: 0;
}
.nav-sub li {
  opacity: 0;
  -webkit-transform: translate3d(0, 6px, 0);
  transform: translate3d(0, 6px, 0);
  transition: 450ms cubic-bezier(0.165, 0.84, 0.44, 1);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
}
.nav-sub li:not(:last-of-type) {
  margin-right: 13.5%;
}
.nav-sub a {
  display: block;
  font-size: 1.5rem;
  line-height: 1;
  padding: 0.2em 0;
}

.footer-contact-inner {
  position: relative;
  max-width: var(--contents-width);
  margin-inline: auto;
  padding-top: clamp(5rem, -1.667rem + 8.681vw, 15rem);
}
.footer-contact-title {
  text-align: center;
}
.footer-contact-title p {
  line-height: 0.75;
}
.footer-contact-title h2 {
  padding-top: 0.5em;
  padding-left: 0.25em;
  font-weight: var(--medium);
  font-size: clamp(1.4rem, 1.1333333333rem + 0.3472222222vw, 1.8rem);
}
.footer-contact-list {
  position: relative;
  width: 80%;
  margin-inline: auto;
  margin-top: 5vw;
  background-color: var(--white);
  text-align: center;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .footer-contact-list::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 100%;
    background-color: rgba(16, 26, 34, 0.2);
  }
}
@media screen and (min-width: 768px) {
  .footer-contact-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15rem;
  }
}
.footer-contact-list li:first-child a {
  font-size: clamp(2rem, 1.0666666667rem + 1.2152777778vw, 3.4rem);
  font-weight: var(--medium);
}
.footer-contact-list li:first-child span {
  display: block;
  font-size: clamp(1rem, 0.8666666667rem + 0.1736111111vw, 1.2rem);
}
@media screen and (max-width: 767px) {
  .footer-contact-list li:last-child {
    margin-top: 2.5rem;
    padding-top: 2.5rem;
    border-top: 1px dotted rgba(16, 26, 34, 0.2);
  }
}
.footer-contact-head {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2vw;
  font-weight: var(--medium);
  font-size: clamp(1.6rem, 1.2rem + 0.5208333333vw, 2.2rem);
}
.footer-contact-head-tel::before {
  content: "";
  display: inline-block;
  width: 1.7rem;
  height: 2.4rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='24'%3E%3Cpath fill='%23101a22' d='m16.614 18.466-3.81-3.108a.968.968 0 0 0-1.163-.045l-2.597 1.8a14.956 14.956 0 0 1-4.902-8.844L7.044 7.02a.966.966 0 0 0 .58-1.014l-.617-4.873a.975.975 0 0 0-.913-.845l-4.3-.226a.968.968 0 0 0-.982.7 18.72 18.72 0 0 0 12.836 23.157.968.968 0 0 0 1.115-.462l2.088-3.77a.98.98 0 0 0-.237-1.22Z'/%3E%3C/svg%3E");
}
.footer-contact-head-mail::before {
  content: "";
  display: inline-block;
  width: 3rem;
  height: 2.4rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='24'%3E%3Cpath fill='%23101a22' d='M27 0H3A3 3 0 0 0 .015 3L0 21a3.009 3.009 0 0 0 3 3h24a3.009 3.009 0 0 0 3-3V3a3.009 3.009 0 0 0-3-3Zm0 6-12 7.5L3 6V3l12 7.5L27 3Z'/%3E%3C/svg%3E");
}

.footer-bottom {
  position: relative;
  padding-inline: 5%;
  background: url(../img/common/footer-bg.jpg) no-repeat center center/cover;
}
.footer-bottom::before {
  content: "";
  position: absolute;
  top: 0;
  left: 5%;
  background-color: var(--white);
  width: 90%;
  height: clamp(2.5rem, -2.5rem + 6.51vw, 10rem);
  z-index: 3;
}
.footer-bottom::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  z-index: 2;
}
.footer-bottom-img {
  position: absolute;
  top: 0;
  left: 0;
}
.footer-bottom-inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-top: clamp(10rem, 0rem + 13.021vw, 25rem);
  z-index: 4;
}
@media screen and (max-width: 767px) {
  .footer-bottom-inner {
    justify-content: flex-end;
  }
}
.footer-bottom-copy {
  font-size: clamp(2.8rem, 1.3333333333rem + 1.9097222222vw, 5rem);
  font-weight: var(--medium);
  color: var(--white);
  writing-mode: vertical-rl;
  letter-spacing: 0.22em;
}
.footer-bottom-copyright {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: clamp(5rem, -1.667rem + 8.681vw, 15rem);
  padding-block: clamp(4rem, 1.333rem + 3.472vw, 8rem);
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  font-size: clamp(1rem, 0.8666666667rem + 0.1736111111vw, 1.2rem);
  color: var(--white);
  z-index: 4;
}
.footer-bottom-copyright a {
  color: var(--white);
}
.footer-nav {
  display: flex;
  gap: 1.5vw;
}
@media screen and (max-width: 767px) {
  .footer-nav {
    display: none;
  }
}
.footer-nav li a {
  font-weight: var(--medium);
  writing-mode: vertical-rl;
  color: var(--white);
  letter-spacing: 0.22em;
}

.kv {
  position: relative;
  width: 100%;
  height: 100vh;
}
.kv-container {
  width: 100vw;
  height: 100vh;
  height: var(--app-height);
  overflow: hidden;
  position: relative;
}
.kv-video {
  position: relative;
  width: 100%;
  height: 100%;
}
.kv-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kv-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
.kv-copy {
  position: absolute;
  bottom: 3vw;
  left: 5vw;
  color: var(--white);
}
.kv-copy-en {
  font-size: clamp(4rem, 1.3333333333rem + 3.4722222222vw, 8rem);
  line-height: 1.5;
}
.kv-copy-ja {
  font-size: clamp(3rem, 1rem + 2.6041666667vw, 6rem);
  letter-spacing: 0.15rem;
}
.kv .sld {
  position: absolute;
  bottom: 0;
  right: 3vw;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.kv .sld span {
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 1rem 16.5rem;
  line-height: 1;
  font-size: clamp(1rem, 0.8666666667rem + 0.1736111111vw, 1.2rem);
  color: var(--white);
  text-transform: uppercase;
  writing-mode: vertical-lr;
}
.kv .sld span em {
  overflow: hidden;
  position: absolute;
  top: 7rem;
  left: 50%;
  width: 1px;
  height: 15rem;
}
.kv .sld span em::before, .kv .sld span em::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
}
.kv .sld span em::before {
  background-color: rgba(255, 255, 255, 0.5);
  height: 15rem;
  z-index: 2;
}
.kv .sld span em::after {
  background-color: rgb(255, 255, 255);
  height: 3rem;
  z-index: 3;
  animation: sld 1.75s ease infinite;
}

@keyframes sld {
  0% {
    transform: translateY(-70px);
  }
  100% {
    transform: translateY(150px);
  }
}
.top-title p {
  font-size: clamp(5rem, 1rem + 5.2083333333vw, 11rem);
}
.top-title h2 {
  padding-top: 0.5em;
  padding-left: 0.25em;
  font-weight: var(--medium);
  font-size: clamp(1.6rem, 1.2rem + 0.5208333333vw, 2.2rem);
}

.who {
  display: flex;
  padding: 10vw 5vw;
}
@media screen and (max-width: 767px) {
  .who {
    flex-direction: column;
  }
}
@media screen and (min-width: 768px) {
  .who {
    justify-content: space-between;
    align-items: center;
    max-width: var(--contents-width);
    margin-inline: auto;
  }
}
@media screen and (max-width: 767px) {
  .who-main {
    order: 2;
    padding-top: 2rem;
  }
}
.who-main h3 {
  font-size: clamp(1.8rem, 1.4rem + 0.5208333333vw, 2.4rem);
  font-weight: var(--medium);
}
.who-main p {
  padding-top: clamp(2rem, 1.333rem + 0.868vw, 3rem);
  padding-bottom: clamp(3rem, 2.333rem + 0.868vw, 4rem);
}
@media screen and (max-width: 767px) {
  .who-title {
    order: 1;
  }
}
@media screen and (min-width: 768px) {
  .who-title {
    text-align: right;
  }
}
.who-title p {
  line-height: 0.75;
}
.who div:first-child {
  flex-shrink: 0;
}
.loop {
  overflow: hidden;
}

.group {
  display: flex;
  animation: loop 25s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  transform: translateZ(0);
  column-gap: 2rem;
}
@media screen and (min-width: 768px) {
  .group {
    column-gap: 4rem;
    padding-right: 4rem;
  }
}
.group img {
  width: 21rem;
}
@media screen and (min-width: 768px) {
  .group img {
    width: 30rem;
  }
}
@media screen and (min-width: 1025px) {
  .group img {
    width: 42rem;
  }
}

@keyframes loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(var(--loop-distance));
  }
}
.link a {
  display: inline-flex;
  width: 100%;
  position: relative;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  border-top: 1px solid rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  font-weight: var(--medium);
}
.link a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.link a:hover::after {
  right: 0;
}

.btn a {
  display: inline-flex;
  position: relative;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-left: clamp(1rem, 0.333rem + 0.868vw, 2rem);
  padding-right: clamp(3rem, 1rem + 2.604vw, 6rem);
  border: 1px solid var(--base);
  font-weight: var(--medium);
  line-height: 1;
  transition: var(--ease);
}
.btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.btn-base a {
  background-color: var(--base);
  border: var(--solidbase);
  color: var(--white);
}
.btn-base a::after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23ffffff' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
}
.btn-base a:hover {
  background-color: var(--white);
  color: var(--base);
}
.btn-base a:hover::after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
}

main {
  overflow-x: hidden;
}

.business {
  position: relative;
  margin-top: 10vw;
  background-color: var(--base);
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .business {
    display: flex;
    justify-content: space-between;
  }
}
.business-bearing {
  position: absolute;
  height: auto;
}
@media screen and (max-width: 767px) {
  .business-bearing {
    top: -18rem;
    right: -18rem;
    width: 36rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .business-bearing {
    top: -30rem;
    left: -30rem;
    width: 60rem;
  }
}
@media screen and (min-width: 1025px) {
  .business-bearing {
    top: -36.75rem;
    left: -36.75rem;
    width: 73.5rem;
  }
}
.business-main {
  position: relative;
  padding: 10vw 5vw;
}
@media screen and (min-width: 768px) {
  .business-main {
    width: 55%;
    flex-shrink: 0;
    padding: 5vw;
  }
}
@media screen and (min-width: 1025px) {
  .business-main {
    width: 50%;
    padding: 5vw 10vw;
  }
}
.business-image {
  position: relative;
  background: url(../img/top/business.jpg) no-repeat center center/cover;
}
@media screen and (max-width: 767px) {
  .business-image {
    height: 50vw;
  }
}
@media screen and (min-width: 768px) {
  .business-image {
    width: 45%;
  }
}
@media screen and (min-width: 1025px) {
  .business-image {
    width: 50%;
  }
}
.business-image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
}
.business-title p {
  color: var(--white);
  line-height: 1;
}
.business-title h2 {
  color: var(--white);
}
.business-copy {
  padding-block: clamp(2rem, 0rem + 2.604vw, 5rem);
  color: var(--white);
}
.business-list {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
@media screen and (max-width: 767px) {
  .business-list {
    margin-top: 1rem;
  }
}
.business-list li a {
  display: inline-flex;
  width: 100%;
  position: relative;
  padding-block: clamp(1.5rem, 1.167rem + 0.434vw, 2rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.business-list li a figure {
  display: flex;
  align-items: center;
}
.business-list li a figure img {
  width: 6rem;
  height: auto;
  margin-right: 2vw;
}
@media screen and (min-width: 768px) {
  .business-list li a figure img {
    width: 8rem;
  }
}
.business-list li a figure figcaption {
  color: var(--white);
}
.business-list li a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23ffffff' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.business-list li a:hover::after {
  right: 0;
}

.factory {
  position: relative;
  margin-inline: auto;
  background-color: rgb(239, 243, 248);
}
@media screen and (min-width: 768px) {
  .factory {
    max-width: 192rem;
    height: 89rem;
  }
}
.factory-bg {
  position: absolute;
  inset: 0;
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .factory-bg {
    left: -25rem;
  }
}
.factory-bg img {
  position: relative;
  left: 0;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .factory-bg img {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .factory-bg img {
    width: 192rem;
    max-width: 192rem;
    height: 92.5rem;
  }
}
.factory-inner {
  position: relative;
}
@media screen and (max-width: 767px) {
  .factory-inner {
    padding: 15vw 5vw;
  }
}
@media screen and (min-width: 768px) {
  .factory-title {
    position: absolute;
    top: 6vw;
    right: 5vw;
    text-align: right;
  }
}
@media screen and (min-width: 1025px) {
  .factory-title {
    right: 12.5vw;
  }
}
.factory-title p {
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .factory-lead {
    margin-top: 5vw;
  }
}
@media screen and (min-width: 768px) {
  .factory-lead {
    position: absolute;
    bottom: 5vw;
    right: 5vw;
    text-align: right;
  }
}
@media screen and (min-width: 1025px) {
  .factory-lead {
    right: 12.5vw;
  }
}
.factory-list li {
  background-color: var(--base);
}
@media screen and (max-width: 767px) {
  .factory-list li {
    margin-top: 10vw;
  }
}
@media screen and (min-width: 768px) {
  .factory-list li {
    position: absolute;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .factory-list li {
    width: 25rem;
  }
}
@media screen and (min-width: 1401px) {
  .factory-list li {
    width: 30rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .factory-list li:nth-child(1) {
    top: 20rem;
    left: 20rem;
  }
}
@media screen and (min-width: 1401px) {
  .factory-list li:nth-child(1) {
    top: 10rem;
    left: 45rem;
  }
}
@media screen and (min-width: 768px) {
  .factory-list li:nth-child(1)::before {
    content: "";
    display: block;
    position: absolute;
    left: -9.8rem;
    border: solid var(--base);
    border-width: 2px 0 0 2px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .factory-list li:nth-child(1)::before {
    top: 10rem;
    width: 10rem;
    height: 27rem;
  }
}
@media screen and (min-width: 1401px) {
  .factory-list li:nth-child(1)::before {
    top: 15rem;
    width: 10rem;
    height: 32rem;
  }
}
@media screen and (min-width: 768px) {
  .factory-list li:nth-child(2) {
    top: 50rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1400px) {
  .factory-list li:nth-child(2) {
    left: 30rem;
  }
}
@media screen and (min-width: 1401px) {
  .factory-list li:nth-child(2) {
    left: 55rem;
  }
}
@media screen and (min-width: 768px) {
  .factory-list li:nth-child(2)::before {
    content: "";
    display: block;
    position: absolute;
    top: 12rem;
    left: -19.4rem;
    width: 20rem;
    height: 7rem;
    border: solid var(--base);
    border-width: 0 0 2px 2px;
  }
}
.factory-list li a:hover .factory-text::after {
  right: 1vw;
}
.factory-text {
  position: relative;
  padding: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  background-color: #f3f3f3;
}
.factory-text::after {
  content: "";
  position: absolute;
  bottom: clamp(1.5rem, -0.5rem + 2.604vw, 4.5rem);
  right: 2vw;
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.factory-text p {
  font-size: clamp(1.8rem, 1.5333333333rem + 0.3472222222vw, 2.2rem);
  font-weight: var(--medium);
}

.recruit {
  background: linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(239, 243, 248) 100%);
}
.recruit-inner {
  position: relative;
}
@media screen and (max-width: 767px) {
  .recruit-inner {
    padding: 10vw 5vw;
  }
}
@media screen and (min-width: 768px) {
  .recruit-inner {
    display: grid;
    grid-template-columns: clamp(460px, 33vw, 560px) 1fr;
    width: 90%;
    max-width: 1340px;
    margin-inline: auto;
    padding-top: 10vw;
    padding-bottom: 10vw;
    column-gap: 8vw;
  }
}
.recruit-main {
  grid-row: 1;
  grid-column: 1;
}
.recruit-image {
  position: relative;
  grid-row: 1;
  grid-column: 2;
}
@media screen and (max-width: 767px) {
  .recruit-image {
    top: 10vw;
  }
}
.recruit-image img:nth-child(1) {
  width: 80%;
}
@media screen and (min-width: 768px) {
  .recruit-image img:nth-child(1) {
    position: absolute;
    left: 0;
  }
}
.recruit-image img:nth-child(2) {
  position: absolute;
  width: 40%;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .recruit-image img:nth-child(2) {
    bottom: 2rem;
    right: 0;
  }
}
@media screen and (min-width: 768px) {
  .recruit-image img:nth-child(2) {
    bottom: -10%;
    right: -5%;
  }
}
.recruit-title p {
  line-height: 0.75;
}
.recruit-title h2 {
  padding-top: 0.5em;
  padding-left: 0.25em;
  font-weight: var(--medium);
  font-size: clamp(1.4rem, 1.1333333333rem + 0.3472222222vw, 1.8rem);
}
.recruit h3 {
  padding-top: 1.5vw;
  font-size: clamp(1.8rem, 1.4rem + 0.5208333333vw, 2.4rem);
  font-weight: var(--medium);
}
.recruit-copy {
  padding-top: 3.5vw;
  padding-bottom: 5vw;
}
@media screen and (min-width: 768px) {
  .recruit-copy {
    padding-top: 1.5vw;
    padding-bottom: 2vw;
  }
}

.lower-head {
  position: relative;
  overflow: hidden;
}
.lower-head-img {
  position: relative;
}
.lower-head-img picture {
  position: relative;
  display: block;
  height: 100%;
}
.lower-head-img picture::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
.lower-head-img picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.15);
  will-change: opacity, transform;
}
.lower-head-inner {
  position: absolute;
  bottom: 5%;
  left: 5%;
  width: 90%;
}
@media screen and (min-width: 768px) {
  .lower-head-inner {
    bottom: 15%;
    display: flex;
    justify-content: space-between;
  }
}
.lower-head-title p {
  font-size: clamp(5rem, 2.3333333333rem + 3.4722222222vw, 9rem);
  color: var(--white);
  line-height: 1;
}
.lower-head-title h2 {
  padding-top: 0.5em;
  padding-left: 0.25em;
  font-weight: var(--medium);
  font-size: clamp(1.4rem, 1.1333333333rem + 0.3472222222vw, 1.8rem);
  color: var(--white);
}
.lower-head-overlay {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.65);
  -webkit-backdrop-filter: blur(50px);
  backdrop-filter: blur(50px);
  will-change: opacity;
}
.lower-head-nav {
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 767px) {
  .lower-head-nav {
    display: none;
  }
}
.lower-head-nav ul {
  display: flex;
  gap: 2rem;
}
.lower-head-nav ul li a {
  position: relative;
  padding-left: 2rem;
  font-weight: var(--medium);
  color: var(--white);
}
.lower-head-nav ul li a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 12px;
  height: 8px;
  margin: auto;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.section-container {
  width: 90%;
  max-width: 1340px;
  margin-top: 10vw;
  margin-inline: auto;
}
.section-block {
  margin-bottom: clamp(5rem, -1.667rem + 8.681vw, 15rem);
}
@media screen and (min-width: 768px) {
  .section-block {
    display: flex;
  }
}
.section-block-space {
  margin-top: clamp(5rem, -1.667rem + 8.681vw, 15rem);
}
@media screen and (min-width: 768px) {
  .section-title {
    width: 28vw;
  }
}
@media screen and (min-width: 768px) {
  .section-title-small {
    width: 24vw;
  }
}
.section-title p {
  font-size: clamp(4.2rem, 2.3333333333rem + 2.4305555556vw, 7rem);
  line-height: 1;
}
.section-title h3 {
  padding-top: 0.5em;
  padding-left: 0.25em;
  font-weight: var(--medium);
  font-size: clamp(1.4rem, 0.8666666667rem + 0.6944444444vw, 2.2rem);
}
.section-content {
  flex: 1 0 0;
}
@media screen and (max-width: 767px) {
  .section-content {
    margin-top: 2rem;
  }
}

.p-recruit-photo {
  margin-bottom: clamp(5rem, -1.667rem + 8.681vw, 15rem);
  display: flex;
  gap: 1rem;
}
@media screen and (min-width: 768px) {
  .p-recruit-photo {
    gap: 3rem;
  }
}
@media screen and (min-width: 1025px) {
  .p-recruit-photo {
    gap: 10rem;
  }
}
.p-recruit-photo li {
  width: 12rem;
}
.p-recruit-photo li:nth-child(even) {
  padding-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-recruit-photo li {
    width: 15rem;
  }
}
@media screen and (min-width: 1025px) {
  .p-recruit-photo li {
    width: 30rem;
  }
}

.company-about h4 {
  padding-bottom: 2vw;
  font-size: clamp(1.8rem, 1.1333333333rem + 0.8680555556vw, 2.8rem);
  font-weight: var(--medium);
}
.company-greeting h4 {
  padding-bottom: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  font-size: clamp(1.8rem, 1.1333333333rem + 0.8680555556vw, 2.8rem);
  font-weight: var(--medium);
}
@media screen and (min-width: 768px) {
  .company-greeting-grid {
    display: flex;
    justify-content: space-between;
    gap: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
  }
}
@media screen and (min-width: 768px) {
  .company-greeting-text {
    width: 58%;
  }
}
.company-greeting-text p {
  padding-top: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
}
.company-greeting-text p:first-of-type {
  padding-top: 0;
}
@media screen and (max-width: 767px) {
  .company-greeting-photo {
    margin-top: 2.5rem;
  }
}
@media screen and (min-width: 768px) {
  .company-greeting-photo {
    width: 40%;
  }
}
.company-greeting-photo p {
  padding-top: 0.5vw;
  text-align: right;
}
.company-greeting-photo p span {
  padding-left: 1vw;
}
.company-outline {
  width: 100%;
  border-bottom: var(--solid);
}
@media screen and (min-width: 768px) {
  .company-outline {
    display: flex;
    flex-wrap: wrap;
  }
}
@media screen and (min-width: 768px) {
  .company-outline dt,
  .company-outline dd {
    padding-block: clamp(2rem, 0.667rem + 1.736vw, 4rem);
    border-top: var(--solid);
  }
}
.company-outline dt {
  font-weight: var(--medium);
}
@media screen and (max-width: 767px) {
  .company-outline dt {
    padding-top: 2rem;
    border-top: var(--solid);
  }
}
@media screen and (min-width: 768px) {
  .company-outline dt {
    width: 16rem;
  }
}
@media screen and (max-width: 767px) {
  .company-outline dd {
    padding-top: 1rem;
    padding-bottom: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .company-outline dd {
    width: calc(100% - 16rem);
  }
}
.company-outline .cols {
  display: flex;
}
.company-outline .cols-bank .col:first-child {
  width: 10rem;
}
.company-outline .cols-business .col:first-child {
  width: 5rem;
}
.company-outline .cols .col:last-child {
  flex: 1 0 0;
}
.company-outline .cols + .cols {
  margin-top: clamp(1rem, 0.333rem + 0.868vw, 2rem);
}
.company-factory {
  display: flex;
  flex-direction: column;
  row-gap: clamp(4rem, 1.333rem + 3.472vw, 8rem);
}
@media screen and (min-width: 768px) {
  .company-factory-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3vw;
  }
}
.company-factory-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(2rem, 0.667rem + 1.736vw, 4rem);
  padding-block: clamp(1.5rem, 1.167rem + 0.434vw, 2rem);
  border-bottom: var(--solid);
}
@media screen and (min-width: 768px) {
  .company-factory-title {
    border-top: var(--solid);
  }
}
.company-factory-title h4 {
  font-size: clamp(1.6rem, 1.2rem + 0.5208333333vw, 2.2rem);
  font-weight: var(--medium);
  line-height: 1.4;
}
.company-factory-title a {
  position: relative;
  padding-right: 5rem;
}
.company-factory-title a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.company-factory-title a:hover::after {
  right: 0.5vw;
}
.company-factory-access {
  padding-top: clamp(1rem, 0.333rem + 0.868vw, 2rem);
}
.company-factory-access dt {
  font-weight: var(--medium);
}
.company-history li dl {
  display: flex;
  justify-content: space-between;
}
.company-history li dl dt {
  position: relative;
  width: clamp(6.5rem, 5.167rem + 1.736vw, 8.5rem);
  padding-top: 0.75rem;
  padding-right: clamp(5rem, 1.667rem + 4.34vw, 10rem);
  font-size: clamp(1.6rem, 1.3333333333rem + 0.3472222222vw, 2rem);
  font-weight: 500;
  text-align: right;
  line-height: 1;
}
.company-history li dl dt::before {
  content: "";
  position: absolute;
  top: 1.1rem;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: var(--blackop2);
}
.company-history li dl dt::after {
  content: "";
  position: absolute;
  top: 1rem;
  right: -0.5rem;
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  background-color: var(--black);
  border-radius: 0.6rem;
}
.company-history li dl dt span {
  position: absolute;
  top: 3em;
  left: 0;
  font-weight: var(--normal);
  text-align: left;
  font-size: clamp(1rem, 0.9333333333rem + 0.0868055556vw, 1.1rem);
}
.company-history li dl dd {
  flex: 1 0 0;
  padding-top: 0.25rem;
  padding-bottom: 5rem;
  padding-left: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
}
.company-history li:last-child dl dt::before {
  display: none;
}
.company-philosophy strong {
  position: relative;
  font-size: clamp(2.8rem, 1.6rem + 1.5625vw, 4.6rem);
  font-weight: var(--medium);
  letter-spacing: 0.5rem;
}
.company-philosophy strong::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--black);
  opacity: 0;
}
.company-philosophy strong.act::after {
  animation: lineAnime 0.75s ease-out 0.5s forwards;
  -webkit-animation: lineAnime 0.75s ease-out 0.5s forwards;
}
.company-philosophy p {
  padding-top: clamp(1.5rem, 1.167rem + 0.434vw, 2rem);
  font-size: clamp(1.6rem, 1.2rem + 0.5208333333vw, 2.2rem);
  font-weight: var(--medium);
}
.company-philosophy p span {
  opacity: 0;
  display: inline-block;
  -webkit-transform: translateY(60%);
  transform: translateY(60%);
}
.company-philosophy p.act span:nth-child(1) {
  animation: fadeInText 0.1s ease-out 0.3s forwards;
}
.company-philosophy p.act span:nth-child(2) {
  animation: fadeInText 0.1s ease-out 0.4s forwards;
}
.company-philosophy p.act span:nth-child(3) {
  animation: fadeInText 0.1s ease-out 0.5s forwards;
}
.company-philosophy p.act span:nth-child(4) {
  animation: fadeInText 0.1s ease-out 0.6s forwards;
}
.company-philosophy p.act span:nth-child(5) {
  animation: fadeInText 0.1s ease-out 0.7s forwards;
}
.company-philosophy p.act span:nth-child(6) {
  animation: fadeInText 0.1s ease-out 0.8s forwards;
}
.company-philosophy p.act span:nth-child(7) {
  animation: fadeInText 0.1s ease-out 0.9s forwards;
}
.company-philosophy p.act span:nth-child(8) {
  animation: fadeInText 0.1s ease-out 1s forwards;
}
.company-philosophy p.act span:nth-child(9) {
  animation: fadeInText 0.1s ease-out 1.1s forwards;
}
.company-philosophy p.act span:nth-child(10) {
  animation: fadeInText 0.1s ease-out 1.2s forwards;
}
.company-philosophy p.act span:nth-child(11) {
  animation: fadeInText 0.1s ease-out 1.3s forwards;
}
.company-philosophy p.act span:nth-child(12) {
  animation: fadeInText 0.1s ease-out 1.4s forwards;
}
.company-philosophy p.act span:nth-child(13) {
  animation: fadeInText 0.1s ease-out 1.5s forwards;
}
.company-philosophy p.act span:nth-child(14) {
  animation: fadeInText 0.1s ease-out 1.6s forwards;
}
.company-philosophy p.act span:nth-child(15) {
  animation: fadeInText 0.1s ease-out 1.7s forwards;
}
.company-philosophy p.act span:nth-child(16) {
  animation: fadeInText 0.1s ease-out 1.8s forwards;
}
.company-philosophy p.act span:nth-child(17) {
  animation: fadeInText 0.1s ease-out 1.9s forwards;
}
.company-philosophy p.act span:nth-child(18) {
  animation: fadeInText 0.1s ease-out 2s forwards;
}
.company-philosophy p.act span:nth-child(19) {
  animation: fadeInText 0.1s ease-out 2.1s forwards;
}
.company-philosophy p.act span:nth-child(20) {
  animation: fadeInText 0.1s ease-out 2.2s forwards;
}
.company-philosophy p.act span:nth-child(21) {
  animation: fadeInText 0.1s ease-out 2.3s forwards;
}
.company-philosophy p.act span:nth-child(22) {
  animation: fadeInText 0.1s ease-out 2.4s forwards;
}
.company-philosophy p.act span:nth-child(23) {
  animation: fadeInText 0.1s ease-out 2.5s forwards;
}
.company-philosophy p.act span:nth-child(24) {
  animation: fadeInText 0.1s ease-out 2.6s forwards;
}
.company-philosophy p.act span:nth-child(25) {
  animation: fadeInText 0.1s ease-out 2.7s forwards;
}

@keyframes fadeInText {
  0% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
    opacity: 0;
  }
  50% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes lineAnime {
  0% {
    width: 0%;
    opacity: 0;
  }
  100% {
    width: 100%;
    opacity: 1;
  }
}
.recruit-lead h4 {
  padding-bottom: 2vw;
  font-size: clamp(1.8rem, 1.1333333333rem + 0.8680555556vw, 2.8rem);
  font-weight: var(--medium);
}
.recruit-job {
  border-bottom: 1px solid var(--base);
}
.recruit-job-date {
  font-size: clamp(1.2rem, 1.0666666667rem + 0.1736111111vw, 1.4rem);
  color: var(--gray);
}
.recruit-job-img {
  width: calc(100% - 1.5rem);
  padding-block: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}
@media screen and (max-width: 767px) {
  .recruit-job-img {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .recruit-job-img {
    width: 15%;
  }
}
.recruit-job-img figure {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
}
.recruit-job-img figure img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
  height: auto;
}
.recruit-job-title {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  border-top: 1px solid var(--base);
  cursor: pointer;
}
.recruit-job-title-head {
  width: calc(100% - 5rem);
}
@media screen and (min-width: 768px) {
  .recruit-job-title-head {
    display: flex;
    justify-content: space-between;
    width: calc(100% - 8rem);
  }
}
.recruit-job-title-inner {
  padding-block: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
  padding-right: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}
@media screen and (min-width: 768px) {
  .recruit-job-title-inner {
    width: 85%;
    padding-left: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
  }
}
.recruit-job-title-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: clamp(0.5rem, 0.167rem + 0.434vw, 1rem);
}
.recruit-job-title-list li {
  padding: clamp(0.25rem, 0.083rem + 0.217vw, 0.5rem);
  border: var(--solidbase);
  font-size: clamp(1.2rem, 1.0666666667rem + 0.1736111111vw, 1.4rem);
  line-height: 1;
}
.recruit-job-title-list li:first-child {
  background-color: var(--base);
  font-weight: var(--medium);
  color: var(--white);
}
.recruit-job-title h4 {
  font-size: clamp(1.6rem, 1.0666666667rem + 0.6944444444vw, 2.4rem);
  font-weight: var(--medium);
}
.recruit-job-title-icon {
  position: relative;
  flex: 1 0 0;
  border-left: 1px solid var(--base);
  transition: all 0.4s;
}
.recruit-job-title-icon span:first-child, .recruit-job-title-icon span:last-child {
  position: absolute;
  top: 50%;
  left: 45%;
  transform: translate(-50%, -50%);
  width: 1.2rem;
  height: 0.2rem;
  background-color: var(--base);
  transition: all 0.4s;
}
.recruit-job-title-icon span:first-child {
  transform: rotate(0deg);
}
.recruit-job-title-icon span:last-child {
  transform: rotate(90deg);
}
.recruit-job-title-icon.open {
  background-color: var(--base);
}
.recruit-job-title-icon.open span:first-child {
  display: none;
}
.recruit-job-title-icon.open span:last-child {
  transform: rotate(180deg);
  background-color: var(--white);
}
.recruit-job-detail {
  height: 0;
  overflow: hidden;
  transition: height 0.6s ease;
}
.recruit-job-item {
  padding-block: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
  border-bottom: var(--solid);
}
@media screen and (min-width: 768px) {
  .recruit-job-item {
    display: flex;
    justify-content: space-between;
  }
}
.recruit-job-item:first-child {
  border-top: var(--solid);
}
.recruit-job-item:last-child {
  border-bottom: none;
}
.recruit-job-head {
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .recruit-job-head {
    width: 22%;
  }
}
@media screen and (min-width: 768px) {
  .recruit-job-body {
    width: 78%;
  }
}
.recruit-job-list li {
  position: relative;
  padding-left: 1.5rem;
}
.recruit-job-list li:nth-child(n+2) {
  margin-top: 0.5rem;
}
.recruit-job-list li::before {
  content: "";
  position: absolute;
  top: 0.5em;
  left: 0;
  width: 0.8rem;
  height: 0.8rem;
  background-color: #ccc;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.form-check-text {
  margin-bottom: clamp(2rem, 0.667rem + 1.736vw, 4rem);
}
.form-grid {
  margin-top: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
}
@media screen and (min-width: 768px) {
  .form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(5rem, 1.667rem + 4.34vw, 10rem);
  }
}
.form-grid-check {
  margin-top: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
}
@media screen and (min-width: 768px) {
  .form-grid-check {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(5rem, 1.667rem + 4.34vw, 10rem);
  }
}
.form-grid-check-photo figure {
  position: relative;
  border-radius: 0.5rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .form-grid-check-photo figure {
    display: none;
  }
}
.form-grid-check-photo figure::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
.form-photo figure {
  position: relative;
  border-radius: 0.5rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .form-photo figure {
    display: none;
  }
}
.form-photo figure::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
.form-photo p {
  padding-bottom: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}
@media screen and (max-width: 767px) {
  .form form {
    padding-top: 2.5rem;
  }
}
.form dl + dl {
  margin-top: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}
.form dt {
  margin-bottom: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  font-weight: var(--medium);
  line-height: 1;
}
.form dt span {
  margin-left: clamp(1rem, 0.333rem + 0.868vw, 2rem);
  padding-inline: 0.5rem;
  background-color: var(--white);
  border: var(--solid);
  border-radius: 0.3rem;
  font-size: 1rem;
  line-height: 1;
  vertical-align: 3px;
}
.form-step {
  display: flex;
  max-width: 400px;
  position: relative;
  margin-inline: auto;
  text-align: center;
}
.form-step li {
  font-size: clamp(1.2rem, 1.1333333333rem + 0.0868055556vw, 1.3rem);
  list-style: none;
  position: relative;
  width: 33.333%;
}
.form-step li::after {
  background: #ccc;
  content: "";
  width: calc(100% - 24px);
  height: 4px;
  position: absolute;
  left: calc(-50% + 12px);
  top: 10px;
}
.form-step li:first-child::after {
  display: none;
}
.form-step li span {
  background: #ccc;
  color: #ffffff;
  display: inline-block;
  height: 24px;
  margin-bottom: 5px;
  line-height: 24px;
  width: 24px;
  border-radius: 50%;
}
.form-step .visited:after {
  background-color: var(--base);
}
.form-step .visited span {
  background-color: var(--base);
}
@media screen and (max-width: 767px) {
  .form-step2 {
    margin-top: 2.5rem;
  }
}
.form-step2 dl {
  padding-bottom: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.form-send {
  margin-top: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
}
@media screen and (min-width: 1025px) {
  .form-send {
    display: flex;
    justify-content: space-between;
  }
}

.form select {
  outline: none;
  padding: 1rem 3rem 1rem 1rem;
  background-color: #fff;
  background-image: url(../../assets/img/common/icon-arrow-down.svg);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 10px;
  border: 1px solid var(--gray-light);
  border-radius: 0.5rem;
  font-size: clamp(1.4rem, 1.2666666667rem + 0.1736111111vw, 1.6rem);
}
@media screen and (min-width: 768px) {
  .form select {
    padding: 1.2rem 4rem 1.2rem 1rem;
  }
}
.form button,
.form select,
.form textarea,
.form input {
  font-family: inherit;
}
.form button::placeholder,
.form select::placeholder,
.form textarea::placeholder,
.form input::placeholder {
  color: #bbb;
}
.form textarea {
  height: 17.5rem;
}
@media screen and (min-width: 768px) {
  .form textarea {
    height: 20rem;
  }
}
.form input[type=submit], .form input[type=button] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
  border: none;
}
.form input[type=text] {
  line-height: normal;
}
.form input[type=checkbox], .form input[type=radio] {
  padding: 0;
  vertical-align: 1px;
}
.form select,
.form textarea,
.form input[type=email],
.form input[type=tel],
.form input[type=date],
.form input[type=text] {
  width: 100%;
  padding: 1rem 0.7rem;
  background-color: var(--white);
  border: var(--solid);
  border-radius: 0.5rem;
  outline: none;
  font-size: clamp(1.4rem, 1.2666666667rem + 0.1736111111vw, 1.6rem);
  font-family: inherit;
  transition: var(--ease);
}
@media screen and (min-width: 768px) {
  .form select,
  .form textarea,
  .form input[type=email],
  .form input[type=tel],
  .form input[type=date],
  .form input[type=text] {
    padding: 1.3rem 1rem;
  }
}
.form select:hover, .form select:focus,
.form textarea:hover,
.form textarea:focus,
.form input[type=email]:hover,
.form input[type=email]:focus,
.form input[type=tel]:hover,
.form input[type=tel]:focus,
.form input[type=date]:hover,
.form input[type=date]:focus,
.form input[type=text]:hover,
.form input[type=text]:focus {
  background-color: var(--white);
  border-color: var(--theme);
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

.form-btn {
  position: relative;
  display: block;
  width: 100%;
  margin-top: clamp(2.5rem, 0.833rem + 2.17vw, 5rem);
  border-top: 1px solid rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  background-color: none;
  background-color: transparent;
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  font-weight: var(--medium);
  text-align: left;
}
.form-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23101a22' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.form-btn:hover::after {
  right: 0;
}
.form-btn:disabled {
  opacity: 0.5;
}
.form-btn:disabled:hover::after {
  right: 1vw;
}
.form-btn input {
  display: block;
  width: 100%;
  height: 100%;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  background-color: transparent;
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  font-weight: var(--medium);
  text-align: left;
}
.form-btn:has(.wpcf7-submit:disabled) {
  opacity: 0.5;
}
.form-btn:has(.wpcf7-submit:disabled):hover::after {
  right: 1vw;
}
.form-btn-send {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  background-color: var(--base);
  border-top: 1px solid rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  font-weight: var(--medium);
  color: var(--white);
}
@media screen and (max-width: 1024px) {
  .form-btn-send {
    margin-top: 2.5rem;
  }
}
@media screen and (min-width: 1025px) {
  .form-btn-send {
    width: 60%;
  }
}
.form-btn-send::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2vw;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 0.7rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='7'%3E%3Cpath fill='%23ffffff' d='M.001 3.062h13.335L10.918.612 11.544 0l3.454 3.5L11.544 7l-.6-.612 2.4-2.45H.001Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--ease);
}
.form-btn-send:hover::after {
  right: 1vw;
}
.form-btn-edit {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  border-top: 1px solid rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  background-color: none;
  font-size: clamp(1.4rem, 1.2rem + 0.2604166667vw, 1.7rem);
  font-weight: var(--medium);
}
@media screen and (min-width: 1025px) {
  .form-btn-edit {
    width: 30%;
  }
}
.form-lead {
  line-height: 1.8;
}
.form-table {
  width: 100%;
  border-top: 1px solid var(--gray-light);
}
@media screen and (min-width: 768px) {
  .form-table {
    display: flex;
    flex-wrap: wrap;
  }
}
.form-table dt,
.form-table dd {
  padding-top: clamp(2rem, 1.6rem + 0.521vw, 2.6rem);
  padding-bottom: clamp(2rem, 1.6rem + 0.521vw, 2.6rem);
  border-bottom: 1px solid var(--gray-light);
}
.form-table dt {
  position: relative;
  display: flex;
  align-items: center;
  padding-left: clamp(1rem, 0.333rem + 0.868vw, 2rem);
  font-weight: var(--semibold);
}
@media screen and (max-width: 767px) {
  .form-table dt {
    gap: 1rem;
    padding: 2rem 0 0;
    border-bottom: none;
  }
}
@media screen and (min-width: 768px) {
  .form-table dt {
    gap: 2rem;
    width: 28%;
  }
}
.form-table dt span {
  padding: 0.35rem 0.55rem 0.5rem;
  background-color: var(--red);
  border-radius: 0.3rem;
  color: var(--white);
  font-size: 1rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .form-table dt span {
    right: 0;
    top: calc(50% + 1rem);
  }
}
@media screen and (max-width: 767px) {
  .form-table dd {
    padding: 2rem 0;
  }
}
@media screen and (min-width: 768px) {
  .form-table dd {
    width: 72%;
  }
}
.form-radio {
  display: block;
}
@media screen and (min-width: 768px) {
  .form-radio {
    display: flex;
    flex-wrap: wrap;
  }
}
.form-radio li {
  padding-right: 6rem;
}
.form-radio li:last-child {
  padding-right: 0;
}
@media screen and (max-width: 767px) {
  .form-radio li:nth-child(n+2) {
    margin-top: 1rem;
  }
}
.form-radio li label {
  position: relative;
  padding: 0 0 0 3.4rem;
  cursor: pointer;
}
.form-radio li label input[type=radio] {
  visibility: hidden;
  position: absolute;
}
.form-radio li label input[type=radio] + span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin-top: auto;
  margin-bottom: auto;
  width: 2.4rem;
  height: 2.4rem;
  background-color: #f7f6f6;
  border-radius: 100%;
  border: 1px solid #ddd;
}
.form-radio li label input[type=radio] + span::after {
  content: "";
  position: absolute;
  left: 0.5rem;
  top: 0;
  bottom: 0;
  margin-top: auto;
  margin-bottom: auto;
  width: 1.4rem;
  height: 1.4rem;
  background-color: var(--color-brand-blue);
  opacity: 0;
  transition: opacity 0.2s;
  border-radius: 100%;
}
.form-radio li label input[type=radio]:checked + span:before {
  border-color: #ddd;
}
.form-radio li label input[type=radio]:checked + span:after {
  opacity: 1;
}
.form-checkboxs {
  display: flex;
  flex-wrap: wrap;
}
.form-checkbox {
  width: fit-content;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
  margin-top: 2rem;
  margin-right: 3rem;
  line-height: 1.5;
}
.form-checkbox-icon {
  position: relative;
  width: 2rem;
  height: 2rem;
  margin: 0;
  appearance: none;
  background-color: var(--white);
  border: solid 1px var(--gray-light);
  border-radius: 0.5rem;
  transition-duration: 0.2s;
  transition-property: background-color, border, box-shadow, color;
}
.form-checkbox-icon::before {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  opacity: 0;
  mask-image: url("../../assets/img/common/icon-check.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: var(--white);
  transition: opacity 0.2s;
}
.form-checkbox-icon:checked {
  background-color: var(--theme);
  border-color: var(--theme);
}
.form-checkbox-icon:checked::before {
  opacity: 1;
}
.form-checkbox-icon:hover, .form-checkbox-icon:focus {
  border-color: var(--color-brand-blue);
}
.form-note {
  padding-top: 0.5rem;
}
.form-note span {
  padding: 0 0.5rem 0.25rem;
  border-radius: 0.5rem;
  background-color: var(--red);
  font-size: clamp(1.3rem, 1.2333333333rem + 0.0868055556vw, 1.4rem);
  font-weight: var(--semibold);
  color: var(--white);
}
.form-btn-cols {
  display: flex;
  flex-wrap: wrap;
  gap: 5rem;
}
@media screen and (min-width: 768px) {
  .form-btn-check button, .form-btn-submit button, .form-btn-back button {
    padding: 2.2rem 5.2rem;
  }
}
@media screen and (min-width: 1025px) {
  .form-btn-check button, .form-btn-submit button, .form-btn-back button {
    padding: 3.2rem 6.2rem;
  }
}
.form-btn-check {
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .form-btn-check button {
    width: 60%;
  }
}
.form-btn-back {
  padding-right: clamp(3rem, 1rem + 2.604vw, 6rem);
  padding-left: clamp(3rem, 1rem + 2.604vw, 6rem);
  background-color: var(--gray);
  color: var(--white);
  border-color: var(--gray);
}
.form-btn-back::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 2rem;
  width: 0.8rem;
  height: 0.8rem;
  border-bottom: 1px solid var(--white);
  border-right: 1px solid var(--white);
  transform: translateY(-50%) rotate(135deg);
  transition: all 0.2s ease;
}
.form-btn-back:hover {
  background-color: var(--white);
  color: var(--theme-dark);
}
.form-btn-back:hover::before {
  left: 1.5rem;
  border-bottom-color: var(--theme-dark);
  border-right-color: var(--theme-dark);
}
.form-btn-submit {
  width: 60%;
}
.form-btn-submit button {
  width: 100%;
}
.form-thanks-title {
  padding-bottom: 2rem;
  font-size: clamp(1.6rem, 1.3333333333rem + 0.3472222222vw, 2rem);
  font-weight: var(--font-medium);
}
.form-privacy-check {
  margin-top: clamp(1.5rem, 0.5rem + 1.302vw, 3rem);
}
.form-privacy-check p {
  display: flex;
  align-items: center;
}
.form-privacy-check p a {
  margin-left: 1rem;
  text-decoration: underline;
}
.form-privacy-checkbox:checked {
  accent-color: var(--base);
}
.form-job-select {
  margin-bottom: clamp(2rem, 0.667rem + 1.736vw, 4rem);
}
.form-job-select-title {
  margin-bottom: 2rem;
  padding: 2rem;
  background-color: var(--base);
  font-size: clamp(1.6rem, 1.2rem + 0.5208333333vw, 2.2rem);
  font-weight: var(--medium);
  color: var(--white);
}
.form-job-select-discription {
  display: flex;
  align-items: center;
  border-bottom: var(--solidbase);
}
.form-job-select-discription dt,
.form-job-select-discription dd {
  padding-bottom: 2rem;
}
.form-job-select-discription dt {
  width: 24%;
  margin-bottom: 0;
}
.form-job-select-discription dd {
  flex: 1 0 0;
}
.js-history-back {
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  display: block;
  width: 100%;
  height: 100%;
  padding-block: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  padding-inline: clamp(1rem, 0.667rem + 0.434vw, 1.5rem);
  background-color: transparent;
  font-size: clamp(1.3rem, 1.1666666667rem + 0.1736111111vw, 1.5rem);
  font-weight: var(--medium);
  text-align: left;
}

@media screen and (max-width: 767px) {
  .business-works {
    display: flex;
    flex-direction: column;
  }
}
@media screen and (min-width: 768px) {
  .business-works {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
  }
}
@media screen and (max-width: 767px) {
  .business-works:nth-of-type(n + 2) {
    margin-top: 5rem;
  }
}
.business-works h4 {
  padding-bottom: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  font-size: clamp(1.8rem, 1.1333333333rem + 0.8680555556vw, 2.8rem);
  font-weight: var(--medium);
}
.business-works-text {
  padding-right: clamp(3rem, 1.667rem + 1.736vw, 5rem);
}
@media screen and (max-width: 767px) {
  .business-works-text {
    order: 2;
    padding: 2rem;
    background-color: #f2f2f2;
  }
}
.business-works-text span {
  font-size: clamp(1.2rem, 1.0666666667rem + 0.1736111111vw, 1.4rem);
  color: #bbb;
}
.business-works-text p + p {
  padding-top: clamp(1rem, 0.333rem + 0.868vw, 2rem);
}
@media screen and (min-width: 768px) {
  .business-works.business-works-left .business-works-text {
    order: 2;
    padding-left: clamp(3rem, 1.667rem + 1.736vw, 5rem);
  }
}

.privacy-block {
  margin-top: clamp(3rem, 1rem + 2.604vw, 6rem);
}
.privacy-block h3 {
  padding-bottom: clamp(1.5rem, 0.833rem + 0.868vw, 2.5rem);
  font-size: clamp(1.6rem, 1.0666666667rem + 0.6944444444vw, 2.4rem);
  font-weight: var(--medium);
}
.privacy-block ul li {
  position: relative;
  padding-left: 1.5rem;
}
.privacy-block ul li:nth-child(n+2) {
  margin-top: 0.2rem;
}
.privacy-block ul li::before {
  content: "";
  position: absolute;
  top: 0.75em;
  left: 0;
  width: 0.5rem;
  height: 0.5rem;
  background-color: #ccc;
  border-radius: 9999rem;
}
.privacy-block p + ul,
.privacy-block p + ul + p {
  margin-top: clamp(1rem, 0.333rem + 0.868vw, 2rem);
}/*# sourceMappingURL=style.css.map */