a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block
}
body {
  line-height: 1
}
ol,
ul {
  list-style: none
}
blockquote,
q {
  quotes: none
}
blockquote:after,
blockquote:before,
q:after,
q:before {
  content: "";
  content: none
}
table {
  border-collapse: collapse;
  border-spacing: 0
}
:root {
  --text-color: #000000;
  --bg-color: #222222;
  --bg-color-light: #f5f5f5;
  --dark-gray: #333333;
  --gray: #555555;
  --light-gray: #888888;
  --white: #ffffff;
  --red: #f00;
  --font-ja: "Noto Sans JP",sans-serif;
  --font-ja-min: "Shippori Antique",sans-serif;
  --font-en: "Special Gothic Expanded One",sans-serif;
  --line-height-base: 1.8;
  --hover-transition: 0.3s
}
*,
:after,
:before {
  box-sizing: border-box
}
html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  block-size: 100%;
  scroll-padding-top: var(--header-height)
}
body {
  background: var(--text-color);
  color: var(--white);
  font-family: var(--font-ja);
  font-size: 16px;
  font-weight: 400;
  line-break: strict;
  line-height: var(--line-height-base);
  max-inline-size: 100vw;
  min-block-size: 100vh;
  min-block-size: 100svb;
  min-inline-size: 0;
  overflow-wrap: anywhere;
  overflow-x: clip;
  word-break: normal
}
body.no-scroll {
  overflow: hidden
}
a {
  color: inherit;
  text-decoration: none;
  transition: var(--hover-transition)
}
a:focus-visible {
  cursor: pointer;
  text-decoration: none
}
:where(:-moz-any-link) {
  text-decoration-color: color-mix(in srgb,currentcolor,transparent 40%);
  text-underline-offset: .25em
}
:where(:any-link) {
  text-decoration-color: color-mix(in srgb,currentcolor,transparent 40%);
  text-underline-offset: .25em
}
a,
img,
picture,
span {
  display: inline-block
}
img,
svg {
  block-size: 100%;
  inline-size: 100%;
  vertical-align: middle
}
img {
  block-size: 100%;
  font-style: italic;
  inline-size: 100%;
  vertical-align: bottom;
  -o-object-fit: cover;
  object-fit: cover
}
img[src*=".gif"] {
  transition: none;
  will-change: auto
}
input {
  margin: 0;
  padding: 0
}
textarea {
  color: inherit;
  font: inherit;
  padding: 0
}
button {
  background: 0 0;
  border: none;
  color: inherit;
  cursor: pointer;
  font: inherit;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  padding: 0;
  touch-action: manipulation;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none
}
:focus-visible {
  outline: auto solid oklch(60% .4 240deg);
  outline-offset: 2px
}
:focus:not(:focus-visible) {
  outline: 0
}
a[href^="tel:"] {
  pointer-events: none
}
:where(button,[type=button],[type=reset],[type=submit]) {
  touch-action: manipulation
}
:where(ul,ol) {
  list-style-type: "";
  padding: unset
}
:where(:-moz-any-link,button,[type=button],[type=reset],[type=submit],label[for],select,summary,[role=tab],[role=button]) {
  cursor: pointer
}
:where(:any-link,button,[type=button],[type=reset],[type=submit],label[for],select,summary,[role=tab],[role=button]) {
  cursor: pointer
}
:where(dialog) {
  background-color: unset;
  block-size: unset;
  border: unset;
  color: unset;
  inline-size: unset;
  max-block-size: unset;
  max-inline-size: unset;
  overflow: unset;
  padding: unset
}
:where([popover]) {
  background-color: unset;
  block-size: unset;
  border: unset;
  color: unset;
  inline-size: unset;
  overflow: unset;
  padding: unset
}
.scroller {
  overflow: auto;
  overscroll-behavior-block: contain
}
html:has(dialog[open]) {
  overflow: hidden
}
summary {
  display: block
}
summary::-webkit-details-marker {
  display: none
}
.c-loading {
  z-index: calc(infinity)
}
:focus,
[id] {
  scroll-margin-block-start: 100px
}
:where(:root) {
  text-spacing-trim: trim-start;
  text-autospace: normal;
  line-break: strict;
  overflow-wrap: anywhere
}
:where(:root):lang(ja) {
  font-kerning: none
}
:where(:root):lang(en) {
  font-kerning: normal;
  text-wrap: pretty
}
.l-drawer__icon {
  isolation: isolate;
  mix-blend-mode: exclusion;
  position: fixed;
  right: 24px;
  top: 40px;
  z-index: 40
}
.l-drawer__icon.-active .l-drawer__icon--bar:nth-of-type(1) {
  top: 10px;
  transform: rotate(-30deg)
}
.l-drawer__icon.-active .l-drawer__icon--bar:nth-of-type(2) {
  top: 10px;
  transform: rotate(30deg)
}
.l-drawer__icon--bars {
  block-size: 21px;
  display: block;
  inline-size: 56px;
  position: relative;
  z-index: 41
}
.l-drawer__icon--bar {
  background: var(--white);
  block-size: 1px;
  inline-size: 56px;
  left: 0;
  position: absolute;
  top: 0;
  transition: transform var(--hover-transition) linear,top var(--hover-transition) linear
}
.l-drawer__icon--bar:nth-of-type(2) {
  top: 10px
}
.l-drawer__icon--bar:nth-of-type(3) {
  top: 20px
}
.l-drawer__content {
  background: var(--text-color);
  block-size: 100vh;
  block-size: 100dvh;
  inline-size: 100%;
  padding-block-start: 40px;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(100%);
  transition: transform .6s cubic-bezier(.8,0,.4,1),visibility .6s cubic-bezier(.8,0,.4,1);
  visibility: hidden;
  z-index: 39
}
.l-drawer__content.-active {
  transform: translateX(0);
  visibility: visible
}
.l-drawer__inner {
  block-size: 100%;
  display: flex;
  flex-direction: column;
  gap: 48px;
  overflow: scroll;
  padding-block-end: 80px;
  padding-block-start: 90px;
  padding-inline: 8.2051282051vw
}
.l-drawer__logo {
  display: block;
  margin-inline: auto
}
.l-drawer__logo svg {
  fill: var(--white)
}
.l-drawer__lists {
  display: grid;
  grid-template-columns: repeat(1,1fr);
  justify-content: space-between;
  row-gap: 32px;
  -moz-column-gap: 22px;
  column-gap: 22px
}
.l-drawer__link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-block-end: 16px;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s
}
.l-drawer__link:focus-visible {
  opacity: .6
}
.l-drawer__list--en {
  font-family: var(--font-en);
  font-size: 2.8rem;
  font-style: normal;
  line-height: 120%;
  text-transform: capitalize
}
.l-drawer__list--ja {
  font-family: var(--font-ja-min);
  font-size: 1.6rem;
  line-height: 120%
}
.l-footer {
  background: var(--bg-color);
  margin-inline: auto;
  padding-block: clamp(8rem,6.514rem + 3.81vw,12rem) clamp(5.6rem,4.709rem + 2.286vw,8rem)
}
.l-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 64px
}
.l-footer__contents {
  display: flex;
  flex-direction: column;
  gap: 64px
}
.l-footer__headWrap {
  display: flex;
  flex-direction: column;
  gap: clamp(5.6rem,5.006rem + 1.524vw,7.2rem)
}
.l-footer__logo a {
  aspect-ratio: 205/46;
  display: block;
  inline-size: clamp(20.5rem,14.334rem + 15.81vw,37.1rem);
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.l-footer__logo a:focus-visible {
  opacity: .6
}
.l-footer__lists {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  row-gap: 56px;
  -moz-column-gap: 28px;
  column-gap: 28px
}
.l-footer__privacy {
  font-size: clamp(1.1rem,1.063rem + .095vw,1.2rem)!important
}
.l-header {
  display: none
}
.l-header__wrap {
  block-size: inherit;
  position: fixed;
  right: clamp(2rem,-1.12rem + 8vw,10.4rem);
  top: 0
}
.l-header__logo {
  aspect-ratio: 172/40;
  display: block;
  inline-size: clamp(11.2rem,8.971rem + 5.714vw,17.2rem);
  isolation: isolate;
  left: 24px;
  mix-blend-mode: exclusion;
  position: fixed;
  top: 28px;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1);
  z-index: 999999
}
.l-header__logo:focus-visible {
  opacity: .6
}
.l-header__menu {
  display: none
}
.l-header__nav {
  align-items: center;
  display: flex;
  -moz-column-gap: 40px;
  column-gap: 40px
}
.l-header__lists {
  align-items: center;
  display: flex;
  -moz-column-gap: 20px;
  column-gap: 20px
}
.l-header__lists li a {
  display: inline-block;
  line-height: 90px;
  white-space: nowrap
}
.l-inner {
  block-size: inherit;
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 640px;
  padding-inline: 24px;
  position: relative
}
.l-inner__narrow {
  block-size: inherit;
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 640px;
  padding: 0 20px;
  position: relative
}
.l-main {
  overflow: hidden
}
.l-section {
  margin-block-start: clamp(6.4rem,4.32rem + 5.333vw,12rem)
}
.l-section-pb {
  padding-block: 80px
}
.l-breadcrumb {
  display: block;
  inline-size: 100%
}
.l-breadcrumb__inner.js-reveal {
  display: inline-block
}
.l-breadcrumb__lists {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-inline-start: 4px;
  vertical-align: middle
}
.l-breadcrumb__list {
  font-size: 1.2rem;
  position: relative
}
.l-breadcrumb__list:not(:last-child)::after {
  content: "＞";
  font-size: .9rem;
  padding: 0 0 0 1.2em;
  vertical-align: middle
}
.l-breadcrumb__list a {
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s
}
.l-breadcrumb__list a:focus-visible {
  opacity: .6
}
.l-breadcrumb__list > span:nth-child(n):not(:last-child) {
  color: #ccc
}
.l-lower-page {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-block-start: clamp(15rem,12.029rem + 7.619vw,23rem);
  padding-block-end: 52px;
  position: relative
}
.l-lower-page::after {
  background: var(--dark-gray);
  block-size: 1px;
  bottom: 0;
  content: "";
  inline-size: 100vw;
  left: 0;
  margin-inline: calc(50% - 50vw);
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s cubic-bezier(.8,0,.4,1) .4s
}
.l-lower-page.is-line-visible::after {
  transform: scaleX(1)
}
.l-lower-page__contents {
  margin-block-start: clamp(7.2rem,5.863rem + 3.429vw,10.8rem)
}
.l-lower-page__contents--wide {
  margin-block-start: clamp(6.2rem,2.411rem + 9.714vw,16.4rem)
}
.js-reveal {
  clip-path: inset(0 100% 0 0);
  display: inline-block;
  opacity: 0;
  overflow: hidden;
  transition: clip-path .5s cubic-bezier(.8,0,.4,1),opacity .5s cubic-bezier(.8,0,.4,1);
  vertical-align: bottom
}
.js-reveal.is-visible {
  clip-path: inset(0 0 0 0);
  opacity: 1
}
.js-fade-in {
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(.4,0,.2,1)
}
.js-fade-in.is-visible {
  opacity: 1
}
.c-service-items {
  display: flex;
  flex-direction: column;
  gap: 16px
}
.c-service-item__link {
  align-items: center;
  background: var(--bg-color);
  border: 1px solid transparent;
  border-radius: 8px;
  display: block;
  display: flex;
  justify-content: space-between;
  padding: 32px 20px;
  transition: border-color var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.c-service-item__link.--black {
  background: var(--text-color)
}
.c-service-item__link:focus-visible {
  border-color: var(--white)
}
.c-service-item__textWrap {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 14px
}
.c-service-item__about {
  border-block-end: 1px solid;
  display: block;
  font-family: var(--font-ja-min);
  font-size: 1.6rem;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  line-height: 120%;
  padding-block-end: 8px
}
.c-service-item__title {
  font-family: var(--font-ja-min);
  font-size: 24px;
  line-height: 120%
}
.c-service-item__icon {
  aspect-ratio: 18/14;
  width: 18px
}
.c-link__footer {
  border-block-start: 1px solid var(--dark-gray);
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-block-start: 24px
}
.c-link__privacy {
  color: var(--light-gray);
  display: block;
  font-family: "Noto Sans JP";
  font-size: 1.4rem;
  line-height: normal;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.c-link__privacy:focus-visible {
  opacity: .6
}
.c-link__copyright {
  color: var(--light-gray);
  font-family: var(--font-ja-min);
  font-size: 1.2rem;
  line-height: normal
}
.c-menu {
  background: linear-gradient(to right,var(--light-gray) 50%,var(--white) 50%) 100%;
  color: transparent;
  font-family: var(--font-en);
  font-style: normal;
  line-height: 120%;
  text-transform: capitalize;
  -webkit-background-clip: text;
  background-clip: text;
  background-size: 200% 100%;
  transition: background-position var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.c-menu:focus-visible {
  background-position: 0 40%
}
.c-menu.c-menu--header {
  font-size: 1.6rem
}
.c-menu.c-menu--footer {
  font-size: 2rem
}
.c-btn {
  align-items: center;
  display: inline-flex;
  font-family: var(--font-en);
  font-size: 3.2rem;
  font-style: normal;
  gap: 32px;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  line-height: 120%;
  overflow: hidden;
  padding-block-end: 1rem;
  position: relative;
  transition-duration: var(--hover-transition);
  transition-property: color,background-color,border;
  white-space: nowrap
}
.c-btn.--white {
  color: var(--white)
}
.c-btn::before {
  background: var(--white);
  block-size: 1px;
  bottom: 0;
  content: "";
  inline-size: 0;
  left: 0;
  position: absolute;
  transition: inline-size var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition)
}
.c-btn::after {
  background: var(--white);
  block-size: 1px;
  bottom: 1px;
  content: "";
  inline-size: 100%;
  left: 0;
  position: absolute;
  transition: translate var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.c-btn .c-btn__arrow {
  block-size: 22px;
  flex-shrink: 0;
  inline-size: 22px;
  overflow: hidden;
  position: relative
}
.c-btn .c-btn__arrow::before {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  top: 50%;
  transform-origin: center;
  translate: -50% -50%
}
.c-btn .c-btn__arrow::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  opacity: 0;
  top: 50%;
  transform-origin: center;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1);
  translate: -50% -50%
}
.c-btn:focus-visible::before {
  inline-size: 100%
}
.c-btn:focus-visible::after {
  translate: 100%
}
.c-btn:focus-visible .c-btn__arrow::before {
  animation: arrowSlideOut var(--hover-transition) cubic-bezier(.8,0,.4,1) forwards
}
.c-btn:focus-visible .c-btn__arrow::after {
  animation: arrowSlideIn var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition) forwards
}
.c-btn-coming {
  align-items: center;
  border-block-end: 1px solid;
  color: var(--gray);
  display: inline-flex;
  font-family: var(--font-en);
  font-size: 3.2rem;
  font-style: normal;
  gap: 32px;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  line-height: 120%;
  padding-block-end: 10px;
  position: relative;
  text-transform: capitalize;
  white-space: nowrap
}
.c-card__link {
  aspect-ratio: 1;
  block-size: clamp(29.9rem,28.786rem + 2.857vw,32.9rem);
  border: 1px solid var(--white);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  font-size: 16px;
  inline-size: clamp(29.9rem,28.786rem + 2.857vw,32.9rem);
  justify-content: space-between;
  padding: 40px 24px;
  transition: background-color var(--hover-transition)
}
.c-card__link:focus-visible {
  background-color: var(--white);
  color: var(--text-color)
}
.c-card__title {
  block-size: min(100%,2lh);
  display: -webkit-box;
  overflow: clip;
  text-overflow: ellipsis;
  -webkit-box-orient: block-axis;
  -webkit-line-clamp: 2;
  font-family: var(--font-ja-min);
  font-size: 2rem;
  line-height: 150%;
  margin-block-start: 32px;
  order: 3
}
.c-card__publish {
  color: var(--gray);
  font-family: var(--font-ja-min);
  font-size: 1.4rem;
  line-height: 120%;
  order: 1
}
.c-card__categories {
  margin-top: auto;
  order: 3
}
.c-card__category {
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  color: var(--white);
  display: inline-block;
  font-family: var(--font-ja-min);
  font-size: 1.3rem;
  line-height: 120%;
  padding: 2px 16px 6px 16px;
  text-align: center;
  white-space: nowrap
}
.c-card__noPost {
  font-size: clamp(1.4rem,1.326rem + .19vw,1.6rem)
}
.c-section-titleWrap {
  display: flex;
  flex-direction: column;
  gap: clamp(.8rem,.206rem + 1.524vw,2.4rem)
}
.c-section-titleWrap.--center {
  align-items: center;
  justify-content: center
}
.c-section-title--en {
  font-family: var(--font-en);
  font-size: clamp(5.6rem,3.817rem + 4.571vw,10.4rem);
  font-style: normal;
  line-height: 120%;
  text-transform: capitalize
}
.c-section-title--en.--small {
  font-size: clamp(5rem,2.994rem + 5.143vw,10.4rem)
}
.c-lower-title,
.c-section-title {
  font-family: var(--font-ja-min);
  font-size: 2.4rem;
  line-height: 120%
}
.c-lower-titleWrap {
  display: flex;
  flex-direction: column;
  gap: 14px
}
.c-lower-title--en {
  font-family: var(--font-en);
  font-size: clamp(6.2rem,3.749rem + 6.286vw,12.8rem);
  font-style: normal;
  line-height: 100%;
  text-transform: capitalize
}
.c-sub-section-titleWrap {
  display: flex;
  flex-direction: column;
  gap: 5px
}
.c-sub-section-title__en {
  font-family: var(--font-en);
  font-size: clamp(4rem,3.109rem + 2.286vw,6.4rem);
  font-style: normal;
  line-height: 100%;
  text-transform: capitalize;
  white-space: nowrap
}
.c-sub-section-title {
  font-family: var(--font-ja-min);
  font-size: 2rem;
  line-height: 120%
}
.c-lists {
  inline-size: 100%
}
.c-list {
  gap: 12px
}
.c-list__link {
  align-items: center;
  border-block-end: 1px solid #dadada;
  display: block grid;
  gap: 12px;
  padding: 32px 20px;
  position: relative;
  transition: background-color var(--hover-transition) ease 0s
}
.c-list__link::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--main-color);
  block-size: 7px;
  inline-size: 12px;
  mask-size: contain;
  right: 4px;
  rotate: -90deg;
  top: calc(50% - 2px);
  transition: transform var(--hover-transition) ease;
  translate: 0 -50%
}
.c-list__link:focus-visible {
  background: var(--hover-gray)
}
.c-list__link:focus-visible::after {
  transform: translate(0,4px)
}
.c-list__meta {
  align-items: baseline;
  display: flex;
  gap: 12px
}
.c-list__title {
  display: -webkit-box;
  grid-column: 1/3;
  grid-row: 2;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 1.4rem;
  line-height: 130%;
  padding-inline-end: 20px
}
.c-list__publish {
  color: var(--gray);
  flex-shrink: 0;
  font-size: clamp(1.2rem,1.126rem + .19vw,1.4rem);
  letter-spacing: .6px;
  line-height: 130%;
  order: 1;
  position: relative
}
.c-list__publish::after {
  background: var(--line-color);
  block-size: 15px;
  content: "";
  inline-size: 1px;
  position: absolute;
  right: 0;
  top: 50%;
  translate: 0 -50%
}
.c-list__categories {
  flex-shrink: 0;
  order: 2
}
.c-list__category {
  background: var(--main-color);
  border-radius: calc(infinity * 1px);
  color: var(--white);
  display: inline-block;
  font-size: clamp(1rem,.926rem + .19vw,1.2rem);
  line-height: 130%;
  padding: 3px 12px 4px 12px;
  text-align: center
}
.c-to-top {
  bottom: 32px;
  inline-size: clamp(4.8rem,4.206rem + 1.524vw,6.4rem);
  opacity: 0;
  position: fixed;
  right: 12px;
  transition: opacity var(--hover-transition),visibility .3s;
  visibility: hidden;
  z-index: 30
}
.c-to-top img {
  block-size: 100%;
  inline-size: 100%
}
.c-to-top.is-show {
  opacity: 1;
  visibility: visible
}
.c-pagination {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-block-start: clamp(6rem,5.257rem + 1.905vw,8rem)
}
.c-pagination__list {
  align-items: center;
  display: flex;
  gap: clamp(.8rem,.503rem + .762vw,1.6rem);
  justify-content: center
}
.c-pagination__item a {
  display: block;
  padding: 3px 8px
}
.c-pagination__item a:not(.c-pagination__item--prev):not(.c-pagination__item--next) {
  aspect-ratio: 1;
  block-size: clamp(3.2rem,2.606rem + 1.524vw,4.8rem);
  border: 1px solid;
  border-radius: 4px;
  display: grid;
  font-family: "Special Gothic Expanded One",sans-serif;
  font-size: clamp(2rem,1.851rem + .381vw,2.4rem);
  letter-spacing: 2.6px;
  line-height: 100%;
  place-content: center;
  transition-duration: var(--hover-transition);
  transition-property: color,background-color,border;
  white-space: nowrap
}
.c-pagination__item a:not(.c-pagination__item--prev):not(.c-pagination__item--next):focus-visible {
  background: var(--dark-gray);
  border: 1px solid var(--dark-gray);
  color: var(--white)
}
.c-pagination__item.is-current {
  aspect-ratio: 1;
  background: var(--text-color);
  block-size: clamp(3.2rem,2.606rem + 1.524vw,4.8rem);
  border: 1px solid var(--text-color);
  border-radius: 4px;
  color: var(--white);
  display: grid;
  font-family: "Special Gothic Expanded One",sans-serif;
  font-size: clamp(2rem,1.851rem + .381vw,2.4rem);
  letter-spacing: 2.6px;
  line-height: 100%;
  place-content: center;
  pointer-events: none
}
.c-pagination__nav {
  aspect-ratio: 1;
  inline-size: 36px
}
.c-pagination__nav img {
  block-size: 100%;
  inline-size: 100%;
  -o-object-fit: contain;
  object-fit: contain
}
.c-pagination__item--next a,
.c-pagination__item--prev a {
  aspect-ratio: 1;
  background: var(--white);
  block-size: clamp(3.2rem,2.606rem + 1.524vw,4.8rem);
  border: 1px solid var(--text-color);
  border-radius: 4px;
  display: block;
  position: relative;
  transition: color var(--hover-transition) ease 0s,border-color var(--hover-transition) ease 0s
}
.c-pagination__item--next a::after,
.c-pagination__item--prev a::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/ico-btn-arrow.svg);
  mask-image: url(../img/common/ico-btn-arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  aspect-ratio: 14/12;
  background: var(--text-color);
  inline-size: 18px;
  inset: 0;
  margin: auto;
  mask-size: contain;
  transition: background-color var(--hover-transition) ease
}
.c-pagination__item--next a:focus-visible,
.c-pagination__item--prev a:focus-visible {
  border-color: var(--main-color);
  color: var(--main-color)
}
.c-pagination__item--next a:focus-visible::after,
.c-pagination__item--prev a:focus-visible::after {
  background: var(--main-color)
}
.c-pagination__item--next {
  margin-inline-start: 10px
}
.c-pagination__item--prev {
  margin-inline-end: 10px
}
.c-pagination__item--prev a::after {
  rotate: -180deg
}
.wrapper {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3,1fr);
  margin-inline: auto;
  max-inline-size: 1200px
}
.card {
  background-color: var(--c-smoke);
  display: grid;
  gap: 1em;
  grid-row: span 4;
  grid-template-rows: subgrid;
  min-inline-size: 320px;
  padding: 1.5em
}
.title {
  font-size: 1.15rem;
  grid-row: 2/3;
  line-height: 1.25
}
.thumbnail {
  aspect-ratio: 16/9;
  margin-block-start: -1.5em;
  margin-inline: -1.5em
}
.thumbnail > img {
  block-size: 100%;
  inline-size: 100%;
  -o-object-fit: cover;
  object-fit: cover
}
.description {
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: block-axis;
  -webkit-line-clamp: 3;
  contain: content
}
.price {
  border-block-start: 1px solid var(--c-gray);
  padding-block-start: 1.5em
}
.p-contact {
  padding-block-end: clamp(5.6rem,4.486rem + 2.857vw,8.6rem)
}
.p-contact__lead {
  font-family: var(--font-ja-min);
  font-size: clamp(1.4rem,1.326rem + .19vw,1.6rem);
  inline-size: 100%;
  max-inline-size: 424px
}
.p-tabPost__tabContents {
  margin-block-start: clamp(6.6rem,6.08rem + 1.333vw,8rem)
}
.hidden-tab {
  display: none!important
}
.p-tabPost__tabList {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(3,1fr);
  inline-size: 100%
}
.p-tabPost__tab {
  background: var(--gray);
  block-size: auto;
  border: 1px solid var(--gray);
  border-radius: 4px;
  color: var(--white);
  display: block;
  font-size: clamp(1.5rem,1.314rem + .476vw,2rem);
  inline-size: 100%;
  line-height: 180%;
  padding-block: 1rem;
  text-align: center;
  transition-duration: var(--hover-transition);
  transition-property: background-color,border-color;
  transition-timing-function: cubic-bezier(.8,0,.4,1)
}
.p-tabPost__tab[role=tab][aria-selected=true] {
  background: var(--white);
  border-color: var(--white);
  color: var(--text-color)
}
.p-tabPost__tab:focus-visible {
  background: var(--text-color);
  border-color: var(--white)
}
.p-tabPost__tabpanelWrapper {
  margin-block-start: 4px
}
.p-tabPost__tabpanel {
  background: var(--white);
  border-radius: 8px;
  display: block;
  padding: clamp(5rem,2.4rem + 6.667vw,12rem) clamp(2rem,1.257rem + 1.905vw,4rem)
}
.p-tabPost__tabpanel:target {
  display: revert
}
.p-tabPost__content {
  color: var(--text-color)
}
.p-contact__form {
  display: flex;
  flex-direction: column;
  gap: 40px;
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 730px
}
.p-contact__formWrap {
  display: flex;
  flex-direction: column;
  gap: 4px
}
.p-contact__footerWrap {
  display: flex;
  flex-direction: column;
  gap: 27px
}
.p-contact__row {
  display: grid;
  gap: 4px
}
.p-contact__row.--aifs {
  align-items: flex-start
}
.p-contact__data span {
  inline-size: 100%
}
.p-contact__head {
  font-family: var(--font-ja-min);
  font-size: 1.6rem;
  padding-block-start: 8px;
  position: relative
}
.p-contact__head span.--must {
  display: inline-block;
  padding-inline-start: 12px;
  position: relative
}
.p-contact__head span.--must::after {
  color: var(--red);
  content: "*";
  display: inline-block;
  font-size: 1.6rem;
  left: 0;
  position: absolute;
  top: calc(50% - 2px);
  translate: 0 -50%;
  white-space: nowrap
}
input[type=email],
input[type=number],
input[type=tel],
input[type=text],
select,
textarea {
  background: var(--bg-color-light);
  border: none;
  border: 1px solid transparent;
  border-radius: 0;
  border-radius: 4px;
  font-family: var(--font-ja);
  font-size: 1.6rem;
  inline-size: 100%;
  line-height: var(--line-height-base);
  outline: 0;
  padding: 9px 12px
}
input[type=email]::-moz-placeholder,
input[type=number]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=text]::-moz-placeholder,
select::-moz-placeholder,
textarea::-moz-placeholder {
  color: #ccc
}
input[type=email]::placeholder,
input[type=number]::placeholder,
input[type=tel]::placeholder,
input[type=text]::placeholder,
select::placeholder,
textarea::placeholder {
  color: #ccc
}
input[type=email]:focus-visible,
input[type=number]:focus-visible,
input[type=tel]:focus-visible,
input[type=text]:focus-visible,
select:focus-visible,
textarea:focus-visible {
  border: 1px solid var(--text-color)
}
textarea {
  --_min-rows: 5;
  --_max-rows: 20;
  --_padding: 12px;
  inline-size: 100%;
  max-block-size: calc(var(--_max-rows) * 1lh + var(--_padding) * 2);
  min-block-size: calc(var(--_min-rows) * 1lh + var(--_padding) * 2);
  padding: var(--_padding);
  field-sizing: content
}
input[type=checkbox] {
  display: inline flow-root;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}
input[type=checkbox]:focus + span::before {
  outline: auto oklch(60% .4 240deg);
  outline-offset: 2px
}
input[type=checkbox]:checked + span::after {
  opacity: 1
}
.p-contact__data-checkbox {
  display: grid;
  gap: 13px 10px;
  grid-template-columns: repeat(2,1fr);
  place-items: center
}
.p-contact__data-checkbox span.wpcf7-list-item-label {
  color: var(--gray);
  display: inline-block;
  font-size: 1.3rem;
  letter-spacing: .65px;
  line-height: 25px;
  padding-left: 30px;
  position: relative
}
.p-contact__data-checkbox span.wpcf7-list-item-label::before {
  block-size: 1.4rem;
  border: 1px solid var(--light-gray);
  content: "";
  inline-size: 1.4rem;
  left: 0;
  position: absolute;
  top: 50%;
  translate: 0 -50%
}
.p-contact__data-checkbox span.wpcf7-list-item-label::after {
  block-size: 12px;
  border-bottom: 1.5px solid var(--text-color);
  border-right: 1.5px solid var(--text-color);
  content: "";
  inline-size: 6px;
  left: 4px;
  opacity: 0;
  position: absolute;
  rotate: 45deg;
  top: calc(50% - 1px);
  transition: opacity var(--hover-transition) ease;
  translate: 0 -50%
}
input[type=button],
input[type=submit] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
  background: 0 0;
  border: none;
  box-sizing: border-box;
  cursor: pointer
}
input[type=button]::-webkit-search-decoration,
input[type=submit]::-webkit-search-decoration {
  display: none
}
.row.jc-center {
  justify-content: center
}
.p-contact__back,
.p-contact__confirm,
.p-contact__submit {
  cursor: pointer;
  display: inline-block;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  margin-inline: auto;
  position: relative;
  text-align: center
}
.p-contact__back::after,
.p-contact__confirm::after,
.p-contact__submit::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  height: 12px;
  mask-size: contain;
  top: 50%;
  transition: transform var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s;
  translate: 0 -50%;
  width: 22px
}
.p-contact__back:focus-visible::after,
.p-contact__confirm:focus-visible::after,
.p-contact__submit:focus-visible::after {
  background: var(--text-color)
}
.p-contact__back input[type=button],
.p-contact__back input[type=submit],
.p-contact__confirm input[type=button],
.p-contact__confirm input[type=submit],
.p-contact__submit input[type=button],
.p-contact__submit input[type=submit] {
  background: var(--text-color);
  border: 1px solid var(--text-color);
  border-radius: 8px;
  color: var(--white);
  cursor: pointer;
  display: inline-block;
  font-family: var(--font-ja-min);
  font-size: clamp(1.6rem,1.451rem + .381vw,2rem);
  font-weight: 400;
  inline-size: clamp(30.2rem,28.64rem + 4vw,34.4rem);
  line-height: var(--line-height-base);
  overflow: hidden;
  padding: 17px 103px 19px;
  position: relative;
  text-align: center;
  transition-duration: var(--hover-transition);
  transition-property: color,background-color,border-color
}
.p-contact__back input[type=button]:focus-visible,
.p-contact__back input[type=submit]:focus-visible,
.p-contact__confirm input[type=button]:focus-visible,
.p-contact__confirm input[type=submit]:focus-visible,
.p-contact__submit input[type=button]:focus-visible,
.p-contact__submit input[type=submit]:focus-visible {
  background: var(--white);
  color: var(--text-color);
  outline: 2px solid oklch(60% .4 240deg)
}
.p-contact__confirm::after,
.p-contact__submit::after {
  right: 20px
}
.p-contact__confirm:has(input[type=button]:focus-visible)::after {
  background: var(--text-color)
}
input[type=button]:focus-visible + .p-contact__confirm::after,
input[type=button]:focus-visible ~ .p-contact__confirm::after {
  background: var(--text-color)
}
.p-contact__confirm.is-focused::after {
  background: var(--text-color)
}
.p-contact__submit:has(input[type=submit]:focus-visible)::after {
  background: var(--text-color)
}
input[type=submit]:focus-visible + .p-contact__submit::after,
input[type=submit]:focus-visible ~ .p-contact__submit::after {
  background: var(--text-color)
}
.p-contact__submit.is-focused::after {
  background: var(--text-color)
}
.p-contact__back::after {
  left: 20px;
  rotate: 180deg
}
.p-contact__back input[type=button] {
  background: var(--gray);
  border-color: var(--gray);
  cursor: pointer
}
.p-contact__back:has(input[type=button]:focus-visible)::after {
  background: var(--text-color)
}
input[type=button]:focus-visible + .p-contact__back::after,
input[type=button]:focus-visible ~ .p-contact__back::after {
  background: var(--text-color)
}
.p-contact__back.is-focused::after {
  background: var(--text-color)
}
.p-contact__acceptance {
  color: var(--gray);
  font-size: 1.3rem;
  grid-template-columns: revert;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  letter-spacing: .05em;
  line-height: 25px;
  margin-inline: auto;
  place-content: center;
  position: relative
}
.p-contact__acceptance::before {
  color: var(--red);
  content: "*";
  display: inline-block;
  font-size: 1.2rem;
  font-weight: 700;
  left: 10px;
  letter-spacing: 2em;
  line-height: normal;
  position: absolute;
  top: calc(50% - 2px);
  translate: 0 -50%;
  white-space: nowrap
}
.p-contact__date--link {
  display: inline-block;
  text-decoration-line: underline;
  text-decoration-style: solid;
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s
}
.p-contact__date--link:focus-visible {
  opacity: .6
}
.p-confirm-area {
  display: none;
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 640px
}
.p-confirm-area .p-contact__head {
  padding-block: 0
}
.p-confirm-area__footerWrap {
  display: flex;
  gap: 8px;
  justify-content: center
}
.wpcf7-response-output.wpcf7-mail-sent-ok {
  display: none
}
.wpcf7-response-output {
  display: none
}
.wpcf7-not-valid-tip {
  color: var(--red);
  font-size: 1.4rem;
  letter-spacing: .7px
}
.p-contact-thanks {
  margin-block-end: 120px;
  margin-block-start: 210px
}
.p-contact-thanks__titleWrap {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 16px
}
.p-contact-thanks__title--en {
  font-family: var(--font-en);
  font-size: clamp(5.4rem,2.949rem + 6.286vw,12rem);
  line-height: 100%
}
.p-contact-thanks__title {
  font-family: var(--font-ja-min);
  font-size: clamp(2rem,1.554rem + 1.143vw,3.2rem);
  line-height: 90%
}
.p-contact-thanks__text {
  font-family: var(--font-ja-min);
  font-size: 1.5rem;
  margin-block-start: clamp(4.5rem,4.091rem + 1.048vw,5.6rem)
}
.p-contact-thanks__btn {
  margin-block-start: clamp(6.4rem,4.32rem + 5.333vw,12rem);
  margin-inline: auto;
  text-align: center
}
.p-confirm-area .p-contact__formWrap {
  gap: 24px
}
.p-confirm-area .p-confirm-area__footerWrap {
  margin-block-start: 40px
}
.p-confirm-area .p-contact__row {
  gap: 8px
}
.p-index-fv {
  margin-block-start: 136px
}
.p-index-fv__contents {
  margin-block-start: 42px;
  max-inline-size: 1800px;
  position: relative
}
.p-index-fv__textWrap {
  display: flex;
  justify-content: flex-start
}
.p-index-fv__text {
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  display: inline-block;
  height: clamp(34rem,33.071rem + 2.381vw,36.5rem);
  justify-content: flex-end;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
  width: clamp(11.5rem,9.829rem + 4.286vw,16rem);
  z-index: 1
}
.p-index-fv__text span {
  font-family: var(--font-ja-min);
  font-size: clamp(3.2rem,2.903rem + .762vw,4rem);
  letter-spacing: .1em;
  line-height: 110%
}
.p-index-fv__text .text-ruby {
  display: inline-block;
  font-size: 20px;
  letter-spacing: .2em;
  line-height: 120%;
  padding-block-start: 1.538vw;
  padding-inline-start: 32px
}
#text-01,
#text-02,
#text-03 {
  display: inline-block;
  inline-size: 0;
  opacity: 0;
  overflow: hidden;
  vertical-align: top;
  white-space: nowrap
}
#text-01 {
  animation: text-01 6s cubic-bezier(.8,0,.4,1) forwards
}
#text-02 {
  animation: text-02 6s cubic-bezier(.8,0,.4,1) forwards
}
#text-03 {
  animation: text-03 6s cubic-bezier(.8,0,.4,1) forwards
}
.p-index-fv__main-animation {
  aspect-ratio: 343/182;
  display: block;
  inline-size: 87.9487179487vw;
  margin-block-start: 36px;
  max-inline-size: 592px;
  opacity: 0;
  position: relative;
  transition: opacity .8s cubic-bezier(.8,0,.4,1),visibility 0s cubic-bezier(.8,0,.4,1);
  visibility: hidden;
  z-index: 1
}
.p-index-fv__main-animation img {
  transition: none
}
.p-index-fv__arrow-animation {
  aspect-ratio: 510/741;
  inline-size: 102.5641025641vw;
  opacity: 0;
  position: absolute;
  right: -2.821vw;
  top: 4.103vw;
  transition: opacity .2s cubic-bezier(.8,0,.4,1),visibility 0s cubic-bezier(.8,0,.4,1);
  visibility: hidden;
  z-index: -1
}
.p-index-fv__arrow-animation img {
  transition: none
}
.p-index-about {
  overflow: hidden;
  padding-block: clamp(13.4rem,7.42rem + 15.333vw,29.5rem) clamp(6.4rem,4.84rem + 4vw,10.6rem);
  position: relative
}
.p-index-about__wrap {
  display: flex;
  flex-direction: column;
  gap: clamp(6.4rem,4.914rem + 3.81vw,10.4rem);
  position: relative
}
.p-index-about__text {
  color: var(--gray);
  font-family: var(--font-ja-min);
  font-size: clamp(2rem,1.554rem + 1.143vw,3.2rem);
  z-index: 2
}
.p-index-about__text p + p {
  margin-block-start: 1.8em
}
.p-index-about__text .char-fade {
  color: var(--gray);
  display: inline-block;
  opacity: 1
}
.p-index-about__text .char-fade.is-active {
  color: var(--white)
}
.p-index-about__btn {
  z-index: 1
}
.p-index-about__arrrow-animation {
  aspect-ratio: 660/847;
  display: block;
  inline-size: 79.4871794872vw;
  isolation: isolate;
  margin-block-start: -67.949vw;
  margin-inline-start: 27%;
  opacity: 0;
  position: relative;
  transition: opacity .8s ease-out,visibility 0s cubic-bezier(.8,0,.4,1);
  visibility: hidden;
  z-index: 0
}
.p-index-about__arrrow-animation img {
  transition: none
}
.p-index-service {
  background: var(--white);
  color: var(--text-color);
  padding-block: clamp(6.4rem,4.32rem + 5.333vw,12rem)
}
.p-index-service__title {
  position: relative
}
.p-index-service__title::before {
  aspect-ratio: 424/44;
  background: url(../img/gif/arrow_service.gif) no-repeat center center/cover;
  content: "";
  inline-size: 108.7179487179vw;
  left: -16.41vw;
  max-inline-size: 670px;
  opacity: 0;
  position: absolute;
  transition: opacity .8s ease-out;
  z-index: 0
}
.p-index-service__title.is-active::before {
  opacity: 1
}
.p-index-service__title .c-section-title,
.p-index-service__title .c-section-title--en {
  z-index: 2
}
.p-index-service__contents {
  display: grid;
  gap: 40px;
  grid-template-areas: "lead" "text" "btn";
  grid-template-columns: 1fr;
  justify-items: start;
  margin-block-start: 72px
}
.p-index-service__lead {
  font-family: var(--font-ja-min);
  font-size: clamp(2.8rem,2.503rem + .762vw,3.6rem);
  grid-area: lead
}
.p-index-service__text {
  color: var(--text-color);
  grid-area: text;
  line-height: 1.8
}
.p-index-service__btn {
  grid-area: btn
}
.p-index-service__items {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-block-start: clamp(4rem,2.811rem + 3.048vw,7.2rem)
}
.p-index-service__item--link {
  background: var(--text-color);
  border: 1px solid var(--text-color);
  border-radius: 8px;
  color: var(--white);
  display: block;
  display: flex;
  flex-direction: column;
  gap: 32px;
  overflow: hidden;
  padding: 48px clamp(2rem,.366rem + 4.19vw,6.4rem) 93px clamp(2rem,.366rem + 4.19vw,6.4rem);
  position: relative
}
.p-index-service__item--link::after {
  bottom: -12px;
  color: transparent;
  content: attr(data-label);
  font-family: var(--font-en);
  font-size: clamp(4.4rem,2.766rem + 4.19vw,8.8rem);
  font-weight: 400;
  left: -3px;
  line-height: 120%;
  position: absolute;
  text-stroke: 1px rgba(255,255,255,.3);
  -webkit-text-stroke: 1px rgba(255,255,255,.3)
}
.p-index-service__item--title {
  border-block-end: 1px solid var(--white);
  display: block;
  font-size: 1.4rem;
  font-weight: 600;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  line-height: 120%;
  padding-block-end: 8px
}
.p-index-service__item--wrap {
  display: flex;
  flex-direction: column;
  gap: 20px
}
.p-index-service__item--textWrap {
  display: flex;
  flex-direction: column;
  gap: clamp(1.6rem,-.109rem + 4.381vw,6.2rem)
}
.p-index-service__item--subTitle {
  flex-shrink: 0;
  font-family: var(--font-ja-min);
  font-size: clamp(2.8rem,2.354rem + 1.143vw,4rem);
  inline-size: 320px;
  line-height: 150%
}
.p-index-service__item--icon {
  block-size: 5.6rem;
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  flex-shrink: 0;
  inline-size: 5.6rem;
  margin-inline-start: auto;
  position: relative
}
.p-index-service__item--icon::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/ico-link.svg);
  mask-image: url(../img/common/ico-link.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  aspect-ratio: 18/14;
  background: var(--white);
  inline-size: 18px;
  left: 50%;
  mask-size: contain;
  top: 50%;
  translate: -50% -50%
}
.p-index-news {
  background: var(--white);
  color: var(--text-color);
  overflow: hidden;
  padding-block: 74px;
  transition: background-color .8s cubic-bezier(.8,0,.4,1)
}
.p-index-news.is-dark {
  background: var(--text-color);
  color: var(--white)
}
.p-index-news__contents {
  display: grid;
  gap: 48px;
  grid-template-areas: "title" "swiper" "btn";
  grid-template-columns: 1fr
}
.p-index-news__titleWrap {
  grid-area: title
}
.p-index-news__btn {
  grid-area: btn
}
.p-index-news__swiper,
.p-index-news__swiper-container,
.p-index-news__swiper-slide,
.p-index-news__swiper-wrapper {
  position: relative
}
.p-index-news__swiper-container {
  grid-area: swiper;
  overflow: visible
}
.swiper.p-index-news__swiper {
  overflow: visible
}
.p-index-news__swiper-slide {
  block-size: clamp(29.9rem,28.786rem + 2.857vw,32.9rem);
  inline-size: clamp(29.9rem,28.786rem + 2.857vw,32.9rem)
}
.swiper-button-next,
.swiper-button-prev,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: unset;
  left: unset;
  margin: 0;
  padding: 0;
  right: unset;
  top: unset
}
.swiper-button-next::after,
.swiper-button-prev::after {
  content: ""
}
.p-index-news__swiperBtn {
  margin-block-start: clamp(2.2rem,1.234rem + 2.476vw,4.8rem)
}
.p-index-news__next,
.p-index-news__prev {
  background: var(--text-color);
  block-size: 56px;
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  inline-size: 56px;
  transition: background-color var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.p-index-news__next::after,
.p-index-news__prev::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  top: 50%;
  transition: background-color var(--hover-transition) cubic-bezier(.8,0,.4,1);
  translate: -50% -50%
}
.p-index-news__next:focus-visible,
.p-index-news__prev:focus-visible {
  background: var(--white)
}
.p-index-news__next:focus-visible::after,
.p-index-news__prev:focus-visible::after {
  background: var(--text-color)
}
.p-index-news__prev {
  rotate: 180deg
}
.p-index-news__loopTextWrap {
  inline-size: 100%;
  margin-block-start: 122px;
  overflow: hidden;
  position: relative
}
.p-index-news__loopText {
  color: transparent;
  font-family: var(--font-en);
  text-stroke: 1px rgba(255,255,255,.5);
  -webkit-text-stroke: 1px rgba(255,255,255,.5);
  display: inline-block;
  font-size: 5.5555555556vw;
  line-height: 120%;
  white-space: nowrap;
  will-change: transform
}
.p-index-company {
  background: var(--text-color);
  margin-inline: clamp(2.4rem,1.806rem + 1.524vw,4rem);
  padding-block: clamp(2.1rem,-.091rem + 5.619vw,8rem) clamp(10.4rem,9.211rem + 3.048vw,13.6rem)
}
.p-index-company__link {
  background: var(--text-color);
  border: 1px solid var(--white);
  border-radius: 8px;
  color: var(--white);
  display: grid;
  gap: 40px;
  inline-size: 100%;
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 1360px;
  overflow: hidden;
  padding: clamp(7.2rem,6.903rem + .762vw,8rem) clamp(2rem,.366rem + 4.19vw,6.4rem) clamp(3.2rem,1.714rem + 3.81vw,7.2rem) clamp(2rem,.366rem + 4.19vw,6.4rem);
  place-content: center;
  place-items: center;
  transition: background-color var(--hover-transition) ease-out,color var(--hover-transition) ease-out;
  transition-delay: 0s
}
.p-index-company__btn {
  aspect-ratio: 1;
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  inline-size: 56px;
  position: relative
}
.p-index-company__btn::before {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--arrow-color,var(--white));
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  top: 50%;
  transition: background-color var(--hover-transition) ease-out;
  translate: -50% -50%
}
.p-index-recruit {
  padding-block: 8px 68px;
  position: relative
}
.p-index-recruit::after,
.p-index-recruit::before {
  content: "";
  position: absolute;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: cover;
  background: var(--white);
  left: 50%;
  mask-size: cover;
  translate: -50%
}
.p-index-recruit::before {
  -webkit-mask-image: url(../img/common/line-head-sp.svg);
  aspect-ratio: 697/70;
  inline-size: 178.7179487179vw;
  mask-image: url(../img/common/line-head-sp.svg);
  top: -4.615vw
}
.p-index-recruit::after {
  -webkit-mask-image: url(../img/common/line-foot-sp.svg);
  aspect-ratio: 640/81;
  bottom: 5.128vw;
  inline-size: 164.1025641026vw;
  mask-image: url(../img/common/line-foot-sp.svg)
}
.p-index-recruit__bg {
  background: var(--white);
  padding-block: clamp(.1rem,-2.537rem + 6.762vw,7.2rem) clamp(7.2rem,3.931rem + 8.381vw,16rem)
}
.p-index-recruit__inner {
  color: var(--text-color);
  padding-block-start: 72px
}
.p-index-recruit__content {
  display: flex;
  flex-direction: column;
  gap: 60px;
  position: relative
}
.p-index-recruit__titleWrap {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: clamp(3.2rem,2.903rem + .762vw,4rem);
  z-index: 2
}
.p-index-recruit__title {
  font-family: var(--font-ja-min);
  font-size: clamp(6.3rem,4.814rem + 3.81vw,10.3rem);
  line-height: 130%
}
.p-index-recruit__text {
  z-index: 2
}
.p-index-cta__bg {
  margin-block-start: -22px
}
.p-blog__menus {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px
}
.p-blog__items {
  display: block grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fill,minmax(min(var(320px),100%),1fr));
  margin-inline: auto;
  max-inline-size: 1280px
}
.p-cta {
  padding-block: clamp(8rem,6.514rem + 3.81vw,12rem) clamp(8.8rem,6.72rem + 5.333vw,14.4rem)
}
.p-cta__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(6.4rem,5.917rem + 1.238vw,7.7rem)
}
.p-cta__items {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(1,1fr)
}
.p-cta__link {
  align-items: center;
  display: flex;
  gap: 40px;
  justify-content: space-between;
  overflow: hidden;
  padding-block-end: clamp(3.2rem,2.606rem + 1.524vw,4.8rem);
  position: relative
}
.p-cta__link::before {
  background: var(--white);
  block-size: 1px;
  bottom: 0;
  content: "";
  inline-size: 0;
  left: 0;
  position: absolute;
  transition: inline-size var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition)
}
.p-cta__link::after {
  background: var(--white);
  block-size: 1px;
  bottom: 1px;
  content: "";
  inline-size: 100%;
  left: 0;
  position: absolute;
  transition: translate var(--hover-transition) cubic-bezier(.8,0,.4,1)
}
.p-cta__link:focus-visible::before {
  inline-size: 100%
}
.p-cta__link:focus-visible::after {
  translate: 100%
}
.p-cta__link:focus-visible .c-btn-circle::before {
  animation: arrowSlideOut var(--hover-transition) cubic-bezier(.8,0,.4,1) forwards
}
.p-cta__link:focus-visible .c-btn-circle::after {
  animation: arrowSlideIn var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition) forwards
}
.p-cta__textWrap {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  font-family: var(--font-ja-min);
  gap: clamp(.8rem,.503rem + .762vw,1.6rem)
}
.p-cta__about {
  font-size: 1.6rem;
  line-height: 120%
}
.p-cta__linkText {
  font-size: 2.4rem;
  line-height: 120%
}
.c-btn-circle {
  block-size: 56px;
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  flex-shrink: 0;
  flex-shrink: 0;
  inline-size: 56px;
  overflow: hidden;
  position: relative
}
.c-btn-circle::before {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  top: 50%;
  transform-origin: center;
  translate: -50% -50%
}
.c-btn-circle::after {
  content: "";
  position: absolute;
  -webkit-mask-image: url(../img/common/arrow.svg);
  mask-image: url(../img/common/arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  background: var(--white);
  block-size: 12px;
  inline-size: 22px;
  left: 50%;
  mask-size: contain;
  opacity: 0;
  top: 50%;
  transform-origin: center;
  translate: -50% -50%
}
.p-privacy {
  margin-block-end: clamp(5.6rem,3.817rem + 4.571vw,10.4rem)
}
.p-privacy__lead {
  font-family: var(--font-ja-min);
  font-size: clamp(1.4rem,1.326rem + .19vw,1.6rem);
  inline-size: 100%;
  line-height: 180%;
  max-inline-size: 442px
}
.p-privacy__content {
  display: flex;
  flex-direction: column;
  gap: 56px;
  margin-block-start: clamp(6.4rem,5.806rem + 1.524vw,8rem)
}
.p-privacy__contentWrap {
  border-block-start: 1px solid var(--dark-gray);
  display: flex;
  flex-direction: column;
  font-size: 1.4rem;
  gap: 24px;
  line-height: 180%;
  padding-block-start: 5.6rem
}
.p-privacy__contentWrap h2 {
  font-family: var(--font-ja-min);
  font-size: 2rem;
  line-height: 180%;
  white-space: nowrap
}
.p-privacy__contentWrap .subtext {
  margin-inline-start: 1.56em
}
.p-privacy__contentWrap ol {
  counter-reset: number
}
.p-privacy__contentWrap ol .number {
  padding-left: 1.56em;
  text-indent: -1.1em
}
.p-privacy__contentWrap ol .number::before {
  content: counter(number) ". ";
  counter-increment: number;
  flex-shrink: 0;
  inline-size: 2em
}
.p-privacy__contentWrap ul {
  padding-inline-start: 1.6em
}
.p-privacy__contentWrap ul li {
  line-height: 180%;
  padding-inline-start: 1.4em;
  position: relative
}
.p-privacy__contentWrap ul li::before {
  aspect-ratio: 1;
  background: var(--white);
  block-size: 4px;
  border-radius: calc(infinity * 1px);
  content: "";
  inline-size: 4px;
  left: 6px;
  position: absolute;
  top: .8em
}
.p-privacy__heading {
  margin-block-start: 1.8em
}
.p-company-overview__contents {
  display: flex;
  flex-direction: column;
  gap: clamp(2.8rem,2.354rem + 1.143vw,4rem)
}
.p-company-overview__list {
  border-block-end: 1px solid var(--dark-gray);
  display: grid;
  grid-template-columns: 122px auto;
  padding: clamp(2rem,1.629rem + .952vw,3rem) clamp(.8rem,-.091rem + 2.286vw,3.2rem) clamp(2.3rem,2.003rem + .762vw,3.1rem)
}
.p-company-overview__name {
  font-family: var(--font-ja-min);
  font-size: 1.4rem;
  line-height: 150%
}
.p-company-overview__detail {
  font-family: var(--font-ja-min);
  font-size: 1.4rem;
  line-height: 150%
}
.p-company-access {
  margin-block-start: clamp(9.4rem,6.949rem + 6.286vw,16rem)
}
.p-company-access__contents {
  display: flex;
  flex-direction: column;
  gap: 48px
}
.p-company-access__map {
  aspect-ratio: 1;
  border-radius: 8px;
  display: block;
  inline-size: 87.6923076923vw;
  max-inline-size: 592px;
  overflow: hidden;
  position: relative;
  transition: filter var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s
}
.p-company-access__map::before {
  background: rgba(0,0,0,.6);
  content: "";
  inset: 0;
  position: absolute;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s;
  z-index: 1
}
.p-company-access__map::after {
  content: "View Map";
  position: absolute;
  -webkit-mask-image: url(../img/view-map.svg);
  mask-image: url(../img/view-map.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  aspect-ratio: 196/32;
  background: var(--white);
  inline-size: clamp(19.6rem,18.634rem + 2.476vw,22.2rem);
  left: 50%;
  mask-size: contain;
  top: 50%;
  transition: opacity var(--hover-transition) cubic-bezier(.8,0,.4,1) 0s;
  translate: -50% -50%;
  z-index: 2
}
.p-company-access__map:focus-visible::after,
.p-company-access__map:focus-visible::before {
  opacity: 1
}
.p-company-team {
  background: var(--white);
  color: var(--text-color);
  margin-block-start: clamp(5.6rem,1.737rem + 9.905vw,16rem);
  overflow: hidden;
  padding-block: clamp(8rem,5.029rem + 7.619vw,16rem);
  position: relative
}
.p-company-team::before {
  aspect-ratio: 304/232;
  background: url(../img/gif/arrow_company.gif) no-repeat center center/cover;
  content: "";
  inline-size: 77.9487179487vw;
  opacity: 0;
  position: absolute;
  right: -20px;
  top: -2.051vw;
  transition: opacity .8s ease-out,visibility 0s cubic-bezier(.8,0,.4,1);
  visibility: hidden;
  z-index: 0
}
.p-company-team.is-arrow-visible::before {
  opacity: 1;
  transition: opacity .8s ease-out,visibility 0s cubic-bezier(.8,0,.4,1) .8s;
  visibility: visible
}
.p-company-team__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(4.8rem,3.611rem + 3.048vw,8rem)
}
.p-company-team__contents {
  display: flex;
  flex-direction: column;
  gap: 40px
}
.p-company-team__img {
  aspect-ratio: 343/373;
  display: block;
  flex-shrink: 0;
  inline-size: 87.6923076923vw
}
.p-company-team__textWrap {
  display: flex;
  flex-direction: column;
  gap: 30px;
  max-inline-size: 573px;
  z-index: 1
}
.p-company-team__nameWrap {
  display: flex;
  flex-direction: column;
  gap: 16px
}
.p-company-team__name {
  font-family: var(--font-en);
  font-size: clamp(3.2rem,2.903rem + .762vw,4rem);
  line-height: 90%
}
.p-company-team__name--ja {
  font-family: var(--font-ja-min);
  font-size: 1.6rem;
  line-height: 120%
}
.p-company-team__text {
  font-size: 1.4rem;
  line-height: 180%
}
.p-404 {
  margin-block-end: 120px;
  margin-block-start: 210px
}
.p-404__titleWrap {
  display: flex;
  flex-direction: column;
  gap: 40px
}
.p-404__text {
  font-family: var(--font-ja-min);
  font-size: 1.5rem
}
.p-404__btn {
  margin-block-start: clamp(6.4rem,4.32rem + 5.333vw,12rem);
  margin-inline: auto;
  text-align: center
}
.u-visually-hidden {
  block-size: 4px!important;
  border: none!important;
  contain: strict!important;
  display: block!important;
  inline-size: 4px!important;
  inset: 0!important;
  margin: 0!important;
  opacity: 0!important;
  padding: 0!important;
  pointer-events: none!important;
  position: fixed!important;
  visibility: visible!important
}
.u-inline-block {
  display: inline-block;
  font-weight: inherit
}
.u-manual-br {
  display: contents
}
.u-manual-br:lang(ja) {
  display: block flow-root
}
.u-manual-wbr {
  display: contents
}
.u-manual-wbr:lang(ja) {
  display: inline flow-root
}
.u-text {
  font-size: 1.6rem;
  font-weight: 600
}
.u-text p + p {
  margin-block-start: 1.8em
}
@media (any-hover:hover) {
  a:hover {
    cursor: pointer;
    text-decoration: none
  }
  .l-drawer__link:hover {
    opacity: .6
  }
  .l-footer__logo a:hover {
    opacity: .6
  }
  .l-header__logo:hover {
    opacity: .6
  }
  .l-breadcrumb__list a:hover {
    opacity: .6
  }
  .c-service-item__link:hover {
    border-color: var(--white)
  }
  .c-link__privacy:hover {
    opacity: .6
  }
  .c-menu:hover {
    background-position: 0 40%
  }
  .c-btn:hover::before {
    inline-size: 100%
  }
  .c-btn:hover::after {
    translate: 100%
  }
  .c-btn:hover .c-btn__arrow::before {
    animation: arrowSlideOut var(--hover-transition) cubic-bezier(.8,0,.4,1) forwards
  }
  .c-btn:hover .c-btn__arrow::after {
    animation: arrowSlideIn var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition) forwards
  }
  .c-card__link:hover {
    background-color: var(--white);
    color: var(--text-color)
  }
  .c-card__link:hover .c-card__category {
    border-color: var(--text-color);
    color: var(--text-color)
  }
  .c-list__link:hover {
    background: var(--hover-gray)
  }
  .c-list__link:hover::after {
    transform: translate(0,4px)
  }
  .c-pagination__item a:not(.c-pagination__item--prev):not(.c-pagination__item--next):hover {
    background: var(--dark-gray);
    border: 1px solid var(--dark-gray);
    color: var(--white)
  }
  .c-pagination__item--next a:hover,
  .c-pagination__item--prev a:hover {
    border-color: var(--main-color);
    color: var(--main-color)
  }
  .c-pagination__item--next a:hover::after,
  .c-pagination__item--prev a:hover::after {
    background: var(--main-color)
  }
  .p-tabPost__tab:not([aria-selected=true]):hover {
    background: var(--text-color);
    border-color: var(--white)
  }
  input[type=email]:hover,
  input[type=number]:hover,
  input[type=tel]:hover,
  input[type=text]:hover,
  select:hover,
  textarea:hover {
    border: 1px solid var(--text-color)
  }
  .p-contact__back:hover::after,
  .p-contact__confirm:hover::after,
  .p-contact__submit:hover::after {
    background: var(--text-color)
  }
  .p-contact__back input[type=button]:hover,
  .p-contact__back input[type=submit]:hover,
  .p-contact__confirm input[type=button]:hover,
  .p-contact__confirm input[type=submit]:hover,
  .p-contact__submit input[type=button]:hover,
  .p-contact__submit input[type=submit]:hover {
    background: var(--white);
    color: var(--text-color)
  }
  .p-contact__date--link:hover {
    opacity: .6;
    -webkit-text-decoration: revert;
    text-decoration: revert
  }
  .p-index-news__next:hover,
  .p-index-news__prev:hover {
    background: var(--white)
  }
  .p-index-news__next:hover::after,
  .p-index-news__prev:hover::after {
    background: var(--text-color)
  }
  .p-cta__link:hover::before {
    inline-size: 100%
  }
  .p-cta__link:hover::after {
    translate: 100%
  }
  .p-cta__link:hover .c-btn-circle::before {
    animation: arrowSlideOut var(--hover-transition) cubic-bezier(.8,0,.4,1) forwards
  }
  .p-cta__link:hover .c-btn-circle::after {
    animation: arrowSlideIn var(--hover-transition) cubic-bezier(.8,0,.4,1) var(--hover-transition) forwards
  }
  .p-company-access__map:hover::before {
    opacity: 1
  }
  .p-company-access__map:hover::after {
    opacity: 1
  }
}
@media (pointer:coarse) {
  a[href^="tel:"] {
    pointer-events: auto
  }
}
@media (prefers-reduced-motion:reduce) {
  *,
  ::after,
  ::backdrop,
  ::before {
    animation-delay: 0s!important;
    animation-duration: 1ms!important;
    animation-iteration-count: 1!important;
    background-attachment: scroll!important;
    scroll-behavior: auto!important;
    transition-delay: 0s!important;
    transition-duration: 1ms!important
  }
  img[src*=".gif"] {
    animation-duration: unset!important;
    animation-iteration-count: unset!important
  }
}
@media (scripting:none) {
  .c-loading {
    display: none
  }
}
@media (hover:hover) {
  .c-to-top:hover {
    opacity: .6
  }
}
@media screen and (min-width:576px) {
  .p-contact-thanks__text {
    text-align: center
  }
  .p-index-recruit::after {
    bottom: -8px
  }
  .p-404__title {
    text-align: center
  }
  .p-404__text {
    text-align: center
  }
}
@media screen and (min-width:768px) {
  .l-drawer__icon {
    display: none
  }
  .l-footer__contents {
    flex-direction: row;
    justify-content: space-between
  }
  .l-footer__linkWrap {
    margin-block-start: 24px
  }
  .l-header {
    background: var(--text-color);
    block-size: 90px;
    block-size: 100px;
    display: block;
    inline-size: -moz-fit-content;
    inline-size: fit-content;
    isolation: isolate;
    mix-blend-mode: exclusion;
    padding-inline: clamp(2rem,-.971rem + 7.619vw,10rem);
    position: fixed;
    right: 0;
    top: 0;
    z-index: 20
  }
  .l-header__logo {
    left: clamp(2rem,-1.12rem + 8vw,10.4rem);
    top: 40px
  }
  .l-header__menu {
    align-items: center;
    display: flex;
    -moz-column-gap: 24px;
    block-size: inherit;
    column-gap: 24px
  }
  .l-header__lists li a {
    line-height: 100px;
    line-height: revert;
    margin-block-start: 16px;
    padding-block: 16px
  }
  .l-inner {
    max-inline-size: 1200px;
    padding-inline: 40px
  }
  .l-inner__narrow {
    max-inline-size: 1200px;
    padding-inline: 40px
  }
  .l-section-pb {
    padding-block: 120px
  }
  .c-service-item__link {
    min-inline-size: 360px;
    padding: 32px
  }
  .c-service-item__about {
    font-size: 1.2rem
  }
  .c-service-item__title {
    font-size: 2rem
  }
  .c-link__footer {
    flex-direction: row-reverse;
    justify-content: space-between
  }
  .c-section-titleWrap {
    align-items: self-end;
    flex-direction: row
  }
  .c-section-titleWrap.--center {
    flex-direction: column
  }
  .c-section-title {
    display: block;
    margin-block-end: clamp(.1rem,-1.051rem + 2.952vw,3.2rem)
  }
  .c-lower-titleWrap {
    gap: 10px
  }
  .c-list {
    display: block grid;
    grid-template-columns: max-content auto 1fr
  }
  .c-list__link {
    grid-column: 1/-1;
    grid-template-columns: subgrid;
    -moz-column-gap: 24px;
    align-items: baseline;
    column-gap: 24px;
    gap: 24px
  }
  .c-list__link::after {
    right: 10px;
    top: calc(50% + 1px)
  }
  .c-list__meta {
    display: contents
  }
  .c-list__title {
    grid-column: 3;
    grid-row: 1
  }
  .c-list__publish {
    grid-column: 1;
    grid-row: 1
  }
  .c-list__categories {
    grid-column: 2;
    grid-row: 1
  }
  .c-list__category {
    padding: 4px 16px 5px 16px
  }
  .c-to-top {
    bottom: 70px;
    right: 40px
  }
  .c-pagination__item--next {
    margin-inline-start: 24px
  }
  .c-pagination__item--prev {
    margin-inline-end: 24px
  }
  .p-tabPost__tabList {
    gap: 8px
  }
  .p-tabPost__tab {
    border-radius: 8px;
    padding: 24px 32px
  }
  .p-tabPost__tabpanelWrapper {
    margin-block-start: 8px
  }
  .p-contact__formWrap {
    gap: 24px
  }
  .p-contact__footerWrap {
    gap: 32px
  }
  .p-contact__row {
    align-items: center;
    gap: 0;
    grid-template-columns: 180px 1fr
  }
  .p-contact__head {
    padding-block: 8px
  }
  .p-contact__head span.--must {
    padding-inline-start: 16px
  }
  input[type=email],
  input[type=number],
  input[type=tel],
  input[type=text],
  select,
  textarea {
    padding: 9px 24px
  }
  .p-contact__back input[type=button],
  .p-contact__back input[type=submit],
  .p-contact__confirm input[type=button],
  .p-contact__confirm input[type=submit],
  .p-contact__submit input[type=button],
  .p-contact__submit input[type=submit] {
    padding: 14px 103px 15px
  }
  .p-contact__confirm::after,
  .p-contact__submit::after {
    right: 36px
  }
  .p-contact__back::after {
    left: 36px
  }
  .p-contact__acceptance {
    font-size: 1.4rem
  }
  .p-contact__acceptance::before {
    left: 0
  }
  .p-confirm-area__footerWrap {
    gap: 24px;
    margin-block-start: 80px
  }
  .p-contact-thanks {
    margin-block-start: 235px
  }
  .p-contact-thanks__titleWrap {
    gap: 24px
  }
  .p-contact-thanks__title {
    line-height: 140%
  }
  .p-contact-thanks__text {
    font-size: 1.6rem
  }
  .p-confirm-area .p-contact__formWrap {
    gap: 32px
  }
  .p-confirm-area .p-contact__row {
    gap: 0
  }
  .p-index-fv__contents {
    margin-block-start: 0
  }
  .p-index-fv__textWrap {
    justify-content: flex-end
  }
  .p-index-fv__text .text-ruby {
    padding-block-start: 22px;
    padding-inline-start: 46px
  }
  .p-index-fv__main-animation {
    aspect-ratio: 878/465;
    inline-size: 60.9722222222vw;
    margin-block-start: -13.958vw;
    margin-inline-start: -1%;
    max-inline-size: 878px
  }
  .p-index-fv__arrow-animation {
    aspect-ratio: 1419/1161;
    inline-size: 97.744vw;
    left: -36.341vw;
    max-inline-size: 1176px;
    right: revert;
    top: -3%
  }
  .p-index-about__arrrow-animation {
    block-size: auto;
    inline-size: 41.6666666667vw;
    margin-block-start: -46.806vw;
    margin-inline-start: 60%;
    max-inline-size: 800px
  }
  .p-index-service__title::before {
    aspect-ratio: 1199/118;
    inline-size: 91.1458333333vw;
    left: -20%;
    max-inline-size: 1196px;
    top: 41%;
    translate: revert
  }
  .p-index-service__item--link {
    gap: 29px;
    padding: 48px clamp(2rem,.366rem + 4.19vw,6.4rem) 56px clamp(2rem,.366rem + 4.19vw,6.4rem)
  }
  .p-index-service__item--link::after {
    bottom: -1.66015625vw;
    left: revert;
    right: 0
  }
  .p-index-service__item--wrap {
    flex-direction: row;
    gap: 40px;
    justify-content: space-between
  }
  .p-index-service__item--textWrap {
    align-items: flex-start;
    flex-direction: row;
    justify-content: space-between
  }
  .p-index-news {
    padding-block-end: 4px;
    padding-block-start: clamp(6.2rem,4.046rem + 5.524vw,12rem)
  }
  .p-index-news__contents {
    grid-template-areas: "title btn" "swiper swiper";
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    row-gap: 48px;
    -moz-column-gap: 48px;
    column-gap: 48px
  }
  .p-index-news__btn {
    align-self: end;
    margin-block-end: 24px
  }
  .swiper-button-next {
    left: 72px
  }
  .p-index-company__link {
    grid-template-columns: 1fr auto
  }
  .p-index-company__titleWrap {
    gap: 0;
    margin-inline-end: -40px
  }
  .p-index-recruit::before {
    aspect-ratio: 1530/54;
    inline-size: 106.25vw;
    -webkit-mask-image: url(../img/common/line-head.svg);
    mask-image: url(../img/common/line-head.svg);
    top: -3%
  }
  .p-index-recruit::after {
    aspect-ratio: 1567/90;
    inline-size: 108.8194444444vw;
    -webkit-mask-image: url(../img/common/line-foot.svg);
    bottom: 4%;
    mask-image: url(../img/common/line-foot.svg)
  }
  .p-index-recruit__text {
    margin-block-start: 16px
  }
  .p-cta__items {
    grid-template-columns: repeat(2,1fr)
  }
  .p-cta__linkText {
    font-size: 2.6rem
  }
  .c-btn-circle {
    block-size: clamp(4.8rem,4.503rem + .762vw,5.6rem);
    inline-size: clamp(4.8rem,4.503rem + .762vw,5.6rem)
  }
  .p-company-overview__contents {
    align-items: start;
    flex-direction: row;
    justify-content: space-between
  }
  .p-company-overview__head {
    align-self: flex-start;
    position: sticky;
    top: 120px;
    z-index: 1
  }
  .p-company-overview__lists .p-company-overview__list:first-child {
    padding: 0 clamp(.8rem,-.091rem + 2.286vw,3.2rem) clamp(2.3rem,1.966rem + .857vw,3.2rem)
  }
  .p-company-overview__list {
    align-items: center;
    gap: 64px;
    inline-size: 100%;
    max-inline-size: 584px
  }
  .p-company-access__contents {
    flex-direction: row;
    gap: 40px;
    justify-content: space-between
  }
  .p-company-access__map {
    aspect-ratio: 742/426;
    inline-size: 51.5277777778vw;
    max-block-size: 426px;
    max-inline-size: 742px
  }
  .p-company-access__map::before {
    opacity: 0
  }
  .p-company-access__map::after {
    opacity: 0
  }
  .p-company-team::before {
    inline-size: 42.3611111111vw
  }
  .p-company-team__contents {
    flex-direction: row;
    justify-content: space-between
  }
  .p-company-team__img {
    aspect-ratio: 462/505;
    inline-size: 32.0833333333vw;
    max-inline-size: 462px
  }
  .p-404 {
    margin-block-start: 235px
  }
  .p-404__text {
    font-size: 1.6rem
  }
  .u-hidden-pc {
    display: none
  }
}
@media screen and (min-width:1024px) {
  .p-contact__head span.--must::after {
    top: 50%;
    translate: 0 -50%
  }
  .p-index-fv {
    margin-block-start: 9.6527777778vw
  }
  .p-index-fv__arrow-animation {
    inline-size: 81.6666666667vw;
    left: -22%;
    top: -3%
  }
  .p-index-service__title::before {
    inline-size: 83.2638888889vw
  }
  .p-index-service__contents {
    gap: 26px;
    grid-template-areas: "lead text" "btn text";
    grid-template-columns: minmax(494px,1fr) auto;
    grid-template-rows: auto auto
  }
  .p-index-recruit__content {
    flex-direction: row;
    gap: clamp(2.4rem,1.806rem + 1.524vw,4rem);
    justify-content: space-between
  }
  .p-index-recruit__content::after {
    aspect-ratio: 879/156;
    background: url(../img/gif/moveon_gray.gif) no-repeat center center/cover;
    content: "";
    inline-size: 61.0416666667vw;
    left: 50%;
    max-inline-size: 879px;
    position: absolute;
    top: 50%;
    translate: -50% -50%;
    z-index: 0
  }
  .p-index-cta__bg {
    margin-block-start: 32px
  }
  .p-privacy__contentWrap {
    display: grid;
    gap: clamp(2.4rem,1.063rem + 3.429vw,6rem);
    grid-template-columns: 300px 1fr
  }
}
@media screen and (min-width:1280px) {
  .p-index-service__item--link::after {
    bottom: -22px
  }
  .p-index-news__loopText {
    font-size: 8rem
  }
  .p-index-recruit::after {
    bottom: 2%
  }
  .p-cta__items {
    gap: 44px;
    grid-template-columns: repeat(3,1fr)
  }
  .p-privacy__contentWrap {
    gap: clamp(2.4rem,-.831rem + 8.286vw,11.1rem)
  }
}
@media (min-width:1600px) and (max-width:1920px) {
  .p-index-about {
    padding-block: 18.438vw 6.625vw
  }
}
@media screen and (min-width:1920px) {
  .p-index-fv__main-animation {
    margin-block-start: -200px
  }
  .p-index-about__arrrow-animation {
    inline-size: 41.6666666667vw;
    margin-block-start: -900px
  }
  .p-index-service {
    margin-block-start: 5.521vw;
    padding-block: 8.333vw
  }
  .p-privacy__contentWrap {
    font-size: 1.6rem
  }
  .p-company-team__text {
    font-size: 1.6rem
  }
}
@media screen and (max-width:767px) {
  .l-footer__headWrap {
    margin-inline: 8px
  }
  .p-contact__submit input[type=submit] {
    inline-size: 37.692vw;
    max-inline-size: 260px;
    padding: 17px 20.513vw 19px 8.205vw
  }
  .p-contact__back input[type=button] {
    inline-size: 37.692vw;
    max-inline-size: 260px;
    padding: 17px 8.205vw 19px 20.513vw
  }
  .p-contact__acceptance span.wpcf7-list-item {
    margin: 0 0 0 2em
  }
  .p-index-service__title::before {
    top: 57%;
    translate: 0 -50%
  }
  .u-hidden-sp {
    display: none
  }
}
@keyframes text-01 {
  from {
    height: 0;
    opacity: 0
  }
  38% {
    height: 10em;
    opacity: 1
  }
  to {
    height: 10em;
    opacity: 1
  }
}
@keyframes text-02 {
  0% {
    height: 0;
    opacity: 0
  }
  30% {
    height: 0;
    opacity: 0
  }
  55% {
    height: 8em;
    opacity: 1
  }
  to {
    height: 8em;
    opacity: 1
  }
}
@keyframes text-03 {
  0% {
    height: 0;
    opacity: 0
  }
  30% {
    height: 0;
    opacity: 0
  }
  55% {
    height: 8em;
    opacity: 1
  }
  to {
    height: 8em;
    opacity: 1
  }
}
@keyframes arrowSlideOut {
  0% {
    opacity: 1;
    translate: -50% -50%
  }
  100% {
    opacity: 0;
    translate: calc(-50% + 20px) -50%
  }
}
@keyframes arrowSlideIn {
  0% {
    opacity: 0;
    translate: calc(-50% - 20px) -50%
  }
  100% {
    opacity: 1;
    translate: -50% -50%
  }
}