@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

a {
  text-decoration: none;
  cursor: pointer;
}

.wpcf7-list-item {
  margin: 0;
}

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

body, html {
  z-index: -1000;
  position: relative;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

body {
  position: relative;
  background-color: #F3EFEB;
  color: #222222;
  font-style: normal;
  font-weight: 500;
  line-height: 1.8;
  font-family: "Noto Sans JP", Arial, sans-serif;
  font-feature-settings: "palt";
}

html.drawer-open {
  overflow: hidden !important;
}

body.pageOn .fv-container {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.f-layout__container {
  display: flex;
  z-index: -100;
  position: relative;
  width: 100%;
  height: auto;
}

.f-scroll-section {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding-top: 90px;
  padding-right: 10%;
  padding-left: 10%;
  overflow: hidden;
}
@media screen and (min-width: 540px) {
  .f-scroll-section {
    padding-top: 120px;
  }
}

.f-scroll-section:not(:first-child):not(:last-child) {
  padding-bottom: 100px;
}

.f-scroll-section > * {
  display: block; /* 必要に応じてデフォルトを強制 */
  width: 100%; /* 必要に応じて幅を設定 */
}

/* レスポンシブ対応 */
@media (max-width: 960px) {
  .f-layout__container {
    flex-direction: column;
  }
  .p-aside {
    display: none;
  }
  header .logo, header .menu {
    font-size: 1.2rem;
  }
}
#firstview {
  z-index: 1000;
  position: fixed;
  width: 100%;
  height: 100vh;
  transition: opacity 1.5s ease, transform 1.5s ease;
}

#firstview.hidden {
  transform: translateY(-50px);
  opacity: 0;
  pointer-events: none; /* イベントを受け付けない */
}

/* reCAPTCHA バッジを非表示 */
.grecaptcha-badge {
  visibility: hidden !important;
}

.l-firstview {
  z-index: 990;
  position: fixed;
  width: 100%;
  height: 100vh;
  margin: 0 auto;
  background: #F3EFEB;
}

.l-firstview__img-title {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.fv-container {
  display: flex;
  z-index: 1000; /* メインコンテンツより前面 */
  position: fixed; /* 固定表示 */
  top: 0;
  left: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
  background-color: #333; /* FVの背景色 */
  color: white;
  text-align: center;
  clip-path: circle(100% at center); /* 初期状態は全体表示 */
  transition: clip-path 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* スクロールを促すアイコン */
.scroll-icon {
  position: absolute;
  bottom: calc(50% - 90px);
  left: 50%;
  width: 20px;
  transform: translateX(-50%, -50%);
  animation: bounce 2s infinite;
}
@media (min-width: 450px) {
  .scroll-icon {
    bottom: calc(50% - 116px);
    width: 30px;
    height: 30px; /* 高さも指定 */
  }
}
@media (max-width: 1099px) and (min-width: 961px) {
  .scroll-icon {
    bottom: calc(50% - 80px);
  }
}
@media screen and (min-width: 1100px) {
  .scroll-icon {
    bottom: calc(50% - 90px);
  }
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0) translateX(-50%);
  }
  40% {
    transform: translateY(-20px) translateX(-50%);
  }
  60% {
    transform: translateY(-10px) translateX(-50%);
  }
}
#main-content {
  z-index: 1; /* FVの下に配置 */
  position: relative;
  transition: opacity 0.5s ease;
}

/* ページ遷移前の「閉じる」状態のための追加クラス */
.page-closing .p-aside__left {
  transform: translateX(50vw);
}

.page-closing .p-aside__right {
  transform: translateX(-50vw);
}

/* ページ読み込み直後の「開く」状態のための追加クラス */
.page-opening .p-aside__left {
  transform: translateX(50vw);
}

.page-opening .p-aside__right {
  transform: translateX(-50vw);
}

/* アニメーション中はコンテンツをフェードアウト */
.page-closing .main-content {
  opacity: 0;
}

.l-header {
  box-sizing: border-box;
  display: flex;
  z-index: 999;
  position: fixed;
  top: 0;
  left: 50%;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 960px;
  height: 60px;
  padding: 0 20px;
  transform: translateX(-50%);
  background-color: #F3EFEB;
}
.l-header::before {
  z-index: 50;
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  height: 3px;
  transform: translateX(-50%);
  background-image: url(../img/line-black__row.svg);
  background-position: bottom left;
  background-size: 120px 3px;
  background-repeat: repeat-x;
  content: "";
}

.l-header.scrolled::before {
  opacity: 0;
}

.l-page-heading {
  width: 100%;
  max-width: 960px;
  margin-top: 60px;
}

.l-footer__content {
  width: 100%;
}

.l-page-inner {
  padding-right: 5%;
  padding-bottom: 80px;
  padding-left: 5%;
}
@media (min-width: 640px) {
  .l-page-inner {
    padding-right: 10%;
    padding-left: 10%;
  }
}

@media (max-width: 539px) and (min-width: 500px) {
  .l-page-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}
.l-page-inner__archive {
  padding-right: 4%;
  padding-bottom: 80px;
  padding-left: 4%;
  overflow-y: auto;
}
@media (max-width: 785px) and (min-width: 520px) {
  .l-page-inner__archive {
    padding-right: 4%;
    padding-left: 4%;
  }
}
@media screen and (min-width: 961px) {
  .l-page-inner__archive {
    padding-right: 10%;
    padding-left: 10%;
  }
}

.l-page-padding {
  padding-top: clamp(1.25rem, 0.5163043478rem + 2.1739130435vw, 1.875rem);
}

body.drawer-open {
  position: fixed;
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  touch-action: none;
}

.c-hamburger {
  z-index: 10000 !important;
  position: fixed;
  top: 9px;
  right: 20px;
  width: 44px;
  height: 44px;
  background: transparent;
  background-image: url("../img/hamburger-icon.svg");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  cursor: pointer;
  opacity: 1;
  transition: background-image 0.3s ease-in-out;
  transition: opacity 0.3s ease;
}

.c-hamburger.hide {
  opacity: 0 !important;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.drawer-close {
  z-index: 10001;
  position: absolute;
  top: 9px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: none;
  background-image: url("../img/hamburger-icon-click.svg");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: transparent;
  text-indent: -9999px;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.p-hamburger__wrap {
  position: relative;
  width: 100%;
  max-width: 2400px;
  margin: 0 auto;
}

.c-drawer__button {
  position: relative;
}

.c-drawer__button-icon {
  position: absolute;
  top: 50%;
  left: 3px;
  width: 40px;
  height: 40px;
  transform: translateY(-50%);
}

.c-section__title {
  will-change: transform, opacity;
}

.c-section1__title {
  z-index: 20;
  position: absolute;
  top: -162px;
  right: 16px;
  width: 260px;
  transform: rotate(-2deg);
}
@media screen and (min-width: 540px) {
  .c-section1__title {
    top: auto;
    right: 16px;
    bottom: 16px;
    width: initial;
  }
}

.c-section__title-en-svg {
  width: auto;
  height: clamp(2.75rem, 2.1630434783rem + 1.7391304348vw, 3.25rem);
}

.c-section__title-ja-svg {
  display: block;
  width: auto;
  height: clamp(1.5625rem, 1.1956521739rem + 1.0869565217vw, 1.875rem);
  margin-top: 5px;
}

.p-section__button {
  display: inline-block;
  display: flex;
  z-index: 5;
  position: relative;
  top: 50%;
  left: 50%;
  align-items: center;
  justify-content: center;
  width: 80vw;
  max-width: 310px;
  height: 80px;
  margin-top: 100px;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease-in-out;
}
.p-section__button:hover {
  transform: translate(-50%, -50%) scale(0.9);
}
.p-section__button::before, .p-section__button::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: 100%;
  background-repeat: no-repeat;
  content: "";
  transition: opacity 0.3s ease-in-out;
}
.p-section__button::before {
  background-image: url("../img/orange-button.svg");
  opacity: 1;
}
.p-section__button::after {
  background-image: url("../img/orange-button-hover.svg");
  opacity: 0;
}
.p-section__button:hover::before {
  opacity: 0;
}
.p-section__button:hover::after {
  opacity: 1;
}
.p-section__button--blue::before {
  background-image: url("../img/blue-button.svg");
}
.p-section__button--blue::after {
  background-image: url("../img/blue-button-hover.svg");
}
.p-section__button--green::before {
  background-image: url("../img/green-button.svg");
}
.p-section__button--green::after {
  background-image: url("../img/green-button-hover.svg");
}

.p-section__button-input-wrapper,
.p-section__input-button {
  display: inline-block;
  display: flex;
  z-index: 5;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 80vw;
  max-width: 310px;
  height: 80px;
  border: none;
  border-radius: 70px;
  outline: none;
  background: transparent;
  color: transparent;
  cursor: pointer;
  transition: transform 0.3s ease-in-out;
}
.p-section__button-input-wrapper::before, .p-section__button-input-wrapper::after,
.p-section__input-button::before,
.p-section__input-button::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: 100%;
  background-repeat: no-repeat;
  content: "";
  transition: opacity 0.3s ease-in-out;
}
.p-section__button-input-wrapper:hover,
.p-section__input-button:hover {
  transform: scale(0.9);
}
.p-section__button-input-wrapper::before,
.p-section__input-button::before {
  background-image: url("../img/green-button.svg");
  opacity: 1;
}
.p-section__button-input-wrapper::after,
.p-section__input-button::after {
  background-image: url("../img/green-button-hover.svg");
  opacity: 0;
}
.p-section__button-input-wrapper:hover::before,
.p-section__input-button:hover::before {
  opacity: 0;
}
.p-section__button-input-wrapper:hover::after,
.p-section__input-button:hover::after {
  opacity: 1;
}

.p-section__button .arrow,
.p-section__button-input-wrapper .arrow {
  position: absolute;
  top: 50%;
  right: 10%;
  width: 8.7px;
  height: 15px;
  transform: translateY(-50%);
  background-image: url("../img/button-arrow.svg");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
  transition: transform 0.3s ease-in-out;
}

.p-section__button-text {
  z-index: 10;
  position: absolute;
  width: 50%;
  max-width: 165px;
  height: 23px;
  line-height: 23px;
  text-align: center;
}

.c-form-field__tag {
  padding: 4px 6px;
  border-radius: 6px;
  background: #8FA33D;
  color: #FFFFFF;
  font-style: normal;
  font-weight: 500;
  font-size: 10px;
  line-height: normal;
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.l-contact__number-wrap {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  justify-items: center;
  width: 420px;
  margin: 0 auto;
}

.p-contact__number {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 70px;
}

.p-contact__number::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 60px;
  transform: translate(-50%, -50%);
  background-image: url("../img/contact_number-bk.svg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
}

.p-contact__number::after {
  z-index: 1;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 70px;
  height: 70px;
  transform: translate(-50%, -50%);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
}

/* 通常時の画像 */
.p-contact__number-1::after {
  background-image: url("../img/contact_number1.svg");
}

.p-contact__number-2::after {
  background-image: url("../img/contact_number2.svg");
}

.p-contact__number-3::after {
  background-image: url("../img/contact_number3.svg");
}

/* is-active がついたときの画像変更 */
.p-contact__number-1.is-active::after {
  background-image: url("../img/contact_number1-green.svg");
}

.p-contact__number-2.is-active::after {
  background-image: url("../img/contact_number2-green.svg");
}

.p-contact__number-3.is-active::after {
  background-image: url("../img/contact_number3-green.svg");
}

.p-contact__number-line {
  position: relative;
  width: 40px;
}
.p-contact__number-line::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 6px;
  transform: translate(-50%, -50%);
  background-image: url("../img/contact_number-line.svg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
}

.p-contact__number-img {
  display: block;
  z-index: 2;
  width: 60px;
  height: auto;
  height: 18px;
  margin-top: 95px;
}

/* ─── 変　数 ─────────────────────────── */
/* ─── ボタン本体 ─────────────────────── */
.l-page-top {
  visibility: hidden;
  z-index: 799;
  position: absolute;
  right: -170px;
  bottom: 5px;
  width: 130px;
  height: 130px;
  cursor: pointer;
  transition: right 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
@media screen and (min-width: 540px) {
  .l-page-top {
    right: -170px;
    width: 150px;
    height: 150px;
  }
}

.l-page-top.is-visible {
  visibility: visible;
  right: -32px;
  background: transparent;
}

.l-page-top.is-leaving {
  visibility: visible;
  right: -170px;
}

/* ─── PNG / GIF 切替（フェードは内側だけ） ─── */
.page-top__png,
.page-top__gif {
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  -o-object-fit: contain;
     object-fit: contain;
}

.page-top__png {
  opacity: 1;
  transition: opacity 0.2s;
}

.page-top__gif {
  opacity: 0;
  transition: opacity 0.2s;
}

.l-page-top.is-gif .page-top__gif {
  opacity: 1;
}

.l-page-top.is-gif .page-top__png {
  opacity: 0;
}

.p-page-top__wrap {
  z-index: 800;
  position: fixed;
  right: 0;
  bottom: 40px;
  width: 150px;
  height: 150px;
  overflow: hidden;
  transform-origin: right center;
  transition: transform 0.2s ease;
}
@media screen and (min-width: 540px) {
  .p-page-top__wrap {
    width: 150px;
    height: 150px;
  }
}
@media screen and (min-width: 961px) {
  .p-page-top__wrap {
    right: calc(50% - 482px);
  }
}
.p-page-top__wrap:hover {
  transform: scale(0.9);
}

.c-section1__animation {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 300px;
}

.p-section1__animation__img {
  position: absolute;
  top: -80px;
  right: 0px;
  width: 320px;
  height: auto;
  opacity: 0.8;
}
@media screen and (min-width: 768px) {
  .p-section1__animation__img {
    top: auto;
    right: 240px;
    bottom: -46px;
    width: 370px;
  }
}

.c-header__logo {
  display: block;
  width: 150px;
  height: 14px;
}

.p-header__logo-link {
  display: block;
  width: 100%;
  height: 100%;
}

.p-header__logo-img {
  display: block;
  width: 150px;
  height: 14px; /* 実際の高さを指定 */
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform;
  -webkit-font-smoothing: antialiased; /* テキストのレンダリングを滑らかに */
  -o-object-fit: contain;
     object-fit: contain; /* 画像のアスペクト比を保持 */
}

.c-page-heading__title {
  display: flex;
  z-index: 30;
  position: absolute;
  top: 50%;
  left: 50%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 4px;
  transform: translate(-50%, -50%);
}

/* PCサイズ時の画像サイズ */
.p-page-heading__title-en--img {
  height: 30px;
}
@media screen and (min-width: 540px) {
  .p-page-heading__title-en--img {
    height: 36px;
  }
}

.p-page-heading__title-ja--img {
  height: 20px;
}
@media screen and (min-width: 540px) {
  .p-page-heading__title-ja--img {
    height: 24px;
  }
}

.c-page-top__back {
  display: block;
  position: relative;
  left: 50%;
  width: -moz-fit-content;
  width: fit-content;
  transform: translateX(-50%);
  color: #222222;
  font-style: normal;
  font-weight: 700;
  font-size: 14px;
  line-height: 26px; /* 185.714% */
  font-family: "Noto Sans JP", Arial, sans-serif;
  transition: opacity 0.3s ease;
}
.c-page-top__back:hover {
  opacity: 0.5;
}
.c-page-top__back::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 2px;
  background: #222222;
  content: "";
}

/* ファーストビュー */
/* ドロワーが開いているときのファーストビュー */
body.drawer-open #firstview {
  z-index: 1;
}

.p-firstview__text-wrapper {
  top: 0;
  left: 50%;
  max-width: 2400px;
  transform: translateX(-50%);
}

.p-firstview__text-wrapper,
.p-fv__svg-wrap {
  display: flex;
  z-index: -1;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 100vh;
}

.p-title__wrap {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
@media (min-width: 600px) and (max-width: 960px) {
  .p-title__wrap {
    position: relative;
    top: 0;
    height: 100%;
    transform: none;
  }
}
@media screen and (min-width: 961px) {
  .p-title__wrap {
    top: 50%;
    height: 0;
    transform: translateY(-50%);
  }
}

.p-firstview__read-text {
  position: absolute;
  bottom: -55px;
}

.p-firstview__img-title {
  display: flex;
  z-index: 1;
  position: absolute;
  top: 50%;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 800px;
  height: auto;
  transform: translateY(-50%);
}

.p-firstview__img-title img {
  display: block;
  width: 500px;
  height: auto;
  padding: 0 16%;
}
@media screen and (min-width: 961px) {
  .p-firstview__img-title img {
    width: 600px;
    padding: 0 4%;
  }
}
@media screen and (min-width: 1440px) {
  .p-firstview__img-title img {
    width: 800px;
    padding: 0 4%;
  }
}

/******************************************************
 *  モバイル FV
 ******************************************************/
.p-title__wrap-img_mobile {
  position: absolute;
  width: 100%;
  height: 100%;
  max-height: 900px;
}

.img-heignt__mobile {
  display: none;
}
@media (max-width: 600px) and (min-height: 900px) {
  .img-heignt__mobile {
    display: block;
    position: absolute;
    top: -20px;
    right: -30px;
    width: 165px;
  }
}

.tozinbo-wrapper {
  z-index: -1;
  position: absolute;
  right: 0;
  bottom: 0;
  width: 80%;
  max-width: 360px;
  height: auto;
  transform: scaleX(-1);
}
@media (min-width: 380px) {
  .tozinbo-wrapper {
    width: 70%;
  }
}
@media (min-width: 601px) {
  .tozinbo-wrapper {
    display: none;
  }
}
@media (max-width: 600px) and (min-height: 1001px) {
  .tozinbo-wrapper {
    width: 410px;
  }
}

.p-img-tozinbo__mobile {
  width: 100%;
  height: auto;
  opacity: 0;
}

.p-img-kathu__mobile {
  z-index: -1;
  position: absolute;
  bottom: 50px;
  left: 0;
  width: 100%;
  max-width: 140px;
  height: auto;
}
@media (min-width: 601px) {
  .p-img-kathu__mobile {
    display: none;
  }
}

.p-img-born__mobile {
  z-index: -1;
  position: absolute;
  top: -90px;
  left: 22px;
  width: 80%;
  max-width: 360px;
  height: auto;
}
@media screen and (min-width: 540px) {
  .p-img-born__mobile {
    width: 80%;
    max-width: 360px;
  }
}
@media (min-width: 601px) {
  .p-img-born__mobile {
    display: none;
  }
}

.p-img-owan__mobile {
  z-index: -1;
  position: absolute;
  top: 0;
  right: 10px;
  width: 100%;
  max-width: 180px;
  height: auto;
}
@media (min-width: 601px) {
  .p-img-owan__mobile {
    display: none;
  }
}
@media (max-height: 667px) {
  .p-img-owan__mobile {
    right: -15px;
    max-width: 146px;
  }
}
@media (min-height: 668px) {
  .p-img-owan__mobile {
    top: 70px;
    right: -15px;
    max-width: 180px;
  }
}
@media (min-height: 850px) {
  .p-img-owan__mobile {
    top: 100px;
    right: 30px;
    max-width: 200px;
  }
}

.p-img-train__mobile {
  display: none;
  position: absolute;
  bottom: -150px;
  left: 0;
  width: 100%;
  max-width: 260px;
}
@media (max-width: 600px) and (min-height: 800px) {
  .p-img-train__mobile {
    display: block;
  }
}

.p-img-megane__mobile {
  display: none;
}
@media (max-width: 600px) {
  .p-img-megane__mobile {
    width: 150px;
  }
}
@media (max-width: 600px) and (max-height: 740px) {
  .p-img-megane__mobile {
    display: block;
    position: absolute;
    right: auto;
    bottom: -130px;
    left: 50%;
    width: 180px;
    transform: translateX(-50%);
  }
}
@media (max-width: 600px) and (min-height: 741px) and (max-height: 1000px) {
  .p-img-megane__mobile {
    display: block;
    position: absolute;
    right: 0px;
    bottom: -170px;
    left: auto;
    transform: none;
  }
}
@media (max-width: 600px) and (min-height: 1001px) {
  .p-img-megane__mobile {
    display: block;
    position: absolute;
    right: 50px;
    bottom: -240px;
    left: auto;
    width: 200px;
    transform: none;
  }
}

.p-img-mizuyokan__mobile {
  display: none;
}
@media (max-width: 600px) and (min-height: 700px) {
  .p-img-mizuyokan__mobile {
    display: block;
    position: absolute;
    top: 0;
    left: -50px;
    width: 300px;
  }
}

.p-img-sawayaka__mobile {
  display: none;
}
@media (max-width: 330px) {
  .p-img-sawayaka__mobile {
    display: block;
    position: absolute;
    bottom: -10px;
    left: -10px;
    width: 100px;
  }
}
@media (max-width: 600px) and (max-height: 667px) {
  .p-img-sawayaka__mobile {
    display: block;
    position: absolute;
    bottom: 35px;
    left: 0;
    width: 100px;
  }
}
@media (max-width: 600px) and (min-height: 741px) and (max-height: 1000px) {
  .p-img-sawayaka__mobile {
    display: block;
    position: absolute;
    bottom: -20px;
    left: 0;
    width: 100px;
  }
}
@media (max-width: 600px) and (min-height: 1001px) {
  .p-img-sawayaka__mobile {
    display: block;
    position: absolute;
    bottom: -80px;
    left: 20px;
    width: 130px;
  }
}

@media (max-width: 600px) {
  .p-img-car {
    position: absolute;
    top: -50px;
    left: -16px;
  }
  .p-img-kani {
    position: absolute;
    top: -10px;
    right: -40px;
  }
}
/******************************************************
 *  タブレットFV
 ******************************************************/
.p-title__wrap-img_tablet {
  display: flex;
  position: absolute;
  top: 50%;
  left: 50%;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 240px;
  transform: translate(-50%, -50%);
}

.p-fv__svg-tablet-top2 {
  display: none;
}
@media (min-width: 600px) and (max-width: 960px) {
  .p-fv__svg-tablet-top2 {
    display: flex;
    position: absolute;
    top: -200px;
    right: 50%;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0 5%;
    transform: translateX(50%);
  }
}

.p-fv__svg-tablet-bottom {
  display: none;
}
@media (min-width: 600px) and (max-width: 960px) {
  .p-fv__svg-tablet-bottom {
    display: flex;
    position: absolute;
    right: 50%;
    bottom: -200px;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0 5%;
    transform: translateX(50%);
  }
}
.p-fv__svg-tablet-bottom .p-img_tablet9 {
  display: none;
}
@media (min-width: 471px) {
  .p-fv__svg-tablet-bottom .p-img_tablet9 {
    display: block;
  }
}

.p-fv__svg-tablet-bottom2 {
  display: none;
}
@media (min-width: 600px) and (max-width: 960px) {
  .p-fv__svg-tablet-bottom2 {
    display: flex;
    position: absolute;
    bottom: 0px;
    align-items: flex-end;
    justify-content: space-between;
    width: 100%;
  }
}
.p-fv__svg-tablet-bottom2 .p-img_tablet5 {
  display: none;
}
@media (min-width: 600px) {
  .p-fv__svg-tablet-bottom2 .p-img_tablet5 {
    display: block;
  }
}

.img-heignt_tablet {
  width: auto;
  -o-object-fit: cover;
  height: 130px;
     object-fit: cover;
}

.img-heignt_tablet80 {
  height: 70px;
}
@media screen and (min-width: 768px) {
  .img-heignt_tablet80 {
    height: 80px;
  }
}

.p-fv__svg-tablet-top {
  display: none;
}
@media (min-width: 600px) and (max-width: 960px) {
  .p-fv__svg-tablet-top {
    display: flex;
    position: absolute;
    top: 0;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
}
.p-fv__svg-tablet-top .p-img_tablet2 {
  display: none;
}
@media (min-width: 600px) {
  .p-fv__svg-tablet-top .p-img_tablet2 {
    display: block;
  }
}
.p-fv__svg-center {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-fv__svg-center {
    display: flex;
    position: absolute;
    top: calc(50% - 50px);
    left: 50%;
    justify-content: space-between;
    width: 100%;
    transform: translate(-50%, -50%);
  }
}
@media screen and (min-width: 961px) {
  .p-fv__svg-center {
    display: none;
  }
}

/******************************************************
 *  PC FV
 ******************************************************/
.img-heignt {
  width: auto;
  -o-object-fit: cover;
  height: 100%;
     object-fit: cover;
}

.p-fv__svg-box1,
.p-fv__svg-box2,
.p-fv__svg-box3,
.p-fv__svg-box4,
.p-fv__svg-box5,
.p-fv__svg-box6 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 10px;
}

.p-fv__svg-box1 img,
.p-fv__svg-box2 img {
  width: auto;
  height: 80px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box1 img,
  .p-fv__svg-box2 img {
    height: 90px;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-box1 img,
  .p-fv__svg-box2 img {
    height: 100px;
  }
}
@media (min-width: 1920px) {
  .p-fv__svg-box1 img,
  .p-fv__svg-box2 img {
    height: 120px;
  }
}

.p-fv__svg-box2 {
  padding-left: 0;
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box2 {
    padding: 0 5%;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-box2 {
    padding: 0 5%;
  }
}

.p-fv__svg-box2 .p-img-kaseki {
  height: 120px;
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box2 .p-img-kaseki {
    height: 130px;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-box2 .p-img-kaseki {
    height: 140px;
  }
}

.p-fv__svg-box6 {
  align-items: stretch;
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box6 {
    padding-right: 0;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-box6 {
    padding-right: 5%;
  }
}

.p-title__svg-bottom {
  display: flex;
  z-index: -1;
  position: absolute;
  bottom: calc(50% - 174px);
  flex-direction: row-reverse;
  justify-content: space-between;
  width: 107%;
  height: 70px;
  transform: translateY(-50%);
}
@media screen and (min-width: 540px) {
  .p-title__svg-bottom {
    z-index: -1;
    bottom: calc(50% - 168px);
    width: 100%;
    max-width: 600px;
    height: 84px;
  }
}
@media screen and (min-width: 961px) {
  .p-title__svg-bottom {
    bottom: -88px;
    width: 100%;
    max-width: 800px;
    height: 70px;
    transform: initial;
  }
}
@media screen and (min-width: 1440px) {
  .p-title__svg-bottom {
    bottom: -88px;
    width: 100%;
    max-width: 1000px;
    height: 90px;
  }
}

.p-fv__svg-top {
  display: flex;
  position: absolute;
  top: calc(50% - 80px);
  justify-content: center;
  width: 116%;
  height: 250px;
  transform: translateY(-50%);
}
@media screen and (min-width: 375px) {
  .p-fv__svg-top {
    top: -250px;
    top: calc(50% - 100px);
    width: 116%;
    height: 300px;
    transform: translateY(-50%);
  }
}
@media screen and (min-width: 540px) {
  .p-fv__svg-top {
    width: 100%;
    height: 310px;
  }
}
@media screen and (min-width: 768px) {
  .p-fv__svg-top {
    max-width: 500px;
  }
}
@media screen and (min-width: 961px) {
  .p-fv__svg-top {
    top: -200px;
    max-width: 720px;
    height: 210px;
    transform: initial;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-top {
    top: -220px;
    max-width: 890px;
    height: 230px;
  }
}
.p-fv__svg-top:before {
  z-index: -1;
  position: absolute;
  top: 60px;
  left: 6px;
  width: 130px;
  height: 131px;
  background: url("../img/tougei_2.gif") no-repeat center center/cover;
  content: "";
}
@media screen and (min-width: 375px) {
  .p-fv__svg-top:before {
    top: 106px;
    left: -9px;
    width: 130px;
    height: 131px;
  }
}
@media screen and (min-width: 961px) {
  .p-fv__svg-top:before {
    top: 43px;
    left: 80px;
    width: 110px;
    height: 110px;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-top:before {
    top: 35px;
    left: 94px;
    width: 130px;
    height: 125px;
  }
}
.p-fv__svg-top::after {
  z-index: -1;
  position: absolute;
  right: 26px;
  bottom: 0;
  width: 90px;
  width: 73px;
  height: 210px;
  height: 168px;
  background: url("../img/suisen@2x.gif") no-repeat center center/cover;
  content: "";
}
@media screen and (min-width: 375px) {
  .p-fv__svg-top::after {
    right: 26px;
    width: 86px;
    height: 190px;
  }
}
@media screen and (min-width: 961px) {
  .p-fv__svg-top::after {
    right: 34px;
    width: 90px;
    height: 200px;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-top::after {
    right: 26px;
    height: 210px;
  }
}

.p-img-kyouryu {
  display: none;
}
@media screen and (min-width: 961px) {
  .p-img-kyouryu {
    display: block;
    height: 180px;
  }
}
@media screen and (min-width: 1100px) {
  .p-img-kyouryu {
    height: 200px;
  }
}

.img-heignt1 {
  width: auto; /* 元のアスペクト比を維持 */
  height: auto;
  max-height: 100px; /* 高さの最大値を100pxに設定 */
  -o-object-fit: contain;
     object-fit: contain;
}

.p-fv__svg-box4 {
  width: 1100px;
  padding-right: 0;
  padding-left: 40px;
}
@media screen and (min-width: 1100px) {
  .p-fv__svg-box4 {
    width: 100%;
  }
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box4 {
    padding: 0 4%;
  }
}

.p-fv__svg-box4 img {
  height: 100px;
  transition: opacity 0.5s ease;
}
@media screen and (min-width: 1100px) {
  .p-fv__svg-box4 img {
    display: block;
    height: 100px;
  }
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box4 img {
    height: 130px;
  }
}

.p-img-born {
  height: 180px;
}
@media screen and (min-width: 1100px) {
  .p-img-born {
    height: 200px;
  }
}

.p-fv__svg-box3 {
  width: 1000px;
  height: 190px;
}
@media screen and (min-width: 1100px) {
  .p-fv__svg-box3 {
    width: 100%;
  }
}

.p-fv__svg-box3 img {
  height: 90px;
}
@media screen and (min-width: 1100px) {
  .p-fv__svg-box3 img {
    display: block;
    height: 100px;
  }
}
@media screen and (min-width: 1200px) {
  .p-fv__svg-box3 img {
    height: 120px;
  }
}
@media screen and (min-width: 1440px) {
  .p-fv__svg-box3 img {
    height: 140px;
  }
}

.p-img-sawayaka {
  height: 140px;
}
@media screen and (min-width: 1100px) {
  .p-img-sawayaka {
    height: 160px;
  }
}
@media screen and (min-width: 1200px) {
  .p-img-sawayaka {
    height: 170px;
  }
}

.p-img-owan {
  height: 90px;
}

.p-img-matu {
  height: 130px;
}
@media screen and (min-width: 1100px) {
  .p-img-matu {
    height: 140px;
  }
}
@media screen and (min-width: 1200px) {
  .p-img-matu {
    height: 160px;
  }
}

.p-img-tougei {
  height: 150px;
}
@media screen and (min-width: 1100px) {
  .p-img-tougei {
    height: 160px;
  }
}
@media screen and (min-width: 1200px) {
  .p-img-tougei {
    height: 180px;
  }
}

.p-fv__svg-box1 .p-img-uthihamono {
  height: 130px;
}

.p-fv__svg-box6 {
  aspect-ratio: 6/1;
  width: 100%;
  -o-object-fit: cover;
  max-height: 116px;
     object-fit: cover;
}
@media screen and (min-width: 1100px) {
  .p-fv__svg-box6 {
    max-height: 140px;
  }
}
@media (min-width: 1600px) {
  .p-fv__svg-box6 {
    height: 180px;
  }
}

.p-img-mizuyokan {
  height: 70px !important;
}

@media (max-width: 960px) {
  .p-fv__svg-wrap {
    display: none; /* 既存レイアウトを非表示 */
  }
}
@media (max-height: 700px) {
  .p-fv__svg-box2,
  .p-fv__svg-box6 {
    display: none;
  }
}
.p-aside {
  box-sizing: border-box;
  container-type: inline-size;
  display: flex;
  z-index: 1000;
  position: fixed;
  top: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc((100% - 960px) / 2);
  height: 100vh;
  overflow: hidden;
  background-color: #F3EFEB;
  text-align: center;
  transition: width 0.8s ease;
  transition: transform 0.8s ease-in-out;
}

.p-aside__left {
  left: 0;
  transform: translateX(0);
}

.p-aside__right {
  right: 0;
  transform: translateX(0);
}

.p-aside__left-line {
  position: relative;
  width: 100%;
  height: 100vh;
}
.p-aside__left-line::before {
  z-index: 100;
  position: absolute;
  top: 0;
  right: 0;
  width: 3px;
  height: 100%;
  background-image: url("../img/line-black.svg");
  background-position: top right;
  background-size: contain;
  background-repeat: repeat-y;
  content: "";
}

.p-aside__right-line {
  position: relative;
  width: 100%;
  height: 100vh;
}
.p-aside__right-line::before {
  z-index: 100;
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background-image: url("../img/line-black.svg");
  background-position: top left;
  background-size: contain;
  background-repeat: repeat-y;
  content: "";
}

.p-aside__text-wrapper {
  z-index: -100;
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 40px;
}

.p-aside__img-title {
  position: absolute;
  top: calc(50% - 30px);
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-aside .p-aside__right-line ul {
  display: none;
  position: absolute;
  bottom: 20px;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  max-width: 90px;
  margin: 0;
  padding: 0;
  padding-right: 20px;
  padding-left: 20px;
  list-style-type: none;
  transition: opacity 0.3s ease;
}
@media (min-width: 1400px) {
  .p-aside .p-aside__right-line ul {
    display: flex;
  }
}

.p-aside .p-aside__right-line ul > * + * {
  display: block;
  width: 100%;
  margin-top: 8px;
}

.p-aside__button {
  display: inline-block;
  width: 50px;
  height: 50px;
  transition: transform 0.3s ease-in-out;
}

.p-aside__button img {
  display: block;
  width: 100%;
  height: auto;
}

.p-aside__button:hover {
  transform: scale(0.95);
}

/* ドロワーメニューが非表示の時はフォーカスも受け付けない */
.p-drawer-menu:not(.active) {
  visibility: hidden;
  pointer-events: none;
}

/* ドロワーメニューが表示されている時は、背景コンテンツをスクリーンリーダーから隠す */
.p-drawer-menu.active {
  visibility: visible;
  pointer-events: auto;
}

/* ドロワーメニュー内のリンクが確実にフォーカスを受け取れるようにする */
.p-drawer-menu.active a {
  visibility: visible;
  z-index: 1000;
  pointer-events: auto;
}

/* ドロワーオープン時のボディ固定 */
body.drawer-open {
  position: fixed;
  width: 100%;
  height: 100%;
  overflow: hidden !important;
}

.p-drawer__menu {
  display: flex;
  z-index: 10001;
  position: fixed;
  top: 0;
  right: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  height: 500px;
  transform: scale(0.8);
  background: url("../img/drawer-bk.svg") no-repeat center center;
  opacity: 0;
  pointer-events: none;
}

.p-drawer__menu.active {
  transform: scale(1);
  opacity: 1;
  pointer-events: auto;
}

.p-drawer__menu-header {
  position: absolute;
  top: 20px;
  width: 55px;
}
.p-drawer__menu-header::before {
  position: absolute;
  bottom: -11px;
  left: 50%;
  width: 100%;
  height: 3px;
  transform: translateX(-50%);
  background-image: url("../img/line-black__row.svg");
  background-position: bottom left;
  background-size: auto 3px;
  background-repeat: repeat-x;
  content: "";
}

.p-drawer__menu-wrap {
  display: flex;
  position: absolute;
  top: 100px;
  flex-direction: column;
  align-items: center;
  gap: 68px;
}

.p-drawer__menu-ul {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.c-drawer__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  margin: 0 auto;
  gap: 8px;
  text-decoration: none;
  transition: transform 0.3s ease-in-out;
}

.c-drawer__button:hover {
  transform: scale(0.95);
}

.c-drawer__icon {
  width: 24px;
  height: auto;
}

.c-drawer__button-image {
  width: 100%;
  height: auto;
}

.p-drawer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 200px;
}

.p-drawer__sns-link {
  transition: opacity 0.3s ease-in-out;
}

.p-drawer__sns-link:hover {
  opacity: 0.7;
}

.p-drawer__sns {
  width: 40px;
}

.p-drawer__bottom-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.p-drawer__text {
  width: 100px;
}

main,
#footer,
#footer-work {
  box-sizing: border-box;
  position: relative;
  top: 0;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  background-color: #F3EFEB;
}

/* ✅ 960px以下で `::before` を非表示にする */
@media (max-width: 960px) {
  main::before,
  #footer::before {
    display: none; /* ✅ 960px以下では `::before` を非表示 */
  }
}
#section1 {
  position: relative;
  width: 100%;
  min-height: 300vh; /* スクロール用に長め */
  padding-top: 100vh; /* FVの高さ分の余白 */
  overflow: visible;
}

.p-section1__animation__text {
  position: absolute;
  bottom: 120px;
  width: 100%;
}
@media screen and (min-width: 540px) {
  .p-section1__animation__text {
    top: 510px;
    bottom: auto;
  }
}

.p-section__text {
  width: 100%;
  max-width: 400px;
  color: #FFFFFF;
  font-weight: 500;
  line-height: 32px;
  letter-spacing: 1.6px;
  text-align: left;
}

.p-text__wrapper {
  z-index: 20;
  position: sticky;
  top: 20px;
  left: 0;
  width: 100%;
  max-width: 530px;
  opacity: 0;
  transition: opacity 0.3s ease;
  will-change: transform, opacity;
}

.p-text__wrapper > p + p {
  margin-top: 20px;
}
@media screen and (min-width: 540px) {
  .p-text__wrapper > p + p {
    margin-top: 30px;
  }
}

.p-text-read__img {
  width: 100%;
  margin-left: -6px;
  padding-bottom: 20px;
}

.p-text-read__img-text {
  width: 100%;
}
@media (min-width: 400px) {
  .p-text-read__img-text {
    width: 80%;
  }
}

/* 個々のspanをアニメーション対象にする */
.p-section__text span {
  display: inline-block;
  translate: 0 100%; /* 初期位置は下 */
  animation: 0.5s ease forwards slideUp;
  animation-play-state: paused; /* 初期状態では停止 */
}

/* スタガー効果のために遅延を設定 */
.p-section__text:nth-child(1) {
  animation-delay: 0.2s;
}

.p-section__text:nth-child(2) {
  animation-delay: 0.4s;
}

.p-section__text:nth-child(3) {
  animation-delay: 0.6s;
}

/* アニメーション開始クラス */
.text-animate-active span {
  animation-play-state: running;
}

/* スライドアップのキーフレーム */
@keyframes slideUp {
  0% {
    translate: 0 100%;
  }
  100% {
    translate: 0 0;
  }
}
.p-text__color {
  color: #E99509;
  font-weight: 700;
}

.c-button__color-orange {
  margin-top: 60px;
  background: #E99509;
}
@media screen and (min-width: 540px) {
  .c-button__color-orange {
    margin-top: 70px;
  }
}

.parallax-container__section1-wrap1 {
  position: absolute;
  top: 0px;
  left: 50%;
  width: 100%;
  height: 560px;
  transform: translateX(-50%);
}
@media screen and (min-width: 540px) {
  .parallax-container__section1-wrap1 {
    height: 420px;
  }
}

.parallax-container__section1-wrap2 {
  position: absolute;
  top: 160px;
  left: 50%;
  width: 100%;
  height: 300px;
  transform: translateX(-50%);
}

.parallax-container__section1-wrap3 {
  position: absolute;
  bottom: 370px;
  left: 50%;
  width: 100%;
  height: 100px;
  transform: translateX(-50%);
}

.left-cloud__section1-wrap1 {
  position: absolute;
  right: -80px;
  width: 200px;
}
@media screen and (min-width: 540px) {
  .left-cloud__section1-wrap1 {
    right: -80px;
    width: 250px;
  }
}

.right-cloud__section1-wrap1 {
  position: absolute;
  left: -78px;
  width: 250px;
}

.left-cloud__section1-wrap2 {
  position: absolute;
  top: 75px;
  left: -4%;
  width: 184px;
}

.right-cloud__section1-wrap2 {
  position: absolute;
  right: 7%;
  width: 167px;
}

.left-cloud__section1-wrap1-2 {
  position: absolute;
  top: 97px;
  left: -4%;
  width: 184px;
}

.right-cloud__section1-wrap1-2 {
  position: absolute;
  top: 145px;
  right: -14%;
  width: 180px;
}
@media screen and (min-width: 540px) {
  .right-cloud__section1-wrap1-2 {
    top: 90px;
    width: 208px;
  }
}

.left-cloud__section1-wrap1-3 {
  position: absolute;
  top: 246px;
  left: -4%;
  width: 184px;
}

.right-cloud__section1-wrap1-3 {
  position: absolute;
  top: 339px;
  right: -7%;
  width: 183px;
}

.left-cloud__section1-wrap1-4 {
  position: absolute;
  top: 282px;
  left: -3%;
  width: 212px;
}

.right-cloud__section1-wrap1-4 {
  position: absolute;
  top: 170px;
  right: -3%;
  width: 208px;
}

.left-cloud__section1-wrap3 {
  position: absolute;
  bottom: -25px;
  left: 10%;
  width: 84px;
}

.right-cloud__section1-wrap3 {
  position: absolute;
  right: 7%;
  bottom: 0;
  width: 117px;
}

.parallax-container__section1-wrap4 {
  position: absolute;
  bottom: 370px;
  left: 50%;
  width: 100%;
  height: 100px;
  transform: translateX(-50%);
}

.right-cloud__section1-wrap4 {
  position: absolute;
  right: 19%;
  bottom: -65px;
  width: 64px;
}

.left-cloud__section1-wrap4 {
  position: absolute;
  bottom: 85px;
  left: 8%;
  width: 149px;
}

.parallax-container__section1-wrap1,
.parallax-container__section1-wrap2,
.parallax-container__section1-wrap3,
.parallax-container__section1-wrap4 {
  z-index: 1 !important;
  position: absolute;
}

.clouds-background {
  z-index: 3;
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  max-width: 864px;
  height: calc(100% - 60px);
  overflow: hidden;
  transform: translateX(-50%);
  pointer-events: none; /* クリック透過 */
  will-change: opacity, visibility, transform;
}

/* Cloud Floating Animation */
@keyframes cloud-float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-15px);
  }
  100% {
    transform: translateY(0);
  }
}
.parallax-cloud__section1 {
  animation: cloud-float 6s ease-in-out infinite;
  animation-delay: 0s;
}

.left-cloud__section1-wrap1,
.left-cloud__section1-wrap1-2 {
  animation-delay: -2s;
}

.right-cloud__section1-wrap1,
.right-cloud__section1-wrap1-2 {
  animation-delay: -4s;
}

@keyframes cloud-float-small {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0);
  }
}
.parallax-container__section1-wrap3 .parallax-cloud__section1,
.parallax-container__section1-wrap4 .parallax-cloud__section1 {
  animation: cloud-float-small 5s ease-in-out infinite;
}

.parallax-container__section1-wrap3 .left-cloud__section1-wrap3,
.parallax-container__section1-wrap4 .left-cloud__section1-wrap4 {
  animation-delay: -2s;
}

.parallax-container__section1-wrap3 .right-cloud__section1-wrap3,
.parallax-container__section1-wrap4 .right-cloud__section1-wrap4 {
  animation-delay: -3s;
}

/* GSAPアニメーション全体の設定 */
.gsap-animation {
  position: relative;
  bottom: 0;
  width: 100%;
  max-width: 100%;
  height: auto;
  overflow: visible;
  transform-origin: center bottom;
}

/* 電車のスタイル */
.section1-train {
  z-index: 4;
  position: absolute;
  bottom: 208px;
  bottom: clamp(56px, 19.375vw - 6px, 180px);
  left: 50%;
  aspect-ratio: 512.841/34.13;
  width: 100%;
  max-width: 512.841px;
  transform: translateX(-50%);
  background: url(../img/train@2x.png) center top/contain no-repeat;
}

/* 背景のスタイル */
.gsap-animation__back {
  z-index: 1;
  position: absolute;
  bottom: clamp(60px, 19.6875vw - 3px, 186px);
  left: 50%;
  width: 100%;
  max-width: 960px;
  transform: translateX(-50%);
}

/* 前景のスタイル */
.gsap-animation__front {
  z-index: 5;
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  max-width: 960px;
  transform: translateX(-50%);
}

/* セクション1の設定 */
#section1 {
  position: relative;
  overflow: visible;
}

/* 雲背景の設定 */
.clouds-background {
  visibility: hidden;
  z-index: 3;
  position: fixed;
  bottom: 0;
  left: 50%;
  width: 100%;
  max-width: 960px;
  height: calc(100% - 60px);
  transform: translateX(-50%);
  opacity: 0;
  pointer-events: none;
}

.img-animation1 {
  position: absolute;
  bottom: 260px;
  width: 100%;
  height: 200px;
  opacity: 0.7;
}
.img-animation1::before {
  position: absolute;
  top: 70px;
  left: 50px;
  width: 49.2px;
  height: 24px;
  background: url(../img/cloud@2x.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  animation: cloudLeft1 15s ease-in-out infinite alternate;
}
.img-animation1::after {
  position: absolute;
  top: 133px;
  left: 140px;
  width: 26.2px;
  height: 12.78px;
  background: url(../img/cloud@2x.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  animation: cloudLeft2 10s ease-in-out infinite alternate;
}

/* 左右のアニメーション */
@keyframes cloudLeft1 {
  0% {
    transform: translateX(-24px);
  }
  50% {
    transform: translateX(0px);
  }
  100% {
    transform: translateX(24px);
  }
}
/* 上下のアニメーション */
@keyframes cloudLeft2 {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0px);
  }
}
.img-animation2 {
  position: absolute;
  bottom: 260px;
  width: 100%;
  height: 200px;
  opacity: 0.7;
}
.img-animation2::before {
  position: absolute;
  top: 110px;
  right: 89px;
  width: 37px;
  height: 18.049px;
  background: url(../img/cloud@2x.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  animation: cloudRight2 10s ease-in-out infinite alternate;
}
.img-animation2::after {
  position: absolute;
  top: 80px;
  right: 40px;
  width: 26.2px;
  height: 12.78px;
  background: url(../img/cloud@2x.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  content: "";
  animation: cloudRight1 15s ease-in-out infinite alternate;
}

/* 左右のアニメーション */
@keyframes cloudRight1 {
  0% {
    transform: translateX(-12px);
  }
  50% {
    transform: translateX(0px);
  }
  100% {
    transform: translateX(16px);
  }
}
/* 上下のアニメーション */
@keyframes cloudRight2 {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0px);
  }
}
.cloud-animation {
  left: 50%;
  width: 768px;
  max-width: 100%;
  overflow: hidden;
  transform: translateX(-50%);
}

.cloud-group {
  position: absolute;
  width: 100%;
  overflow: visible; /* 雲が端から端まで流れるようにオーバーフローを許可 */
}

#section2 {
  position: relative;
  overflow: visible;
  background: #ffffff;
}
#section2::before {
  z-index: 12;
  position: absolute;
  top: -16px;
  left: 0;
  width: 100%;
  height: 45.714px;
  background: url(../img/img_bg_wave.svg) repeat-x;
  background-position: top left; /* 位置調整 */
  background-size: contain; /* 横幅いっぱいに拡大 */
  content: "";
}
#section2::after {
  z-index: 1;
  position: absolute;
  bottom: -16px;
  left: 0;
  width: 100%;
  height: 49.714px;
  background: url(../img/img_bg_wave-bottom.svg) repeat-x;
  background-position: top left; /* 位置調整 */
  background-size: contain; /* 横幅いっぱいに拡大 */
  content: "";
}

.section2_bg-img {
  position: relative;
}
.section2_bg-img::before {
  position: absolute;
  top: -17px;
  left: 149px;
  width: 112px;
  height: 99px;
  background: url(../img/img_matu.gif) no-repeat center center/cover;
  content: "";
}
@media screen and (min-width: 540px) {
  .section2_bg-img::before {
    top: -36px;
    left: 190px;
    width: 144px;
    height: 136px;
  }
}
.section2_bg-img span {
  position: relative; /* z-indexの基準を確保 */
}

.wave-container {
  z-index: 10;
  position: absolute;
  bottom: -24px;
  margin: 0 -20px;
}

.article__container {
  position: relative;
  width: 100%;
  margin: 0 auto;
}

.article__sidebar {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}

.sidebar-header {
  position: relative;
  top: -12px;
  left: 120px;
}

.sidebar-body {
  z-index: -1;
  position: absolute;
  top: -60px;
}

.sidebar-image {
  padding: 20px;
  text-align: center;
}

.sidebar-img:hover {
  transform: scale(1.05);
}

.toc {
  padding: 20px;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.toc__title {
  margin-bottom: 15px;
  color: #333;
  font-weight: bold;
  font-size: 1.2rem;
  text-align: center;
}

.article__contents {
  z-index: -2;
  position: relative;
  gap: 40px;
  text-align: justify;
}
@media screen and (min-width: 768px) {
  .article__contents {
    display: flex;
    padding: 30px 0;
  }
}

.p-intro {
  flex-grow: 0;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-intro {
    width: 50%;
  }
}

.article__section-wrap {
  flex-grow: 1;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .article__section-wrap {
    width: 50%;
  }
}

.article__section {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .article__section {
    margin-bottom: 18px;
  }
}

.p-section2__introduction-title {
  width: 100%;
  max-width: 240px;
  padding-top: 2px;
  padding-bottom: 2px;
}

h3.p-section2__introduction-title:first-of-type {
  padding-top: 0;
}

.sidebar-header {
  padding-bottom: 0;
}
.p-card__text {
  position: relative;
  font-weight: 400;
  font-size: clamp(0.875rem, 0.8016304348rem + 0.2173913043vw, 0.9375rem);
  word-break: break-word;
  overflow-wrap: break-word;
}

.p-card__text-small {
  color: #808080;
  font-weight: 400;
  font-size: clamp(0.8125rem, 0.7391304348rem + 0.2173913043vw, 0.875rem);
  line-height: 1.6;
}

.p-card__text--gif::after {
  position: absolute;
  right: -56px;
  bottom: -43px;
  width: 100px;
  height: 114px;
  background-image: url(../img/section2-cat.gif);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}
@media (min-width: 430px) {
  .p-card__text--gif::after {
    right: -22px;
    bottom: -61px;
  }
}

@media (max-width: 768px) {
  .article__container {
    flex-direction: column;
    height: auto;
  }
  .article__sidebar,
  .article__contents {
    width: 100%;
    padding: 0 15px;
  }
  .article__contents {
    height: auto;
    overflow-y: visible;
  }
  .sidebar-image {
    max-width: 200px;
    margin: 0 auto;
  }
}
.p-article__inner {
  z-index: 0;
  position: relative;
  margin-top: 60px;
}
@media screen and (min-width: 540px) {
  .p-article__inner {
    margin-top: 82px;
  }
}

/* アニメーション定義 */
/* 例として6秒周期、前半Before表示、後半After表示、各フェードに0.6秒かける想定 */
@keyframes fadeBefore {
  0% {
    opacity: 1;
  }
  40% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  90% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeAfter {
  0% {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.p-auto-fade-switch {
  position: absolute;
  top: -9px;
  width: 100%;
  height: 66px;
  overflow: hidden;
}
@media screen and (min-width: 540px) {
  .p-auto-fade-switch {
    top: 0;
    width: 1104px;
    height: 143px;
  }
}

.p-auto-fade-switch2 {
  top: 76px;
  right: -86px;
  width: 300px;
  height: 79px;
}
@media screen and (min-width: 540px) {
  .p-auto-fade-switch2 {
    top: 170px;
    right: -210px;
    width: 600px;
    height: 160px;
  }
}

.fade-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
}

/* 1枚目 */
.fade-img--first {
  animation: fadeFirst 6s infinite;
}

/* 2枚目 */
.fade-img--second {
  animation: fadeSecond 6s infinite;
}

/* 例: 6秒周期、3秒ずつ切り替え、フェードに0.6秒かける */
@keyframes fadeFirst {
  0% {
    opacity: 1;
  }
  40% {
    opacity: 1;
  } /* 0～2.4秒: 表示 */
  50% {
    opacity: 0;
  } /* 2.4～3.0秒: フェードアウト */
  90% {
    opacity: 0;
  } /* 3.0～5.4秒: 非表示 */
  100% {
    opacity: 1;
  } /* 5.4～6.0秒: フェードイン */
}
@keyframes fadeSecond {
  0% {
    opacity: 0;
  }
  40% {
    opacity: 0;
  } /* 0～2.4秒: 非表示 */
  50% {
    opacity: 1;
  } /* 2.4～3.0秒: フェードイン */
  90% {
    opacity: 1;
  } /* 3.0～5.4秒: 表示 */
  100% {
    opacity: 0;
  } /* 5.4～6.0秒: フェードアウト */
}
.p-section2__introduction-name {
  height: 40px;
}

.p-section2__introduction-sub-text {
  position: relative;
}

.p-section2__introduction-sub-text::before {
  display: inline-block;
  z-index: -1;
  position: absolute;
  top: -31px;
  left: 7px;
  width: 50px;
  height: 50px;
  background-image: url("../img/section2-kani.gif");
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}
@media screen and (min-width: 768px) {
  .p-section2__introduction-sub-text::before {
    top: -30px;
    left: 5px;
  }
}

.p-introduction-title__first {
  display: flex;
  position: relative;
  left: 2px;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.p-section2__introduction-sub-title img {
  padding-bottom: 4px;
}

.p-card__text--bold {
  margin-bottom: 5px;
  font-weight: 500;
  line-height: 1.3;
}

.p-card__text--en {
  margin-bottom: 5px;
  font-weight: 500;
  font-size: clamp(0.9375rem, 0.8641304348rem + 0.2173913043vw, 1rem);
  line-height: 1.3;
}

.p-card__text--strong {
  font-weight: 500;
}

.p-card__text--strong-700 {
  font-weight: 700;
}

.p-card__text--last {
  margin-top: 10px;
}

.p-card__title {
  display: flex;
  position: relative;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  height: 16px;
  margin-bottom: 10px;
  text-align: center;
}
.p-card__title::after {
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 100%;
  height: 3px;
  transform: translateX(-50%);
  background-image: url(../img/line-black__row.svg);
  background-position: bottom left;
  background-size: 120px 3px;
  background-repeat: repeat-x;
  content: "";
}

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

.p-card__text-wrap {
  padding-top: 10px;
}

.frame {
  position: relative;
  padding: 20px; /* 中身の余白 */
}

.p-section2__top-bg {
  z-index: -2;
  position: absolute;
  right: 50%;
  width: 960px;
  transform: translateX(50%);
}

.p-section2__top-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-intro,
.p-skills,
.p-experience {
  z-index: 2;
  position: relative;
  padding: 20px;
}
.p-intro::before,
.p-skills::before,
.p-experience::before {
  box-sizing: border-box;
  z-index: -1;
  position: absolute;
  top: 35px;
  left: -10px;
  width: calc(100% + 20px);
  height: calc(100% - 42px);
  border: 4px solid #eae0d5;
  border-radius: 4px;
  outline: 2px solid #222222;
  background: #FFFFFF;
  box-shadow: inset 0 0 0 2px #222222;
  content: "";
}

.p-name-block__wrapper {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center; /* 縦揃え */
  gap: 20px;
}
@media screen and (min-width: 768px) {
  .p-name-block__wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-left: 120px;
    gap: 20px;
  }
}

.p-card__text-header {
  padding: 0 6%;
}
@media screen and (min-width: 768px) {
  .p-card__text-header {
    width: 400px;
    padding: initial;
  }
}

.name-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 300px;
  padding-left: 25px;
  gap: 10px;
}
@media screen and (min-width: 540px) {
  .name-block {
    padding-left: 0;
  }
}

.p-section2__introduction-name img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-section2__introduction-sub-text {
  height: 28px;
}

.p-section2__introduction-sub-text img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-name-block__img {
  position: absolute;
  top: -10px;
  left: calc(50% - 115px);
  width: 129px;
  transform: translateX(-50%);
}
@media screen and (min-width: 540px) {
  .p-name-block__img {
    top: -29px;
    left: calc(50% - 140px);
    width: 154px;
  }
}
@media screen and (min-width: 768px) {
  .p-name-block__img {
    top: -45px;
    left: calc(50% - 371px);
    width: 176px;
    transform: initial;
  }
}
@media (max-width: 360px) {
  .p-name-block__img {
    width: 100px;
  }
}
@media (max-width: 900px) and (min-width: 769px) {
  .p-name-block__img {
    top: -29px;
    left: calc(50% - 339px);
  }
}

.p-text-wrap {
  padding: 10px 0;
}

.p-street-light {
  z-index: 9;
  position: relative;
}
.p-street-light::before {
  display: block;
  z-index: -1;
  position: absolute;
  top: -144px;
  right: 55px;
  width: 153px;
  height: 100px;
  background: url(../img/gaitou-light.png) no-repeat center center/cover;
  content: "";
}
@media (max-width: 452px) {
  .p-street-light::before {
    display: none; /* スマホでは非表示 */
  }
}
@media screen and (min-width: 540px) {
  .p-street-light::before {
    top: -126px;
    right: 18px;
  }
}

.p-street-light__img {
  display: block;
  position: absolute;
  right: -17px;
  bottom: -92px;
  width: 260px;
}
@media (max-width: 452px) {
  .p-street-light__img {
    display: none; /* スマホでは非表示 */
  }
}
@media screen and (min-width: 540px) {
  .p-street-light__img {
    right: -53px;
    bottom: -109px;
  }
}

.p-section__bottom-snow {
  z-index: 4;
  position: absolute;
  bottom: 64px;
  width: 93%;
  height: 62px;
}
@media screen and (min-width: 540px) {
  .p-section__bottom-snow {
    bottom: 40px;
    width: 118%;
    height: 140px;
  }
}

.move-text {
  z-index: 20;
  position: absolute;
  top: -47px;
  left: 62%;
  width: 137px;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.4s ease;
}
@media screen and (min-width: 540px) {
  .move-text {
    top: -92px;
    width: 164px;
  }
}

.move-text.show {
  opacity: 1;
}

/* ベーススタイル */
#section3 {
  position: relative;
  overflow: visible;
  background: #F3EFEB;
}

.p-section3_title {
  z-index: 6;
  position: relative;
  overflow: visible;
}

.section3_bg-img::before {
  z-index: -1;
  position: absolute;
  top: -11px;
  left: 154px;
  width: 83px;
  height: 98px;
  background: url(../img/tougei_2.gif) no-repeat center center/cover;
  content: "";
}
@media screen and (min-width: 540px) {
  .section3_bg-img::before {
    top: -20px;
    left: 193px;
    width: 120px;
    height: 120px;
  }
}

.p-works__inner {
  position: relative;
  margin-top: 60px;
}
@media screen and (min-width: 540px) {
  .p-works__inner {
    margin-top: 82px;
  }
}

.p-section__content {
  z-index: 5;
  position: relative;
  margin-bottom: 80px;
}

.p-section__content--work {
  z-index: 5;
  position: relative;
  margin-bottom: 0;
}
@media screen and (min-width: 540px) {
  .p-section__content--work {
    margin-bottom: 20px;
  }
}

/* メディアクエリに基づく表示/非表示 */
.pc-only {
  display: none;
}
@media screen and (min-width: 768px) {
  .pc-only {
    display: block;
  }
}

.sp-only {
  display: block;
}
@media screen and (min-width: 540px) {
  .sp-only {
    display: none;
  }
}

/* タブナビゲーション - SPのみ表示 */
.work-tabs {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 30px;
  gap: 6px;
}
@media screen and (min-width: 375px) {
  .work-tabs {
    flex-direction: row;
    gap: 10px;
  }
}
@media screen and (min-width: 768px) {
  .work-tabs {
    display: none;
  }
}

.tab-image {
  position: relative;
  width: 100%;
  height: 40px;
  overflow: hidden;
  border: 4.5px solid transparent;
  border-radius: 10px;
  border-image-repeat: stretch;
  border-image-slice: 2.5 fill;
  border-image-source: url("../img/frame-line_button.svg");
  background-color: #FFFFFF;
  cursor: pointer;
  transition: all 0.3s ease;
  /* テキスト画像のスタイル */
}
@media screen and (min-width: 375px) {
  .tab-image {
    height: 50px;
  }
}
@media screen and (min-width: 540px) {
  .tab-image {
    border: 3.5px solid transparent;
    border-radius: 10px;
    border-image-repeat: stretch;
    border-image-slice: 2.5 fill;
    border-image-source: url("../img/frame-line_button.svg");
  }
}
.tab-image:hover {
  opacity: 0.7;
}
.tab-image .active-text,
.tab-image .inactive-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: 16px;
  transform: translate(-50%, -50%);
}
.tab-image .active-text {
  display: none;
}
.tab-image .inactive-text {
  display: block;
}
.tab-image.active {
  background-color: #81B2B2;
}
.tab-image.active .active-text {
  display: block;
}
.tab-image.active .inactive-text {
  display: none;
}

/* 作品コンテンツコンテナ */
.work-content-container {
  z-index: 6;
  position: relative;
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .work-content-container {
    max-width: 1200px;
  }
}

/* 作品コンテンツ - SPでタブによる表示切り替え */
.work-content {
  display: none;
}
.work-content.active {
  display: block;
  animation: fadeIn 2s ease forwards;
}
@media screen and (min-width: 768px) {
  .work-content {
    display: block;
    margin-bottom: 60px;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* 作品コンテンツタイトル */
.work-content-title {
  margin-bottom: 20px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .work-content-title {
    margin-bottom: 30px;
    text-align: left;
  }
}

/* 作品グリッド */
.work-grid {
  display: grid;
  /* SPでは縦に表示 */
  grid-template-columns: 1fr;
  margin: 0 auto;
  gap: 30px;
}
@media screen and (min-width: 768px) {
  .work-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
  }
}

/* リンクラッパー（article全体のリンク） */
.work-link-wrapper {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: transform 0.3s ease;
}
.work-link-wrapper:hover {
  transform: translateY(-5px);
}
.work-link-wrapper:active {
  transform: translateY(-2px);
  transition: transform 0.1s ease;
}

/* 作品アイテム */
.work-item {
  overflow: hidden;
  border-radius: 8px;
}
.work-item figure {
  position: relative;
  width: 100%;
}

/* 作品画像 */
.work-img {
  display: block;
  width: 100%;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  border: 2.5px solid transparent;
  border-radius: 10px;
  border-image-repeat: stretch;
  border-image-slice: 2.5 fill;
  border-image-source: url("../img/frame-line.svg");
}
@media screen and (min-width: 375px) {
  .work-img {
    height: 260px;
  }
}
@media screen and (min-width: 540px) {
  .work-img {
    height: 290px;
    border-radius: 14px;
  }
}
@media screen and (min-width: 768px) {
  .work-img {
    height: 240px;
    border-radius: 10px;
  }
}

/* 作品タイトル */
.work-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  margin-top: 10px;
  overflow: hidden;
  font-weight: 600;
  font-size: 16px;
  line-height: 130%;
  text-align: left;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
}
@media screen and (min-width: 540px) {
  .work-title {
    margin-top: 8px;
    font-size: 18px;
  }
}

/* カテゴリラップ */
.work-category-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 6px;
  padding-bottom: 6px;
  gap: 4px;
  border-bottom: 1px dotted #000;
}
@media screen and (min-width: 540px) {
  .work-category-wrap {
    margin-top: 4px;
  }
}

/* タグスタイル */
.work-tag {
  display: block;
  color: #808080;
  font-style: normal;
  font-weight: 400;
  font-size: clamp(0.8125rem, 0.6657608696rem + 0.4347826087vw, 0.9375rem);
  line-height: 1.8;
  font-family: "Noto Sans JP", Arial, sans-serif;
}

/* リンクスタイル */
.work-link {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
}

.work-link-img {
  width: 100px;
}

/* セクションタイトル */
.work-section-header {
  margin-bottom: 40px;
  text-align: center;
}

.work-section-title {
  color: #333;
  font-weight: 700;
  font-size: 28px;
  font-family: "Noto Serif";
}

/* 雲のパララックス効果 */
.parallax-container {
  position: relative;
  top: -180px;
  width: 100%;
}

.parallax-cloud,
.parallax-cloud2,
.parallax-cloud3 {
  pointer-events: none;
}

.parallax-cloud {
  z-index: 1;
  position: absolute;
  width: 960px;
  height: auto;
}

.left-cloud {
  top: 58px;
  left: -27%;
}
@media screen and (min-width: 961px) {
  .left-cloud {
    top: 25px;
    left: -22%;
  }
}

.right-cloud {
  top: 148px;
  right: -226px;
}
@media screen and (min-width: 961px) {
  .right-cloud {
    right: -300px;
  }
}

.left-cloud,
.right-cloud {
  width: 200px;
  opacity: 0;
}
@media screen and (min-width: 540px) {
  .left-cloud,
  .right-cloud {
    width: 300px;
  }
}

.parallax-container2 {
  position: relative;
  bottom: -246px;
  width: 100%;
}

.parallax-cloud2 {
  z-index: 1;
  position: absolute;
  bottom: 0;
  width: 100%;
  height: auto;
}

.left-cloud2 {
  left: -6%;
  left: -31%;
  width: 200px;
}
@media screen and (min-width: 375px) {
  .left-cloud2 {
    left: -6%;
    width: 260px;
  }
}
@media screen and (min-width: 540px) {
  .left-cloud2 {
    left: -17%;
    width: 300px;
  }
}

.right-cloud2 {
  top: -235px;
  right: -3px;
  width: 210px;
}
@media screen and (min-width: 375px) {
  .right-cloud2 {
    top: -255px;
    right: 17px;
    width: 270px;
  }
}
@media screen and (min-width: 540px) {
  .right-cloud2 {
    top: -320px;
    right: 74px;
    width: 310px;
  }
}

.parallax-container3 {
  display: none;
  position: relative;
  top: 190px;
  width: 960px;
}
@media screen and (min-width: 540px) {
  .parallax-container3 {
    display: block;
  }
}

.parallax-cloud3 {
  z-index: 3;
  position: absolute;
  width: 100%;
  height: auto;
}

.left-cloud3 {
  left: -30%;
  width: 230px;
  opacity: 0;
}
@media screen and (min-width: 540px) {
  .left-cloud3 {
    width: 330px;
  }
}

.p-contact {
  position: relative;
  background: #F3EFEB;
}

.l-content {
  padding-top: 20px;
}

.p-content__text {
  margin-top: clamp(0.625rem, 0.0380434783rem + 1.7391304348vw, 1.125rem);
  font-size: clamp(0.875rem, 0.5815217391rem + 0.8695652174vw, 1.125rem);
}

.content_bg-img {
  position: relative;
}
.content_bg-img::before {
  position: absolute;
  top: -50px;
  right: 0;
  width: 131.614px;
  height: 88px;
  background: url(../img/yokuryu@2x.png) no-repeat center center/cover;
  content: "";
  animation: floatUpDownRotate 5s ease-in-out infinite alternate;
}
@media screen and (min-width: 540px) {
  .content_bg-img::before {
    top: -20px;
    right: auto;
    left: 309px;
    width: 147.614px;
    height: 103px;
  }
}
.content_bg-img span {
  position: relative; /* z-indexの基準を確保 */
}

@keyframes floatUpDownRotate {
  0% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(-10px) rotate(2deg); /* 少し上に移動しつつ右に傾く */
  }
  50% {
    transform: translateY(-5px) rotate(-2deg); /* 少し下に戻しながら左に傾く */
  }
  75% {
    transform: translateY(-20px) rotate(3deg); /* もう一度上に移動しつつ右に傾く */
  }
  100% {
    transform: translateY(0) rotate(0deg); /* 元の位置に戻る */
  }
}
.l-contact__form {
  margin-top: 24px;
}
@media screen and (min-width: 540px) {
  .l-contact__form {
    margin-top: 40px;
  }
}

.p-contact__fields {
  margin-top: 40px;
}
@media screen and (min-width: 961px) {
  .p-contact__fields {
    margin-top: 60px;
  }
}

.p-contact__fields > * + * {
  margin-top: 26px;
}

.p-form-field {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 540px) {
  .p-form-field {
    flex-direction: row;
  }
}

.p-form-field__head {
  display: flex;
  align-items: center;
  width: 180px;
  min-width: 170px;
  padding-bottom: 8px;
  gap: 10px;
}
@media screen and (min-width: 540px) {
  .p-form-field__head {
    width: 220px;
    padding-bottom: 0;
  }
}

.p-form-field__label {
  font-size: clamp(0.875rem, 0.5815217391rem + 0.8695652174vw, 1.125rem);
}

.p-form-field__item {
  width: 100%;
}
@media (min-width: 600px) {
  .p-form-field__item {
    width: calc(100% - 200px);
  }
}

.p-form-text {
  width: 100%;
  padding: 14px;
  border: none;
  border: 2.5px solid transparent;
  border-radius: 6px;
  background: #EAE0D5;
  color: #808080;
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.p-form-text:focus,
.p-form__textarea:focus {
  border: 2.5px solid #8FA33D;
  outline: none;
}

input:-webkit-autofill {
  -webkit-text-fill-color: #222222 !important;
  box-shadow: 0 0 0px 1000px #EAE0D5 inset !important;
}

.p-form__textarea {
  width: 100% !important;
  padding: 14px;
  border: none;
  border: 2.5px solid transparent;
  border-radius: 6px;
  border-radius: 6px;
  background: #EAE0D5;
  color: #222222;
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.p-form__textarea::-moz-placeholder {
  color: #808080;
}

.p-form__textarea::placeholder {
  color: #808080;
}

.p-contact__fields .p-form-field:nth-of-type(4) .p-form-field__head {
  align-items: flex-start;
  padding-top: 14px;
}

.p-contact__fields .p-form-field:nth-of-type(3) .p-form-field__head {
  align-items: flex-start;
}

.l-contact__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.l-contact__privacy {
  text-align: center;
}

.form-checkbox__text,
.wpcf7-list-item input {
  position: absolute;
  width: 1px;
  height: 1px;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
}

.wpcf7-list-item label input:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.p-form-checkbox__input label input[type=checkbox] {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
}
.p-form-checkbox__input label .wpcf7-list-item-label {
  display: inline-block;
  position: relative;
  padding-left: 30px;
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
  cursor: pointer;
}
.p-form-checkbox__input label .wpcf7-list-item-label::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border: 2px solid transparent;
  border-radius: 2px;
  background-color: #E6DDD2;
  content: "";
  transition: border-color 0.3s, background-color 0.3s;
}
.p-form-checkbox__input label .wpcf7-list-item-label::after {
  position: absolute;
  top: 50%;
  left: 0;
  width: 23px;
  height: 17.53px;
  transform: translateY(-50%);
  background: url(../img/check-icon.svg) no-repeat center/contain;
  content: "";
  opacity: 0;
  transition: opacity 0.3s ease;
}
.p-form-checkbox__input label input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}
.p-form-checkbox__input label input[type=checkbox]:focus + .wpcf7-list-item-label::before {
  border-color: #8FA33D;
  outline: none;
}

.wpcf7-acceptance .wpcf7-list-item-label {
  display: inline-block;
  position: relative;
  padding-left: 30px;
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
  cursor: pointer;
}
.wpcf7-acceptance .wpcf7-list-item-label::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border: 2px solid transparent;
  border-radius: 2px;
  background-color: #E6DDD2;
  content: "";
  transition: border-color 0.3s, background-color 0.3s;
}
.wpcf7-acceptance .wpcf7-list-item-label::after {
  position: absolute;
  top: 50%;
  left: 0;
  width: 23px;
  height: 17.53px;
  transform: translateY(-50%);
  background: url(../img/check-icon.svg) no-repeat center/contain;
  content: "";
  opacity: 0;
  transition: opacity 0.3s ease;
}
.wpcf7-acceptance input[type=checkbox] {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
}
.wpcf7-acceptance input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}
.wpcf7-acceptance input[type=checkbox]:focus + .wpcf7-list-item-label::before {
  border-color: #8FA33D;
  outline: none;
}

.l-contact__button > .p-section__button-wrapper > .c-section__button {
  padding: 0;
}

.wpcf7-form-control {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

@media (max-width: 700px) {
  .wpcf7-form-control {
    flex-direction: column;
    gap: 7px;
  }
}
.button-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 22px;
  transform: translate(-50%, -50%);
  background-image: url(../img/contact-button-text.svg);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}

.wpcf7-form-control-wrap {
  height: initial;
}

.p-form-checkbox {
  height: 60px;
}
.p-form-checkbox .wpcf7-form-control-wrap {
  display: block;
  height: 30px;
  padding-bottom: 30px;
}

.wpcf7-submit,
input.wpcf7-form-control.wpcf7-submit.has-spinner.p-section__input-button {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  min-width: 310px !important;
  margin: 0 auto !important;
}

.p-section__button-input-wrapper,
div.p-section__button-input-wrapper {
  display: block !important;
  width: 100% !important;
  max-width: 310px !important;
  margin: 0 auto !important;
}

.wpcf7-form {
  width: 100%;
}

.p-contact__cutoff-line {
  position: relative;
  width: 100%;
  height: 8px;
  overflow: hidden;
  background: transparent;
}

.p-contact__cutoff-line::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 8px;
  background-image: url("../img/contact-line.png");
  background-position: left center;
  background-size: auto 100%;
  background-repeat: repeat-x;
  content: "";
  transition: width 1.2s ease-out;
}

.p-contact__cutoff-line.is-visible::before {
  width: 100%;
}

.p-contact__text-robot {
  color: #808080;
  font-size: 10px;
}

.l-contact__button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 110px;
  gap: 10px;
}

.p-contact__text-link {
  border-bottom: #808080 1px solid;
}

.p-content__link {
  color: #8FA33D;
  text-decoration: underline inherit;
}

.wpcf7-not-valid-tip {
  color: #8FA33D;
}

#toggle-policy {
  margin-bottom: 2px;
  padding: 0;
  border: none;
  border-bottom: 1.5px solid #8FA33D;
  background: none;
  color: #8FA33D;
  font: inherit;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
  cursor: pointer;
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: transparent;
}

.wpcf7 form .wpcf7-response-output {
  margin: 0;
  padding: 0.3em;
  border: none;
}

.p-contact__thank-img {
  display: block;
  margin: 0 auto;
}
@media screen and (min-width: 540px) {
  .p-contact__thank-img {
    width: 60%;
    margin-right: auto;
  }
}
@media screen and (min-width: 961px) {
  .p-contact__thank-img {
    width: 60%;
  }
}

.p-contact__thank-gif {
  display: block;
  width: 100%;
  margin: 50px auto;
}
@media screen and (min-width: 540px) {
  .p-contact__thank-gif {
    width: 60%;
  }
}
@media screen and (min-width: 961px) {
  .p-contact__thank-gif {
    width: 70%;
  }
}

.p-contact__thank-text {
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
  text-align: left;
}
@media screen and (min-width: 375px) {
  .p-contact__thank-text {
    text-align: center;
  }
}

.p-footer {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding-top: 120px;
  overflow: hidden;
  background: url(../img/footer-bg.png) center center/cover;
}

.l-footer__content {
  width: 100%;
}

.p-footer__wrap {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  padding-bottom: 30px;
  gap: 10px;
}
.p-footer__wrap::before {
  z-index: -1;
  position: absolute;
  top: 57px;
  left: 30px;
  width: 360px;
  height: 65px;
  background: url(../img/footer-clude.png) center center/cover;
  content: "";
  animation: floatCloud 6s ease-in-out infinite;
}
.p-footer__wrap::after {
  z-index: -1;
  position: absolute;
  top: 86px;
  right: 30px;
  width: 400px;
  height: 69px;
  background: url(../img/footer-clude2.png) center center/cover;
  content: "";
  animation: floatCloud 7s ease-in-out infinite 1.5s;
}

@keyframes floatCloud {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-15px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes floatCloudRight {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-15px);
  }
  100% {
    transform: translateY(0);
  }
}
.p-footer__text,
.p-footer-work__text {
  color: #000;
  font-style: normal;
  font-weight: 700;
  font-size: 12px;
  line-height: normal;
  letter-spacing: 1.2px;
}

.p-footer__sns {
  display: block;
  margin-top: 10px;
}

.p-footer__sns-img {
  width: 48px;
  height: 48px;
}

.p-footer__img-wrap {
  display: block;
  position: relative;
  width: 100%;
  height: 440px;
  padding-top: 200px;
}

.p-footer__img1 {
  position: relative;
  pointer-events: none;
}
.p-footer__img1::before {
  z-index: 0;
  position: absolute;
  top: -217px;
  left: 50%;
  width: 960px;
  height: 171px;
  transform: translateX(-50%);
  background: url(../img/ft_bk-img1.webp) no-repeat center right/contain;
  content: "";
}
.p-footer__img1::after {
  z-index: 1;
  position: absolute;
  top: -138px;
  left: 50%;
  width: 960px;
  height: 137px;
  transform: translateX(-50%);
  background: url(../img/fukui-station.webp) no-repeat center right/contain;
  content: "";
}

.p-footer__img-train {
  z-index: 1;
  position: absolute;
  top: -81px;
  left: 50%;
  width: 600px;
  height: auto;
  transform: translateX(-50%);
}

.p-footer__img2 {
  position: relative;
}
.p-footer__img2::before {
  z-index: 5;
  position: absolute;
  top: 40px;
  left: -35px;
  width: 267.758px;
  height: 112.802px;
  background: url(../img/ft_img-left.gif) no-repeat left center/contain;
  content: "";
}
.p-footer__img2::after {
  z-index: 2;
  position: absolute;
  top: -87px;
  left: calc(50% - 65px);
  width: 248.407px;
  height: 151.019px;
  transform: translateX(-50%);
  background: url(../img/ft_img-aka.gif) no-repeat center center/contain;
  content: "";
}

.p-footer__img2--dinosaur-area {
  z-index: 3;
  position: absolute;
  top: -150px;
  left: 50%;
  width: 100px;
  height: auto;
  pointer-events: none;
}

.excavator-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  animation: excavator-timed 20s ease-in-out infinite;
}

.excavator-alt {
  animation-delay: 6s;
}

@keyframes excavator-timed {
  0% {
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  25% {
    opacity: 1;
  }
  30% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
.p-footer__img3 {
  position: relative;
}
.p-footer__img3::before {
  z-index: 5;
  position: absolute;
  top: 13px;
  left: calc(50% + 109px);
  width: 231px;
  height: 176px;
  transform: translateX(-50%);
  background: url(../img/ft_img4.gif) no-repeat center center/contain;
  content: "";
}

.p-footer__img4 {
  position: relative;
  overflow: visible;
  text-align: right;
}

.img__train {
  z-index: 4;
  position: absolute;
  top: 8px;
  right: 0;
  width: 316px;
  height: 74px;
}

.animation__train,
.animation__train2,
.animation__train3 {
  z-index: 3;
  position: absolute;
  top: 0;
  right: -363px;
  width: 363px;
  height: 80px;
}

.p-footer__img5 {
  position: relative;
}

.img__car1 {
  z-index: 1;
  position: absolute;
  top: -18px;
  right: -110px;
  width: 110px;
  height: auto;
}

.img__car2 {
  z-index: 1;
  position: absolute;
  top: -18px;
  left: 0;
  width: 110px;
  height: auto;
}

.img__bus {
  z-index: 1;
  position: absolute;
  top: -34px;
  right: 0px;
  width: 230px;
  height: auto;
}

.p-footer__img1-back {
  position: relative;
}
.p-footer__img1-back::before {
  z-index: 0;
  position: absolute;
  top: -217px;
  left: 50%;
  width: 960px;
  height: 171px;
  transform: translateX(-50%);
  background: url(../img/back-build.webp) no-repeat center right/contain;
  content: "";
}

.p-footer__img-back-kyouryu {
  z-index: 0;
  position: absolute;
  top: -52px;
  right: 20px;
  width: 420px;
  height: auto;
  animation: walkAndBounce 80s infinite linear;
}

@keyframes walkAndBounce {
  0% {
    transform: translateX(400px) translateY(0);
  }
  5% {
    transform: translateX(325px) translateY(-5px);
  }
  10% {
    transform: translateX(250px) translateY(0);
  }
  15% {
    transform: translateX(175px) translateY(-5px);
  }
  20% {
    transform: translateX(100px) translateY(0);
  }
  25% {
    transform: translateX(25px) translateY(-5px);
  }
  30% {
    transform: translateX(-50px) translateY(0);
  }
  35% {
    transform: translateX(-125px) translateY(-5px);
  }
  40% {
    transform: translateX(-200px) translateY(0);
  }
  45% {
    transform: translateX(-275px) translateY(-5px);
  }
  50% {
    transform: translateX(-350px) translateY(0);
  }
  55% {
    transform: translateX(-425px) translateY(-5px);
  }
  60% {
    transform: translateX(-500px) translateY(0);
  }
  65% {
    transform: translateX(-575px) translateY(-5px);
  }
  70% {
    transform: translateX(-650px) translateY(0);
  }
  75% {
    transform: translateX(-725px) translateY(-5px);
  }
  80% {
    transform: translateX(-800px) translateY(0);
  }
  85% {
    transform: translateX(-875px) translateY(-5px);
  }
  90% {
    transform: translateX(-950px) translateY(0);
  }
  95% {
    transform: translateX(-975px) translateY(-5px);
  }
  100% {
    transform: translateX(-1050px) translateY(0);
  }
}
.p-copy {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-copy {
  position: relative;
  width: 960px;
  height: 78px;
  overflow: visible;
  background: url(../img/footer_bottom.webp) no-repeat center center/cover;
}
.p-copy::before {
  z-index: 10;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: url(../img/line-black__row.svg);
  background-size: 120px 3px;
  background-repeat: repeat-x;
  content: "";
}
.p-copy::after {
  z-index: 10;
  position: absolute;
  top: -117px;
  right: 100px;
  width: 124.732px;
  height: 140.179px;
  background: url(../img/cp_fr-img2@2x.png) no-repeat center center/contain;
  content: "";
}

.p-copy__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4px 0;
  color: #000;
  font-style: normal;
  font-weight: 700;
  font-size: 10px;
  line-height: 24px; /* 240% */
  text-align: center;
}

.p-section__button-wrapper {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
}

.p-button__gif {
  position: absolute;
  left: calc(50% - 122px);
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.p-button__gif-hunmmer {
  z-index: 20;
  top: calc(50% - 20px);
  width: 150px;
}

#p-policy-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  /* 以下は見た目用プロパティなのでそのまま */
}

/* ──開いた時── */
#p-policy-content.open {
  max-height: none; /* 制限を外す */
  padding: 14px;
  overflow: auto; /* 必要ならスクロール */
  transform: none; /* 余計な translate が入っていれば外す */
  border: 2.5px solid transparent;
  border-radius: 6px;
  background: #EAE0D5;
  opacity: 1;
}

.p-policy-content__wrapper {
  margin-top: 20px;
}

.p-policy-content__wrapper > * + * {
  margin-top: 20px;
}

.p-policy-content__title,
.p-policy-content__sub-title,
.p-policy-content__text {
  color: #222222;
  line-height: normal;
}

.p-policy-content__padding {
  padding-top: 20px;
}

.p-policy-content__title {
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
}

.p-policy-content__sub-title {
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 8px;
  border-bottom: 1.5px solid #000;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
  text-underline-offset: 12px;
}

.p-policy-content__text {
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
}

.p-contact__bottom-text {
  margin: 0 auto;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
  text-align: left;
}

.p-policy-content__ul {
  margin-bottom: 20px;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
}

.p-page-heading__bottom {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 960px;
  height: 160px;
}
@media screen and (min-width: 540px) {
  .p-page-heading__bottom {
    height: 200px;
  }
}
.p-page-heading__bottom::after {
  z-index: 50;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 960px;
  height: 3px;
  background-image: url("../img/line-black__row.svg");
  background-position: bottom left;
  background-size: 120px 3px;
  background-repeat: repeat-x;
  content: "";
}

.p-page-heading__wrap {
  position: relative;
  width: 100%;
  height: 50vw;
  max-height: 160px;
  overflow: hidden;
}
@media screen and (min-width: 540px) {
  .p-page-heading__wrap {
    max-height: 200px;
  }
}

.p-page-heading__title-bk {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.p-sakura-container,
.p-kamo-container {
  z-index: 10;
  position: absolute;
  bottom: 0;
  /* left: 0; */
  width: 960px;
  height: 54px;
  pointer-events: none;
}

.p-sakura-gif {
  position: absolute;
  right: -28px;
  bottom: 0;
  width: auto;
  height: 10px;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-name: sakuraSlide;
  opacity: 1;
}

.p-sakura-gif:nth-child(1) {
  top: 10%;
  width: auto;
  height: 8px;
  animation-duration: 40s;
  animation-delay: 0s;
}

.p-sakura-gif:nth-child(2) {
  top: 40%;
  animation-duration: 60s;
  animation-delay: 10s;
}

.p-sakura-gif:nth-child(3) {
  top: 25%;
  height: 6px;
  animation-duration: 50s;
  animation-delay: 20s;
}

.p-sakura-gif:nth-child(4) {
  top: 60%;
  animation-duration: 70s;
  animation-delay: 5s;
}

@keyframes sakuraSlide {
  0% {
    transform: translateX(-20px); /* 画面右外から */
  }
  100% {
    transform: translateX(-960px); /* 左外まで移動 */
  }
}
/*さくら*/
.sakura,
.leaf {
  display: flex;
  z-index: 20;
  position: absolute;
  top: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.sakura li,
.leaf li {
  position: absolute;
  top: -50px;
  width: 14px;
  list-style: none;
  animation: fall 4s linear infinite, rotate1 2s ease-in-out infinite alternate;
}

.sakura li img,
.leaf li img {
  width: 100%;
}

@keyframes fall {
  to {
    top: 120%;
  }
}
@keyframes rotate1 {
  from {
    transform: translateX(0px) rotate(0deg);
  }
  to {
    transform: translateX(200px) rotate(-80deg) rotateX(180deg);
  }
}
@keyframes rotate2 {
  from {
    transform: translateX(200px) rotate(-45deg);
  }
  to {
    transform: translateX(0px) rotate(0deg);
  }
}
.sakura li:nth-child(1),
.leafli:nth-child(1) {
  left: 0;
  animation: fall 10s linear infinite, rotate1 3s ease-in-out infinite alternate;
}

.sakura li:nth-child(2),
.leaf li:nth-child(2) {
  left: 5vw;
  animation: fall 15s linear infinite, rotate1 2s ease-in-out infinite alternate;
}

.sakura li:nth-child(3),
.leaf li:nth-child(3) {
  left: 15vw;
  animation: fall 9s linear infinite, rotate1 3.5s ease-in-out infinite alternate;
}

.sakura li:nth-child(4),
.leaf li:nth-child(4) {
  left: 30vw;
  animation: fall 8s linear infinite, rotate2 4s ease-in-out infinite alternate;
}

.sakura li:nth-child(5) {
  left: 40vw;
  animation: fall 10s linear infinite, rotate1 4s ease-in-out infinite alternate;
}

.sakura li:nth-child(6) {
  left: 55vw;
  animation: fall 11s linear infinite, rotate2 3s ease-in-out infinite alternate;
}

.p-breadcrumb {
  width: 100%;
  padding: 16px 20px;
  background-color: #F3EFEB;
}

.p-breadcrumb__nav-list {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 10px;
  color: #222222;
  font-style: normal;
  font-weight: 700;
  font-size: 12px;
  line-height: 26px; /* 185.714% */
  font-family: "Noto Sans JP", Arial, sans-serif;
  -ms-overflow-style: none;
  white-space: nowrap;
  scrollbar-width: none;
}
.p-breadcrumb__nav-list::-webkit-scrollbar {
  display: none;
}
@media screen and (min-width: 540px) {
  .p-breadcrumb__nav-list {
    font-size: 14px;
  }
}

.p-breadcrumb a {
  display: inline-block;
  position: relative;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-breadcrumb a:hover {
  opacity: 0.5;
}

.p-breadcrumb a::after {
  position: absolute;
  right: 0;
  bottom: 1.5px;
  left: 0;
  height: 1.5px;
  background: #222222;
  content: "";
}

.p-page-about {
  margin-right: 5%;
  margin-left: 5%;
}

.p-page-about__photo-wrapper {
  width: 100%;
  height: 100%;
  max-height: 273px;
  overflow: hidden;
  border-radius: 2px;
}

.p-page-about__photo-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
  position: relative;
  overflow: hidden;
     object-position: center;
  border: 2.8px solid transparent;
  border-radius: 6px;
  border-image-repeat: stretch;
  border-image-slice: 2.8 fill;
  border-image-source: url("../img/frame-line.svg");
}
@media screen and (min-width: 540px) {
  .p-page-about__photo-img {
    border-radius: 10px;
  }
}

.p-page-about__text-wrap {
  margin-top: 20px;
}

.p-page-about__text-name {
  color: #222222;
  font-style: normal;
  font-weight: 700;
  font-size: 18px;
  line-height: normal;
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.p-page-about__text-day {
  font-size: 12px;
}

.p-page-about__text-greetings {
  margin-top: 10px;
  margin-bottom: 24px;
  color: #222222;
  font-style: normal;
  font-weight: 700;
  font-size: 14px;
  line-height: normal;
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.p-single-content {
  margin-top: 20px;
  padding-bottom: 46px;
}

.p-single-info__wrap {
  display: flex;
  flex-direction: column;
  margin-bottom: 10px;
  gap: 4px;
}

.p-single-content__info-date {
  position: relative;
  padding-right: 16px;
  font-size: 14px;
}
.p-single-content__info-date::after {
  position: absolute;
  top: 50%;
  right: 9px;
  width: 1px;
  height: 12px;
  transform: translateY(-50%);
  background: #222222;
  content: "";
}

.p-single-info__wrapper {
  margin: 20px 0;
}

.p-single-content__info {
  display: flex;
  align-items: center;
  font-weight: 400;
}

.p-single-content__meta {
  margin-top: 12px;
}

.p-single-content__category {
  font-size: 14px;
  line-height: 16px;
}

.p-single-content__tags {
  flex-wrap: nowrap;
  overflow-x: auto;
  line-height: 1;
  -ms-overflow-style: none;
  white-space: nowrap;
  scrollbar-width: none;
}
.p-single-content__tags::-webkit-scrollbar {
  display: none;
}

.p-single-content__tags > * + * {
  margin-left: 10px;
  padding-left: 10px;
}

.p-single-content__tag-item {
  position: relative;
  padding-left: 10px;
  font-size: clamp(0.6875rem, 0.6141304348rem + 0.2173913043vw, 0.75rem);
  line-height: 20px;
}
.p-single-content__tag-item::after {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  content: "#";
  color: #222222;
}

.p-single-content__body {
  margin: 70px 0 40px 0;
}
@media screen and (min-width: 540px) {
  .p-single-content__body {
    margin: 70px 0 100px 0;
  }
}

.p-single-content__body::-webkit-scrollbar {
  width: 3px; /* スクロールバーの太さ */
}

.p-single-content__body::-webkit-scrollbar-thumb {
  border-radius: 3px; /* 丸み */
  background-color: hsl(20, 17%, 73%); /* つまみ部分 */
}

.p-single-content__body::-webkit-scrollbar-track {
  border-radius: 3px;
  background-color: #EAE0D5; /* トラック部分 */
}

.p-single__title {
  font-size: clamp(1.25rem, 0.6630434783rem + 1.7391304348vw, 1.75rem);
  line-height: clamp(1.25rem, 0.5163043478rem + 2.1739130435vw, 1.875rem);
}

.p-single-content__body p {
  font-weight: 600;
  font-size: clamp(0.875rem, 0.8016304348rem + 0.2173913043vw, 0.9375rem);
  line-height: 1.5;
}

.p-single-content__body ul {
  margin-top: 20px;
  font-weight: 600;
  font-size: clamp(0.875rem, 0.8016304348rem + 0.2173913043vw, 0.9375rem);
  line-height: 1.5;
}

.p-info-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px 16px;
}
@media screen and (min-width: 540px) {
  .p-info-list {
    grid-template-columns: 150px 1fr;
    max-width: 600px; /* コンテナの幅を適宜指定 */
    margin: 0 auto; /* 中央寄せ */
    gap: 30px 16px; /* 行間8px、列間16pxの隙間 */
  }
}

.p-info-item {
  display: flex;
  align-items: center;
}

.p-info-item__title {
  width: 150px;
  font-weight: 600;
}

.p-info-item__text {
  position: relative;
  padding-bottom: 16px;
  font-weight: 400;
  font-size: clamp(0.875rem, 0.8016304348rem + 0.2173913043vw, 0.9375rem);
  line-height: 1.8;
}
.p-info-item__text::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background-image: url(../img/line-black__row.svg);
  background-position: bottom left;
  background-size: auto 3px;
  background-repeat: repeat-x;
  content: "";
}
@media screen and (min-width: 540px) {
  .p-info-item__text {
    padding-bottom: 27px;
  }
}

.p-info-item__text-small {
  font-size: clamp(0.75rem, 0.6766304348rem + 0.2173913043vw, 0.8125rem);
  line-height: 1.5;
}

.p-info-item__text--color-size {
  color: #81B2B2;
  font-weight: 600;
  font-size: clamp(1rem, 0.9266304348rem + 0.2173913043vw, 1.0625rem);
}

.p-info-item__link {
  position: relative;
  padding-right: 24px;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.p-info-item__link:hover {
  opacity: 0.8;
}
.p-info-item__link::after {
  position: absolute;
  right: 0;
  bottom: 50%;
  width: 19px;
  height: 18px;
  transform: translateY(50%);
  background-image: url(../img/window-icon.svg);
  background-position: right center;
  background-size: contain;
  background-repeat: no-repeat;
  content: "";
}

/* カルーセル全体のコンテナ - position: relative を設定 */
.carousel-wrap {
  position: relative;
  margin: 0 -20px;
}
@media screen and (min-width: 375px) {
  .carousel-wrap {
    margin: 0;
  }
}

/* カルーセル全体のコンテナ */
.carousel-container {
  position: relative;
  width: 100%;
  max-width: 960px; /* 必要に応じて調整 */
  margin: 0 auto;
}

/* カルーセル本体 */
.carousel {
  position: relative;
  /* アスペクト比を設定（例：16:9） */
  aspect-ratio: 768/500;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  /* アスペクト比がサポートされていない古いブラウザ用 */
}
@supports not (aspect-ratio: 768/500) {
  .carousel::before {
    display: block;
    padding-top: 56.25%; /* 16:9のアスペクト比 */
    content: "";
  }
}

/* ラジオボタン非表示 */
.carousel input {
  display: none;
}

/* スライドコンテナ */
.slides {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 0.5s ease-in-out;
}

/* 個々のスライド */
.slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* スライド内画像 */
.slide img,
.slide video,
.single-video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; /* 画像のアスペクト比を維持 */
  -o-object-position: center;
  display: block;
     object-position: center;
  border-radius: 6px;
  background-color: #f5f5f5; /* 背景色 */
}

/* 統一されたサムネイルギャラリー */
.thumbnail-gallery {
  display: flex;
  flex-wrap: nowrap; /* 折り返さない */
  justify-content: center; /* 中央寄せ */
  width: 100%;
  max-width: 100%;
  margin: 20px auto;
  overflow-x: auto;
  gap: 10px;
  -ms-overflow-style: none;
  padding: 5px 0;
  scrollbar-width: none;
  /* 固定幅で表示 */
}
.thumbnail-gallery::-webkit-scrollbar {
  display: none;
}
@media screen and (min-width: 961px) {
  .thumbnail-gallery {
    max-width: 768px; /* タブレット以上での最大幅 */
  }
}

/* サムネイル */
.thumbnail {
  flex: 0 0 auto; /* 幅に基づいて伸縮しない */
  width: 60px; /* 基本サイズ */
  height: 60px;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s ease;
  /* ホバー状態 */
  /* アクティブ状態 */
}
@media screen and (min-width: 540px) {
  .thumbnail {
    width: 70px;
    height: 70px;
  }
}
@media screen and (min-width: 961px) {
  .thumbnail {
    width: 80px;
    height: 80px;
  }
}
.thumbnail:hover {
  opacity: 0.8;
}
/* サムネイル内画像 */
.thumbnail img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
  display: block;
     object-position: center;
}

/* 単一画像のスタイル */
.single-image-wrap {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.single-image {
  aspect-ratio: 768/500;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  background-color: #f5f5f5;
}

/* アニメーション */
@keyframes thumbnailPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
  }
}
.thumbnail.thumbnail--active {
  animation: thumbnailPulse 0.5s ease-in-out;
}

/* エディター上画像 */
.wp-block-image.normal-image {
  width: 100%;
  height: auto;
  margin: 20px 0;
  overflow: visible;
  border-radius: 6px;
}

.p-single__text {
  padding-left: 14px;
}

.p-single__list {
  margin-top: 6px !important;
}

.p-single__list > li + li {
  margin-top: 10px;
}

.p-single__list-item {
  position: relative;
  padding-left: 14px;
  font-weight: 400;
}
.p-single__list-item::before {
  position: absolute;
  top: 9px;
  left: 3px;
  width: 4px;
  height: 4px;
  background: url(../img/list.png) no-repeat center center;
  background-size: contain;
  content: "";
}

.p-kamo-gif {
  position: absolute;
  bottom: 7px;
  left: 300px;
  width: 100px;
  width: 121px;
  animation: moveKamo 340s linear infinite;
  opacity: 0.8;
  pointer-events: none;
}

@keyframes moveKamo {
  0% {
    transform: translateX(0) scaleX(-1);
  }
  20% {
    transform: translateX(700px) scaleX(-1);
  }
  22% {
    transform: translateX(700px) scaleX(1);
  }
  42% {
    transform: translateX(-700px) scaleX(1);
  }
  44% {
    transform: translateX(-700px) scaleX(-1);
  }
  64% {
    transform: translateX(0) scaleX(-1);
  }
  65% {
    transform: translateX(0) scaleX(-1);
  }
  85% {
    transform: translateX(700px) scaleX(-1);
  }
  87% {
    transform: translateX(700px) scaleX(1);
  }
  100% {
    transform: translateX(170px) scaleX(1); /* ← 修正：scaleXを1に */
  }
}
.hover-image-popup {
  display: block;
  visibility: hidden;
  z-index: 999;
  position: absolute;
  top: 100%;
  left: 50%;
  width: 200px;
  padding: 5px;
  transform: translateX(-50%);
  border: 1px solid #ccc;
  background: #fff;
  opacity: 0;
  pointer-events: none; /* ホバーを維持するために */
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.hover-image-trigger {
  position: relative;
  cursor: pointer;
}

.hover-image-trigger:hover .hover-image-popup {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.hover-text-color {
  color: #81B2B2;
  font-weight: 600;
}

.p-single__post-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  margin-top: 20px;
  gap: 16px;
}

.post-navigation {
  display: flex;
  justify-content: space-between;
  margin-top: 40px;
}

.post-nav-link {
  display: flex;
  position: relative;
  top: 50%;
  left: 50%;
  align-items: center;
  width: auto;
  height: 100%;
  padding: 8px;
  overflow: hidden;
  gap: 10px;
  transform: translate(-50%, -50%);
  border: 2px solid #222;
  border-radius: 8px;
  color: inherit;
  text-decoration: none;
  transition: transform 0.3s ease-in-out; /* Added 's' for seconds */
}
.post-nav-link:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

.nav-previous .post-nav-link {
  flex-direction: row-reverse; /* 矢印とサムネイルが左側に来るように */
}

.arrow {
  margin: 0 10px;
  font-size: 24px;
}

.nav-thumbnail img {
  display: block;
  width: 110px;
  height: auto;
  border-radius: 4px;
}

.nav-title {
  display: none;
  width: 100%;
  max-width: 200px;
  font-size: 14px;
  line-height: 1.3;
}
@media screen and (min-width: 540px) {
  .nav-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 2行に制限 */
    overflow: hidden;
    text-overflow: ellipsis; /* 溢れた部分を省略記号に */
  }
}

.p-pagination__padding {
  margin-top: 40px;
}
@media screen and (min-width: 540px) {
  .p-pagination__padding {
    margin-top: 50px;
  }
}

.p-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.page-numbers {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  overflow: hidden;
  border: solid 2px #222222;
  border-radius: 50%;
  background: #FFFFFF;
  font-weight: 500;
  font-size: 16px;
  line-height: normal;
  font-family: "Noto Sans JP", Arial, sans-serif;
  transition: scale 0.3s;
}
.page-numbers:hover {
  scale: 0.9;
}

.current.page-numbers {
  background: #81B2B2;
  color: #FFFFFF;
}

.prev.page-numbers,
.next.page-numbers {
  width: 28px;
  height: auto;
  border: none;
  fill: #222222;
}
.prev.page-numbers:hover,
.next.page-numbers:hover {
  background: #222222;
  color: #FFFFFF;
}
.prev.page-numbers:hover .left-arrow-cr,
.prev.page-numbers:hover .right-arrow-cr,
.next.page-numbers:hover .left-arrow-cr,
.next.page-numbers:hover .right-arrow-cr {
  fill: #FFFFFF;
}

.p-pagenation > * + * {
  margin-left: 12px;
}

.filter-button__categories {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  gap: 10px;
}

/* ボタンに fluid な幅を指定 */
.filter-button__categories button {
  width: 100%;
}

.filter-button:not(.active):hover {
  transform: scale(0.95);
}

/* ✅ スマホ時（520px以下）で完全に縦並びに */
@media (max-width: 520px) {
  .filter-button__categories {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 20%;
  }
  .filter-button {
    width: 100%;
  }
}
.filter-button:hover {
  background-color: transparent;
}

.filter-button__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-right: auto;
  margin-bottom: 6px;
  margin-left: auto;
}

.filter-button__tags > * + * {
  margin-left: 10px;
}

.tag-filter {
  background: transparent;
  color: #808080;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.tag-filter:not(.active):hover {
  transform: scale(0.95);
}

.tag-filter:not(.active):hover {
  opacity: 0.7;
}

.tag-filter.active {
  border-bottom: 2px solid #222222;
  color: #222222;
}

.filter-group {
  padding: 0 0 50px 0;
}

.filter-button {
  transition: transform 0.5s ease; /* 0.5秒かけてスケール */
}

.filter-button__img {
  display: block;
  transition: opacity 0.4s ease; /* 0.4秒かけて透過 */
}

.p-footer-work__wrap {
  position: relative;
  height: 100%;
  overflow: hidden;
}
.p-footer-work__wrap::before {
  z-index: 1;
  position: absolute;
  top: -32px;
  left: 0px;
  width: 100%;
  height: 49.714px;
  background: url(../img/img_bg_wave-bottom2.svg) left top/contain repeat-x;
  background-position: left top;
  content: "";
  content: "";
}

.p-footer-work__content {
  position: relative;
  width: 100%;
  height: 650px;
}
.p-footer-work__content::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 960px;
  height: 395px;
  background-image: url(../img/footer-work__bk.webp);
  background-position: top center;
  background-size: contain;
  background-repeat: repeat-x;
  content: "";
}
.p-footer-work__content::after {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 960px;
  height: 260px;
  background-image: url(../img/footer-work__bk2.webp);
  background-position: bottom center;
  background-size: contain;
  background-repeat: repeat-x;
  content: "";
}

.p-footer-work__info {
  display: flex;
  position: absolute;
  top: 100px;
  left: 50%;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transform: translateX(-50%);
}

.p-copy-work {
  position: relative;
  text-align: center;
}
.p-copy-work::before {
  z-index: 50;
  position: absolute;
  top: 0;
  left: 50%;
  width: 960px;
  height: 3px;
  transform: translateX(-50%);
  background-image: url(../img/line-black__row.svg);
  background-position: bottom left;
  background-size: auto 3px;
  background-repeat: repeat-x;
  content: "";
}

.p-footer-work__text {
  color: #fff;
}

.p-copy-work__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4px 0;
  color: #000;
  font-style: normal;
  font-weight: 700;
  font-size: 10px;
  line-height: 24px; /* 240% */
  text-align: center;
}

.p-footer-work__img-wrap {
  z-index: 10;
  position: absolute;
  bottom: 24.5%;
  width: 100px;
  height: auto;
  transform-origin: center center;
  animation: sailBoat 100s linear infinite;
  opacity: 0.9;
  pointer-events: none;
}
.p-footer-work__img-wrap::after {
  z-index: -1;
  position: absolute;
  right: 2px;
  bottom: -18px;
  width: 69px;
  height: 100px;
  transform: scaleY(1) scaleX(-1);
  background: url(../img/hune_under.webp) center bottom/contain no-repeat;
  content: "";
}

@keyframes sailBoat {
  0% {
    transform: translateX(-100px) scaleX(1);
  }
  45% {
    transform: translateX(960px) scaleX(1);
  }
  50% {
    transform: translateX(960px) scaleX(-1);
  }
  95% {
    transform: translateX(-100px) scaleX(-1);
  }
  100% {
    transform: translateX(-100px) scaleX(1);
  }
}
.p-footer-work__img-kamotusen {
  z-index: 10;
  position: absolute;
  bottom: 252px;
  left: 300px; /* 初期位置 */
  width: 315px;
  height: auto;
  transform-origin: center center;
  animation: moveCargoShip 440s linear infinite;
  opacity: 0.7;
  pointer-events: none;
}

@keyframes moveCargoShip {
  0% {
    transform: translateX(0) scaleX(1);
  }
  20% {
    transform: translateX(700px) scaleX(1);
  }
  22% {
    transform: translateX(700px) scaleX(-1);
  }
  42% {
    transform: translateX(-700px) scaleX(-1);
  }
  44% {
    transform: translateX(-700px) scaleX(1);
  }
  64% {
    transform: translateX(0) scaleX(1);
  }
  65% {
    transform: translateX(0) scaleX(1);
  }
  85% {
    transform: translateX(700px) scaleX(1);
  }
  87% {
    transform: translateX(700px) scaleX(-1);
  }
  100% {
    transform: translateX(170px) scaleX(-1);
  }
}
/* ポップアップアニメーション */
@keyframes popBounce {
  0% {
    transform: scale(0.5);
    opacity: 0;
  }
  60% {
    transform: scale(1.2);
    opacity: 1;
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
/* 初期状態では要素を非表示に */
.p-title__wrap,
.fv-pop-early,
.fv-pop-late,
.p-title__wrap-img_tablet img {
  transform: scale(0.5);
  opacity: 0;
}

/* タイトルとロード中テキストのアニメーション */
body.is-loading .p-title__wrap {
  animation: popBounce 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

body.is-loading .loading-text {
  animation: popBounce 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s forwards;
}

/* ロード中テキスト */
.loading-text {
  position: absolute;
  top: calc(50% + 110px);
  margin: 0;
  transform: scale(0.5);
  text-align: center;
  opacity: 0;
}
@media (min-width: 600px) and (max-width: 960px) {
  .loading-text {
    top: calc(50% + 120px);
  }
}
@media screen and (min-width: 961px) {
  .loading-text {
    top: calc(50% - 2px);
  }
}

.p-loading-img {
  width: 80%;
}

/* ロード完了後、タイトルを表示し続ける */
body.is-loaded .p-title__wrap {
  transform: scale(1);
  opacity: 1;
}

/* ロード完了後、ロード中テキストを非表示に */
body.is-loaded .loading-text {
  opacity: 0;
  transition: opacity 0.5s;
}

/* ロード完了後、各要素を順番に表示 */
body.is-loaded .fv-pop-early,
body.is-loaded .p-title__wrap-img_tablet .fv-pop-early {
  animation: popBounce 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

body.is-loaded .fv-pop-late,
body.is-loaded .p-title__wrap-img_tablet .fv-pop-late {
  animation: popBounce 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s forwards;
}

.portfolio-item__img-wrap,
.rsfv-shortcode-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 236px;
  overflow: hidden;
}

.portfolio-item__img,
.rsfv-shortcode-wrapper video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  overflow: hidden;
     object-fit: cover;
  border: 2.5px solid transparent;
  border-radius: 8px;
  border-image-repeat: stretch;
  border-image-slice: 3.5 fill;
  border-image-source: url(../img/frame-line.svg);
}

.portfolio-item__title {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  max-height: 3.2em;
  overflow: hidden;
  line-height: 1.6em;
  text-overflow: ellipsis;
  word-break: break-word;
}
@media (min-width: 600px) {
  .portfolio-item__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
}

.portfolio-item {
  height: -moz-fit-content !important;
  height: fit-content !important;
}

/* 画像コンテナ */
.portfolio-item__img {
  width: 100%;
}

/* 下部コンテンツエリア */
.portfolio-item__bottom {
  display: flex;
  flex-grow: 1;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 70px;
  margin-top: 6px;
}
@media (min-width: 659px) {
  .portfolio-item__bottom {
    min-height: 60px;
  }
}

/* レスポンシブ対応 */
@media (max-width: 520px) {
  .portfolio-item__bottom {
    min-height: auto !important;
  }
}
.portfolio-item__tags {
  display: block;
  color: #808080;
  font-style: normal;
  font-weight: 400;
  font-size: clamp(0.75rem, 0.6032608696rem + 0.4347826087vw, 0.875rem);
  line-height: 1.8;
  font-family: "Noto Sans JP", Arial, sans-serif;
}

.portfolio-item__tags > * + * {
  margin-left: 6px;
}

.p-archive-items {
  display: block;
  max-width: 100%;
  margin: 0 auto;
}

.portfolio-item:hover {
  transform: scale(0.95);
  transition: transform 0.3s ease-in-out;
}

/* 440px以下のスタイル */
@media screen and (max-width: 520px) {
  /* 1列表示 */
  .portfolio-items {
    width: 100% !important;
  }
  .portfolio-item {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  /* 画像とテキストを確実に縦並びに */
  .portfolio-item .portfolio-image,
  .portfolio-item .portfolio-info {
    display: block !important;
    width: 100% !important;
  }
  /* フィルターボタンのレイアウト調整 */
  .filter-button__categories,
  .filter-button__tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
/* 769px以上のスタイル */
@media screen and (min-width: 769px) {
  /* 2列表示 */
  .portfolio-items {
    max-width: 100% !important;
  }
}
/* カラム間のギャップ確保 */
.gutter-sizer {
  width: 2%;
}

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

.p-404-img__wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  margin-bottom: 30px;
  padding-top: 50px;
  gap: 20px;
}

.p-404__gif {
  width: 500px;
  max-width: 100%;
  height: auto;
}

.p-404-text {
  margin-bottom: 20px;
  font-size: clamp(0.875rem, 0.7282608696rem + 0.4347826087vw, 1rem);
}

@media screen and (min-width: 1100px) {
  .u-hidden-pc {
    display: none;
  }
}

@media screen and (min-width: 540px) {
  .u-hidden-sp {
    display: none;
  }
}

.featured-video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  display: block;
     object-fit: cover; /* 画像と同じトリミング */
  border-radius: 8px; /* 既存カードに合わせて */
}

#section2 .snows {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

/*** 雪玉（共通） ***/
.snows div {
  position: absolute;
  top: -250px;
  left: 0;
  border-radius: 50%;
  background: #F3EFEB;
}

/*** 小さい雪玉 ***/
.snows div:nth-child(1) {
  width: 8px;
  height: 8px;
  box-shadow: 5vw -40px 0 #F3EFEB, 10vw 150px 0 #F3EFEB, 15vw -230px 0 #F3EFEB, 22vw 240px 0 #F3EFEB, 30vw 120px 0 #F3EFEB, 35vw -180px 0 #F3EFEB, 44vw 240px 0 #F3EFEB, 50vw 0px 0 #F3EFEB, 60vw 180px 0 #F3EFEB, 68vw 40px 0 #F3EFEB, 74vw -130px 0 #F3EFEB, 81vw -240px 0 #F3EFEB, 88vw 100px 0 #F3EFEB, 95vw 60px 0 #F3EFEB;
  animation: fallSway1 20s linear infinite;
}

/*** 小さい雪玉2 ***/
.snows div:nth-child(2) {
  width: 6px;
  height: 6px;
  box-shadow: 7vw 220px 0 #F3EFEB, 17vw -80px 0 #F3EFEB, 25vw 160px 0 #F3EFEB, 35vw 20px 0 #F3EFEB, 45vw -120px 0 #F3EFEB, 55vw 200px 0 #F3EFEB, 68vw 100px 0 #F3EFEB, 78vw -60px 0 #F3EFEB, 85vw 140px 0 #F3EFEB, 93vw -190px 0 #F3EFEB;
  animation: fallSway2 22s linear infinite;
  animation-delay: 8s;
}

/*** 中ぐらいの雪玉 ***/
.snows div:nth-child(3) {
  width: 12px;
  height: 12px;
  box-shadow: 12vw 5px 0 #F3EFEB, 24vw -160px 0 #F3EFEB, 32vw -100px 0 #F3EFEB, 42vw 80px 0 #F3EFEB, 45vw -180px 0 #F3EFEB, 58vw 120px 0 #F3EFEB, 68vw 40px 0 #F3EFEB, 77vw 65px 0 #F3EFEB, 87vw -140px 0 #F3EFEB, 94vw 230px 0 #F3EFEB;
  animation: fallSway3 18s linear infinite;
  animation-delay: 4s;
}

/*** 大きめの雪玉 ***/
.snows div:nth-child(4) {
  width: 4px;
  height: 4px;
  box-shadow: 8vw -50px 0 #F3EFEB, 18vw 120px 0 #F3EFEB, 28vw -200px 0 #F3EFEB, 38vw 80px 0 #F3EFEB, 48vw -140px 0 #F3EFEB, 58vw 160px 0 #F3EFEB, 70vw -80px 0 #F3EFEB, 80vw 200px 0 #F3EFEB, 90vw -120px 0 #F3EFEB;
  animation: fallSway4 25s linear infinite;
  animation-delay: 12s;
}

/*** 落下アニメーション with 左右の揺れ ***/
@keyframes fallSway1 {
  0% {
    top: -250px;
    transform: translateX(0px);
  }
  20% {
    transform: translateX(18px);
  }
  40% {
    transform: translateX(-22px);
  }
  60% {
    transform: translateX(25px);
  }
  80% {
    transform: translateX(-15px);
  }
  100% {
    top: calc(100% + 250px);
    transform: translateX(-8px);
  }
}
@keyframes fallSway2 {
  0% {
    top: -250px;
    transform: translateX(0px);
  }
  15% {
    transform: translateX(-12px);
  }
  30% {
    transform: translateX(28px);
  }
  50% {
    transform: translateX(-30px);
  }
  70% {
    transform: translateX(16px);
  }
  90% {
    transform: translateX(-20px);
  }
  100% {
    top: calc(100% + 250px);
    transform: translateX(10px);
  }
}
@keyframes fallSway3 {
  0% {
    top: -250px;
    transform: translateX(0px);
  }
  25% {
    transform: translateX(15px);
  }
  45% {
    transform: translateX(-20px);
  }
  65% {
    transform: translateX(18px);
  }
  85% {
    transform: translateX(-10px);
  }
  100% {
    top: calc(100% + 250px);
    transform: translateX(5px);
  }
}
@keyframes fallSway4 {
  0% {
    top: -250px;
    transform: translateX(0px);
  }
  15% {
    transform: translateX(-25px);
  }
  35% {
    transform: translateX(30px);
  }
  55% {
    transform: translateX(-18px);
  }
  75% {
    transform: translateX(22px);
  }
  95% {
    transform: translateX(-12px);
  }
  100% {
    top: calc(100% + 250px);
    transform: translateX(0px);
  }
}
.content {
  display: flex;
  z-index: 5;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  padding: 20px;
  color: white;
  text-align: center;
}

.title {
  margin-bottom: 1rem;
  font-weight: bold;
  font-size: 3rem;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  animation: fadeInUp 2s ease-out 0.5s forwards;
  opacity: 0;
}

.subtitle {
  font-size: 1.5rem;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  animation: fadeInUp 2s ease-out 1s forwards;
  opacity: 0.9;
  opacity: 0;
}

@keyframes fadeInUp {
  from {
    transform: translateY(30px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
/* オーバーレイの設定 */
#js_overlay {
  visibility: hidden;
  z-index: 9997;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

#js_overlay.is-checked {
  visibility: visible;
  opacity: 1;
}

/* 例: 2行を超えたら省略する */
.u-title-clamp {
  display: -webkit-box; /* これと次のプロパティで擬似的に段組み表示を作る */
  -webkit-line-clamp: 2; /* 行数を指定：2行 */
  -webkit-box-orient: vertical; /* 縦方向にテキストを流す */
  overflow: hidden;
  text-overflow: ellipsis; /* 行数オーバー部分を「...」のように見せる */
}

.fade-in-up {
  transform: translateY(24px);
  opacity: 0;
  transition: opacity 1s, transform 1s;
}
.fade-in-up.is-in-view {
  transform: translateY(0);
  opacity: 1;
}