@charset "UTF-8";
:root {
  --base-font-family: "Noto Sans JP", sans-serif;
  --en-font-family: "Jost", sans-serif;
  --color-black: #333333;
  --color-white: #ffffff;
  --color-main: #284e3e;
  --color-sub: #7ab945;
  --color-green: #00833a;
  --color-light-green: #effae8;
  --color-shadow-green: #9bc691;
  --filter: drop-shadow(0 0 4px #609b50);
  --filter-light: drop-shadow(0 0 3px color-mix(in srgb, var(--color-shadow-green), transparent 25%));
  --color-gray: #909091;
  --color-light-gray: #e0e0e1;
  --color-active: #defccb;
  --color-accent: #ff4367;
  --color-border: #a6a6a7;
  --color-link: #036ea9;
  --header-height: 7.625rem;
  --inner-pc: 75rem;
  --inner-padding-pc: 3.125rem;
  --hover-transition: 0.3s ease-in-out;
  --button-bg: linear-gradient(
      120deg,
      var(--color-green),
      var(--color-sub) 33%,
      var(--color-sub) 50%,
      var(--color-green) 84%
    )
    100% 0 / 200% 100%;
  --bg: #fffcef url(../images/common/bg.webp) repeat top center / 35.125rem;
  --border: 1px solid var(--color-border);
  --border-main: 1px solid var(--color-main);
  --border-light-green: 1px solid var(--color-green);
  --border-dashed-block-start: repeating-linear-gradient(
      90deg,
      var(--color-border),
      var(--color-border) 4px,
      transparent 4px,
      transparent 6px
    )
    repeat-x left top / 100% 1px;
  --image-border-radius: 2.8125rem 0 2.8125rem 0;
}
@media screen and (max-width: 767px) {
  :root {
    --header-height: 3.75rem;
    --inner-sp: 33.75rem;
    --inner-padding-sp: 1.25rem;
    --bg: #fffcef url(../images/common/bg.webp) repeat top center / 17.5rem;
    --border-radius: 1.375rem 0 1.375rem 0;
  }
}

:root:has(.p-header.is-scrolled) {
  --header-height: 5rem;
}
@media screen and (max-width: 767px) {
  :root:has(.p-header.is-scrolled) {
    --header-height: 3.125rem;
  }
}

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

/* Remove default padding */
ul,
ol {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol {
  list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img {
  max-width: 100%;
  display: block;
  width: 100%;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Blur images when they have no alt attribute */
img:not([alt]) {
  filter: blur(10px);
}

/* フォームリセット */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

/* リキッドレイアウト対応 */
html {
  font-size: 16px;
}
@media screen and (max-width: 1400px) {
  html {
    font-size: 16px;
  }
}
@media screen and (max-width: 1023px) {
  html {
    font-size: 16px;
  }
}
@media (max-width: 1300px) {
  html {
    font-size: 1.2307692308vw;
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: 16px;
  }
}
@media screen and (max-width: 599px) {
  html {
    font-size: 16px;
  }
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}

/* pcの電話番号発信対応 */
a[href^="tel:"] {
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  a[href^="tel:"] {
    pointer-events: initial;
  }
}

html {
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height);
}

body {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  background: var(--bg);
  color: var(--color-black);
  font-family: var(--base-font-family);
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere;
  /* 収まらない場合に折り返す */
  word-break: normal;
  /* 単語の分割はデフォルトに依存 */
  line-break: strict;
  /* 禁則処理を厳格に適用 */
}

main {
  flex: 1;
}

html:has(body.is-fixed),
body.is-fixed {
  overflow: hidden;
}

a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

img {
  height: auto;
}

address,
em {
  font-style: normal;
}

/* hover指定できるPCを想定したスタイル */
@media (hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}
/* hoverが使えないタッチ端末を想定した装飾 */
@media (hover: none) {
  a:active {
    opacity: 0.7;
  }
}
@media  {
  img {
    image-rendering: -webkit-optimize-contrast;
  }
}
button {
  color: inherit;
}

.l-about-greeting {
  margin-block-start: 5.4375rem;
}
@media screen and (max-width: 767px) {
  .l-about-greeting {
    margin-block-start: 3.75rem;
  }
}

.l-about-history {
  margin-block-start: 7.125rem;
}
@media screen and (max-width: 767px) {
  .l-about-history {
    margin-block-start: 3.75rem;
  }
}

.l-about-overview {
  margin-block-start: 6rem;
}
@media screen and (max-width: 767px) {
  .l-about-overview {
    margin-block-start: 3.75rem;
  }
}

.l-about-policy {
  margin-block-start: 4rem;
}
@media screen and (max-width: 767px) {
  .l-about-policy {
    margin-block-start: 3.75rem;
  }
}

/**
* --anchor-items-padding-inline: ボタンの数が少ない場合に、左右の余白を大きくする
*/
.l-anchor {
  /* （左右ボタンのサイズを広めに） */
  margin-block-start: 6rem;
  margin-inline: auto;
  width: min(100%, 50rem);
}
@media screen and (max-width: 767px) {
  .l-anchor {
    margin-block-start: 2.5rem;
    margin-inline: auto;
    position: sticky;
    z-index: 1;
    top: var(--header-height);
    width: min(100% - var(--inner-padding-sp) * 2, var(--inner-sp));
  }
}

.l-anchor[data-page=about] {
  --anchor-items-padding-inline: 1.625rem;
}

.l-anchor[data-page=staff] {
  --anchor-items-padding-inline: 2.5rem;
}

.l-footer {
  margin-block-start: -10.4285714286vw;
}
@media screen and (max-width: 767px) {
  .l-footer {
    margin-block-start: -9.3333333333vw;
  }
}

/* メディアクエリ内外で--innerと--inner-paddingをそれぞれ指定することで、メディアクエリ外で指定した値をメディアクエリ内でリセットする必要がなくなる */
.l-inner {
  margin-inline: auto;
  width: 100%;
  max-width: calc(var(--inner-pc) + var(--inner-padding-pc) * 2);
  padding-inline: var(--inner-padding-pc);
}
@media screen and (max-width: 767px) {
  .l-inner {
    max-width: calc(var(--inner-sp) + var(--inner-padding-sp) * 2);
    padding-inline: var(--inner-padding-sp);
  }
}

.l-staff-message {
  margin-block-start: 6rem;
}
@media screen and (max-width: 767px) {
  .l-staff-message {
    margin-block-start: 3.75rem;
  }
}

.l-staff-notice {
  margin-block-start: 6.25rem;
  margin-inline: auto;
  max-width: 66.875rem;
}
@media screen and (max-width: 767px) {
  .l-staff-notice {
    margin-block-start: 3.75rem;
  }
}

.l-staff-retired {
  margin-block-start: 7.875rem;
}
@media screen and (max-width: 767px) {
  .l-staff-retired {
    margin-block-start: 3.75rem;
  }
}

.l-staff-support {
  margin-block-start: 8.5rem;
}
@media screen and (max-width: 767px) {
  .l-staff-support {
    margin-block-start: 3.75rem;
  }
}

.l-sub-content {
  margin-block-start: 6.25rem;
}
@media screen and (max-width: 767px) {
  .l-sub-content {
    margin-block-start: 5rem;
  }
}

.l-sub-content + .l-sub-content {
  margin-top: 3.125rem;
}

.l-top-about {
  margin-block-start: 3.9375rem;
}

.l-top-banner {
  margin-block-start: -4.625rem;
}
@media screen and (max-width: 767px) {
  .l-top-banner {
    margin-block-start: -8rem;
  }
}

.l-top-facilities {
  margin-block-start: 5.9375rem;
}
@media screen and (max-width: 767px) {
  .l-top-facilities {
    margin-block-start: 5.125rem;
  }
}

.l-top-news {
  margin-block-start: 8.75rem;
}
@media screen and (max-width: 767px) {
  .l-top-news {
    margin-block-start: 11.6875rem;
  }
}

.c-accordion::details-content {
  content-visibility: unset;
  display: block grid;
}

@media (prefers-reduced-motion: no-preference) {
  .c-accordion::details-content {
    transition: grid-template-rows 0.3s ease-in-out;
  }
}
.c-accordion:not([open])::details-content {
  grid-template-rows: 0fr;
}

.c-accordion[open]::details-content {
  grid-template-rows: 1fr;
}

.c-accordion {
  border: var(--border);
  border-radius: 0.625rem;
  padding: 1.25rem;
}
@media screen and (max-width: 767px) {
  .c-accordion {
    border-radius: 0.3125rem;
    padding: 0.625rem;
  }
}

.c-accordion__summary {
  list-style: none;
  position: relative;
  cursor: pointer;
}

.c-accordion__summary::before,
.c-accordion__summary::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1.25rem;
  width: 1.25rem;
  height: 1px;
  background-color: var(--color-black);
  transition: transform 0.3s ease-in-out;
}
@media screen and (max-width: 767px) {
  .c-accordion__summary::before,
  .c-accordion__summary::after {
    right: 0.625rem;
    width: 0.9375rem;
  }
}

.c-accordion__summary::before {
  transform: translateY(-50%) rotate(90deg);
}

.c-accordion[open] .c-accordion__summary::before {
  transform: translateY(-50%) rotate(0deg);
}

.c-accordion__body {
  overflow: hidden;
}

.c-accordion__wrap {
  padding-top: 1.25rem;
}

.c-button-square {
  display: inline-flex;
  align-items: center;
  gap: var(--icon-gap);
  padding-block: 0.625rem;
  padding-inline: 0.875rem;
  color: var(--color-main);
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  background-color: var(--color-white);
  border: 1px solid;
  border-radius: 0.375rem;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .c-button-square {
    padding-block: 0.75rem;
    padding-inline: 1.125rem;
    font-size: max(1.125rem, 10px);
  }
}

.c-button-square[data-icon] {
  gap: var(--icon-gap, 0);
}

.c-button-square[data-icon=staff] {
  --icon-gap: 0.625rem;
  --icon-image: url(../images/common/icon_staff.svg);
  --icon-color: currentColor;
  --icon-width: 1.25rem;
  --icon-aspect-ratio: 20/18;
}

.c-button-square[data-icon]::before {
  width: var(--icon-width);
  aspect-ratio: var(--icon-aspect-ratio);
  background-color: var(--icon-color);
  content: "";
  -webkit-mask-image: var(--icon-image);
          mask-image: var(--icon-image);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}

@media (any-hover: hover) {
  .c-button-square:hover {
    background-color: var(--color-active);
    opacity: 1;
  }
}
.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--icon-gap);
  min-width: 10rem;
  padding-block: var(--button-padding-block, 1.25rem);
  padding-inline: var(--button-padding-inline, 2.0625rem);
  background: var(--button-bg);
  border-radius: 100vh;
  color: var(--color-white);
  font-size: var(--button-font-size, max(1rem, 10px));
  font-weight: 500;
  letter-spacing: var(--button-letter-spacing, 0.04em);
  transition: background-position var(--hover-transition);
}
@media (any-hover: hover) {
  .c-button:not(:disabled):hover {
    background-position: 0% 0;
    opacity: 1;
  }
}

/* 高さ40px */
.c-button[data-size=header-drawer] {
  --button-padding-block: 0.625rem;
  --button-padding-inline: 1.75rem;
  --button-font-size: max(0.875rem, 10px);
  --button-letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .c-button[data-size=header-drawer] {
    --button-padding-block: 1.125rem;
    --button-padding-inline: 2.6875rem 3.5rem;
    --button-font-size: max(1.125rem, 10px);
    --button-letter-spacing: 0;
  }
}

/* 高さ50px */
.c-button[data-size=medium] {
  --button-padding-block: 0.9375rem;
  --button-padding-inline: 1.875rem;
  --button-font-size: max(0.875rem, 10px);
}

/* 高さ65px */
.c-button[data-size=large] {
  --button-padding-block: 1.125rem;
  --button-padding-inline: 2.6875rem 3.5rem;
  --button-font-size: max(1.125rem, 10px);
  --button-letter-spacing: 0;
}

.c-button[data-icon] {
  gap: var(--icon-gap, 0);
}

.c-button[data-icon=contact] {
  --icon-gap: 0.5rem;
  --icon-image: url(../images/common/icon_contact.svg);
  --icon-color: currentColor;
  --icon-width: 1.4375rem;
  --icon-aspect-ratio: 23/17;
}
@media screen and (max-width: 767px) {
  .c-button[data-icon=contact] {
    --icon-gap: 1.5625rem;
    --icon-width: 2.375rem;
  }
}

.c-button[data-icon]::before {
  width: var(--icon-width);
  aspect-ratio: var(--icon-aspect-ratio);
  background-color: var(--icon-color);
  content: "";
  -webkit-mask-image: var(--icon-image);
          mask-image: var(--icon-image);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}

.c-heading {
  position: relative;
  padding-inline: 1rem;
  padding-block-end: 1.875rem;
  font-size: max(1.5rem, 10px);
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .c-heading {
    padding-inline: 0;
    padding-block-end: 0.625rem;
    font-size: max(1.25rem, 10px);
  }
}

.c-heading::before {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  display: block;
  height: 1px;
  background-color: var(--color-gray);
  content: "";
}

.c-heading::after {
  position: absolute;
  inset-block-end: -1px;
  inset-inline-start: 0;
  display: block;
  width: 10rem;
  height: 3px;
  background: var(--button-bg);
  content: "";
  /* コンテナサイズが658px未満の場合、装飾を短く */
}
@container (max-width: 658px) {
  .c-heading::after {
    width: 5.4375rem;
  }
}

.c-no-post {
  font-size: max(1.25rem, 10px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-no-post {
    font-size: max(1.125rem, 10px);
  }
}

.c-page-top {
  display: inline-block;
  font-size: 0;
  width: 3.125rem;
  aspect-ratio: 1;
  background: url(../images/common/page-top.svg) no-repeat center/contain;
  border-radius: 50%;
  pointer-events: all;
  transition: transform 0.3s ease;
}
@media (any-hover: hover) {
  .c-page-top:hover {
    opacity: 1;
    transform: translateY(-4px);
  }
}
@media screen and (max-width: 767px) {
  .c-page-top {
    width: 2.5rem;
  }
}

.c-pagenavi {
  margin-top: 3.125rem;
  text-align: center;
}

.c-pagenavi .nav-links {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .c-pagenavi .nav-links {
    gap: 0.3125rem;
  }
}

.c-pagenavi a.page-numbers,
.c-pagenavi .page-numbers.current {
  width: 3.125rem;
  height: auto;
  aspect-ratio: 1/1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  font-size: max(1rem, 10px);
  font-weight: 700;
  line-height: 1;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .c-pagenavi a.page-numbers,
  .c-pagenavi .page-numbers.current {
    width: 1.875rem;
    font-size: max(0.875rem, 10px);
  }
}

.c-pagenavi .page-numbers.current {
  background-color: var(--color-active);
}

.c-pagenavi .page-numbers.next,
.c-pagenavi .page-numbers.prev {
  position: absolute;
  top: 0;
}

.c-pagenavi .page-numbers.next {
  right: -2.8125rem;
}
@media screen and (max-width: 767px) {
  .c-pagenavi .page-numbers.next {
    right: -2.1875rem;
  }
}

.c-pagenavi .page-numbers.prev {
  left: -2.8125rem;
}
@media screen and (max-width: 767px) {
  .c-pagenavi .page-numbers.prev {
    left: -2.1875rem;
  }
}

.c-pagenavi a {
  background-color: color 0.3s ease-in-out;
}

@media (any-hover: hover) {
  .c-pagenavi a:hover {
    opacity: 1;
    background-color: var(--color-active);
  }
}
.c-recruit-button {
  display: inline-grid;
  place-content: center;
  position: relative;
  z-index: 0;
  width: 6.875rem;
  aspect-ratio: 1;
  background: var(--button-bg);
  border-radius: 50%;
  color: var(--color-white);
  transition: background-position var(--hover-transition);
}
@media (any-hover: hover) {
  .c-recruit-button:not(:disabled):hover {
    background-position: 0% 0;
    opacity: 1;
  }
}
@media screen and (max-width: 599px) {
  .c-recruit-button {
    display: flex;
    align-items: center;
    gap: 1em;
    width: 100%;
    padding-block: 0.875rem 1.25rem;
    padding-inline: 2.5rem;
    aspect-ratio: unset;
    border-radius: 0;
  }
}

.c-recruit-button__texts {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 599px) {
  .c-recruit-button__texts {
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.875rem;
  }
}

.c-recruit-button::before {
  position: absolute;
  inset: 0;
  aspect-ratio: 1;
  background: url(../images/common/recruit_button_text.svg) no-repeat center/contain;
  content: "";
  scale: 1.3090909091;
  animation: rotate 15s linear infinite;
  border-radius: 50%;
}
@media screen and (max-width: 599px) {
  .c-recruit-button::before {
    order: 2;
    position: static;
    width: 0.625rem;
    aspect-ratio: 10/18;
    scale: 1;
    background-image: url(../images/common/arrow_right.svg);
    animation: none;
  }
}

.c-recruit-button__en {
  font-size: max(1rem, 10px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
@media screen and (max-width: 599px) {
  .c-recruit-button__en {
    font-size: max(1.375rem, 10px);
  }
}

.c-recruit-button__ja {
  font-size: max(0.75rem, 10px);
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 599px) {
  .c-recruit-button__ja {
    font-size: max(0.9375rem, 10px);
  }
}

@keyframes rotate {
  0% {
    rotate: 0deg;
  }
  100% {
    rotate: 360deg;
  }
}
@media screen and (max-width: 767px) {
  .c-section-title[data-layout=sp-horizontal] {
    display: flex;
    align-items: center;
    gap: 2.125rem;
  }
}

@media screen and (max-width: 767px) {
  .c-section-title[data-layout=sp-horizontal] * {
    margin: 0;
  }
}

.c-section-title__en {
  font-family: var(--en-font-family);
  font-size: max(1.625rem, 10px);
  font-weight: 500;
  color: var(--color-main);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .c-section-title__en {
    font-size: max(1.5rem, 10px);
  }
}

.c-section-title__en em {
  color: var(--color-accent);
}

.c-section-title__ja {
  margin-top: 0.5rem;
  color: var(--color-main);
  font-size: max(1.25rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .c-section-title__ja {
    margin-top: 0.4375rem;
    font-size: max(1.125rem, 10px);
  }
}

.c-table {
  width: 100%;
  border-collapse: collapse;
}

.c-table tr > * {
  height: 5rem;
  padding-block: 1rem;
  padding-inline: 1.4375rem;
  border: var(--border);
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .c-table tr > * {
    height: 4.375rem;
    padding-block: 0.5rem;
    padding-inline: 0.75rem;
    font-size: max(0.875rem, 10px);
  }
}

.c-table th {
  width: 14.375rem;
  background-color: var(--color-light-green);
}
@media screen and (max-width: 767px) {
  .c-table th {
    box-sizing: content-box;
    width: 4.5em;
  }
}

.c-table td {
  background-color: var(--color-white);
}

.c-text {
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .c-text {
    font-size: max(0.875rem, 10px);
  }
}

.p-404 {
  padding-block-end: 16.875rem;
}
@media screen and (max-width: 767px) {
  .p-404 {
    padding-block-end: 7.5rem;
  }
}

.p-404__inner {
  --inner-pc: 67.5rem;
}

.p-404__desc {
  text-align: center;
}

.p-404__button {
  margin-block-start: 5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-404__button {
    margin-block-start: 3.75rem;
  }
}

.p-about-greeting__content {
  margin-block-start: 4.25rem;
  display: flex;
  gap: 3.875rem;
  padding-inline-start: 3.25rem;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__content {
    margin-block-start: 2.5rem;
    display: block;
    padding-inline-start: 0;
  }
}

.p-about-greeting__wrap {
  max-width: 41.5rem;
  flex: 1;
}

.p-about-greeting__sub-heading {
  color: var(--color-main);
  font-size: max(1.375rem, 10px);
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__sub-heading {
    font-size: max(1.125rem, 10px);
  }
}

.p-about-greeting__desc {
  margin-block-start: 1.6875rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 2.375;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__desc {
    margin-block-start: 1.25rem;
    font-size: max(0.875rem, 10px);
  }
}

.p-about-greeting__profile {
  text-align: right;
}

.p-about-greeting__profile-image {
  max-width: 23.5625rem;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__profile-image {
    margin-block-start: 1.25rem;
    margin-inline: auto;
  }
}

.p-about-greeting__profile-image img {
  border-radius: var(--image-border-radius);
  aspect-ratio: 3/4;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-about-greeting__profile-company {
  margin-block-start: 1.3125rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__profile-company {
    font-size: max(0.875rem, 10px);
  }
}

.p-about-greeting__profile-name {
  margin-block-start: 0.625rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-about-greeting__profile-name {
    font-size: max(0.875rem, 10px);
  }
}

.p-about-history__content {
  margin-block-start: 2.5rem;
}

.p-about-history__desc {
  margin-inline: auto;
  max-width: 62.5rem;
}

.p-about-history__items {
  margin-block-start: 3.75rem;
  margin-inline: auto;
  position: relative;
  max-width: 47.75rem;
  padding-block-end: 2.25rem;
}
@media screen and (max-width: 767px) {
  .p-about-history__items {
    margin-block-start: 2.5rem;
  }
}

.p-about-history__items::before {
  position: absolute;
  inset-block: 0;
  width: 0.5rem;
  inset-inline-start: 4.5rem;
  display: block;
  content: "";
  background-image: linear-gradient(var(--color-sub), var(--color-green) 70%);
}
@media screen and (max-width: 767px) {
  .p-about-history__items::before {
    content: none;
  }
}

.p-about-history__item {
  display: flex;
  align-items: flex-start;
  gap: 4.1875rem;
}

.p-about-history__item--2 {
  margin-block-start: 2.25rem;
}
@media screen and (max-width: 767px) {
  .p-about-history__item--2 {
    margin-block-start: 0;
  }
}

.p-about-history__item::before {
  padding-inline-end: 1.125rem;
  color: var(--color-light-gray);
  font-family: var(--en-font-family);
  font-size: max(2.75rem, 10px);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: right;
  writing-mode: sideways-lr;
}

.p-about-history__item--1::before {
  content: "1990-1980";
}
@media screen and (max-width: 767px) {
  .p-about-history__item--1::before {
    content: none;
  }
}

.p-about-history__item--2::before {
  content: "-2000";
}
@media screen and (max-width: 767px) {
  .p-about-history__item--2::before {
    content: none;
  }
}

.p-about-overview__content {
  margin-block-start: 3.75rem;
}
@media screen and (max-width: 767px) {
  .p-about-overview__content {
    margin-block-start: 2.5rem;
  }
}

.p-about-overview__table {
  margin-inline: auto;
  max-width: 62.5rem;
}

.p-about-philosophy__content {
  margin-block-start: 2.375rem;
}

.p-about-philosophy__copy {
  background-color: var(--color-white);
  border-radius: 1.375rem 0 1.375rem 0;
  padding-block: 0.875rem;
  padding-inline: 2rem;
  color: var(--color-main);
  font-size: max(1.25rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 2;
  filter: var(--filter-light);
}
@media screen and (max-width: 767px) {
  .p-about-philosophy__copy {
    padding-block: 0.5rem;
    padding-inline: 1rem;
    font-size: max(1.125rem, 10px);
  }
}

.p-about-philosophy__desc {
  margin-block-start: 1.4375rem;
  padding-inline-start: 0.9375rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .p-about-philosophy__desc {
    padding-inline-start: 0;
    font-size: max(0.875rem, 10px);
  }
}

.p-about-policy__content {
  margin-block-start: 2.375rem;
}

.p-about-policy__list {
  padding-inline-start: 1.375rem;
}
@media screen and (max-width: 767px) {
  .p-about-policy__list {
    padding-inline-start: 0;
  }
}

html:has(.p-anchor) {
  --anchor-height: 0rem; /* JS で .js-toggle-item.p-anchor の高さに更新される */
}
@media screen and (max-width: 767px) {
  html:has(.p-anchor) {
    scroll-padding-top: calc(var(--header-height) + var(--anchor-height) + 1.25rem);
  }
}

.p-anchor {
  border-radius: 0.5rem;
  overflow: clip;
}

.p-anchor__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  padding-inline: var(--anchor-items-padding-inline);
}
@media screen and (max-width: 767px) {
  .p-anchor__items {
    grid-template-columns: auto;
    padding-inline: 0;
    display: none;
  }
}

.p-anchor__link {
  border-block-start: 1px solid;
}

.p-anchor__toggle,
.p-anchor__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 100%;
  min-height: 3.75rem;
  background-color: var(--color-sub);
  color: var(--color-white);
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-anchor__toggle,
  .p-anchor__link {
    justify-content: space-between;
    padding-inline: 1em;
  }
}

.p-anchor__toggle {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-anchor__toggle {
    display: flex;
  }
}

.p-anchor__toggle::before,
.p-anchor__toggle::after {
  width: 1rem;
  height: 1px;
  content: "";
  background-color: currentColor;
}

.p-anchor__toggle::before {
  position: absolute;
  inset-inline-end: 1em;
  rotate: -90deg;
  transition: rotate 0.3s ease-out;
}

.p-anchor.is-opened .p-anchor__toggle::before {
  rotate: 0deg;
}

.p-anchor__item:first-child .p-anchor__link::before,
.p-anchor__item:last-child .p-anchor__link::before {
  position: absolute;
  inset-block: 0;
  display: block;
  width: var(--anchor-items-padding-inline);
  background-color: var(--color-sub);
  content: "";
}
@media screen and (max-width: 767px) {
  .p-anchor__item:first-child .p-anchor__link::before,
  .p-anchor__item:last-child .p-anchor__link::before {
    content: none;
  }
}

.p-anchor__item:first-child .p-anchor__link::before {
  inset-inline-start: 0;
  translate: -100% 0;
}

.p-anchor__item:last-child .p-anchor__link::before {
  inset-inline-end: 0;
  translate: 100% 0;
}

.p-anchor__link::after {
  flex-shrink: 0;
  width: 1rem;
  aspect-ratio: 1;
  background: url(../images/common/icon_arrow_down.svg) no-repeat center/contain;
  content: "";
  transition: translate 0.3s ease-in-out;
}

@media (any-hover: hover) {
  .p-anchor__link:hover {
    opacity: 1;
  }
  .p-anchor__link:hover::after {
    translate: 0 0.25rem;
  }
}
.p-banner-recruit {
  display: block;
  padding-block: 1.75rem 2.5625rem;
  padding-inline: 2rem;
  background: linear-gradient(to right, #1e9c39, #1e9c39 75%, transparent 92%) no-repeat left/48%, url(../images/top/banner-recruit_bg.webp) no-repeat right/auto 100%;
  border: var(--border-light-green);
  border-radius: 0.75rem;
  color: var(--color-white);
  overflow: clip;
  white-space: nowrap;
  transition: transform 0.3s ease;
}
@media (any-hover: hover) {
  .p-banner-recruit:hover {
    opacity: 1;
    transform: translateY(-4px);
  }
}
@media screen and (max-width: 767px) {
  .p-banner-recruit {
    padding-block: 1.3125rem 12.125rem;
    padding-inline: 1.25rem;
    background: linear-gradient(#1e9c39, #1e9c39 75%, transparent 92%) no-repeat top/100% 62%, var(--color-white) url(../images/top/banner-recruit_bg_sp.webp) no-repeat bottom/100%;
  }
}

.p-banner-recruit__heading {
  text-shadow: 0 0 0.25rem var(--color-main);
}

.p-banner-recruit__heading-en {
  font-family: var(--en-font-family);
  font-size: max(2.3125rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-banner-recruit__heading-en {
    font-size: max(1.875rem, 10px);
  }
}

.p-banner-recruit__heading-ja {
  margin-top: -0.5rem;
  font-size: max(1.1875rem, 10px);
  font-weight: 500;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 767px) {
  .p-banner-recruit__heading-ja {
    margin-top: -0.3125rem;
    font-size: max(0.9375rem, 10px);
  }
}

.p-banner-recruit__desc {
  margin-top: 0.9375rem;
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  line-height: 1.53125;
}
@media screen and (max-width: 767px) {
  .p-banner-recruit__desc {
    display: block;
  }
}

.p-banner-recruit__desc::after {
  content: "";
  height: 2px;
  width: 3.25rem;
  background-color: currentColor;
  translate: 0 0.5lh;
}
@media screen and (max-width: 767px) {
  .p-banner-recruit__desc::after {
    margin-inline-start: 0.5rem;
    font-weight: 700;
    background-color: transparent;
    content: "───";
  }
}

.p-breadcrumb {
  padding-block: 0.375rem;
  padding-inline: 4.6875rem 27.25rem;
  background-color: var(--color-white);
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-breadcrumb {
    padding-inline: 1.3125rem;
  }
}

.p-breadcrumb__wrapper > span {
  padding-inline: 0.125rem;
}

.p-breadcrumb a {
  color: var(--color-main);
}

.p-breadcrumb__between {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-top: solid 1px currentColor;
  border-right: solid 1px currentColor;
  transform: translateY(-30%) rotate(45deg);
  margin-inline: 0.5rem;
}

.p-contact {
  padding-block-end: 16.875rem;
}
@media screen and (max-width: 767px) {
  .p-contact {
    padding-block-end: 7.5rem;
  }
}

.p-contact__status-list {
  margin-top: 3.125rem;
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  max-width: 25rem;
  width: 100%;
  counter-reset: number;
}
@media screen and (max-width: 767px) {
  .p-contact__status-list {
    margin-top: 1.875rem;
    max-width: 18.75rem;
  }
}

.p-contact__status-item {
  width: 6.25rem;
  height: 6.25rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-white);
  border-radius: 50%;
  font-size: max(1.25rem, 10px);
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .p-contact__status-item {
    width: 5rem;
    height: 5rem;
  }
}

.p-contact__status-item.p-contact__status-item--current {
  background-color: var(--color-active);
}

.p-contact__attention {
  max-width: 50rem;
  margin-inline: auto;
  margin-top: 3.125rem;
  background-color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-contact__attention {
    margin-top: 1.875rem;
  }
}

.p-contact__attention-heading {
  font-size: max(1.25rem, 10px);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-contact__attention-heading {
    text-align: left;
    font-size: max(1.125rem, 10px);
  }
}

.p-contact__attention-item {
  padding-left: 1em;
  position: relative;
}

.p-contact__attention-item::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.p-contact__form {
  margin-top: 3.125rem;
}

.p-contact__form-privacy {
  margin-top: 1.25rem;
  text-align: center;
}

.p-contact__form-checkbox-text.c-text {
  font-size: max(0.9375rem, 10px);
}
@media screen and (max-width: 767px) {
  .p-contact__form-checkbox-text.c-text {
    max-width: 25.625rem;
    margin-inline: auto;
    font-size: max(0.75rem, 10px);
  }
}

.p-contact__form-checkbox-text.c-text a {
  text-decoration: underline;
  text-decoration-color: var(--color-black);
  text-underline-offset: 1px;
  text-decoration-thickness: 1px;
}

.p-contact__form-privacy label {
  margin-top: 1.25rem;
  margin-inline: auto;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 767px) {
  .p-contact__form-privacy label {
    margin-top: 0.625rem;
  }
}

.p-contact__form-privacy input + span {
  position: relative;
  padding-left: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-contact__form-privacy input + span {
    font-size: max(0.8125rem, 10px);
    padding-left: 1.5625rem;
  }
}

.p-contact__form-privacy input + span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  background-color: var(--color-white);
  border: 1px solid var(--color-black);
}
@media screen and (max-width: 767px) {
  .p-contact__form-privacy input + span::before {
    top: 55%;
  }
}

.p-contact__form-privacy input + span::after {
  content: "";
  margin-top: -0.25rem;
  position: absolute;
  top: 60%;
  left: 0.25rem;
  transform: translateY(-50%) rotate(-45deg);
  display: block;
  width: 0.8125rem;
  height: 0.4375rem;
  border-bottom: 2px solid var(--color-black);
  border-left: 2px solid var(--color-black);
  transition: 0.3s;
  opacity: 0;
}
@media screen and (max-width: 767px) {
  .p-contact__form-privacy input + span::after {
    margin-top: -0.125rem;
  }
}

.p-contact__form-privacy input:checked + span::after {
  opacity: 1;
}

.p-contact__form-message {
  text-align: center;
}

/* （the_content()で出力したものへのスタイル） */
/* 要素間の余白 */
.p-content h2 {
  margin-block: 5rem 2rem;
}
@media screen and (max-width: 767px) {
  .p-content h2 {
    margin-block: 3rem 1.25rem;
  }
}

.p-content h3 {
  margin-block: 3.75rem 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-content h3 {
    margin-block: 1.875rem 1.25rem;
  }
}

.p-content h4 {
  margin-block: 1.875rem 0.625rem;
}
@media screen and (max-width: 767px) {
  .p-content h4 {
    margin-block: 1.25rem 0.625rem;
  }
}

.p-content h5 {
  margin-block: 1.25rem 0.625rem;
}
@media screen and (max-width: 767px) {
  .p-content h5 {
    margin-block: 0.9375rem 0.625rem;
  }
}

.p-content p {
  margin-block: 0.625rem;
}
@media screen and (max-width: 767px) {
  .p-content p {
    margin-block: 0.625rem;
  }
}

.p-content figure,
.p-content > ul,
.p-content > ol,
.p-content .wp-block-table {
  margin-block: 1.5rem;
}
@media screen and (max-width: 767px) {
  .p-content figure,
  .p-content > ul,
  .p-content > ol,
  .p-content .wp-block-table {
    margin-block: 1.25rem;
  }
}

.p-content .wp-block-button {
  margin-block: 1.5rem 3.5rem;
}
@media screen and (max-width: 767px) {
  .p-content .wp-block-button {
    margin-block: 1.25rem 2rem;
  }
}

/* font-size */
.p-content p,
.p-content li,
.p-content th,
.p-content td {
  font-size: max(1rem, 10px);
  font-weight: 500;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .p-content p,
  .p-content li,
  .p-content th,
  .p-content td {
    font-size: max(0.875rem, 10px);
  }
}

.p-content h2 {
  position: relative;
  font-size: max(1.375rem, 10px);
  line-height: 2;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .p-content h2 {
    font-size: max(1.25rem, 10px);
  }
}

.p-content h2::before {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  display: block;
  height: 1px;
  background-color: var(--color-gray);
  content: "";
}

.p-content h2::after {
  position: absolute;
  inset-block-end: -1px;
  inset-inline-start: 0;
  display: block;
  width: 10rem;
  height: 3px;
  background: var(--button-bg);
  content: "";
  /* コンテナサイズが658px未満の場合、装飾を短く */
}
@container (max-width: 658px) {
  .p-content h2::after {
    width: 5.4375rem;
  }
}

.p-content h3 {
  font-size: max(1.25rem, 10px);
  line-height: 2;
  font-weight: 700;
  position: relative;
  display: flex;
  gap: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-content h3 {
    font-size: max(1.125rem, 10px);
  }
}

.p-content h3::before {
  content: "";
  width: 0.3125rem;
  height: 1lh;
  border-radius: 0.625rem;
  background-image: linear-gradient(var(--color-sub), var(--color-green) 70%);
}

.p-content h4 {
  font-size: max(1.125rem, 10px);
  line-height: 2;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-content h4 {
    font-size: max(1rem, 10px);
  }
}

.p-content h5 {
  font-size: max(1.0625rem, 10px);
  line-height: 2;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-content h5 {
    font-size: max(1rem, 10px);
  }
}

.p-content a:not(.wp-block-button *) {
  color: var(--color-main);
  text-decoration: underline;
  text-underline-offset: 0.125rem;
}

.p-content a[href^="tel:"] {
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .p-content a[href^="tel:"] {
    text-decoration: underline;
  }
}

.p-content .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--icon-gap);
  min-width: 12.5rem;
  padding-block: 1.25rem;
  padding-inline: 2.0625rem;
  background: var(--button-bg);
  border-radius: 100vh;
  color: var(--color-white);
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: var(--button-letter-spacing, 0.04em);
  transition: background-position var(--hover-transition);
}
@media (any-hover: hover) {
  .p-content .wp-block-button__link:not(:disabled):hover {
    background-position: 0% 0;
    opacity: 1;
  }
}

.p-content img {
  width: auto;
}

.p-content figure.aligncenter,
.p-content img.aligncenter {
  margin-right: auto;
  margin-left: auto;
}

.p-content figure.alignright,
.p-content img.alignright {
  margin-left: auto;
}

.p-content ol,
.p-content ul {
  list-style: revert;
  padding-left: 1.5em;
}

/* table */
.p-content .wp-block-table {
  border: none;
}

.p-content .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
}

.wp-block-table thead {
  border-width: 1px;
}

.p-content .wp-block-table table tr > * {
  padding-block: 1rem;
  padding-inline: 1.4375rem;
  border: var(--border);
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-content .wp-block-table table tr > * {
    padding-block: 0.5rem;
    padding-inline: 0.75rem;
    font-size: max(0.875rem, 10px);
  }
}

.p-content .wp-block-table table th {
  background-color: var(--color-light-green);
}

.p-content .wp-block-table table td {
  background-color: var(--color-white);
}

.p-content em {
  font-style: italic;
}

.p-dl {
  --_marker-size: 0.75rem;
  --_marker-color: var(--color-sub);
  --_row-gap: 2.0625rem;
  --_column-gap: 0.875rem;
  display: grid;
  grid-template-columns: 12.25rem 1fr;
  gap: var(--_row-gap);
  align-items: flex-start;
  padding-block-start: 1.375rem;
}
@media screen and (max-width: 767px) {
  .p-dl {
    --_row-gap: 0;
    grid-template-columns: auto;
  }
}

.p-dl__dt {
  position: relative;
  padding-inline-start: calc(var(--_marker-size) + var(--_column-gap));
  display: grid;
  grid-template-columns: 1fr;
  align-items: flex-start;
  font-size: max(1.125rem, 10px);
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-dl__dt {
    font-size: max(1rem, 10px);
  }
}

.p-dl__dt::before {
  position: absolute;
  inset-block-start: calc((1lh - var(--_marker-size)) / 2);
  inset-inline-start: 0;
  inline-size: var(--_marker-size);
  block-size: var(--_marker-size);
  aspect-ratio: 1;
  background-color: var(--_marker-color, currentColor);
  border-radius: 50%;
  content: "";
}

.p-dl__dd {
  padding-block-start: 0.1875rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-dl__dd {
    padding-inline-start: calc(var(--_marker-size) + var(--_column-gap));
    font-size: max(0.875rem, 10px);
  }
}

@media screen and (max-width: 767px) {
  .p-dl__dd + .p-dl__dt {
    margin-block-start: 1rem;
  }
}

.p-fixed-button {
  position: fixed;
  z-index: 1;
  inset-block-end: 3.75rem;
  inset-inline-end: 3.75rem;
  display: grid;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out;
}
@media screen and (max-width: 599px) {
  .p-fixed-button {
    inset-block-end: 0;
    inset-inline: 0;
  }
}

.p-fixed-button.is-scrolled {
  opacity: 1;
  pointer-events: all;
}

.p-fixed-button.is-footer-visible {
  opacity: 0;
  pointer-events: none;
}
@media screen and (max-width: 599px) {
  .p-fixed-button.is-footer-visible {
    opacity: 1;
    pointer-events: all;
  }
}

.p-fixed-button__page-top {
  margin-block-start: 1rem;
  margin-inline-end: -1rem;
  text-align: right;
}
@media screen and (max-width: 599px) {
  .p-fixed-button__page-top {
    order: -1;
    margin-block: 0 1rem;
    margin-inline-end: 1rem;
  }
}

.p-fixed-button__recruit:has(.is-closed) {
  opacity: 0;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-fixed-button__recruit:has(.is-closed) {
    opacity: 1;
    pointer-events: all;
  }
}

.p-fixed-button__recruit-close {
  position: absolute;
  inset-block-start: -2.5rem;
  inset-inline-end: -1rem;
  width: 1.875rem;
  padding: 0.625rem;
  aspect-ratio: 1;
  font-size: 0;
  -webkit-mask: url(../images/common/close.svg) no-repeat center/0.75rem;
          mask: url(../images/common/close.svg) no-repeat center/0.75rem;
  background-image: linear-gradient(var(--color-sub), var(--color-green) 70%);
  transition: opacity var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-fixed-button__recruit-close {
    display: none;
  }
}

@media (any-hover: hover) {
  .p-fixed-button__recruit-close:hover {
    opacity: 0.7;
  }
}
.p-footer {
  position: relative;
  z-index: 0;
  padding-block: 5.625rem;
}
@media screen and (max-width: 767px) {
  .p-footer {
    padding-block: 4.75rem 7.5rem;
  }
}

/* コンテンツ量が増えると、背景画像が足りなくなるため、その際は背景画像の加工が必要 */
.p-footer::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  background: var(--color-white) url(../images/common/footer_bg.webp) no-repeat top/cover;
  -webkit-mask: url(../images/common/footer_mask.svg) no-repeat top/cover;
          mask: url(../images/common/footer_mask.svg) no-repeat top/cover;
  content: "";
}
@media screen and (max-width: 1400px) {
  .p-footer::before {
    background-size: 1400px;
    -webkit-mask-size: 1400px;
            mask-size: 1400px;
  }
}
@media screen and (max-width: 767px) {
  .p-footer::before {
    background: var(--color-white) url(../images/common/footer_bg_sp.webp) no-repeat top/cover;
    -webkit-mask: url(../images/common/footer_mask_sp.svg) no-repeat top/cover;
            mask: url(../images/common/footer_mask_sp.svg) no-repeat top/cover;
  }
}

.p-footer__inner {
  --inner-pc: 66.875rem;
}

.p-footer__copy {
  max-width: 41.5625rem;
}
@media screen and (max-width: 767px) {
  .p-footer__copy {
    max-width: 83.8805970149%;
    box-sizing: content-box;
    padding-inline: 0.75rem;
  }
}

.p-footer__contact {
  margin-block-start: 3.125rem;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .p-footer__contact {
    margin-block-start: 0.25rem;
    flex-direction: column;
  }
}

.p-footer__contact-heading {
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .p-footer__contact-heading {
    margin-block-start: 2.5rem;
    margin-inline: auto;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 18.75rem;
  }
}

.p-footer__contact-content {
  flex-shrink: 0;
  margin-inline-start: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-footer__contact-content {
    margin-inline: auto;
    width: -moz-fit-content;
    width: fit-content;
  }
}

.p-footer__contact-desc {
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.78125;
}

.p-footer__button {
  margin-block-start: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-footer__button {
    margin-block-start: 1.875rem;
    text-align: center;
  }
}

.p-footer__contact-image {
  margin-block-start: -9.75rem;
  margin-inline-end: -5.25rem;
  flex-shrink: 0;
  max-width: 38.125rem;
}
@media screen and (max-width: 767px) {
  .p-footer__contact-image {
    order: -1;
    margin-block-start: 0rem;
    margin-inline: auto 0rem;
    max-width: 102.6865671642%;
  }
}

.p-footer__logo {
  margin-block-start: 2.125rem;
  margin-inline: auto;
  max-width: 13rem;
}
@media screen and (max-width: 767px) {
  .p-footer__logo {
    margin-block-start: 2.625rem;
  }
}

.p-footer__logo a {
  display: block;
}

.p-footer__address {
  margin-top: 1.125rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
  line-height: 2.03125;
}
@media screen and (max-width: 767px) {
  .p-footer__address {
    margin-top: 1.3125rem;
    font-size: max(0.875rem, 10px);
    line-height: 1.75;
  }
}

.p-footer__address-map {
  color: var(--color-link);
}

.p-footer__nav {
  margin-block-start: 1.5625rem;
}
@media screen and (max-width: 767px) {
  .p-footer__nav {
    margin-block-start: 1.25rem;
  }
}

.p-footer__policy a[target=_blank] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.p-footer__policy a[target=_blank]::after {
  width: 0.8125rem;
  aspect-ratio: 13/12;
  background: url(../images/common/icon_external.svg) no-repeat center/contain;
  content: "";
}

.p-footer__nav-items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.p-footer__nav-item--staff {
  margin-inline-start: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-footer__nav-item--staff {
    margin-block-start: 1.25rem;
    margin-inline-start: 0;
    width: 100%;
    text-align: center;
  }
}

.p-footer__nav-item a:not([class]) {
  position: relative;
  padding-block: 1rem;
  padding-inline: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  line-height: 1;
  transition: color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-footer__nav-item a:not([class]) {
    padding-block: 0.5625rem;
    padding-inline: 1.125rem;
    font-size: max(0.875rem, 10px);
  }
}

.p-footer__nav-item a:not([class])::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  background: url(../images/common/header_nav-item_bg_current.svg) no-repeat center/contain;
  content: "";
  opacity: 0;
  transition: opacity var(--hover-transition);
}

.p-footer__nav-item a:not([class])[target=_blank]::after {
  width: 0.8125rem;
  aspect-ratio: 13/12;
  background: url(../images/common/icon_external.svg) no-repeat center/contain;
  content: "";
}

/* カレント表示 */
.p-footer__nav-item.is-current a:not([class]) {
  color: var(--color-main);
  pointer-events: none;
}

.p-footer__nav-item.is-current a:not([class])::before {
  opacity: 1;
}

@media (any-hover: hover) {
  .p-footer__nav-item a:not([class]):hover {
    color: var(--color-main);
    opacity: 1;
  }
  .p-footer__nav-item a:not([class]):hover::before {
    opacity: 1;
  }
}
.p-footer__copyright {
  margin-block-start: 2rem;
  text-align: center;
}

.p-footer__copyright small {
  font-size: max(0.75rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
}

.p-form__message.c-text {
  text-align: center;
}

.p-form__contents {
  margin-top: 1.875rem;
}

.p-form__wrap {
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 2em;
  max-width: 50rem;
}
@media screen and (max-width: 767px) {
  .p-form__wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 1em;
  }
}

.p-form__wrap.p-form__wrap--textarea {
  align-items: flex-start;
}

.p-form__wrap + .p-form__wrap {
  margin-top: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-form__wrap + .p-form__wrap {
    margin-top: 2.5rem;
  }
}

.p-form__label {
  max-width: 12.5rem;
  width: 100%;
  font-size: max(0.9375rem, 10px);
}

.p-form__wrap.p-form__wrap--textarea .p-form__label {
  margin-top: 0.625rem;
}

.u-required {
  display: inline-block;
  color: #ff003d;
  margin-left: 0.625rem;
  padding: 0.3125rem;
  border: 1px solid #ff003d;
  font-size: max(0.75rem, 10px);
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .p-form__input,
  .p-form__select,
  .p-form__radio,
  .p-form__checkbox,
  .p-form__textarea {
    margin-top: 0.625rem;
  }
}

.p-form__input,
.p-form__textarea {
  flex-grow: 1;
  width: 100%;
}

.p-form__input input {
  padding: 0.5rem 0.9375rem;
  width: 100%;
  font-size: max(1rem, 16px);
  line-height: 1;
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: var(--color-white);
  background-image: none;
}

.p-form__input input:focus {
  box-shadow: none;
  outline: none;
}

.p-form__textarea textarea {
  padding: 0.5rem 0.9375rem;
  width: 100%;
  min-height: 9.375rem;
  font-size: max(0.9375rem, 10px);
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: var(--color-white);
  background-image: none;
  field-sizing: content;
}

.p-form__textarea textarea:focus {
  box-shadow: none;
  outline: none;
}

.p-form__select select {
  padding: 0.71875rem 3.125rem 0.71875rem 0.9375rem;
  width: 100%;
  font-size: max(0.9375rem, 10px);
  line-height: 1;
  border-radius: 0;
  border: 1px solid var(--color-gray);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}

.p-form__select select::-ms-expand {
  display: none;
}

.p-form__select select:focus {
  border: 1px solid var(--color-gray);
  box-shadow: none;
  outline: none;
}

.p-form__radio label {
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .p-form__radio label {
    display: block;
  }
}

.p-form__radio label:not(:first-of-type) {
  margin-left: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-form__radio label:not(:first-of-type) {
    margin-top: 0.625rem;
    margin-left: 0;
  }
}

.p-form__radio input {
  display: none;
}

.p-form__radio input + span {
  padding: 0 0 0 1.5625rem;
  position: relative;
  display: block;
  font-size: max(0.9375rem, 10px);
  line-height: 1;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .p-form__radio input + span {
    display: inline-block;
  }
}

.p-form__radio input + span::before {
  content: "";
  width: 0.9375rem;
  height: 0.9375rem;
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  border-radius: 50%;
}

.p-form__radio input + span::after {
  content: "";
  padding: 0.125rem;
  width: 0.4375rem;
  height: 0.4375rem;
  position: absolute;
  top: 50%;
  left: 0.25rem;
  transform: translateY(-50%);
  border: 1px solid transparent;
  border-radius: 50%;
  background: #000;
  opacity: 0;
  transition: 0.3s;
}

.p-form__radio input:checked + span::after {
  opacity: 1;
}

.p-form__checkbox label {
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .p-form__checkbox label {
    display: block;
  }
}

.p-form__checkbox label:not(:first-of-type) {
  margin-left: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-form__checkbox label:not(:first-of-type) {
    margin-top: 0.625rem;
    margin-left: 0;
  }
}

.p-form__checkbox input {
  display: none;
}

.p-form__checkbox input + span {
  cursor: pointer;
  display: inline-block;
  padding: 0 0 0 1.5625rem;
  position: relative;
  font-size: max(0.9375rem, 10px);
  line-height: 1;
}

.p-form__checkbox input + span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  display: block;
  width: 0.9375rem;
  height: 0.9375rem;
}

.p-form__checkbox input + span::after {
  content: "";
  margin-top: -0.125rem;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%) rotate(-45deg);
  display: block;
  width: 0.9375rem;
  height: 0.5rem;
  border-bottom: 0.1875rem solid #000;
  border-left: 0.1875rem solid #000;
  transition: 0.3s;
  opacity: 0;
}

.p-form__checkbox input:checked + span::after {
  opacity: 1;
}

.p-form__submit-wrap {
  margin-top: 6.25rem;
  display: flex;
  justify-content: center;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-form__submit-wrap {
    flex-direction: column;
    align-items: center;
    margin-top: 3.125rem;
  }
}

.p-form__submit {
  text-align: center;
}

.p-form__submit input:hover,
.p-form__submit input:focus {
  outline: none;
}

.p-form__submit input:hover {
  opacity: 0.8;
}

.p-form__submit input::-moz-foucus-inner {
  padding: 0;
  border: none;
}

.wpcf7 form.invalid .wpcf7-response-output {
  border-color: #ff003d;
  border-radius: 0.625rem;
}

.wpcf7 form .wpcf7-response-output {
  padding: 1.875rem;
  text-align: center;
  font-size: max(1.25rem, 10px);
  color: #ff003d;
  line-height: 1;
  margin: 3.75rem 0 0;
}

.wpcf7-spinner {
  margin-block-start: 1em;
  margin-inline: auto;
  display: block;
}

.p-header {
  position: fixed;
  z-index: 1001;
  inset-block-start: 0;
  inset-inline: 0;
  height: var(--header-height);
  transition: background-color 0.3s ease-out, height 0.5s;
}
@media screen and (max-width: 767px) {
  .p-header {
    background-color: var(--color-white);
  }
}

.p-header.is-scrolled {
  background-color: hsla(0, 0%, 100%, 0.7);
  backdrop-filter: blur(0.625rem);
}

.p-header__inner {
  --inner-padding-pc: 1.875rem;
  height: inherit;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .p-header__inner {
    max-width: unset;
    padding-inline-end: 0;
  }
}

.p-header__logo {
  max-width: 11.25rem;
  width: 100%;
  height: inherit;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    max-width: 8.1875rem;
  }
}

.p-header__logo a {
  height: inherit;
  display: flex;
  align-items: center;
}

.p-header__logo img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-header__nav {
  display: block;
  height: inherit;
}
@media screen and (max-width: 767px) {
  .p-header__nav {
    display: none;
  }
}

.p-header__nav-list {
  display: flex;
  height: inherit;
}

.p-header__nav-item {
  height: inherit;
}

.p-header__nav-item--staff {
  margin-inline-start: 0.5rem;
  display: flex;
  align-items: center;
}

.p-header__nav-item--contact {
  margin-inline-start: 1.125rem;
  display: flex;
  align-items: center;
}

.p-header__nav-item a:not([class]) {
  position: relative;
  padding-inline: 1rem;
  height: inherit;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  text-transform: uppercase;
  transition: color 0.3s ease-out;
}

.p-header__nav-item a:not([class])::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  background: url(../images/common/header_nav-item_bg_current.svg) no-repeat center/3.9375rem;
  content: "";
  opacity: 0;
  transition: opacity var(--hover-transition);
}

.p-header__nav-item a:not([class])[target=_blank]::after {
  width: 0.8125rem;
  aspect-ratio: 13/12;
  background: url(../images/common/icon_external.svg) no-repeat center/contain;
  content: "";
}

/* カレント表示 */
.p-header__nav-item.is-current a:not([class]):not(.p-header__nav-list:has(.is-current-section) *),
.p-header__nav-item.is-current-section a:not([class]) {
  color: var(--color-main);
  pointer-events: none;
}

.p-header__nav-item.is-current a:not([class]):not(.p-header__nav-list:has(.is-current-section) *)::before,
.p-header__nav-item.is-current-section a:not([class])::before {
  opacity: 1;
}

@media (any-hover: hover) {
  .p-header__nav-item a:not([class]):hover {
    color: var(--color-main);
    opacity: 1;
  }
  .p-header__nav-item a:not([class]):hover::before {
    opacity: 1;
  }
}
.p-header__hamburger {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger {
    position: relative;
    z-index: 999;
    display: block;
    padding: 0;
    width: 6.25rem;
  }
}

.p-header__hamburger span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  background-color: var(--color-main);
  width: 3rem;
  height: 1.5rem;
  border-radius: 0.75rem;
}

.p-header__hamburger span::before,
.p-header__hamburger span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 1.125rem;
  height: 1px;
  background-color: var(--color-white);
  content: "";
  transition: transform 0.3s ease-out;
}

.p-header__hamburger span::before {
  transform: translate(-50%, calc(-0.1875rem - 50%));
}

.p-header__hamburger span::after {
  transform: translate(-50%, calc(0.1875rem - 50%));
}

.p-header__hamburger.is-open span::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.p-header__hamburger.is-open span::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.p-header__drawer {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-header__drawer {
    position: relative;
    position: fixed;
    z-index: 900;
    inset: 0;
    display: block;
    width: 100%;
    height: 100vh;
    background: var(--bg);
    overflow-y: scroll;
    scrollbar-width: none;
    transform: translateY(-100%);
    transition: transform 0.3s ease-out;
  }
}

.p-header__drawer.is-open {
  transform: translateY(0%);
}

.p-header__drawer::-webkit-scrollbar {
  display: none;
}

.p-header__drawer::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  background: var(--color-white) url(../images/common/drawer_bg.webp) no-repeat top/cover;
  content: "";
}

.p-header__drawer-nav {
  max-width: min(77.1875%, 400px);
  margin-inline: auto;
  padding-block: 5rem;
}

.p-header__drawer-item--staff {
  text-align: center;
  margin-block-start: 2.5rem;
}

.p-header__drawer-item--contact {
  margin-block-start: 2.5rem;
  text-align: center;
}

.p-header__drawer-item a:not([class]) {
  position: relative;
  z-index: 0;
  padding-inline: 0.625rem;
  padding-block: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  border-bottom: 1px solid var(--color-main);
  transition: color var(--hover-transition);
}

.p-header__drawer-item a:not([class])::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
  background: url(../images/common/header_nav-item_bg_current.svg) no-repeat right/1.875rem;
  content: "";
  opacity: 0;
  transition: opacity var(--hover-transition);
}

.p-header__drawer-item a:not([class])[target=_blank]::after {
  width: 0.8125rem;
  aspect-ratio: 13/12;
  background: url(../images/common/icon_external.svg) no-repeat center/contain;
  content: "";
}

/* カレント表示 */
.p-header__drawer-item.is-current a:not([class]):not(.p-header__drawer-list:has(.is-current-section) *),
.p-header__drawer-item.is-current-section a:not([class]) {
  color: var(--color-main);
  pointer-events: none;
}

.p-header__drawer-item.is-current a:not([class]):not(.p-header__drawer-list:has(.is-current-section) *)::before,
.p-header__drawer-item.is-current-section a:not([class])::before {
  opacity: 1;
}

@media (any-hover: hover) {
  .p-header__drawer-item a:hover:not([class]) {
    opacity: 1;
    color: var(--color-main);
  }
  .p-header__drawer-item a:not([class]):hover::before {
    opacity: 1;
  }
}
.p-list {
  --_marker-size: 0.75rem;
  --_marker-color: var(--color-sub);
  --_row-gap: 1.875rem;
  --_column-gap: 0.875rem;
  display: grid;
  gap: var(--_row-gap);
}
@media screen and (max-width: 767px) {
  .p-list {
    --_row-gap: 1.25rem;
  }
}

.p-list__item {
  position: relative;
  padding-inline-start: calc(var(--_marker-size) + var(--_column-gap));
  display: grid;
  grid-template-columns: 1fr;
  align-items: flex-start;
}

.p-list__item::before {
  position: absolute;
  inset-block-start: calc((1lh - var(--_marker-size)) / 2);
  inset-inline-start: 0;
  inline-size: var(--_marker-size);
  block-size: var(--_marker-size);
  aspect-ratio: 1;
  background-color: var(--_marker-color, currentColor);
  border-radius: 50%;
  content: "";
}

.p-news-list {
  border-block: var(--border);
}

.p-news-list__item + .p-news-list__item {
  background: var(--border-dashed-block-start);
}

.p-news-list__item a {
  display: block;
  padding-block: 1.75rem 2.25rem;
  padding-inline: 1.625rem;
  transition: color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-news-list__item a {
    padding-block: 1.5rem 1.875rem;
    padding-inline: 1.25rem;
  }
}

.p-news-list__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

.p-news-list__date {
  color: var(--color-main);
  font-family: var(--en-font-family);
  font-size: max(1.25rem, 10px);
  font-weight: 500;
  translate: 0 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-news-list__date {
    translate: 0 0.125rem;
  }
}

.p-news-list__title {
  margin-top: 0.625rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-news-list__title {
    margin-top: 0.625rem;
    font-size: max(0.875rem, 10px);
    line-height: 2.2857142857;
    -webkit-line-clamp: 2;
  }
}

.p-news-list__pagenavi {
  margin-top: 3.125rem;
}

@media (any-hover: hover) {
  .p-news-list__item a:hover {
    color: var(--color-main);
  }
}
@media screen and (max-width: 767px) {
  .p-news {
    scroll-margin-block-start: 3.75rem;
  }
}

.p-news[data-page-type=archive] {
  padding-block-end: 16.875rem;
}
@media screen and (max-width: 767px) {
  .p-news[data-page-type=archive] {
    padding-block-end: 7.5rem;
  }
}

.p-news__inner {
  --inner-pc: 67.5rem;
}

.p-news__wrap {
  position: relative;
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto 1fr;
  grid-template-areas: "heading content" "button content";
  justify-content: space-between;
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
  row-gap: 2.375rem;
  min-height: 29.9375rem;
}
@media screen and (max-width: 767px) {
  .p-news__wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: unset;
  }
}

.p-news__wrap:has(.p-news__no-post) {
  min-height: unset;
}

.p-news__wrap::after {
  position: absolute;
  inset-block-end: -0.375rem;
  inset-inline-start: 0.6875rem;
  display: block;
  width: 10.5rem;
  aspect-ratio: 337/341;
  background: url(../images/news/news_illust.webp) no-repeat center/contain;
  content: "";
}
@media screen and (max-width: 767px) {
  .p-news__wrap::after {
    inset: -2.8125rem 0.5rem auto auto;
    width: 7.875rem;
  }
}

.p-news__wrap:has(.p-news__no-post)::after {
  content: none;
}
@media screen and (max-width: 767px) {
  .p-news__wrap:has(.p-news__no-post)::after {
    content: "";
  }
}

/* トップ・職員専の見出し */
.p-news__heading {
  padding-block-start: 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-news__heading {
    padding-block-start: 0;
    padding-inline: 1rem;
  }
}

.p-news__button {
  grid-area: button;
}
@media screen and (max-width: 767px) {
  .p-news__button {
    order: 2;
    margin-block-start: 2.375rem;
    text-align: center;
  }
}

/* トップ・職員専用タブ切り替えボタンを含むコンテンツ */
.p-news__contents {
  grid-area: content;
  width: 46.875rem;
}
@media screen and (max-width: 767px) {
  .p-news__contents {
    margin-block-start: 2.5rem;
    width: auto;
  }
}

.p-news__no-post {
  grid-area: content;
  width: 46.875rem;
  text-align: left;
  margin-block-start: 2.625rem;
}
@media screen and (max-width: 767px) {
  .p-news__no-post {
    width: auto;
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  .p-news__archive-nav {
    margin-inline-end: calc(50% - 50cqi);
  }
}

.p-news__archive-items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  row-gap: 0.625rem;
}
@media screen and (max-width: 767px) {
  .p-news__archive-items {
    overflow-x: auto;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 0;
    -webkit-overflow-scrolling: touch;
  }
}

.p-news__archive-item {
  flex-shrink: 0;
  display: flex;
}

.p-news__archive-item + .p-news__archive-item::before {
  flex-shrink: 0;
  margin-inline: 1rem;
  width: 1px;
  background-color: var(--color-border);
  content: "";
}
@media screen and (max-width: 767px) {
  .p-news__archive-item + .p-news__archive-item::before {
    margin-inline: 0.5rem;
  }
}

.p-news__archive-link {
  display: inline-block;
  padding-block: 0.875rem;
  padding-inline: 1.125rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--color-black);
  text-decoration: none;
  border-radius: 0.375rem;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-news__archive-link {
    font-size: max(0.875rem, 10px);
    padding-block: 0.625rem;
    padding-inline: 0.875rem;
  }
}

/* 一覧ページ記事リスト（ターム切り替え含まない） */
.p-news__list {
  margin-block-start: 1.5rem;
}
@media screen and (max-width: 767px) {
  .p-news__list {
    margin-block-start: 1rem;
  }
}

@media (any-hover: hover) {
  .p-news__archive-link:hover {
    opacity: 1;
    background-color: var(--color-active);
  }
}
.p-news__archive-link.is-current {
  background-color: var(--color-active);
}

.p-page {
  padding-block-end: 16.875rem;
}
@media screen and (max-width: 767px) {
  .p-page {
    padding-block-end: 7.5rem;
  }
}

.p-page__media {
  margin-block-start: 7.625rem;
  display: grid;
  grid-template-columns: 41.125rem 31.0625rem;
  gap: 2.8125rem;
}
@media screen and (max-width: 767px) {
  .p-page__media {
    margin-block-start: 3.75rem;
    grid-template-columns: auto;
  }
}

.p-page__image {
  padding-block-start: 0.375rem;
}

.p-page__image img {
  border-radius: var(--image-border-radius);
  aspect-ratio: 3/2;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center 80%;
     object-position: center 80%;
}

.p-single {
  padding-block-end: 16.875rem;
}
@media screen and (max-width: 767px) {
  .p-single {
    padding-block-end: 7.5rem;
  }
}

.p-single__head {
  padding-bottom: 1.875rem;
  padding-inline: 1.25rem;
  border-bottom: var(--border);
}

.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

.p-single__date {
  color: var(--color-main);
  font-family: var(--en-font-family);
  font-size: max(1.25rem, 10px);
  font-weight: 500;
  translate: 0 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-single__date {
    translate: 0 0.125rem;
  }
}

.p-single__title {
  margin-top: 1.375rem;
  font-size: max(1.5rem, 10px);
  font-weight: 700;
  color: var(--color-main);
}
@media screen and (max-width: 767px) {
  .p-single__title {
    font-size: max(1.375rem, 10px);
  }
}

.p-single__thumb {
  margin-top: 1.25rem;
  width: 100%;
  height: auto;
}

.p-single__thumb img {
  width: auto;
  height: auto;
}

.p-single__content {
  margin-top: 3.125rem;
  padding-inline: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-single__content {
    margin-top: 1.875rem;
  }
}

.p-single__nav {
  margin-top: 5rem;
  padding-top: 1.875rem;
  border-top: var(--border);
  text-align: center;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-single__nav {
    margin-top: 3.125rem;
  }
}

.p-single__nav-prev a,
.p-single__nav-next a,
.p-single__nav-center a {
  display: inline-block;
  border-radius: 0.5rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.05em;
  padding: 0.625rem;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-single__nav-prev a,
  .p-single__nav-next a,
  .p-single__nav-center a {
    font-size: max(0.875rem, 10px);
  }
}

.p-single__nav-prev {
  position: absolute;
  left: 0;
  bottom: 0;
}

.p-single__nav-next {
  position: absolute;
  right: 0;
  bottom: 0;
}

@media (any-hover: hover) {
  .p-single__nav-prev a:hover,
  .p-single__nav-next a:hover,
  .p-single__nav-center a:hover {
    background-color: var(--color-active);
    opacity: 1;
  }
}
.p-staff-message__content {
  margin-block-start: 3.125rem;
}
@media screen and (max-width: 767px) {
  .p-staff-message__content {
    margin-block-start: 2.5rem;
  }
}

.p-staff-message__box {
  margin-inline: auto;
  max-width: 56.25rem;
  position: relative;
  z-index: 0;
  min-height: 23.5625rem;
  padding-block: 2.625rem;
  padding-inline: 2.25rem 19.875rem;
}
@media screen and (max-width: 767px) {
  .p-staff-message__box {
    padding-block: 0;
    padding-inline: 0.9375rem;
  }
}

.p-staff-message__box-heading {
  color: var(--color-white);
  font-family: var(--en-font-family);
  font-size: max(2.5rem, 10px);
  font-weight: 500;
  letter-spacing: 0.02em;
  filter: var(--filter);
}
@media screen and (max-width: 767px) {
  .p-staff-message__box-heading {
    font-size: max(2.25rem, 10px);
  }
}

.p-staff-message__box-desc {
  margin-block-start: 1rem;
}
@media screen and (max-width: 767px) {
  .p-staff-message__box-desc {
    margin-block-start: 0.625rem;
  }
}

.p-staff-message__box-image {
  position: absolute;
  z-index: -1;
  inset: 0;
}
@media screen and (max-width: 767px) {
  .p-staff-message__box-image {
    margin-block-start: 1.375rem;
    position: static;
    margin-inline: -1.5rem;
  }
}

.p-staff-message__box-image img {
  border-radius: var(--image-border-radius);
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-staff-message__box-image img {
    height: auto;
  }
}

.p-staff-notice__content {
  margin-block-start: 3.75rem;
}
@media screen and (max-width: 767px) {
  .p-staff-notice__content {
    margin-block-start: 2.5rem;
  }
}

.p-staff-retired__content {
  margin-block-start: 2.625rem;
}
@media screen and (max-width: 767px) {
  .p-staff-retired__content {
    margin-block-start: 1.875rem;
  }
}

.p-staff-retired__desc {
  text-align: center;
}

.p-staff-retired__button {
  margin-block-start: 1.875rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-staff-retired__button {
    margin-block-start: 1.875rem;
  }
}

.p-staff-support__content {
  margin-block-start: 2.625rem;
}
@media screen and (max-width: 767px) {
  .p-staff-support__content {
    margin-block-start: 2.5rem;
  }
}

.p-staff-support__desc {
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-staff-support__desc {
    text-align: left;
  }
}

.p-staff-support__items {
  margin-block-start: 2.75rem;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 1.5625rem;
       column-gap: 1.5625rem;
  row-gap: 1.6875rem;
  max-width: 56.25rem;
}
@media screen and (max-width: 767px) {
  .p-staff-support__items {
    grid-template-columns: 1fr;
  }
}

.p-staff-support__item-link {
  position: relative;
  display: flex;
  height: 100%;
  background-color: var(--color-white);
  border: var(--border-main);
  border-radius: 0.5rem;
  overflow: clip;
}

.p-staff-support__item-link::before,
.p-staff-support__item-link::after {
  content: "";
}

.p-staff-support__item-link::after {
  background-color: var(--color-main);
  width: 2.375rem;
}

.p-staff-support__item-link::before {
  position: absolute;
  z-index: 1;
  inset-block-start: 50%;
  inset-inline-end: 0.8125rem;
  translate: 0 -50%;
  display: block;
  width: 0.5rem;
  aspect-ratio: 8/21;
  background: url(../images/common/arrow_right_tall.svg) no-repeat center/contain;
}

.p-staff-support__item-title {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 6.875rem;
  padding-block: 1em;
  padding-inline: 1em;
  font-size: max(1.125rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5555555556;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-staff-support__item-title {
    padding-inline: 1em;
    font-size: max(1rem, 10px);
  }
}

.p-staff-support__no-items {
  margin-block-start: 3.75rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-staff-support__no-items {
    margin-block-start: 2.5rem;
    text-align: left;
  }
}

@media (any-hover: hover) {
  .p-staff-support__item-link:hover {
    opacity: 1;
  }
  .p-staff-support__item-link:hover .p-staff-support__item-title {
    background-color: var(--color-active);
  }
}
.p-sub-mv {
  padding-block-start: calc(var(--header-height) + 0.5rem);
  transition: padding-block-start 0.5s;
}

.p-sub-mv__wrap {
  margin-inline-end: calc(50% - 50cqi);
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  padding-inline: 4.625rem 5rem;
}
@media screen and (max-width: 767px) {
  .p-sub-mv__wrap {
    padding-inline: 1.75rem;
  }
}

.p-sub-mv__wrap::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: url(../images/common/sub-mv_bg.webp) no-repeat center/cover;
  border-top-left-radius: 5rem;
}
@media screen and (max-width: 767px) {
  .p-sub-mv__wrap::before {
    background-image: url(../images/common/sub-mv_bg_sp.webp);
  }
}

.p-sub-mv__title {
  padding-block: 4.0625rem 2rem;
  flex-shrink: 0;
  background: url() no-repeat center/cover;
  color: var(--color-main);
}
@media screen and (max-width: 767px) {
  .p-sub-mv__title {
    padding-block: 3.5625rem 2.5rem;
  }
}

.p-sub-mv__title-wrap::before {
  position: absolute;
  inset: 0;
}

.p-sub-mv__title-en {
  padding-inline-start: 0.25rem;
  font-family: var(--en-font-family);
  font-size: max(1rem, 10px);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-sub-mv__title-en {
    font-size: max(0.875rem, 10px);
  }
}

.p-sub-mv__title-en::first-letter {
  color: var(--color-accent);
}

.p-sub-mv__title-ja {
  margin-block-start: 0.625rem;
  font-size: max(1.875rem, 10px);
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
  .p-sub-mv__title-ja {
    margin-block-start: 0.3125rem;
    font-size: max(1.25rem, 10px);
  }
}

.p-sub-mv__image {
  margin-block-start: -2.6875rem;
  width: 29.375rem;
  translate: 0 5rem;
}
@media screen and (max-width: 767px) {
  .p-sub-mv__image {
    display: none;
  }
}

.p-tab__menu-items {
  display: flex;
  padding-inline: 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-tab__menu-items {
    width: calc(50% + 50vw);
    width: calc(50% + 50cqi);
    overflow-x: auto;
  }
}

.p-tab__menu-item {
  flex-shrink: 0;
  display: flex;
}

.p-tab__menu-item + .p-tab__menu-item::before {
  margin-inline: 1.1875rem;
  width: 1px;
  background-color: var(--color-border);
  content: "";
}
@media screen and (max-width: 767px) {
  .p-tab__menu-item + .p-tab__menu-item::before {
    margin-inline: 1.0625rem;
  }
}

.p-tab__button {
  padding-block: 0.875rem;
  padding-inline: 0.5rem;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  border-radius: 0.375rem;
  transition: background-color var(--hover-transition);
}
@media screen and (max-width: 767px) {
  .p-tab__button {
    font-size: max(0.875rem, 10px);
  }
}

@media (any-hover: hover) {
  .p-tab__button:hover {
    background-color: var(--color-active);
  }
}
.p-tab__button.is-active {
  background-color: var(--color-active);
}

.p-tab__contents {
  margin-top: 0.875rem;
}
@media screen and (max-width: 767px) {
  .p-tab__contents {
    margin-top: 1.25rem;
  }
}

.p-tab__content {
  display: none;
}

.p-tab__content.is-active {
  display: block;
  animation: fade 0.5s ease;
}

@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.p-terms {
  display: contents;
}

.p-terms__term {
  padding-block: 0.5rem;
  padding-inline: 1.25rem;
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  background-color: var(--color-white);
  border: var(--border-main);
  border-radius: 100vh;
}
@media screen and (max-width: 767px) {
  .p-terms__term {
    padding-block: 0.25rem;
    padding-inline: 0.5rem;
    font-size: max(0.875rem, 10px);
  }
}

.p-top-about {
  overflow-x: clip;
}

.p-top-about__inner {
  --inner-pc: 67.5rem;
  display: flex;
}
@media screen and (max-width: 767px) {
  .p-top-about__inner {
    display: block;
  }
}

.p-top-about__wrap {
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-top-about__wrap {
    white-space: unset;
  }
}

.p-top-about__heading {
  position: relative;
  z-index: 1;
}

.p-top-about__content {
  margin-block-start: 2.875rem;
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .p-top-about__content {
    margin-block-start: 2.4375rem;
  }
}

.p-top-about__content::before {
  position: absolute;
  z-index: -1;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 35.625rem;
  aspect-ratio: 1;
  background-color: color-mix(in srgb, var(--color-white), transparent 20%);
  border-radius: 50%;
  content: "";
  translate: -38% -3%;
}
@media screen and (max-width: 767px) {
  .p-top-about__content::before {
    translate: -54% -17%;
    width: 27.5rem;
  }
}

.p-top-about__copy {
  font-size: max(2.125rem, 10px);
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
  .p-top-about__copy {
    font-size: max(1.5rem, 10px);
    line-height: 1.375;
  }
}

.p-top-about__desc {
  margin-block-start: 2rem;
  font-size: max(1.125rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 2.1111111111;
}
@media screen and (max-width: 767px) {
  .p-top-about__desc {
    margin-block-start: 1.875rem;
    font-size: max(1rem, 10px);
    line-height: 2.125;
  }
}

.p-top-about__button {
  margin-block-start: 3.125rem;
}
@media screen and (max-width: 767px) {
  .p-top-about__button {
    text-align: center;
    margin-block-start: 1.6875rem;
  }
}

.p-top-about__images {
  position: relative;
  flex-shrink: 0;
  flex-grow: 0;
  width: 46.875rem;
  translate: 1.75rem 0;
}
@media screen and (max-width: 767px) {
  .p-top-about__images {
    margin-inline-start: auto;
    margin-block-start: 2.5rem;
    width: 19.75rem;
    translate: 1.25rem 0;
  }
}

.p-top-about__image2 {
  position: absolute;
  inset-block-end: -3.625rem;
  inset-inline-start: -4rem;
  width: 21.875rem;
}
@media screen and (max-width: 767px) {
  .p-top-about__image2 {
    inset-block-end: -6.375rem;
    inset-inline-start: -2.0625rem;
    width: 13.875rem;
  }
}

.p-top-banner {
  position: relative;
  z-index: 0;
  padding-block: 9.125rem 15.0714285714vw;
  background: url(../images/top/top-banner_bg.webp) no-repeat bottom/cover;
  /* 空の境界線をぼかす */
  -webkit-mask: linear-gradient(transparent, var(--color-white) 6.25rem);
          mask: linear-gradient(transparent, var(--color-white) 6.25rem);
}
@media screen and (max-width: 767px) {
  .p-top-banner {
    padding-block: 17.125rem 27.4666666667vw;
    background-image: url(../images/top/top-banner_bg_sp.webp);
    background-position: top;
    -webkit-mask: unset;
            mask: unset;
  }
}

@media screen and (max-width: 767px) {
  .p-top-banner__inner {
    --inner-padding-sp: 1.375rem;
  }
}

.p-top-banner__content {
  margin-inline: auto;
  max-width: 50.9375rem;
}
@media screen and (max-width: 767px) {
  .p-top-banner__content {
    max-width: 20.625rem;
  }
}

.p-top-facilities {
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 767px) {
  .p-top-facilities__inner {
    --inner-padding-sp: 0.625rem;
  }
}

.p-top-facilities__heading {
  text-align: center;
}

.p-top-facilities__content {
  margin-block-start: 2.3125rem;
}
@media screen and (max-width: 767px) {
  .p-top-facilities__content {
    margin-block-start: 2.25rem;
  }
}

.p-top-facilities__list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}
@media screen and (max-width: 767px) {
  .p-top-facilities__list {
    grid-template-columns: 1fr;
    gap: 1.0625rem;
  }
}

.p-top-facilities__item a {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: var(--color-white);
  border-radius: 0.375rem;
  overflow: clip;
}
@media (any-hover: hover) {
  .p-top-facilities__item a figure {
    overflow: hidden;
  }
  .p-top-facilities__item a img {
    transition: scale 0.3s ease-in-out;
  }
  .p-top-facilities__item a:hover {
    opacity: 1;
  }
  .p-top-facilities__item a:hover img {
    scale: 1.1;
  }
}
@media screen and (max-width: 767px) {
  .p-top-facilities__item a {
    flex-direction: row;
  }
}

@media screen and (max-width: 767px) {
  .p-top-facilities__item-image {
    width: 8.75rem;
  }
}

.p-top-facilities__item-image img {
  aspect-ratio: 457/221;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-top-facilities__item-image img {
    aspect-ratio: 140/100;
  }
}

.p-top-facilities__item-content {
  flex-grow: 1;
  padding-block: 0.8125rem 1.375rem;
  padding-inline: 1.125rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .p-top-facilities__item-content {
    padding-block: 1.25rem;
    padding-inline: 1.25rem 1.5625rem;
  }
}

.p-top-facilities__item-heading {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  font-size: max(0.9375rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.0666666667;
}

.p-top-facilities__item-heading:is(.p-top-facilities__item a[target=_blank] *)::after {
  width: 0.8125rem;
  aspect-ratio: 13/12;
  background: url(../images/common/icon_external.svg) no-repeat center/contain;
  content: "";
}

.p-top-facilities__item-heading small {
  margin-block-end: 0.1875rem;
  display: block;
  font-size: max(0.75rem, 10px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.3333333333;
}

.p-top-mv {
  padding-block-start: calc(var(--header-height) + 3rem);
  overflow-x: clip;
  transition: padding-block-start 0.5s;
}
@media screen and (max-width: 767px) {
  .p-top-mv {
    padding-block-start: calc(var(--header-height) + 3.375rem);
  }
}

.p-top-mv__inner {
  --inner-pc: 69.875rem;
}

.p-top-mv__heading {
  max-width: 43.4375rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__heading {
    max-width: 96.4179104478%;
  }
}

.p-top-mv__content {
  margin-block-start: 2.125rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__content {
    margin-block-start: 1.625rem;
  }
}

.p-top-mv__copy {
  max-width: 23.375rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__copy {
    max-width: 102.2151898734%;
  }
}

.p-top-mv__image {
  margin-block-start: -6.6875rem;
  margin-inline-start: auto;
  position: relative;
  max-width: 65.75rem;
  translate: 12.5rem 0;
}
@media screen and (max-width: 767px) {
  .p-top-mv__image {
    margin-block-start: 1.625rem;
    margin-inline: calc(var(--inner-padding-sp) * -1);
    max-width: unset;
    translate: 0;
  }
}

.p-top-mv__drone1 {
  position: absolute;
  inset-block-start: 1.25rem;
  inset-inline-start: 12.625rem;
  max-width: 5.4375rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__drone1 {
    display: none;
  }
}

.p-top-mv__drone2 {
  position: absolute;
  inset-block-start: 4.5625rem;
  inset-inline-end: 11.4375rem;
  max-width: 5.4375rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__drone2 {
    display: none;
  }
}

.p-top-mv__copy2 {
  margin-block-start: -1rem;
  margin-inline: -2.625rem;
  max-width: 75rem;
}
@media screen and (max-width: 767px) {
  .p-top-mv__copy2 {
    margin-block-start: 0;
    margin-inline: -0.5rem;
    max-width: unset;
  }
}

[data-hover-underline] {
  --underline-color: currentColor;
  /* ネガティブ値NG */
  --bottom: 0;
  --duration: 0.4s;
  --delay: 0s;
  --line-width: 1px;
  background-repeat: no-repeat;
  background-image: linear-gradient(var(--underline-color), var(--underline-color));
  background-size: 0% var(--line-width);
  background-position: bottom var(--bottom) right;
}

/* 伸びるアニメーション（JS で is-expanded を付与） */
@keyframes expand {
  0% {
    background-size: 0% var(--line-width);
    background-position: bottom var(--bottom) left;
  }
  100% {
    background-position: bottom var(--bottom) left;
    background-size: 100% var(--line-width);
  }
}
/* 縮むアニメーション（JS で is-contracting を付与、animationend でクラス削除） */
@keyframes contract {
  0% {
    background-size: 100% var(--line-width);
    background-position: bottom var(--bottom) right;
  }
  100% {
    background-position: bottom var(--bottom) right;
    background-size: 0% var(--line-width);
  }
}
[data-hover-underline].is-expanded {
  animation: expand var(--duration) var(--delay) forwards;
}

[data-hover-underline].is-contracting {
  animation: contract var(--duration) forwards;
}

@media (any-hover: hover) {
  a:hover:has([data-hover-underline]) {
    opacity: 1;
  }
}
.js-fadein {
  opacity: 0;
  transform: translateY(2.5rem);
  transition: opacity 2s cubic-bezier(0.2, 0.6, 0.2, 1), transform 1s cubic-bezier(0.2, 0.6, 0.2, 1);
}

.js-fadein.is-scrolled {
  opacity: 1;
  transform: translateY(0);
}

.u-container {
  container-type: inline-size;
}

.u-floating-x {
  animation: floating-x 3s ease-in-out infinite alternate-reverse;
}

.u-floating-x + .u-floating-x {
  animation-delay: 0.8s;
}

@keyframes floating-x {
  0% {
    transform: translateX(-15%);
  }
  100% {
    transform: translateX(15%);
  }
}
.u-floating-y {
  animation: floating-y 7s ease-in-out infinite alternate-reverse;
}

* + * .u-floating-y {
  animation-delay: 0.3s;
}

@keyframes floating-y {
  0% {
    transform: translateY(-8%);
  }
  100% {
    transform: translateY(8%);
  }
}
/**
 * マーカー風の下線（蛍光ペン風）※複数行非対応
 * --marker-color, --marker-width でカスタマイズ可能
 */
.u-marker-round {
  --marker-color: #ffff8b;
  --marker-width: 0.9375rem;
  position: relative;
  z-index: 0;
  display: inline-block;
}

.u-marker-round::before {
  position: absolute;
  z-index: -1;
  inset-block-end: 0;
  inset-inline: -0.25rem;
  display: block;
  height: var(--marker-width);
  background-color: var(--marker-color);
  border-radius: 100vh;
  content: "";
}

.u-no-image {
  background-color: var(--color-gray);
  padding: 2% 20%;
  -o-object-fit: contain;
     object-fit: contain;
}

.u-pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .u-pc {
    display: none;
  }
}

/* 
* 「1px以上スクロールしたら」をIntersectionObserver APIで検知するための要素
*/
.u-scroll-sentinel {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
}

.u-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .u-sp {
    display: block;
  }
}