@charset "UTF-8";
/* ---------------- */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Poppins:wght@400;500;700;900&family=Noto+Sans+JP:wght@100..900&display=swap");
/* ---------------- */
/* rootの設定 */
/* ---------------- */
:root {
  --innerWidth: 102.4rem;
  --padding-pc: 2.5rem;
  --padding-sp: 2rem;
  --font-main: "";
  --black: #333;
  --white: #fff;
  --breakpoint-sm: 600px;
  --breakpoint-md: 767px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1440px;
}

/* loaderとFVで共有
   片方だけ変更すると遷移時にズレるため共通管理 */
/* Message 横入場〜後続セクション追従専用（FV の $top-character-* とは独立）
   調整ガイド: docs/top-message-scroll-adjust.md */
/* JS が読む peek 値（単位なし）。小さい y / xTo ほど多く見える */
/* Works 区間専用（Message の $top-follow-* とは独立）
   調整ガイド: docs/top-works.md */
/* JS が読む peek 値（単位なし）。小さい y / x ほど多く見える */
/* About 区間専用（Works の $top-works-* とは独立） */
/* SP は 0 以上。負値だと枠が画面外に出て iOS がページ幅を広げる。
   見た目の右ずらしは x-percent に足す（旧 right -90・x 26 と同じ位置） */
/* 26 + (旧 right 90 / width 1300 * 100)。right を 0 にしても見た目は変えない */
/* Contact 区間（PC のみ位置を変える。大きさは About の width を使う） */
/* =========================================================
 * トップページ：ローダーと FV の共有トークン（Figma 1440×900）
 *
 * 【調整ガイド】
 *   - FV キャラ → $top-character-*
 *   - 横入場追従キャラ → $top-follow-*（docs/top-message-scroll-adjust.md）
 *   - Works 区間キャラ → $top-works-*（docs/top-works.md）
 *   - About 区間キャラ → $top-about-*
 *   - ローダー専用 → _p-loader.scss / FV専用 → _p-fv.scss / ヘッダー → _p-header.scss
 * ======================================================= */
:root {
  --top-figma-width: 1440;
  --top-figma-height: 900;
  --top-character-width: 173.61111vw;
  --top-character-width: calc(250000vw / var(--top-figma-width));
  --top-character-bottom: 0;
  --top-character-offset-x: 0vw;
  --top-character-offset-x: calc(0vw / var(--top-figma-width));
  --top-speech-top: 13.88889vw;
  --top-speech-top: calc(20000vw / var(--top-figma-width));
  /* 横入場・追従キャラ */
  --top-follow-character-width: 97.22222vw;
  --top-follow-character-width: calc(140000vw / var(--top-figma-width));
  --top-follow-character-right: 6.94444vw;
  --top-follow-character-right: calc(10000vw / var(--top-figma-width));
  --top-follow-character-bottom: -3.47222vw;
  --top-follow-character-bottom: calc(-5000vw / var(--top-figma-width));
  --top-follow-char-y-percent: 50;
  --top-follow-char-x-from: 88;
  --top-follow-char-x-to: 42;
  /* Works 区間キャラ */
  --top-works-character-width: 69.44444vw;
  --top-works-character-width: calc(100000vw / var(--top-figma-width));
  --top-works-character-right: -3.47222vw;
  --top-works-character-right: calc(-5000vw / var(--top-figma-width));
  --top-works-character-bottom: -4.86111vw;
  --top-works-character-bottom: calc(-7000vw / var(--top-figma-width));
  --top-works-char-y-percent: 28;
  --top-works-char-x-percent: 28;
  /* About 区間キャラ */
  --top-about-character-width: 61.11111vw;
  --top-about-character-width: calc(88000vw / var(--top-figma-width));
  --top-about-character-right: -10.76389vw;
  --top-about-character-right: calc(-15500vw / var(--top-figma-width));
  --top-about-character-bottom: -4.16667vw;
  --top-about-character-bottom: calc(-6000vw / var(--top-figma-width));
  --top-about-char-y-percent: 0;
  --top-about-char-x-percent: 6;
  /* Contact 区間キャラ（PC。大きさは --top-about-character-width） */
  --top-contact-character-right: -10.76389vw;
  --top-contact-character-right: calc(-15500vw / var(--top-figma-width));
  --top-contact-character-bottom: -4.16667vw;
  --top-contact-character-bottom: calc(-6000vw / var(--top-figma-width));
  --top-contact-char-y-percent: 0;
  --top-contact-char-x-percent: 6;
}

@media only screen and (max-width: 767px) {
  :root {
    /* SP キャラ幅（$top-character-width-sp のみ変更。PC には影響しない） */
    --top-character-width: 229.16667vw;
    --top-character-width: calc(330000vw / var(--top-figma-width));
    /* 単位なし 0 だと calc(... + var(--top-character-offset-x)) が無効になり left が 0 になる */
    --top-character-offset-x: 0px;
    --top-speech-top: 18%;
    --top-follow-character-width: 125vw;
    --top-follow-character-width: calc(180000vw / var(--top-figma-width));
    --top-follow-character-right: 13.88889vw;
    --top-follow-character-right: calc(20000vw / var(--top-figma-width));
    --top-follow-character-bottom: -31.25vw;
    --top-follow-character-bottom: calc(-45000vw / var(--top-figma-width));
    --top-follow-char-y-percent: 28;
    --top-follow-char-x-from: 92;
    --top-follow-char-x-to: 38;
    --top-works-character-width: 104.16667vw;
    --top-works-character-width: calc(150000vw / var(--top-figma-width));
    --top-works-character-right: -4.86111vw;
    --top-works-character-right: calc(-7000vw / var(--top-figma-width));
    --top-works-character-bottom: -17.36111vw;
    --top-works-character-bottom: calc(-25000vw / var(--top-figma-width));
    --top-works-char-y-percent: 32;
    --top-works-char-x-percent: 34;
    --top-about-character-width: 90.27778vw;
    --top-about-character-width: calc(130000vw / var(--top-figma-width));
    --top-about-character-right: 0vw;
    --top-about-character-right: calc(0vw / var(--top-figma-width));
    --top-about-character-bottom: 0.69444vw;
    --top-about-character-bottom: calc(1000vw / var(--top-figma-width));
    --top-about-char-y-percent: 2;
    --top-about-char-x-percent: 32.923;
  }
}
/*****************************
* A Modern CSS Reset (https://github.com/hankchizljaw/modern-css-reset)
* 上記に、ul要素,ol要素,a要素への記述追加
*****************************/
/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

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

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul,
ol {
  list-style: none;
  padding: 0;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  min-height: 100dvh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

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

a {
  text-decoration: none;
  color: inherit;
}

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

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

button {
  border: none;
  padding: 0;
  background-color: transparent;
  background-color: initial;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
html {
  font-size: 10px;
  /* スクロールバー有無で幅が変わらないようにし、ロック解除時のずれを防ぐ */
  scrollbar-gutter: stable;
}
@media (max-width: 795) and (min-width: 768px) {
  html {
    font-size: 1.2578616352vw;
  }
}
@media only screen and (max-width: 767px) {
  html {
    font-size: 10px;
  }
}
@media (max-width: 390px) {
  html {
    font-size: 2.5641025641vw;
  }
}

body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  background-color: #fa4169;
  background-image: url(../images/common/bg_main.png);
  background-size: contain;
  background-position: center;
  background-repeat: repeat;
  -webkit-transition: background-color 0.45s ease;
  transition: background-color 0.45s ease;
}

body.fixed {
  width: 100%;
  height: 100%;
  position: fixed;
}

body.no-scroll {
  overflow: hidden;
}

/* FV イントロ完了までスクロール禁止。
   iPhone 初回は 100dvh と visualViewport が見えている画面より高く、上下が見切れる。
   ロック中はツールバーを出した高さ（100svh）を上限にする。 */
html.is-fv-scroll-locked {
  overflow: hidden;
  height: 100svh;
  height: var(--fv-vv-height, 100svh);
  min-height: 0;
}

html.is-fv-scroll-locked body {
  position: fixed;
  top: 0px;
  top: var(--fv-vv-offset, 0px);
  right: 0;
  left: 0;
  width: 100%;
  height: 100svh;
  height: var(--fv-vv-height, 100svh);
  min-height: 100svh;
  min-height: var(--fv-vv-height, 100svh);
  overflow: hidden;
  overscroll-behavior: none;
}

html.is-fv-scroll-locked .p-loader,
html.is-fv-scroll-locked .p-header {
  top: 0px;
  top: var(--fv-vv-offset, 0px);
}

html.is-fv-scroll-locked .p-loader,
html.is-fv-scroll-locked .p-fv,
html.is-fv-scroll-locked .p-fv__inner {
  height: 100svh;
  height: var(--fv-vv-height, 100svh);
  min-height: 100svh;
  min-height: var(--fv-vv-height, 100svh);
}

a,
button {
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
a:hover,
button:hover {
  opacity: 0.7;
  cursor: pointer;
}

a[href^="tel:"] {
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}

/* ---------------- */
.l-inner {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.73611vw;
  padding-right: calc(2500vw / var(--top-figma-width));
  padding-left: 1.73611vw;
  padding-left: calc(2500vw / var(--top-figma-width));
}
@media screen and (max-width: 767px) {
  .l-inner {
    max-width: 59rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .l-inner-top {
    max-width: 47.22222vw;
    max-width: calc(63000vw / var(--top-figma-width) + 2500vw / var(--top-figma-width) * 2);
  }
  .l-inner-lower {
    max-width: 55.20833vw;
    max-width: calc(74500vw / var(--top-figma-width) + 2500vw / var(--top-figma-width) * 2);
  }
}

.l-main {
  position: relative;
}

.l-footer {
  position: relative;
  margin-top: auto;
  z-index: 28;
  pointer-events: none;
}

.c-section-title {
  width: 100%;
  text-align: left;
}
@media only screen and (max-width: 767px) {
  .c-section-title {
    margin-bottom: 3.6rem;
  }
}

.c-section-title__text {
  font-size: 1.18056vw;
  font-size: calc(1700vw / var(--top-figma-width));
  line-height: 1.4;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .c-section-title__text {
    font-size: 1.6rem;
  }
}

.c-section-title__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 6.38889vw;
  font-size: calc(9200vw / var(--top-figma-width));
  line-height: 1;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .c-section-title__title {
    font-size: 5.2rem;
  }
}

.c-page-head {
  position: fixed;
  top: 2.5vw;
  top: calc(3600vw / var(--top-figma-width));
  right: 3.33333vw;
  right: calc(4800vw / var(--top-figma-width));
  z-index: 5;
  text-align: right;
}
@media only screen and (max-width: 767px) {
  .c-page-head::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -0.6rem;
    border-radius: 1.6rem;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    pointer-events: none;
  }
}
@media only screen and (max-width: 767px) {
  .c-page-head {
    right: 2rem;
    top: 10.8rem;
    -webkit-transition: top 0.35s ease;
    transition: top 0.35s ease;
  }
  .c-page-head .c-section-title__text,
  .c-page-head .c-section-title__title,
  .c-page-head .c-breadcrumb__list {
    -webkit-transition: font-size 0.35s ease;
    transition: font-size 0.35s ease;
  }
}
@media only screen and (max-width: 767px) {
  .c-page-head.is-scrolled {
    top: 7.8rem;
  }
  .c-page-head.is-scrolled .c-section-title__text {
    font-size: 1.2rem;
  }
  .c-page-head.is-scrolled .c-section-title__title {
    font-size: 3.6rem;
  }
  .c-page-head.is-scrolled .c-breadcrumb__list {
    font-size: 1rem;
  }
}
.c-page-head .c-section-title {
  width: auto;
  margin-bottom: 0.34722vw;
  margin-bottom: calc(500vw / var(--top-figma-width));
  text-align: inherit;
}
@media only screen and (max-width: 767px) {
  .c-page-head .c-section-title {
    margin-bottom: 0;
  }
}

.c-breadcrumb__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.55556vw;
  gap: calc(800vw / var(--top-figma-width));
  max-width: 22.22222vw;
  max-width: calc(32000vw / var(--top-figma-width));
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.90278vw;
  font-size: calc(1300vw / var(--top-figma-width));
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .c-breadcrumb__list {
    gap: 0.6rem;
    max-width: 100%;
    margin-top: 0.8rem;
    padding-left: 20%;
    font-size: 1.1rem;
  }
}

.c-breadcrumb__item {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.c-breadcrumb__item a {
  color: #000;
  text-decoration: none;
}
.c-breadcrumb__item a:hover {
  opacity: 0.7;
}
.c-breadcrumb__item + .c-breadcrumb__item::before {
  content: ">";
  margin-right: 0.55556vw;
  margin-right: calc(800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .c-breadcrumb__item + .c-breadcrumb__item::before {
    margin-right: 0.6rem;
  }
}

.c-end-character {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 25;
  width: 173.61111vw;
  width: var(--top-character-width);
  pointer-events: none;
  -webkit-transform: translate(-50%, 100%);
          transform: translate(-50%, 100%);
  -webkit-transition: -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.c-end-character.is-in {
  -webkit-transform: translate(-50%, 82.5%);
          transform: translate(-50%, 82.5%);
}
@media only screen and (max-width: 767px) {
  .c-end-character.is-in {
    -webkit-transform: translate(-50%, 83%);
            transform: translate(-50%, 83%);
  }
}
.c-end-character img {
  display: block;
  width: 100%;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .c-end-character img {
    width: 96%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-end-character {
    -webkit-transition: none;
    transition: none;
  }
}
/* 位置・出現は .p-footer__pagetop と同じ */
.c-contact-icon {
  position: fixed;
  right: 24.30556vw;
  right: calc(35000vw / var(--top-figma-width));
  bottom: 5.20833vw;
  bottom: calc(7500vw / var(--top-figma-width));
  z-index: 29;
  line-height: 0;
  -webkit-transform: translateY(calc(100% + 1.38889vw));
          transform: translateY(calc(100% + 1.38889vw));
  -webkit-transform: translateY(calc(100% + 2000vw / var(--top-figma-width)));
          transform: translateY(calc(100% + 2000vw / var(--top-figma-width)));
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .c-contact-icon {
    right: 2.4rem;
    bottom: 1.4rem;
    -webkit-transform: translateY(calc(100% + 1.2rem));
            transform: translateY(calc(100% + 1.2rem));
  }
}
.c-contact-icon.is-visible {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
  -webkit-transition: visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
  transition: visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
  transition: transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1), visibility 0s linear 0s;
  transition: transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1), visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
}
.c-contact-icon:hover {
  opacity: 1;
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
}
.c-contact-icon img {
  display: block;
  width: 11.66667vw;
  width: calc(16800vw / var(--top-figma-width));
  height: auto;
}
@media only screen and (max-width: 767px) {
  .c-contact-icon img {
    width: 7.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-contact-icon,
  .c-contact-icon.is-visible {
    -webkit-transition: none;
    transition: none;
  }
}
/* ---------------- */
.p-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100svh;
  z-index: 9999;
  overflow: visible;
  pointer-events: auto;
}

.p-loader.is-released {
  pointer-events: none;
  background: transparent;
  z-index: 3;
}

.p-loader.is-done {
  display: none;
}

/* このタブでトップを開いた2回目以降。JS が完了状態を当てるまでローダーを出さない */
html.is-skip-top-loader .p-loader {
  visibility: hidden;
  pointer-events: none;
}
html.is-skip-top-loader .p-header__logo,
html.is-skip-top-loader .p-header__tagline,
html.is-skip-top-loader .p-header__menu {
  opacity: 1;
  visibility: visible;
}
html.is-skip-top-loader .p-fv__speech:not(.p-fv__speech--news) {
  opacity: 0;
  visibility: hidden;
}
html.is-skip-top-loader .p-fv__speech--news,
html.is-skip-top-loader .p-fv__bg-text,
html.is-skip-top-loader .p-fv__nav,
html.is-skip-top-loader .p-fv__scroll {
  opacity: 1;
  visibility: visible;
}

.p-loader__bg {
  position: absolute;
  inset: 0;
}

.p-loader__inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.p-loader__brand {
  position: relative;
  width: 100%;
  height: 100%;
}

.p-loader__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 45.13889vw;
  width: calc(65000vw / var(--top-figma-width));
  z-index: 3;
}
@media only screen and (max-width: 767px) {
  .p-loader__logo {
    width: 25rem;
  }
}

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

.p-loader__progress {
  position: absolute;
  top: calc(50% + 9.72222vw);
  top: calc(50% + 14000vw / var(--top-figma-width));
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 3;
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  line-height: 1;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-loader__progress {
    top: calc(50% + 4.8rem);
  }
}

.p-loader__percent {
  font-size: 4.30556vw;
  font-size: calc(6200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-loader__percent {
    font-size: 4rem;
  }
}

.p-loader__unit {
  font-size: 1.94444vw;
  font-size: calc(2800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-loader__unit {
    font-size: 2.4rem;
  }
}

/* ローディング中だけキャラの配置コンテキスト。完了後キャラは stage-main へ移動。
   初期描画は GSAP の yPercent:100 と同じ位置。フッター JS より先に描く iOS Chrome で、
   キャラだけがローダーより先に出ないようにする */
.p-loader__character-mask > .p-fv__character {
  visibility: hidden;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}

.p-loader__character-mask {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 21.52778vw;
  top: calc(20000vw / var(--top-figma-width) + 11000vw / var(--top-figma-width));
  overflow: visible;
  z-index: 2;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-loader__character-mask {
    top: 28%;
  }
}

.p-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 40;
  pointer-events: none;
}

.p-header__brand {
  position: absolute;
  top: 2.77778vw;
  top: calc(4000vw / var(--top-figma-width));
  left: 3.47222vw;
  left: calc(5000vw / var(--top-figma-width));
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-header__brand {
    top: calc(env(safe-area-inset-top, 0px) + 1.8rem);
    left: 2.2rem;
  }
}

/* ローディング直後は移動ロゴが背後に回る。スクロールで重なり始めるまでぼかさない */
@media only screen and (max-width: 767px) {
  .p-header.is-scrolled .p-header__brand::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -0.6rem;
    border-radius: 1.6rem;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    pointer-events: none;
  }
}

.p-header__logo {
  position: relative;
  width: 17.01389vw;
  width: calc(24500vw / var(--top-figma-width));
  opacity: 0;
}
@media only screen and (max-width: 767px) {
  .p-header__logo {
    width: 18rem;
    -webkit-transition: width 0.35s ease;
    transition: width 0.35s ease;
  }
}

.p-header__tagline {
  margin: 0.55556vw 0 0;
  margin: calc(800vw / var(--top-figma-width)) 0 0;
  width: 17.01389vw;
  width: calc(24500vw / var(--top-figma-width));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-header__tagline {
    margin-top: 0.6rem;
    width: 18rem;
    -webkit-transition: width 0.35s ease;
    transition: width 0.35s ease;
  }
}
.p-header__tagline img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.p-header__logo a {
  display: block;
  pointer-events: auto;
  cursor: pointer;
}

.p-header__logo img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

/* SP Menu（仮画像。本番は images/common/menu-placeholder.svg を差し替え） */
.p-header__menu {
  position: absolute;
  top: calc(env(safe-area-inset-top, 0px) + 4.2rem);
  right: 2.8rem;
  z-index: 2;
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0;
}
@media only screen and (max-width: 767px) {
  .p-header__menu {
    display: block;
    -webkit-transition: top 0.35s ease;
    transition: top 0.35s ease;
  }
}
.p-header__menu img {
  display: block;
  width: 4rem;
  height: auto;
}
.p-header__menu.is-visible {
  opacity: 1;
}

/* 下層：ローディング待ちなしでロゴとメニューを表示 */
.p-header.is-lower .p-header__logo,
.p-header.is-lower .p-header__tagline {
  opacity: 1;
  visibility: visible;
}
.p-header.is-lower .p-header__logo a {
  pointer-events: auto;
}
.p-header.is-lower .p-header__menu {
  opacity: 1;
}

/* SP: スクロール開始でロゴ縮小・Menu位置調整 */
@media only screen and (max-width: 767px) {
  .p-header.is-scrolled .p-header__logo,
  .p-header.is-scrolled .p-header__tagline {
    width: 11rem;
  }
  .p-header.is-scrolled .p-header__menu {
    top: 2rem;
  }
}
.p-sp-nav {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 30;
  padding: 15.5rem 2rem 1rem;
  background: #fa4169;
  overflow: hidden;
  pointer-events: auto;
}

.p-sp-nav__items {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-sp-nav__item a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  text-decoration: none;
  color: #000;
}

.p-sp-nav__arrow {
  display: block;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: 3.2rem;
  height: 3.2rem;
}

.p-sp-nav__label {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
  -webkit-align-items: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.8rem;
}

.p-sp-nav__label-en {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 2.8rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.p-sp-nav__label-ja {
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.p-sp-nav__sns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  margin-top: 2.5rem;
  padding: 0;
  list-style: none;
}
.p-sp-nav__sns a {
  display: block;
}
.p-sp-nav__sns img {
  display: block;
  width: 2.4rem;
  height: auto;
}

/* サイズ・位置は SP の .p-fv__character と同じ（--top-character-width / right:0）
   表示位置の translateY(69%) は script.js の CHAR_Y_FINAL（SP）に合わせる */
.p-sp-nav__character {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: 173.61111vw;
  width: var(--top-character-width);
  pointer-events: none;
  -webkit-transform-origin: right bottom;
          transform-origin: right bottom;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.45s ease;
  transition: -webkit-transform 0.45s ease;
  transition: transform 0.45s ease;
  transition: transform 0.45s ease, -webkit-transform 0.45s ease;
}
.p-sp-nav__character.is-in {
  -webkit-transform: translateY(69%);
          transform: translateY(69%);
}
.p-sp-nav__character img {
  display: block;
  width: 100%;
  height: auto;
  /* FV と同じ：枠は右端固定、顔を画面中央付近へ */
  -webkit-transform: translateX(calc(47.5% - 50vw));
          transform: translateX(calc(47.5% - 50vw));
}

/* JS連動（短い画面・背景文字アーチ・吹き出しとキャラの隙間） */
:root {
  --top-bg-text-arc: 350;
  --top-speech-short-top: 30svh;
  --top-bg-text-short-top: 40svh;
  --top-speech-header-gap: 1.6rem;
  /* 吹き出し下端（しっぽ分を含む）とキャラ上端の隙間。JS が追従配置に使用 */
  --top-speech-char-gap: -0.69444vw;
  --top-speech-char-gap: calc(-1000vw / var(--top-figma-width));
}

@media only screen and (max-width: 767px) {
  :root {
    /* SP も弧を描く（大きいほど湾曲が強い。viewBox 高さ 200 基準） */
    --top-bg-text-arc: 120;
    --top-speech-char-gap: 0rem;
  }
}
.p-fv {
  position: relative;
  /* 100dvh は iPhone 初回、見えている画面より高くなり上下が見切れる */
  min-height: 100svh;
  overflow: hidden;
}

.p-fv__bg {
  position: absolute;
  inset: 0;
}

.p-fv__inner {
  position: relative;
  min-height: 100svh;
  /* 重なり順は子要素の z-index で管理（bg-text:1 < loader:3 < speech:4 < nav:5） */
}

/* 吹き出し＋背景テキスト。キャラ親（stage-main）基準の absolute。
   縦位置は JS（applySpeechAboveCharacter）がキャラ上端に追従。未計測時は --top-speech-top */
.p-fv__stage-head {
  position: absolute;
  top: 13.88889vw;
  top: var(--top-speech-top);
  left: 50%;
  width: 100%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 5; /* ローダーキャラ（z-index:3）より前面 */
}

.p-fv__speech-slot {
  display: block;
  position: relative;
  margin-top: 0;
  margin-inline: auto;
  z-index: 4;
  width: 77.22%;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .p-fv__speech-slot {
    width: 90vw;
  }
}
.p-fv__speech-slot:is(a):hover {
  opacity: 1;
  -webkit-transform: translateY(-0.69444vw);
          transform: translateY(-0.69444vw);
  -webkit-transform: translateY(calc(-1000vw / var(--top-figma-width)));
          transform: translateY(calc(-1000vw / var(--top-figma-width)));
}

.p-fv__speech-slot.is-short-positioned {
  margin-top: 30svh !important;
  margin-top: var(--top-speech-short-top) !important;
}

.p-fv__speech {
  position: relative;
  isolation: isolate; /* しっぽを背面に閉じ込め、本体塗りで上辺を隠す */
  width: 100%;
  padding: 1.38889vw 0.69444vw;
  padding: calc(2000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width));
  border: 1.04167vw solid #000;
  border: calc(1500vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #ffe6e6;
  opacity: 0;
  overflow: visible;
  /* box-shadow は矩形のみ。しっぽ込みのシルエット影は drop-shadow */
  -webkit-filter: drop-shadow(0.55556vw 0.55556vw 0 rgba(0, 0, 0, .5));
          filter: drop-shadow(0.55556vw 0.55556vw 0 rgba(0, 0, 0, .5));
  -webkit-filter: drop-shadow(calc(800vw / var(--top-figma-width)) calc(800vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .5));
          filter: drop-shadow(calc(800vw / var(--top-figma-width)) calc(800vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .5));
}
@media only screen and (max-width: 767px) {
  .p-fv__speech {
    width: 100%;
    padding: 1.4rem 1.8rem;
    border-width: 0.6rem;
    border-radius: 2rem;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="0" /><feOffset dx="17" dy="17" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.45)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
    -webkit-filter: drop-shadow(0.6rem 0.6rem 0 rgba(0, 0, 0, .45));
            filter: drop-shadow(0.6rem 0.6rem 0 rgba(0, 0, 0, .45));
  }
}
.p-fv__speech {
  /* テキスト等はしっぽより前面 */
}
.p-fv__speech > * {
  position: relative;
  z-index: 2;
}

/* 通常吹き出しと同じ下端に重ねる（高さ差があってもしっぽ位置を揃える） */
.p-fv__speech--news {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  width: auto;
  height: auto;
  max-width: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-fv__speech--news {
    border-radius: 99.9rem;
  }
}

.p-fv__speech-marquee {
  overflow: hidden;
  width: 100%;
}

.p-fv__speech-marquee-track {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  white-space: nowrap;
  will-change: transform;
}

.p-fv__speech-marquee-item {
  display: inline-block;
  padding-right: 3em;
  font-weight: 700;
  font-size: 3.47222vw;
  font-size: calc(5000vw / var(--top-figma-width));
  line-height: 1.2;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-fv__speech-marquee-item {
    font-size: 3rem;
  }
}

/* 吹き出し＋キャラゾーン。stage-main がキャラ基準の配置コンテキスト */
.p-fv__stage {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* キャラの親。SPでは stage-head の absolute 基準になる */
.p-fv__stage-main {
  position: relative;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

/* しっぽ：PC speech_before.svg / SP speech_before_sp.svg */
.p-fv__speech::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -3.33333vw;
  bottom: calc(-4800vw / var(--top-figma-width));
  z-index: 0;
  width: 5.27778vw;
  width: calc(7600vw / var(--top-figma-width));
  height: 4.51389vw;
  height: calc(6500vw / var(--top-figma-width));
  margin-left: -2.63889vw;
  margin-left: calc(7600vw / var(--top-figma-width) / -2);
  background: url("../images/common/speech_before.svg") no-repeat center/contain;
}
@media only screen and (max-width: 767px) {
  .p-fv__speech::before {
    bottom: -2.6rem;
    width: 4rem;
    height: 4.2rem;
    margin-left: -2rem;
    background-image: url("../images/common/speech_before_sp.svg");
  }
}

/* 本体色でしっぽ上辺の輪郭を覆う（しっぽより前面・文字より背面） */
.p-fv__speech::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: #ffe6e6;
  pointer-events: none;
}

.p-fv__speech-tail-shadow {
  display: none;
}

.p-fv__speech-text {
  margin: 0;
  text-align: center;
  white-space: nowrap;
  font-weight: 700;
  font-size: 3.47222vw;
  font-size: calc(5000vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-fv__speech-text {
    text-align: left;
    white-space: normal;
    font-size: 3rem;
    line-height: 1.4;
  }
}

/* 吹き出し下の可変エリア。縦長画面ではここが伸び、キャラは下端固定のまま体が見える */
/* ※ .p-fv__stage-main の基本定義は上（stage 付近）に集約 */
/* 短い画面：--top-bg-text-short-top で画面上端からの距離を指定 */
.p-fv__bg-text.is-short-positioned {
  top: 40svh !important;
  top: var(--top-bg-text-short-top) !important;
}

.p-fv__bg-text {
  position: absolute;
  left: 0;
  right: 0;
  top: 31.25vw;
  top: calc(45000vw / var(--top-figma-width));
  z-index: 1; /* ローダーキャラ（#loader z-index:3）より下 */
  opacity: 0;
  pointer-events: none;
  /* SP: 右上→左下の対角線。弧は --top-bg-text-arc。流れ方向は JS */
}
@media only screen and (max-width: 767px) {
  .p-fv__bg-text {
    top: 50%;
    left: 50%;
    right: auto;
    width: 180vmax;
    -webkit-transform: translate(-50%, -50%) rotate(-55deg);
            transform: translate(-50%, -50%) rotate(-55deg);
    -webkit-transform-origin: center center;
            transform-origin: center center;
  }
}

/* FV〜Message までビューポートに固定（#main 直下へ移動後） */
.p-fv__bg-text.is-fixed {
  position: fixed;
  z-index: 1;
}

.p-fv__bg-text-svg {
  display: block;
  width: 100%;
  height: 13.88889vw;
  height: calc(20000vw / var(--top-figma-width));
  overflow: visible;
}
@media only screen and (max-width: 767px) {
  .p-fv__bg-text-svg {
    height: 20rem;
  }
}

.p-fv__bg-text-label {
  fill: #ffd400;
  font-family: "Poppins", sans-serif;
  font-size: 20.83333vw;
  font-size: calc(30000vw / var(--top-figma-width));
  font-weight: 800;
  letter-spacing: 0.02em;
}
@media only screen and (max-width: 767px) {
  .p-fv__bg-text-label {
    font-size: 20rem;
  }
}

/* 表示キャラは1つ（.js-top-character）。loader mask → stage-main → #main(follow) へ移動しても同じクラス */
.p-fv__character {
  position: absolute;
  left: calc(50% - 86.80556vw);
  left: calc(50% - 250000vw / var(--top-figma-width) / 2 + 0vw / var(--top-figma-width));
  right: auto;
  bottom: 0;
  bottom: var(--top-character-bottom);
  width: 173.61111vw;
  width: calc(250000vw / var(--top-figma-width));
  margin-inline: unset;
  z-index: 3;
  -webkit-transform-origin: center bottom;
          transform-origin: center bottom;
  will-change: transform;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-fv__character {
    width: 173.61111vw;
    width: var(--top-character-width);
    left: auto;
    right: 0;
    -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
  }
}

.p-fv__character.is-top-anchored {
  bottom: auto;
}

/* FV 下退場中：固定化するだけ（follow の width/right/bottom は付けない） */
.p-fv__character.is-exiting {
  position: fixed;
  z-index: 25;
}

/* Message 入場以降：右端 fixed で works / news / contact まで追従
   大きさ・right/bottom は $top-follow-*（_top-tokens.scss）専用 */
.p-fv__character.is-follow {
  position: fixed;
  left: auto;
  right: 6.94444vw;
  right: var(--top-follow-character-right);
  bottom: -3.47222vw;
  bottom: var(--top-follow-character-bottom);
  top: auto;
  width: 97.22222vw;
  width: var(--top-follow-character-width);
  z-index: 25;
  -webkit-transform-origin: right bottom;
          transform-origin: right bottom;
  /* width / right / bottom / peek の切替は JS（GSAP）で同時に行う */
}

/* Works 区間：大きさと位置を $top-works-* に切替 */
.p-fv__character.is-follow.is-works {
  right: -3.47222vw;
  right: var(--top-works-character-right);
  bottom: -4.86111vw;
  bottom: var(--top-works-character-bottom);
  width: 69.44444vw;
  width: var(--top-works-character-width);
}

/* About 区間：大きさと位置を $top-about-* に切替 */
.p-fv__character.is-follow.is-about {
  right: -10.76389vw;
  right: var(--top-about-character-right);
  bottom: -4.16667vw;
  bottom: var(--top-about-character-bottom);
  width: 61.11111vw;
  width: var(--top-about-character-width);
}

/* Works / News：コンテンツ（z-index: 2）より背面。About 入場で外す
   SP は Works 下端が画面 70% を過ぎてから .is-behind（Works 中は前面） */
.p-fv__character.is-follow.is-behind {
  z-index: 1;
}

/* Partner 区間
   PC は About と同じ大きさ・位置。SP は Works と同じ大きさ・位置。
   .is-behind より後に書くので、背面クラスが残ってもパートナー中は前面（z-index: 25） */
.p-fv__character.is-follow.is-partner {
  z-index: 25;
  right: -10.76389vw;
  right: var(--top-about-character-right);
  bottom: -4.16667vw;
  bottom: var(--top-about-character-bottom);
  width: 61.11111vw;
  width: var(--top-about-character-width);
}
@media only screen and (max-width: 767px) {
  .p-fv__character.is-follow.is-partner {
    right: -3.47222vw;
    right: var(--top-works-character-right);
    bottom: -4.86111vw;
    bottom: var(--top-works-character-bottom);
    width: 69.44444vw;
    width: var(--top-works-character-width);
  }
}

/* Contact 区間（PC）: 大きさは About のまま、位置だけ変える */
.p-fv__character.is-follow.is-contact {
  right: -10.76389vw;
  right: var(--top-contact-character-right);
  bottom: -4.16667vw;
  bottom: var(--top-contact-character-bottom);
  width: 61.11111vw;
  width: var(--top-about-character-width);
}

/* 頭が画面上にはみ出すとき。bottom を外して上端を画面上端に揃える */
.p-fv__character.is-follow.is-viewport-top {
  top: 0;
  bottom: auto;
}

/* Contact 送信後: ローダーと同じく画面下中央から頭だけ
   .is-follow を外したあとの配置。PC / SP 共通 */
.p-fv__character.is-contact-peek {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: 0;
  top: auto;
  width: 173.61111vw;
  width: var(--top-character-width);
  z-index: 25;
  -webkit-transform-origin: center bottom;
          transform-origin: center bottom;
}

.p-fv__character.is-contact-peek img {
  -webkit-transform: none;
          transform: none;
}

@media only screen and (max-width: 767px) {
  .p-fv__character img {
    /* 枠は右端固定。SVG内キャラが中央描画のため顔を画面中央付近へ */
    -webkit-transform: translateX(calc(47.5% - 50vw));
            transform: translateX(calc(47.5% - 50vw));
  }
  /* About はトークンで位置を決めるので、FV用の横ずらしは外す */
  .p-fv__character.is-follow.is-about img {
    -webkit-transform: none;
            transform: none;
  }
}
.p-fv__character img {
  display: block;
  width: 100%;
  height: auto;
}

.p-fv__nav {
  position: fixed;
  left: 1.66667vw;
  left: calc(2400vw / var(--top-figma-width));
  bottom: 1.66667vw;
  bottom: calc(2400vw / var(--top-figma-width));
  z-index: 35;
  opacity: 0;
  pointer-events: auto;
}
.p-fv__nav.is-lower {
  opacity: 1;
}
@media only screen and (max-width: 767px) {
  .p-fv__nav {
    display: none;
  }
}

.p-fv__nav-items {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.55556vw;
  gap: calc(800vw / var(--top-figma-width));
  margin: 0 0 1.11111vw;
  margin: 0 0 calc(1600vw / var(--top-figma-width));
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-fv__nav-items {
    gap: 0.6rem;
    margin-bottom: 1.2rem;
  }
}

.p-fv__nav-item a {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  line-height: 1.2;
  color: #000;
  text-decoration: none;
  letter-spacing: 0.04em;
  -webkit-text-stroke: 0.55556vw #fa4169;
  -webkit-text-stroke: calc(800vw / var(--top-figma-width)) #fa4169;
  paint-order: stroke fill;
  transition: transform 0.3s ease, color 0.3s ease, opacity 0.3s ease, -webkit-text-stroke 0.35s ease;
}
@media only screen and (max-width: 767px) {
  .p-fv__nav-item a {
    font-size: 1.4rem;
    -webkit-text-stroke: 0.4rem #fa4169;
  }
}
.p-fv__nav-item a:hover {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  opacity: 1;
  color: #fff5f5;
}

/* bg-text 非表示時、および下層ナビは text-stroke を外す。
   このとき背景は白や薄いピンクにもなるので、ホバー色は黒のままにする */
body.is-bg-text-hidden .p-fv__nav-item a,
.p-fv__nav.is-lower .p-fv__nav-item a {
  -webkit-text-stroke: 0 transparent;
}
body.is-bg-text-hidden .p-fv__nav-item a:hover,
.p-fv__nav.is-lower .p-fv__nav-item a:hover {
  color: #000;
}

.p-fv__nav-sns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0.83333vw;
  gap: calc(1200vw / var(--top-figma-width));
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-fv__nav-sns {
    gap: 1.2rem;
  }
}

.p-fv__scroll {
  position: fixed;
  right: 1.66667vw;
  right: calc(2400vw / var(--top-figma-width));
  bottom: 1.66667vw;
  bottom: calc(2400vw / var(--top-figma-width));
  z-index: 5;
  opacity: 0;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-fv__scroll {
    right: 1.6rem;
    bottom: 1.6rem;
  }
}
.p-fv__scroll img {
  display: block;
  width: 4.72222vw;
  width: calc(6800vw / var(--top-figma-width));
  height: auto;
}
@media only screen and (max-width: 767px) {
  .p-fv__scroll img {
    width: 4.8rem;
  }
}
.p-fv__scroll.is-visible {
  pointer-events: auto;
  -webkit-animation: fv-scroll-float 2.4s ease-in-out infinite;
          animation: fv-scroll-float 2.4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__scroll.is-visible {
    -webkit-animation: none;
            animation: none;
  }
}

@-webkit-keyframes fv-scroll-float {
  0%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(0.8rem);
            transform: translateY(0.8rem);
  }
}

@keyframes fv-scroll-float {
  0%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(0.8rem);
            transform: translateY(0.8rem);
  }
}
.p-fv__nav-sns a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1.94444vw;
  width: calc(2800vw / var(--top-figma-width));
  height: 1.94444vw;
  height: calc(2800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-fv__nav-sns a {
    width: 2.8rem;
    height: 2.8rem;
  }
}

.p-message {
  position: relative;
  z-index: 2;
  overflow: visible;
  padding-bottom: 3.47222vw;
  padding-bottom: calc(5000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-message {
    padding-bottom: 3.7rem;
  }
}

.p-message__inner {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.p-message__box {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 41.66667vw;
  max-width: calc(60000vw / var(--top-figma-width));
  height: 100svh;
  margin-inline: auto;
  border: 0.69444vw solid #000;
  border: calc(1000vw / var(--top-figma-width)) solid #000;
  border-radius: 5.55556vw;
  border-radius: calc(8000vw / var(--top-figma-width));
  background: #ffe6e6;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  opacity: 0;
  will-change: transform, opacity;
  -webkit-box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
}
@media only screen and (max-width: 767px) {
  .p-message__box {
    max-width: 50rem;
    height: 75svh;
    border-width: 0.6rem;
    border-radius: 4.8rem;
  }
}

/* 余白はスクロールしない枠側。内側を scroll すると padding ごと上にずれ、
   1行目が角丸の枠線に乗って見える */
.p-message__box-frame {
  height: 100%;
  overflow: hidden;
  padding: 3.81944vw 3.47222vw;
  padding: calc(5500vw / var(--top-figma-width)) calc(5000vw / var(--top-figma-width));
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .p-message__box-frame {
    padding: 3.5rem 3rem;
  }
}

.p-message__box-inner {
  height: 100%;
  overflow: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

.p-message__text {
  margin: 0 0 1.94444vw;
  margin: 0 0 calc(2800vw / var(--top-figma-width));
  font-weight: 700;
  font-size: min(2.22222vw, 3.5rem);
  font-size: min(calc(3200vw / var(--top-figma-width)), 3.5rem);
  line-height: 1.7;
  color: #000;
  letter-spacing: 0.04em;
}
@media only screen and (max-width: 767px) {
  .p-message__text {
    margin-bottom: 2rem;
    font-size: 1.6rem;
    line-height: 1.6;
  }
}
.p-message__text:last-child {
  margin-bottom: 0;
}

/* 後続セクション仮置き。横入場キャラ（.is-follow）がここまで fixed 追従する */
.p-section {
  position: relative;
  z-index: 2;
  min-height: 100svh;
}

.p-section__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 100svh;
  padding: 5.55556vw 1.66667vw;
  padding: calc(8000vw / var(--top-figma-width)) calc(2400vw / var(--top-figma-width));
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .p-section__inner {
    padding: 6.4rem 2rem;
  }
}

.p-section__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 4.44444vw;
  font-size: calc(6400vw / var(--top-figma-width));
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: #000;
  -webkit-text-stroke: 0.41667vw #fa4169;
  -webkit-text-stroke: calc(600vw / var(--top-figma-width)) #fa4169;
  paint-order: stroke fill;
}
@media only screen and (max-width: 767px) {
  .p-section__title {
    font-size: 4rem;
    -webkit-text-stroke: 0.4rem #fa4169;
  }
}

.p-section__note {
  margin: 1.11111vw 0 0;
  margin: calc(1600vw / var(--top-figma-width)) 0 0;
  font-weight: 700;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-section__note {
    margin-top: 1.2rem;
    font-size: 1.4rem;
  }
}

.p-works {
  position: relative;
  z-index: 2;
  min-height: 100svh;
  padding-block: 3.47222vw 4.16667vw;
  padding-block: calc(5000vw / var(--top-figma-width)) calc(6000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works {
    padding-block: 13rem 3.6rem;
    margin-top: -8rem;
    /* News の負 margin が VIEW MORE に重なる。セクションを前面にしてタップをボタンへ届ける */
    z-index: 3;
  }
}

.p-works__title-box {
  width: 100%;
  margin: 0 0 1.94444vw;
  margin: 0 0 calc(2800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works__title-box {
    margin-bottom: 2.8rem;
  }
}

.p-works__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4.16667vw;
  gap: calc(6000vw / var(--top-figma-width));
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-works__list {
    gap: 4.8rem;
  }
}

.p-works__item {
  width: 100%;
}

.p-works__thumb {
  display: block;
  width: 100%;
  overflow: hidden;
  border: 1.04167vw solid #000;
  border: calc(1500vw / var(--top-figma-width)) solid #000;
  border-radius: 2.08333vw;
  border-radius: calc(3000vw / var(--top-figma-width));
  background: #fff;
  aspect-ratio: 618/386;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
  background-color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__thumb {
    border-width: 0.6rem;
    border-radius: 1rem;
  }
}
.p-works__thumb:hover {
  opacity: 1;
}
.p-works__thumb:hover .p-works__thumb-img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.p-works__thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  /* 角丸は親 .p-works__thumb の overflow + border-radius に任せる（二重指定で枠とずれるのを防ぐ） */
  border-radius: 0;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}

.p-works__thumb-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  background: linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%);
}

.p-works__meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.11111vw;
  gap: calc(1600vw / var(--top-figma-width));
  margin-top: 1.38889vw;
  margin-top: calc(2000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works__meta {
    gap: 1.2rem;
    margin-top: 0.5rem;
  }
}

.p-works__meta-text {
  min-width: 0;
}

.p-works__name {
  margin: 0;
  font-weight: 900;
  font-size: 1.11111vw;
  font-size: calc(1600vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__name {
    font-size: 1.6rem;
  }
}

.p-works__label {
  font-family: "Poppins", sans-serif;
  margin: 0.13889vw 0 0;
  margin: calc(200vw / var(--top-figma-width)) 0 0;
  font-size: 0.69444vw;
  font-size: calc(1000vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__label {
    margin-top: 0rem;
    font-size: 1rem;
  }
}

.p-works__more {
  display: grid;
  place-items: center;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: 2.36111vw;
  width: calc(3400vw / var(--top-figma-width));
  height: 2.36111vw;
  height: calc(3400vw / var(--top-figma-width));
  text-decoration: none;
}
@media only screen and (max-width: 767px) {
  .p-works__more {
    width: 2.1rem;
    height: 2.1rem;
  }
}
.p-works__more:hover {
  opacity: 1;
}
.p-works__more:hover img {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.p-works__more img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}

.p-works__view-more {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 3.47222vw;
  margin-top: calc(5000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works__view-more {
    margin-top: 3rem;
  }
}

.p-works__view-more-button {
  display: inline-block;
  padding: 0.69444vw 2.08333vw;
  padding: calc(1000vw / var(--top-figma-width)) calc(3000vw / var(--top-figma-width));
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: transparent;
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  line-height: 1;
  color: #000;
  text-decoration: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .p-works__view-more-button {
    padding: 0.7rem 1.8rem;
    border-width: 0.4rem;
    font-size: 1.6rem;
  }
}
.p-works__view-more-button:hover {
  opacity: 1;
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
}

.p-works__empty {
  margin: 0;
  font-weight: 700;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__empty {
    font-size: 1.4rem;
  }
}

/* 制作実績一覧 */
.p-works--archive .p-works__item {
  cursor: pointer;
}

.p-works--archive {
  margin-top: 0;
  padding-top: 13.88889vw;
  padding-top: calc(20000vw / var(--top-figma-width));
  padding-bottom: 5.55556vw;
  padding-bottom: calc(8000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works--archive {
    margin-top: 0;
    padding-top: 26.2rem;
    padding-bottom: 4.8rem;
  }
}

/* SP: 背景色のカードは大きく、それ以外の画像は小さく */
@media only screen and (max-width: 767px) {
  .p-works--archive .p-works__thumb,
  .p-works--archive .p-works__meta {
    width: 68%;
    margin-right: auto;
    -webkit-transition: width 0.45s ease;
    transition: width 0.45s ease;
  }
  .p-works--archive .p-works__item.is-current .p-works__thumb,
  .p-works--archive .p-works__item.is-current .p-works__meta {
    width: 100%;
  }
}
.p-works__text {
  margin-top: 5.55556vw;
  margin-top: calc(8000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works__text {
    margin-top: 8rem;
  }
}

.p-works__text-title {
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: 1.66667vw;
  font-size: calc(2400vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__text-title {
    font-size: 2.4rem;
  }
}

.p-works__text-description {
  margin: 0;
  font-size: 1.11111vw;
  font-size: calc(1600vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works__text-description {
    font-size: 1.4rem;
  }
}

.p-works-single {
  position: relative;
  z-index: 2;
  min-height: 100svh;
}

.p-works-single__inner {
  max-width: 50vw;
  max-width: calc(72000vw / var(--top-figma-width));
  margin: 0 auto;
  padding: 8.33333vw 1.66667vw 5.55556vw;
  padding: calc(12000vw / var(--top-figma-width)) calc(2400vw / var(--top-figma-width)) calc(8000vw / var(--top-figma-width));
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .p-works-single__inner {
    padding: 9.6rem 2rem 6.4rem;
  }
}

.p-works-single__label {
  margin: 0 0 0.55556vw;
  margin: 0 0 calc(800vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 1.11111vw;
  font-size: calc(1600vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-single__label {
    font-size: 1.3rem;
  }
}

.p-works-single__title {
  margin: 0 0 2.22222vw;
  margin: 0 0 calc(3200vw / var(--top-figma-width));
  font-weight: 800;
  font-size: 2.77778vw;
  font-size: calc(4000vw / var(--top-figma-width));
  line-height: 1.3;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-single__title {
    margin-bottom: 2.4rem;
    font-size: 2.8rem;
  }
}

.p-works-single__thumb {
  overflow: hidden;
  margin-bottom: 1.66667vw;
  margin-bottom: calc(2400vw / var(--top-figma-width));
  border: 0.55556vw solid #000;
  border: calc(800vw / var(--top-figma-width)) solid #000;
  border-radius: 2.22222vw;
  border-radius: calc(3200vw / var(--top-figma-width));
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .p-works-single__thumb {
    border-width: 0.5rem;
    border-radius: 2rem;
  }
}

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

.p-works-single__link {
  margin: 0 0 1.66667vw;
  margin: 0 0 calc(2400vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works-single__link {
    font-size: 1.4rem;
  }
}
.p-works-single__link a {
  color: #000;
}

.p-works-single__content {
  margin-bottom: 2.77778vw;
  margin-bottom: calc(4000vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  line-height: 1.8;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-single__content {
    font-size: 1.4rem;
  }
}
.p-works-single__content > *:first-child {
  margin-top: 0;
}
.p-works-single__content > *:last-child {
  margin-bottom: 0;
}

.p-works-single__nav {
  margin: 0;
}
.p-works-single__nav a {
  font-weight: 700;
  font-size: 1.11111vw;
  font-size: calc(1600vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-single__nav a {
    font-size: 1.4rem;
  }
}

.p-works-pager {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 3.88889vw;
  margin-top: calc(5600vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works-pager {
    margin-top: 4rem;
  }
}

.p-works-pager__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.97222vw;
  gap: calc(1400vw / var(--top-figma-width));
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-works-pager__list {
    gap: 1rem;
  }
}

.p-works-pager__current,
.p-works-pager__link,
.p-works-pager__item--ellipsis {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  line-height: 1;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-pager__current,
  .p-works-pager__link,
  .p-works-pager__item--ellipsis {
    font-size: 1.4rem;
  }
}

.p-works-pager__current {
  display: grid;
  place-items: center;
  min-width: 2.5vw;
  min-width: calc(3600vw / var(--top-figma-width));
  height: 2.5vw;
  height: calc(3600vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works-pager__current {
    min-width: 2.8rem;
    height: 2.8rem;
  }
}

.p-works-pager__link {
  display: grid;
  place-items: center;
  width: 2.5vw;
  width: calc(3600vw / var(--top-figma-width));
  height: 2.5vw;
  height: calc(3600vw / var(--top-figma-width));
  border-radius: 50%;
  background: #fff;
  text-decoration: none;
}
@media only screen and (max-width: 767px) {
  .p-works-pager__link {
    width: 2.8rem;
    height: 2.8rem;
  }
}
.p-works-pager__link:hover {
  opacity: 1;
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
}

.p-works-pager__item--ellipsis {
  letter-spacing: 0.12em;
}

.p-works-pager__next {
  display: block;
  width: 2.5vw;
  width: calc(3600vw / var(--top-figma-width));
  height: 2.5vw;
  height: calc(3600vw / var(--top-figma-width));
  line-height: 0;
}
@media only screen and (max-width: 767px) {
  .p-works-pager__next {
    width: 2.8rem;
    height: 2.8rem;
  }
}
.p-works-pager__next img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-works-pager__next:hover {
  opacity: 1;
  -webkit-transform: translateX(3px);
          transform: translateX(3px);
}

.p-works-modal {
  width: 93.33333vw;
  width: calc(100vw - 9600vw / var(--top-figma-width));
  max-width: 50vw;
  max-width: calc(72000vw / var(--top-figma-width));
  max-height: 90vh;
  margin: auto;
  padding: 0.83333vw;
  padding: calc(1200vw / var(--top-figma-width));
  border: 0;
  background: transparent;
  overflow: visible;
  outline: none;
}
.p-works-modal:focus, .p-works-modal:focus-visible {
  outline: none;
}
@media only screen and (max-width: 767px) {
  .p-works-modal {
    width: calc(100vw - 3.2rem);
    max-width: none;
    max-height: 88vh;
    padding: 0.8rem;
  }
}
.p-works-modal::-webkit-backdrop {
  background: rgba(0, 0, 0, .45);
}
.p-works-modal::backdrop {
  background: rgba(0, 0, 0, .45);
}

.p-works-modal__frame {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  max-height: 84vh;
  padding: 1.94444vw 1.94444vw 2.22222vw;
  padding: calc(2800vw / var(--top-figma-width)) calc(2800vw / var(--top-figma-width)) calc(3200vw / var(--top-figma-width));
  border: 0.83333vw solid #000;
  border: calc(1200vw / var(--top-figma-width)) solid #000;
  border-radius: 1.94444vw;
  border-radius: calc(2800vw / var(--top-figma-width));
  background: #ffe0e7;
  -webkit-box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.69444vw 0.69444vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(1000vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__frame {
    max-height: 82vh;
    padding: 2rem 1.6rem 2rem;
    border-width: 0.6rem;
    border-radius: 1.6rem;
    -webkit-box-shadow: 0.6rem 0.6rem 0 rgba(0, 0, 0, .3);
            box-shadow: 0.6rem 0.6rem 0 rgba(0, 0, 0, .3);
  }
}

.p-works-modal__close {
  position: absolute;
  top: 1.11111vw;
  top: calc(1600vw / var(--top-figma-width));
  right: 1.11111vw;
  right: calc(1600vw / var(--top-figma-width));
  width: 2.77778vw;
  width: calc(4000vw / var(--top-figma-width));
  height: 2.77778vw;
  height: calc(4000vw / var(--top-figma-width));
  border: 0.27778vw solid #000;
  border: calc(400vw / var(--top-figma-width)) solid #000;
  border-radius: 50%;
  background: #87e641;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  cursor: pointer;
}
.p-works-modal__close:focus, .p-works-modal__close:focus-visible {
  outline: none;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__close {
    top: 1.2rem;
    right: 1.2rem;
    width: 3.2rem;
    height: 3.2rem;
    border-width: 0.3rem;
  }
}
.p-works-modal__close::before, .p-works-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 46%;
  height: 0.27778vw;
  height: calc(400vw / var(--top-figma-width));
  border-radius: 999px;
  background: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__close::before, .p-works-modal__close::after {
    height: 0.3rem;
  }
}
.p-works-modal__close::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.p-works-modal__close::after {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
.p-works-modal__close:hover {
  opacity: 1;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}

.p-works-modal__body {
  min-height: 0;
  overflow-y: auto;
  padding-top: 1.94444vw;
  padding-top: calc(2800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-works-modal__body {
    padding-top: 2.8rem;
  }
}

.p-works-modal__label {
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-size: 0.83333vw;
  font-size: calc(1200vw / var(--top-figma-width));
  line-height: 1.4;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__label {
    font-size: 1.1rem;
  }
}

.p-works-modal__title {
  margin: 0.27778vw 0 0;
  margin: calc(400vw / var(--top-figma-width)) 0 0;
  padding-right: 3.33333vw;
  padding-right: calc(4800vw / var(--top-figma-width));
  font-weight: 900;
  font-size: 1.94444vw;
  font-size: calc(2800vw / var(--top-figma-width));
  line-height: 1.3;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__title {
    margin-top: 0.2rem;
    padding-right: 4rem;
    font-size: 2.2rem;
  }
}

.p-works-modal__thumb {
  overflow: hidden;
  margin-top: 1.38889vw;
  margin-top: calc(2000vw / var(--top-figma-width));
  border: 0.55556vw solid #000;
  border: calc(800vw / var(--top-figma-width)) solid #000;
  border-radius: 1.25vw;
  border-radius: calc(1800vw / var(--top-figma-width));
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__thumb {
    margin-top: 1.6rem;
    border-width: 0.5rem;
    border-radius: 1.2rem;
  }
}

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

.p-works-modal__specs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.11111vw;
  gap: calc(1600vw / var(--top-figma-width));
  margin: 1.66667vw 0 0;
  margin: calc(2400vw / var(--top-figma-width)) 0 0;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__specs {
    gap: 1.4rem;
    margin-top: 1.8rem;
  }
}

.p-works-modal__spec {
  display: grid;
  grid-template-columns: 6.11111vw minmax(0, 1fr);
  grid-template-columns: calc(8800vw / var(--top-figma-width)) minmax(0, 1fr);
  gap: 0.83333vw;
  gap: calc(1200vw / var(--top-figma-width));
  -webkit-box-align: start;
  -webkit-align-items: start;
      -ms-flex-align: start;
          align-items: start;
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__spec {
    grid-template-columns: 7.2rem minmax(0, 1fr);
    gap: 1rem;
  }
}

.p-works-modal__spec-label {
  margin: 0;
  font-weight: 900;
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__spec-label {
    font-size: 1.2rem;
  }
}

.p-works-modal__spec-label--en {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.04em;
}

.p-works-modal__spec-value {
  margin: 0;
  font-weight: 700;
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  line-height: 1.7;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__spec-value {
    font-size: 1.3rem;
  }
}

.p-works-modal__site {
  margin: 1.66667vw 0 0;
  margin: calc(2400vw / var(--top-figma-width)) 0 0;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__site {
    margin-top: 2rem;
  }
}
.p-works-modal__site a {
  display: inline-block;
  padding: 0.69444vw 1.66667vw;
  padding: calc(1000vw / var(--top-figma-width)) calc(2400vw / var(--top-figma-width));
  border: 0.27778vw solid #000;
  border: calc(400vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #87e641;
  font-weight: 800;
  font-size: 1.11111vw;
  font-size: calc(1600vw / var(--top-figma-width));
  line-height: 1;
  color: #000;
  text-decoration: none;
}
@media only screen and (max-width: 767px) {
  .p-works-modal__site a {
    padding: 1rem 1.8rem;
    border-width: 0.3rem;
    font-size: 1.4rem;
  }
}
.p-works-modal__site a:hover {
  opacity: 1;
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
}

.p-works-end {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: calc(100vh - 30.38194vw);
  height: calc(100vh - 43750vw / var(--top-figma-width));
  margin-bottom: 25.9375vw;
  margin-bottom: calc(37350vw / var(--top-figma-width));
  padding: 20.83333vw 3.33333vw 0;
  padding: calc(30000vw / var(--top-figma-width)) calc(4800vw / var(--top-figma-width)) 0;
}
@media (max-width: 1199px) {
  .p-works-end {
    margin-bottom: calc(27.1875vw - 1.5rem);
    margin-bottom: calc(39150vw / var(--top-figma-width) - 1.5rem);
  }
}
@media only screen and (max-width: 767px) {
  .p-works-end {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    height: calc(100vh - 37.4vw);
    height: calc(100vh - 53856vw / var(--top-figma-width));
    margin-bottom: calc(37.4vw - 4.5rem);
    margin-bottom: calc(53856vw / var(--top-figma-width) - 4.5rem);
    padding: 15rem 2rem 0;
  }
}

.p-works-end__menu {
  margin-bottom: 6rem;
}
@media only screen and (max-width: 767px) {
  .p-works-end__menu {
    margin-bottom: 0;
  }
}

.p-works-end__menu-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-works-end__menu-item a {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 2.6rem;
  line-height: 1.15;
  letter-spacing: 0.04em;
  color: #000;
  text-decoration: none;
}
.p-works-end__menu-item a:hover {
  opacity: 1;
  -webkit-transform: scale(1.06);
          transform: scale(1.06);
}

.p-works-end__privacy {
  display: inline-block;
  margin-top: 1.8rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.3rem;
  line-height: 1.15;
  letter-spacing: 0.04em;
  color: #000;
  text-decoration: none;
}
.p-works-end__privacy:hover {
  opacity: 1;
  -webkit-transform: scale(1.06);
          transform: scale(1.06);
}

.p-works-end__sns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 1.4rem;
  margin: 1.6rem 0 0;
  padding: 0;
  list-style: none;
}
.p-works-end__sns a {
  display: block;
  line-height: 0;
}
.p-works-end__sns img {
  display: block;
  width: 2.2rem;
  height: auto;
}

.p-works-end__contact {
  position: relative;
  z-index: 26;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.83333vw;
  gap: calc(1200vw / var(--top-figma-width));
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0;
  padding: 2.08333vw 4.16667vw;
  padding: calc(3000vw / var(--top-figma-width)) calc(6000vw / var(--top-figma-width));
  border: 1.04167vw solid #000;
  border: calc(1500vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #ffe6e6;
  font-weight: 900;
  font-size: 4.02778vw;
  font-size: calc(5800vw / var(--top-figma-width));
  line-height: 1.2;
  color: #000;
  text-decoration: none;
  white-space: nowrap;
  -webkit-filter: drop-shadow(0.55556vw 0.55556vw 0 rgba(0, 0, 0, .35));
          filter: drop-shadow(0.55556vw 0.55556vw 0 rgba(0, 0, 0, .35));
  -webkit-filter: drop-shadow(calc(800vw / var(--top-figma-width)) calc(800vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .35));
          filter: drop-shadow(calc(800vw / var(--top-figma-width)) calc(800vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .35));
  -webkit-transition: opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 1.35s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 1.35s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1), transform 1.35s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1), transform 1.35s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.35s cubic-bezier(0.16, 1, 0.3, 1);
}
@media only screen and (max-width: 767px) {
  .p-works-end__contact {
    gap: 1rem;
    margin-inline: auto;
    padding: 1.2rem 1.8rem 1.2rem 1.2rem;
    border-width: 0.6rem;
    font-size: 2.5rem;
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="0" /><feOffset dx="17" dy="17" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.35)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
    -webkit-filter: drop-shadow(0.5rem 0.5rem 0 rgba(0, 0, 0, .35));
            filter: drop-shadow(0.5rem 0.5rem 0 rgba(0, 0, 0, .35));
  }
}
.p-works-end__contact > * {
  position: relative;
  z-index: 2;
}
.p-works-end__contact img {
  display: block;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: 3.95833vw;
  width: calc(5700vw / var(--top-figma-width));
  height: auto;
}
@media only screen and (max-width: 767px) {
  .p-works-end__contact img {
    width: 3.6rem;
  }
}
.p-works-end__contact::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2.77778vw;
  bottom: calc(-4000vw / var(--top-figma-width));
  z-index: 0;
  width: 4.44444vw;
  width: calc(6400vw / var(--top-figma-width));
  height: 3.75vw;
  height: calc(5400vw / var(--top-figma-width));
  margin-left: -2.22222vw;
  margin-left: calc(6400vw / var(--top-figma-width) / -2);
  background: url("../images/common/speech_before.svg") no-repeat center/contain;
}
@media only screen and (max-width: 767px) {
  .p-works-end__contact::before {
    bottom: -2.2rem;
    width: 3.6rem;
    height: 3.2rem;
    margin-left: -1.8rem;
    background-image: url("../images/common/speech_before_sp.svg");
  }
}
.p-works-end__contact::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: #ffe6e6;
  pointer-events: none;
}
.p-works-end__contact:hover {
  opacity: 1;
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
  -webkit-transition-duration: 0.25s;
          transition-duration: 0.25s;
}

.p-works-end.is-animate .p-works-end__contact:not(.is-in) {
  opacity: 0;
  -webkit-transform: translateY(6.66667vw);
          transform: translateY(6.66667vw);
  -webkit-transform: translateY(calc(9600vw / var(--top-figma-width)));
          transform: translateY(calc(9600vw / var(--top-figma-width)));
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-works-end.is-animate .p-works-end__contact:not(.is-in) {
    -webkit-transform: translateY(7.2rem);
            transform: translateY(7.2rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-works-end__contact {
    -webkit-transition: none;
    transition: none;
  }
  .p-works-end.is-animate .p-works-end__contact:not(.is-in) {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
    pointer-events: auto;
  }
}
.p-news {
  position: relative;
  z-index: 2;
  min-height: 100svh;
  padding-block: 4.16667vw 5.27778vw;
  padding-block: calc(6000vw / var(--top-figma-width)) calc(7600vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news {
    padding-block: 11.6rem 5rem;
    margin-top: -8rem;
  }
}

.p-news__title-box {
  width: 100%;
  margin: 0 0 1.94444vw;
  margin: 0 0 calc(2800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news__title-box {
    margin-bottom: 2.8rem;
  }
}

.p-news__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.19444vw;
  gap: calc(4600vw / var(--top-figma-width));
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-news__list {
    gap: 2.8rem;
    padding-inline: 0.5rem;
  }
}

.p-news__item {
  width: 100%;
  min-width: 0;
}

.p-news__link {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.97222vw;
  gap: calc(1400vw / var(--top-figma-width));
  width: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 1.52778vw 0 1.52778vw 1.52778vw;
  padding: calc(2200vw / var(--top-figma-width)) 0 calc(2200vw / var(--top-figma-width)) calc(2200vw / var(--top-figma-width));
  border: 0.55556vw solid #000;
  border: calc(800vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #ffe6e6;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
  text-decoration: none;
  color: #000;
  -webkit-transition: background 0.3s ease-in-out;
  transition: background 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .p-news__link {
    gap: 1.2rem;
    padding: 0.8rem 1.2rem;
    border-width: 0.3rem;
    -webkit-box-shadow: 0.4rem 0.4rem 0 rgba(0, 0, 0, .3);
            box-shadow: 0.4rem 0.4rem 0 rgba(0, 0, 0, .3);
  }
}
.p-news__link:hover {
  opacity: 1;
  background: #ffcdcd;
}

.p-news__icon-wrap {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-news__icon {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  display: block;
  width: 2.36111vw;
  width: calc(3400vw / var(--top-figma-width));
  height: 2.36111vw;
  height: calc(3400vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news__icon {
    width: 2.3rem;
    height: 2.3rem;
  }
}

.p-news__text-wrap {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  overflow: hidden;
  gap: 0.90278vw;
  gap: calc(1300vw / var(--top-figma-width));
}

.p-news__date {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  font-family: "Poppins", sans-serif;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  font-weight: 900;
  line-height: 1.6;
  white-space: nowrap;
}
@media only screen and (max-width: 767px) {
  .p-news__date {
    font-size: 1.6rem;
  }
}

.p-news__title-wrap {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  overflow: hidden;
}

.p-news__title {
  display: inline-block;
  max-width: 100%;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  font-weight: 900;
  line-height: 1.6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
@media only screen and (max-width: 767px) {
  .p-news__title {
    font-size: 1.6rem;
  }
}
.p-news__title.is-marquee {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .p-news__title.is-marquee {
    -webkit-transform: none !important;
            transform: none !important;
  }
}
.p-news__view-more {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 4.16667vw;
  margin-top: calc(6000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news__view-more {
    margin-top: 3.6rem;
  }
}

.p-news__view-more-button {
  display: inline-block;
  padding: 0.69444vw 2.08333vw;
  padding: calc(1000vw / var(--top-figma-width)) calc(3000vw / var(--top-figma-width));
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  line-height: 1;
  color: #000;
  text-decoration: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: transparent;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .p-news__view-more-button {
    padding: 0.7rem 1.8rem;
    border-width: 0.4rem;
    font-size: 1.6rem;
  }
}
.p-news__view-more-button:hover {
  opacity: 1;
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
}

.p-news__empty {
  margin: 0;
  font-weight: 700;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-news__empty {
    font-size: 1.4rem;
  }
}

/* お知らせ一覧 */
.p-news--archive {
  margin-top: 0;
  padding-top: 13.88889vw;
  padding-top: calc(20000vw / var(--top-figma-width));
  padding-bottom: 2.77778vw;
  padding-bottom: calc(4000vw / var(--top-figma-width));
  min-height: 0;
}
@media only screen and (max-width: 767px) {
  .p-news--archive {
    height: 100vh;
    margin-top: 0;
    padding-top: 26.2rem;
    padding-bottom: 2.4rem;
  }
}

.p-news__inner-archive {
  max-width: 51.73611vw;
  max-width: calc(74500vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news__inner-archive {
    max-width: 59rem;
  }
}

.p-news--single {
  margin-top: 0;
  min-height: 0;
  padding-top: 18.75vw;
  padding-top: calc(27000vw / var(--top-figma-width));
  padding-bottom: 0.55556vw;
  padding-bottom: calc(800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news--single {
    height: auto;
    margin-top: 0;
    padding-top: 10.8rem;
    padding-bottom: 0;
  }
}
.p-news--single {
  /* 詳細はパンくずがタイトル分だけ高い。SPは固定せず、本文にぼかしをかぶせない */
}
@media only screen and (max-width: 767px) {
  .p-news--single .c-page-head {
    position: static;
    top: auto;
    right: auto;
    z-index: auto;
    margin-bottom: 2.4rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .p-news--single .c-page-head::before {
    content: none;
  }
  .p-news--single .c-page-head .c-breadcrumb__list {
    padding-left: 0;
  }
  .p-news--single .c-page-head.is-scrolled {
    top: auto;
  }
  .p-news--single .c-page-head.is-scrolled .c-section-title__text {
    font-size: 1.6rem;
  }
  .p-news--single .c-page-head.is-scrolled .c-section-title__title {
    font-size: 5.2rem;
  }
  .p-news--single .c-page-head.is-scrolled .c-breadcrumb__list {
    font-size: 1.1rem;
  }
}

.p-news-single__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.94444vw;
  gap: calc(2800vw / var(--top-figma-width));
  max-width: 51.73611vw;
  max-width: calc(74500vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news-single__inner {
    gap: 1.6rem;
    max-width: 59rem;
  }
}

.p-news-single__head,
.p-news-single__thumb,
.p-news-single__body {
  width: 100%;
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 1.11111vw;
  border-radius: calc(1600vw / var(--top-figma-width));
  background: #ffe6e6;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .p-news-single__head,
  .p-news-single__thumb,
  .p-news-single__body {
    border-width: 0.3rem;
    border-radius: 1.2rem;
  }
}

.p-news-single__head {
  padding: 1.80556vw 2.22222vw;
  padding: calc(2600vw / var(--top-figma-width)) calc(3200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news-single__head {
    padding: 1.6rem 1.8rem;
  }
}

.p-news-single__date,
.p-news-single__title {
  margin: 0;
  font-weight: 900;
  font-size: 1.94444vw;
  font-size: calc(2800vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-news-single__date,
  .p-news-single__title {
    font-size: 1.6rem;
    line-height: 1.6;
  }
}

.p-news-single__date {
  display: block;
  font-family: "Poppins", sans-serif;
}

.p-news-single__title {
  font-weight: 900;
}

.p-news-single__thumb {
  overflow: hidden;
  line-height: 0;
  background: #fff;
}

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

.p-news-single__body {
  padding: 2.5vw 2.77778vw;
  padding: calc(3600vw / var(--top-figma-width)) calc(4000vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 1.94444vw;
  font-size: calc(2800vw / var(--top-figma-width));
  line-height: 1.7;
  color: #000;
  word-wrap: break-word;
}
@media only screen and (max-width: 767px) {
  .p-news-single__body {
    padding: 1.8rem 1.6rem;
    font-size: 1.6rem;
    line-height: 1.7;
  }
}
.p-news-single__body > :first-child {
  margin-top: 0;
}
.p-news-single__body > :last-child {
  margin-bottom: 0;
}
.p-news-single__body h2,
.p-news-single__body h3,
.p-news-single__body h4,
.p-news-single__body p,
.p-news-single__body ul,
.p-news-single__body ol,
.p-news-single__body figure,
.p-news-single__body blockquote {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}
.p-news-single__body p + p,
.p-news-single__body ul + p,
.p-news-single__body ol + p,
.p-news-single__body figure + p,
.p-news-single__body p + ul,
.p-news-single__body p + ol,
.p-news-single__body p + figure {
  margin-top: 0.85em;
}
.p-news-single__body h2,
.p-news-single__body h3,
.p-news-single__body h4 {
  margin-top: 1.15em;
  margin-bottom: 0.35em;
}
.p-news-single__body a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  color: #fa4169;
}
.p-news-single__body a:hover {
  opacity: 0.7;
}
.p-news-single__body ul,
.p-news-single__body ol {
  padding-left: 1.4em;
}
.p-news-single__body ul {
  list-style: disc;
}
.p-news-single__body ol {
  list-style: decimal;
}
.p-news-single__body li + li {
  margin-top: 0.35em;
}
.p-news-single__body img {
  display: block;
  max-width: 100%;
  height: auto;
}

.p-news-single__back {
  margin: 0.27778vw 0 0;
  margin: calc(400vw / var(--top-figma-width)) 0 0;
}
@media only screen and (max-width: 767px) {
  .p-news-single__back {
    margin-top: 0.8rem;
  }
}

.p-news-single__back-link {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.69444vw;
  gap: calc(1000vw / var(--top-figma-width));
  padding: 0.69444vw 1.52778vw 0.69444vw 0.83333vw;
  padding: calc(1000vw / var(--top-figma-width)) calc(2200vw / var(--top-figma-width)) calc(1000vw / var(--top-figma-width)) calc(1200vw / var(--top-figma-width));
  border: 0.27778vw solid #000;
  border: calc(400vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #ffe6e6;
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-size: 1.38889vw;
  font-size: calc(2000vw / var(--top-figma-width));
  line-height: 1;
  letter-spacing: 0.04em;
  color: #000;
  text-decoration: none;
}
@media only screen and (max-width: 767px) {
  .p-news-single__back-link {
    gap: 0.8rem;
    padding: 0.7rem 1.6rem 0.7rem 0.8rem;
    border-width: 0.3rem;
    font-size: 1.4rem;
  }
}
.p-news-single__back-link img {
  display: block;
  width: 2.22222vw;
  width: calc(3200vw / var(--top-figma-width));
  height: auto;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
@media only screen and (max-width: 767px) {
  .p-news-single__back-link img {
    width: 2.2rem;
  }
}
.p-news-single__back-link:hover {
  opacity: 1;
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
}

.p-news-end {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 5.55556vw 3.33333vw 25vw;
  padding: calc(8000vw / var(--top-figma-width)) calc(4800vw / var(--top-figma-width)) calc(36000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-news-end {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    height: calc(100vh - 37.4vw);
    height: calc(100vh - 53856vw / var(--top-figma-width));
    margin-bottom: calc(37.4vw - 4.5rem);
    margin-bottom: calc(53856vw / var(--top-figma-width) - 4.5rem);
    padding: 15rem 2rem 0;
  }
}

/* 詳細はタイトルでパンくずが伸びるので、その高さ分だけ下端の上余白を足す */
.p-news--single + .p-news-end {
  padding-top: 5.55556vw;
  padding-top: calc(8000vw / var(--top-figma-width) + var(--c-breadcrumb-height, 0px));
}
@media only screen and (max-width: 767px) {
  .p-news--single + .p-news-end {
    padding-top: 15rem;
  }
}

.p-about {
  position: relative;
  /* z-index は付けない。付けるとラインまでキャラ（25）より前に閉じる */
  min-height: 100svh;
  padding-block: 3.33333vw 5.55556vw;
  padding-block: calc(4800vw / var(--top-figma-width)) calc(8000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-about {
    padding-block: 9.6rem 5.6rem;
    /* 縁や本文が画面幅を押し広げない。PC の下線は枠の外へ伸ばすので SP だけ */
    max-width: 100%;
    overflow-x: clip;
  }
}

.p-about__title-box {
  position: relative;
  z-index: 26; /* キャラ(25)より前、ナビ(35)より後ろ */
  width: 100%;
  margin: 0 0 1.25vw;
  margin: 0 0 calc(1800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-about__title-box {
    margin-bottom: 1.2rem;
  }
}

.p-about__frame {
  position: relative;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .p-about__frame {
    max-width: none;
  }
}

.p-about__line {
  position: absolute;
  z-index: 1; /* 追従キャラ（z-index: 25）より後ろ */
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.p-about__line-path {
  fill: none;
  stroke: #000;
  stroke-width: 0.69444vw;
  stroke-width: calc(1000vw / var(--top-figma-width));
  stroke-linecap: butt;
  stroke-linejoin: round;
}
@media only screen and (max-width: 767px) {
  .p-about__line-path {
    stroke-width: 0.5rem;
  }
}

.p-about__content {
  position: relative;
  z-index: 26; /* キャラより前。本文の縁取りはここから前に出る */
  width: 100%;
  padding: 0.41667vw 0 2.08333vw 2.77778vw;
  padding: calc(600vw / var(--top-figma-width)) 0 calc(3000vw / var(--top-figma-width)) calc(4000vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-about__content {
    padding: 0.6rem 0 2rem 2.2rem;
  }
}

.p-about__name {
  margin: 0;
  max-width: 100%;
  word-wrap: anywhere;
  font-weight: 900;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-about__name {
    font-size: 1.9rem;
  }
}

.p-about__name-en {
  max-width: 100%;
  word-wrap: anywhere;
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-size: 1.52778vw;
  font-size: calc(2200vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-about__name-en {
    font-size: 1.1rem;
  }
}

.p-about__text {
  /* 幅は本文（fill）だけで決める。縁は絶対配置で重ね、文字より後ろに置く。
     grid だと iOS が縁のストロークを最小幅に含め、1文字ずつ出す途中で枠の外へ広がる */
  position: relative;
  isolation: isolate;
  contain: inline-size;
  min-width: 0;
  margin-top: 1.3rem;
  width: 100%;
  max-width: 35.76389vw;
  max-width: calc(51500vw / var(--top-figma-width));
  font-weight: 900;
  font-size: 1.45833vw;
  font-size: calc(2100vw / var(--top-figma-width));
  line-height: 1.6;
  /* 縁が隣の字に入らないよう、縁の太さと同じだけ空ける */
  letter-spacing: 0.13889vw;
  letter-spacing: calc(200vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-about__text {
    margin-top: 1rem;
    width: 66%;
    max-width: 66%;
    font-size: 1.4rem;
    line-height: 1.6;
    letter-spacing: 0.2rem;
    word-wrap: anywhere;
  }
}

.p-about__text-stroke,
.p-about__text-fill {
  min-width: 0;
  max-width: 100%;
}

.p-about__text-stroke {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  color: #ffe0e7;
  -webkit-text-stroke: 0.55556vw #ffe0e7;
  -webkit-text-stroke: calc(800vw / var(--top-figma-width)) #ffe0e7;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-about__text-stroke {
    -webkit-text-stroke-width: 0.4rem;
  }
}

.p-about__text-fill {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
}

.p-about__char {
  /* opacity だと iOS が見えていない字の幅を捨て、出てくるたびに行が右へ伸びる */
  visibility: hidden;
}

.p-about__char.is-on {
  visibility: visible;
}

.p-about__caret {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 0.13889vw;
  width: calc(200vw / var(--top-figma-width));
  height: 1em;
  margin-left: 0.13889vw;
  margin-left: calc(200vw / var(--top-figma-width));
  background: #000;
  opacity: 0;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-about__caret {
    width: 0.15rem;
    margin-left: 0.1rem;
  }
}
.p-about__caret.is-on {
  -webkit-animation: about-caret-blink 0.9s steps(1) infinite;
          animation: about-caret-blink 0.9s steps(1) infinite;
}

.p-about__sns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.97222vw;
  gap: calc(1400vw / var(--top-figma-width));
  margin: 1.59722vw 0 0;
  margin: calc(2300vw / var(--top-figma-width)) 0 0;
  padding: 0;
  list-style: none;
  opacity: 0;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-about__sns {
    gap: 1.4rem;
    margin-top: 1.2rem;
  }
}
.p-about__sns a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1.45833vw;
  width: calc(2100vw / var(--top-figma-width));
  height: 1.45833vw;
  height: calc(2100vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-about__sns a {
    width: 2.4rem;
    height: 2.4rem;
  }
}
.p-about__sns a:hover {
  opacity: 0.7;
}
.p-about__sns img {
  display: block;
  width: 100%;
  height: auto;
}

@-webkit-keyframes about-caret-blink {
  0%, 45% {
    opacity: 1;
  }
  50%, 100% {
    opacity: 0;
  }
}

@keyframes about-caret-blink {
  0%, 45% {
    opacity: 1;
  }
  50%, 100% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-about__char,
  .p-about__sns {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
  .p-about__caret {
    display: none;
  }
}
.p-partner {
  position: relative;
  /* セクション全体をキャラ（z-index: 25）より後ろに閉じる */
  z-index: 2;
  min-height: 100svh;
  padding-block: 2.5vw 5vw;
  padding-block: calc(3600vw / var(--top-figma-width)) calc(7200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-partner {
    padding-block: 4.8rem 6.4rem;
  }
}

.p-partner__title-box {
  width: 100%;
  margin: 0 0 1.52778vw;
  margin: 0 0 calc(2200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-partner__title-box {
    margin-bottom: 1.6rem;
  }
}

.p-partner__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.80556vw 1.38889vw;
  gap: calc(2600vw / var(--top-figma-width)) calc(2000vw / var(--top-figma-width));
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .p-partner__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem 1.2rem;
  }
}

.p-partner__card {
  display: block;
  color: #000;
  text-decoration: none;
}
.p-partner__card:hover {
  opacity: 1;
}
.p-partner__card:hover .p-partner__media img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.p-partner__media {
  /* 画像は絶対配置。縦横比が枠の幅・高さに影響しない */
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  --partner-media-pad: 1.11111vw;
  --partner-media-pad: calc(1600vw / var(--top-figma-width));
  border: 0.55556vw solid #000;
  border: calc(800vw / var(--top-figma-width)) solid #000;
  border-radius: 1.52778vw;
  border-radius: calc(2200vw / var(--top-figma-width));
  background: #ffe6e6;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
}
@media only screen and (max-width: 767px) {
  .p-partner__media {
    --partner-media-pad: 1.2rem;
    border-width: 0.4rem;
    border-radius: 1.6rem;
  }
}

.p-partner__media-inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: var(--partner-media-pad);
  padding: var(--partner-media-pad);
}

.p-partner__img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  max-height: none;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}

.p-partner__meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 0.55556vw;
  gap: calc(800vw / var(--top-figma-width));
  margin-top: 0.55556vw;
  margin-top: calc(800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-partner__meta {
    gap: 0.6rem;
    margin-top: 0.6rem;
  }
}

.p-partner__name {
  min-width: 0;
  overflow: hidden;
  font-weight: 700;
  font-size: 0.90278vw;
  font-size: calc(1300vw / var(--top-figma-width));
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-partner__name {
    font-size: 1.2rem;
  }
}

.p-partner__arrow {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  display: block;
  width: 1.52778vw;
  width: calc(2200vw / var(--top-figma-width));
  height: 1.52778vw;
  height: calc(2200vw / var(--top-figma-width));
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
@media only screen and (max-width: 767px) {
  .p-partner__arrow {
    width: 2.2rem;
    height: 2.2rem;
  }
}

.p-contact {
  position: relative;
  z-index: 2;
  padding-block: 1.94444vw 29.30556vw;
  padding-block: calc(2800vw / var(--top-figma-width)) calc(42200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-contact {
    padding-block: 1.2rem 15.8rem;
  }
}

.p-contact__title-box {
  width: 100%;
  margin: 0 0 1.25vw;
  margin: 0 0 calc(1800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-contact__title-box {
    margin-bottom: 1.6rem;
  }
}

.p-contact__lead {
  margin: 0 0 2.98611vw;
  margin: 0 0 calc(4300vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-contact__lead {
    margin-bottom: 3.2rem;
  }
}
.p-contact__lead p {
  margin: 0;
  font-weight: 900;
  font-size: 1.18056vw;
  font-size: calc(1700vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-contact__lead p {
    font-size: 1.4rem;
    line-height: 1.6;
  }
}
.p-contact__lead .p-contact__note {
  margin-top: 0.83333vw;
  margin-top: calc(1200vw / var(--top-figma-width));
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  font-weight: 600;
  line-height: 1.6;
}
@media only screen and (max-width: 767px) {
  .p-contact__lead .p-contact__note {
    margin-top: 1.2rem;
    font-size: 1.2rem;
  }
}

.p-contact__form {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.66667vw;
  gap: calc(2400vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-contact__form {
    gap: 1.4rem;
  }
}

.p-contact__field {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.83333vw;
  gap: calc(1200vw / var(--top-figma-width));
  margin: 0;
}

.p-contact__label {
  font-weight: 900;
  font-size: 1.18056vw;
  font-size: calc(1700vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-contact__label {
    font-size: 1.4rem;
  }
}

.p-contact .wpcf7-form-control-wrap {
  display: block;
}

.p-contact__control {
  display: block;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 0.76389vw;
  border-radius: calc(1100vw / var(--top-figma-width));
  background-color: #fee6e4;
  padding: 1.18056vw 1.52778vw;
  padding: calc(1700vw / var(--top-figma-width)) calc(2200vw / var(--top-figma-width));
  font-family: inherit;
  font-weight: 900;
  font-size: 1.18056vw;
  font-size: calc(1700vw / var(--top-figma-width));
  line-height: 1.6;
  color: #000;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  outline: none;
}
.p-contact__control:focus, .p-contact__control:focus-visible {
  outline: none;
}
@media only screen and (max-width: 767px) {
  .p-contact__control {
    border-width: 0.4rem;
    border-radius: 1.1rem;
    padding: 0.9rem 1.6rem;
    /* 16px未満だと iOS Safari が入力時に拡大する。390px以下は rem が縮むので px 固定 */
    font-size: 16px;
  }
}
.p-contact__control::-webkit-input-placeholder {
  color: rgba(0, 0, 0, .3);
  opacity: 1;
}
.p-contact__control::-moz-placeholder {
  color: rgba(0, 0, 0, .3);
  opacity: 1;
}
.p-contact__control::-ms-input-placeholder {
  color: rgba(0, 0, 0, .3);
  opacity: 1;
}
.p-contact__control::placeholder {
  color: rgba(0, 0, 0, .3);
  opacity: 1;
}

select.p-contact__control {
  padding-right: 3.33333vw;
  padding-right: calc(4800vw / var(--top-figma-width));
  background-image: url("../images/common/icon_arrow-select.svg");
  background-repeat: no-repeat;
  background-position: right 1.73611vw center;
  background-position: right calc(2500vw / var(--top-figma-width)) center;
  background-size: 0.83333vw 0.55556vw;
  background-size: calc(1200vw / var(--top-figma-width)) calc(800vw / var(--top-figma-width));
  cursor: pointer;
}
@media only screen and (max-width: 767px) {
  select.p-contact__control {
    padding-right: 2.5rem;
    background-position: right 1.6rem center;
    background-size: 1rem 0.7rem;
  }
}
select.p-contact__control:has(option[value=""]:checked) {
  color: #000;
}
select.p-contact__control option {
  color: #000;
}

textarea.p-contact__control {
  min-height: 15.27778vw;
  min-height: calc(22000vw / var(--top-figma-width));
  border-radius: 0.76389vw;
  border-radius: calc(1100vw / var(--top-figma-width));
  resize: vertical;
}
@media only screen and (max-width: 767px) {
  textarea.p-contact__control {
    min-height: 15rem;
    border-radius: 1.1rem;
  }
}

.p-contact__actions {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.83333vw;
  gap: calc(1200vw / var(--top-figma-width));
  margin-top: 0.83333vw;
  margin-top: calc(1200vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-contact__actions {
    gap: 1rem;
    margin-top: 1rem;
  }
}

.p-contact__privacy {
  margin: 0;
  font-weight: 700;
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  line-height: 1.6;
  text-align: center;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-contact__privacy {
    font-size: 1.2rem;
  }
}
.p-contact__privacy a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.p-contact__privacy a:hover {
  opacity: 0.7;
}

.p-contact__submit {
  display: inline-block;
  min-width: 13.19444vw;
  min-width: calc(19000vw / var(--top-figma-width));
  margin: 0;
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 69.375vw;
  border-radius: calc(99900vw / var(--top-figma-width));
  background: #87e641;
  padding: 0.69444vw 3.33333vw;
  padding: calc(1000vw / var(--top-figma-width)) calc(4800vw / var(--top-figma-width));
  font-family: inherit;
  font-weight: 900;
  font-size: 2.22222vw;
  font-size: calc(3200vw / var(--top-figma-width));
  line-height: 1.4;
  color: #000;
  -webkit-box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
          box-shadow: 0.41667vw 0.41667vw 0 rgba(0, 0, 0, .3);
  -webkit-box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
          box-shadow: calc(600vw / var(--top-figma-width)) calc(600vw / var(--top-figma-width)) 0 rgba(0, 0, 0, .3);
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  outline: none;
  -webkit-transition: background 0.3s ease-in-out;
  transition: background 0.3s ease-in-out;
}
.p-contact__submit:focus, .p-contact__submit:focus-visible {
  outline: none;
}
@media only screen and (max-width: 767px) {
  .p-contact__submit {
    min-width: 11.1rem;
    border-width: 0.4rem;
    padding: 0.7rem 0.85rem;
    font-size: 1.6rem;
  }
}
.p-contact__submit:hover {
  opacity: 1;
  background: #ffd700;
}

/* 非表示でも幅を持つので、ボタンが左に寄る */
.p-contact .wpcf7-spinner {
  display: none;
}

.p-contact .wpcf7-not-valid-tip {
  margin-top: 0.27778vw;
  margin-top: calc(400vw / var(--top-figma-width));
  font-size: 0.90278vw;
  font-size: calc(1300vw / var(--top-figma-width));
  font-weight: 700;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-contact .wpcf7-not-valid-tip {
    font-size: 1.2rem;
  }
}

/* 入力フォーカスで html:focus-within が scroll-behavior: smooth になる。
   自動入力バーやキーボードで画面高さが変わる途中のスムーススクロールは目標が下にずれ、
   フォーム最下部まで進んでから上へ戻る。SP のフォーム操作中だけ即時スクロールにする。 */
@media only screen and (max-width: 767px) {
  html:has(.p-contact:focus-within) {
    scroll-behavior: auto;
  }
}
.p-contact .wpcf7-response-output {
  margin: 1.38889vw 0 0;
  margin: calc(2000vw / var(--top-figma-width)) 0 0;
  border: 0.20833vw solid #000;
  border: calc(300vw / var(--top-figma-width)) solid #000;
  border-radius: 1.11111vw;
  border-radius: calc(1600vw / var(--top-figma-width));
  background: #fee6e4;
  padding: 0.83333vw 1.11111vw;
  padding: calc(1200vw / var(--top-figma-width)) calc(1600vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  color: #000;
}
@media only screen and (max-width: 767px) {
  .p-contact .wpcf7-response-output {
    margin-top: 1.6rem;
    border-width: 0.3rem;
    border-radius: 1.2rem;
    padding: 1rem 1.2rem;
    font-size: 1.3rem;
  }
}

.p-privacy {
  position: relative;
  z-index: 2;
  margin-top: 0;
  min-height: 0;
  padding-top: 26.38889vw;
  padding-top: calc(38000vw / var(--top-figma-width));
  padding-bottom: 0.55556vw;
  padding-bottom: calc(800vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-privacy {
    height: auto;
    margin-top: 0;
    padding-top: 10.8rem;
    padding-bottom: 0;
  }
}
.p-privacy .c-section-title__title {
  max-width: 7em;
  margin-left: auto;
}
@media only screen and (max-width: 767px) {
  .p-privacy .c-page-head {
    position: static;
    top: auto;
    right: auto;
    z-index: auto;
    margin-bottom: 2.4rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .p-privacy .c-page-head::before {
    content: none;
  }
  .p-privacy .c-page-head .c-breadcrumb__list {
    padding-left: 0;
  }
  .p-privacy .c-page-head .c-section-title__title {
    font-size: 4.4rem;
  }
  .p-privacy .c-page-head.is-scrolled {
    top: auto;
  }
  .p-privacy .c-page-head.is-scrolled .c-section-title__text {
    font-size: 1.6rem;
  }
  .p-privacy .c-page-head.is-scrolled .c-section-title__title {
    font-size: 4.4rem;
  }
  .p-privacy .c-page-head.is-scrolled .c-breadcrumb__list {
    font-size: 1.1rem;
  }
}

.p-privacy__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 51.73611vw;
  max-width: calc(74500vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-privacy__inner {
    max-width: 59rem;
  }
}

.p-privacy__body {
  width: 100%;
  border: 0.41667vw solid #000;
  border: calc(600vw / var(--top-figma-width)) solid #000;
  border-radius: 1.11111vw;
  border-radius: calc(1600vw / var(--top-figma-width));
  background: #ffe6e6;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 2.5vw 2.77778vw;
  padding: calc(3600vw / var(--top-figma-width)) calc(4000vw / var(--top-figma-width));
  font-weight: 700;
  font-size: 1.94444vw;
  font-size: calc(2800vw / var(--top-figma-width));
  line-height: 1.7;
  color: #000;
  word-wrap: break-word;
}
@media only screen and (max-width: 767px) {
  .p-privacy__body {
    border-width: 0.3rem;
    border-radius: 1.2rem;
    padding: 1.8rem 1.6rem;
    font-size: 1.6rem;
    line-height: 1.7;
  }
}
.p-privacy__body > :first-child {
  margin-top: 0;
}
.p-privacy__body > :last-child {
  margin-bottom: 0;
}
.p-privacy__body h2,
.p-privacy__body p,
.p-privacy__body ul {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}
.p-privacy__body p + p,
.p-privacy__body ul + p,
.p-privacy__body p + ul {
  margin-top: 0.85em;
}
.p-privacy__body h2 {
  margin-top: 1.15em;
  margin-bottom: 0.35em;
  font-weight: 900;
}
.p-privacy__body a {
  color: #fa4169;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.p-privacy__body a:hover {
  opacity: 0.7;
}
.p-privacy__body ul {
  padding-left: 1.4em;
  list-style: disc;
}
.p-privacy__body li + li {
  margin-top: 0.35em;
}

.p-privacy__closing {
  margin-top: 1.6em;
}

.p-footer {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.52778vw 1.94444vw 1.66667vw;
  padding: calc(2200vw / var(--top-figma-width)) calc(2800vw / var(--top-figma-width)) calc(2400vw / var(--top-figma-width));
}
@media only screen and (max-width: 767px) {
  .p-footer {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    padding: 1.6rem 1.6rem 1.4rem;
  }
}

.p-footer__privacy {
  margin-left: 13.19444vw;
  margin-left: calc(19000vw / var(--top-figma-width));
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.97222vw;
  font-size: calc(1400vw / var(--top-figma-width));
  line-height: 1;
  letter-spacing: 0.04em;
  color: #000;
  text-decoration: none;
  white-space: nowrap;
  pointer-events: auto;
  -webkit-text-stroke: 0.34722vw #fa4169;
  -webkit-text-stroke: calc(500vw / var(--top-figma-width)) #fa4169;
  paint-order: stroke fill;
}
@media only screen and (max-width: 767px) {
  .p-footer__privacy {
    display: none;
  }
}
.p-footer__privacy:hover {
  opacity: 0.7;
}

.p-footer__copyright {
  margin: 0;
}
.p-footer__copyright small {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.25vw;
  font-size: calc(1800vw / var(--top-figma-width));
  line-height: 1;
  letter-spacing: 0.02em;
  color: #000;
  -webkit-text-stroke: 0.41667vw #fa4169;
  -webkit-text-stroke: calc(600vw / var(--top-figma-width)) #fa4169;
  paint-order: stroke fill;
}
@media only screen and (max-width: 767px) {
  .p-footer__copyright small {
    font-size: 1.2rem;
    -webkit-text-stroke: 0.4rem #fa4169;
  }
}

.p-footer__pagetop {
  position: fixed;
  right: 31.94444vw;
  right: calc(46000vw / var(--top-figma-width));
  bottom: 4.51389vw;
  bottom: calc(6500vw / var(--top-figma-width));
  z-index: 28;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  line-height: 0;
  -webkit-transform: translateY(calc(100% + 1.38889vw));
          transform: translateY(calc(100% + 1.38889vw));
  -webkit-transform: translateY(calc(100% + 2000vw / var(--top-figma-width)));
          transform: translateY(calc(100% + 2000vw / var(--top-figma-width)));
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.4, 0, 1, 1);
  transition: visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.4, 0, 1, 1);
  transition: transform 0.4s cubic-bezier(0.4, 0, 1, 1), visibility 0s linear 0.4s;
  transition: transform 0.4s cubic-bezier(0.4, 0, 1, 1), visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.4, 0, 1, 1);
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .p-footer__pagetop {
    right: 1.2rem;
    bottom: 0.8rem;
    -webkit-transform: translateY(calc(100% + 1.2rem));
            transform: translateY(calc(100% + 1.2rem));
  }
}
.p-footer__pagetop.is-visible {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
  -webkit-transition: visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
  transition: visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
  transition: transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1), visibility 0s linear 0s;
  transition: transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1), visibility 0s linear 0s, -webkit-transform 0.55s cubic-bezier(0.22, 1.4, 0.36, 1);
}
.p-footer__pagetop:hover {
  opacity: 1;
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
}
.p-footer__pagetop img {
  display: block;
  width: 4.86111vw;
  width: calc(7000vw / var(--top-figma-width));
  height: auto;
}
@media only screen and (max-width: 767px) {
  .p-footer__pagetop img {
    width: 4.2rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-footer__pagetop {
    -webkit-transition: none;
    transition: none;
  }
  .p-footer__pagetop.is-visible {
    -webkit-transition: none;
    transition: none;
  }
}

/* ---------------- */
@media screen and (max-width: 767px) {
  .u-desktop {
    display: none;
  }
}

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

.u-ib {
  display: inline-block;
}
/*# sourceMappingURL=style.css.map */
