@charset "UTF-8";
html {
  font-size: 100%;
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.1111111111vw;
  }
}
@media (min-width: 1440px) {
  html {
    font-size: 100%;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  color: #222222;
  background: #fff;
}

/* “安全な vw” 変数 (スクロールバー分を自動相殺) */
:root {
  /* 100vw - (100vw - 100%) = 実コンテンツ幅 */
  --safe-vw: calc(100vw - (100vw - 100%));
}

/* 視覚的に非表示（スクリーンリーダー用） */
.u-visuallyHidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: -1px;
}

/* JS無効時の最小フォールバック（任意） */
.no-js .u-jsOnly {
  display: none !important;
}

/* スキップリンク（最低限） */
.c-skiplink {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.c-skiplink:focus {
  position: fixed;
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  padding: 0.5em 1em;
  background: #000;
  color: #fff;
  z-index: 10000;
  outline: 3px solid #23a5ff;
}

/*****************************
* A Modern CSS Reset (https://github.com/hankchizljaw/modern-css-reset)
* 上記に、ul要素,ol要素,a要素への記述追加
*****************************/
/* Box sizing rules */
/* グローバル基盤 */
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow-x: hidden;
}

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

/* 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;
  margin: 0;
}

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

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

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

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

/* Make images easier to work with */
img, svg, video, canvas, iframe, table, picture {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
}

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

button {
  border: none;
  padding: 0;
  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;
  }
}
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

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

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

h1, h2, h3, h4, h5, h6 {
  font-weight: initial;
}

ul, ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
  word-break: break-all;
}

button {
  color: inherit;
  padding-block: 0;
  padding-inline: 0;
  text-align: justify;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

/* telリンクの下線＆青色を消す（共通） */
a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
  /* アクセシビリティ：フォーカス可視 */
}
a[href^="tel:"]:hover, a[href^="tel:"]:active, a[href^="tel:"]:focus {
  text-decoration: none;
}
a[href^="tel:"]:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* 念のためのiOS系強制上書き（必要な場合のみ） */
@supports (-webkit-touch-callout: none) {
  a[href^="tel:"] {
    color: inherit !important;
    text-decoration: none !important;
  }
}
a[href^="tel:"] {
  pointer-events: none;
  text-decoration: none;
}
@media (hover: none) and (pointer: coarse) {
  a[href^="tel:"] {
    pointer-events: auto;
    color: inherit;
    text-decoration: underline;
  }
}

/* まず、必要な要素には明確なフォーカスリングを付ける */
:where(a, button, input, select, textarea, summary, [role=button], [role=link]):focus-visible {
  outline: 3px solid #23a5ff;
  outline-offset: 2px;
}

/* スクロール用に一時的に tabindex="-1" を付けた見出し/セクションはリングを消す */
:where(h1, h2, h3, h4, h5, h6, section, article, main, div)[id][tabindex="-1"]:focus-visible {
  outline: none;
}

/* 長い文字列の折返し徹底 */
:where(p, li, dd, td, th, figcaption, .c-text, .richtext) {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ------------------------------
    スクロールアニメーション
------------------------------ */
*[data-scroll], *[data-load] {
  -webkit-transition: opacity 0.8s, -webkit-transform 0.8s;
  transition: opacity 0.8s, -webkit-transform 0.8s;
  transition: opacity 0.8s, transform 0.8s;
  transition: opacity 0.8s, transform 0.8s, -webkit-transform 0.8s;
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  --gap: 300ms;
}
@media screen and (min-width: 768px) {
  *[data-scroll], *[data-load] {
    --gap: 300ms;
  }
}
*[data-scroll][data-scroll-delay="1"], *[data-load][data-scroll-delay="1"] {
  -webkit-transition-delay: calc(var(--gap) * 1);
          transition-delay: calc(var(--gap) * 1);
}
*[data-scroll][data-scroll-delay="2"], *[data-load][data-scroll-delay="2"] {
  -webkit-transition-delay: calc(var(--gap) * 2);
          transition-delay: calc(var(--gap) * 2);
}
*[data-scroll][data-scroll-delay="3"], *[data-load][data-scroll-delay="3"] {
  -webkit-transition-delay: calc(var(--gap) * 3);
          transition-delay: calc(var(--gap) * 3);
}
*[data-scroll][data-scroll-delay="4"], *[data-load][data-scroll-delay="4"] {
  -webkit-transition-delay: calc(var(--gap) * 4);
          transition-delay: calc(var(--gap) * 4);
}
*[data-scroll][data-scroll-delay="5"], *[data-load][data-scroll-delay="5"] {
  -webkit-transition-delay: calc(var(--gap) * 5);
          transition-delay: calc(var(--gap) * 5);
}
*[data-scroll][data-scroll-delay="6"], *[data-load][data-scroll-delay="6"] {
  -webkit-transition-delay: calc(var(--gap) * 6);
          transition-delay: calc(var(--gap) * 6);
}
*[data-scroll][data-scroll-delay="7"], *[data-load][data-scroll-delay="7"] {
  -webkit-transition-delay: calc(var(--gap) * 7);
          transition-delay: calc(var(--gap) * 7);
}
*[data-scroll][data-scroll-delay="8"], *[data-load][data-scroll-delay="8"] {
  -webkit-transition-delay: calc(var(--gap) * 8);
          transition-delay: calc(var(--gap) * 8);
}
*[data-scroll][data-scroll-delay="9"], *[data-load][data-scroll-delay="9"] {
  -webkit-transition-delay: calc(var(--gap) * 9);
          transition-delay: calc(var(--gap) * 9);
}
*[data-scroll][data-scroll-delay="10"], *[data-load][data-scroll-delay="10"] {
  -webkit-transition-delay: calc(var(--gap) * 10);
          transition-delay: calc(var(--gap) * 10);
}

*[data-scroll].scroll-show, *[data-load].scroll-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

*[data-scroll=fadein-top], *[data-load=fadein-top] {
  -webkit-transform: translateY(-30px);
          transform: translateY(-30px);
}

*[data-scroll=blur], *[data-load=blur] {
  -webkit-filter: blur(18px);
          filter: blur(18px);
  opacity: 0;
  -webkit-transition: opacity 1000ms, -webkit-transform 1000ms, -webkit-filter 1000ms;
  transition: opacity 1000ms, -webkit-transform 1000ms, -webkit-filter 1000ms;
  transition: opacity 1000ms, transform 1000ms, filter 1000ms;
  transition: opacity 1000ms, transform 1000ms, filter 1000ms, -webkit-transform 1000ms, -webkit-filter 1000ms;
}
*[data-scroll=blur].scroll-show, *[data-load=blur].scroll-show {
  -webkit-filter: blur(0px);
          filter: blur(0px);
  opacity: 1;
}

*[data-scroll=title01], *[data-load=title01] {
  -webkit-transform: translateX(30px);
          transform: translateX(30px);
}

body.is-loading {
  overflow: hidden;
}

.c-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #A6CF84;
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}
@media screen and (min-width: 768px) {
  .c-loader .fp-hero {
    margin-left: 0;
  }
}
@media screen and (min-width: 768px) {
  .c-loader .fp-hero__inner {
    position: static;
  }
}
@media screen and (min-width: 768px) {
  .c-loader .fp-hero__lines {
    left: 50%;
    top: 50%;
    translate: -50% -50%;
  }
}

/* フェードアウト */
body.is-loaded .c-loader {
  opacity: 0;
  visibility: hidden;
}

.l-inner {
  width: 100%;
  max-width: 23.4375rem;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .l-inner {
    max-width: 80rem;
    padding-inline: 1.25rem;
  }
}

.l-inner02 {
  width: 100%;
  max-width: 23.4375rem;
  padding-inline: 2.5rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .l-inner02 {
    max-width: 68.1875rem;
    padding-inline: 1.25rem;
  }
}

.l-main {
  width: 100%;
  overflow: hidden;
}
.l-stack {
  margin-top: -1.25rem;
}
@media screen and (min-width: 768px) {
  .l-stack {
    margin-top: -3.125rem;
  }
}
.l-stack.is-fix .l-stack__cnt {
  position: fixed;
}
.l-stack__cnt {
  border-radius: 1.25rem 1.25rem 0 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: inherit;
  min-height: 100vh;
}
@media screen and (min-width: 768px) {
  .l-stack__cnt {
    border-radius: 3.125rem 3.125rem 0 0;
  }
}

.l-stack-last {
  margin-top: -1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .l-stack-last {
    margin-top: -3.125rem;
    border-radius: 3.125rem 3.125rem 0 0;
  }
}
.l-stack-last__cnt {
  border-radius: 1.25rem 1.25rem 0 0;
}
@media screen and (min-width: 768px) {
  .l-stack-last__cnt {
    border-radius: 3.125rem 3.125rem 0 0;
  }
}

.c-tit01__en {
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.21875;
}
@media screen and (min-width: 768px) {
  .c-tit01__en {
    font-size: 3rem;
    line-height: 1;
  }
}
.c-tit01__ja {
  color: #000;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.41em;
}
@media screen and (min-width: 768px) {
  .c-tit01__ja {
    font-size: 1.25rem;
    line-height: 1;
    letter-spacing: 0.41em;
    margin-top: 1.25rem;
  }
}

.c-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-inline: 3.125rem 4.375rem;
  border-radius: 3.125rem;
  border: 0.125rem solid #000;
  background: #FFF;
  height: 4.5625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .c-btn:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .c-btn:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.c-btn::before {
  content: "";
  display: block;
  background: url(../img/common/ei_arrow-up.svg) no-repeat 50% 50%/contain;
  width: 1.375rem;
  aspect-ratio: 1/1;
  position: absolute;
  right: 1rem;
  top: 50%;
  translate: 0 -50%;
}
.c-btn__label {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.15em;
}

/* Contact CTA (共通セクション) */
.c-contactCta {
  position: relative;
  padding-block: 7.375rem 8.3125rem;
  /* 左側の縦書きラベル */
  /* アクセシブル見出し（視覚的に非表示にしたい場合） */
}
@media screen and (min-width: 768px) {
  .c-contactCta {
    padding-block: 4.25rem 8.375rem;
  }
}
.c-contactCta__link {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  min-height: 21.25rem;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .c-contactCta__link:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .c-contactCta__link:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.c-contactCta__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.375rem;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: mixed;
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (min-width: 768px) {
  .c-contactCta__label {
    gap: 1.5625rem;
  }
}
.c-contactCta__jp {
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.37;
  letter-spacing: 0.4em;
}
@media screen and (min-width: 768px) {
  .c-contactCta__jp {
    font-size: 2rem;
    line-height: 1;
  }
}
.c-contactCta__en {
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.31;
  letter-spacing: 0.11em;
}
@media screen and (min-width: 768px) {
  .c-contactCta__en {
    font-size: 1.25rem;
    line-height: 1;
  }
}
.c-contactCta__en.is-hadashi {
  color: #959595;
}
.c-contactCta__icon {
  width: 16.8125rem;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  aspect-ratio: 269/203;
  margin-inline: auto;
  margin-top: 2.0625rem;
  background: #fff;
  -webkit-mask: url(../img/common/ico_cta_mail.svg) no-repeat 50% 50%/contain;
          mask: url(../img/common/ico_cta_mail.svg) no-repeat 50% 50%/contain;
}
@media screen and (min-width: 768px) {
  .c-contactCta__icon {
    width: 30.4375rem;
    margin-top: 6.5rem;
  }
}
.c-contactCta__icon.is-hadashi {
  background: #DAECFB;
}
.c-contactCta__title {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  padding: 0;
  margin: -myrem(1);
  overflow: hidden;
  clip: rect(0.0625rem, 0.0625rem, 0.0625rem, 0.0625rem);
  white-space: nowrap;
  border: 0;
}
/* ================================
   Footer
================================ */
.p-footer {
  position: relative;
  z-index: 10;
  color: #fff;
  background: url(../img/common/footer-bg.webp) no-repeat 50% 100%/cover #959595;
}
@media screen and (min-width: 768px) {
  .p-footer {
    background: url(../img/common/footer-bg_pc.webp) no-repeat 50% 100%/cover #959595;
  }
}
.p-footer__inner {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding-block: 6.25rem 1.875rem;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-footer__inner {
    padding-block: 18.625rem 2.375rem;
    max-width: calc(1240px + 2.5rem);
    margin-inline: auto;
  }
}
.p-footer__logo {
  margin-left: -1.25rem;
}
@media screen and (min-width: 768px) {
  .p-footer__logo {
    margin-left: 0;
  }
}
.p-footer__copy {
  color: #FFF;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  display: block;
  margin-top: 3.5rem;
}
@media screen and (min-width: 768px) {
  .p-footer__copy {
    margin-top: 2.9375rem;
  }
}
.p-footer__mark {
  width: 20.5625rem;
  margin-inline: auto;
  margin-top: 6.25rem;
}
@media screen and (min-width: 768px) {
  .p-footer__mark {
    margin-top: 0;
    width: 22.5rem;
  }
}
.p-footer__mark img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-footer__pc-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 2.5rem;
  }
}
@media screen and (min-width: 768px) {
  .p-footer__pc-right {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.9375rem;
    padding-top: 2rem;
  }
}

.p-footer-nav {
  margin-top: 6.25rem;
}
@media screen and (min-width: 768px) {
  .p-footer-nav {
    margin-top: 0;
  }
}
.p-footer-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.4375rem;
}
@media screen and (min-width: 768px) {
  .p-footer-nav__list {
    display: grid;
    grid-template-columns: 10rem 12.5rem;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(1) {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(2) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(3) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(4) {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(5) {
    -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
            order: 7;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(6) {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-nav__item:nth-of-type(7) {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
}
.p-footer-nav__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.5rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .p-footer-nav__link:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-footer-nav__link:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.p-footer-nav__en {
  color: #000;
  font-family: "Poppins", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}
.p-footer-nav__ja {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}

/* SNS list */
.p-footer-sns {
  margin-top: 7.5rem;
}
@media screen and (min-width: 768px) {
  .p-footer-sns {
    margin-top: 0;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    padding-left: 1.25rem;
  }
}
.p-footer-sns__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.75rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .p-footer-sns__item:nth-of-type(1) img {
    width: 1.125rem;
  }
}
@media screen and (min-width: 768px) {
  .p-footer-sns__item:nth-of-type(2) img {
    width: 0.875rem;
  }
}
.p-footer-sns__link {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .p-footer-sns__link:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-footer-sns__link:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}

/* BACK TO TOP（縦書き） */
.p-pagetop {
  position: absolute;
  bottom: 11.625rem;
  right: 1.375rem;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .p-pagetop:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-pagetop:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
@media screen and (min-width: 768px) {
  .p-pagetop {
    bottom: unset;
    top: 3.125rem;
    right: unset;
    left: 50%;
    translate: -50% 0;
  }
}
.p-pagetop__label {
  display: block;
  width: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .p-pagetop__label {
    width: 3.5625rem;
  }
}

/* ヘッダー */
.p-header {
  position: fixed;
  top: 0;
  z-index: 1000;
  width: 100%;
  -webkit-transition: opacity 0.24s ease, visibility 0s linear 0.24s, -webkit-transform 0.24s ease;
  transition: opacity 0.24s ease, visibility 0s linear 0.24s, -webkit-transform 0.24s ease;
  transition: opacity 0.24s ease, transform 0.24s ease, visibility 0s linear 0.24s;
  transition: opacity 0.24s ease, transform 0.24s ease, visibility 0s linear 0.24s, -webkit-transform 0.24s ease;
}
.p-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  margin: 0 auto;
  padding-block: 0rem;
  padding-inline: 1.1875rem 1.5rem;
}
@media screen and (min-width: 768px) {
  .p-header__inner {
    max-width: calc(1240px + 2.1875rem);
    padding-inline: 0rem 2.1875rem;
    padding-block: 1.25rem;
  }
}
.p-header__logo a {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  display: block;
}
@media (hover: hover) {
  .p-header__logo a:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-header__logo a:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.p-header__logo img {
  display: block;
  height: 5.1875rem;
  width: auto;
}
@media screen and (min-width: 768px) {
  .p-header__logo img {
    height: 7.25rem;
  }
}

html.is-drawer-open .p-header {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transform: translateY(-myrem(10));
          transform: translateY(-myrem(10));
}
@media screen and (min-width: 768px) {
  html.is-drawer-open .p-header {
    opacity: unset;
    visibility: unset;
    pointer-events: unset;
    -webkit-transform: unset;
            transform: unset;
  }
}
@media screen and (min-width: 768px) {
  html.is-drawer-open .p-header .p-ham {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* ハンバーガー */
.p-ham {
  display: inline-grid;
  place-items: center;
  width: 2.1875rem;
  height: 2.1875rem;
  border-radius: 0.5rem;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  /* 4マスのグリッドアイコン（閉） */
  /* Xアイコン（開） */
  /* 切替：data-menuで表示制御 */
}
@media screen and (min-width: 768px) {
  .p-ham {
    width: 3.9375rem;
    height: 3.9375rem;
  }
}
.p-ham__icon {
  position: relative;
  display: block;
  width: 2.1875rem;
  height: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .p-ham__icon {
    width: 3.9375rem;
    height: 3.9375rem;
  }
}
.p-ham__grid, .p-ham__close {
  position: absolute;
  inset: 0;
}
.p-ham__grid {
  width: 100%;
}
.p-ham__grid::before {
  content: "";
  display: block;
  background: #000;
  -webkit-mask: url(../img/common/ham_grid.svg) no-repeat 50% 50%/contain;
          mask: url(../img/common/ham_grid.svg) no-repeat 50% 50%/contain;
  width: 100%;
  aspect-ratio: 1/1;
}
.p-ham__close::before, .p-ham__close::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 0.125rem;
  background: #000;
  border-radius: 0.0625rem;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
.p-ham__close::before {
  -webkit-transform: translateY(-50%) rotate(30deg);
          transform: translateY(-50%) rotate(30deg);
}
.p-ham__close::after {
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
.p-ham[data-menu=close] .p-ham__close {
  display: none;
}
.p-ham[data-menu=open] .p-ham__grid {
  display: none;
}

/* ドロワー */
.p-drawer {
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 1100;
  pointer-events: none;
  -webkit-transition: translate 0.24s ease;
  transition: translate 0.24s ease;
  max-width: 25rem;
  width: 100%;
  translate: 100% 0;
  background: rgba(158, 203, 127, 0.8);
  /* open状態 */
}
@media screen and (min-width: 768px) {
  .p-drawer {
    max-width: 25rem;
  }
}
.p-drawer__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  margin: 0 auto;
  padding-block: 1.25rem;
  padding-inline: 1.0625rem;
}
.p-drawer__logo img {
  display: block;
  height: 5.1875rem;
  width: auto;
}
.p-drawer__panel {
  /* iOS Safari 100vh対策 */
  height: 100dvh;
  min-height: -webkit-fill-available;
  overflow: scroll;
}
.p-drawer__nav {
  margin-top: 6.25rem;
  padding-inline: 0.3125rem 1.0625rem;
}
.p-drawer__sns {
  margin-top: 3.5rem;
  padding-inline: 1.0625rem;
  padding-bottom: 3.5rem;
}
.p-drawer__sns-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
  gap: 1.125rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 768px) {
  .p-drawer__sns-list {
    gap: 1.375rem;
  }
}
.p-drawer__sns-link {
  display: block;
  width: 1.3125rem;
  aspect-ratio: 1/1;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .p-drawer__sns-link:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-drawer__sns-link:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
@media screen and (min-width: 768px) {
  .p-drawer__sns-link {
    width: 2.5rem;
  }
  .p-drawer__sns-link img {
    width: 100%;
  }
}
.p-drawer[data-menu=open] {
  pointer-events: auto;
  translate: 0;
}

/* ドロワーメニューの体裁（英語大見出し + 日本語サブ + 矢印 + 下線） */
.p-drawerMenu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-drawerMenu__item + .p-drawerMenu__item {
  margin-top: 3.125rem;
}
.p-drawerMenu__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
  gap: 0.9375rem;
  padding-block: 0 0.875rem;
  text-decoration: none;
  border-bottom: 0.0625rem solid black;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto 0;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .p-drawerMenu__link:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-drawerMenu__link:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.p-drawerMenu__link:focus-visible {
  outline: 0.1875rem solid #23a5ff;
  outline-offset: 0.125rem;
}
.p-drawerMenu__link::after {
  content: "";
  display: block;
  background: #fff;
  -webkit-mask: url(../img/common/drawer_arr.svg) no-repeat 50% 50%/contain;
          mask: url(../img/common/drawer_arr.svg) no-repeat 50% 50%/contain;
  width: 0.5rem;
  height: 0.8125rem;
}
.p-drawerMenu__en {
  color: #000;
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .p-drawerMenu__en {
    font-size: 1.25rem;
  }
}
.p-drawerMenu__ja {
  color: #FFF;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}

/* スクロールロック（JSで付与） */
html.is-lock, body.is-lock {
  overflow: hidden;
}

/* Sentinel の後からは通常背景。ここでヘッダーを表示する */
.js-header-sentinel {
  height: 0.0625rem;
}

/* ヘッダーはInstagramまでは非表示 */
body.home .p-header {
  display: none;
}

body.home.is-header-on .p-header {
  display: block;
}

/* 固定MV背景 */
.fp-bg {
  position: fixed;
  inset: 0;
  z-index: -2;
  background: url(../img/top/hero_bg.webp) no-repeat 50% 100%/cover;
}
@media screen and (min-width: 768px) {
  .fp-bg {
    background: url(../img/top/hero_bg_pc.webp) no-repeat 50% 100%/cover;
  }
}

/* 固定 左サイドナビ（PCのみ表示） */
.fp-sidenav {
  position: fixed;
  inset: 0 auto 0 0;
  width: 20rem;
  z-index: 100;
  color: #000;
  background: #9ECB7F;
  display: none;
  -webkit-transition: opacity 300ms;
  transition: opacity 300ms;
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .fp-sidenav {
    display: block;
  }
}
.fp-sidenav__inner {
  height: 100%;
  padding-block: 3.125rem;
  padding-inline: 1.5625rem;
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 2.1875rem;
  overflow: scroll;
}
.fp-sidenav__logo {
  width: 14.375rem;
  margin-inline: auto;
}
.fp-sidenav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.125rem;
}
.fp-sidenav__list :where(a) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.3125rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  padding-bottom: 0.625rem;
  border-bottom: 0.0625rem solid #000;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .fp-sidenav__list :where(a):where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .fp-sidenav__list :where(a):where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.fp-sidenav__list :where(a) :where(span) {
  font-family: "Poppins", sans-serif;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
  position: relative;
  left: 0.25rem;
}
.fp-sidenav__list :where(a) :where(em) {
  text-align: center;
  color: #FFF;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.05em;
}
.fp-sidenav__sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.25rem;
}
.fp-sidenav__sns li {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}
.fp-sidenav__sns a {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .fp-sidenav__sns a:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .fp-sidenav__sns a:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.fp-sidenav__sns img {
  width: 100%;
}

/* Instagram以降は非表示 */
body.home.is-after-insta .fp-sidenav {
  opacity: 0;
  pointer-events: none;
}

/* Main wrapper：左ナビ分の余白 */
.fp-main {
  position: relative;
  z-index: 2;
  width: 100%;
}
.fp-bg03 {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(52.41vh, rgba(255, 255, 255, 0)), color-stop(100vh, rgba(0, 0, 0, 0.58)), to(rgba(0, 0, 0, 0.58)));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 52.41vh, rgba(0, 0, 0, 0.58) 100vh, rgba(0, 0, 0, 0.58) 100%);
}

/* ヒーローの縦書きコピー（固定背景の上） */
.fp-hero {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100vh;
}
@media screen and (min-width: 768px) {
  .fp-hero {
    margin-left: 20rem;
  }
}
.fp-hero__inner {
  max-width: 23.4375rem;
  margin-inline: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .fp-hero__inner {
    max-width: 100%;
  }
}
.fp-hero__lines {
  width: 12.75rem;
  position: absolute;
  left: 6.25rem;
  top: 10.1875rem;
}
@media screen and (min-width: 768px) {
  .fp-hero__lines {
    width: 18.6875rem;
    left: 12.4375rem;
    top: 13.125rem;
  }
}
.fp-hero__lines img {
  width: 100%;
}
/* About */
@media screen and (min-width: 768px) {
  .fp-about {
    padding-left: 20rem;
  }
}
.fp-about__inner {
  padding-block: 13.6875rem 0;
}
@media screen and (min-width: 768px) {
  .fp-about__inner {
    padding-inline: 3.3125rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-about__wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 6.375rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-about__ph {
    width: 33.4375rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.fp-about__ph img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 1.25rem;
}
@media screen and (min-width: 768px) {
  .fp-about__txt {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-top: 2.125rem;
  }
}
.fp-about__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.625rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 5.25rem;
}
@media screen and (min-width: 768px) {
  .fp-about__name {
    margin-top: 0;
  }
}
.fp-about__name :where(span) {
  color: #FFF;
  text-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.11);
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.8rem;
  border-bottom: 0.0625rem solid #9ECB7F;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-about__name :where(span) {
    font-size: 2.5rem;
  }
}
.fp-about__name :where(small) {
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1875rem;
}
@media screen and (min-width: 768px) {
  .fp-about__name :where(small) {
    font-size: 0.9375rem;
  }
}
.fp-about__lead {
  max-width: 18.4375rem;
  margin-inline: auto;
  margin-top: 1.25rem;
  color: #FFF;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .fp-about__lead {
    max-width: 100%;
    margin-top: 4.375rem;
    font-size: 1.25rem;
  }
}
.fp-about__actions {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 5rem;
}
@media screen and (min-width: 768px) {
  .fp-about__actions {
    margin-top: 7.1875rem;
  }
}

/* Instagram */
.fp-instagram {
  color: #fff;
}
@media screen and (min-width: 768px) {
  .fp-instagram {
    padding-left: 20rem;
  }
}
.fp-instagram__inner {
  padding-block: 3.125rem 23.125rem;
}
@media screen and (min-width: 768px) {
  .fp-instagram__inner {
    padding-block: 6.25rem 9.375rem;
  }
}
.fp-instagram__head {
  max-width: 68.75rem;
  margin-inline: auto;
  padding-left: 0.125rem;
}
@media screen and (min-width: 768px) {
  .fp-instagram__head {
    max-width: 100%;
    padding-left: 0rem;
  }
}
.fp-instagram__head :where(h2) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.4375rem;
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4em;
}
@media screen and (min-width: 768px) {
  .fp-instagram__head :where(h2) {
    font-size: 2rem;
    letter-spacing: 0.4em;
  }
}
.fp-instagram__ico {
  background: #9ECB7F;
  -webkit-mask: url(../img/common/ico_instagram.svg) no-repeat 50% 50%/contain;
          mask: url(../img/common/ico_instagram.svg) no-repeat 50% 50%/contain;
  width: 1.125rem;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  aspect-ratio: 1/1;
  display: block;
}
@media screen and (min-width: 768px) {
  .fp-instagram__ico {
    width: 2.5rem;
    -webkit-mask: url(../img/common/ico_instagram_pc.svg) no-repeat 50% 50%/contain;
            mask: url(../img/common/ico_instagram_pc.svg) no-repeat 50% 50%/contain;
  }
}
.fp-instagram__grid {
  margin-top: 1.875rem;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .fp-instagram__grid {
    max-width: 42.5625rem;
    margin-inline: auto;
    gap: 1.875rem;
  }
}
.fp-instagram__grid--pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .fp-instagram__grid--pc {
    display: grid;
  }
}
.fp-instagram__item :where(a) {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media (hover: hover) {
  .fp-instagram__item :where(a):where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .fp-instagram__item :where(a):where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.fp-instagram__wrap {
  margin-top: 1.875rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-instagram__wrap {
    width: 42.5625rem;
  }
}
.fp-instagram__wrap #sb_instagram #sbi_images {
  gap: 0.3125rem;
  padding: 0 0;
}
@media screen and (min-width: 768px) {
  .fp-instagram__wrap #sb_instagram #sbi_images {
    gap: 1.875rem;
  }
}

/* ========================= */
/* ========================= */
/* ========================= */
.fp-hadashi {
  position: relative;
  height: 51.1875rem;
  width: 100%;
  /* リード（白文字 + 影） */
}
@media screen and (min-width: 768px) {
  .fp-hadashi {
    height: 55.125rem;
    min-height: 100vh;
  }
}
.fp-hadashi__bg {
  background: #FFF;
}
.fp-hadashi__inner {
  padding-block: 5.4375rem 4rem;
  padding-inline: 0;
  max-width: 100%;
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 3.125rem;
    padding-inline: 6.25rem;
    padding-block: 3.125rem 6.875rem;
    max-width: 80rem;
    padding-inline: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-hadashi__pcWrap {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-top: 10.3125rem;
  }
}
.fp-hadashi__head {
  position: relative;
  z-index: 2;
  padding-inline: 2.5rem;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__head {
    max-width: 100%;
  }
}
.fp-hadashi__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__ttl {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-inline: auto;
    gap: 1.5625rem;
  }
}
.fp-hadashi__ja {
  color: #A6C99C;
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4em;
  border-bottom: 0.0625rem solid #000;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__ja {
    font-size: 2.5rem;
    padding-bottom: 1.25rem;
  }
}
.fp-hadashi__en {
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__en {
    font-size: 0.9375rem;
  }
}
.fp-hadashi__visual {
  margin-top: -7rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__visual {
    margin-top: 0rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.fp-hadashi__blob {
  position: absolute;
  top: 10.625rem;
  left: 50%;
  translate: -50% 0;
  overflow: hidden;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__blob {
    overflow: visible;
    width: 45rem;
  }
}
.fp-hadashi__blob img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 34.15625rem;
  margin-inline: auto;
}
.fp-hadashi__person {
  position: relative;
  overflow: hidden;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.fp-hadashi__person img {
  height: 45.125rem;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 41% 50%;
     object-position: 41% 50%;
}
.fp-hadashi__lead {
  color: #FFF;
  text-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25);
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2;
  margin-top: -18rem;
  padding-inline: 2.5rem;
  position: relative;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-hadashi__lead {
    margin-top: 4.375rem;
    font-size: 1.5rem;
    color: #222222;
    max-width: 100%;
    text-align: center;
    letter-spacing: 0;
    padding-inline: 0rem;
  }
}
.fp-hadashi__cta {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 3.75rem;
}
/* ========================= */
/* ========================= */
/* ========================= */
.fp-kouen {
  position: relative;
  height: 52.625rem;
  /* 背景シェイプ + 人物 */
  /* リード（白文字 + 影） */
}
@media screen and (min-width: 768px) {
  .fp-kouen {
    height: 50.9375rem;
    min-height: 100vh;
  }
}
.fp-kouen__bg {
  background: #9ECB7F;
}
.fp-kouen__inner {
  padding-block: 5.4375rem 3.25rem;
  padding-inline: 0;
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-kouen__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0rem;
    padding-inline: 6.25rem;
    padding-block: 3.125rem 3.125rem;
    max-width: 80rem;
    padding-inline: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-kouen__pcWrap {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-top: 5.1875rem;
  }
}
.fp-kouen__head {
  position: relative;
  z-index: 2;
  padding-inline: 2.5rem;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-kouen__head {
    max-width: 100%;
  }
}
.fp-kouen__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .fp-kouen__ttl {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-inline: auto;
    gap: 1.5625rem;
  }
}
.fp-kouen__ja {
  color: #fff;
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4em;
  border-bottom: 0.0625rem solid #fff;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-kouen__ja {
    font-size: 2.5rem;
    padding-bottom: 1.25rem;
  }
}
.fp-kouen__en {
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .fp-kouen__en {
    font-size: 0.9375rem;
  }
}
.fp-kouen__visual {
  margin-top: -11.25rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .fp-kouen__visual {
    margin-top: 0rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.fp-kouen__blob {
  position: absolute;
  top: 12.25rem;
  left: 50%;
  translate: -50% 0;
  overflow: hidden;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-kouen__blob {
    overflow: visible;
    width: 45rem;
  }
}
.fp-kouen__blob img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 34.15625rem;
  margin-inline: auto;
}
.fp-kouen__person {
  position: relative;
  overflow: hidden;
  margin-inline: auto;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-kouen__person {
    width: 39.625rem;
  }
}
.fp-kouen__person img {
  width: 100%;
  height: 54.3125rem;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 91% 16%;
     object-position: 91% 16%;
}
@media screen and (min-width: 768px) {
  .fp-kouen__person img {
    height: auto;
  }
}
.fp-kouen__lead {
  color: #FFF;
  text-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2;
  margin-top: -21.875rem;
  padding-inline: 2.5rem;
  position: relative;
  max-width: 25rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-kouen__lead {
    margin-top: 3.125rem;
    font-size: 1.5rem;
    max-width: 100%;
    text-align: center;
    letter-spacing: 0;
    padding-inline: 0rem;
  }
}
.fp-kouen__cta {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 3.75rem;
}

/* ========================= */
/* ========================= */
/* ========================= */
.fp-ha {
  position: relative;
  /* 見出し */
  /* 背景シェイプ + 人物 */
}
.fp-ha__bg {
  background: #FFF;
}
.fp-ha__inner {
  padding-block: 5.4375rem 4rem;
  padding-inline: 0;
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-ha__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0rem;
    padding-inline: 6.25rem;
    padding-block: 3.125rem 6.875rem;
    max-width: 80rem;
    padding-inline: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-ha__pcLeft {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-top: 10.3125rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-ha__pcRight {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-top: 10.3125rem;
  }
}
.fp-ha__head {
  position: relative;
  z-index: 2;
  padding-inline: 2.5rem;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-ha__head {
    max-width: 100%;
  }
}
.fp-ha__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (min-width: 768px) {
  .fp-ha__ttl {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-inline: auto;
    gap: 1.5625rem;
  }
}
.fp-ha__ja {
  color: #A6C99C;
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4em;
  border-bottom: 0.0625rem solid #000;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-ha__ja {
    font-size: 2.5rem;
    padding-bottom: 1.25rem;
  }
}
.fp-ha__en {
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .fp-ha__en {
    font-size: 0.9375rem;
  }
}
.fp-ha__visual {
  margin-top: 1.5rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .fp-ha__visual {
    margin-top: 0rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.fp-ha__blob {
  position: absolute;
  top: -5.625rem;
  left: 50%;
  translate: -50% 0;
  overflow: hidden;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .fp-ha__blob {
    overflow: visible;
    width: 45rem;
  }
}
.fp-ha__blob img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 34.15625rem;
  margin-inline: auto;
}
.fp-ha__person {
  position: relative;
  overflow: hidden;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-ha__person {
    width: 43.375rem;
  }
}
.fp-ha__person img {
  height: 15.8125rem;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 41% 50%;
     object-position: 41% 50%;
}
@media screen and (min-width: 768px) {
  .fp-ha__person img {
    height: auto;
  }
}
.fp-ha__lead {
  text-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25);
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2;
  margin-top: -1.875rem;
  padding-inline: 2.5rem;
  position: relative;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .fp-ha__lead {
    margin-top: 2.5rem;
    font-size: 1.5rem;
    color: #222222;
    max-width: 100%;
    text-align: center;
    letter-spacing: 0;
    padding-inline: 0rem;
  }
}
.fp-ha__lead2 {
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.44;
  letter-spacing: 0.38em;
  padding-inline: 2.5rem;
  max-width: 23.4375rem;
  margin-top: 2.0625rem;
  margin-inline: auto;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .fp-ha__lead2 {
    font-size: 1.5rem;
    color: #222222;
    max-width: 100%;
    padding-inline: 0rem;
    line-height: 1.04;
    letter-spacing: 0.45em;
    color: #E58F3D;
    padding-left: 2rem;
  }
}
.fp-ha__cta {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 3.75rem;
}

.fp-faq {
  position: relative;
}
.fp-faq__inner {
  padding-block: 9.375rem 6.25rem;
}
@media screen and (min-width: 768px) {
  .fp-faq__inner {
    padding-block: 12.5rem 18.75rem;
  }
}
.fp-faq__head {
  color: #FFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .fp-faq__head {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-inline: auto;
    gap: 1.5625rem;
  }
}
.fp-faq__ttl {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: 0.3em;
  border-bottom: 0.0625rem solid #FFF;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-faq__ttl {
    font-size: 2.5rem;
    letter-spacing: 12em/40;
    padding-bottom: 1.25rem;
  }
}
.fp-faq__sub {
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .fp-faq__sub {
    font-size: 0.9375rem;
    letter-spacing: 0.3em;
    text-align: center;
  }
}

/* ---- ---- ---- */
/* ---- ---- ---- */
/* ---- ---- ---- */
.qaList {
  margin-top: 3.125rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5625rem;
}
@media screen and (min-width: 768px) {
  .qaList {
    gap: 1.875rem;
    padding-top: 2.5rem;
  }
}

.qaItem__btn {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3125rem;
  background: #fff;
  border: 0;
  cursor: pointer;
  border-radius: 62.4375rem;
  padding-block: 0.875rem;
  padding-inline: 1.25rem 0.6875rem;
  text-align: left;
  -webkit-transition: -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
  transition: -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  transition: box-shadow 0.2s ease, transform 0.2s ease, -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
}
@media screen and (min-width: 768px) {
  .qaItem__btn {
    padding-inline: 6.25rem;
    padding-block: 1.875rem;
    grid-template-columns: auto auto 1fr;
  }
}
.qaItem__btn:hover {
  -webkit-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}
.qaItem__qBadge {
  font-family: "Inria Sans";
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  width: 1.875rem;
  height: 1.875rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  background: #F1F1F1;
  border-radius: 62.4375rem;
  display: grid;
  place-content: center;
}
@media screen and (min-width: 768px) {
  .qaItem__qBadge {
    font-size: 1.5rem;
    width: 3.125rem;
    height: 3.125rem;
  }
}
.qaItem__qText {
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.83;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .qaItem__qText {
    font-size: 1.25rem;
  }
}
.qaItem__chev {
  background: url(../img/top/faq_chev.svg) no-repeat 50% 50%/contain;
  width: 0.8125rem;
  height: 0.5rem;
  opacity: 0.9;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  position: relative;
  top: 0.125rem;
}
@media screen and (min-width: 768px) {
  .qaItem__chev {
    width: 1.5rem;
    height: 0.75rem;
  }
}
.qaItem__body {
  margin-block: 0.75rem 0;
  margin-inline: 0.375rem 0.5625rem;
  border-radius: 0.875rem;
  padding: 0.875rem 1rem;
}
@media screen and (min-width: 768px) {
  .qaItem__body {
    margin-block: 1.5rem 6.25rem;
    margin-inline: 6.25rem;
    padding: 0.375rem 0rem;
  }
}
.qaItem__aHead {
  position: relative;
  padding-left: 2.375rem;
  margin: 0;
  color: #222222;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.83;
}
@media screen and (min-width: 768px) {
  .qaItem__aHead {
    font-size: 1.5rem;
    line-height: 1.6;
    padding-left: 5.125rem;
  }
}
.qaItem__aBadge {
  position: absolute;
  left: 0;
  top: 0.2em;
  font-family: "Inria Sans";
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  width: 1.875rem;
  height: 1.875rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  background: #DAECFB;
  border-radius: 62.4375rem;
  display: grid;
  place-content: center;
}
@media screen and (min-width: 768px) {
  .qaItem__aBadge {
    font-size: 1.5rem;
    width: 3.125rem;
    height: 3.125rem;
    top: -0.1875rem;
  }
}

/* 開閉状態の見た目 */
.qaItem.is-open .qaItem__chev {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}

/* ==================== */
/* ==================== */
/* ==================== */
.fp-sponsors {
  position: relative;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(37.5%, rgba(255, 255, 255, 0.7)), to(#9ECB7F)), #fff;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 37.5%, #9ECB7F 100%), #fff;
  padding-block: 6.25rem;
}
@media screen and (min-width: 768px) {
  .fp-sponsors {
    padding-block: 12.5rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-sponsors__pcFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 6.25rem;
  }
}
@media screen and (min-width: 768px) {
  .fp-sponsors__pcWrap {
    width: 28.125rem;
  }
}
.fp-sponsors__head--partner {
  margin-top: 4.8125rem;
}
@media screen and (min-width: 768px) {
  .fp-sponsors__head--partner {
    margin-top: 0;
  }
}
.fp-sponsors__ttl {
  margin-inline: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
}
.fp-sponsors__ja {
  color: #010101;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.33;
  letter-spacing: 0.3em;
  border-bottom: 0.0625rem solid #000;
  padding-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  .fp-sponsors__ja {
    font-size: 2.5rem;
    letter-spacing: 0.3em;
    padding-bottom: 1.25rem;
  }
}
.fp-sponsors__en {
  color: #000;
  font-family: "Poppins", sans-serif;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .fp-sponsors__en {
    font-size: 0.9375rem;
    letter-spacing: 0.3em;
  }
}
.fp-sponsors__thanks {
  margin-top: 4.8125rem;
  color: rgba(255, 255, 255, 0.6);
  font-family: "Poppins", sans-serif;
  font-size: 3rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.27em;
  white-space: nowrap;
  position: relative;
  left: -1.625rem;
}
@media screen and (min-width: 768px) {
  .fp-sponsors__thanks {
    margin-top: 7.5rem;
    font-size: 8rem;
    letter-spacing: 0.27em;
    left: 1.25rem;
    text-align: center;
  }
}

/* ロゴのグリッド */
.spnGrid {
  display: grid;
  grid-template-columns: repeat(2, 8.3125rem);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.375rem 1.4375rem;
  align-self: stretch;
  margin-top: 0.625rem;
}
@media screen and (min-width: 768px) {
  .spnGrid {
    grid-template-columns: repeat(auto-fit, 8.3125rem);
  }
}
/* 各ロゴカード */
.spnLogo {
  width: 8.3125rem;
  height: 7.0625rem;
}
.spnLogo__img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
}
/* ---- ---- ---- */
/* ---- ---- ---- */
/* ---- ---- ---- */
.fp-cta {
  background: #9ECB7F;
  margin-top: -myrem(1);
  position: relative;
}
/* ========================== */
/* ===== rm-prof-intro-visual ===== */
/* ========================== */
.p-profIntroVisual {
  background: #A6CF84;
  padding-block: 5.375rem 4.375rem;
}
@media screen and (min-width: 768px) {
  .p-profIntroVisual {
    padding-block: 9.75rem 0rem;
  }
}
.p-profIntroVisual__wrap {
  width: 100%;
  border-radius: 1.25rem;
  overflow: clip;
  -webkit-box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.08);
          box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.08);
}
.p-profIntroVisual__img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
/* ========================== */
/* ===== rm-prof-intro-text ===== */
/* ========================== */
.p-profIntroText {
  background: #A6CF84;
  padding-block: 3.125rem 5.375rem;
  border-radius: 0 0 1.25rem 1.25rem;
  margin-top: -0.0625rem;
  z-index: 2;
  position: relative;
}
.p-profIntroText__inner {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-profIntroText__inner {
    max-width: 55rem;
  }
}
.p-profIntroText__quote {
  text-align: center;
  margin-bottom: 3.75rem;
}
.p-profIntroText__q {
  color: #FFF;
  text-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.17em;
  display: block;
}
@media screen and (min-width: 768px) {
  .p-profIntroText__q {
    font-size: 3rem;
    line-height: 2.5;
    letter-spacing: 0.17em;
    text-align: left;
  }
}
.p-profIntroText__q + .p-profIntroText__q {
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .p-profIntroText__q + .p-profIntroText__q {
    margin-top: 0.625rem;
  }
}
.p-profIntroText__body {
  max-width: 18.4375rem;
  margin-inline: auto;
  /* 読みやすさ調整 */
}
@media screen and (min-width: 768px) {
  .p-profIntroText__body {
    max-width: 100%;
  }
}
.p-profIntroText__body :where(p) {
  color: #000;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 2;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-profIntroText__body :where(p) {
    font-size: 1.5rem;
    line-height: 2.5;
  }
}
@media screen and (min-width: 768px) {
  .p-profIntroText__body :where(p):nth-of-type(2) {
    margin-top: 0;
  }
}

/* ========================== */
/* --- Art（上部アート写真） --- */
/* ========================== */
.p-profArt2 {
  margin-top: -4.75rem;
}
@media screen and (min-width: 768px) {
  .p-profArt2 {
    margin-top: -17.875rem;
  }
}
.p-profArt2__frame {
  width: 100%;
  margin: 0 auto;
  overflow: clip;
}
.p-profArt2__img {
  width: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  height: 25.125rem;
}
@media screen and (min-width: 768px) {
  .p-profArt2__img {
    height: 85.4375rem;
    -o-object-position: 35% 50%;
       object-position: 35% 50%;
  }
}

/* ========================== */
/* --- Bio（ポートレート＋氏名＋略歴） --- */
/* ========================== */
.p-profBio {
  background: #A6CF84;
  position: relative;
  z-index: 2;
  margin-top: -2.875rem;
  padding-block: 9.375rem 9.4375rem;
  border-radius: 1.25rem 1.25rem 0 0;
}
@media screen and (min-width: 768px) {
  .p-profBio {
    margin-top: -13.75rem;
    padding-block: 12.5rem 12.1875rem;
  }
}
.p-profBio__inner {
  padding-inline: 2.4375rem;
  width: 100%;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-profBio__inner {
    max-width: 80rem;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .p-profBio__pc-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 3.75rem;
  }
}
@media screen and (min-width: 768px) {
  .p-profBio__pc-left {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 26.25rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.p-profBio__thumbCard {
  width: 100%;
  margin: 0 auto;
  border-radius: 1.25rem;
  overflow: clip;
}
@media screen and (min-width: 768px) {
  .p-profBio__thumbCard {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-top: 3.75rem;
  }
}
.p-profBio__thumbCard img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-profBio__head {
  width: 100%;
  margin-top: 4.4375rem;
}
@media screen and (min-width: 768px) {
  .p-profBio__head {
    margin-top: 0rem;
  }
}
.p-profBio__en {
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.21875;
}
@media screen and (min-width: 768px) {
  .p-profBio__en {
    font-size: 3rem;
    line-height: 1;
  }
}
.p-profBio__ja {
  color: #000;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.41em;
}
@media screen and (min-width: 768px) {
  .p-profBio__ja {
    font-size: 1.25rem;
    line-height: 1;
    letter-spacing: 0.41em;
    margin-top: 1.25rem;
  }
}
.p-profBio__body {
  margin-top: 3.75rem;
}
@media screen and (min-width: 768px) {
  .p-profBio__body {
    margin-top: 0rem;
  }
}
.p-profBio__body p {
  color: #000;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .p-profBio__body p {
    font-size: 1.5rem;
    line-height: 2.5;
  }
}

/* ========================== */
/* ===== rm-prof-career ===== */
/* ========================== */
.p-profCareer {
  background: #C5E1B1;
  border-radius: 1.25rem 1.25rem 0 0;
  margin-top: -1.25rem;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .p-profCareer {
    border-radius: 3.125rem 3.125rem 0 0;
    margin-top: -3.125rem;
  }
}
.p-profCareer__inner {
  padding-block: 9.375rem;
  padding-inline: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-profCareer__inner {
    padding-block: 12.5rem 18.75rem;
    max-width: 82.875rem;
  }
}
.p-profCareer__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media screen and (min-width: 768px) {
  .p-profCareer__ttl {
    padding-inline: 1.3125rem;
  }
}
.p-profCareer__ttl .p-profCareer__en {
  color: #FFF;
  font-family: "Poppins", sans-serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-profCareer__ttl .p-profCareer__en {
    font-size: 3rem;
  }
}
.p-profCareer__ttl .p-profCareer__ja {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  font-style: normal;
}
@media screen and (min-width: 768px) {
  .p-profCareer__ttl .p-profCareer__ja {
    font-size: 0.9375rem;
  }
}

/* Timeline grid */
.p-career {
  margin-top: 3.75rem;
  /* アイテム */
}
@media screen and (min-width: 768px) {
  .p-career {
    margin-top: 6.25rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.p-career__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.875rem;
  position: relative;
  /* 左右で配置を切替 */
}
@media screen and (min-width: 768px) {
  .p-career__item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.p-career__item::before {
  content: "";
  display: block;
  background: #fff;
  width: 3.625rem;
  aspect-ratio: 58/47;
  position: absolute;
  top: -1.5625rem;
  left: 50%;
  translate: -50% 0;
}
@media screen and (min-width: 768px) {
  .p-career__item::before {
    width: 3.375rem;
    height: 0.4375rem;
    aspect-ratio: unset;
    top: 3.875rem;
    left: 0;
    translate: -3.375rem 0;
  }
}
.p-career__item:nth-of-type(1)::before {
  content: unset;
}
.p-career__item.is-left::before {
  -webkit-mask: url(../img/profile/career_line_left.svg) no-repeat 0% 50%/contain;
          mask: url(../img/profile/career_line_left.svg) no-repeat 0% 50%/contain;
}
@media screen and (min-width: 768px) {
  .p-career__item.is-left::before {
    -webkit-mask: url(../img/profile/career_line_pc.svg) no-repeat 0% 50%/cover;
            mask: url(../img/profile/career_line_pc.svg) no-repeat 0% 50%/cover;
  }
}
.p-career__item.is-right {
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
}
.p-career__item.is-right::before {
  -webkit-mask: url(../img/profile/career_line_right.svg) no-repeat 0% 50%/contain;
          mask: url(../img/profile/career_line_right.svg) no-repeat 0% 50%/contain;
}
@media screen and (min-width: 768px) {
  .p-career__item.is-right::before {
    -webkit-mask: url(../img/profile/career_line_pc.svg) no-repeat 0% 50%/cover;
            mask: url(../img/profile/career_line_pc.svg) no-repeat 0% 50%/cover;
  }
}
.p-career__item.is-right .p-career__fig {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
@media screen and (min-width: 768px) {
  .p-career__item.is-right .p-career__fig {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}
.p-career__item.is-right .p-career__cap {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}
.p-career__fig {
  width: 7.5625rem;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  aspect-ratio: 1/1;
  border-radius: 624.9375rem;
  -webkit-box-shadow: 0 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.25);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.p-career__fig img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.p-career__cap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0rem;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .p-career__cap {
    text-align: center;
  }
}
.p-career__year {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
}
@media screen and (min-width: 768px) {
  .p-career__year {
    font-size: 0.9375rem;
  }
}
.p-career__txt {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
}
@media screen and (min-width: 768px) {
  .p-career__txt {
    font-size: 0.9375rem;
  }
}

/* ========================== */
/* ========================== */
/* ========================== */
.p-kouenWho {
  position: relative;
  z-index: 2;
  padding-block: 4.375rem 7.5rem;
}
@media screen and (min-width: 768px) {
  .p-kouenWho {
    margin-top: -17.1875rem;
    padding-block: 12.5rem 15.625rem;
  }
}
.p-kouenWho__inner {
  padding-inline: 2.4375rem;
  width: 100%;
  max-width: 23.4375rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-kouenWho__inner {
    max-width: 68.1875rem;
    padding-inline: 1.25rem;
  }
}
.p-kouenWho__head {
  margin-top: 0rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-kouenWho__head {
    margin-top: 0rem;
    width: 100%;
  }
}
.p-kouenWho__body {
  border-radius: 1.25rem;
  overflow: hidden;
  background: #fff;
  margin-top: 5rem;
}
@media screen and (min-width: 768px) {
  .p-kouenWho__body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 27.375rem;
    margin-top: 3.125rem;
  }
}
@media screen and (min-width: 768px) {
  .p-kouenWho__thumb {
    width: 32.9375rem;
  }
}
.p-kouenWho__listWrap {
  padding-block: 3.125rem;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-kouenWho__listWrap {
    padding-inline: 3.125rem;
    display: grid;
    place-content: center;
  }
}
.p-kouenWho__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.9375rem;
}
.p-kouenWho__item {
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.56;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
}
@media screen and (min-width: 768px) {
  .p-kouenWho__item {
    font-size: 1.5rem;
  }
}
.p-kouenWho__item::before {
  content: "";
  display: block;
  background: #9ECB7F;
  -webkit-mask: url(../img/kouen/who_bul.svg) no-repeat 50% 50%/contain;
          mask: url(../img/kouen/who_bul.svg) no-repeat 50% 50%/contain;
  width: 1.25rem;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  aspect-ratio: 1/1;
}
/* ========================== */
/* ========================== */
/* ========================== */
.p-kouenThema {
  position: relative;
  z-index: 2;
}
.p-kouenThema__inner {
  padding-block: 9.375rem;
}
.p-kouenThema__head {
  width: 100%;
  margin-top: 0rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-kouenThema__head {
    margin-top: 0rem;
    width: 100%;
  }
}
.p-kouenThema-list {
  margin-top: 3.125rem;
}
.p-kouenThema-list__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.125rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__list {
    -webkit-box-orient: unset;
    -webkit-box-direction: unset;
        -ms-flex-direction: unset;
            flex-direction: unset;
  }
}
.p-kouenThema-list__item {
  border-radius: 1.25rem;
  overflow: hidden;
  background-color: #fff;
  padding-block: 4.5rem 0;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__item {
    padding-block: 7.25rem 0;
    width: 30.1875rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.p-kouenThema-list__item::after {
  content: "";
  display: block;
  width: 100%;
  height: 1.9375rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__item::after {
    height: 5.0625rem;
  }
}
.p-kouenThema-list__item:nth-of-type(1)::after {
  background: #DAECFB;
}
.p-kouenThema-list__item:nth-of-type(2)::after {
  background: #FFFCBA;
}
.p-kouenThema-list__num {
  color: rgba(0, 0, 0, 0.06);
  font-family: "Inter", sans-serif;
  font-size: 8rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  position: absolute;
  top: 0;
  left: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__num {
    font-size: 15.5rem;
  }
}
.p-kouenThema-list__txtWrap {
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__txtWrap {
    margin-bottom: 1.0625rem;
  }
}
.p-kouenThema-list__txt1 {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.85;
  letter-spacing: 0.3rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__txt1 {
    font-size: 2.5rem;
    line-height: 1.65;
    height: 8.4375rem;
  }
}
.p-kouenThema-list__txt1b {
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.25rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__txt1b {
    font-size: 2rem;
    line-height: 1.40625;
    height: 8.4375rem;
  }
}
.p-kouenThema-list__txt2 {
  color: #9ECB7F;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.86;
  letter-spacing: 0.375rem;
}
@media screen and (min-width: 768px) {
  .p-kouenThema-list__txt2 {
    font-size: 1.25rem;
    line-height: 1.4;
  }
}
.p-kouenContact {
  position: relative;
}
.p-kouenContact__head {
  padding-block: 3.125rem;
}
@media screen and (min-width: 768px) {
  .p-kouenContact__head {
    padding-block: 12.5rem;
  }
}
.p-kouenContact__message {
  color: #FFF;
  text-align: center;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2.33;
}
@media screen and (min-width: 768px) {
  .p-kouenContact__message {
    font-size: 1.25rem;
    line-height: 1.4;
  }
}
.p-kouenContact__arrow {
  width: 4.625rem;
  margin-inline: auto;
  margin-top: 3.75rem;
}
@media screen and (min-width: 768px) {
  .p-kouenContact__arrow {
    width: 12.5rem;
  }
  .p-kouenContact__arrow img {
    width: 100%;
  }
}
.p-hadashiMv {
  position: relative;
  background: url(../img/hadashibu/hero_bg02.png) no-repeat 0% 0%/23.4375rem 60.375rem, url(../img/hadashibu/hero_bg03.png) no-repeat 100% 100%/30.5rem 60.375rem, url(../img/hadashibu/hero_bg.png) repeat 50% 50%/23.4375rem 60.375rem;
  height: 60.375rem;
  /* 人物（前面） */
  /* 名札ブロック（左下寄せ） */
}
@media screen and (min-width: 768px) {
  .p-hadashiMv {
    background: url(../img/hadashibu/hero_bg02_pc.png) no-repeat 0% 0%/89.875rem 72.125rem, url(../img/hadashibu/hero_bg03_pc.png) no-repeat 100% 100%/89.875rem 72.125rem, url(../img/hadashibu/hero_bg_pc.png) no-repeat 50% 50%/cover;
    height: 79.875rem;
  }
}
.p-hadashiMv__inner {
  padding-inline: 1.5625rem;
  padding-block: 6.875rem 0;
  max-width: 23.4375rem;
  margin-inline: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__inner {
    padding-inline: 0;
    max-width: 70.25rem;
    padding-block: 12.5rem 0;
  }
}
.p-hadashiMv__headline {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__headline {
    width: 56.375rem;
    margin-inline: 0;
  }
}
.p-hadashiMv__figure {
  position: absolute;
  top: 14.5rem;
  right: 0.5625rem;
  width: 15.5625rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__figure {
    width: 24.1875rem;
    top: 12.125rem;
    right: 0rem;
  }
}
.p-hadashiMv__badgeWrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.75rem;
  margin-top: 6.25rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__badgeWrap {
    position: absolute;
    top: 48.8125rem;
    left: 30.0625rem;
    margin-top: 0;
  }
}
.p-hadashiMv__badge {
  text-align: center;
  font-family: "Inter", sans-serif;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.35em;
  background: #FFF;
  width: 8.3125rem;
  height: 1.875rem;
  display: grid;
  place-content: center;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__badge {
    font-size: 1.25rem;
    width: 14.25rem;
  }
}
.p-hadashiMv__nameBlock {
  width: 8.3125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__nameBlock {
    width: 14.25rem;
  }
}
.p-hadashiMv__nameJa {
  font-family: "Inter", sans-serif;
  text-align: center;
  font-size: 3rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: 0.26em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  left: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__nameJa {
    font-size: 6rem;
    white-space: nowrap;
    left: 0.75rem;
  }
}
.p-hadashiMv__nameKana {
  font-family: "Inter", sans-serif;
  text-align: center;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.56em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top: 0.125rem solid #000;
  border-bottom: 0.125rem solid #000;
  height: 1.75rem;
  position: relative;
  left: 0.125rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiMv__nameKana {
    font-size: 0.9375rem;
  }
}

.p-hadasiIntro {
  background: url(../img/hadashibu/intro_bg.png) no-repeat -2.9375rem 0/67rem 102.125rem;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro {
    background: url(../img/hadashibu/intro_bg_pc.png) no-repeat 50% 0rem/75.5rem 86.25rem;
  }
}
.p-hadasiIntro__inner {
  padding-block: 7.5rem;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro__inner {
    max-width: 80rem;
    padding-inline: 1.25rem;
  }
}
.p-hadasiIntro__logo {
  width: 17.25rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro__logo {
    width: 53.875rem;
  }
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro__pcFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: end;
    gap: 1.25rem;
    margin-top: 6.25rem;
  }
}
.p-hadasiIntro__txt {
  text-align: center;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2.66;
  margin-top: 3.125rem;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro__txt {
    font-size: 1.5rem;
    line-height: 2.5;
    margin-top: 0rem;
  }
}
.p-hadasiIntro__txt :where(b) {
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro__txt :where(b) {
    font-size: 1.5rem;
  }
}
.p-hadasiIntro-coach {
  width: 20.5625rem;
  position: relative;
  padding-bottom: 1.375rem;
  margin-left: -1.0625rem;
  margin-top: 3.125rem;
}
@media screen and (min-width: 768px) {
  .p-hadasiIntro-coach {
    height: 18.5625rem;
    margin-bottom: 1.5rem;
  }
}
.p-hadasiIntro-coach__badgeWrap {
  position: absolute;
  top: 5.1875rem;
  left: 3.25rem;
}
.p-hadasiIntro-coach__badge {
  color: #FFF;
  text-align: center;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.24em;
  width: 5.625rem;
  height: 1.875rem;
  display: grid;
  place-content: center;
  white-space: nowrap;
  border-top: 0.125rem solid #FFF;
  border-bottom: 0.125rem solid #FFF;
}
.p-hadasiIntro-coach__nameJa {
  font-family: "Inter", sans-serif;
  text-align: center;
  font-size: 2.5rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: 0.33em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  left: -0.125rem;
  white-space: nowrap;
  margin-top: 0.625rem;
}
.p-hadasiIntro-coach__btnWrap {
  position: absolute;
  bottom: 0;
  right: 0;
  border-radius: 3.125rem;
  overflow: hidden;
}
.p-hadasiIntro-coach__btnWrap::before {
  content: "";
  display: block;
  background: #fff;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.p-hadasiIntro-coach__btn {
  position: relative;
  width: 14.875rem;
  height: 2.4375rem;
  border-radius: 3.125rem;
  overflow: hidden;
  border: 0.125rem solid #000;
  background: #FFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 2.875rem;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.15em;
}
@media (hover: hover) {
  .p-hadasiIntro-coach__btn:where(:-moz-any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
  .p-hadasiIntro-coach__btn:where(:any-link, :enabled, summary):hover {
    opacity: 0.7;
  }
}
.p-hadasiIntro-coach__btn::after {
  content: "";
  display: block;
  background: url(../img/common/ei_arrow-up.svg) no-repeat 50% 50%/contain;
  width: 1.375rem;
  aspect-ratio: 1/1;
  position: absolute;
  right: 0.75rem;
  top: 50%;
  translate: 0 -50%;
}
.p-hadashiPoint {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(33.17%, #DAECFB), to(#F4ED5E));
  background: linear-gradient(180deg, #DAECFB 33.17%, #F4ED5E 100%);
}
.p-hadashiPoint__inner {
  padding-block: 8.625rem 9.375rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint__inner {
    max-width: 80rem;
    padding-inline: 1.25rem;
    padding-block: 8.625rem 12.5rem;
  }
}
.p-hadashiPoint__rail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  gap: 0rem;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
  margin-bottom: 4.25rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint__rail {
    margin-bottom: 10.5rem;
  }
}
.p-hadashiPoint__railSmall {
  color: #BFBFBF;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.31;
  letter-spacing: 0.11em;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint__railSmall {
    font-size: 1.5rem;
  }
}
.p-hadashiPoint__railMain {
  text-orientation: upright;
  text-align: center;
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.37;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint__railMain {
    font-size: 2rem;
  }
}
.p-hadashiPoint-list__chip {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0 1.25rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  border-radius: 3.125rem;
  border: 0.0625rem solid #000;
  background: #FFF;
  margin-inline: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 3.75rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__chip {
    height: 5rem;
    gap: 3.125rem;
    padding: 0 6.25rem;
  }
}
.p-hadashiPoint-list__num {
  color: #808080;
  text-align: center;
  font-family: Aboreto;
  font-size: 2.25rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__num {
    font-size: 3.75rem;
  }
}
.p-hadashiPoint-list__title {
  text-align: center;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__title {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__pcFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2.4375rem;
    margin-top: 6.25rem;
  }
}
.p-hadashiPoint-list__figure {
  margin-top: 4.375rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__figure {
    margin-top: 0rem;
    width: 22.5625rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.p-hadashiPoint-list__figure img {
  border-radius: 1.25rem;
}
.p-hadashiPoint-list__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 3.125rem 0;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: rgba(255, 255, 255, 0.5);
  margin-top: 4.375rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__card {
    margin-top: 0rem;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding: 0 2.5rem;
  }
}
.p-hadashiPoint-list__card.is-01 {
  background: url(../img/hadashibu/point1_bg_text.svg) no-repeat calc(100% + 0.125rem) 0%/5.75rem auto, rgba(255, 255, 255, 0.5);
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__card.is-01 {
    background: url(../img/hadashibu/point1_bg_text_pc.svg) no-repeat calc(100% + 0.125rem) calc(100% + 0.125rem)/calc(100% + 0.125rem) auto, rgba(255, 255, 255, 0.5);
  }
}
.p-hadashiPoint-list__card.is-02 {
  background: url(../img/hadashibu/point2_bg_text.svg) no-repeat calc(100% + 0.125rem) 0%/5.75rem auto, rgba(255, 255, 255, 0.5);
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__card.is-02 {
    background: url(../img/hadashibu/point2_bg_text_pc.svg) no-repeat calc(100% + 0.125rem) 100%/auto 10rem, rgba(255, 255, 255, 0.5);
  }
}
.p-hadashiPoint-list__card.is-03 {
  background: url(../img/hadashibu/point3_bg_text.svg) no-repeat calc(100% + 0.125rem) 0%/5.75rem auto, rgba(255, 255, 255, 0.5);
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__card.is-03 {
    background: url(../img/hadashibu/point3_bg_text_pc.svg) no-repeat calc(100% + 0.125rem) 100%/auto 10rem, rgba(255, 255, 255, 0.5);
  }
}
.p-hadashiPoint-list__body {
  max-width: 15.875rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__body {
    max-width: 100%;
  }
}
.p-hadashiPoint-list__body :where(p) {
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2.66;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__body :where(p) {
    font-size: 1.25rem;
    letter-spacing: 0.0666666667em;
    line-height: 2.6;
  }
}
.p-hadashiPoint-list__body :where(strong) {
  font-size: 1.25rem;
  font-style: normal;
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__body :where(strong) {
    font-size: 2rem;
    letter-spacing: 0.05em;
    line-height: 1;
  }
}
@media screen and (min-width: 768px) {
  .p-hadashiPoint-list__footpint {
    margin-block: 6.25rem;
  }
}

.p-hadashiInfo {
  /* 説明文 */
  /* 注意事項ブロック */
}
.p-hadashiInfo__inner {
  padding-block: 10.75rem 1.5625rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__inner {
    padding-block: 10.75rem 12.5rem;
  }
}
.p-hadashiInfo__card {
  overflow: hidden;
  border-radius: 1.25rem;
  -webkit-box-shadow: 0.25rem 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.25);
          box-shadow: 0.25rem 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.25);
  background: #DAECFB;
}
.p-hadashiInfo__hero img {
  display: block;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__hero img {
    height: 17.4375rem;
    -o-object-position: 50% 85%;
       object-position: 50% 85%;
  }
}
.p-hadashiInfo__panel {
  padding-block: 2.8125rem 2.375rem;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__panel {
    padding-inline: 3rem;
  }
}
.p-hadashiInfo__chips {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.875rem;
}
.p-hadashiInfo__chips :where(p) {
  padding: 0 1.4375rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 1.875rem;
  border-radius: 3.125rem;
  background: #FFF;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.p-hadashiInfo__chips :where(span) {
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__chips :where(span) {
    font-size: 1.5rem;
  }
}
.p-hadashiInfo__desc {
  margin-top: 1.875rem;
}
.p-hadashiInfo__desc p {
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__desc p {
    font-size: 1.25rem;
    letter-spacing: 0;
  }
}
.p-hadashiInfo__notice {
  margin-top: 1.875rem;
}
.p-hadashiInfo__noticeTtl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 1.875rem;
  padding: 0 1.4375rem;
  border-radius: 3.125rem;
  background: #FFFCBA;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.p-hadashiInfo__noticeTtl :where(span) {
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.5em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__noticeTtl :where(span) {
    font-size: 1.5rem;
  }
}
.p-hadashiInfo__noteLead {
  margin-top: 1.875rem;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__noteLead {
    font-size: 1.25rem;
    letter-spacing: 0;
    line-height: 2;
  }
}
.p-hadashiInfo__list {
  margin-block: 1em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__list {
    margin-block: 2em;
  }
}
.p-hadashiInfo__list :where(li) {
  color: #C45B5B;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: 0.2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__list :where(li) {
    font-size: 1.25rem;
    line-height: 2;
  }
}
.p-hadashiInfo__list :where(li)::before {
  content: "・";
  font-size: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__list :where(li)::before {
    font-size: 1.25rem;
  }
}
.p-hadashiInfo__list :where(small) {
  text-indent: -1em;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__list :where(small) {
    text-indent: unset;
  }
}
.p-hadashiInfo__footnote {
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .p-hadashiInfo__footnote {
    font-size: 1.25rem;
    letter-spacing: 0;
    line-height: 2;
  }
}

.p-contact {
  background: #fff;
}

.p-contactFv {
  position: relative;
  padding-block: 7.375rem 4.6875rem;
  /* 左側の縦書きラベル */
  /* アクセシブル見出し（視覚的に非表示にしたい場合） */
}
@media screen and (min-width: 768px) {
  .p-contactFv {
    padding-block: 14rem 6.5rem;
  }
}
.p-contactFv__link {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
}
.p-contactFv__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.375rem;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: mixed;
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .p-contactFv__label {
    gap: 1.5625rem;
  }
}
.p-contactFv__jp {
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.37;
  letter-spacing: 0.4em;
}
@media screen and (min-width: 768px) {
  .p-contactFv__jp {
    font-size: 2rem;
    line-height: 1;
  }
}
.p-contactFv__en {
  color: #9ECB7F;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.31;
  letter-spacing: 0.11em;
}
@media screen and (min-width: 768px) {
  .p-contactFv__en {
    font-size: 1.25rem;
    line-height: 1;
  }
}
.p-contactFv__en.is-hadashi {
  color: #959595;
}
.p-contactFv__icon {
  width: 8.4375rem;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  aspect-ratio: 269/203;
  margin-inline: auto;
  margin-top: -2.5rem;
  background: rgba(158, 203, 127, 0.5);
  -webkit-mask: url(../img/common/ico_cta_mail.svg) no-repeat 50% 50%/contain;
          mask: url(../img/common/ico_cta_mail.svg) no-repeat 50% 50%/contain;
}
@media screen and (min-width: 768px) {
  .p-contactFv__icon {
    width: 30.4375rem;
    margin-top: 2.125rem;
  }
}
.p-contactFv__icon.is-hadashi {
  background: #DAECFB;
}
.p-contactFv__title {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  padding: 0;
  margin: -0.0625rem;
  overflow: hidden;
  clip: rect(0.0625rem, 0.0625rem, 0.0625rem, 0.0625rem);
  white-space: nowrap;
  border: 0;
}
.p-contactIntro__box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-inline: auto;
  width: 18.4375rem;
  padding: 1.875rem 0;
  border: 0.0625rem solid #000;
}
@media screen and (min-width: 768px) {
  .p-contactIntro__box {
    width: 65rem;
  }
}
.p-contactIntro__box :where(p) {
  color: #333;
  text-align: center;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.66;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 768px) {
  .p-contactIntro__box :where(p) {
    font-size: 1.5rem;
    line-height: 1.87;
    letter-spacing: 0.2em;
  }
}
.p-contactIntro__note {
  color: #808080;
  text-align: center;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.2em;
  margin-top: 2.8125rem;
}
@media screen and (min-width: 768px) {
  .p-contactIntro__note {
    font-size: 1.25rem;
    line-height: 1.55;
    letter-spacing: 0.2em;
  }
}

.p-contactForm__inner {
  padding-block: 4.375rem 9.6875rem;
}

/* --- CF7 の見た目（フォームレイアウト） --- */
.wpcf7 form {
  /* inputs / textarea */
  /* 送信ボタン（大きなピル型） */
  /* → 矢印（装飾） */
  /* バリデーション/レスポンス */
}
@media screen and (min-width: 768px) {
  .wpcf7 form {
    max-width: 62.5rem;
    margin-inline: auto;
  }
}
.wpcf7 form .c-formRow {
  margin-top: 1.25rem;
}
.wpcf7 form .c-formLabel__tit {
  color: #000;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.58;
  letter-spacing: 0.13em;
  margin-bottom: 0.75rem;
  display: block;
}
@media screen and (min-width: 768px) {
  .wpcf7 form .c-formLabel__tit {
    font-size: 0.9375rem;
    line-height: 1.26;
    letter-spacing: 0.13em;
  }
}
.wpcf7 form .c-formLabel__req {
  color: #FFF;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.13em;
  border-radius: 0.3125rem 0.3125rem 0 0;
  background: #9ECB7F;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0 0.4375rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.wpcf7 form .wpcf7-form-control-wrap {
  display: block;
}
.wpcf7 form input[type=text],
.wpcf7 form input[type=email],
.wpcf7 form input[type=tel],
.wpcf7 form textarea {
  width: 100%;
  border: none;
  border-radius: 0rem;
  padding: 0.75rem 0.875rem;
  font-size: 0.875rem;
  /* iOSズーム対策 */
  line-height: 1.6;
  -webkit-appearance: none;
  background: #EFEFEF;
}
.wpcf7 form textarea {
  min-height: 10.625rem;
  resize: vertical;
}
.wpcf7 form .wpcf7-submit {
  position: relative;
  background: #fff;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
  transition: transform 0.2s ease, opacity 0.2s ease;
  transition: transform 0.2s ease, opacity 0.2s ease, -webkit-transform 0.2s ease;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 20.9375rem;
  padding: 0.75rem 2.9375rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  border-radius: 6.25rem;
  border: 0.125rem solid #9ECB7F;
  height: 3.5625rem;
  /* 元の「送信」テキストは視覚的に隠す（音声読み上げは残す） */
  color: transparent;
  font-size: 0;
  line-height: 0;
  /* 右側の矢印（画像版） */
  background: url(../img/common/btn_icon.svg) no-repeat calc(100% - 7.75rem) 1.5625rem/1.5625rem 0.25rem;
  /* CF7の状態変化 */
}
@media screen and (min-width: 768px) {
  .wpcf7 form .wpcf7-submit {
    height: 4.5rem;
    background: url(../img/common/btn_icon.svg) no-repeat calc(100% - 7.375rem) 2.25rem/1.5625rem 0.25rem;
  }
}
.wpcf7 form .wpcf7-submit:hover {
  -webkit-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
  opacity: 0.7;
}
.wpcf7 form .wpcf7-submit:focus-visible {
  outline: 0.1875rem solid #23a5ff;
  outline-offset: 0.25rem;
}
.wpcf7 form .wpcf7-submit:disabled, .wpcf7 form .wpcf7-submit[aria-disabled=true] {
  opacity: 0.5;
  cursor: not-allowed;
}
.wpcf7 form .c-btnSend {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  display: block;
  margin-top: 1.25rem;
  /* 1行目：SEND */
  /* 2行目：送信 */
}
@media screen and (min-width: 768px) {
  .wpcf7 form .c-btnSend {
    margin-top: 5rem;
  }
}
.wpcf7 form .c-btnSend::before {
  content: "SEND";
  position: absolute;
  z-index: 10;
  left: 7.8125rem;
  top: 0.75rem;
  color: #9ECB7F;
  font-family: "Poppins", sans-serif;
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.21em;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .wpcf7 form .c-btnSend::before {
    font-size: 1.25rem;
    letter-spacing: 0.21em;
    line-height: 1.5;
  }
}
.wpcf7 form .c-btnSend::after {
  content: "送信";
  position: absolute;
  z-index: 10;
  left: 8.6875rem;
  top: 2.0625rem;
  color: #9ECB7F;
  font-size: 0.625rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.21em;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .wpcf7 form .c-btnSend::after {
    font-size: 0.9375rem;
    letter-spacing: 0.21em;
    line-height: 1.4666666667;
    top: 2.625rem;
  }
}
.wpcf7 form .wpcf7-submit::after {
  content: "";
  width: 1.5rem;
  height: 0.0625rem;
  background: currentColor;
  margin-left: 1.5rem;
  position: relative;
}
.wpcf7 form .wpcf7-submit::before {
  content: "";
  position: relative;
  left: 1.5rem;
  border: solid currentColor;
  border-width: 0 0.125rem 0.125rem 0;
  display: inline-block;
  padding: 0.25rem;
  -webkit-transform: translateX(0.125rem) rotate(-45deg);
          transform: translateX(0.125rem) rotate(-45deg);
}
.wpcf7 form .wpcf7-response-output {
  margin: 1.125rem 0 0;
  padding: 0.875rem 1rem;
  border-radius: 0.5rem;
  font-weight: 700;
}
.wpcf7 form .wpcf7-not-valid-tip {
  margin-top: 0.375rem;
  color: #d33;
  font-weight: 700;
}
.wpcf7 form.invalid .wpcf7-response-output {
  background: #fff2f2;
  border: 0.125rem solid #ff8080;
  margin-top: 2.5rem;
}
.wpcf7 form .wpcf7-not-valid-tip {
  color: red;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.58;
  letter-spacing: 0.13em;
  margin-bottom: 0.75rem;
  display: block;
}
.wpcf7 form .wpcf7-spinner {
  display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
  background: #fff;
  border: 0.125rem solid #9ECB7F;
  margin-top: 2.5rem;
  color: #9ECB7F;
}

.u-desktop-inline {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-desktop-inline {
    display: inline-block;
  }
}

.u-desktop {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-desktop {
    display: block;
  }
}

.u-mobile-inline {
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .u-mobile-inline {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .u-mobile {
    display: none;
  }
}

.u-text--center {
  text-align: center;
}
.u-text--white {
  color: #ffffff;
  font-weight: 700;
}

.u-bg--rmGreen {
  background: #A6CF84;
}
.u-bg--plGreen {
  background: #C5E1B1;
}